]>
Commit | Line | Data |
---|---|---|
d04ae832 JJ |
1 | 2021-12-30 Jakub Jelinek <jakub@redhat.com> |
2 | ||
3 | PR rtl-optimization/103756 | |
4 | * regrename.c (find_rename_reg): Test noop_move_p on the first | |
5 | non-debug insn in the chain rather than on the first insn. | |
6 | ||
7 | 2021-12-30 Jakub Jelinek <jakub@redhat.com> | |
8 | ||
9 | PR debug/103808 | |
10 | * emit-rtl.c (gen_rtx_REG_offset): Use gen_raw_REG instead of | |
11 | gen_rtx_REG. | |
12 | ||
13 | 2021-12-30 Martin Liska <mliska@suse.cz> | |
14 | ||
15 | * doc/cpp.texi: Add missing dash for argument. | |
16 | ||
17 | 2021-12-30 Jakub Jelinek <jakub@redhat.com> | |
18 | ||
19 | PR c++/103012 | |
20 | * config/i386/i386-c.c (ix86_pragma_target_parse): Perform | |
21 | cpp_define/cpp_undef calls with forced token locations | |
22 | BUILTINS_LOCATION. | |
23 | * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. | |
24 | * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Likewise. | |
25 | * config/s390/s390-c.c (s390_pragma_target_parse): Likewise. | |
26 | ||
27 | 2021-12-30 Jakub Jelinek <jakub@redhat.com> | |
28 | ||
29 | PR rtl-optimization/103860 | |
30 | * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is | |
31 | called on pro even if nothing further is pushed into vec. | |
32 | ||
33 | 2021-12-30 Xionghu Luo <luoxhu@linux.ibm.com> | |
34 | ||
35 | * loop-invariant.c (find_invariants_bb): Check profile count | |
36 | before motion. | |
37 | (find_invariants_body): Add argument. | |
38 | ||
39 | 2021-12-29 Ian Lance Taylor <iant@golang.org> | |
40 | ||
41 | PR go/103847 | |
42 | * godump.c (go_force_record_alignment): Name the alignment | |
43 | field "_". | |
44 | ||
45 | 2021-12-29 Jakub Jelinek <jakub@redhat.com> | |
46 | ||
47 | PR debug/103742 | |
48 | * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): If any phi | |
49 | argument is not CONSTANT_CLASS_P or SSA_NAME and any arguments are | |
50 | equal, change second from hash value to lowest dest_idx from the | |
51 | edges which have equal argument and resort to ensure -fcompare-debug | |
52 | stability. | |
53 | ||
54 | 2021-12-29 Martin Liska <mliska@suse.cz> | |
55 | ||
56 | * collect2.c (main): Add ld.mold. | |
57 | * common.opt: Add -fuse-ld=mold. | |
58 | * doc/invoke.texi: Document it. | |
59 | * gcc.c (driver_handle_option): Handle -fuse-ld=mold. | |
60 | * opts.c (common_handle_option): Likewise. | |
61 | ||
62 | 2021-12-29 Uroš Bizjak <ubizjak@gmail.com> | |
63 | ||
64 | * config/i386/sse.md (vec_pack<floatprefix>_float_<mode>): | |
65 | Perform gen_avx512dq_float<floatunssuffix>v2div2sf2 into a | |
66 | pseudo and emit move insn into operands[0]. | |
67 | (fix<fixunssuffix>_truncv2sfv2di2): Use lowpart_subreg | |
68 | instead of simplify_gen_subreg. | |
69 | (trunc<mode><pmov_dst_3_lower>2): Perform | |
70 | gen_avx512vl_truncate<mode>v<ssescalarnum>qi2 into a | |
71 | pseudo and emit move insn into operands[0]. | |
72 | (trunc<mode><pmov_dst_4_lower>2): Perform | |
73 | gen_avx512vl_truncate<mode>v<ssescalarnum>hi2 into a | |
74 | pseudo and emit move insn into operands[0]. | |
75 | (truncv2div2si2): Perform gen_avx512vl_truncatev2div2si2 into a | |
76 | pseudo and emit move insn into operands[0]. | |
77 | (truncv8div8qi2): Perform gen_avx512f_truncatev8div16qi2 into a | |
78 | pseudo and emit move insn into operands[0]. | |
79 | (<any_extend:insn>v8qiv8hi2): Use lowpart_subreg | |
80 | instead of simplify_gen_subreg. | |
81 | (<any_extend:insn>v8qiv8si2): Ditto. | |
82 | (<any_extend:insn>v4qiv4si2): Ditto. | |
83 | (<any_extend:insn>v4hiv4si2): Ditto. | |
84 | (<any_extend:insn>v8qiv8di2): Ditto. | |
85 | (<any_extend:insn>v4qiv4di2): Ditto. | |
86 | (<any_extend:insn>v2qiv2di2): Ditto. | |
87 | (<any_extend:insn>v4hiv4di2): Ditto. | |
88 | (<any_extend:insn>v2hiv2di2): Ditto. | |
89 | (<any_extend:insn>v2siv2di2): Ditto. | |
90 | ||
91 | 2021-12-29 Xionghu Luo <luoxhu@linux.ibm.com> | |
92 | ||
93 | PR tree-optimization/103793 | |
94 | * tree-ssa-loop-split.c (fix_loop_bb_probability): New function. | |
95 | (split_loop): Use multiply to scale loop1's exit probability. | |
96 | (do_split_loop_on_cond): Call fix_loop_bb_probability. | |
97 | ||
98 | 2021-12-28 Jason Merrill <jason@redhat.com> | |
99 | ||
100 | PR c++/99968 | |
101 | * tree.c (verify_type): Allow enumerator with BOOLEAN_TYPE. | |
102 | ||
103 | 2021-12-28 Jakub Jelinek <jakub@redhat.com> | |
104 | ||
105 | PR middle-end/103813 | |
106 | * fold-const.c (fold_truth_andor_1): Punt of const_binop LSHIFT_EXPR | |
107 | or RSHIFT_EXPR returns NULL. Formatting fix. | |
108 | ||
109 | 2021-12-28 Jakub Jelinek <jakub@redhat.com> | |
110 | ||
111 | PR rtl-optimization/103837 | |
112 | * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in | |
113 | the decisions whether to return false or continue and right before | |
114 | returning true reset those debug insns that previously caused | |
115 | returning false. | |
116 | ||
117 | 2021-12-28 Jakub Jelinek <jakub@redhat.com> | |
118 | ||
119 | PR debug/103838 | |
120 | * optabs.c (expand_doubleword_mod, expand_doubleword_divmod): Only | |
121 | check newly added insns for CALL_P, not the last insn of previous | |
122 | code. | |
123 | ||
124 | 2021-12-28 Martin Liska <mliska@suse.cz> | |
125 | ||
126 | PR driver/103465 | |
127 | * opts.c (finish_options): More part of diagnostics to ... | |
128 | (diagnose_options): ... here. Call the function from both | |
129 | finish_options and process_options. | |
130 | * opts.h (diagnose_options): Declare. | |
131 | * toplev.c (process_options): Call diagnose_options. | |
132 | ||
133 | 2021-12-28 Martin Liska <mliska@suse.cz> | |
134 | ||
135 | * doc/contrib.texi: Replace http:// with https. | |
136 | * doc/contribute.texi: Likewise. | |
137 | * doc/extend.texi: Likewise. | |
138 | * doc/gccint.texi: Likewise. | |
139 | * doc/gnu.texi: Likewise. | |
140 | * doc/implement-c.texi: Likewise. | |
141 | * doc/implement-cxx.texi: Likewise. | |
142 | * doc/include/fdl.texi: Likewise. | |
143 | * doc/include/gpl_v3.texi: Likewise. | |
144 | * doc/install.texi: Likewise. | |
145 | * doc/invoke.texi: Likewise. | |
146 | * doc/passes.texi: Likewise. | |
147 | * doc/service.texi: Likewise. | |
148 | * doc/sourcebuild.texi: Likewise. | |
149 | * doc/standards.texi: Likewise. | |
150 | ||
151 | 2021-12-28 Jakub Jelinek <jakub@redhat.com> | |
152 | ||
153 | PR target/103842 | |
154 | * config/i386/mmx.md (divv2sf3): Use force_reg on op1. Always perform | |
155 | divv4sf3 into a pseudo and emit_move_insn into operands[0]. | |
156 | ||
157 | 2021-12-27 John David Anglin <danglin@gcc.gnu.org> | |
158 | ||
159 | * config/pa/pa-protos.h: Delete | |
160 | pa_maybe_emit_compare_and_swap_exchange_loop() declaration. | |
161 | * config/pa/pa.c (pa_expand_compare_and_swap_loop): Delete. | |
162 | (pa_maybe_emit_compare_and_swap_exchange_loop): Delete. | |
163 | * config/pa/pa.md (atomic_storeq): Use __sync_lock_test_and_set | |
164 | instead of pa_maybe_emit_compare_and_swap_exchange_loop. | |
165 | (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. | |
166 | ||
167 | 2021-12-27 H.J. Lu <hjl.tools@gmail.com> | |
168 | ||
169 | PR target/103762 | |
170 | * config/i386/constraints.md (BM): New constraint. | |
171 | * config/i386/i386.md (m): New mode attribute. | |
172 | Replace the 'm' constraint on <general_operand> with the '<m>' | |
173 | constraint. | |
174 | Replace the 'm' constraint on x86_64_general_operand with the | |
175 | 'BM' constraint. | |
176 | ||
177 | 2021-12-26 H.J. Lu <hjl.tools@gmail.com> | |
178 | ||
179 | PR target/103785 | |
180 | * config/i386/i386.md: Swap operand order in comments and check | |
181 | AX input in any_mul_highpart peepholes. | |
182 | ||
183 | 2021-12-24 Uroš Bizjak <ubizjak@gmail.com> | |
184 | ||
185 | PR target/95046 | |
186 | PR target/103797 | |
187 | * config/i386/mmx.md (divv2sf3): New instruction pattern. | |
188 | ||
189 | 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> | |
190 | ||
191 | * config/darwin.c (darwin_override_options): Make a comment | |
192 | more inclusive. | |
193 | ||
194 | 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> | |
195 | ||
196 | * config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable | |
197 | values for the host. | |
198 | * config/darwin.c (darwin_emit_common): Error for alignment | |
199 | values > 32768. | |
200 | * config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the | |
201 | configured L2_MAX_OFILE_ALIGNMENT. | |
202 | ||
203 | 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> | |
204 | ||
205 | * config/darwin.c (darwin_override_options): When checking for the | |
206 | flag-reorder-and-partition case, also check that it is set on. | |
207 | ||
208 | 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> | |
209 | ||
210 | * config/darwin.h (OBJECT_FORMAT_MACHO): New. | |
211 | ||
212 | 2021-12-23 Roger Sayle <roger@nextmovesoftware.com> | |
213 | Uroš Bizjak <ubizjak@gmail.com> | |
214 | ||
215 | PR target/103773 | |
216 | * config/i386/i386.md (*mov<mode>_and): New define_insn for | |
217 | writing a zero to memory using AND. | |
218 | (*mov<mode>_or): Extend to allow memory destination and HImode. | |
219 | (*movdi_internal): Remove -Oz push/pop optimization from here. | |
220 | (*movsi_internal): Likewise. | |
221 | (peephole2): Perform -Oz push/pop optimization here, only for | |
222 | register destinations, values other than zero, and in functions | |
223 | that don't used the red zone. | |
224 | (peephole2): With -Oz, convert writes of 0 or -1 to memory into | |
225 | their clobber forms, i.e. *mov<mode>_and and *mov<mode>_or resp. | |
226 | ||
227 | 2021-12-23 konglin1 <lingling.kong@intel.com> | |
228 | ||
229 | * config/i386/avx512bf16intrin.h (_mm_cvtsbh_ss): Add new intrinsic. | |
230 | (_mm512_cvtpbh_ps): Likewise. | |
231 | (_mm512_maskz_cvtpbh_ps): Likewise. | |
232 | (_mm512_mask_cvtpbh_ps): Likewise. | |
233 | * config/i386/avx512bf16vlintrin.h (_mm_cvtness_sbh): Likewise. | |
234 | (_mm_cvtpbh_ps): Likewise. | |
235 | (_mm256_cvtpbh_ps): Likewise. | |
236 | (_mm_maskz_cvtpbh_ps): Likewise. | |
237 | (_mm256_maskz_cvtpbh_ps): Likewise. | |
238 | (_mm_mask_cvtpbh_ps): Likewise. | |
239 | (_mm256_mask_cvtpbh_ps): Likewise. | |
240 | ||
241 | 2021-12-23 Feng Xue <fxue@os.amperecomputing.com> | |
242 | ||
243 | PR ipa/103786 | |
244 | * tree.c (verify_type): Fix typo. | |
245 | ||
246 | 2021-12-23 liuhongt <hongtao.liu@intel.com> | |
247 | ||
248 | PR target/103750 | |
249 | * config/i386/sse.md | |
250 | (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>): | |
251 | New pre_reload define_insn_and_split. | |
252 | (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>): | |
253 | Ditto. | |
254 | (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>): | |
255 | Ditto. | |
256 | (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>): | |
257 | Ditto. | |
258 | (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): | |
259 | Ditto. | |
260 | (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): | |
261 | Ditto. | |
262 | (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): | |
263 | Ditto. | |
264 | (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): | |
265 | Ditto. | |
266 | ||
267 | 2021-12-22 Murray Steele <murray.steele@arm.com> | |
268 | ||
269 | * config.gcc (arm*-*-*): Add arm-mve-builtins.o to extra_objs. | |
270 | * config/arm/arm-c.c (arm_pragma_arm): Handle "#pragma GCC arm". | |
271 | (arm_register_target_pragmas): Register it. | |
272 | * config/arm/arm-protos.h: (arm_mve::arm_handle_mve_types_h): New | |
273 | prototype. | |
274 | * config/arm/arm_mve_types.h: Replace MVE type definitions with | |
275 | new pragma. | |
276 | * config/arm/t-arm: (arm-mve-builtins.o): New target rule. | |
277 | * config/arm/arm-mve-builtins.cc: New file. | |
278 | * config/arm/arm-mve-builtins.def: New file. | |
279 | * config/arm/arm-mve-builtins.h: New file. | |
280 | ||
281 | 2021-12-22 Murray Steele <murray.steele@arm.com> | |
282 | ||
283 | * config/arm/arm-builtins.c (enum arm_type_qualifiers): Move to | |
284 | arm_builtins.h. | |
285 | (enum arm_simd_type): Move to arm-builtins.h. | |
286 | (struct arm_simd_type_info): Move to arm-builtins.h. | |
287 | * config/arm/arm-builtins.h (enum arm_simd_type): Move from | |
288 | arm-builtins.c. | |
289 | (enum arm_type_qualifiers): Move from arm-builtins.c. | |
290 | (struct arm_simd_type_info): Move from arm-builtins.c. | |
291 | ||
292 | 2021-12-22 Martin Liska <mliska@suse.cz> | |
293 | ||
294 | * doc/extend.texi: Unify all function declarations in examples | |
295 | where some miss trailing ';'. | |
296 | ||
297 | 2021-12-22 Martin Liska <mliska@suse.cz> | |
298 | ||
299 | * doc/extend.texi: Unify all function declarations in examples | |
300 | where some miss trailing ';'. | |
301 | ||
302 | 2021-12-22 Martin Liska <mliska@suse.cz> | |
303 | ||
304 | * doc/extend.texi: Unify all function declarations in examples | |
305 | where some miss trailing ';'. | |
306 | ||
307 | 2021-12-22 Martin Liska <mliska@suse.cz> | |
308 | ||
309 | * doc/extend.texi: Use uppercase letters for SSEx. | |
310 | ||
311 | 2021-12-21 Jiang Haochen <haochen.jiang@intel.com> | |
312 | ||
313 | * config/i386/bmiintrin.h (_tzcnt_u16): New intrinsic. | |
314 | (_andn_u32): Ditto. | |
315 | (_andn_u64): Ditto. | |
316 | ||
317 | 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> | |
318 | ||
319 | * tree-ssa-loop-im.c (bb_colder_than_loop_preheader): New | |
320 | function. | |
321 | (get_coldest_out_loop): New function. | |
322 | (determine_max_movement): Use get_coldest_out_loop. | |
323 | (move_computations_worker): Adjust and fix iteration udpate. | |
324 | (class ref_in_loop_hot_body): New functor. | |
325 | (ref_in_loop_hot_body::operator): New. | |
326 | (can_sm_ref_p): Use for_all_locs_in_loop. | |
327 | (fill_coldest_and_hotter_out_loop): New. | |
328 | (tree_ssa_lim_finalize): Free coldest_outermost_loop and | |
329 | hotter_than_inner_loop. | |
330 | (loop_invariant_motion_in_fun): Call fill_coldest_and_hotter_out_loop. | |
331 | ||
332 | 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> | |
333 | ||
334 | * tree-ssa-loop-split.c (split_loop): Fix incorrect | |
335 | profile_count and probability. | |
336 | (do_split_loop_on_cond): Likewise. | |
337 | ||
338 | 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> | |
339 | ||
340 | PR middle-end/103270 | |
341 | * predict.c (predict_extra_loop_exits): Add loop parameter. | |
342 | (predict_loops): Call with loop argument. | |
343 | ||
344 | 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> | |
345 | ||
346 | * config/rs6000/altivec.md (altivec_vaddu<VI_char>s): Replace | |
347 | UNSPEC_VADDU with us_plus. | |
348 | (altivec_vadds<VI_char>s): Replace UNSPEC_VADDS with ss_plus. | |
349 | (altivec_vsubu<VI_char>s): Replace UNSPEC_VSUBU with us_minus. | |
350 | (altivec_vsubs<VI_char>s): Replace UNSPEC_VSUBS with ss_minus. | |
351 | (altivec_abss_<mode>): Likewise. | |
352 | ||
353 | 2021-12-20 Uroš Bizjak <ubizjak@gmail.com> | |
354 | ||
355 | PR target/103772 | |
356 | * config/i386/sse.md (<sse2p4_1>_pinsr<ssemodesuffix>): Add | |
357 | earlyclobber to (x,x,x,i) alternative. | |
358 | (<sse2p4_1>_pinsr<ssemodesuffix> peephole2): Remove. | |
359 | (<sse2p4_1>_pinsr<ssemodesuffix> splitter): Use output | |
360 | operand as a temporary register. Split after reload_completed. | |
361 | ||
362 | 2021-12-20 Roger Sayle <roger@nextmovesoftware.com> | |
363 | Uroš Bizjak <ubizjak@gmail.com> | |
364 | ||
365 | * config/i386/i386.md (any_mul_highpart): New code iterator. | |
366 | (sgnprefix, s): Add attribute support for [su]mul_highpart. | |
367 | (<s>mul<mode>3_highpart): Delete expander. | |
368 | (<s>mul<mode>3_highpart, <s>mulsi32_highpart_zext): | |
369 | New define_insn patterns. | |
370 | (define_peephole2): Tweak the register allocation for the above | |
371 | instructions after reload. | |
372 | ||
373 | 2021-12-20 Joel Sherrill <joel@rtems.org> | |
374 | ||
375 | * config.gcc: Obsolete m32c-*-rtems* target. | |
376 | ||
377 | 2021-12-20 Martin Liska <mliska@suse.cz> | |
378 | ||
379 | * opts.c (default_options_optimization): Support -Oz in -Ox option hints. | |
380 | ||
381 | 2021-12-20 Jan Hubicka <hubicka@ucw.cz> | |
382 | ||
383 | PR ipa/103669 | |
384 | * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Add deferred | |
385 | parameter. | |
386 | (modref_eaf_analysis::propagate): Use it. | |
387 | ||
388 | 2021-12-20 liuhongt <hongtao.liu@intel.com> | |
389 | ||
390 | PR target/98468 | |
391 | * config/i386/sse.md (*bit_and_float_vector_all_ones): New | |
392 | pre-reload splitter. | |
393 | ||
394 | 2021-12-19 Jan Hubicka <hubicka@ucw.cz> | |
395 | ||
396 | PR ipa/103766 | |
397 | * ipa-modref.c (modref_merge_call_site_flags): Fix early exit condition | |
398 | ||
399 | 2021-12-19 Patrick Palka <ppalka@redhat.com> | |
400 | ||
401 | * print-tree.c (print_node) <case tcc_declaration>: Dump | |
402 | DECL_LANG_FLAG_8. | |
403 | ||
404 | 2021-12-19 Andrew Pinski <apinski@marvell.com> | |
405 | ||
406 | * tree-ssa-phiopt.c (gimple_simplify_phiopt): Annotate the | |
407 | new sequence with the location of the conditional statement. | |
408 | ||
409 | 2021-12-18 Roger Sayle <roger@nextmovesoftware.com> | |
410 | Uroš Bizjak <ubizjak@gmail.com> | |
411 | ||
412 | PR target/103611 | |
413 | * config/i386/i386.md (any_or_plus): New code iterator. | |
414 | (define_split): Split (HI<<32)|zext(LO) into piece-wise | |
415 | move instructions on !TARGET_64BIT. | |
416 | * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): | |
417 | Restrict to TARGET_64BIT. | |
418 | ||
419 | 2021-12-18 Roger Sayle <roger@nextmovesoftware.com> | |
420 | ||
421 | PR target/32803 | |
422 | * common.opt (Oz): New command line option. | |
423 | * doc/invoke.texi: Document the new -Oz option. | |
424 | * lto-wrapper.c (merge_and_complain, append_compiler_options): | |
425 | Treat OPT_Oz as synonymous with OPT_Os. | |
426 | * optc-save-gen.awk: Increase maximum value of optimize_size to 2. | |
427 | * opts.c (default_options_optimization) [OPT_Oz]: Handle OPT_Oz | |
428 | just like OPT_Os, except set opt->x_optimize_size to 2. | |
429 | (common_handle_option): Skip OPT_Oz just like OPT_Os. | |
430 | * config/i386/i386.md (*movdi_internal): Use a push/pop sequence | |
431 | for suitable SImode TYPE_IMOV moves when optimize_size > 1. | |
432 | (*movsi_internal): Likewise. | |
433 | ||
434 | 2021-12-18 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
435 | ||
436 | PR tree-optimization/103759 | |
437 | * tree-object-size.c (unknown, initval): Remove functions. | |
438 | (size_unknown, size_initval, size_unknown_p): Operate directly | |
439 | on trees. | |
440 | ||
441 | 2021-12-18 François-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
442 | ||
443 | * config/darwin-driver.c: Make version code more future-proof. | |
444 | * config.gcc: Homogeneize darwin versions. | |
445 | * configure.ac: Homogeneize darwin versions. | |
446 | * configure: Regenerate. | |
447 | ||
448 | 2021-12-17 Marek Polacek <polacek@redhat.com> | |
449 | ||
450 | PR c/103649 | |
451 | * attribs.c (handle_ignored_attributes_option): Create the fake | |
452 | attribute with max_length == -2. | |
453 | (attribute_ignored_p): New overloads. | |
454 | * attribs.h (attribute_ignored_p): Declare them. | |
455 | * tree-core.h (struct attribute_spec): Document that max_length | |
456 | can be -2. | |
457 | ||
458 | 2021-12-17 Segher Boessenkool <segher@kernel.crashing.org> | |
459 | ||
460 | PR target/103624 | |
461 | * config/rs6000/rs6000-builtins.def (__builtin_darn): Expand to | |
462 | darn_64_di. Add {32bit} attribute. Return long. | |
463 | (__builtin_darn_32): Expand to darn_32_di. Add {32bit} attribute. | |
464 | Return long. | |
465 | (__builtin_darn_raw): Expand to darn_raw_di. Add {32bit} attribute. | |
466 | Return long. | |
467 | * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Expand the darn | |
468 | builtins to the _si variants for -m32. | |
469 | * config/rs6000/rs6000.md (UNSPECV_DARN_32, UNSPECV_DARN_RAW): Delete. | |
470 | (UNSPECV_DARN): Update comment. | |
471 | (darn_32, darn_raw, darn): Delete. | |
472 | (darn_32_<mode>, darn_64_<mode>, darn_raw_<mode> for GPR): New. | |
473 | (@darn<mode> for GPR): New. | |
474 | ||
475 | 2021-12-17 Bill Schmidt <wschmidt@linux.ibm.com> | |
476 | ||
477 | * config/rs6000/rs6000-overload.def (__builtin_vec_promote): Add second | |
478 | argument. | |
479 | ||
480 | 2021-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
481 | ||
482 | PR tree-optimization/103744 | |
483 | * tree-vect-stmts.c (vectorizable_load): Handle multi-vector | |
484 | SLP gather loads. | |
485 | ||
486 | 2021-12-17 Martin Liska <mliska@suse.cz> | |
487 | ||
488 | * doc/invoke.texi: Rename to -fstack-protector. | |
489 | ||
490 | 2021-12-17 Martin Liska <mliska@suse.cz> | |
491 | ||
492 | * doc/invoke.texi: Fix spelling issues. | |
493 | ||
494 | 2021-12-17 Tamar Christina <tamar.christina@arm.com> | |
495 | ||
496 | PR tree-optimization/103741 | |
497 | * tree-vect-stmts.c (vectorizable_operation): Check for boolean. | |
498 | ||
499 | 2021-12-17 Iain Sandoe <iain@sandoe.co.uk> | |
500 | ||
501 | * config/darwin-driver.c (darwin_driver_init): Exit from the | |
502 | option handling early if the command line is definitely enpty. | |
503 | * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Remove | |
504 | setting for the default content of weak_reference_mismatches. | |
505 | ||
506 | 2021-12-17 Iain Sandoe <iain@sandoe.co.uk> | |
507 | ||
508 | * config/rs6000/darwin.h: Drop trailing _x from the | |
509 | builtin_decls array name. | |
510 | ||
511 | 2021-12-17 Haochen Jiang <haochen.jiang@intel.com> | |
512 | ||
513 | PR target/100738 | |
514 | * config/i386/sse.md (*avx_cmp<mode>3_lt, *avx_cmp<mode>3_ltint): | |
515 | Remove MEM_P restriction and add force_reg for operands[2]. | |
516 | (*avx_cmp<mode>3_ltint_not): Add new define_insn_and_split. | |
517 | ||
518 | 2021-12-17 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
519 | ||
520 | * builtins.def (BUILT_IN_DYNAMIC_OBJECT_SIZE): New builtin. | |
521 | * tree-object-size.h: Move object size type bits enum from | |
522 | tree-object-size.c and add new value OST_DYNAMIC. | |
523 | * builtins.c (expand_builtin, fold_builtin_2): Handle it. | |
524 | (fold_builtin_object_size): Handle new builtin and adjust for | |
525 | change to compute_builtin_object_size. | |
526 | * tree-object-size.c: Include builtins.h. | |
527 | (compute_builtin_object_size): Adjust. | |
528 | (early_object_sizes_execute_one, | |
529 | dynamic_object_sizes_execute_one): New functions. | |
530 | (object_sizes_execute): Rename insert_min_max_p argument to | |
531 | early. Handle BUILT_IN_DYNAMIC_OBJECT_SIZE and call the new | |
532 | functions. | |
533 | * doc/extend.texi (__builtin_dynamic_object_size): Document new | |
534 | builtin. | |
535 | ||
536 | 2021-12-17 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
537 | ||
538 | * tree-object-size.h (compute_builtin_object_size): Return tree | |
539 | instead of HOST_WIDE_INT. | |
540 | * builtins.c (fold_builtin_object_size): Adjust. | |
541 | * gimple-fold.c (gimple_fold_builtin_strncat): Likewise. | |
542 | * ubsan.c (instrument_object_size): Likewise. | |
543 | * tree-object-size.c (object_size): New structure. | |
544 | (object_sizes): Change type to vec<object_size>. | |
545 | (initval): New function. | |
546 | (unknown): Use it. | |
547 | (size_unknown_p, size_initval, size_unknown): New functions. | |
548 | (object_sizes_unknown_p): Use it. | |
549 | (object_sizes_get): Return tree. | |
550 | (object_sizes_initialize): Rename from object_sizes_set_force | |
551 | and set VAL parameter type as tree. Add new parameter WHOLEVAL. | |
552 | (object_sizes_set): Set VAL parameter type as tree and adjust | |
553 | implementation. Add new parameter WHOLEVAL. | |
554 | (size_for_offset): New function. | |
555 | (decl_init_size): Adjust comment. | |
556 | (addr_object_size): Change PSIZE parameter to tree and adjust | |
557 | implementation. Add new parameter PWHOLESIZE. | |
558 | (alloc_object_size): Return tree. | |
559 | (compute_builtin_object_size): Return tree in PSIZE. | |
560 | (expr_object_size, call_object_size, unknown_object_size): | |
561 | Adjust for object_sizes_set change. | |
562 | (merge_object_sizes): Drop OFFSET parameter and adjust | |
563 | implementation for tree change. | |
564 | (plus_stmt_object_size): Call collect_object_sizes_for directly | |
565 | instead of merge_object_size and call size_for_offset to get net | |
566 | size. | |
567 | (cond_expr_object_size, collect_object_sizes_for, | |
568 | object_sizes_execute): Adjust for change of type from | |
569 | HOST_WIDE_INT to tree. | |
570 | (check_for_plus_in_loops_1): Likewise and skip non-positive | |
571 | offsets. | |
572 | ||
573 | 2021-12-17 Jason Merrill <jason@redhat.com> | |
574 | ||
575 | PR c++/103681 | |
576 | * common.opt (fabi-version): Add v17. | |
577 | ||
578 | 2021-12-16 Uroš Bizjak <ubizjak@gmail.com> | |
579 | ||
580 | PR target/103571 | |
581 | * config/i386/i386.h (VALID_AVX256_REG_MODE): Add V16HFmode. | |
582 | (VALID_AVX256_REG_OR_OI_VHF_MODE): Replace with ... | |
583 | (VALID_AVX256_REG_OR_OI_MODE): ... this. Remove V16HFmode. | |
584 | (VALID_AVX512F_SCALAR_MODE): Remove HImode and HFmode. | |
585 | (VALID_AVX512FP16_SCALAR_MODE): New. | |
586 | (VALID_AVX512F_REG_MODE): Add V32HFmode. | |
587 | (VALID_SSE2_REG_MODE): Add V8HFmode, V4HFmode and V2HFmode. | |
588 | (VALID_SSE2_REG_VHF_MODE): Remove. | |
589 | (VALID_INT_MODE_P): Add V2HFmode. | |
590 | * config/i386/i386.c (function_arg_advance_64): | |
591 | Remove explicit mention of V16HFmode and V32HFmode. | |
592 | (ix86_hard_regno_mode_ok): Remove explicit mention of XImode | |
593 | and V32HFmode, use VALID_AVX512F_REG_OR_XI_MODE instead. | |
594 | Use VALID_AVX512FP_SCALAR_MODE for TARGET_aVX512FP16. | |
595 | Use VALID_AVX256_REG_OR_OI_MODE instead of | |
596 | VALID_AVX256_REG_OR_OI_VHF_MODE and VALID_SSE2_REG_MODE instead | |
597 | of VALID_SSE2_REG_VHF_MODE. | |
598 | (ix86_set_reg_reg_cost): Remove usge of VALID_AVX512FP16_REG_MODE. | |
599 | (ix86_vector_mode_supported): Ditto. | |
600 | ||
601 | 2021-12-16 Martin Liska <mliska@suse.cz> | |
602 | ||
603 | PR c++/103696 | |
604 | * attribs.c (decl_attributes): Check if | |
605 | target_option_current_node is changed. | |
606 | ||
607 | 2021-12-16 Martin Liska <mliska@suse.cz> | |
608 | ||
609 | * doc/invoke.texi: Add missing dash. | |
610 | ||
611 | 2021-12-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
612 | ||
613 | * config/rs6000/rs6000-c.c (resolution): New enum. | |
614 | (resolve_vec_mul): New function. | |
615 | (resolve_vec_cmpne): Likewise. | |
616 | (resolve_vec_adde_sube): Likewise. | |
617 | (resolve_vec_addec_subec): Likewise. | |
618 | (resolve_vec_splats): Likewise. | |
619 | (resolve_vec_extract): Likewise. | |
620 | (resolve_vec_insert): Likewise. | |
621 | (resolve_vec_step): Likewise. | |
622 | (find_instance): Likewise. | |
623 | (altivec_resolve_overloaded_builtin): Many cleanups. Call factored-out | |
624 | functions. Move variable declarations closer to uses. Add commentary. | |
625 | Remove unnecessary levels of braces. Avoid use of gotos. Change | |
626 | misleading variable names. Use switches over if-else-if chains. | |
627 | ||
628 | 2021-12-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
629 | ||
630 | PR target/103729 | |
631 | * config/aarch64/aarch64-simd.md (aarch64_movv8di): Allow big endian | |
632 | targets to move V8DI. | |
633 | ||
634 | 2021-12-16 Tobias Burnus <tobias@codesourcery.com> | |
635 | ||
636 | PR driver/103644 | |
637 | * gcc.c (check_offload_target_name): Add 'default' and 'disable' | |
638 | to the candidate list. | |
639 | ||
640 | 2021-12-15 Iain Sandoe <iain@sandoe.co.uk> | |
641 | ||
642 | * configure: Regenerate. | |
643 | ||
644 | 2021-12-15 Roger Sayle <roger@nextmovesoftware.com> | |
645 | ||
646 | * config/nvptx/nvptx-opts.h (ptx_isa): PTX_ISA_SM75 and PTX_ISA_SM80 | |
647 | ISA levels. | |
648 | * config/nvptx/nvptx.opt: Add sm_75 and sm_80 to -misa. | |
649 | * config/nvptx/nvptx.h (TARGET_SM75, TARGET_SM80): | |
650 | New helper macros to conditionalize functionality on target ISA. | |
651 | * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ | |
652 | support for the new ISA levels. | |
653 | * config/nvptx/nvptx.c (nvptx_file_start): Add support for TARGET_SM75 | |
654 | and TARGET_SM80. | |
655 | * config/nvptx/nvptx.md (define_c_enum "unspec"): New UNSPEC_TANH. | |
656 | (define_mode_iterator HSFM): New iterator for HFmode and SFmode. | |
657 | (exp2hf2): New define_insn controlled by TARGET_SM75. | |
658 | (tanh<mode>2): New define_insn controlled by TARGET_SM75. | |
659 | (sminhf3, smaxhf3): New define_isnns controlled by TARGET_SM80. | |
660 | ||
661 | 2021-12-15 Tom de Vries <tdevries@suse.de> | |
662 | ||
663 | * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_7_0. | |
664 | * config/nvptx/nvptx.c (nvptx_file_start): Handle TARGET_PTX_7_0. | |
665 | * config/nvptx/nvptx.h (TARGET_PTX_7_0): New macro. | |
666 | * config/nvptx/nvptx.opt (ptx_version): Add 7.0. | |
667 | ||
668 | 2021-12-15 Richard Sandiford <richard.sandiford@arm.com> | |
669 | Tamar Christina <tamar.christina@arm.com> | |
670 | ||
671 | PR target/103094 | |
672 | * config/aarch64/aarch64.c (aarch64_short_vector_p): Return false | |
673 | for structure modes, rather than ignoring the type in that case. | |
674 | ||
675 | 2021-12-15 Tamar Christina <tamar.christina@arm.com> | |
676 | ||
677 | PR rtl-optimization/103350 | |
678 | * ree.c (add_removable_extension): Don't stop at first definition but | |
679 | inspect all. | |
680 | ||
681 | 2021-12-15 Jakub Jelinek <jakub@redhat.com> | |
682 | ||
683 | PR debug/103619 | |
684 | * dwarf2cfi.c (dwf_cfa_reg): Remove gcc_assert. | |
685 | (operator==, operator!=): New overloaded operators. | |
686 | (dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_offset, | |
687 | dwarf2out_frame_debug_expr): Compare vars with cfa_reg type directly | |
688 | with REG rtxes rather than with dwf_cfa_reg results on those REGs. | |
689 | (create_cie_data): Use stack_pointer_rtx instead of | |
690 | gen_rtx_REG (Pmode, STACK_POINTER_REGNUM). | |
691 | (execute_dwarf2_frame): Use hard_frame_pointer_rtx instead of | |
692 | gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM). | |
693 | ||
694 | 2021-12-15 Martin Liska <mliska@suse.cz> | |
695 | ||
696 | PR target/103661 | |
697 | * config/i386/i386-builtins.c (fold_builtin_cpu): Compare to 0 | |
698 | as API expects that non-zero values are returned (do that | |
699 | it mask == 31). | |
700 | For "avx512vbmi2" argument, we return now 1 << 31, which is a | |
701 | negative integer value. | |
702 | ||
703 | 2021-12-15 Haochen Jiang <haochen.jiang@intel.com> | |
704 | ||
705 | PR target/101796 | |
706 | * config/i386/predicates.md (const_vector_operand): | |
707 | Add new predicate. | |
708 | * config/i386/sse.md(<insn><mode>3<mask_name>): | |
709 | Add new define_split below. | |
710 | ||
711 | 2021-12-15 Michael Meissner <meissner@the-meissners.org> | |
712 | ||
713 | * config/rs6000/rs6000.md (UNSPEC_XXSPLTIDP_CONST): New unspec. | |
714 | (UNSPEC_XXSPLTIW_CONST): New unspec. | |
715 | (movsf_hardfloat): Add support for generating XXSPLTIDP. | |
716 | (mov<mode>_hardfloat32): Likewise. | |
717 | (mov<mode>_hardfloat64): Likewise. | |
718 | (xxspltidp_<mode>_internal): New insns. | |
719 | (xxspltiw_<mode>_internal): New insns. | |
720 | (splitters for SF/DFmode): Add new splitters for XXSPLTIDP. | |
721 | ||
722 | 2021-12-15 Michael Meissner <meissner@the-meissners.org> | |
723 | ||
724 | * config/rs6000/predicates.md (easy_fp_constant): Add support for | |
725 | generating XXSPLTIDP. | |
726 | (vsx_prefixed_constant): Likewise. | |
727 | (easy_vector_constant): Likewise. | |
728 | * config/rs6000/rs6000-protos.h (constant_generates_xxspltidp): | |
729 | New declaration. | |
730 | * config/rs6000/rs6000.c (output_vec_const_move): Add support for | |
731 | generating XXSPLTIDP. | |
732 | (prefixed_xxsplti_p): Likewise. | |
733 | (constant_generates_xxspltidp): New function. | |
734 | * config/rs6000/rs6000.opt (-msplat-float-constant): New debug option. | |
735 | ||
736 | 2021-12-15 Michael Meissner <meissner@linux.ibm.com> | |
737 | ||
738 | * config/rs6000/constraints.md (eP): Update comment. | |
739 | * config/rs6000/predicates.md (easy_fp_constant): Add support for | |
740 | generating XXSPLTIW. | |
741 | (vsx_prefixed_constant): New predicate. | |
742 | (easy_vector_constant): Add support for | |
743 | generating XXSPLTIW. | |
744 | * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): New | |
745 | declaration. | |
746 | (constant_generates_xxspltiw): Likewise. | |
747 | * config/rs6000/rs6000.c (xxspltib_constant_p): Generate XXSPLTIW | |
748 | if possible instead of XXSPLTIB and sign extending the constant. | |
749 | (output_vec_const_move): Add support for XXSPLTIW. | |
750 | (prefixed_xxsplti_p): New function. | |
751 | (constant_generates_xxspltiw): New function. | |
752 | * config/rs6000/rs6000.md (prefixed attribute): Add support to | |
753 | mark XXSPLTI* instructions as being prefixed. | |
754 | * config/rs6000/rs6000.opt (-msplat-word-constant): New debug | |
755 | switch. | |
756 | * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add support for | |
757 | generating XXSPLTIW or XXSPLTIDP. | |
758 | (vsx_mov<mode>_32bit): Likewise. | |
759 | * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the | |
760 | eP constraint. | |
761 | ||
762 | 2021-12-15 Michael Meissner <meissner@the-meissners.org> | |
763 | ||
764 | * config/rs6000/constraints.md (eQ): New constraint. | |
765 | * config/rs6000/predicates.md (easy_fp_constant): Add support for | |
766 | generating the LXVKQ instruction. | |
767 | (easy_vector_constant_ieee128): New predicate. | |
768 | (easy_vector_constant): Add support for generating the LXVKQ | |
769 | instruction. | |
770 | * config/rs6000/rs6000-protos.h (constant_generates_lxvkq): New | |
771 | declaration. | |
772 | * config/rs6000/rs6000.c (output_vec_const_move): Add support for | |
773 | generating LXVKQ. | |
774 | (constant_generates_lxvkq): New function. | |
775 | * config/rs6000/rs6000.opt (-mieee128-constant): New debug | |
776 | option. | |
777 | * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add support for | |
778 | generating LXVKQ. | |
779 | (vsx_mov<mode>_32bit): Likewise. | |
780 | * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the | |
781 | eQ constraint. | |
782 | ||
783 | 2021-12-15 Michael Meissner <meissner@the-meissners.org> | |
784 | ||
785 | * config/rs6000/rs6000-protos.h (VECTOR_128BIT_BITS): New macro. | |
786 | (VECTOR_128BIT_BYTES): Likewise. | |
787 | (VECTOR_128BIT_HALF_WORDS): Likewise. | |
788 | (VECTOR_128BIT_WORDS): Likewise. | |
789 | (VECTOR_128BIT_DOUBLE_WORDS): Likewise. | |
790 | (vec_const_128bit_type): New structure type. | |
791 | (vec_const_128bit_to_bytes): New declaration. | |
792 | * config/rs6000/rs6000.c (constant_int_to_128bit_vector): New | |
793 | helper function. | |
794 | (constant_fp_to_128bit_vector): New helper function. | |
795 | (vec_const_128bit_to_bytes): New function. | |
796 | ||
797 | 2021-12-15 Alexandre Oliva <oliva@adacore.com> | |
798 | ||
799 | PR target/100518 | |
800 | * builtins.c (try_store_by_multiple_pieces): Drop address | |
801 | conversion to ptr_mode. | |
802 | ||
803 | 2021-12-15 Alexandre Oliva <oliva@adacore.com> | |
804 | ||
805 | PR middle-end/100843 | |
806 | * builtins.c (try_store_by_multiple_pieces): Fail if min_len | |
807 | is greater than max_len. | |
808 | ||
809 | 2021-12-14 liuhongt <hongtao.liu@intel.com> | |
810 | ||
811 | PR target/103682 | |
812 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check | |
813 | is_gimple_assign before gimple_assign_rhs_code. | |
814 | ||
815 | 2021-12-14 Sören Tempel <soeren@soeren-tempel.net> | |
816 | ||
817 | * ginclude/stddef.h (__DEFINED_ptrdiff_t): Add support for musl | |
818 | libc typedef macro guard. | |
819 | (__DEFINED_size_t): Ditto. | |
820 | (__DEFINED_wchar_t): Ditto. | |
821 | ||
822 | 2021-12-14 JoJo R <rjiejie@linux.alibaba.com> | |
823 | ||
824 | * regrename.c (find_rename_reg): Return satisfied regno | |
825 | if instruction is noop move. | |
826 | ||
827 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
828 | ||
829 | * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Rename | |
830 | rs6000_builtin_decls_x to rs6000_builtin_decls. | |
831 | (altivec_resolve_overloaded_builtin): Likewise. Also rename | |
832 | rs6000_builtin_info_x to rs6000_builtin_info. | |
833 | * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Rename | |
834 | rs6000_builtin_info_x to rs6000_builtin_info. | |
835 | (rs6000_builtin_is_supported): Likewise. | |
836 | (rs6000_gimple_fold_mma_builtin): Likewise. Also rename | |
837 | rs6000_builtin_decls_x to rs6000_builtin_decls. | |
838 | (rs6000_gimple_fold_builtin): Rename rs6000_builtin_info_x to | |
839 | rs6000_builtin_info. | |
840 | (cpu_expand_builtin): Likewise. | |
841 | (rs6000_expand_builtin): Likewise. | |
842 | (rs6000_init_builtins): Likewise. Also rename rs6000_builtin_decls_x | |
843 | to rs6000_builtin_decls. | |
844 | (rs6000_builtin_decl): Rename rs6000_builtin_decls_x to | |
845 | rs6000_builtin_decls. | |
846 | * config/rs6000/rs6000-gen-builtins.c (write_decls): In generated code, | |
847 | rename rs6000_builtin_decls_x to rs6000_builtin_decls, and rename | |
848 | rs6000_builtin_info_x to rs6000_builtin_info. | |
849 | (write_bif_static_init): In generated code, rename | |
850 | rs6000_builtin_info_x to rs6000_builtin_info. | |
851 | (write_init_bif_table): In generated code, rename | |
852 | rs6000_builtin_decls_x to rs6000_builtin_decls, and rename | |
853 | rs6000_builtin_info_x to rs6000_builtin_info. | |
854 | (write_init_ovld_table): In generated code, rename | |
855 | rs6000_builtin_decls_x to rs6000_builtin_decls. | |
856 | (write_init_file): Likewise. | |
857 | * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): | |
858 | Likewise. | |
859 | (rs6000_builtin_md_vectorized_function): Likewise. | |
860 | (rs6000_builtin_reciprocal): Likewise. | |
861 | (add_condition_to_bb): Likewise. | |
862 | (rs6000_atomic_assign_expand_fenv): Likewise. | |
863 | ||
864 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
865 | ||
866 | * config/rs6000/rs6000-c.c (altivec_resolve_new_overloaded_builtin): | |
867 | Remove forward declaration. | |
868 | (rs6000_new_builtin_type_compatible): Rename to | |
869 | rs6000_builtin_type_compatible. | |
870 | (rs6000_builtin_type_compatible): Remove. | |
871 | (altivec_resolve_overloaded_builtin): Remove. | |
872 | (altivec_build_new_resolved_builtin): Rename to | |
873 | altivec_build_resolved_builtin. | |
874 | (altivec_resolve_new_overloaded_builtin): Rename to | |
875 | altivec_resolve_overloaded_builtin. Remove static keyword. Adjust | |
876 | called function names. | |
877 | * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Remove | |
878 | forward declaration. | |
879 | (rs6000_gimple_fold_new_builtin): Likewise. | |
880 | (rs6000_invalid_new_builtin): Rename to rs6000_invalid_builtin. | |
881 | (rs6000_gimple_fold_builtin): Remove. | |
882 | (rs6000_new_builtin_valid_without_lhs): Rename to | |
883 | rs6000_builtin_valid_without_lhs. | |
884 | (rs6000_new_builtin_is_supported): Rename to | |
885 | rs6000_builtin_is_supported. | |
886 | (rs6000_gimple_fold_new_mma_builtin): Rename to | |
887 | rs6000_gimple_fold_mma_builtin. | |
888 | (rs6000_gimple_fold_new_builtin): Rename to | |
889 | rs6000_gimple_fold_builtin. Remove static keyword. Adjust called | |
890 | function names. | |
891 | (rs6000_expand_builtin): Remove. | |
892 | (new_cpu_expand_builtin): Rename to cpu_expand_builtin. | |
893 | (new_mma_expand_builtin): Rename to mma_expand_builtin. | |
894 | (new_htm_spr_num): Rename to htm_spr_num. | |
895 | (new_htm_expand_builtin): Rename to htm_expand_builtin. Change name | |
896 | of called function. | |
897 | (rs6000_expand_new_builtin): Rename to rs6000_expand_builtin. Remove | |
898 | static keyword. Adjust called function names. | |
899 | (rs6000_new_builtin_decl): Rename to rs6000_builtin_decl. Remove | |
900 | static keyword. | |
901 | (rs6000_builtin_decl): Remove. | |
902 | * config/rs6000/rs6000-gen-builtins.c (write_decls): In gnerated code, | |
903 | rename rs6000_new_builtin_is_supported to rs6000_builtin_is_supported. | |
904 | * config/rs6000/rs6000-internal.h (rs6000_invalid_new_builtin): Rename | |
905 | to rs6000_invalid_builtin. | |
906 | * config/rs6000/rs6000.c (rs6000_new_builtin_vectorized_function): | |
907 | Rename to rs6000_builtin_vectorized_function. | |
908 | (rs6000_new_builtin_md_vectorized_function): Rename to | |
909 | rs6000_builtin_md_vectorized_function. | |
910 | (rs6000_builtin_vectorized_function): Remove. | |
911 | (rs6000_builtin_md_vectorized_function): Remove. | |
912 | ||
913 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
914 | ||
915 | * config/rs6000/rs6000-builtin.def: Delete. | |
916 | * config/rs6000/rs6000-call.c (builtin_compatibility): Delete. | |
917 | (builtin_description): Delete. | |
918 | (builtin_hash_struct): Delete. | |
919 | (builtin_hasher): Delete. | |
920 | (builtin_hash_table): Delete. | |
921 | (builtin_hasher::hash): Delete. | |
922 | (builtin_hasher::equal): Delete. | |
923 | (rs6000_builtin_info_type): Delete. | |
924 | (rs6000_builtin_info): Delete. | |
925 | (bdesc_compat): Delete. | |
926 | (bdesc_3arg): Delete. | |
927 | (bdesc_4arg): Delete. | |
928 | (bdesc_dst): Delete. | |
929 | (bdesc_2arg): Delete. | |
930 | (bdesc_altivec_preds): Delete. | |
931 | (bdesc_abs): Delete. | |
932 | (bdesc_1arg): Delete. | |
933 | (bdesc_0arg): Delete. | |
934 | (bdesc_htm): Delete. | |
935 | (bdesc_mma): Delete. | |
936 | (rs6000_overloaded_builtin_p): Delete. | |
937 | (rs6000_overloaded_builtin_name): Delete. | |
938 | (htm_spr_num): Delete. | |
939 | (rs6000_builtin_is_supported_p): Delete. | |
940 | (rs6000_gimple_fold_mma_builtin): Delete. | |
941 | (gt-rs6000-call.h): Remove include directive. | |
942 | * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Delete. | |
943 | (rs6000_builtin_is_supported_p): Delete. | |
944 | (rs6000_overloaded_builtin_name): Delete. | |
945 | * config/rs6000/rs6000.c (rs6000_builtin_decls): Delete. | |
946 | (rs6000_debug_reg_global): Remove reference to RS6000_BUILTIN_COUNT. | |
947 | * config/rs6000/rs6000.h (rs6000_builtins): Delete. | |
948 | (altivec_builtin_types): Delete. | |
949 | (rs6000_builtin_decls): Delete. | |
950 | * config/rs6000/t-rs6000 (TM_H): Don't add rs6000-builtin.def. | |
951 | ||
952 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
953 | ||
954 | * config/rs6000/rs6000-builtin-new.def: Rename to... | |
955 | * config/rs6000/rs6000-builtins.def: ...this. | |
956 | * config/rs6000/rs6000-gen-builtins.c: Adjust header commentary. | |
957 | * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Rename | |
958 | rs6000-builtin-new.def to rs6000-builtins.def. | |
959 | (rs6000-builtins.c): Likewise. | |
960 | ||
961 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
962 | ||
963 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Remove. | |
964 | * config/rs6000/rs6000.h (altivec_overloaded_builtins): Remove. | |
965 | ||
966 | 2021-12-14 Peter Bergner <bergner@linux.ibm.com> | |
967 | ||
968 | PR target/103548 | |
969 | * config/rs6000/mma.md (UNSPEC_MMA_ASSEMBLE): Rename unspec from this... | |
970 | (UNSPEC_VSX_ASSEMBLE): ...to this. | |
971 | (UNSPECV_MMA_ASSEMBLE): New unspecv. | |
972 | (vsx_assemble_pair): Use UNSPEC_VSX_ASSEMBLE. | |
973 | (*vsx_assemble_pair): Likewise. | |
974 | (mma_assemble_acc): Use UNSPECV_MMA_ASSEMBLE. | |
975 | (*mma_assemble_acc): Likewise. | |
976 | * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle | |
977 | UNSPEC_VOLATILE. Use UNSPEC_VSX_ASSEMBLE and UNSPECV_MMA_ASSEMBLE. | |
978 | ||
979 | 2021-12-14 Uroš Bizjak <ubizjak@gmail.com> | |
980 | ||
981 | PR target/103571 | |
982 | * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate) | |
983 | <case E_V8HFmode>: Implement for TARGET_SSE2. | |
984 | <case E_V16HFmode>: Implement for TARGET_AVX. | |
985 | <case E_V32HFmode>: Implement for TARGET_AVX512F. | |
986 | (ix86_expand_vector_set_var): Handle V32HFmode | |
987 | without TARGET_AVX512BW. | |
988 | (ix86_expand_vector_extract) | |
989 | <case E_V8HFmode>: Implement for TARGET_SSE2. | |
990 | <case E_V16HFmode>: Implement for TARGET_AVX. | |
991 | <case E_V32HFmode>: Implement for TARGET_AVX512BW. | |
992 | (expand_vec_perm_broadcast_1) <case E_V8HFmode>: New. | |
993 | * config/i386/sse.md (VI12HF_AVX512VL): Remove | |
994 | TARGET_AVX512FP16 condition. | |
995 | (V): Ditto. | |
996 | (V_256_512): Ditto. | |
997 | (avx_vbroadcastf128_<mode>): Use V_256H mode iterator. | |
998 | ||
999 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
1000 | ||
1001 | * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Remove | |
1002 | test for new_builtins_are_live and simplify. | |
1003 | * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Remove | |
1004 | dead function. | |
1005 | (altivec_resolve_overloaded_builtin): Remove test for | |
1006 | new_builtins_are_live and simplify. | |
1007 | * config/rs6000/rs6000-call.c (altivec_init_builtins): Remove forward | |
1008 | declaration. | |
1009 | (builtin_function_type): Likewise. | |
1010 | (rs6000_common_init_builtins): Likewise. | |
1011 | (htm_init_builtins): Likewise. | |
1012 | (mma_init_builtins): Likewise. | |
1013 | (def_builtin): Remove dead function. | |
1014 | (rs6000_expand_zeroop_builtin): Likewise. | |
1015 | (rs6000_expand_mtfsf_builtin): Likewise. | |
1016 | (rs6000_expand_mtfsb_builtin): Likewise. | |
1017 | (rs6000_expand_set_fpscr_rn_builtin): Likewise. | |
1018 | (rs6000_expand_set_fpscr_drn_builtin): Likewise. | |
1019 | (rs6000_expand_unop_builtin): Likewise. | |
1020 | (altivec_expand_abs_builtin): Likewise. | |
1021 | (rs6000_expand_binop_builtin): Likewise. | |
1022 | (altivec_expand_lxvr_builtin): Likewise. | |
1023 | (altivec_expand_lv_builtin): Likewise. | |
1024 | (altivec_expand_stxvl_builtin): Likewise. | |
1025 | (altivec_expand_stv_builtin): Likewise. | |
1026 | (mma_expand_builtin): Likewise. | |
1027 | (htm_expand_builtin): Likewise. | |
1028 | (cpu_expand_builtin): Likewise. | |
1029 | (rs6000_expand_quaternop_builtin): Likewise. | |
1030 | (rs6000_expand_ternop_builtin): Likewise. | |
1031 | (altivec_expand_dst_builtin): Likewise. | |
1032 | (altivec_expand_vec_sel_builtin): Likewise. | |
1033 | (altivec_expand_builtin): Likewise. | |
1034 | (rs6000_invalid_builtin): Likewise. | |
1035 | (rs6000_builtin_valid_without_lhs): Likewise. | |
1036 | (rs6000_gimple_fold_builtin): Remove test for new_builtins_are_live and | |
1037 | simplify. | |
1038 | (rs6000_expand_builtin): Likewise. | |
1039 | (rs6000_init_builtins): Remove tests for new_builtins_are_live and | |
1040 | simplify. | |
1041 | (rs6000_builtin_decl): Likewise. | |
1042 | (altivec_init_builtins): Remove dead function. | |
1043 | (mma_init_builtins): Likewise. | |
1044 | (htm_init_builtins): Likewise. | |
1045 | (builtin_quaternary_function_type): Likewise. | |
1046 | (builtin_function_type): Likewise. | |
1047 | (rs6000_common_init_builtins): Likewise. | |
1048 | * config/rs6000/rs6000-gen-builtins.c (write_header_file): Don't | |
1049 | declare new_builtins_are_live. | |
1050 | (write_init_bif_table): In generated code, remove test for | |
1051 | new_builtins_are_live and simplify. | |
1052 | (write_init_ovld_table): Likewise. | |
1053 | (write_init_file): Don't initialize new_builtins_are_live. | |
1054 | * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove | |
1055 | test for new_builtins_are_live and simplify. | |
1056 | (rs6000_builtin_md_vectorized_function): Likewise. | |
1057 | (rs6000_builtin_reciprocal): Likewise. | |
1058 | (add_condition_to_bb): Likewise. | |
1059 | (rs6000_atomic_assign_expand_fenv): Likewise. | |
1060 | ||
1061 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
1062 | ||
1063 | PR target/103625 | |
1064 | * config/rs6000/rs6000-builtin-new.def (__builtin_altivec_vcmpequd): | |
1065 | Move to power8-vector stanza. | |
1066 | (__builtin_altivec_vcmpequd_p): Likewise. | |
1067 | (__builtin_altivec_vcmpgtsd): Likewise. | |
1068 | (__builtin_altivec_vcmpgtsd_p): Likewise. | |
1069 | (__builtin_altivec_vcmpgtud): Likewise. | |
1070 | (__builtin_altivec_vcmpgtud_p): Likewise. | |
1071 | ||
1072 | 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> | |
1073 | ||
1074 | PR target/103623 | |
1075 | * config/rs6000/rs6000-builtin-new.def (__builtin_pack_longdouble): Add | |
1076 | ibmld attribute. | |
1077 | (__builtin_unpack_longdouble): Likewise. | |
1078 | * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Add special | |
1079 | handling for ibmld attribute. | |
1080 | * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add isibmld. | |
1081 | (parse_bif_attrs): Handle ibmld. | |
1082 | (write_decls): Likewise. | |
1083 | (write_bif_static_init): Likewise. | |
1084 | ||
1085 | 2021-12-14 Jan Hubicka <hubicka@ucw.cz> | |
1086 | ||
1087 | PR ipa/103585 | |
1088 | * ipa-modref-tree.c (modref_access_node::range_info_useful_p): Handle | |
1089 | MODREF_GLOBAL_MEMORY_PARM. | |
1090 | (modref_access_node::dump): Likewise. | |
1091 | (modref_access_node::get_call_arg): Likewise. | |
1092 | * ipa-modref-tree.h (enum modref_special_parms): Add | |
1093 | MODREF_GLOBAL_MEMORY_PARM. | |
1094 | (modref_access_node::useful_for_kill): Handle | |
1095 | MODREF_GLOBAL_MEMORY_PARM. | |
1096 | (modref:tree::merge): Add promote_unknown_to_global. | |
1097 | * ipa-modref.c (verify_arg):New function. | |
1098 | (may_access_nonescaping_parm_p): New function. | |
1099 | (modref_access_analysis::record_global_memory_load): New member | |
1100 | function. | |
1101 | (modref_access_analysis::record_global_memory_store): Likewise. | |
1102 | (modref_access_analysis::process_fnspec): Distingush global and local | |
1103 | memory. | |
1104 | (modref_access_analysis::analyze_call): Likewise. | |
1105 | * tree-ssa-alias.c (ref_may_access_global_memory_p): New function. | |
1106 | (modref_may_conflict): Use it. | |
1107 | ||
1108 | 2021-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
1109 | ||
1110 | * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): | |
1111 | Define AARCH64_LS64_BUILTIN_LD64B, AARCH64_LS64_BUILTIN_ST64B, | |
1112 | AARCH64_LS64_BUILTIN_ST64BV, AARCH64_LS64_BUILTIN_ST64BV0. | |
1113 | (aarch64_init_ls64_builtin_decl): Helper function. | |
1114 | (aarch64_init_ls64_builtins): Helper function. | |
1115 | (aarch64_init_ls64_builtins_types): Helper function. | |
1116 | (aarch64_general_init_builtins): Init LS64 intrisics for | |
1117 | TARGET_LS64. | |
1118 | (aarch64_expand_builtin_ls64): LS64 intrinsics expander. | |
1119 | (aarch64_general_expand_builtin): Handle aarch64_expand_builtin_ls64. | |
1120 | (ls64_builtins_data): New helper struct. | |
1121 | (v8di_UP): New define. | |
1122 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
1123 | __ARM_FEATURE_LS64. | |
1124 | * config/aarch64/aarch64.c (aarch64_classify_address): Enforce the | |
1125 | V8DI range (7-bit signed scaled) for both ends of the range. | |
1126 | * config/aarch64/aarch64-simd.md (movv8di): New pattern. | |
1127 | (aarch64_movv8di): New pattern. | |
1128 | * config/aarch64/aarch64.h (AARCH64_ISA_LS64): New define. | |
1129 | (TARGET_LS64): New define. | |
1130 | * config/aarch64/aarch64.md: Add UNSPEC_LD64B, UNSPEC_ST64B, | |
1131 | UNSPEC_ST64BV and UNSPEC_ST64BV0. | |
1132 | (ld64b): New define_insn. | |
1133 | (st64b): New define_insn. | |
1134 | (st64bv): New define_insn. | |
1135 | (st64bv0): New define_insn. | |
1136 | * config/aarch64/arm_acle.h (data512_t): New type derived from | |
1137 | __arm_data512_t. | |
1138 | (__arm_data512_t): New internal type. | |
1139 | (__arm_ld64b): New intrinsic. | |
1140 | (__arm_st64b): New intrinsic. | |
1141 | (__arm_st64bv): New intrinsic. | |
1142 | (__arm_st64bv0): New intrinsic. | |
1143 | * config/arm/types.md: Add new type ls64. | |
1144 | ||
1145 | 2021-12-14 Olivier Hainque <hainque@adacore.com> | |
1146 | ||
1147 | * config/i386/t-vxworks: Drop the fPIC multilibs. | |
1148 | ||
1149 | 2021-12-14 Fred Konrad <konrad@adacore.com> | |
1150 | ||
1151 | * config/rs6000/t-vxworks: Drop the fPIC multilib. | |
1152 | ||
1153 | 2021-12-13 Vladimir N. Makarov <vmakarov@redhat.com> | |
1154 | ||
1155 | PR target/99531 | |
1156 | * ira-costs.c (record_operand_costs): Do not take pseudo class | |
1157 | calculated on the 1st iteration into account when processing move | |
1158 | involving the pseudo and a hard register. | |
1159 | ||
1160 | 2021-12-13 Roger Sayle <roger@nextmovesoftware.com> | |
1161 | ||
1162 | * config/i386/i386.md (define_split any_or:SWI248 -> orb %?h): | |
1163 | Optimize the case where the integer constant operand is zero. | |
1164 | ||
1165 | 2021-12-13 Doug Rupp <rupp@adacore.com> | |
1166 | Olivier Hainque <hainque@adacore.com> | |
1167 | ||
1168 | * config/vxworks.h (VXWORKS_LINK_OS_SPEC): New spec. | |
1169 | (VXWORKS_BASE_LINK_SPEC): New spec, using the former. | |
1170 | (VXWORKS_EXTRA_LINK_SPEC): New spec for old and new VxWorks. | |
1171 | (VXWORKS_LINK_SPEC): Combo of BASE and EXTRA specs. | |
1172 | * config/rs6000/vxworks.h (VXWORKS_LINK_OS_SPEC): Empty. | |
1173 | (LINK_OS_EXTRA_SPEC32): Use VXWORKS_LINK_SPEC. | |
1174 | (LINK_OS_EXTRA_SPEC64): Likewise. | |
1175 | ||
1176 | 2021-12-13 Fred Konrad <konrad@adacore.com> | |
1177 | Olivier Hainque <hainque@adacore.com> | |
1178 | ||
1179 | * config/vxworks.h (VXWORKS_BASE_LIBS_RTP): Guard -lc_internal | |
1180 | on !shared+!non-static and document. | |
1181 | (VXWORKS_LIB_SPEC): Remove the bits intended to drag the | |
1182 | init/fini functions from libc_internal in the shared lib case. | |
1183 | (VX_CRTBEGIN_SPEC/VX_CRTEND_SPEC): Use vxcrtstuff objects also in | |
1184 | configurations with shared lib and INITFINI_ARRAY support. | |
1185 | ||
1186 | 2021-12-13 Fred Konrad <konrad@adacore.com> | |
1187 | Olivier Hainque <hainque@adacore.com> | |
1188 | ||
1189 | * config/vx-common.h: Define REAL_LIBGCC_SPEC since the | |
1190 | '-non-static' option is not standard. | |
1191 | * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Implement the LIBGCC_SPEC | |
1192 | since REAL_LIBGCC_SPEC is used now. | |
1193 | (STARTFILE_PREFIX_SPEC): Use the PIC VSB when building shared libraries | |
1194 | or non-static binaries. | |
1195 | ||
1196 | 2021-12-13 Jan Hubicka <hubicka@ucw.cz> | |
1197 | ||
1198 | * common.opt: Add -fipa-strict-aliasing. | |
1199 | * doc/invoke.texi: Document -fipa-strict-aliasing. | |
1200 | * ipa-modref.c (modref_access_analysis::record_access): Honor | |
1201 | -fipa-strict-aliasing. | |
1202 | (modref_access_analysis::record_access_lto): Likewise. | |
1203 | ||
1204 | 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1205 | ||
1206 | * config/aarch64/aarch64-arches.def (armv8.8-a): Define. | |
1207 | * config/aarch64/aarch64.h (AARCH64_FL_V8_8): Define. | |
1208 | (AARCH64_FL_FOR_ARCH8_8): Define. | |
1209 | * doc/invoke.texi: Document -march=armv8.8-a. | |
1210 | ||
1211 | 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1212 | ||
1213 | * config/aarch64/aarch64.c (aarch64_expand_setmem_mops): Define. | |
1214 | (aarch64_expand_setmem): Adjust for TARGET_MOPS. | |
1215 | * config/aarch64/aarch64.h (CLEAR_RATIO): Adjust for TARGET_MOPS. | |
1216 | (SET_RATIO): Likewise. | |
1217 | * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_SETMEM. | |
1218 | (aarch64_setmemdi): Define. | |
1219 | (setmemdi): Adjust for TARGET_MOPS. | |
1220 | * config/aarch64/aarch64.opt (aarch64-mops-memset-size-threshold): | |
1221 | New param. | |
1222 | ||
1223 | 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1224 | ||
1225 | * config/aarch64/aarch64.md (aarch64_movmemdi): Define. | |
1226 | (movmemdi): Define. | |
1227 | (unspec): Add UNSPEC_MOVMEM. | |
1228 | * config/aarch64/aarch64.opt (aarch64-mops-memmove-size-threshold): | |
1229 | New param. | |
1230 | ||
1231 | 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1232 | ||
1233 | * config/aarch64/aarch64-option-extensions.def (mops): Define. | |
1234 | * config/aarch64/aarch64.c (aarch64_expand_cpymem_mops): Define. | |
1235 | (aarch64_expand_cpymem): Define. | |
1236 | * config/aarch64/aarch64.h (AARCH64_FL_MOPS): Define. | |
1237 | (AARCH64_ISA_MOPS): Define. | |
1238 | (TARGET_MOPS): Define. | |
1239 | (MOVE_RATIO): Adjust for TARGET_MOPS. | |
1240 | * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_CPYMEM. | |
1241 | (aarch64_cpymemdi): New pattern. | |
1242 | (cpymemdi): Adjust for TARGET_MOPS. | |
1243 | * config/aarch64/aarch64.opt (aarch64-mops-memcpy-size-threshol): | |
1244 | New param. | |
1245 | * doc/invoke.texi (AArch64 Options): Document +mops. | |
1246 | ||
1247 | 2021-12-13 Martin Liska <mliska@suse.cz> | |
1248 | ||
1249 | PR ipa/103636 | |
1250 | * ipa-inline.c (can_inline_edge_p): Move logic checking | |
1251 | no_profile_instrument_function logic to ... | |
1252 | (can_early_inline_edge_p): ... here. | |
1253 | ||
1254 | 2021-12-13 Olivier Hainque <hainque@adacore.com> | |
1255 | ||
1256 | * config/vxworks/_yvals.h: #include yvals.h also if | |
1257 | defined(__RTP__). | |
1258 | ||
1259 | 2021-12-13 Olivier Hainque <hainque@adacore.com> | |
1260 | ||
1261 | * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Define | |
1262 | _C99 for C++. | |
1263 | ||
1264 | 2021-12-13 Olivier Hainque <hainque@adacore.com> | |
1265 | ||
1266 | * config/t-vxworks: Clear NATIVE_SYSTEM_HEADER_DIR. | |
1267 | * config/vxworks.h (SYSROOT_HEADERS_SUFFIX_SPEC): Define, for | |
1268 | VxWorks 7 and earlier. | |
1269 | (VXWORKS_ADDITIONAL_CPP_SPEC): Simplify accordingly. | |
1270 | (STARTFILE_PREFIX_SPEC): Adjust accordingly. | |
1271 | * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Adjust. | |
1272 | ||
1273 | 2021-12-13 Martin Liska <mliska@suse.cz> | |
1274 | ||
1275 | * doc/extend.texi: Use @item for the first @itemx entry. | |
1276 | ||
1277 | 2021-12-13 Jakub Jelinek <jakub@redhat.com> | |
1278 | ||
1279 | * machmode.h (gt_pch_nx): Use gt_pointer_operator as type of second | |
1280 | argument instead of equivalent void (*) (void *, void *, void *). | |
1281 | * poly-int.h (gt_pch_nx): Likewise. | |
1282 | * wide-int.h (gt_pch_nx): Likewise. | |
1283 | * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Likewise. | |
1284 | ||
1285 | 2021-12-13 Jan Hubicka <hubicka@ucw.cz> | |
1286 | ||
1287 | PR ipa/103513 | |
1288 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Do not ICE | |
1289 | on ternary expression. | |
1290 | ||
1291 | 2021-12-13 Kewen Lin <linkw@linux.ibm.com> | |
1292 | ||
1293 | PR target/103515 | |
1294 | * attribs.c (decl_attributes): Check if target options change and | |
1295 | create one node if so. | |
1296 | ||
1297 | 2021-12-12 Jonathan Wakely <jwakely@redhat.com> | |
1298 | ||
1299 | * Makefile.in: Remove unique-ptr-tests.o. | |
1300 | * selftest-run-tests.c (selftest::run_tests): Remove | |
1301 | unique_ptr_tests_cc_tests. | |
1302 | * selftest.h (unique_ptr_tests_cc_tests): Remove. | |
1303 | * system.h: Check INCLUDE_MEMORY instead of INCLUDE_UNIQUE_PTR | |
1304 | and include <memory> instead of "unique-ptr.h". | |
1305 | * unique-ptr-tests.cc: Removed. | |
1306 | ||
1307 | 2021-12-12 Roger Sayle <roger@nextmovesoftware.com> | |
1308 | ||
1309 | * config/nvptx/nvptx-opts.h (ptx_isa): Add PTX_ISA_SM53 ISA level | |
1310 | to enumeration. | |
1311 | * config/nvptx/nvptx.opt: Add sm_53 to -misa. | |
1312 | * config/nvptx/nvptx-modes.def: Add support for HFmode. | |
1313 | * config/nvptx/nvptx.h (TARGET_SM53): | |
1314 | New helper macro to conditionalize functionality on target ISA. | |
1315 | * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ | |
1316 | support for the new ISA levels. | |
1317 | * config/nvptx/nvptx.c (nvtx_ptx_type_from_mode): Support new HFmode | |
1318 | with the ".f16" suffix/qualifier. | |
1319 | (nvptx_file_start): Add support for TARGET_SM53. | |
1320 | (nvptx_omp_device_kind_arch_isa): Add support for TARGET_SM53 | |
1321 | and tweak TARGET_SM35. | |
1322 | (nvptx_scalar_mode_supported_p): Target hook with conditional | |
1323 | HFmode support on TARGET_SM53 and higher. | |
1324 | (nvptx_libgcc_floating_mode_supported_p): Likewise. | |
1325 | (TARGET_SCALAR_MODE_SUPPORTED_P): Use nvptx_scalar_mode_supported_p. | |
1326 | (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Likewise, use new hook. | |
1327 | * config/nvptx/nvptx.md (*movhf_insn): New define_insn. | |
1328 | (movhf): New define_expand for HFmode moves. | |
1329 | (addhf3, subhf3, mulhf, extendhf<mode>2, trunc<mode>hf2): New | |
1330 | instructions conditional on TARGET_SM53 (i.e. -misa=sm_53). | |
1331 | ||
1332 | 2021-12-12 Jan Hubicka <hubicka@ucw.cz> | |
1333 | ||
1334 | PR ipa/103665 | |
1335 | * ipa-modref.c (modref_access_analysis::analyze): Terminate BB | |
1336 | analysis on NULL memory access. | |
1337 | * ipa-pure-const.c (analyze_function): Likewise. | |
1338 | ||
1339 | 2021-12-11 Jan Hubicka <hubicka@ucw.cz> | |
1340 | ||
1341 | * ipa-profile.c (ipa_profile): Do not update hot bb threshold. | |
1342 | ||
1343 | 2021-12-11 Jan Hubicka <hubicka@ucw.cz> | |
1344 | ||
1345 | * ipa-modref.c (get_modref_function_summary): Use ultimate_alias_target. | |
1346 | (ignore_edge): Likewise. | |
1347 | (compute_parm_map): Likewise. | |
1348 | (modref_propagate_in_scc): Likewise. | |
1349 | (modref_propagate_flags_in_scc): Likewise. | |
1350 | ||
1351 | 2021-12-10 Jason Merrill <jason@redhat.com> | |
1352 | ||
1353 | * symtab.c (symtab_node::equal_address_to): Fix comment typo. | |
1354 | ||
1355 | 2021-12-10 Doug Rupp <rupp@adacore.com> | |
1356 | ||
1357 | * config/vxworks.h (LINK_SPEC): Remove %(link_target). | |
1358 | Change %{v:-v} to %{v:-V}. | |
1359 | ||
1360 | 2021-12-10 Olivier Hainque <hainque@adacore.com> | |
1361 | ||
1362 | * config/t-vxworks: Remove assignment to STMP_FIXINC. | |
1363 | ||
1364 | 2021-12-10 Martin Liska <mliska@suse.cz> | |
1365 | ||
1366 | * params.opt: Add missing dot. | |
1367 | ||
1368 | 2021-12-10 Roger Sayle <roger@nextmovesoftware.com> | |
1369 | ||
1370 | PR ipa/103601 | |
1371 | * ipa-modref-tree.h (useful_for_kill_p): Zero width accesses aren't | |
1372 | useful for kill tracking. | |
1373 | ||
1374 | 2021-12-10 Andrew Stubbs <ams@codesourcery.com> | |
1375 | ||
1376 | * config/gcn/mkoffload.c (process_asm): Process the variable table | |
1377 | completely differently. | |
1378 | (process_obj): Encode the varaible data differently. | |
1379 | ||
1380 | 2021-12-10 Joel Hutton <joel.hutton@arm.com> | |
1381 | ||
1382 | PR tree-optimization/103523 | |
1383 | * tree-vect-loop.c (vectorizable_induction): Check for | |
1384 | PLUS_EXPR/MINUS_EXPR support. | |
1385 | ||
1386 | 2021-12-10 Cui,Lili <lili.cui@intel.com> | |
1387 | ||
1388 | * config/i386/i386.c (ix86_vector_costs::add_stmt_cost): Remove Tremont. | |
1389 | ||
1390 | 2021-12-09 Jan Hubicka <hubicka@ucw.cz> | |
1391 | ||
1392 | * doc/invoke.texi (max-inline-functions-called-once-loop-depth, | |
1393 | max-inline-functions-called-once-insns): New parameters. | |
1394 | * ipa-inline.c (check_callers): Handle | |
1395 | param_inline_functions_called_once_loop_depth and | |
1396 | param_inline_functions_called_once_insns. | |
1397 | (edge_badness): Fix linebreaks. | |
1398 | * params.opt (param=max-inline-functions-called-once-loop-depth, | |
1399 | param=max-inline-functions-called-once-insn): New params. | |
1400 | ||
1401 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1402 | ||
1403 | PR tree-optimization/103215 | |
1404 | * pointer-query.cc (access_ref::merge_ref): Extend the offset and | |
1405 | size of the merged object instead of using the larger. | |
1406 | ||
1407 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1408 | ||
1409 | PR middle-end/101751 | |
1410 | * doc/extend.texi (attribute access): Adjust. | |
1411 | * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes): | |
1412 | Treat access mode none on a void* argument as expecting as few as | |
1413 | zero bytes. | |
1414 | ||
1415 | 2021-12-09 Jakub Jelinek <jakub@redhat.com> | |
1416 | ||
1417 | PR pch/71934 | |
1418 | * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Change type of | |
1419 | second argument from function with 2 pointer arguments to function | |
1420 | with 3 pointer arguments. | |
1421 | ||
1422 | 2021-12-09 Olivier Hainque <hainque@adacore.com> | |
1423 | ||
1424 | * config/aarch64/aarch64-vxworks.h (TARGET_OS_CPP_BUILTINS): | |
1425 | Use VX_CPU_PREFIX in CPU definitions. | |
1426 | ||
1427 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1428 | ||
1429 | * pointer-query.cc (access_ref::dump): Define new function | |
1430 | (pointer_query::dump): Call it. | |
1431 | * pointer-query.h (access_ref::dump): Declare new function. | |
1432 | ||
1433 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1434 | ||
1435 | * pointer-query.cc (compute_objsize_r): Add an argument. | |
1436 | (gimple_call_return_array): Pass a new argument to compute_objsize_r. | |
1437 | (access_ref::merge_ref): Same. | |
1438 | (access_ref::inform_access): Add an argument and use it. | |
1439 | (access_data::access_data): Initialize new member. | |
1440 | (handle_min_max_size): Pass a new argument to compute_objsize_r. | |
1441 | (handle_decl): New function. | |
1442 | (handle_array_ref): Pass a new argument to compute_objsize_r. | |
1443 | Avoid incrementing deref. | |
1444 | (set_component_ref_size): New function. | |
1445 | (handle_component_ref): New function. | |
1446 | (handle_mem_ref): Pass a new argument to compute_objsize_r. | |
1447 | Only increment deref after successfully computing object size. | |
1448 | (handle_ssa_name): New function. | |
1449 | (compute_objsize_r): Move code into helpers and call them. | |
1450 | (compute_objsize): Pass a new argument to compute_objsize_r. | |
1451 | * pointer-query.h (access_ref::inform_access): Add an argument. | |
1452 | (access_data::ostype): New member. | |
1453 | ||
1454 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1455 | ||
1456 | * pointer-query.cc (access_ref::merge_ref): Define new function. | |
1457 | (access_ref::get_ref): Move code into merge_ref and call it. | |
1458 | * pointer-query.h (access_ref::merge_ref): Declare new function. | |
1459 | ||
1460 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1461 | ||
1462 | * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Pass | |
1463 | GIMPLE statement to compute_objsize. | |
1464 | * pointer-query.cc (compute_objsize): Add a statement argument. | |
1465 | * pointer-query.h (compute_objsize): Define a new overload. | |
1466 | ||
1467 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1468 | ||
1469 | * gimple-ssa-warn-access.cc (check_access): Adjust to member name | |
1470 | change. | |
1471 | (pass_waccess::check_strncmp): Same. | |
1472 | * pointer-query.cc (access_ref::access_ref): Remove arguments. | |
1473 | Simpilfy. | |
1474 | (access_data::access_data): Define new ctors. | |
1475 | (access_data::set_bound): Define new member function. | |
1476 | (compute_objsize_r): Remove unnecessary code. | |
1477 | * pointer-query.h (struct access_ref): Remove ctor arguments. | |
1478 | (struct access_data): Declare ctor overloads. | |
1479 | (access_data::dst_bndrng): New member. | |
1480 | (access_data::src_bndrng): New member. | |
1481 | ||
1482 | 2021-12-09 Martin Sebor <msebor@redhat.com> | |
1483 | ||
1484 | PR middle-end/103143 | |
1485 | * pointer-query.cc (gimple_call_return_array): Call compute_objsize_r. | |
1486 | ||
1487 | 2021-12-09 Olivier Hainque <hainque@adacore.com> | |
1488 | Rasmus Villemoes <rv@rasmusvillemoes.dk> | |
1489 | ||
1490 | * Makefile.in (T_STDINT_GCC_H): New variable, path to | |
1491 | stdint-gcc.h that a target configuration may override when | |
1492 | use_gcc_stdint is "provide". | |
1493 | (stmp-int-hdrs): Depend on it and copy that for | |
1494 | USE_GCC_INT=provide. | |
1495 | * config.gcc (vxworks): Revert to use_gcc_stdint=provide. | |
1496 | * config/t-vxworks (T_STDINT_GCC_H): Define, as vxw-stdint-gcc.h. | |
1497 | (vxw-stdint-gcc.h): New target, produced from the original | |
1498 | stdint-gcc.h. | |
1499 | (vxw-glimits.h): Use an automatic variable to designate the | |
1500 | first and only prerequisite. | |
1501 | * config/vxworks/stdint.h: Remove. | |
1502 | ||
1503 | 2021-12-09 Iain Sandoe <iain@sandoe.co.uk> | |
1504 | ||
1505 | PR pch/71934 | |
1506 | * config/host-darwin.c (SAFE_ALLOC_SIZE): Remove. | |
1507 | (darwin_gt_pch_get_address): Rework for relocatable PCH. | |
1508 | (darwin_gt_pch_use_address): Likewise. | |
1509 | ||
1510 | 2021-12-09 Jakub Jelinek <jakub@redhat.com> | |
1511 | ||
1512 | PR pch/71934 | |
1513 | * config/host-darwin.c (darwin_gt_pch_use_address): When reading | |
1514 | manually the file into mapped area, update mapped_addr as | |
1515 | an automatic variable rather than addr which is a reference parameter. | |
1516 | * config/host-hpux.c (hpux_gt_pch_use_address): When reading | |
1517 | manually the file into mapped area, update addr as | |
1518 | an automatic variable rather than base which is a reference parameter. | |
1519 | ||
1520 | 2021-12-09 Jakub Jelinek <jakub@redhat.com> | |
1521 | ||
1522 | PR pch/71934 | |
1523 | * coretypes.h (gt_pointer_operator): Use 3 pointer arguments instead | |
1524 | of two. | |
1525 | * gengtype.c (struct walk_type_data): Add in_nested_ptr argument. | |
1526 | (walk_type): Temporarily set d->in_nested_ptr around nested_ptr | |
1527 | handling. | |
1528 | (write_types_local_user_process_field): Pass a new middle pointer | |
1529 | to gt_pointer_operator op calls, if d->in_nested_ptr pass there | |
1530 | address of d->prev_val[2], otherwise NULL. | |
1531 | (write_types_local_process_field): Likewise. | |
1532 | * ggc-common.c (relocate_ptrs): Add real_ptr_p argument. If equal | |
1533 | to ptr_p, do nothing, otherwise if NULL remember ptr_p's | |
1534 | or if non-NULL real_ptr_p's corresponding new address in | |
1535 | reloc_addrs_vec. | |
1536 | (reloc_addrs_vec): New variable. | |
1537 | (compare_ptr, read_uleb128, write_uleb128): New functions. | |
1538 | (gt_pch_save): When iterating over objects through relocate_ptrs, | |
1539 | save current i into state.ptrs_i. Sort reloc_addrs_vec and emit | |
1540 | it as uleb128 of differences between pointer addresses into the | |
1541 | PCH file. | |
1542 | (gt_pch_restore): Allow restoring of PCH to a different address | |
1543 | than the preferred one, in that case adjust global pointers by bias | |
1544 | and also adjust by bias addresses read from the relocation table | |
1545 | as uleb128 differences. Otherwise fseek over it. Perform | |
1546 | gt_pch_restore_stringpool only after adjusting callbacks and for | |
1547 | callback adjustments also take into account the bias. | |
1548 | (default_gt_pch_use_address): Change type of first argument from | |
1549 | void * to void *&. | |
1550 | (mmap_gt_pch_use_address): Likewise. | |
1551 | * ggc-tests.c (gt_pch_nx): Pass NULL as new middle argument to op. | |
1552 | * hash-map.h (hash_map::pch_nx_helper): Likewise. | |
1553 | (gt_pch_nx): Likewise. | |
1554 | * hash-set.h (gt_pch_nx): Likewise. | |
1555 | * hash-table.h (gt_pch_nx): Likewise. | |
1556 | * hash-traits.h (ggc_remove::pch_nx): Likewise. | |
1557 | * hosthooks-def.h (default_gt_pch_use_address): Change type of first | |
1558 | argument from void * to void *&. | |
1559 | (mmap_gt_pch_use_address): Likewise. | |
1560 | * hosthooks.h (struct host_hooks): Change type of first argument of | |
1561 | gt_pch_use_address hook from void * to void *&. | |
1562 | * machmode.h (gt_pch_nx): Expect a callback with 3 pointers instead of | |
1563 | two in the middle argument. | |
1564 | * poly-int.h (gt_pch_nx): Likewise. | |
1565 | * stringpool.c (gt_pch_nx): Pass NULL as new middle argument to op. | |
1566 | * tree-cfg.c (gt_pch_nx): Likewise, except for LOCATION_BLOCK pass | |
1567 | the same &(block) twice. | |
1568 | * value-range.h (gt_pch_nx): Pass NULL as new middle argument to op. | |
1569 | * vec.h (gt_pch_nx): Likewise. | |
1570 | * wide-int.h (gt_pch_nx): Likewise. | |
1571 | * config/host-darwin.c (darwin_gt_pch_use_address): Change type of | |
1572 | first argument from void * to void *&. | |
1573 | * config/host-darwin.h (darwin_gt_pch_use_address): Likewise. | |
1574 | * config/host-hpux.c (hpux_gt_pch_use_address): Likewise. | |
1575 | * config/host-linux.c (linux_gt_pch_use_address): Likewise. If | |
1576 | it couldn't succeed to mmap at the preferred location, set base | |
1577 | to the actual one. Update addr in the manual reading loop instead of | |
1578 | base. | |
1579 | * config/host-netbsd.c (netbsd_gt_pch_use_address): Change type of | |
1580 | first argument from void * to void *&. | |
1581 | * config/host-openbsd.c (openbsd_gt_pch_use_address): Likewise. | |
1582 | * config/host-solaris.c (sol_gt_pch_use_address): Likewise. | |
1583 | * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Likewise. | |
1584 | * config/rs6000/rs6000-gen-builtins.c (write_init_file): Pass NULL | |
1585 | as new middle argument to op in the generated code. | |
1586 | * doc/gty.texi: Adjust samples for the addition of middle pointer | |
1587 | to gt_pointer_operator callback. | |
1588 | ||
1589 | 2021-12-09 Alexandre Oliva <oliva@adacore.com> | |
1590 | ||
1591 | PR target/103097 | |
1592 | * reg-stack.c (convert_regs_1): Move any_malformed_asm | |
1593 | resetting... | |
1594 | (reg_to_stack): ... here. | |
1595 | ||
1596 | 2021-12-09 Alexandre Oliva <oliva@adacore.com> | |
1597 | ||
1598 | PR target/103302 | |
1599 | * expr.c (emit_move_multi_word): Skip clobber during lra. | |
1600 | ||
1601 | 2021-12-09 Alexandre Oliva <oliva@adacore.com> | |
1602 | ||
1603 | PR tree-optimization/103024 | |
1604 | PR middle-end/103530 | |
1605 | * gimple-harden-conditionals.cc (non_eh_succ_edge): New. | |
1606 | (pass_harden_compares::execute): Accept 1-bit integral types, | |
1607 | and cope with throwing compares. | |
1608 | ||
1609 | 2021-12-08 Iain Sandoe <iain@sandoe.co.uk> | |
1610 | ||
1611 | * config/darwin.h (DARWIN_PIE_SPEC): Add -no_pie when | |
1612 | linking mdynamic-no-pic code on macOS > 10.7. | |
1613 | ||
1614 | 2021-12-08 Dimitar Dimitrov <dimitar@dinux.eu> | |
1615 | ||
1616 | * config/pru/pru.c (pru_section_type_flags): New function. | |
1617 | (TARGET_SECTION_TYPE_FLAGS): Wire it. | |
1618 | ||
1619 | 2021-12-08 David Faust <david.faust@oracle.com> | |
1620 | ||
1621 | * config/bpf/bpf.c (handle_attr_preserve): Avoid calling | |
1622 | is_gimple_assign with a NULL pointer. | |
1623 | ||
1624 | 2021-12-08 Martin Liska <mliska@suse.cz> | |
1625 | ||
1626 | * profile-count.c (profile_count::dump): Add function | |
1627 | that can dump to a provided buffer. | |
1628 | (profile_probability::dump): Likewise. | |
1629 | * profile-count.h: Likewise. | |
1630 | * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): | |
1631 | Use dump_printf_loc infrastructure. | |
1632 | (tree_unswitch_outer_loop): Likewise. | |
1633 | (find_loop_guard): Likewise. | |
1634 | (hoist_guard): Likewise. | |
1635 | ||
1636 | 2021-12-08 Chung-Lin Tang <cltang@codesourcery.com> | |
1637 | ||
1638 | * gimplify.c (extract_base_bit_offset): Add 'tree *offsetp' parameter, | |
1639 | accomodate case where 'offset' return of get_inner_reference is | |
1640 | non-NULL. | |
1641 | (is_or_contains_p): Further robustify conditions. | |
1642 | (omp_target_reorder_clauses): In alloc/to/from sorting phase, also | |
1643 | move following GOMP_MAP_ALWAYS_POINTER maps along. Add new sorting | |
1644 | phase where we make sure pointers with an attach/detach map are ordered | |
1645 | correctly. | |
1646 | (gimplify_scan_omp_clauses): Add modifications to avoid creating | |
1647 | GOMP_MAP_STRUCT and associated alloc map for attach/detach maps. | |
1648 | ||
1649 | 2021-12-08 Roger Sayle <roger@nextmovesoftware.com> | |
1650 | ||
1651 | * config/nvptx/nvptx.md (*extend_trunc_<mode>2_qi, | |
1652 | *extend_trunc_<mode>2_hi, *extend_trunc_di2_si): New insns. | |
1653 | Use cvt to perform sign-extension of truncation in one step. | |
1654 | ||
1655 | 2021-12-08 Chung-Lin Tang <cltang@codesourcery.com> | |
1656 | ||
1657 | PR middle-end/92120 | |
1658 | * gimplify.c ("tree-hash-traits.h"): Add include. | |
1659 | (gimplify_scan_omp_clauses): Change struct_map_to_clause to type | |
1660 | hash_map<tree_operand, tree> *. Adjust struct map handling to handle | |
1661 | cases of *A and A->B expressions. Under !DECL_P case of | |
1662 | GOMP_CLAUSE_MAP handling, add STRIP_NOPS for indir_p case, add to | |
1663 | struct_deref_set for map(*ptr_to_struct) cases. Add MEM_REF case when | |
1664 | handling component_ref_p case. Add unshare_expr and gimplification | |
1665 | when created GOMP_MAP_STRUCT is not a DECL. Add code to add | |
1666 | firstprivate pointer for *pointer-to-struct case. | |
1667 | (gimplify_adjust_omp_clauses): Move GOMP_MAP_STRUCT removal code for | |
1668 | exit data directives code to earlier position. | |
1669 | * omp-low.c (lower_omp_target): | |
1670 | Handle GOMP_MAP_ATTACH_ZERO_LENGTH_ARRAY_SECTION, and | |
1671 | GOMP_MAP_POINTER_TO_ZERO_LENGTH_ARRAY_SECTION map kinds. | |
1672 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
1673 | ||
1674 | 2021-12-08 Andrew Stubbs <ams@codesourcery.com> | |
1675 | Hafiz Abid Qadeer <abidh@codesourcery.com> | |
1676 | ||
1677 | * dwarf2cfi.c (dw_stack_pointer_regnum): Change type to struct cfa_reg. | |
1678 | (dw_frame_pointer_regnum): Likewise. | |
1679 | (new_cfi_row): Use set_by_dwreg. | |
1680 | (get_cfa_from_loc_descr): Use set_by_dwreg. Support register spans. | |
1681 | handle DW_OP_bregx with DW_OP_breg{0-31}. Support DW_OP_lit*, | |
1682 | DW_OP_const*, DW_OP_minus, DW_OP_shl and DW_OP_plus. | |
1683 | (lookup_cfa_1): Use set_by_dwreg. | |
1684 | (def_cfa_0): Update for cfa_reg and support register spans. | |
1685 | (reg_save): Change sreg parameter to struct cfa_reg. Support register | |
1686 | spans. | |
1687 | (dwf_cfa_reg): New function. | |
1688 | (dwarf2out_flush_queued_reg_saves): Use dwf_cfa_reg instead of | |
1689 | dwf_regno. | |
1690 | (dwarf2out_frame_debug_def_cfa): Likewise. | |
1691 | (dwarf2out_frame_debug_adjust_cfa): Likewise. | |
1692 | (dwarf2out_frame_debug_cfa_offset): Likewise. Update reg_save usage. | |
1693 | (dwarf2out_frame_debug_cfa_register): Likewise. | |
1694 | (dwarf2out_frame_debug_expr): Likewise. | |
1695 | (create_pseudo_cfg): Use set_by_dwreg. | |
1696 | (initial_return_save): Use set_by_dwreg and dwf_cfa_reg, | |
1697 | (create_cie_data): Use dwf_cfa_reg. | |
1698 | (execute_dwarf2_frame): Use dwf_cfa_reg. | |
1699 | (dump_cfi_row): Use set_by_dwreg. | |
1700 | * dwarf2out.c (build_span_loc, build_breg_loc): New function. | |
1701 | (build_cfa_loc): Support register spans. | |
1702 | (build_cfa_aligned_loc): Update cfa_reg usage. | |
1703 | (convert_cfa_to_fb_loc_list): Use set_by_dwreg. | |
1704 | * dwarf2out.h (struct cfa_reg): New type. | |
1705 | (struct dw_cfa_location): Use struct cfa_reg. | |
1706 | (build_span_loc): New prototype. | |
1707 | ||
1708 | 2021-12-08 Haochen Jiang <haochen.jiang@intel.com> | |
1709 | ||
1710 | PR target/100738 | |
1711 | * config/i386/sse.md | |
1712 | (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_not_ltint): | |
1713 | Add new define_insn_and_split. | |
1714 | ||
1715 | 2021-12-08 Alexandre Oliva <oliva@adacore.com> | |
1716 | ||
1717 | PR middle-end/103149 | |
1718 | * gimple-harden-conditionals.cc (detach_value): Use memory if | |
1719 | general regs won't do. | |
1720 | ||
1721 | 2021-12-07 Martin Liska <mliska@suse.cz> | |
1722 | ||
1723 | PR middle-end/103438 | |
1724 | * config/s390/s390.c (s390_valid_target_attribute_inner_p): | |
1725 | Use new enum CLVC_INTEGER. | |
1726 | * opt-functions.awk: Use new CLVC_INTEGER. | |
1727 | * opts-common.c (set_option): Likewise. | |
1728 | (option_enabled): Return -1,0,1 for CLVC_INTEGER. | |
1729 | (get_option_state): Use new CLVC_INTEGER. | |
1730 | (control_warning_option): Likewise. | |
1731 | * opts.h (enum cl_var_type): Likewise. | |
1732 | ||
1733 | 2021-12-07 H.J. Lu <hjl.tools@gmail.com> | |
1734 | ||
1735 | PR target/103594 | |
1736 | * config/i386/i386.c (ix86_call_use_plt_p): Check FUNCTION_DECL | |
1737 | before calling cgraph_node::get. | |
1738 | ||
1739 | 2021-12-07 Richard Biener <rguenther@suse.de> | |
1740 | ||
1741 | PR tree-optimization/103596 | |
1742 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): | |
1743 | Note we are not propagating into a PHI argument to may_propagate_copy. | |
1744 | * tree-ssa-propagate.h (may_propagate_copy): Add | |
1745 | argument specifying whether we propagate into a PHI arg. | |
1746 | * tree-ssa-propagate.c (may_propagate_copy): Likewise. | |
1747 | When not doing so we can replace an abnormal with | |
1748 | something else. | |
1749 | (may_propagate_into_stmt): Update may_propagate_copy calls. | |
1750 | (replace_exp_1): Move propagation checking code to | |
1751 | propagate_value and rename to ... | |
1752 | (replace_exp): ... this and elide previous wrapper. | |
1753 | (propagate_value): Perform checking with adjusted | |
1754 | may_propagate_copy call and dispatch to replace_exp. | |
1755 | ||
1756 | 2021-12-07 Matthias Kretz <m.kretz@gsi.de> | |
1757 | ||
1758 | * hash-map.h (hash_map::traverse): Let both overloads behave the | |
1759 | same. | |
1760 | * predict.c (assert_is_empty): Return true, thus not changing | |
1761 | behavior. | |
1762 | ||
1763 | 2021-12-07 YunQiang Su <yunqiang.su@cipunited.com> | |
1764 | ||
1765 | * config/mips/mips.h (ISA_HAS_UNALIGNED_ACCESS, STRICT_ALIGNMENT): | |
1766 | R6 can unaligned access. | |
1767 | * config/mips/mips.md (movmisalign<mode>): Likewise. | |
1768 | * config/mips/mips.opt: add -m(no-)unaligned-access | |
1769 | * doc/invoke.texi: Likewise. | |
1770 | ||
1771 | 2021-12-07 Eugene Rozenfeld <erozen@microsoft.com> | |
1772 | ||
1773 | * auto-profile.c (afdo_propagate_edge): Improve count propagation algorithm. | |
1774 | ||
1775 | 2021-12-06 Paul A. Clarke <pc@us.ibm.com> | |
1776 | ||
1777 | PR target/103545 | |
1778 | * config/rs6000/xmmintrin.h (_mm_movemask_ps): Replace "vector" with | |
1779 | "__vector". | |
1780 | ||
1781 | 2021-12-06 Jose E. Marchesi <jose.marchesi@oracle.com> | |
1782 | ||
1783 | * config/bpf/bpf.c (bpf_handle_preserve_access_index_attribute): | |
1784 | Mark arguments `args' and flags' as unused. | |
1785 | (bpf_core_newdecl): Remove unused local `newdecl'. | |
1786 | (bpf_core_newdecl): Remove unused argument `loc'. | |
1787 | (ctfc_debuginfo_early_finish_p): Remove unused function. | |
1788 | (TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P): Remove definition. | |
1789 | (bpf_core_walk): Do not pass a location to bpf_core_newdecl. | |
1790 | ||
1791 | 2021-12-06 Richard Sandiford <richard.sandiford@arm.com> | |
1792 | ||
1793 | * gimple-range-edge.cc (gimple_outgoing_range::edge_range_p): Add | |
1794 | a shortcut for blocks with single successors. | |
1795 | * gimple-range-gori.cc (gori_map::calculate_gori): Likewise. | |
1796 | ||
1797 | 2021-12-06 Richard Sandiford <richard.sandiford@arm.com> | |
1798 | ||
1799 | * value-range.cc (irange::irange_union): Use quick_push rather | |
1800 | than safe_push. Use widest_int rather than wide_int. Avoid | |
1801 | assigning wi::to_* results to wide*_int temporaries. | |
1802 | ||
1803 | 2021-12-06 Andrew MacLeod <amacleod@redhat.com> | |
1804 | ||
1805 | * gimple-range-cache.cc (ranger_cache::fill_block_cache): Check for | |
1806 | a range from dominators before filling the cache. | |
1807 | (ranger_cache::range_from_dom): New. | |
1808 | * gimple-range-cache.h (ranger_cache::range_from_dom): Add prototype. | |
1809 | ||
1810 | 2021-12-06 Andrew MacLeod <amacleod@redhat.com> | |
1811 | ||
1812 | * gimple-range-gori.h (class gori_compute):: Add prototypes. | |
1813 | * gimple-range-gori.cc (gori_compute::has_edge_range_p): Add alternate | |
1814 | API for basic block. Call for edge alterantive. | |
1815 | (gori_compute::may_recompute_p): Ditto. | |
1816 | ||
1817 | 2021-12-06 Richard Biener <rguenther@suse.de> | |
1818 | ||
1819 | PR tree-optimization/103581 | |
1820 | * tree-vect-stmts.c (vect_build_gather_load_calls): Properly | |
1821 | guard all the AVX512 mask cases. | |
1822 | ||
1823 | 2021-12-06 Richard Biener <rguenther@suse.de> | |
1824 | ||
1825 | PR tree-optimization/103544 | |
1826 | * tree-vect-slp.c (vect_analyze_slp): Only add a SLP reduction | |
1827 | opportunity if the stmt in question is the reduction root. | |
1828 | (dot_slp_tree): Add missing check for NULL child. | |
1829 | ||
1830 | 2021-12-06 Jakub Jelinek <jakub@redhat.com> | |
1831 | ||
1832 | PR pch/71934 | |
1833 | * config/avr/avr.c (avr_output_data_section_asm_op, | |
1834 | avr_output_bss_section_asm_op): Change argument type from const void * | |
1835 | to const char *. | |
1836 | ||
1837 | 2021-12-06 Tamar Christina <tamar.christina@arm.com> | |
1838 | ||
1839 | PR rtl-optimization/103404 | |
1840 | * cse.c (find_sets_in_insn): Don't select elements out of a V1 mode | |
1841 | subreg. | |
1842 | ||
1843 | 2021-12-06 Hongtao Liu <Hongtao.liu@intel.com> | |
1844 | Uroš Bizjak <ubizjak@gmail.com> | |
1845 | ||
1846 | PR target/95740 | |
1847 | * config/i386/i386.c (ix86_preferred_reload_class): Allow | |
1848 | integer regs when moves between register units are cheap. | |
1849 | * config/i386/i386.h (INT_SSE_CLASS_P): New. | |
1850 | ||
1851 | 2021-12-05 David Edelsohn <dje.gcc@gmail.com> | |
1852 | ||
1853 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move | |
1854 | AIX math builtin initialization before new_builtins_are_live. | |
1855 | ||
1856 | 2021-12-04 Jakub Jelinek <jakub@redhat.com> | |
1857 | ||
1858 | * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY): Fix | |
1859 | comment typo, Preffer -> prefer. | |
1860 | * ipa-modref-tree.c (modref_access_node::closer_pair_p): Likewise. | |
1861 | ||
1862 | 2021-12-04 Alexandre Oliva <oliva@adacore.com> | |
1863 | ||
1864 | PR rtl-optimization/103028 | |
1865 | * ifcvt.c (find_cond_trap): Validate new insns more strictly | |
1866 | after reload. | |
1867 | ||
1868 | 2021-12-03 Martin Liska <mliska@suse.cz> | |
1869 | Peter Bergner <bergner@linux.ibm.com> | |
1870 | ||
1871 | PR target/101324 | |
1872 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Move the | |
1873 | disabling of shrink-wrapping when using -mrop-protect from here... | |
1874 | (rs6000_override_options_after_change): ...to here. | |
1875 | ||
1876 | 2021-12-03 H.J. Lu <hjl.tools@gmail.com> | |
1877 | ||
1878 | PR target/103269 | |
1879 | * config/i386/i386-expand.c (ix86_expand_builtin): Pass PVW_NONE | |
1880 | and PVW_NONE to ix86_target_string. | |
1881 | * config/i386/i386-options.c (ix86_target_string): Add arguments | |
1882 | for move_max and store_max. | |
1883 | (ix86_target_string::add_vector_width): New lambda. | |
1884 | (ix86_debug_options): Pass ix86_move_max and ix86_store_max to | |
1885 | ix86_target_string. | |
1886 | (ix86_function_specific_print): Pass ptr->x_ix86_move_max and | |
1887 | ptr->x_ix86_store_max to ix86_target_string. | |
1888 | (ix86_valid_target_attribute_tree): Handle x_ix86_move_max and | |
1889 | x_ix86_store_max. | |
1890 | (ix86_option_override_internal): Set the default x_ix86_move_max | |
1891 | and x_ix86_store_max. | |
1892 | * config/i386/i386-options.h (ix86_target_string): Add | |
1893 | prefer_vector_width and prefer_vector_width. | |
1894 | * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): Removed. | |
1895 | (TARGET_AVX256_STORE_BY_PIECES): Likewise. | |
1896 | (MOVE_MAX): Use 64 if ix86_move_max or ix86_store_max == | |
1897 | PVW_AVX512. Use 32 if ix86_move_max or ix86_store_max >= | |
1898 | PVW_AVX256. | |
1899 | (STORE_MAX_PIECES): Use 64 if ix86_store_max == PVW_AVX512. | |
1900 | Use 32 if ix86_store_max >= PVW_AVX256. | |
1901 | * config/i386/i386.opt: Add -mmove-max=bits and -mstore-max=bits. | |
1902 | * config/i386/x86-tune.def (X86_TUNE_AVX512_MOVE_BY_PIECES): New. | |
1903 | (X86_TUNE_AVX512_STORE_BY_PIECES): Likewise. | |
1904 | * doc/invoke.texi: Document -mmove-max=bits and -mstore-max=bits. | |
1905 | ||
1906 | 2021-12-03 Bill Schmidt <wschmidt@linux.ibm.com> | |
1907 | ||
1908 | * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Fix builtin | |
1909 | identifiers. | |
1910 | ||
1911 | 2021-12-03 SiYu Wu <siyu@isrc.iscas.ac.cn> | |
1912 | ||
1913 | * common/config/riscv/riscv-common.c (riscv_implied_info): | |
1914 | Add K-ext related entry. | |
1915 | (riscv_supported_std_ext): Add 'k'. | |
1916 | * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add 'k'. | |
1917 | (IMPLIED_EXT): Add K-ext related entry. | |
1918 | ||
1919 | 2021-12-03 SiYu Wu <siyu@isrc.iscas.ac.cn> | |
1920 | ||
1921 | * common/config/riscv/riscv-common.c (riscv_ext_version_table): | |
1922 | Add zbk* and zk*. | |
1923 | * config/riscv/riscv-opts.h (MASK_ZBKB): New. | |
1924 | (MASK_ZBKC): Ditto. | |
1925 | (MASK_ZBKX): Ditto. | |
1926 | (MASK_ZKNE): Ditto. | |
1927 | (MASK_ZKND): Ditto. | |
1928 | (MASK_ZKNH): Ditto. | |
1929 | (MASK_ZKR): Ditto. | |
1930 | (MASK_ZKSED): Ditto. | |
1931 | (MASK_ZKSH): Ditto. | |
1932 | (MASK_ZKT): Ditto. | |
1933 | (TARGET_ZBKB): Ditto. | |
1934 | (TARGET_ZBKC): Ditto. | |
1935 | (TARGET_ZBKX): Ditto. | |
1936 | (TARGET_ZKNE): Ditto. | |
1937 | (TARGET_ZKND): Ditto. | |
1938 | (TARGET_ZKNH): Ditto. | |
1939 | (TARGET_ZKR): Ditto. | |
1940 | (TARGET_ZKSED): Ditto. | |
1941 | (TARGET_ZKSH): Ditto. | |
1942 | (TARGET_ZKT): Ditto. | |
1943 | * config/riscv/riscv.opt (riscv_zk_subext): New. | |
1944 | ||
1945 | 2021-12-03 Tamar Christina <tamar.christina@arm.com> | |
1946 | ||
1947 | * tree-vect-stmts.c (prepare_load_store_mask): Rename to... | |
1948 | (prepare_vec_mask): ...This and record operations that have already been | |
1949 | masked. | |
1950 | (vectorizable_call): Use it. | |
1951 | (vectorizable_operation): Likewise. | |
1952 | (vectorizable_store): Likewise. | |
1953 | (vectorizable_load): Likewise. | |
1954 | * tree-vectorizer.h (class _loop_vec_info): Add vec_cond_masked_set. | |
1955 | (vec_cond_masked_set_type, tree_cond_mask_hash): New. | |
1956 | ||
1957 | 2021-12-03 H.J. Lu <hjl.tools@gmail.com> | |
1958 | ||
1959 | PR target/51469 | |
1960 | PR target/83782 | |
1961 | * target.def (ifunc_ref_local_ok): Add a target hook. | |
1962 | * varasm.c (default_binds_local_p_3): Force indirect function | |
1963 | resolver non-local only if targetm.ifunc_ref_local_ok returns | |
1964 | false. | |
1965 | * config/i386/i386-expand.c (ix86_expand_call): Call | |
1966 | ix86_call_use_plt_p to check if PLT should be used. | |
1967 | * config/i386/i386-protos.h (ix86_call_use_plt_p): New. | |
1968 | * config/i386/i386.c (output_pic_addr_const): Call | |
1969 | ix86_call_use_plt_p to check if "@PLT" is needed. | |
1970 | (ix86_call_use_plt_p): New. | |
1971 | (TARGET_IFUNC_REF_LOCAL_OK): New. | |
1972 | * doc/tm.texi.in: Add TARGET_IFUNC_REF_LOCAL_OK. | |
1973 | * doc/tm.texi: Regenerated. | |
1974 | ||
1975 | 2021-12-03 Jakub Jelinek <jakub@redhat.com> | |
1976 | ||
1977 | * attribs.h (simple_cst_list_equal): Declare. | |
1978 | * attribs.c (simple_cst_list_equal): No longer static. | |
1979 | * config/i386/i386-options.c (target_attribute_cache): New variable. | |
1980 | (ix86_valid_target_attribute_p): Cache DECL_FUNCTION_SPECIFIC_TARGET | |
1981 | and DECL_FUNCTION_SPECIFIC_OPTIMIZATION based on args. | |
1982 | ||
1983 | 2021-12-03 Jakub Jelinek <jakub@redhat.com> | |
1984 | ||
1985 | PR pch/71934 | |
1986 | * ggc.h (gt_pch_note_callback): Declare. | |
1987 | * gengtype.h (enum typekind): Add TYPE_CALLBACK. | |
1988 | (callback_type): Declare. | |
1989 | * gengtype.c (dbgprint_count_type_at): Handle TYPE_CALLBACK. | |
1990 | (callback_type): New variable. | |
1991 | (process_gc_options): Add CALLBACK argument, handle callback | |
1992 | option. | |
1993 | (set_gc_used_type): Adjust process_gc_options caller, if callback, | |
1994 | set type to &callback_type. | |
1995 | (output_mangled_typename): Handle TYPE_CALLBACK. | |
1996 | (walk_type): Likewise. Handle callback option. | |
1997 | (write_types_process_field): Handle TYPE_CALLBACK. | |
1998 | (write_types_local_user_process_field): Likewise. | |
1999 | (write_types_local_process_field): Likewise. | |
2000 | (write_root): Likewise. | |
2001 | (dump_typekind): Likewise. | |
2002 | (dump_type): Likewise. | |
2003 | * gengtype-state.c (type_lineloc): Handle TYPE_CALLBACK. | |
2004 | (state_writer::write_state_callback_type): New method. | |
2005 | (state_writer::write_state_type): Handle TYPE_CALLBACK. | |
2006 | (read_state_callback_type): New function. | |
2007 | (read_state_type): Handle TYPE_CALLBACK. | |
2008 | * ggc-common.c (callback_vec): New variable. | |
2009 | (gt_pch_note_callback): New function. | |
2010 | (gt_pch_save): Stream out gt_pch_save function address and relocation | |
2011 | table. | |
2012 | (gt_pch_restore): Stream in saved gt_pch_save function address and | |
2013 | relocation table and apply relocations if needed. | |
2014 | * doc/gty.texi (callback): Document new GTY option. | |
2015 | * varasm.c (get_unnamed_section): Change callback argument's type and | |
2016 | last argument's type from const void * to const char *. | |
2017 | (output_section_asm_op): Change argument's type from const void * | |
2018 | to const char *, remove unnecessary cast. | |
2019 | * tree-core.h (struct tree_translation_unit_decl): Drop GTY((skip)) | |
2020 | from language member. | |
2021 | * output.h (unnamed_section_callback): Change argument type from | |
2022 | const void * to const char *. | |
2023 | (struct unnamed_section): Use GTY((callback)) instead of GTY((skip)) | |
2024 | for callback member. Change data member type from const void * | |
2025 | to const char *. | |
2026 | (struct noswitch_section): Use GTY((callback)) instead of GTY((skip)) | |
2027 | for callback member. | |
2028 | (get_unnamed_section): Change callback argument's type and | |
2029 | last argument's type from const void * to const char *. | |
2030 | (output_section_asm_op): Change argument's type from const void * | |
2031 | to const char *. | |
2032 | * config/avr/avr.c (avr_output_progmem_section_asm_op): Likewise. | |
2033 | Remove unneeded cast. | |
2034 | * config/darwin.c (output_objc_section_asm_op): Change argument's type | |
2035 | from const void * to const char *. | |
2036 | * config/pa/pa.c (som_output_text_section_asm_op): Likewise. | |
2037 | (som_output_comdat_data_section_asm_op): Likewise. | |
2038 | * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op): | |
2039 | Likewise. | |
2040 | (rs6000_xcoff_output_readonly_section_asm_op): Likewise. Instead | |
2041 | of dereferencing directive hardcode variable names and decide based on | |
2042 | whether directive is NULL or not. | |
2043 | (rs6000_xcoff_output_readwrite_section_asm_op): Change argument's type | |
2044 | from const void * to const char *. | |
2045 | (rs6000_xcoff_output_tls_section_asm_op): Likewise. Instead | |
2046 | of dereferencing directive hardcode variable names and decide based on | |
2047 | whether directive is NULL or not. | |
2048 | (rs6000_xcoff_output_toc_section_asm_op): Change argument's type | |
2049 | from const void * to const char *. | |
2050 | (rs6000_xcoff_asm_init_sections): Adjust get_unnamed_section callers. | |
2051 | ||
2052 | 2021-12-03 Richard Purdie <richard.purdie@linuxfoundation.org> | |
2053 | ||
2054 | * Makefile.in: Fix "argument list too long" from install-plugins. | |
2055 | ||
2056 | 2021-12-03 Matt Jacobson <mhjacobson@me.com> | |
2057 | ||
2058 | * config.gcc: For the AVR target, populate TM_MULTILIB_CONFIG. | |
2059 | * config/avr/genmultilib.awk: Add ability to filter generated multilib | |
2060 | list. | |
2061 | * config/avr/t-avr: Pass TM_MULTILIB_CONFIG to genmultilib.awk. | |
2062 | * configure.ac: Update help string for --with-multilib-list. | |
2063 | * configure: Regenerate. | |
2064 | ||
2065 | 2021-12-02 Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> | |
2066 | ||
2067 | * configure: Regenerate. | |
2068 | * configure.ac: Define TARGET_LIBC_GNUSTACK on musl. | |
2069 | ||
2070 | 2021-12-02 Iain Sandoe <iain@sandoe.co.uk> | |
2071 | ||
2072 | PR target/55610 | |
2073 | * config/host-darwin.c (TRY_EMPTY_VM_SPACE, | |
2074 | SAFE_ALLOC_SIZE): New. | |
2075 | (darwin_gt_pch_get_address): Rewrite to use nominated | |
2076 | memory segments rather than part of the compiler __DATA | |
2077 | segment. | |
2078 | (darwin_gt_pch_use_address): Likewise. | |
2079 | ||
2080 | 2021-12-02 Gerald Pfeifer <gerald@pfeifer.com> | |
2081 | ||
2082 | * doc/install.texi (*-*-freebsd*): Remove references to | |
2083 | FreeBSD 1 and FreeBSD 2. | |
2084 | ||
2085 | 2021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> | |
2086 | ||
2087 | PR rtl-optimization/103437 | |
2088 | * ira-color.c (setup_allocno_priorities): Switch off backup code | |
2089 | for overflow if compiler has __builtin_smul_overflow. Use < | |
2090 | for comparison with -INT_MAX. | |
2091 | ||
2092 | 2021-12-02 Bill Schmidt <wschmidt@linux.ibm.com> | |
2093 | ||
2094 | * config/rs6000/altivec.h: Delete a number of #defines that are now | |
2095 | superfluous. Alphabetize. Include rs6000-vecdefines.h. Include some | |
2096 | synonyms. | |
2097 | * config/rs6000/rs6000-builtin-new.def (CMPB): Flag as no32bit. | |
2098 | (BPERMD): Flag as 32bit (needing special handling for 32-bit). | |
2099 | (UNPACK_TD): Return unsigned long long instead of unsigned long. | |
2100 | (GET_TEXASR): Return unsigned long instead of unsigned long long. | |
2101 | (GET_TEXASRU): Likewise. | |
2102 | (GET_TFHAR): Likewise. | |
2103 | (GET_TFIAR): Likewise. | |
2104 | (SET_TEXASR): Pass unsigned long instead of unsigned long long. | |
2105 | (SET_TEXASRU): Likewise. | |
2106 | (SET_TFHAR): Likewise. | |
2107 | (SET_TFIAR): Likewise. | |
2108 | (TABORTDC): Likewise. | |
2109 | (TABORTDCI): Likewise. | |
2110 | * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Fix error | |
2111 | handling for no32bit. Add 32bit handling for RS6000_BIF_BPERMD. | |
2112 | * config/rs6000/rs6000-gen-builtins.c (write_init_file): Initialize | |
2113 | new_builtins_are_live to 1. | |
2114 | ||
2115 | 2021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> | |
2116 | ||
2117 | PR rtl-optimization/103437 | |
2118 | * ira-color.c (setup_allocno_priorities): Use long long | |
2119 | multiplication as backup for overflow processing. | |
2120 | ||
2121 | 2021-12-02 Tamar Christina <tamar.christina@arm.com> | |
2122 | ||
2123 | * config/aarch64/aarch64-protos.h (aarch64_gen_shareable_zero): New. | |
2124 | * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>, | |
2125 | aarch64_rshrn2<mode>): Generate rounding half-ing add when appropriate. | |
2126 | * config/aarch64/aarch64.c (aarch64_gen_shareable_zero): New. | |
2127 | ||
2128 | 2021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> | |
2129 | ||
2130 | PR rtl-optimization/103437 | |
2131 | * ira-color.c (setup_allocno_priorities): Process multiplication | |
2132 | overflow. | |
2133 | ||
2134 | 2021-12-02 Martin Liska <mliska@suse.cz> | |
2135 | ||
2136 | PR gcov-profile/96092 | |
2137 | * common.opt: New option. | |
2138 | * coverage.c (coverage_begin_function): Emit filename with | |
2139 | remap_profile_filename. | |
2140 | * doc/invoke.texi: Document the new option. | |
2141 | * file-prefix-map.c (add_profile_prefix_map): New. | |
2142 | (remap_profile_filename): Likewise. | |
2143 | * file-prefix-map.h (add_profile_prefix_map): Likewise. | |
2144 | (remap_profile_filename): Likewise. | |
2145 | * lto-opts.c (lto_write_options): Handle | |
2146 | OPT_fprofile_prefix_map_. | |
2147 | * opts-global.c (handle_common_deferred_options): Likewise. | |
2148 | * opts.c (common_handle_option): Likewise. | |
2149 | (gen_command_line_string): Likewise. | |
2150 | * profile.c (output_location): Emit filename with | |
2151 | remap_profile_filename. | |
2152 | ||
2153 | 2021-12-02 Richard Biener <rguenther@suse.de> | |
2154 | ||
2155 | PR middle-end/103271 | |
2156 | * internal-fn.c (expand_DEFERRED_INIT): When the base | |
2157 | of the LHS is a decl with matching constant size use | |
2158 | that as the initialization target instead of an | |
2159 | eventual VLA typed one. | |
2160 | ||
2161 | 2021-12-02 Richard Biener <rguenther@suse.de> | |
2162 | ||
2163 | PR tree-optimization/103527 | |
2164 | * tree-vect-stmts.c (vect_build_gather_load_calls): Always | |
2165 | use a truth type for building the vector mask. | |
2166 | ||
2167 | 2021-12-02 Rasmus Villemoes <rasmus.villemoes@prevas.dk> | |
2168 | ||
2169 | * config/vxworks.h (LTO_PLUGIN_SPEC): Adapt to corrected | |
2170 | spelling of -linker-output-auto-nolto-rel. | |
2171 | ||
2172 | 2021-12-01 Uroš Bizjak <ubizjak@gmail.com> | |
2173 | ||
2174 | PR target/102811 | |
2175 | * config/i386/sse.md (VI2F): Remove mode iterator. | |
2176 | (VI2F_256_512): New mode iterator. | |
2177 | (vec_set<V8_128:mode>_0): New insn pattern. | |
2178 | (vec_set<VI2F_256_512:mode>_0>): Rename from vec_set<VI2F:mode>mode. | |
2179 | Use VI2F_256_512 mode iterator instead of VI2F. | |
2180 | (*axv512fp16_movsh): Remove. | |
2181 | (<sse2p4_1>_pinsr<ssemodesuffix>): Add (x,x,x) AVX2 alternative. | |
2182 | Do not disable V8HF mode insn on AVX2 targets. | |
2183 | (pinsrw -> pbroadcast + pblendw peephole2): New peephole. | |
2184 | (pinsrw -> pbroadcast + pblendw splitter): New post-reload splitter. | |
2185 | * config/i386/i386.md (extendhfsf): Call gen_vec_setv8hf_0. | |
2186 | * config/i386/i386-expand.c (ix86_expand_vector_set) | |
2187 | <case E_V8HFmode>: Use vec_merge path for TARGET_AVX2. | |
2188 | ||
2189 | 2021-12-01 Roger Sayle <roger@nextmovesoftware.com> | |
2190 | Richard Biener <rguenther@suse.de> | |
2191 | ||
2192 | * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): | |
2193 | Check if simplify_using_initial_conditions allows us to | |
2194 | simplify the expression for may_be_zero. | |
2195 | * match.pd (X != C ? -X : -C -> -X): New transform. | |
2196 | (X != C ? ~X : ~C -> ~X): Likewise. | |
2197 | ((X+1) > Y ? -X : 1 -> X >= Y ? -X : 1): Likewise. | |
2198 | ||
2199 | 2021-12-01 Peter Bergner <bergner@linux.ibm.com> | |
2200 | ||
2201 | PR middle-end/103127 | |
2202 | * gimplify.c (is_var_need_auto_init): Handle opaque types. | |
2203 | ||
2204 | 2021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> | |
2205 | ||
2206 | * common.opt (static-libphobos): Add option. | |
2207 | * config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a | |
2208 | when linking statically. | |
2209 | * gcc.c (driver_handle_option): Set -static-libphobos as always valid. | |
2210 | ||
2211 | 2021-12-01 Jason Merrill <jason@redhat.com> | |
2212 | ||
2213 | PR c++/103310 | |
2214 | * fold-const.c (maybe_nonzero_address): Use get_create or get | |
2215 | depending on folding_initializer. | |
2216 | (fold_binary_initializer_loc): New. | |
2217 | * fold-const.h (fold_binary_initializer_loc): Declare. | |
2218 | * varasm.c (mark_weak): Don't use the decl location. | |
2219 | * doc/invoke.texi: Document -fconstexpr-fp-except. | |
2220 | ||
2221 | 2021-12-01 Bill Schmidt <wschmidt@linux.ibm.com> | |
2222 | ||
2223 | PR target/102347 | |
2224 | * config/rs6000/rs6000-c.c (rs6000-builtins.h): Stop including. | |
2225 | (rs6000-internal.h): Include. | |
2226 | (altivec_resolve_new_overloaded_builtin): Move call to | |
2227 | rs6000_invalid_new_builtin here from rs6000_new_builtin_decl. | |
2228 | * config/rs6000/rs6000-call.c (rs6000-builtins.h): Stop including. | |
2229 | (rs6000_invalid_new_builtin): Remove static qualifier. | |
2230 | (rs6000_new_builtin_decl): Remove test for supported builtin. | |
2231 | * config/rs6000/rs6000-internal.h (rs6000-builtins.h): Include. | |
2232 | (rs6000_invalid_new_builtin): Declare. | |
2233 | * config/rs6000/rs6000.c (rs6000-builtins.h): Don't include. | |
2234 | ||
2235 | 2021-12-01 Aldy Hernandez <aldyh@redhat.com> | |
2236 | ||
2237 | PR tree-optimization/103409 | |
2238 | * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): | |
2239 | Do all the work with just one ssa_global_cache. | |
2240 | * gimple-range-path.h: Remove m_tmp_phi_cache. | |
2241 | ||
2242 | 2021-12-01 Richard Sandiford <richard.sandiford@arm.com> | |
2243 | ||
2244 | PR tree-optimization/103517 | |
2245 | * tree-vect-slp.c (vect_build_slp_tree_1): When allowing two | |
2246 | different component references, check the codes of both them, | |
2247 | rather than just the first. | |
2248 | ||
2249 | 2021-12-01 Andrew MacLeod <amacleod@redhat.com> | |
2250 | ||
2251 | PR tree-optimization/103464 | |
2252 | * gimple-range.cc (gimple_ranger::prefill_name): Process phis also. | |
2253 | (gimple_ranger::prefill_stmt_dependencies): Ditto. | |
2254 | ||
2255 | 2021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> | |
2256 | ||
2257 | * doc/install.texi (Prerequisites): Add note that D front end now | |
2258 | requires GDC installed in order to bootstrap. | |
2259 | (Building): Add D compiler section, referencing prerequisites. | |
2260 | ||
2261 | 2021-12-01 Jakub Jelinek <jakub@redhat.com> | |
2262 | ||
2263 | * config/i386/x86-tune.def (X86_TUNE_SCHEDULE, | |
2264 | X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY, | |
2265 | X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Formatting fixes. | |
2266 | (X86_TUNE_USE_GATHER): Put m_GENERIC last for consistency. | |
2267 | ||
2268 | 2021-12-01 Jakub Jelinek <jakub@redhat.com> | |
2269 | ||
2270 | PR rtl-optimization/102356 | |
2271 | * rtl.h (simplify_context): Add assoc_count member and | |
2272 | max_assoc_count static member. | |
2273 | * simplify-rtx.c (simplify_associative_operation): Don't reassociate | |
2274 | more than max_assoc_count times within one outermost simplify_* call. | |
2275 | * dwarf2out.c (mem_loc_descriptor): Optimize binary operation | |
2276 | with both operands the same using DW_OP_dup. | |
2277 | ||
2278 | 2021-12-01 Tamar Christina <tamar.christina@arm.com> | |
2279 | ||
2280 | * match.pd: Move below pattern that rewrites to EQ, NE. | |
2281 | * tree.c (bitmask_inv_cst_vector_p): Correct do .. while indentation. | |
2282 | ||
2283 | 2021-12-01 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
2284 | Martin Liška <mliska@suse.cz> | |
2285 | ||
2286 | PR tree-optimization/103456 | |
2287 | * tree-object-size.c (merge_object_sizes): Update osi->changed | |
2288 | only if object_sizes_set succeeded. | |
2289 | ||
2290 | 2021-11-30 liuhongt <hongtao.liu@intel.com> | |
2291 | ||
2292 | PR target/103463 | |
2293 | PR target/103484 | |
2294 | * config/i386/i386.md (*x86_64_shld_1): Set_attr | |
2295 | length_immediate to 1. | |
2296 | (*x86_shld_1): Ditto. | |
2297 | (*x86_64_shrd_1): Ditto. | |
2298 | (*x86_shrd_1): Ditto. | |
2299 | ||
2300 | 2021-11-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
2301 | ||
2302 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
2303 | Clarify diagnostic. | |
2304 | (altivec_resolve_new_overloaded_builtin): Likewise. | |
2305 | ||
2306 | 2021-11-30 Martin Jambor <mjambor@suse.cz> | |
2307 | ||
2308 | PR ipa/103267 | |
2309 | * ipa-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag. | |
2310 | ||
2311 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2312 | ||
2313 | PR tree-optimization/103494 | |
2314 | * tree-vect-stmts.c (vect_get_gather_scatter_ops): Remove ncopies | |
2315 | argument and calculate ncopies from gs_info->offset_vectype | |
2316 | where necessary. | |
2317 | (vectorizable_store, vectorizable_load): Update accordingly. | |
2318 | ||
2319 | 2021-11-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
2320 | ||
2321 | * Makefile.in (GDC): New variable. | |
2322 | (GDCFLAGS): New variable. | |
2323 | * configure: Regenerate. | |
2324 | * configure.ac: Add call to ACX_PROG_GDC. Substitute GDCFLAGS. | |
2325 | ||
2326 | 2021-11-30 Martin Liska <mliska@suse.cz> | |
2327 | Martin Jambor <mjambor@suse.cz> | |
2328 | ||
2329 | PR ipa/103449 | |
2330 | * ipa-param-manipulation.c | |
2331 | (ipa_param_body_adjustments::prepare_debug_expressions): Be | |
2332 | careful about hash_map reallocating itself. Simpify a return | |
2333 | which always returns true. | |
2334 | ||
2335 | 2021-11-30 Andrew MacLeod <amacleod@redhat.com> | |
2336 | ||
2337 | PR tree-optimization/103440 | |
2338 | * gimple-range-fold.cc (fold_using_range::range_of_phi): Continue | |
2339 | normal param processing for equiv params. | |
2340 | ||
2341 | 2021-11-30 Richard Biener <rguenther@suse.de> | |
2342 | ||
2343 | * config/i386/i386.c (ix86_shift_rotate_cost): Remove | |
2344 | unreachable return. | |
2345 | * tree-chrec.c (evolution_function_is_invariant_rec_p): | |
2346 | Likewise. | |
2347 | * tree-if-conv.c (if_convertible_stmt_p): Likewise. | |
2348 | * tree-ssa-pre.c (fully_constant_expression): Likewise. | |
2349 | * tree-vrp.c (operand_less_p): Likewise. | |
2350 | * reload.c (reg_overlap_mentioned_for_reload_p): Remove | |
2351 | unreachable gcc_unreachable (). | |
2352 | * sel-sched-ir.h (bb_next_bb): Likewise. | |
2353 | * varasm.c (compare_constant): Likewise. | |
2354 | ||
2355 | 2021-11-30 Richard Biener <rguenther@suse.de> | |
2356 | ||
2357 | PR tree-optimization/103489 | |
2358 | * tree-vect-loop.c (vectorizable_phi): Verify argument | |
2359 | vector type compatibility to mitigate bool pattern recog | |
2360 | bug. | |
2361 | ||
2362 | 2021-11-30 Thomas Schwinge <thomas@codesourcery.com> | |
2363 | ||
2364 | * omp-offload.c (oacc_loop_auto_partitions): Remove erroneous | |
2365 | "Orphan reductions cannot have gang partitioning" handling. | |
2366 | ||
2367 | 2021-11-30 Thomas Schwinge <thomas@codesourcery.com> | |
2368 | ||
2369 | * omp-offload.c (oacc_loop_process): Implement "gang reduction on | |
2370 | an orphan loop" checking. | |
2371 | ||
2372 | 2021-11-30 Cesar Philippidis <cesar@codesourcery.com> | |
2373 | Thomas Schwinge <thomas@codesourcery.com> | |
2374 | ||
2375 | * omp-general.h (enum oacc_loop_flags): Add OLF_REDUCTION enum. | |
2376 | * omp-low.c (lower_oacc_head_mark): Use it to mark OpenACC | |
2377 | reductions. | |
2378 | * omp-offload.c (oacc_loop_auto_partitions): Don't assign gang | |
2379 | level parallelism to orphan reductions. | |
2380 | ||
2381 | 2021-11-30 Aldy Hernandez <aldyh@redhat.com> | |
2382 | ||
2383 | PR tree-optimization/103451 | |
2384 | * range-op.cc (operator_div::wi_fold): Remove | |
2385 | can_throw_non_call_exceptions special case. | |
2386 | * tree-ssa-sink.c (sink_code_in_bb): Same. | |
2387 | ||
2388 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2389 | ||
2390 | * tree-vect-slp.c (arg1_arg4_map): New variable. | |
2391 | (vect_get_operand_map): Handle IFN_MASK_GATHER_LOAD. | |
2392 | (vect_build_slp_tree_1): Likewise. | |
2393 | (vect_build_slp_tree_2): Likewise. | |
2394 | * tree-vect-stmts.c (vectorizable_load): Expect the mask to be | |
2395 | the last SLP child node rather than the first. | |
2396 | ||
2397 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2398 | ||
2399 | * tree-if-conv.c: Include tree-eh.h. | |
2400 | (predicate_statements): Remove pe argument. Don't hoist | |
2401 | statements here. | |
2402 | (combine_blocks): Remove pe argument. | |
2403 | (ifcvt_available_on_edge_p, ifcvt_can_hoist): New functions. | |
2404 | (ifcvt_hoist_invariants): Likewise. | |
2405 | (tree_if_conversion): Update call to combine_blocks. Call | |
2406 | ifcvt_hoist_invariants after VN. | |
2407 | ||
2408 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2409 | ||
2410 | PR tree-optimization/102467 | |
2411 | * doc/sourcebuild.texi (vect_gather_load_ifn): Document. | |
2412 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): | |
2413 | Commonize safelen handling. Punt for anything involving | |
2414 | gathers and scatters unless safelen says otherwise. | |
2415 | * tree-vect-slp.c (arg1_map): New variable. | |
2416 | (vect_get_operand_map): Handle IFN_GATHER_LOAD. | |
2417 | (vect_build_slp_tree_1): Likewise. | |
2418 | (vect_build_slp_tree_2): Likewise. | |
2419 | (compatible_calls_p): If vect_get_operand_map returns nonnull, | |
2420 | check that any skipped arguments are equal. | |
2421 | (vect_slp_analyze_node_operations_1): Tighten reduction check. | |
2422 | * tree-vect-stmts.c (check_load_store_for_partial_vectors): Take | |
2423 | an ncopies argument. | |
2424 | (vect_get_gather_scatter_ops): Take slp_node and ncopies arguments. | |
2425 | Handle SLP nodes. | |
2426 | (vectorizable_store, vectorizable_load): Adjust accordingly. | |
2427 | ||
2428 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2429 | ||
2430 | * gimple.h (gimple_num_args, gimple_arg, gimple_arg_ptr): New | |
2431 | functions. | |
2432 | * tree-vect-slp.c (cond_expr_maps, arg2_map): New variables. | |
2433 | (vect_get_operand_map): New function. | |
2434 | (vect_get_and_check_slp_defs): Fix outdated comment. | |
2435 | Use vect_get_operand_map and new gimple argument accessors. | |
2436 | (vect_build_slp_tree_2): Likewise. | |
2437 | ||
2438 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2439 | ||
2440 | * tree-vect-slp.c (vect_build_slp_tree_1): Use code_helper | |
2441 | to record the operations performed by statements, only using | |
2442 | CALL_EXPR for things that don't map to built-in or internal | |
2443 | functions. For shifts, require all shift amounts to be equal | |
2444 | if optab_vector is not supported but optab_scalar is. | |
2445 | ||
2446 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2447 | ||
2448 | * tree-vect-data-refs.c (vect_check_gather_scatter): Continue | |
2449 | processing conversions if the current offset is a pointer. | |
2450 | ||
2451 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2452 | ||
2453 | * tree-vectorizer.h (vect_is_reduction): Use STMT_VINFO_REDUC_IDX. | |
2454 | ||
2455 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2456 | ||
2457 | * genopinit.c (main): Turn supports_vec_gather_load and | |
2458 | supports_vec_scatter_store into signed char arrays and remove | |
2459 | supports_vec_gather_load_cached and supports_vec_scatter_store_cached. | |
2460 | * optabs-query.c (supports_vec_convert_optab_p): Add a mode parameter. | |
2461 | If the mode is not VOIDmode, test only for that mode. | |
2462 | (supports_vec_gather_load_p): Likewise. | |
2463 | (supports_vec_scatter_store_p): Likewise. | |
2464 | * optabs-query.h (supports_vec_gather_load_p): Likewise. | |
2465 | (supports_vec_scatter_store_p): Likewise. | |
2466 | * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the | |
2467 | vector mode to supports_vec_gather_load_p and | |
2468 | supports_vec_scatter_store_p. | |
2469 | ||
2470 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2471 | ||
2472 | * internal-fn.c (commutative_binary_fn_p): Handle IFN_ADD_OVERFLOW | |
2473 | and IFN_MUL_OVERFLOW. | |
2474 | ||
2475 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2476 | ||
2477 | * internal-fn.c (commutative_binary_fn_p): Handle IFN_UBSAN_CHECK_ADD | |
2478 | and IFN_UBSAN_CHECK_MUL. | |
2479 | ||
2480 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2481 | ||
2482 | * internal-fn.c (commutative_binary_fn_p): Handle IFN_COMPLEX_MUL. | |
2483 | ||
2484 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2485 | ||
2486 | * gimple-fold.c: Include internal-fn.h. | |
2487 | (fold_stmt_1): If a function maps to an internal one, use | |
2488 | first_commutative_argument to canonicalize the order of | |
2489 | commutative arguments. | |
2490 | * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3) | |
2491 | (gimple_resimplify4, gimple_resimplify5): Extend commutativity | |
2492 | checks to functions. | |
2493 | ||
2494 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2495 | ||
2496 | * doc/md.texi (reduc_fmin_scal_@var{m}): Document. | |
2497 | (reduc_fmax_scal_@var{m}): Likewise. | |
2498 | * optabs.def (reduc_fmax_scal_optab): New optab. | |
2499 | (reduc_fmin_scal_optab): Likewise | |
2500 | * internal-fn.def (REDUC_FMAX, REDUC_FMIN): New functions. | |
2501 | * tree-vect-loop.c (reduction_fn_for_scalar_code): Handle | |
2502 | CASE_CFN_FMAX and CASE_CFN_FMIN. | |
2503 | (neutral_op_for_reduction): Likewise. | |
2504 | (needs_fold_left_reduction_p): Likewise. | |
2505 | * config/aarch64/iterators.md (FMAXMINV): New iterator. | |
2506 | (fmaxmin): Handle UNSPEC_FMAXNMV and UNSPEC_FMINNMV. | |
2507 | * config/aarch64/aarch64-simd.md (reduc_<optab>_scal_<mode>): Fix | |
2508 | unspec mode. | |
2509 | (reduc_<fmaxmin>_scal_<mode>): New pattern. | |
2510 | * config/aarch64/aarch64-sve.md (reduc_<fmaxmin>_scal_<mode>): | |
2511 | Likewise. | |
2512 | ||
2513 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2514 | ||
2515 | * builtins.h (associated_internal_fn): Declare overload that | |
2516 | takes a (combined_cfn, return type) pair. | |
2517 | * builtins.c (associated_internal_fn): Split new overload out | |
2518 | of original fndecl version. Also provide an overload that takes | |
2519 | a (combined_cfn, return type) pair. | |
2520 | * internal-fn.h (commutative_binary_fn_p): Declare. | |
2521 | (commutative_ternary_fn_p): Likewise. | |
2522 | (associative_binary_fn_p): Likewise. | |
2523 | * internal-fn.c (commutative_binary_fn_p, commutative_ternary_fn_p): | |
2524 | New functions, split out from... | |
2525 | (first_commutative_argument): ...here. | |
2526 | (associative_binary_fn_p): New function. | |
2527 | * gimple-match.h (code_helper): Add a constructor that takes | |
2528 | internal functions. | |
2529 | (commutative_binary_op_p): Declare. | |
2530 | (commutative_ternary_op_p): Likewise. | |
2531 | (first_commutative_argument): Likewise. | |
2532 | (associative_binary_op_p): Likewise. | |
2533 | (canonicalize_code): Likewise. | |
2534 | (directly_supported_p): Likewise. | |
2535 | (get_conditional_internal_fn): Likewise. | |
2536 | (gimple_build): New overloads that takes a code_helper. | |
2537 | * gimple-fold.c (gimple_build): Likewise. | |
2538 | * gimple-match-head.c (commutative_binary_op_p): New function. | |
2539 | (commutative_ternary_op_p): Likewise. | |
2540 | (first_commutative_argument): Likewise. | |
2541 | (associative_binary_op_p): Likewise. | |
2542 | (canonicalize_code): Likewise. | |
2543 | (directly_supported_p): Likewise. | |
2544 | (get_conditional_internal_fn): Likewise. | |
2545 | * tree-vectorizer.h: Include gimple-match.h. | |
2546 | (neutral_op_for_reduction): Take a code_helper instead of a tree_code. | |
2547 | (needs_fold_left_reduction_p): Likewise. | |
2548 | (reduction_fn_for_scalar_code): Likewise. | |
2549 | (vect_can_vectorize_without_simd_p): Declare a nNew overload that takes | |
2550 | a code_helper. | |
2551 | * tree-vect-loop.c: Include case-cfn-macros.h. | |
2552 | (fold_left_reduction_fn): Take a code_helper instead of a tree_code. | |
2553 | (reduction_fn_for_scalar_code): Likewise. | |
2554 | (neutral_op_for_reduction): Likewise. | |
2555 | (needs_fold_left_reduction_p): Likewise. | |
2556 | (use_mask_by_cond_expr_p): Likewise. | |
2557 | (build_vect_cond_expr): Likewise. | |
2558 | (vect_create_partial_epilog): Likewise. Use gimple_build rather | |
2559 | than gimple_build_assign. | |
2560 | (check_reduction_path): Handle calls and operate on code_helpers | |
2561 | rather than tree_codes. | |
2562 | (vect_is_simple_reduction): Likewise. | |
2563 | (vect_model_reduction_cost): Likewise. | |
2564 | (vect_find_reusable_accumulator): Likewise. | |
2565 | (vect_create_epilog_for_reduction): Likewise. | |
2566 | (vect_transform_cycle_phi): Likewise. | |
2567 | (vectorizable_reduction): Likewise. Make more use of | |
2568 | lane_reduc_code_p. | |
2569 | (vect_transform_reduction): Use gimple_extract_op but expect | |
2570 | a tree_code for now. | |
2571 | (vect_can_vectorize_without_simd_p): New overload that takes | |
2572 | a code_helper. | |
2573 | * tree-vect-stmts.c (vectorizable_call): Handle reductions in | |
2574 | fully-masked loops. | |
2575 | * tree-vect-patterns.c (vect_mark_pattern_stmts): Use | |
2576 | gimple_extract_op when updating STMT_VINFO_REDUC_IDX. | |
2577 | ||
2578 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2579 | ||
2580 | * gimple-match.h (code_helper): Provide == and != overloads. | |
2581 | (code_helper::operator tree_code): Make explicit. | |
2582 | (code_helper::operator combined_fn): Likewise. | |
2583 | * gimple-match-head.c (convert_conditional_op): Use explicit | |
2584 | conversions where necessary. | |
2585 | (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3): Likewise. | |
2586 | (maybe_push_res_to_seq, gimple_simplify): Likewise. | |
2587 | * gimple-fold.c (replace_stmt_with_simplification): Likewise. | |
2588 | ||
2589 | 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2590 | ||
2591 | * gimple-match.h (code_helper): Add functions for querying whether | |
2592 | the code represents an internal_fn or a built_in_function. | |
2593 | Provide explicit conversion operators for both cases. | |
2594 | (gimple_extract_op): Declare. | |
2595 | * gimple-match-head.c (gimple_extract): New function, extracted from... | |
2596 | (gimple_simplify): ...here. | |
2597 | (gimple_extract_op): New function. | |
2598 | ||
2599 | 2021-11-30 Eric Botcazou <ebotcazou@adacore.com> | |
2600 | ||
2601 | PR target/103274 | |
2602 | * config/i386/i386.c (ix86_output_call_insn): Beef up comment about | |
2603 | nops emitted with SEH. | |
2604 | * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to | |
2605 | the cold section, emit a nop before the directive if the previous | |
2606 | active instruction is a call. | |
2607 | ||
2608 | 2021-11-30 Roger Sayle <roger@nextmovesoftware.com> | |
2609 | Uroš Bizjak <ubizjak@gmail.com> | |
2610 | ||
2611 | PR target/100711 | |
2612 | * config/i386/sse.md (define_split): New splitters to simplify | |
2613 | not;vec_duplicate;and as vec_duplicate;andn. | |
2614 | ||
2615 | 2021-11-30 Richard Biener <rguenther@suse.de> | |
2616 | ||
2617 | PR middle-end/103485 | |
2618 | * match.pd (-((int)x >> (prec - 1)) to (unsigned)x >> (prec - 1)): | |
2619 | Use VIEW_CONVERT_EXPR for vectors. | |
2620 | ||
2621 | 2021-11-30 Richard Biener <rguenther@suse.de> | |
2622 | ||
2623 | * cfgrtl.c (skip_insns_after_block): Refactor code to | |
2624 | be more easily readable. | |
2625 | * expr.c (op_by_pieces_d::run): Remove unreachable | |
2626 | assert. | |
2627 | * sched-deps.c (sched_analyze): Remove unreachable | |
2628 | gcc_unreachable. | |
2629 | * sel-sched-ir.c (in_same_ebb_p): Likewise. | |
2630 | * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): | |
2631 | Remove unreachable code. | |
2632 | * tree-vect-slp.c (vectorize_slp_instance_root_stmt): | |
2633 | Refactor to avoid unreachable loop iteration. | |
2634 | * tree.c (walk_tree_1): Remove unreachable break. | |
2635 | * vec-perm-indices.c (vec_perm_indices::series_p): Remove | |
2636 | unreachable return. | |
2637 | ||
2638 | 2021-11-30 Kewen Lin <linkw@linux.ibm.com> | |
2639 | ||
2640 | PR target/102347 | |
2641 | * config/rs6000/rs6000-call.c (rs6000_builtin_decl): Remove builtin mask | |
2642 | check. | |
2643 | ||
2644 | 2021-11-30 Kewen Lin <linkw@linux.ibm.com> | |
2645 | ||
2646 | * config/rs6000/rs6000.c | |
2647 | (rs6000_cost_data::update_target_cost_per_stmt): Adjust the way to | |
2648 | compute extra penalized cost. Remove useless parameter. | |
2649 | (rs6000_cost_data::rs6000_add_stmt_cost): Adjust the call to function | |
2650 | update_target_cost_per_stmt. | |
2651 | ||
2652 | 2021-11-30 Kewen Lin <linkw@linux.ibm.com> | |
2653 | ||
2654 | Revert: | |
2655 | 2021-11-17 Kewen Lin <linkw@linux.ibm.com> | |
2656 | ||
2657 | * config/visium/visium.md (*add<mode>3_insn, *addsi3_insn, *addi3_insn, | |
2658 | *sub<mode>3_insn, *subsi3_insn, *subdi3_insn, *neg<mode>2_insn, | |
2659 | *negdi2_insn, *and<mode>3_insn, *ior<mode>3_insn, *xor<mode>3_insn, | |
2660 | *one_cmpl<mode>2_insn, *ashl<mode>3_insn, *ashr<mode>3_insn, | |
2661 | *lshr<mode>3_insn, *trunchiqi2_insn, *truncsihi2_insn, | |
2662 | *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, | |
2663 | *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, | |
2664 | *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. | |
2665 | ||
2666 | 2021-11-30 Andrew MacLeod <amacleod@redhat.com> | |
2667 | ||
2668 | PR tree-optimization/103467 | |
2669 | * gimple-range-gori.cc (range_def_chain::register_dependency): Don't | |
2670 | use an object reference after a potential resize. | |
2671 | ||
2672 | 2021-11-29 Uroš Bizjak <ubizjak@gmail.com> | |
2673 | ||
2674 | PR target/102811 | |
2675 | * config/i386/i386.md (*movhi_internal): Introduce (*v,C) alternative. | |
2676 | Do not allocate non-GPR registers. Optimize xmm->xmm moves when | |
2677 | optimizing for size. Fix vpinsrw insn template. | |
2678 | (*movhf_internal): Fix pinsrw and pextrw insn templates for | |
2679 | AVX targets. Use sselog1 type instead of sselog. Optimize GPR moves. | |
2680 | Optimize xmm->xmm moves for TARGET_SSE_PARTIAL_REG_DEPENDENCY | |
2681 | and TARGET_SSE_SPLIT_REGS targets. | |
2682 | ||
2683 | 2021-11-29 Eric Gallager <egallager@gcc.gnu.org> | |
2684 | ||
2685 | * configure: Re-regenerate. | |
2686 | ||
2687 | 2021-11-29 Eric Gallager <egallager@gcc.gnu.org> | |
2688 | ||
2689 | PR other/103021 | |
2690 | * Makefile.in: Substitute CTAGS, ETAGS, and CSCOPE | |
2691 | variables. Use ETAGS variable in TAGS target. | |
2692 | * configure: Regenerate. | |
2693 | * configure.ac: Allow CTAGS, ETAGS, and CSCOPE | |
2694 | variables to be overridden. | |
2695 | ||
2696 | 2021-11-29 Paul A. Clarke <pc@us.ibm.com> | |
2697 | ||
2698 | * config/rs6000/xmmintrin.h (_mm_movemask_ps): Use vec_extractm | |
2699 | when _ARCH_PWR10. | |
2700 | * config/rs6000/emmintrin.h (_mm_movemask_pd): Likewise. | |
2701 | (_mm_movemask_epi8): Likewise. | |
2702 | ||
2703 | 2021-11-29 Richard Biener <rguenther@suse.de> | |
2704 | ||
2705 | * read-rtl-function.c (function_reader::read_rtx_operand): | |
2706 | Return only after resetting m_in_call_function_usage. | |
2707 | ||
2708 | 2021-11-29 Roger Sayle <roger@nextmovesoftware.com> | |
2709 | ||
2710 | * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Perform the | |
2711 | conversion via V2DImode using vec_extractv2didi on TARGET_SSE2. | |
2712 | * config/i386/sse.md (rotlv1ti3, rotrv1ti3): Change constraint | |
2713 | on QImode shift amounts from const_int_operand to general_operand. | |
2714 | ||
2715 | 2021-11-29 Richard Biener <rguenther@suse.de> | |
2716 | ||
2717 | * tree.h (reverse_storage_order_for_component_p): Remove | |
2718 | spurious gcc_unreachable. | |
2719 | * cfganal.c (dfs_find_deadend): Likewise. | |
2720 | * fold-const-call.c (fold_const_logb): Likewise. | |
2721 | (fold_const_significand): Likewise. | |
2722 | * gimple-ssa-store-merging.c (lhs_valid_for_store_merging_p): | |
2723 | Likewise. | |
2724 | ||
2725 | 2021-11-29 Richard Biener <rguenther@suse.de> | |
2726 | ||
2727 | * vec.c (qsort_chk): Do not return the void return value | |
2728 | from the noreturn qsort_chk_error. | |
2729 | * ccmp.c (expand_ccmp_expr_1): Remove unreachable return. | |
2730 | * df-scan.c (df_ref_equal_p): Likewise. | |
2731 | * dwarf2out.c (is_base_type): Likewise. | |
2732 | (add_const_value_attribute): Likewise. | |
2733 | * fixed-value.c (fixed_arithmetic): Likewise. | |
2734 | * gimple-fold.c (gimple_fold_builtin_fputs): Likewise. | |
2735 | * gimple-ssa-strength-reduction.c (stmt_cost): Likewise. | |
2736 | * graphite-isl-ast-to-gimple.c | |
2737 | (gcc_expression_from_isl_expr_op): Likewise. | |
2738 | (gcc_expression_from_isl_expression): Likewise. | |
2739 | * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): | |
2740 | Likewise. | |
2741 | * lto-streamer-in.c (lto_input_mode_table): Likewise. | |
2742 | ||
2743 | 2021-11-29 liuhongt <hongtao.liu@intel.com> | |
2744 | ||
2745 | PR target/102811 | |
2746 | * config/i386/i386.c (inline_secondary_memory_needed): HImode | |
2747 | move between GPR and SSE registers is supported under | |
2748 | TARGET_SSE2 and above. | |
2749 | * config/i386/i386.md (extendhfsf2): Optimize expander. | |
2750 | (truncsfhf2): Ditto. | |
2751 | * config/i386/sse.md (sse2p4_1): Adjust attr for V8HFmode to | |
2752 | align with V8HImode. | |
2753 | ||
2754 | 2021-11-29 liuhongt <hongtao.liu@intel.com> | |
2755 | ||
2756 | PR target/102811 | |
2757 | PR target/103463 | |
2758 | * config/i386/i386.c (ix86_secondary_reload): Without | |
2759 | TARGET_SSE4_1, General register is needed to move HImode from | |
2760 | sse register to memory. | |
2761 | * config/i386/sse.md (*vec_extrachf): Use %vpextrw instead of | |
2762 | pextrw in output templates. | |
2763 | * config/i386/i386.md (movhi_internal): Ditto, also fix typo of | |
2764 | MEM_P (operands[1]) and adjust mode/prefix/type attribute for | |
2765 | alternatives related to sse register. | |
2766 | ||
2767 | 2021-11-29 Richard Biener <rguenther@suse.de> | |
2768 | ||
2769 | PR tree-optimization/103458 | |
2770 | * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): Do not | |
2771 | create forwarders for blocks with abnormal predecessors. | |
2772 | ||
2773 | 2021-11-29 Richard Biener <rguenther@suse.de> | |
2774 | ||
2775 | * gimple-predicate-analysis.cc (can_be_invalidated_p): | |
2776 | Restore semantics to the one before the split from | |
2777 | tree-ssa-uninit.c. | |
2778 | ||
2779 | 2021-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2780 | ||
2781 | * profile.c: Include sreal.h | |
2782 | (struct bb_stats): New. | |
2783 | (cmp_stats): New function. | |
2784 | (compute_branch_probabilities): Output bb stats. | |
2785 | ||
2786 | 2021-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2787 | ||
2788 | * cfghooks.c: Include sreal.h, profile.h. | |
2789 | (profile_record_check_consistency): Fix checking of count counsistency; | |
2790 | record also dynamic mismatches. | |
2791 | * cfgrtl.c (rtl_account_profile_record): Similarly. | |
2792 | * tree-cfg.c (gimple_account_profile_record): Likewise. | |
2793 | * cfghooks.h (struct profile_record): Remove num_mismatched_freq_in, | |
2794 | num_mismatched_freq_out, turn time to double, add | |
2795 | dyn_mismatched_prob_out, dyn_mismatched_count_in, | |
2796 | num_mismatched_prob_out; remove num_mismatched_count_out. | |
2797 | * passes.c (account_profile_1): New function. | |
2798 | (account_profile_in_list): New function. | |
2799 | (pass_manager::dump_profile_report): Rewrite. | |
2800 | (execute_one_ipa_transform_pass): Check profile consistency after | |
2801 | running all passes. | |
2802 | (execute_all_ipa_transforms): Remove cfun test; record all transform | |
2803 | methods. | |
2804 | (execute_one_pass): Fix collecting of profile stats. | |
2805 | ||
2806 | 2021-11-27 Jakub Jelinek <jakub@redhat.com> | |
2807 | ||
2808 | PR middle-end/103431 | |
2809 | * config/i386/i386.md (x86_64_shld, x86_shld, x86_64_shrd, x86_shrd): | |
2810 | Change insn pattern to accurately describe the instructions. | |
2811 | (*x86_64_shld_1, *x86_shld_1, *x86_64_shrd_1, *x86_shrd_1): New | |
2812 | define_insn patterns. | |
2813 | (*x86_64_shld_2, *x86_shld_2, *x86_64_shrd_2, *x86_shrd_2): New | |
2814 | define_insn_and_split patterns. | |
2815 | (*ashl<dwi>3_doubleword_mask, *ashl<dwi>3_doubleword_mask_1, | |
2816 | *<insn><dwi>3_doubleword_mask, *<insn><dwi>3_doubleword_mask_1, | |
2817 | ix86_rotl<dwi>3_doubleword, ix86_rotr<dwi>3_doubleword): Adjust | |
2818 | splitters for x86_{,64_}sh{l,r}d pattern changes. | |
2819 | ||
2820 | 2021-11-27 Jakub Jelinek <jakub@redhat.com> | |
2821 | ||
2822 | PR tree-optimization/103435 | |
2823 | * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if | |
2824 | n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that | |
2825 | case. | |
2826 | ||
2827 | 2021-11-27 Martin Jambor <mjambor@suse.cz> | |
2828 | ||
2829 | PR ipa/103441 | |
2830 | * ipa-prop.c (ipcp_transform_function): Call | |
2831 | delete_unreachable_blocks_update_callgraph instead of returning | |
2832 | TODO_cleanup_cfg. | |
2833 | ||
2834 | 2021-11-26 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
2835 | ||
2836 | * tree-object-size.c (object_sizes_grow, object_sizes_release, | |
2837 | object_sizes_unknown_p, object_sizes_get, object_size_set_force, | |
2838 | object_sizes_set): New functions. | |
2839 | (addr_object_size, compute_builtin_object_size, | |
2840 | expr_object_size, call_object_size, unknown_object_size, | |
2841 | merge_object_sizes, plus_stmt_object_size, | |
2842 | cond_expr_object_size, collect_object_sizes_for, | |
2843 | check_for_plus_in_loops_1, init_object_sizes, | |
2844 | fini_object_sizes): Adjust. | |
2845 | ||
2846 | 2021-11-26 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
2847 | ||
2848 | * tree-object-size.c: New enum. | |
2849 | (object_sizes, computed, addr_object_size, | |
2850 | compute_builtin_object_size, expr_object_size, call_object_size, | |
2851 | merge_object_sizes, plus_stmt_object_size, | |
2852 | collect_object_sizes_for, init_object_sizes, fini_object_sizes, | |
2853 | object_sizes_execute): Replace magic numbers with enums. | |
2854 | ||
2855 | 2021-11-26 Roger Sayle <roger@nextmovesoftware.com> | |
2856 | ||
2857 | * tree-ssa-loop-ivopts.c (cand_value_at): Take a class | |
2858 | tree_niter_desc* argument instead of just a tree for NITER. | |
2859 | If we require the iv candidate value at the end of the final | |
2860 | loop iteration, try using the original loop bound as the | |
2861 | NITER for sufficiently simple loops. | |
2862 | (may_eliminate_iv): Update (only) call to cand_value_at. | |
2863 | ||
2864 | 2021-11-26 Jan Hubicka <hubicka@ucw.cz> | |
2865 | ||
2866 | * ipa-modref.c (analyze_function): Drop parameter F and dump | |
2867 | cgraph node name rather than cfun name. | |
2868 | (modref_generate): Update. | |
2869 | (modref_summaries::insert):Update. | |
2870 | (modref_summaries_lto::insert):Update. | |
2871 | (pass_modref::execute):Update. | |
2872 | (ipa_merge_modref_summary_after_inlining): Improve combining of | |
2873 | ECF_FLAGS. | |
2874 | ||
2875 | 2021-11-26 Jan Hubicka <jh@suse.cz> | |
2876 | ||
2877 | PR ipa/102943 | |
2878 | * ipa-modref.c (update_escape_summary_1): Fix handling of min_flags. | |
2879 | ||
2880 | 2021-11-26 konglin1 <lingling.kong@intel.com> | |
2881 | ||
2882 | PR target/102811 | |
2883 | * config/i386/i386.c (ix86_can_change_mode_class): Allow 16 bit data in XMM register | |
2884 | for TARGET_SSE2. | |
2885 | * config/i386/i386.md (extendhfsf2): Add extenndhfsf2 for TARGET_F16C. | |
2886 | (extendhfdf2): Restrict extendhfdf for TARGET_AVX512FP16 only. | |
2887 | (*extendhf<mode>2): Rename from extendhf<mode>2. | |
2888 | (truncsfhf2): Likewise. | |
2889 | (truncdfhf2): Likewise. | |
2890 | (*trunc<mode>2): Likewise. | |
2891 | ||
2892 | 2021-11-26 liuhongt <hongtao.liu@intel.com> | |
2893 | ||
2894 | PR middle-end/103419 | |
2895 | * match.pd: Fix typo, use the type of second parameter, not | |
2896 | first one. | |
2897 | ||
2898 | 2021-11-25 Jan Hubicka <jh@suse.cz> | |
2899 | ||
2900 | * ipa-cp.c (ipa_value_range_from_jfunc): Remove forgotten early return. | |
2901 | ||
2902 | 2021-11-25 Roger Sayle <roger@nextmovesoftware.com> | |
2903 | ||
2904 | PR middle-end/103406 | |
2905 | * match.pd (minus @0 @0): Check tree_expr_maybe_infinite_p. | |
2906 | ||
2907 | 2021-11-25 Martin Jambor <mjambor@suse.cz> | |
2908 | ||
2909 | PR ipa/103227 | |
2910 | * ipa-prop.h (ipa_get_param): New overload. Move bits of the existing | |
2911 | one to the new one. | |
2912 | * ipa-param-manipulation.h (ipa_param_adjustments): New member | |
2913 | function get_updated_index_or_split. | |
2914 | * ipa-param-manipulation.c | |
2915 | (ipa_param_adjustments::get_updated_index_or_split): New function. | |
2916 | * ipa-prop.c (adjust_agg_replacement_values): Reimplement, add | |
2917 | capability to identify scalarized parameters and perform substitution | |
2918 | on them. | |
2919 | (ipcp_transform_function): Create descriptors earlier, handle new | |
2920 | return values of adjust_agg_replacement_values. | |
2921 | ||
2922 | 2021-11-25 Aldy Hernandez <aldyh@redhat.com> | |
2923 | ||
2924 | * gimple-range-path.cc (path_range_query::compute_ranges_defined): Remove. | |
2925 | (path_range_query::compute_ranges_in_block): Revert to bitmap order. | |
2926 | * gimple-range-path.h: Remove compute_ranges_defined. | |
2927 | ||
2928 | 2021-11-25 Andrew Stubbs <ams@codesourcery.com> | |
2929 | ||
2930 | PR target/103396 | |
2931 | * config/gcn/gcn.c (move_callee_saved_registers): Ensure that the | |
2932 | number of spilled registers is counted correctly. | |
2933 | ||
2934 | 2021-11-25 Jan Hubicka <hubicka@ucw.cz> | |
2935 | ||
2936 | * ipa-prop.h (ipa_node_params::ipa_node_params): Initialize | |
2937 | node_is_self_scc. | |
2938 | ||
2939 | 2021-11-25 Andrew MacLeod <amacleod@redhat.com> | |
2940 | ||
2941 | PR tree-optimization/103359 | |
2942 | * gimple-range-fold.cc (fold_using_range::range_of_phi): If arg is | |
2943 | equivalent to def, don't initially include it's range. | |
2944 | ||
2945 | 2021-11-25 Jan Hubicka <hubicka@ucw.cz> | |
2946 | ||
2947 | * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not check | |
2948 | gimple_static_chain. | |
2949 | ||
2950 | 2021-11-25 Richard Biener <rguenther@suse.de> | |
2951 | ||
2952 | * cgraphunit.c (symbol_table::output_weakrefs): Remove | |
2953 | unreachable init. | |
2954 | (get_alias_symbol): Remove now unused function. | |
2955 | ||
2956 | 2021-11-25 Richard Biener <rguenther@suse.de> | |
2957 | ||
2958 | * cfgrtl.c (rtl_verify_fallthru): Do not stop verifying | |
2959 | with fatal_insn. | |
2960 | (skip_insns_after_block): Remove unreachable break and continue. | |
2961 | ||
2962 | 2021-11-25 Richard Biener <rguenther@suse.de> | |
2963 | ||
2964 | * cfgexpand.c (label_rtx_for_bb): Remove dead loop construct. | |
2965 | ||
2966 | 2021-11-25 Richard Biener <rguenther@suse.de> | |
2967 | ||
2968 | * regset.h (REG_SET_EMPTY_P): New macro. | |
2969 | * cfgcleanup.c (thread_jump): Use REG_SET_EMPTY_P. | |
2970 | ||
2971 | 2021-11-25 Martin Liska <mliska@suse.cz> | |
2972 | ||
2973 | * doc/invoke.texi: Use @option for -Wuninitialized. | |
2974 | ||
2975 | 2021-11-25 Aldy Hernandez <aldyh@redhat.com> | |
2976 | ||
2977 | PR tree-optimization/103254 | |
2978 | * gimple-range-path.cc (path_range_query::compute_ranges): Move | |
2979 | exported boolean code... | |
2980 | (path_range_query::compute_imports): ...here. | |
2981 | ||
2982 | 2021-11-25 Aldy Hernandez <aldyh@redhat.com> | |
2983 | ||
2984 | PR tree-optimization/103254 | |
2985 | * gimple-range-path.cc (path_range_query::compute_ranges_defined): New | |
2986 | (path_range_query::compute_ranges_in_block): Move to | |
2987 | compute_ranges_defined. | |
2988 | * gimple-range-path.h (compute_ranges_defined): New. | |
2989 | ||
2990 | 2021-11-25 Jakub Jelinek <jakub@redhat.com> | |
2991 | ||
2992 | PR tree-optimization/103417 | |
2993 | * match.pd ((X & Y) CMP 0): Only handle eq and ne. Commonalize | |
2994 | common tests. | |
2995 | ||
2996 | 2021-11-25 Jakub Jelinek <jakub@redhat.com> | |
2997 | ||
2998 | PR tree-optimization/103376 | |
2999 | * gimple-ssa-store-merging.c (perform_symbolic_merge): For | |
3000 | BIT_IOR_EXPR, if masked1 && masked2 && masked1 != masked2, don't | |
3001 | punt, but set the corresponding result byte to MARKER_BYTE_UNKNOWN. | |
3002 | For BIT_XOR_EXPR similarly and if masked1 == masked2 and the | |
3003 | byte isn't MARKER_BYTE_UNKNOWN, set the corresponding result byte to | |
3004 | 0. | |
3005 | ||
3006 | 2021-11-25 Jakub Jelinek <jakub@redhat.com> | |
3007 | ||
3008 | PR c++/102611 | |
3009 | * doc/invoke.texi (-Wcomma-subscript): Document that for | |
3010 | -std=c++20 the option isn't enabled by default with -Wno-deprecated | |
3011 | but for -std=c++23 it is. | |
3012 | ||
3013 | 2021-11-24 Jan Hubicka <hubicka@ucw.cz> | |
3014 | ||
3015 | * ipa-modref.c (implicit_eaf_flags_for_edge_and_arg): Break out from... | |
3016 | (modref_merge_call_site_flags): ... here. | |
3017 | (ipa_merge_modref_summary_after_inlining): Use it. | |
3018 | ||
3019 | 2021-11-24 Thomas Schwinge <thomas@codesourcery.com> | |
3020 | ||
3021 | * cfgloop.c (verify_loop_structure): Reduce scope of | |
3022 | 'class loop *loop' variable. | |
3023 | * ipa-fnsummary.c (analyze_function_body): Likewise. | |
3024 | * loop-init.c (fix_loop_structure): Likewise. | |
3025 | * loop-invariant.c (calculate_loop_reg_pressure): Likewise. | |
3026 | * predict.c (predict_loops): Likewise. | |
3027 | * tree-loop-distribution.c (loop_distribution::execute): Likewise. | |
3028 | * tree-vectorizer.c (pass_vectorize::execute): Likewise. | |
3029 | ||
3030 | 2021-11-24 Andrew MacLeod <amacleod@redhat.com> | |
3031 | ||
3032 | PR tree-optimization/103231 | |
3033 | * gimple-range.cc (gimple_ranger::gimple_ranger): Create stmt stack. | |
3034 | (gimple_ranger::gimple_ranger): Delete stmt stack. | |
3035 | (gimple_ranger::range_of_stmt): Process depenedencies if they have no | |
3036 | global cache entry. | |
3037 | (gimple_ranger::prefill_name): New. | |
3038 | (gimple_ranger::prefill_stmt_dependencies): New. | |
3039 | * gimple-range.h (class gimple_ranger): Add prototypes. | |
3040 | ||
3041 | 2021-11-24 Andrew MacLeod <amacleod@redhat.com> | |
3042 | ||
3043 | * gimple-range-cache.cc (ranger_cache::get_global_range): Always | |
3044 | return a range, return if it came from the cache or not. | |
3045 | (get_non_stale_global_range): Rename to get_global_range, and return | |
3046 | the temporal state in a flag. | |
3047 | * gimple-range-cache.h (get_non_stale_global_range): Rename and adjust. | |
3048 | * gimple-range.cc (gimple_ranger::range_of_expr): No need to query | |
3049 | get_global_range. | |
3050 | (gimple_ranger::range_of_stmt): Adjust for global cache temporal state | |
3051 | returned in a flag. | |
3052 | ||
3053 | 2021-11-24 Andrew MacLeod <amacleod@redhat.com> | |
3054 | ||
3055 | * gimple-range.cc (gimple_ranger::range_on_edge): Call trailer when | |
3056 | a constant is encountered to terminate the trace. | |
3057 | ||
3058 | 2021-11-24 Maciej W. Rozycki <macro@embecosm.com> | |
3059 | ||
3060 | PR middle-end/103059 | |
3061 | * reload.c (find_reloads_address_1): Also accept the ASHIFT form | |
3062 | of indexed addressing. | |
3063 | (find_reloads): Adjust accordingly. | |
3064 | ||
3065 | 2021-11-24 Richard Biener <rguenther@suse.de> | |
3066 | Jan Hubicka <jh@suse.cz> | |
3067 | ||
3068 | PR tree-optimization/103168 | |
3069 | * ipa-modref.h (struct modref_summary): Add load_accesses. | |
3070 | * ipa-modref.c (modref_summary::finalize): Initialize load_accesses. | |
3071 | * tree-ssa-sccvn.c (visit_reference_op_call): Use modref | |
3072 | info to walk the virtual use->def chain to CSE const/pure | |
3073 | function calls possibly reading from memory. | |
3074 | ||
3075 | 2021-11-24 Thomas Schwinge <thomas@codesourcery.com> | |
3076 | ||
3077 | PR middle-end/103244 | |
3078 | * gimplify.c (gimplify_adjust_omp_clauses): Restore previous | |
3079 | OpenACC behavior. | |
3080 | ||
3081 | 2021-11-24 Richard Biener <rguenther@suse.de> | |
3082 | ||
3083 | PR middle-end/103193 | |
3084 | * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0) | |
3085 | with NaNs and -ftrapping-math. | |
3086 | ||
3087 | 2021-11-24 Jakub Jelinek <jakub@redhat.com> | |
3088 | ||
3089 | PR middle-end/103384 | |
3090 | * omp-general.c (omp_context_selector_matches): For ACCEL_COMPILER, | |
3091 | return 0 for kind(host) and continue for kind(nohost). | |
3092 | ||
3093 | 2021-11-24 Jakub Jelinek <jakub@redhat.com> | |
3094 | ||
3095 | PR middle-end/103365 | |
3096 | * attribs.h (lookup_attribute): Allow attr_name to start with | |
3097 | underscore, as long as canonicalize_attr_name returns false. | |
3098 | (lookup_attribute_by_prefix): Don't call get_attribute_name twice. | |
3099 | * attribs.c (extract_attribute_substring): Reimplement using | |
3100 | canonicalize_attr_name. | |
3101 | (register_scoped_attribute): Change gcc_assert into | |
3102 | gcc_checking_assert, verify !canonicalize_attr_name rather than | |
3103 | that str.str doesn't start with '_'. | |
3104 | ||
3105 | 2021-11-24 Jakub Jelinek <jakub@redhat.com> | |
3106 | ||
3107 | PR tree-optimization/103376 | |
3108 | * gimple-ssa-store-merging.c (perform_symbolic_merge): Add CODE | |
3109 | argument. If CODE is not BIT_IOR_EXPR, ensure that one of masked1 | |
3110 | or masked2 is 0. | |
3111 | (find_bswap_or_nop_1, find_bswap_or_nop, | |
3112 | imm_store_chain_info::try_coalesce_bswap): Adjust | |
3113 | perform_symbolic_merge callers. | |
3114 | ||
3115 | 2021-11-24 Richard Biener <rguenther@suse.de> | |
3116 | ||
3117 | * tree-ssa-loop-ivopts.c (find_givs): Take loop body as | |
3118 | argument instead of re-computing it. | |
3119 | (find_interesting_uses): Likewise. | |
3120 | (find_induction_variables): Pass through loop body. | |
3121 | (tree_ssa_iv_optimize_loop): Pass down loop body. | |
3122 | ||
3123 | 2021-11-24 Tamar Christina <tamar.christina@arm.com> | |
3124 | ||
3125 | * tree-ssa-phiopt.c (spaceship_replacement): Handle new canonical | |
3126 | codegen. | |
3127 | ||
3128 | 2021-11-24 Tamar Christina <tamar.christina@arm.com> | |
3129 | ||
3130 | * tree.c (bitmask_inv_cst_vector_p): New. | |
3131 | * tree.h (bitmask_inv_cst_vector_p): New. | |
3132 | * match.pd: Use it in new bitmask compare pattern. | |
3133 | ||
3134 | 2021-11-24 Jason Merrill <jason@redhat.com> | |
3135 | ||
3136 | * timevar.h (class auto_cond_timevar): New. | |
3137 | ||
3138 | 2021-11-24 Hongtao Liu <hongtao.liu@intel.com> | |
3139 | H.J. Lu <hongjiu.lu@intel.com> | |
3140 | ||
3141 | PR tree-optimization/103194 | |
3142 | * match.pd (gimple_nop_atomic_bit_test_and_p): Extended to | |
3143 | match truncation. | |
3144 | * tree-ssa-ccp.c (gimple_nop_convert): Declare. | |
3145 | (optimize_atomic_bit_test_and): Enhance | |
3146 | optimize_atomic_bit_test_and to handle truncation. | |
3147 | ||
3148 | 2021-11-23 Martin Sebor <msebor@redhat.com> | |
3149 | ||
3150 | PR middle-end/88232 | |
3151 | * Makefile.in (OBJS): Add gimple-warn-recursion.o. | |
3152 | * common.opt: Add -Winfinite-recursion. | |
3153 | * doc/invoke.texi (-Winfinite-recursion): Document. | |
3154 | * passes.def (pass_warn_recursion): Schedule a new pass. | |
3155 | * tree-pass.h (make_pass_warn_recursion): Declare. | |
3156 | * gimple-warn-recursion.c: New file. | |
3157 | ||
3158 | 2021-11-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
3159 | ||
3160 | * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Change | |
3161 | error messages for ENB_P8V and ENB_P9V. | |
3162 | ||
3163 | 2021-11-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
3164 | ||
3165 | * config/rs6000/rs6000-builtin-new.def: Add power6-64 stanza. Move | |
3166 | CMPB to power6-64 stanza. | |
3167 | * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Handle | |
3168 | ENB_P6_64 case. | |
3169 | (rs6000_new_builtin_is_supported): Likewise. | |
3170 | (rs6000_expand_new_builtin): Likewise. Clean up formatting. | |
3171 | (rs6000_init_builtins): Handle ENB_P6_64 case. | |
3172 | * config/rs6000/rs6000-gen-builtins.c (bif_stanza): Add BSTZ_P6_64. | |
3173 | (stanza_map): Add entry mapping power6-64 to BSTZ_P6_64. | |
3174 | (enable_string): Add "ENB_P6_64". | |
3175 | (write_decls): Add ENB_P6_64 to bif_enable enum. | |
3176 | ||
3177 | 2021-11-23 Jan Hubicka <jh@suse.cz> | |
3178 | ||
3179 | * ipa-modref-tree.h (struct modref_tree): Remove max_bases, max_refs | |
3180 | and max_accesses. | |
3181 | (modref_tree::modref_tree): Remove parametr. | |
3182 | (modref_tree::insert_base): Add max_bases parameter. | |
3183 | (modref_tree::insert): Add max_bases, max_refs, max_accesses | |
3184 | parameters. | |
3185 | (modref_tree::insert): New member function. | |
3186 | (modref_tree::merge): Add max_bases, max_refs, max_accesses | |
3187 | parameters. | |
3188 | (modref_tree::insert): New member function. | |
3189 | * ipa-modref-tree.c (test_insert_search_collapse): Update. | |
3190 | (test_merge): Update. | |
3191 | * ipa-modref.c (dump_records): Don't dump max_refs and max_bases. | |
3192 | (dump_lto_records): Likewise. | |
3193 | (modref_summary::finalize): Fix whitespace. | |
3194 | (get_modref_function_summary): Likewise. | |
3195 | (modref_access_analysis::record_access): Update. | |
3196 | (modref_access_analysis::record_access_lto): Update. | |
3197 | (modref_access_analysis::process_fnspec): Update. | |
3198 | (analyze_function): Update. | |
3199 | (modref_summaries::duplicate): Update. | |
3200 | (modref_summaries_lto::duplicate): Update. | |
3201 | (write_modref_records): Update. | |
3202 | (read_modref_records): Update. | |
3203 | (read_section): Update. | |
3204 | (propagate_unknown_call): Update. | |
3205 | (modref_propagate_in_scc): Update. | |
3206 | (ipa_merge_modref_summary_after_inlining): Update. | |
3207 | ||
3208 | 2021-11-23 Martin Liska <mliska@suse.cz> | |
3209 | ||
3210 | * doc/invoke.texi: Remove 2 more duplicite param descriptions. | |
3211 | ||
3212 | 2021-11-23 Richard Biener <rguenther@suse.de> | |
3213 | ||
3214 | PR tree-optimization/103361 | |
3215 | * gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int | |
3216 | for the dependence distance. | |
3217 | * tree-data-ref.c (print_lambda_vector): Properly print a lambda_int. | |
3218 | ||
3219 | 2021-11-23 Jakub Jelinek <jakub@redhat.com> | |
3220 | ||
3221 | * tree-inline.h (struct copy_body_data): Remove | |
3222 | transform_lang_insert_block member. | |
3223 | * tree-inline.c (remap_block): Don't call | |
3224 | id->transform_lang_insert_block. | |
3225 | (optimize_inline_calls, copy_gimple_seq_and_replace_locals, | |
3226 | tree_function_versioning, maybe_inline_call_in_expr, | |
3227 | copy_fn): Don't initialize id.transform_lang_insert_block. | |
3228 | * gimplify.c (gimplify_omp_loop): Likewise. | |
3229 | ||
3230 | 2021-11-23 Jan Hubicka <hubicka@ucw.cz> | |
3231 | ||
3232 | PR tree-optimization/103335 | |
3233 | * tree-ssa-dse.c (valid_ao_ref_for_dse): Rename to ... | |
3234 | (valid_ao_ref_kill_for_dse): ... this; do not check that boundaries | |
3235 | are divisible by BITS_PER_UNIT. | |
3236 | (get_byte_aligned_range_containing_ref): New function. | |
3237 | (get_byte_aligned_range_contained_in_ref): New function. | |
3238 | (normalize_ref): Rename to ... | |
3239 | (get_byte_range): ... this one; handle accesses not aligned to byte | |
3240 | boundary; return range in bytes rater than updating ao_ref. | |
3241 | (clear_live_bytes_for_ref): Take write ref by reference; simplify using | |
3242 | get_byte_access. | |
3243 | (setup_live_bytes_from_ref): Likewise. | |
3244 | (clear_bytes_written_by): Update. | |
3245 | (live_bytes_read): Update. | |
3246 | (dse_classify_store): Simplify tech before live_bytes_read checks. | |
3247 | ||
3248 | 2021-11-23 Andrew Pinski <apinski@marvell.com> | |
3249 | ||
3250 | PR tree-optimization/102216 | |
3251 | * gimple-fold.c (fold_stmt_1): Add canonicalization | |
3252 | of "&MEM[ssa_n, CST]" to "ssa_n p+ CST", note this | |
3253 | can only be done if !in_place. | |
3254 | ||
3255 | 2021-11-23 Jakub Jelinek <jakub@redhat.com> | |
3256 | ||
3257 | PR middle-end/102431 | |
3258 | * gimplify.c (replace_reduction_placeholders): Remove. | |
3259 | (note_no_context_vars): New function. | |
3260 | (gimplify_omp_loop): For OMP_PARALLEL's BIND_EXPR create a new | |
3261 | BLOCK. Use copy_tree_body_r with walk_tree instead of unshare_expr | |
3262 | and replace_reduction_placeholders for duplication of | |
3263 | OMP_CLAUSE_REDUCTION_{INIT,MERGE} expressions. Ensure all mentioned | |
3264 | automatic vars have DECL_CONTEXT set to non-NULL before doing so | |
3265 | and reset it afterwards for those vars and their corresponding | |
3266 | vars. | |
3267 | ||
3268 | 2021-11-23 Haochen Gui <guihaoc@gcc.gnu.org> | |
3269 | ||
3270 | PR target/100868 | |
3271 | * config/rs6000/altivec.md (altivec_vreve<mode>2 for VEC_K): Use | |
3272 | xxbrq for v16qi, xxbrq + xxbrh for v8hi and xxbrq + xxbrw for v4si | |
3273 | or v4sf when p9_vector is set. | |
3274 | (altivec_vreve<mode>2 for VEC_64): Defined. Implemented by xxswapd. | |
3275 | ||
3276 | 2021-11-23 Navid Rahimi <navidrahimi@microsoft.com> | |
3277 | ||
3278 | PR tree-optimization/102232 | |
3279 | * match.pd (x * (1 + y / x) - y) -> (x - y % x): New optimization. | |
3280 | ||
3281 | 2021-11-23 Navid Rahimi <navidrahimi@microsoft.com> | |
3282 | ||
3283 | PR tree-optimization/96779 | |
3284 | * match.pd (-x == x) -> (x == 0): New optimization. | |
3285 | ||
3286 | 2021-11-22 Roger Sayle <roger@nextmovesoftware.com> | |
3287 | ||
3288 | PR tree-optimization/98953 | |
3289 | PR tree-optimization/103345 | |
3290 | * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Handle | |
3291 | BIT_XOR_EXPR and PLUS_EXPR the same as BIT_IOR_EXPR. | |
3292 | (pass_optimize_bswap::execute): Likewise. | |
3293 | ||
3294 | 2021-11-22 Martin Liska <mliska@suse.cz> | |
3295 | ||
3296 | * doc/invoke.texi: Remove duplicate documentation for 3 params. | |
3297 | ||
3298 | 2021-11-22 Richard Biener <rguenther@suse.de> | |
3299 | ||
3300 | PR tree-optimization/103351 | |
3301 | * tree-ssa-dce.c (sort_phi_args): Sort after e->dest_idx as | |
3302 | second key. | |
3303 | ||
3304 | 2021-11-22 liuhongt <hongtao.liu@intel.com> | |
3305 | ||
3306 | PR target/103275 | |
3307 | * config/i386/constraints.md (Bk): New | |
3308 | define_memory_constraint. | |
3309 | * config/i386/i386-protos.h (ix86_gpr_tls_address_pattern_p): | |
3310 | Declare. | |
3311 | * config/i386/i386.c (ix86_gpr_tls_address_pattern_p): New | |
3312 | function. | |
3313 | * config/i386/i386.md (*movsi_internal): Don't allow | |
3314 | mask/sse/mmx move in TLS code sequences. | |
3315 | (*movdi_internal): Ditto. | |
3316 | ||
3317 | 2021-11-22 Kewen Lin <linkw@linux.ibm.com> | |
3318 | ||
3319 | * config/xtensa/xtensa.md (movdi_internal, movdf_internal): Fix split | |
3320 | condition. | |
3321 | ||
3322 | 2021-11-21 Jakub Jelinek <jakub@redhat.com> | |
3323 | ||
3324 | PR c++/101180 | |
3325 | * config/i386/i386-options.c (ix86_valid_target_attribute_p): If | |
3326 | fndecl already has DECL_FUNCTION_SPECIFIC_TARGET, use that as base | |
3327 | instead of target_option_default_node. | |
3328 | ||
3329 | 2021-11-21 Jan Hubicka <hubicka@ucw.cz> | |
3330 | ||
3331 | PR ipa/103227 | |
3332 | * ipa-modref.c (parm_map_for_arg): Rename to ... | |
3333 | (parm_map_for_ptr): .. this one; handle static chain and calls to | |
3334 | malloc functions. | |
3335 | (modref_access_analysis::get_access): Use parm_map_for_ptr. | |
3336 | (modref_access_analysis::process_fnspec): Update. | |
3337 | (modref_access_analysis::analyze_load): Update. | |
3338 | (modref_access_analysis::analyze_store): Update. | |
3339 | ||
3340 | 2021-11-21 Jan Hubicka <hubicka@ucw.cz> | |
3341 | ||
3342 | * ipa-modref.c (ignore_nondeterminism_p): Move earlier in source | |
3343 | code. | |
3344 | (ignore_retval_p): Likewise. | |
3345 | (ignore_stores_p): Likewise. | |
3346 | (parm_map_for_arg): Likewise. | |
3347 | (class modref_access_analysis): New class. | |
3348 | (modref_access_analysis::set_side_effects): New member function. | |
3349 | (modref_access_analysis::set_nondeterministic): New member function. | |
3350 | (get_access): Turn to ... | |
3351 | (modref_access_analysis::get_access): ... this one. | |
3352 | (record_access): Turn to ... | |
3353 | (modref_access_analysis::record_access): ... this one. | |
3354 | (record_access_lto): Turn to ... | |
3355 | (modref_access_analysis::record_access_lto): ... This one. | |
3356 | (record_access_p): Turn to ... | |
3357 | (modref_access_analysis::record_access_p): ... This one | |
3358 | (modref_access_analysis::record_unknown_load): New member function. | |
3359 | (modref_access_analysis::record_unknown_store): New member function. | |
3360 | (get_access_for_fnspec): Turn to ... | |
3361 | (modref_access_analysis::get_access_for_fnspec): ... this one. | |
3362 | (merge_call_side_effects): Turn to ... | |
3363 | (moderf_access_analysis::merge_call_side_effects): Turn to ... | |
3364 | (collapse_loads): Move later in source code. | |
3365 | (collapse_stores): Move later in source code. | |
3366 | (process_fnspec): Turn to ... | |
3367 | (modref_access_analysis::process_fnspec): ... this one. | |
3368 | (analyze_call): Turn to ... | |
3369 | (modref_access_analysis::analyze_call): ... this one. | |
3370 | (struct summary_ptrs): Remove. | |
3371 | (analyze_load): Turn to ... | |
3372 | (modref_access_analysis::analyze_load): ... this one. | |
3373 | (analyze_store): Turn to ... | |
3374 | (modref_access_analysis::analyze_store): ... this one. | |
3375 | (analyze_stmt): Turn to ... | |
3376 | (modref_access_analysis::analyze_stmt): ... This one. | |
3377 | (remove_summary): Remove. | |
3378 | (modref_access_analysis::propagate): Break out from ... | |
3379 | (modref_access_analysis::analyze): Break out from ... | |
3380 | (analyze_function): ... here. | |
3381 | ||
3382 | 2021-11-21 Roger Sayle <roger@nextmovesoftware.com> | |
3383 | Robin Dapp <rdapp@linux.ibm.com> | |
3384 | ||
3385 | PR target/102117 | |
3386 | * tree-ssa-math-opts.c (convert_mult_to_widen): Recognize | |
3387 | signed WIDEN_MULT_EXPR if the target supports umul_widen_optab. | |
3388 | ||
3389 | 2021-11-20 Jan Hubicka <hubicka@ucw.cz> | |
3390 | ||
3391 | PR ipa/103052 | |
3392 | * ipa-modref.c (ignore_nondeterminism_p): Allow looping pure/cont. | |
3393 | (merge_call_side_effects): Improve debug output. | |
3394 | ||
3395 | 2021-11-20 Jan Hubicka <hubicka@ucw.cz> | |
3396 | ||
3397 | PR ipa/103052 | |
3398 | * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. | |
3399 | ||
3400 | 2021-11-20 Jeff Law <jeffreyalaw@gmail.com> | |
3401 | ||
3402 | PR tree-optimization/103226 | |
3403 | * config/bfin/bfin.md (doloop pattern, splitter and expander): Clobber | |
3404 | CC. | |
3405 | ||
3406 | 2021-11-20 Andrew Pinski <apinski@marvell.com> | |
3407 | ||
3408 | PR tree-optimization/103220 | |
3409 | * match.pd ((type) X bitop CST): Don't check if CST | |
3410 | fits into the type if only the sign changes. | |
3411 | ||
3412 | 2021-11-20 Alexandre Oliva <oliva@adacore.com> | |
3413 | ||
3414 | PR tree-optimization/102988 | |
3415 | * gimple-harden-conditionals.cc (detach_value): Copy SSA_NAME | |
3416 | without decl sharing. | |
3417 | ||
3418 | 2021-11-19 Iain Sandoe <iain@sandoe.co.uk> | |
3419 | ||
3420 | * doc/invoke.texi: Remove whitespace after an @option. | |
3421 | ||
3422 | 2021-11-19 Paul A. Clarke <pc@us.ibm.com> | |
3423 | ||
3424 | * config/rs6000/emmintrin.h (_mm_sad_epu8): Use vec_absd when | |
3425 | _ARCH_PWR9, optimize vec_sum2s when LE. | |
3426 | ||
3427 | 2021-11-19 Iain Sandoe <iain@sandoe.co.uk> | |
3428 | ||
3429 | PR target/80556 | |
3430 | * config/darwin-driver.c (darwin_driver_init): Handle exported | |
3431 | symbols and symbol lists (suppress automatic export of the TLS | |
3432 | symbols). | |
3433 | * config/darwin.c (darwin_rename_builtins): Remove workaround. | |
3434 | * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
3435 | (REAL_LIBGCC_SPEC): Handle revised library uses. | |
3436 | * config/darwin.opt (nodefaultexport): New. | |
3437 | * config/i386/darwin.h (PR80556_WORKAROUND): Remove. | |
3438 | * config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise. | |
3439 | * config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise. | |
3440 | ||
3441 | 2021-11-19 Martin Jambor <mjambor@suse.cz> | |
3442 | ||
3443 | * opts.c (default_options_table): Switch off | |
3444 | flag_semantic_interposition at Ofast. | |
3445 | * doc/invoke.texi (Optimize Options): Document that Ofast switches off | |
3446 | -fsemantic-interposition. | |
3447 | ||
3448 | 2021-11-19 Jan Hubicka <hubicka@ucw.cz> | |
3449 | ||
3450 | * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not guard modref | |
3451 | by !gimple_call_chain. | |
3452 | ||
3453 | 2021-11-19 Martin Sebor <msebor@redhat.com> | |
3454 | ||
3455 | PR c++/33925 | |
3456 | PR c/102867 | |
3457 | * doc/invoke.texi (-Waddress): Update. | |
3458 | ||
3459 | 2021-11-19 Andrew MacLeod <amacleod@redhat.com> | |
3460 | ||
3461 | PR tree-optimization/103254 | |
3462 | * gimple-range-gori.cc (range_def_chain::get_def_chain): Limit the | |
3463 | depth for all statements with multple ssa names. | |
3464 | ||
3465 | 2021-11-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
3466 | ||
3467 | * config/s390/s390.md (define_peephole2): Variable insn points | |
3468 | to the first matched insn. Use peep2_next_insn(1) to refer to | |
3469 | the second matched insn. | |
3470 | ||
3471 | 2021-11-19 Tamar Christina <tamar.christina@arm.com> | |
3472 | ||
3473 | PR tree-optimization/103311 | |
3474 | PR target/103330 | |
3475 | * tree-vect-slp-patterns.c (vect_validate_multiplication): Fix CONJ | |
3476 | test to new codegen. | |
3477 | (complex_mul_pattern::matches): Move check downwards. | |
3478 | ||
3479 | 2021-11-19 Martin Liska <mliska@suse.cz> | |
3480 | ||
3481 | Revert: | |
3482 | 2021-11-19 Martin Liska <mliska@suse.cz> | |
3483 | ||
3484 | * cfgexpand.c (pass_expand::execute): Use option directly. | |
3485 | * function.c (allocate_struct_function): Likewise. | |
3486 | * gimple-low.c (lower_function_body): Likewise. | |
3487 | (lower_stmt): Likewise. | |
3488 | * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. | |
3489 | * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. | |
3490 | * ipa-split.c (split_function): Likewise. | |
3491 | * lto-streamer-in.c (input_function): Likewise. | |
3492 | * sese.c (sese_insert_phis_for_liveouts): Likewise. | |
3493 | * ssa-iterators.h (num_imm_uses): Likewise. | |
3494 | * tree-cfg.c (make_blocks): Likewise. | |
3495 | (gimple_merge_blocks): Likewise. | |
3496 | * tree-inline.c (tree_function_versioning): Likewise. | |
3497 | * tree-loop-distribution.c (generate_loops_for_partition): Likewise. | |
3498 | * tree-sra.c (analyze_access_subtree): Likewise. | |
3499 | * tree-ssa-dce.c (remove_dead_stmt): Likewise. | |
3500 | * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. | |
3501 | * tree-ssa-phiopt.c (spaceship_replacement): Likewise. | |
3502 | * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. | |
3503 | * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. | |
3504 | * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. | |
3505 | * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. | |
3506 | (target_for_debug_bind): Likewise. | |
3507 | (insert_debug_temp_for_var_def): Likewise. | |
3508 | (insert_debug_temps_for_defs): Likewise. | |
3509 | (reset_debug_uses): Likewise. | |
3510 | * tree-ssanames.c (release_ssa_name_fn): Likewise. | |
3511 | * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. | |
3512 | (adjust_debug_stmts): Likewise. | |
3513 | (adjust_phi_and_debug_stmts): Likewise. | |
3514 | (vect_do_peeling): Likewise. | |
3515 | * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. | |
3516 | (vect_transform_loop): Likewise. | |
3517 | * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove | |
3518 | (MAY_HAVE_DEBUG_BIND_STMTS): Remove. | |
3519 | (MAY_HAVE_DEBUG_STMTS): Use options directly. | |
3520 | ||
3521 | 2021-11-19 Giuliano Belinassi <gbelinassi@suse.de> | |
3522 | ||
3523 | * gcc.c (process_command): Skip dumpdir override if file is a | |
3524 | not_actual_file_p. | |
3525 | * doc/invoke.texi: Update -dumpdir documentation. | |
3526 | ||
3527 | 2021-11-19 Andrew Pinski <apinski@marvell.com> | |
3528 | ||
3529 | PR tree-optimization/103314 | |
3530 | * match.pd ((type) X op CST): Restrict the equal | |
3531 | TYPE_PRECISION case to GIMPLE only. | |
3532 | ||
3533 | 2021-11-19 Martin Liska <mliska@suse.cz> | |
3534 | ||
3535 | PR ipa/103230 | |
3536 | * ipa-modref-tree.h (struct modref_parm_map): Add default | |
3537 | constructor. | |
3538 | * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Use it. | |
3539 | ||
3540 | 2021-11-19 Richard Biener <rguenther@suse.de> | |
3541 | ||
3542 | PR middle-end/103248 | |
3543 | * tree-eh.c (operation_could_trap_helper_p): Properly handle | |
3544 | fixed-point RDIV_EXPR. | |
3545 | ||
3546 | 2021-11-19 Richard Biener <rguenther@suse.de> | |
3547 | ||
3548 | PR tree-optimization/102436 | |
3549 | * tree-ssa-loop-im.c (execute_sm_if_changed): Add mode | |
3550 | to just create the if structure and return the then block. | |
3551 | (execute_sm): Add flag to indicate the var will re-use | |
3552 | another flag var. | |
3553 | (hoist_memory_references): Support a single conditional | |
3554 | block with all stores as special case. | |
3555 | ||
3556 | 2021-11-19 Andrew Pinski <apinski@marvell.com> | |
3557 | ||
3558 | PR tree-optimization/103317 | |
3559 | * tree-ssa-phiopt.c (minmax_replacement): For the non empty | |
3560 | middle bb case, check to make sure it has a single predecessor. | |
3561 | ||
3562 | 2021-11-19 Andrew Pinski <apinski@marvell.com> | |
3563 | ||
3564 | PR tree-optimization/103257 | |
3565 | * match.pd | |
3566 | ((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): | |
3567 | Disable until !canonicalize_math_p (). | |
3568 | ||
3569 | 2021-11-19 Marek Polacek <polacek@redhat.com> | |
3570 | ||
3571 | PR c++/19808 | |
3572 | PR c++/96121 | |
3573 | * doc/invoke.texi: Update documentation for -Wuninitialized. | |
3574 | * tree.c (stabilize_reference): Set location. | |
3575 | ||
3576 | 2021-11-19 liuhongt <hongtao.liu@intel.com> | |
3577 | ||
3578 | PR target/102543 | |
3579 | * config/i386/x86-tune-costs.h (skylake_cost): Reduce cost of | |
3580 | storing 256/512-bit SSE register to be equal to cost of | |
3581 | unaligned store to avoid odd alignment peeling. | |
3582 | (icelake_cost): Ditto. | |
3583 | ||
3584 | 2021-11-18 David Edelsohn <dje.gcc@gmail.com> | |
3585 | ||
3586 | * config/rs6000/predicates.md (current_file_function_operand): | |
3587 | Add flag_semantic_interposition to call of decl_replaceable_p. | |
3588 | ||
3589 | 2021-11-18 Martin Liska <mliska@suse.cz> | |
3590 | ||
3591 | * ipa-modref.c (analyze_function): Do not execute the code | |
3592 | only if dump_file != NULL. | |
3593 | ||
3594 | 2021-11-18 Martin Liska <mliska@suse.cz> | |
3595 | ||
3596 | * ipa-modref.c (analyze_function): Use fnode instead of repeated | |
3597 | cgraph_node::get (current_function_decl). | |
3598 | ||
3599 | 2021-11-18 Jan Hubicka <hubicka@ucw.cz> | |
3600 | ||
3601 | * cgraph.c (cgraph_node::get_availability): Update call of | |
3602 | decl_replaceable_p. | |
3603 | (cgraph_node::verify_node): Verify that semantic_interposition flag | |
3604 | is set correclty. | |
3605 | * cgraph.h: (symtab_node): Add semantic_interposition flag. | |
3606 | * cgraphclones.c (set_new_clone_decl_and_node_flags): Clear | |
3607 | semantic_interposition flag. | |
3608 | * cgraphunit.c (cgraph_node::finalize_function): Set | |
3609 | semantic_interposition flag. | |
3610 | (cgraph_node::add_new_function): Likewise. | |
3611 | (varpool_node::finalize_decl): Likewise. | |
3612 | (cgraph_node::create_wrapper): Likewise. | |
3613 | * common.opt (fsemantic-interposition): Turn to optimization node. | |
3614 | * lto-cgraph.c (lto_output_node): Stream semantic_interposition. | |
3615 | (lto_output_varpool_node): Likewise. | |
3616 | (input_overwrite_node): Likewise. | |
3617 | (input_varpool_node): Likewise. | |
3618 | * symtab.c (symtab_node::dump_base): Dump new flag. | |
3619 | * varasm.c (decl_replaceable_p): Add semantic_interposition_p | |
3620 | parameter. | |
3621 | * varasm.h (decl_replaceable_p): Update declaration. | |
3622 | * varpool.c (varpool_node::ctor_useable_for_folding_p): | |
3623 | Use semantic_interposition flag. | |
3624 | (varpool_node::get_availability): Likewise. | |
3625 | (varpool_node::create_alias): Copy semantic_interposition flag. | |
3626 | ||
3627 | 2021-11-18 Jan Hubicka <hubicka@ucw.cz> | |
3628 | ||
3629 | PR ipa/103266 | |
3630 | * ipa-modref.c (modref_eaf_analysis::merge_call_lhs_flags): Unused | |
3631 | parameter may still be returned. | |
3632 | (modref_eaf_analysis::analyze_ssa_name): Call merge_call_lhs_flags | |
3633 | even for unused function args. | |
3634 | ||
3635 | 2021-11-18 Tamar Christina <tamar.christina@arm.com> | |
3636 | ||
3637 | PR tree-optimization/103311 | |
3638 | * tree-vect-slp-patterns.c (complex_mul_pattern::matches, | |
3639 | complex_fms_pattern::matches): Check for multiplications. | |
3640 | ||
3641 | 2021-11-18 H.J. Lu <hjl.tools@gmail.com> | |
3642 | ||
3643 | PR target/102952 | |
3644 | * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): Emit | |
3645 | CS prefix for -mindirect-branch-cs-prefix. | |
3646 | (ix86_output_indirect_branch_via_reg): Likewise. | |
3647 | * config/i386/i386.opt: Add -mindirect-branch-cs-prefix. | |
3648 | * doc/invoke.texi: Document -mindirect-branch-cs-prefix. | |
3649 | ||
3650 | 2021-11-18 David Edelsohn <dje.gcc@gmail.com> | |
3651 | ||
3652 | * config/rs6000/driver-rs6000.c (detect_processor_aix): Add | |
3653 | power10. | |
3654 | ||
3655 | 2021-11-18 Tamar Christina <tamar.christina@arm.com> | |
3656 | ||
3657 | PR tree-optimization/103253 | |
3658 | * tree-ssa-math-opts.c (convert_mult_to_fma): Check for LHS. | |
3659 | ||
3660 | 2021-11-18 Matthias Kretz <m.kretz@gsi.de> | |
3661 | ||
3662 | * doc/extend.texi: Document __builtin_assoc_barrier. | |
3663 | ||
3664 | 2021-11-18 Martin Liska <mliska@suse.cz> | |
3665 | ||
3666 | * cfgexpand.c (pass_expand::execute): Use option directly. | |
3667 | * function.c (allocate_struct_function): Likewise. | |
3668 | * gimple-low.c (lower_function_body): Likewise. | |
3669 | (lower_stmt): Likewise. | |
3670 | * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. | |
3671 | * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. | |
3672 | * ipa-split.c (split_function): Likewise. | |
3673 | * lto-streamer-in.c (input_function): Likewise. | |
3674 | * sese.c (sese_insert_phis_for_liveouts): Likewise. | |
3675 | * ssa-iterators.h (num_imm_uses): Likewise. | |
3676 | * tree-cfg.c (make_blocks): Likewise. | |
3677 | (gimple_merge_blocks): Likewise. | |
3678 | * tree-inline.c (tree_function_versioning): Likewise. | |
3679 | * tree-loop-distribution.c (generate_loops_for_partition): Likewise. | |
3680 | * tree-sra.c (analyze_access_subtree): Likewise. | |
3681 | * tree-ssa-dce.c (remove_dead_stmt): Likewise. | |
3682 | * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. | |
3683 | * tree-ssa-phiopt.c (spaceship_replacement): Likewise. | |
3684 | * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. | |
3685 | * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. | |
3686 | * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. | |
3687 | * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. | |
3688 | (target_for_debug_bind): Likewise. | |
3689 | (insert_debug_temp_for_var_def): Likewise. | |
3690 | (insert_debug_temps_for_defs): Likewise. | |
3691 | (reset_debug_uses): Likewise. | |
3692 | * tree-ssanames.c (release_ssa_name_fn): Likewise. | |
3693 | * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. | |
3694 | (adjust_debug_stmts): Likewise. | |
3695 | (adjust_phi_and_debug_stmts): Likewise. | |
3696 | (vect_do_peeling): Likewise. | |
3697 | * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. | |
3698 | (vect_transform_loop): Likewise. | |
3699 | * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove | |
3700 | (MAY_HAVE_DEBUG_BIND_STMTS): Remove. | |
3701 | (MAY_HAVE_DEBUG_STMTS): Use options directly. | |
3702 | ||
3703 | 2021-11-18 Richard Biener <rguenther@suse.de> | |
3704 | ||
3705 | PR tree-optimization/103277 | |
3706 | * tree-ssa-dse.c (need_ab_cleanup): New. | |
3707 | (dse_optimize_redundant_stores): Adjust. | |
3708 | (delete_dead_or_redundant_assignment): Get extra | |
3709 | need_ab_cleanup argument and set when abnormal cleanup is | |
3710 | needed. | |
3711 | (dse_optimize_call): Adjust. | |
3712 | (dse_optimize_stmt): Likewise. | |
3713 | (pass_dse::execute): Allocate and deallocate need_ab_cleanup. | |
3714 | Perform abnormal cleanup. | |
3715 | * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust. | |
3716 | ||
3717 | 2021-11-18 Hongyu Wang <hongyu.wang@intel.com> | |
3718 | ||
3719 | * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): | |
3720 | Adjust generated cfg to avoid infinite loop. | |
3721 | ||
3722 | 2021-11-18 konglin1 <lingling.kong@intel.com> | |
3723 | ||
3724 | * config/i386/avx512fp16intrin.h (_mm512_mul_pch): Add alias for _mm512_fmul_pch. | |
3725 | (_mm512_mask_mul_pch): Likewise. | |
3726 | (_mm512_maskz_mul_pch): Likewise. | |
3727 | (_mm512_mul_round_pch): Likewise. | |
3728 | (_mm512_mask_mul_round_pch): Likewise. | |
3729 | (_mm512_maskz_mul_round_pch): Likewise. | |
3730 | (_mm512_cmul_pch): Likewise. | |
3731 | (_mm512_mask_cmul_pch): Likewise. | |
3732 | (_mm512_maskz_cmul_pch): Likewise. | |
3733 | (_mm512_cmul_round_pch): Likewise. | |
3734 | (_mm512_mask_cmul_round_pch): Likewise. | |
3735 | (_mm512_maskz_cmul_round_pch): Likewise. | |
3736 | (_mm_mul_sch): Likewise. | |
3737 | (_mm_mask_mul_sch): Likewise. | |
3738 | (_mm_maskz_mul_sch): Likewise. | |
3739 | (_mm_mul_round_sch): Likewise. | |
3740 | (_mm_mask_mul_round_sch): Likewise. | |
3741 | (_mm_maskz_mul_round_sch): Likewise. | |
3742 | (_mm_cmul_sch): Likewise. | |
3743 | (_mm_mask_cmul_sch): Likewise. | |
3744 | (_mm_maskz_cmul_sch): Likewise. | |
3745 | (_mm_cmul_round_sch): Likewise. | |
3746 | (_mm_mask_cmul_round_sch): Likewise. | |
3747 | (_mm_maskz_cmul_round_sch): Likewise. | |
3748 | * config/i386/avx512fp16vlintrin.h (_mm_mul_pch): Likewise. | |
3749 | (_mm_mask_mul_pch): Likewise. | |
3750 | (_mm_maskz_mul_pch): Likewise. | |
3751 | (_mm256_mul_pch): Likewise. | |
3752 | (_mm256_mask_mul_pch): Likewise. | |
3753 | (_mm256_maskz_mul_pch): Likewise. | |
3754 | (_mm_cmul_pch): Likewise. | |
3755 | (_mm_mask_cmul_pch): Likewise. | |
3756 | (_mm_maskz_cmul_pch): Likewise. | |
3757 | (_mm256_cmul_pch): Likewise. | |
3758 | (_mm256_mask_cmul_pch): Likewise. | |
3759 | (_mm256_maskz_cmul_pch): Likewise. | |
3760 | ||
3761 | 2021-11-17 Andrew Pinski <apinski@marvell.com> | |
3762 | ||
3763 | PR tree-optimization/103228 | |
3764 | PR tree-optimization/55177 | |
3765 | * match.pd ((type) X bitop CST): Also do this | |
3766 | transformation for nop conversions. | |
3767 | ||
3768 | 2021-11-17 Martin Sebor <msebor@redhat.com> | |
3769 | ||
3770 | PR tree-optimization/102759 | |
3771 | * gimple-array-bounds.cc (build_printable_array_type): Move... | |
3772 | * gimple-ssa-warn-access.cc (build_printable_array_type): Avoid | |
3773 | pathological function redeclarations that remove a previously | |
3774 | declared prototype. | |
3775 | Improve formatting of function arguments in informational notes. | |
3776 | * pointer-query.cc (build_printable_array_type): ...to here. | |
3777 | * pointer-query.h (build_printable_array_type): Declared. | |
3778 | ||
3779 | 2021-11-17 H.J. Lu <hjl.tools@gmail.com> | |
3780 | ||
3781 | PR target/102952 | |
3782 | * config/i386/i386-opts.h (harden_sls): New enum. | |
3783 | * config/i386/i386.c (output_indirect_thunk): Mitigate against | |
3784 | SLS for function return. | |
3785 | (ix86_output_function_return): Likewise. | |
3786 | (ix86_output_jmp_thunk_or_indirect): Mitigate against indirect | |
3787 | branch. | |
3788 | (ix86_output_indirect_jmp): Likewise. | |
3789 | (ix86_output_call_insn): Likewise. | |
3790 | * config/i386/i386.opt: Add -mharden-sls=. | |
3791 | * doc/invoke.texi: Document -mharden-sls=. | |
3792 | ||
3793 | 2021-11-17 H.J. Lu <hjl.tools@gmail.com> | |
3794 | ||
3795 | PR target/103307 | |
3796 | * config/i386/i386.c (ix86_code_end): Remove "%!" before ret. | |
3797 | (ix86_output_function_return): Likewise. | |
3798 | * config/i386/i386.md (simple_return_pop_internal): Likewise. | |
3799 | ||
3800 | 2021-11-17 Jan Hubicka <hubicka@ucw.cz> | |
3801 | ||
3802 | PR ipa/103246 | |
3803 | * ipa-modref.c (read_modref_records): Fix streaminig in of every_access | |
3804 | flag. | |
3805 | ||
3806 | 2021-11-17 Uroš Bizjak <ubizjak@gmail.com> | |
3807 | ||
3808 | * config/i386/i386.c (indirect_thunks_used): Redefine as HARD_REG_SET. | |
3809 | (ix86_code_end): Use TEST_HARD_REG_BIT on indirect_thunks_used. | |
3810 | (ix86_output_indirect_branch_via_reg): Use SET_HARD_REG_BIT | |
3811 | on indirect_thunks_used. | |
3812 | (ix86_output_indirect_function_return): Ditto. | |
3813 | ||
3814 | 2021-11-17 Jan Hubicka <hubicka@ucw.cz> | |
3815 | ||
3816 | * ipa-modref-tree.c: Include cgraph.h and tree-streamer.h. | |
3817 | (modref_access_node::stream_out): New member function. | |
3818 | (modref_access_node::stream_in): New member function. | |
3819 | * ipa-modref-tree.h (modref_access_node::stream_out, | |
3820 | modref_access_node::stream_in): Declare. | |
3821 | * ipa-modref.c (modref_summary_lto::useful_p): Free useless kills. | |
3822 | (modref_summary_lto::dump): Dump kills. | |
3823 | (analyze_store): Record kills for LTO | |
3824 | (analyze_stmt): Likewise. | |
3825 | (modref_summaries_lto::duplicate): Duplicate kills. | |
3826 | (write_modref_records): Use new stream_out member function. | |
3827 | (read_modref_records): Likewise. | |
3828 | (modref_write): Stream out kills. | |
3829 | (read_section): Stream in kills | |
3830 | (remap_kills): New function. | |
3831 | (update_signature): Use it. | |
3832 | ||
3833 | 2021-11-17 Uroš Bizjak <ubizjak@gmail.com> | |
3834 | ||
3835 | * config/i386/i386.h (LEGACY_SSE_REGNO_P): New predicate. | |
3836 | (SSE_REGNO_P): Use LEGACY_SSE_REGNO_P predicate. | |
3837 | * config/i386/i386.c (zero_all_vector_registers): | |
3838 | Use LEGACY_SSE_REGNO_P predicate. | |
3839 | (ix86_register_priority): Use REX_INT_REGNO_P, REX_SSE_REGNO_P | |
3840 | and EXT_REG_SSE_REGNO_P predicates. | |
3841 | (ix86_hard_regno_call_part_clobbered): Use REX_SSE_REGNO_P | |
3842 | and LEGACY_SSE_REGNO_P predicates. | |
3843 | ||
3844 | 2021-11-17 Jason Merrill <jason@redhat.com> | |
3845 | ||
3846 | * doc/invoke.texi (C++ Dialect Options): Document | |
3847 | -fimplicit-constexpr. | |
3848 | ||
3849 | 2021-11-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
3850 | ||
3851 | * config/aarch64/aarch64-modes.def (VECTOR_MODE): New V8DI mode. | |
3852 | * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Handle | |
3853 | V8DImode. | |
3854 | * config/aarch64/iterators.md (define_mode_attr nunits): Add entry | |
3855 | for V8DI. | |
3856 | ||
3857 | 2021-11-17 Martin Uecker <uecker@gcc.gnu.org> | |
3858 | ||
3859 | PR c/91038 | |
3860 | PR c/29970 | |
3861 | * gimplify.c (gimplify_var_or_parm_decl): Update comment. | |
3862 | (gimplify_compound_lval): Gimplify base expression first. | |
3863 | (gimplify_target_expr): Add comment. | |
3864 | ||
3865 | 2021-11-17 Jakub Jelinek <jakub@redhat.com> | |
3866 | ||
3867 | PR tree-optimization/103192 | |
3868 | * tree-ssa-loop-im.c (move_computations_worker): Use | |
3869 | reset_flow_sensitive_info instead of manually clearing | |
3870 | SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones | |
3871 | with integral types. | |
3872 | ||
3873 | 2021-11-17 Jakub Jelinek <jakub@redhat.com> | |
3874 | ||
3875 | PR tree-optimization/103255 | |
3876 | * gimple-range-fold.cc (fold_using_range::range_of_address): Return | |
3877 | range_nonzero rather than unadjusted base's range. Formatting fixes. | |
3878 | ||
3879 | 2021-11-17 Richard Sandiford <richard.sandiford@arm.com> | |
3880 | ||
3881 | * doc/md.texi (cond_fmin@var{mode}, cond_fmax@var{mode}): Document. | |
3882 | * optabs.def (cond_fmin_optab, cond_fmax_optab): New optabs. | |
3883 | * internal-fn.def (COND_FMIN, COND_FMAX): New functions. | |
3884 | * internal-fn.c (first_commutative_argument): Handle them. | |
3885 | (FOR_EACH_COND_FN_PAIR): Likewise. | |
3886 | * match.pd (UNCOND_BINARY, COND_BINARY): Likewise. | |
3887 | * config/aarch64/aarch64-sve.md (cond_<fmaxmin><mode>): New | |
3888 | pattern. | |
3889 | ||
3890 | 2021-11-17 Kewen Lin <linkw@linux.ibm.com> | |
3891 | ||
3892 | * config/i386/i386.md (*add<dwi>3_doubleword, *addv<dwi>4_doubleword, | |
3893 | *addv<dwi>4_doubleword_1, *sub<dwi>3_doubleword, | |
3894 | *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1, | |
3895 | *add<dwi>3_doubleword_cc_overflow_1, *divmodsi4_const, | |
3896 | *neg<dwi>2_doubleword, *tls_dynamic_gnu2_combine_64_<mode>): Fix split | |
3897 | condition. | |
3898 | ||
3899 | 2021-11-17 Andrew Pinski <apinski@marvell.com> | |
3900 | ||
3901 | PR tree-optimization/103288 | |
3902 | * tree-ssa-phiopt.c (value_replacement): Return early if middle | |
3903 | block has more than one pred. | |
3904 | ||
3905 | 2021-11-17 Kewen Lin <linkw@linux.ibm.com> | |
3906 | ||
3907 | * config/visium/visium.md (*add<mode>3_insn, *addsi3_insn, *addi3_insn, | |
3908 | *sub<mode>3_insn, *subsi3_insn, *subdi3_insn, *neg<mode>2_insn, | |
3909 | *negdi2_insn, *and<mode>3_insn, *ior<mode>3_insn, *xor<mode>3_insn, | |
3910 | *one_cmpl<mode>2_insn, *ashl<mode>3_insn, *ashr<mode>3_insn, | |
3911 | *lshr<mode>3_insn, *trunchiqi2_insn, *truncsihi2_insn, | |
3912 | *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, | |
3913 | *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, | |
3914 | *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. | |
3915 | ||
3916 | 2021-11-17 Marek Polacek <polacek@redhat.com> | |
3917 | ||
3918 | PR preprocessor/103026 | |
3919 | * doc/invoke.texi: Document -Wbidi-chars. | |
3920 | ||
3921 | 2021-11-17 Jan Hubicka <hubicka@ucw.cz> | |
3922 | ||
3923 | PR ipa/103246 | |
3924 | * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix clearing | |
3925 | of to_info_lto | |
3926 | ||
3927 | 2021-11-16 Jan Hubicka <jh@suse.cz> | |
3928 | ||
3929 | * ipa-modref.c (get_modref_function_summary): Declare. | |
3930 | * ipa-modref.h (get_modref_function_summary): New function. | |
3931 | * tree-ssa-dse.c (clear_live_bytes_for_ref): Break out from ... | |
3932 | (clear_bytes_written_by): ... here; also clear memory killed by | |
3933 | calls. | |
3934 | ||
3935 | 2021-11-16 Iain Sandoe <iain@sandoe.co.uk> | |
3936 | ||
3937 | * ggc-common.c (gt_pch_save): If we cannot find a suitable | |
3938 | memory segment for save, then error-out, do not try to | |
3939 | continue. | |
3940 | (gt_pch_restore): Save the existing line table, and when | |
3941 | the replacement is being read, use that when constructing | |
3942 | diagnostics. | |
3943 | ||
3944 | 2021-11-16 Peter Bergner <bergner@linux.ibm.com> | |
3945 | ||
3946 | PR target/102976 | |
3947 | * config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for | |
3948 | output operand. | |
3949 | (*mma_assemble_acc): Likewise. | |
3950 | ||
3951 | 2021-11-16 Martin Sebor <msebor@redhat.com> | |
3952 | ||
3953 | PR tree-optimization/102960 | |
3954 | * gimple-fold.c (get_range_strlen): Take bitmap as an argument rather | |
3955 | than a pointer to it. | |
3956 | (get_range_strlen_tree): Same. Remove bitmap allocation. Use | |
3957 | an auto_bitmap. | |
3958 | (get_maxval_strlen): Use an auto_bitmap. | |
3959 | * tree-ssa-strlen.c (get_range_strlen_dynamic): Factor out PHI | |
3960 | handling... | |
3961 | (get_range_strlen_phi): ...into this function. | |
3962 | Avoid assuming maximum string length is constant | |
3963 | (printf_strlen_execute): Dump pointer query cache contents when | |
3964 | details are requisted. | |
3965 | ||
3966 | 2021-11-16 Jason Merrill <jason@redhat.com> | |
3967 | ||
3968 | * langhooks.h (struct lang_hooks): Adjust comment. | |
3969 | * print-tree.c (print_node): Also call print_xnode hook for | |
3970 | tcc_constant class. | |
3971 | ||
3972 | 2021-11-16 Andrew Pinski <apinski@marvell.com> | |
3973 | ||
3974 | PR tree-optimization/103218 | |
3975 | * match.pd: New pattern for "((type)(a<0)) << SIGNBITOFA". | |
3976 | ||
3977 | 2021-11-16 Claudiu Zissulescu <claziss@synopsys.com> | |
3978 | ||
3979 | * config/arc/arc.md (maddhisi4): Use a single move to accumulator. | |
3980 | (umaddhisi4): Likewise. | |
3981 | (machi): Update pattern. | |
3982 | (umachi): Likewise. | |
3983 | ||
3984 | 2021-11-16 Richard Biener <rguenther@suse.de> | |
3985 | ||
3986 | PR tree-optimization/102880 | |
3987 | * tree-ssa-dce.c (sort_phi_args): New function. | |
3988 | (make_forwarders_with_degenerate_phis): Likewise. | |
3989 | (perform_tree_ssa_dce): Call | |
3990 | make_forwarders_with_degenerate_phis. | |
3991 | ||
3992 | 2021-11-16 Richard Biener <rguenther@suse.de> | |
3993 | ||
3994 | PR tree-optimization/102880 | |
3995 | * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Push | |
3996 | single_pred (bb1) condition to places that really need it. | |
3997 | (match_simplify_replacement): Likewise. | |
3998 | (value_replacement): Likewise. | |
3999 | (replace_phi_edge_with_variable): Deal with extra edges | |
4000 | into the middle BB. | |
4001 | ||
4002 | 2021-11-16 Martin Jambor <mjambor@suse.cz> | |
4003 | ||
4004 | * cfgexpand.c (expand_gimple_basic_block): Use build_debug_expr_decl, | |
4005 | add a fixme note about the mode assignment perhaps being unnecessary. | |
4006 | * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): | |
4007 | Likewise. | |
4008 | (ipa_param_body_adjustments::mark_dead_statements): Likewise. | |
4009 | (ipa_param_body_adjustments::reset_debug_stmts): Likewise. | |
4010 | * tree-inline.c (remap_ssa_name): Likewise. | |
4011 | (tree_function_versioning): Likewise. | |
4012 | * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise. | |
4013 | * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. | |
4014 | * tree-ssa.c (insert_debug_temp_for_var_def): Likewise. | |
4015 | ||
4016 | 2021-11-16 Jakub Jelinek <jakub@redhat.com> | |
4017 | ||
4018 | PR tree-optimization/103208 | |
4019 | * omp-expand.c (expand_omp_build_cond): New function. | |
4020 | (expand_omp_for_init_counts, expand_omp_for_init_vars, | |
4021 | expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Use it. | |
4022 | ||
4023 | 2021-11-16 Jakub Jelinek <jakub@redhat.com> | |
4024 | ||
4025 | PR tree-optimization/102009 | |
4026 | * gimple-ssa-warn-access.cc (pass_waccess::check_alloc_size_call): | |
4027 | Punt if any of alloc_size arguments is out of bounds vs. number of | |
4028 | call arguments. | |
4029 | ||
4030 | 2021-11-16 Roger Sayle <roger@nextmovesoftware.com> | |
4031 | ||
4032 | * config/i386/i386.md (*bmi2_rorx<mode3>_1): Make conditional | |
4033 | on !optimize_function_for_size_p. | |
4034 | (*<any_rotate><mode>3_1): Add preferred_for_size attribute. | |
4035 | (define_splits): Conditionalize on !optimize_function_for_size_p. | |
4036 | (*bmi2_rorxsi3_1_zext): Likewise. | |
4037 | (*<any_rotate>si2_1_zext): Add preferred_for_size attribute. | |
4038 | (define_splits): Conditionalize on !optimize_function_for_size_p. | |
4039 | ||
4040 | 2021-11-16 Jan Hubicka <jh@suse.cz> | |
4041 | ||
4042 | PR ipa/103262 | |
4043 | * ipa-modref.c (merge_call_side_effects): Fix uninitialized | |
4044 | access. | |
4045 | ||
4046 | 2021-11-16 Andrew Pinski <apinski@marvell.com> | |
4047 | ||
4048 | PR tree-optimization/103245 | |
4049 | * match.pd: Combine the abs pattern matching using multiplication. | |
4050 | Adding optional nop_convert too. | |
4051 | ||
4052 | 2021-11-16 H.J. Lu <hjl.tools@gmail.com> | |
4053 | ||
4054 | PR middle-end/103268 | |
4055 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Add a missing | |
4056 | return. | |
4057 | ||
4058 | 2021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
4059 | ||
4060 | * gimple-fold.c (gimple_fold_builtin_strncat): Use ranges to | |
4061 | determine if it is safe to transform to strcat. | |
4062 | (gimple_fold_builtin_snprintf): Likewise. | |
4063 | ||
4064 | 2021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
4065 | ||
4066 | * gimple-fold.c (known_lower): New function. | |
4067 | (gimple_fold_builtin_strncat_chk, | |
4068 | gimple_fold_builtin_memory_chk, gimple_fold_builtin_stxcpy_chk, | |
4069 | gimple_fold_builtin_stxncpy_chk, | |
4070 | gimple_fold_builtin_snprintf_chk, | |
4071 | gimple_fold_builtin_sprintf_chk): Use it. | |
4072 | ||
4073 | 2021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
4074 | ||
4075 | * gimple-fold.c (dump_transformation): New function. | |
4076 | (gimple_fold_builtin_stxcpy_chk, | |
4077 | gimple_fold_builtin_stxncpy_chk): Use it. Simplify to | |
4078 | BUILT_IN_STRNCPY if return value is not used. | |
4079 | ||
4080 | 2021-11-15 H.J. Lu <hjl.tools@gmail.com> | |
4081 | ||
4082 | PR middle-end/103184 | |
4083 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check optab | |
4084 | before transforming equivalent, but slighly different cases to | |
4085 | their canonical forms. | |
4086 | ||
4087 | 2021-11-15 Iain Sandoe <iain@sandoe.co.uk> | |
4088 | ||
4089 | PR fortran/102992 | |
4090 | * config/darwin.h (TARGET_DTORS_FROM_CXA_ATEXIT): New. | |
4091 | * doc/tm.texi: Regenerated. | |
4092 | * doc/tm.texi.in: Add TARGET_DTORS_FROM_CXA_ATEXIT hook. | |
4093 | * ipa.c (cgraph_build_static_cdtor_1): Return the built | |
4094 | function decl. | |
4095 | (build_cxa_atexit_decl): New. | |
4096 | (build_dso_handle_decl): New. | |
4097 | (build_cxa_dtor_registrations): New. | |
4098 | (compare_cdtor_tu_order): New. | |
4099 | (build_cxa_atexit_fns): New. | |
4100 | (ipa_cdtor_merge): If dtors_from_cxa_atexit is set, | |
4101 | process the DTORs/CTORs accordingly. | |
4102 | (pass_ipa_cdtor_merge::gate): Also run if | |
4103 | dtors_from_cxa_atexit is set. | |
4104 | * target.def (dtors_from_cxa_atexit): New hook. | |
4105 | ||
4106 | 2021-11-15 Iain Sandoe <iain@sandoe.co.uk> | |
4107 | ||
4108 | * config.in: Regenerate. | |
4109 | * configure: Regenerate. | |
4110 | * configure.ac: Test ld64 for -platform-version support. | |
4111 | ||
4112 | 2021-11-15 Thomas Schwinge <thomas@codesourcery.com> | |
4113 | ||
4114 | * diagnostic-spec.h (typedef xint_hash_t) | |
4115 | (typedef xint_hash_map_t): Replace with... | |
4116 | (typedef nowarn_map_t): ... this. | |
4117 | (nowarn_map): Adjust. | |
4118 | * diagnostic-spec.c (nowarn_map, suppress_warning_at): Likewise. | |
4119 | ||
4120 | 2021-11-15 Thomas Schwinge <thomas@codesourcery.com> | |
4121 | ||
4122 | * profile.c (branch_prob): Use 'location_hash' for | |
4123 | 'seen_locations'. | |
4124 | ||
4125 | 2021-11-15 Aldy Hernandez <aldyh@redhat.com> | |
4126 | ||
4127 | PR tree-optimization/103207 | |
4128 | * value-range.cc (irange::set): Drop overflow. | |
4129 | ||
4130 | 2021-11-15 Jakub Jelinek <jakub@redhat.com> | |
4131 | ||
4132 | * gimplify.c (optimize_target_teams): Only add OMP_CLAUSE_THREAD_LIMIT | |
4133 | to OMP_TARGET_CLAUSES if it isn't there already. | |
4134 | ||
4135 | 2021-11-15 Aldy Hernandez <aldyh@redhat.com> | |
4136 | ||
4137 | * gimple-range-path.cc (path_range_query::internal_range_of_expr): | |
4138 | Remove useless code. | |
4139 | (path_range_query::ssa_defined_in_bb): New. | |
4140 | (path_range_query::ssa_range_in_phi): Avoid fold_range call that | |
4141 | could trigger additional lookups. | |
4142 | Do not use the cache for ARGs defined in this block. | |
4143 | (path_range_query::compute_ranges_in_block): Use ssa_defined_in_bb. | |
4144 | (path_range_query::maybe_register_phi_relation): Same. | |
4145 | (path_range_query::range_of_stmt): Adjust comment. | |
4146 | * gimple-range-path.h (ssa_defined_in_bb): New. | |
4147 | ||
4148 | 2021-11-15 Aldy Hernandez <aldyh@redhat.com> | |
4149 | ||
4150 | * gimple-range-path.cc (path_range_query::internal_range_of_expr): | |
4151 | Default to global range if nothing found. | |
4152 | ||
4153 | 2021-11-15 Richard Biener <rguenther@suse.de> | |
4154 | ||
4155 | PR tree-optimization/103237 | |
4156 | * tree-vect-loop.c (vect_is_simple_reduction): Fail for | |
4157 | double reductions with multiple inner loop LC PHI nodes. | |
4158 | ||
4159 | 2021-11-15 Hongyu Wang <hongyu.wang@intel.com> | |
4160 | ||
4161 | PR target/103069 | |
4162 | * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): | |
4163 | New expand function. | |
4164 | * config/i386/i386-options.c (ix86_target_string): Add | |
4165 | -mrelax-cmpxchg-loop flag. | |
4166 | (ix86_valid_target_attribute_inner_p): Likewise. | |
4167 | * config/i386/i386-protos.h (ix86_expand_atomic_fetch_op_loop): | |
4168 | New expand function prototype. | |
4169 | * config/i386/i386.opt: Add -mrelax-cmpxchg-loop. | |
4170 | * config/i386/sync.md (atomic_fetch_<logic><mode>): New expander | |
4171 | for SI,HI,QI modes. | |
4172 | (atomic_<logic>_fetch<mode>): Likewise. | |
4173 | (atomic_fetch_nand<mode>): Likewise. | |
4174 | (atomic_nand_fetch<mode>): Likewise. | |
4175 | (atomic_fetch_<logic><mode>): New expander for DI,TI modes. | |
4176 | (atomic_<logic>_fetch<mode>): Likewise. | |
4177 | (atomic_fetch_nand<mode>): Likewise. | |
4178 | (atomic_nand_fetch<mode>): Likewise. | |
4179 | * doc/invoke.texi: Document -mrelax-cmpxchg-loop. | |
4180 | ||
4181 | 2021-11-15 Richard Biener <rguenther@suse.de> | |
4182 | ||
4183 | PR tree-optimization/103219 | |
4184 | * gimple-loop-jam.c (tree_loop_unroll_and_jam): Use single_exit | |
4185 | to determine the exit for the VN region. | |
4186 | ||
4187 | 2021-11-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
4188 | ||
4189 | * tree-ssa-loop.c (pass_vectorize): Move to tree-vectorizer.c. | |
4190 | (pass_data_vectorize): Likewise. | |
4191 | (make_pass_vectorize): Likewise. | |
4192 | * tree-vectorizer.c (vectorize_loops): Merge with | |
4193 | pass_vectorize::execute and replace cfun occurences with fun param. | |
4194 | (adjust_simduid_builtins): Add fun param, replace cfun occurences with | |
4195 | fun, and adjust callers approrpiately. | |
4196 | (note_simd_array_uses): Likewise. | |
4197 | (vect_loop_dist_alias_call): Likewise. | |
4198 | (set_uid_loop_bbs): Likewise. | |
4199 | (vect_transform_loops): Likewise. | |
4200 | (try_vectorize_loop_1): Likewise. | |
4201 | (try_vectorize_loop): Likewise. | |
4202 | ||
4203 | 2021-11-15 Jakub Jelinek <jakub@redhat.com> | |
4204 | ||
4205 | PR target/103205 | |
4206 | * config/i386/sync.md (atomic_bit_test_and_set<mode>, | |
4207 | atomic_bit_test_and_complement<mode>, | |
4208 | atomic_bit_test_and_reset<mode>): Use OPTAB_WIDEN instead of | |
4209 | OPTAB_DIRECT. | |
4210 | ||
4211 | 2021-11-15 Maciej W. Rozycki <macro@embecosm.com> | |
4212 | ||
4213 | * config/vax/vax.c (vax_lra_p): New prototype and function. | |
4214 | (TARGET_LRA_P): Wire it. | |
4215 | * config/vax/vax.opt (mlra): New option. | |
4216 | * doc/invoke.texi (Option Summary, VAX Options): Document the | |
4217 | new option. | |
4218 | ||
4219 | 2021-11-14 Jan Hubicka <jh@suse.cz> | |
4220 | ||
4221 | * ipa-modref.h (struct modref_summary): Add nondeterministic | |
4222 | and calls_interposable flags. | |
4223 | * ipa-modref.c (modref_summary::modref_summary): Initialize new flags. | |
4224 | (modref_summary::useful_p): Check new flags. | |
4225 | (struct modref_summary_lto): Add nondeterministic and | |
4226 | calls_interposable flags. | |
4227 | (modref_summary_lto::modref_summary_lto): Initialize new flags. | |
4228 | (modref_summary_lto::useful_p): Check new flags. | |
4229 | (modref_summary::dump): Dump new flags. | |
4230 | (modref_summary_lto::dump): Dump new flags. | |
4231 | (ignore_nondeterminism_p): New function. | |
4232 | (merge_call_side_effects): Merge new flags. | |
4233 | (process_fnspec): Likewise. | |
4234 | (analyze_load): Volatile access is nondeterministic. | |
4235 | (analyze_store): Liekwise. | |
4236 | (analyze_stmt): Volatile ASM is nondeterministic. | |
4237 | (analyze_function): Clear new flags. | |
4238 | (modref_summaries::duplicate): Duplicate new flags. | |
4239 | (modref_summaries_lto::duplicate): Duplicate new flags. | |
4240 | (modref_write): Stream new flags. | |
4241 | (read_section): Stream new flags. | |
4242 | (propagate_unknown_call): Update new flags. | |
4243 | (modref_propagate_in_scc): Propagate new flags. | |
4244 | * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check | |
4245 | calls_interposable. | |
4246 | * tree-ssa-structalias.c (determine_global_memory_access): | |
4247 | Likewise. | |
4248 | ||
4249 | 2021-11-14 Maciej W. Rozycki <macro@embecosm.com> | |
4250 | ||
4251 | * config/vax/vax.h (SET_RATIO): New macro. | |
4252 | * config/vax/vax.md (UNSPEC_SETMEM_FILL): New constant. | |
4253 | (setmemhi): New expander. | |
4254 | (setmemhi1): New insn and splitter. | |
4255 | (*setmemhi1): New insn. | |
4256 | ||
4257 | 2021-11-14 Jan Hubicka <hubicka@ucw.cz> | |
4258 | ||
4259 | * ipa-modref-tree.c (modref_access_node::update_for_kills): New | |
4260 | member function. | |
4261 | (modref_access_node::merge_for_kills): Likewise. | |
4262 | (modref_access_node::insert_kill): Likewise. | |
4263 | * ipa-modref-tree.h (modref_access_node::update_for_kills, | |
4264 | modref_access_node::merge_for_kills, modref_access_node::insert_kill): | |
4265 | Declare. | |
4266 | (modref_access_node::useful_for_kill): New member function. | |
4267 | * ipa-modref.c (modref_summary::useful_p): Release useless kills. | |
4268 | (lto_modref_summary): Add kills. | |
4269 | (modref_summary::dump): Dump kills. | |
4270 | (record_access): Add mdoref_access_node parameter. | |
4271 | (record_access_lto): Likewise. | |
4272 | (merge_call_side_effects): Merge kills. | |
4273 | (analyze_call): Add ALWAYS_EXECUTED param and pass it around. | |
4274 | (struct summary_ptrs): Add always_executed filed. | |
4275 | (analyze_load): Update. | |
4276 | (analyze_store): Update; record kills. | |
4277 | (analyze_stmt): Add always_executed; record kills in clobbers. | |
4278 | (analyze_function): Track always_executed. | |
4279 | (modref_summaries::duplicate): Duplicate kills. | |
4280 | (update_signature): Release kills. | |
4281 | * ipa-modref.h (struct modref_summary): Add kills. | |
4282 | * tree-ssa-alias.c (alias_stats): Add kill stats. | |
4283 | (dump_alias_stats): Dump kill stats. | |
4284 | (store_kills_ref_p): Break out from ... | |
4285 | (stmt_kills_ref_p): Use it; handle modref info based kills. | |
4286 | ||
4287 | 2021-11-14 Aldy Hernandez <aldyh@redhat.com> | |
4288 | ||
4289 | PR tree-optimization/103229 | |
4290 | * gimple-range-cache.cc (ssa_global_cache::clear): Do not pass | |
4291 | null value to memset. | |
4292 | ||
4293 | 2021-11-14 Jan Hubicka <hubicka@ucw.cz> | |
4294 | ||
4295 | * ipa-modref-tree.c (modref_access_node::get_call_arg): New member | |
4296 | function. | |
4297 | (modref_access_node::get_ao_ref): Likewise. | |
4298 | * ipa-modref-tree.h (modref_access_node::get_call_arg): Declare. | |
4299 | (modref_access_node::get_ao_ref): Declare. | |
4300 | * tree-ssa-alias.c (modref_may_conflict): Use new accessors. | |
4301 | * tree-ssa-dse.c (dse_optimize_call): Use new accessors. | |
4302 | ||
4303 | 2021-11-13 Jan Hubicka <jh@suse.cz> | |
4304 | ||
4305 | PR lto/103211 | |
4306 | * dbgcnt.def (ipa_attr): New counters. | |
4307 | * ipa-pure-const.c: Include dbgcnt.c | |
4308 | (ipa_make_function_const): Use debug counter. | |
4309 | (ipa_make_function_pure): Likewise. | |
4310 | (propagate_pure_const): Fix bug in my previous change. | |
4311 | ||
4312 | 2021-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4313 | ||
4314 | * ipa-modref-tree.c (modref_access_node::range_info_useful_p): | |
4315 | Offline from ipa-modref-tree.h. | |
4316 | (modref_access_node::dump): Move from ipa-modref.c; make member | |
4317 | function. | |
4318 | * ipa-modref-tree.h (modref_access_node::range_info_useful_p. | |
4319 | modref_access_node::dump): Declare. | |
4320 | * ipa-modref.c (dump_access): Remove. | |
4321 | (dump_records): Update. | |
4322 | (dump_lto_records): Update. | |
4323 | (record_access): Update. | |
4324 | (record_access_lto): Update. | |
4325 | ||
4326 | 2021-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4327 | ||
4328 | * ipa-modref.c (modref_summary::modref_summary): Clear new flags. | |
4329 | (modref_summary::dump): Dump try_dse. | |
4330 | (modref_summary::finalize): Add FUN attribute; compute try-dse. | |
4331 | (analyze_function): Update. | |
4332 | (read_section): Update. | |
4333 | (update_signature): Update. | |
4334 | (pass_ipa_modref::execute): Update. | |
4335 | * ipa-modref.h (struct modref_summary): | |
4336 | * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Export. | |
4337 | * tree-ssa-alias.h (ao_ref_init_from_ptr_and_range): Declare. | |
4338 | * tree-ssa-dse.c (dse_optimize_call): New function. | |
4339 | (dse_optimize_stmt): Use it. | |
4340 | ||
4341 | 2021-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4342 | ||
4343 | * ipa-modref-tree.c: Move #if CHECKING_P to proper place. | |
4344 | ||
4345 | 2021-11-13 Jan Hubicka <jh@suse.cz> | |
4346 | ||
4347 | * ipa-modref-tree.h | |
4348 | (struct modref_access_node): Move longer member functions to | |
4349 | ipa-modref-tree.c | |
4350 | (modref_ref_node::try_merge_with): Turn into modreef_acces_node member | |
4351 | function. | |
4352 | * ipa-modref-tree.c (modref_access_node::contains): Move here | |
4353 | from ipa-modref-tree.h. | |
4354 | (modref_access_node::update): Likewise. | |
4355 | (modref_access_node::merge): Likewise. | |
4356 | (modref_access_node::closer_pair_p): Likewise. | |
4357 | (modref_access_node::forced_merge): Likewise. | |
4358 | (modref_access_node::update2): Likewise. | |
4359 | (modref_access_node::combined_offsets): Likewise. | |
4360 | (modref_access_node::try_merge_with): Likewise. | |
4361 | (modref_access_node::insert): Likewise. | |
4362 | ||
4363 | 2021-11-13 Jan Hubicka <jh@suse.cz> | |
4364 | ||
4365 | * ipa-modref.c (modref_summary::global_memory_read_p): Remove. | |
4366 | (modref_summary::global_memory_written_p): Remove. | |
4367 | (modref_summary::dump): Dump new flags. | |
4368 | (modref_summary::finalize): New member function. | |
4369 | (analyze_function): Call it. | |
4370 | (read_section): Call it. | |
4371 | (update_signature): Call it. | |
4372 | (pass_ipa_modref::execute): Call it. | |
4373 | * ipa-modref.h (struct modref_summary): Remove | |
4374 | global_memory_read_p and global_memory_written_p. | |
4375 | Add global_memory_read, global_memory_written. | |
4376 | * tree-ssa-structalias.c (determine_global_memory_access): | |
4377 | Update. | |
4378 | ||
4379 | 2021-11-13 Jan Hubicka <jh@suse.cz> | |
4380 | ||
4381 | * ipa-fnsummary.c (compute_fn_summary): Use type_attribut_allowed_p | |
4382 | * ipa-param-manipulation.c | |
4383 | (ipa_param_adjustments::type_attribute_allowed_p): | |
4384 | New member function. | |
4385 | (drop_type_attribute_if_params_changed_p): New function. | |
4386 | (build_adjusted_function_type): Use it. | |
4387 | * ipa-param-manipulation.h: Add type_attribute_allowed_p. | |
4388 | ||
4389 | 2021-11-13 David Malcolm <dmalcolm@redhat.com> | |
4390 | ||
4391 | * doc/invoke.texi (Static Analyzer Options): Add | |
4392 | -Wno-analyzer-tainted-allocation-size, | |
4393 | -Wno-analyzer-tainted-divisor, -Wno-analyzer-tainted-offset, and | |
4394 | -Wno-analyzer-tainted-size to list. Add | |
4395 | -Wanalyzer-tainted-allocation-size, -Wanalyzer-tainted-divisor, | |
4396 | -Wanalyzer-tainted-offset, and -Wanalyzer-tainted-size to list | |
4397 | of options effectively enabled by -fanalyzer. | |
4398 | (-Wanalyzer-tainted-allocation-size): New. | |
4399 | (-Wanalyzer-tainted-array-index): Tweak wording; add link to CWE. | |
4400 | (-Wanalyzer-tainted-divisor): New. | |
4401 | (-Wanalyzer-tainted-offset): New. | |
4402 | (-Wanalyzer-tainted-size): New. | |
4403 | ||
4404 | 2021-11-13 Jan Hubicka <jh@suse.cz> | |
4405 | ||
4406 | * attr-fnspec.h (attr_fnspec::arg_eaf_flags): Break out from ... | |
4407 | * gimple.c (gimple_call_arg_flags): ... here. | |
4408 | * ipa-modref.c (analyze_parms): Record flags known from fnspec. | |
4409 | (modref_merge_call_site_flags): Use arg_eaf_flags. | |
4410 | ||
4411 | 2021-11-13 Aldy Hernandez <aldyh@redhat.com> | |
4412 | ||
4413 | PR tree-optimization/103222 | |
4414 | * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): | |
4415 | New. | |
4416 | (path_range_query::compute_ranges_in_block): Call | |
4417 | compute_ranges_in_phis. | |
4418 | * gimple-range-path.h (path_range_query::compute_ranges_in_phis): | |
4419 | New. | |
4420 | ||
4421 | 2021-11-13 Jan Hubicka <jh@suse.cz> | |
4422 | ||
4423 | * ipa-fnsummary.c (compute_fn_summary): Do not give up on signature | |
4424 | changes on "fn spec" attribute; give up on varadic types. | |
4425 | * ipa-param-manipulation.c: Include attribs.h. | |
4426 | (build_adjusted_function_type): New parameter ARG_MODIFIED; if it is | |
4427 | true remove "fn spec" attribute. | |
4428 | (ipa_param_adjustments::build_new_function_type): Update. | |
4429 | (ipa_param_body_adjustments::modify_formal_parameters): update. | |
4430 | * ipa-sra.c: Include attribs.h. | |
4431 | (ipa_sra_preliminary_function_checks): Do not check for TYPE_ATTRIBUTES. | |
4432 | ||
4433 | 2021-11-13 Aldy Hernandez <aldyh@redhat.com> | |
4434 | ||
4435 | * gimple-range-path.cc (path_range_query::path_range_query): Merge | |
4436 | ctors. | |
4437 | (path_range_query::import_p): Move from header file. | |
4438 | (path_range_query::~path_range_query): Adjust for combined ctors. | |
4439 | * gimple-range-path.h: Merge ctors. | |
4440 | (path_range_query::import_p): Move to .cc file. | |
4441 | ||
4442 | 2021-11-13 Jan Hubicka <jh@suse.cz> | |
4443 | ||
4444 | PR tree-optimization/103182 | |
4445 | * ipa-modref.c (callee_to_caller_flags): Fix merging of flags. | |
4446 | (modref_eaf_analysis::analyze_ssa_name): Fix merging of flags. | |
4447 | ||
4448 | 2021-11-12 Stafford Horne <shorne@gmail.com> | |
4449 | ||
4450 | * config/or1k/or1k-protos.h (or1k_profile_hook): New function. | |
4451 | * config/or1k/or1k.h (PROFILE_HOOK): Change macro to reference | |
4452 | new function or1k_profile_hook. | |
4453 | * config/or1k/or1k.c (struct machine_function): Add new field | |
4454 | set_mcount_arg_insn. | |
4455 | (or1k_profile_hook): New function. | |
4456 | (or1k_init_pic_reg): Update to inject pic rtx after _mcount arg | |
4457 | when profiling. | |
4458 | (or1k_frame_pointer_required): Frame pointer no longer needed | |
4459 | when profiling. | |
4460 | ||
4461 | 2021-11-12 Jan Hubicka <jh@suse.cz> | |
4462 | ||
4463 | PR tree-optimization/103209 | |
4464 | * tree-ssa-structalias.c (find_func_aliases_for_call): Fix | |
4465 | use of handle_rhs_call | |
4466 | ||
4467 | 2021-11-12 Aldy Hernandez <aldyh@redhat.com> | |
4468 | ||
4469 | PR tree-optimization/103202 | |
4470 | * gimple-range-path.cc | |
4471 | (path_range_query::compute_ranges_in_block): Solve PHI imports first. | |
4472 | ||
4473 | 2021-11-12 Jan Hubicka <jh@suse.cz> | |
4474 | ||
4475 | * ipa-pure-const.c (propagate_pure_const): Remove redundant check; | |
4476 | fix call of ipa_make_function_const and ipa_make_function_pure. | |
4477 | ||
4478 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4479 | ||
4480 | * config/aarch64/aarch64.c (aarch64_vector_op::n_advsimd_ops): Delete. | |
4481 | (aarch64_vector_op::m_seen_loads): Likewise. | |
4482 | (aarch64_vector_costs::aarch64_vector_costs): Don't push to | |
4483 | m_advsimd_ops. | |
4484 | (aarch64_vector_op::count_ops): Remove vectype and factor parameters. | |
4485 | Remove code that tries to predict different vec_flags from the | |
4486 | current loop's. | |
4487 | (aarch64_vector_costs::add_stmt_cost): Update accordingly. | |
4488 | Remove m_advsimd_ops handling. | |
4489 | ||
4490 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4491 | ||
4492 | * config/aarch64/aarch64.c (aarch64_vector_costs::m_saw_sve_only_op) | |
4493 | (aarch64_sve_only_stmt_p): Delete. | |
4494 | (aarch64_vector_costs::prefer_unrolled_loop): New function, | |
4495 | extracted from adjust_body_cost. | |
4496 | (aarch64_vector_costs::better_main_loop_than_p): New function, | |
4497 | using heuristics extracted from adjust_body_cost and | |
4498 | adjust_body_cost_sve. | |
4499 | (aarch64_vector_costs::adjust_body_cost_sve): Remove | |
4500 | advsimd_cycles_per_iter and could_use_advsimd parameters. | |
4501 | Update after changes above. | |
4502 | (aarch64_vector_costs::adjust_body_cost): Update after changes above. | |
4503 | ||
4504 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4505 | ||
4506 | * config/aarch64/aarch64.c (aarch64_vec_op_count::m_vf_factor): | |
4507 | New member variable. | |
4508 | (aarch64_vec_op_count::aarch64_vec_op_count): Add a parameter for it. | |
4509 | (aarch64_vec_op_count::vf_factor): New function. | |
4510 | (aarch64_vector_costs::aarch64_vector_costs): When costing for | |
4511 | neoverse-512tvb, pass a vf_factor of 2 for the Neoverse V1 version | |
4512 | of an SVE loop. | |
4513 | (aarch64_vector_costs::adjust_body_cost): Read the vf factor | |
4514 | instead of hard-coding 2. | |
4515 | ||
4516 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4517 | ||
4518 | * config/aarch64/aarch64.c | |
4519 | (aarch64_vec_op_count::rename_cycles_per_iter): New function. | |
4520 | (aarch64_vec_op_count::min_nonpred_cycles_per_iter): Likewise. | |
4521 | (aarch64_vec_op_count::min_pred_cycles_per_iter): Likewise. | |
4522 | (aarch64_vec_op_count::min_cycles_per_iter): Likewise. | |
4523 | (aarch64_vec_op_count::dump): Move earlier in file. Dump the | |
4524 | above properties too. | |
4525 | (aarch64_estimate_min_cycles_per_iter): Delete. | |
4526 | (adjust_body_cost): Use aarch64_vec_op_count::min_cycles_per_iter | |
4527 | instead of aarch64_estimate_min_cycles_per_iter. Rely on the dump | |
4528 | routine to print CPI estimates. | |
4529 | (adjust_body_cost_sve): Likewise. Use the other functions above | |
4530 | instead of doing the work inline. | |
4531 | ||
4532 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4533 | ||
4534 | * config/aarch64/aarch64.c (aarch64_vec_op_count): Allow default | |
4535 | initialization. | |
4536 | (aarch64_vec_op_count::base_issue_info): Remove handling of null | |
4537 | issue_infos. | |
4538 | (aarch64_vec_op_count::simd_issue_info): Likewise. | |
4539 | (aarch64_vec_op_count::sve_issue_info): Likewise. | |
4540 | (aarch64_vector_costs::m_ops): Turn into a vector. | |
4541 | (aarch64_vector_costs::m_advsimd_ops): Likewise. | |
4542 | (aarch64_vector_costs::aarch64_vector_costs): Add entries to | |
4543 | the vectors based on aarch64_tune_params. | |
4544 | (aarch64_vector_costs::analyze_loop_vinfo): Update the pred_ops | |
4545 | of all entries in m_ops. | |
4546 | (aarch64_vector_costs::add_stmt_cost): Call count_ops for all | |
4547 | entries in m_ops. | |
4548 | (aarch64_estimate_min_cycles_per_iter): Remove issue_info | |
4549 | parameter and get the information from the ops instead. | |
4550 | (aarch64_vector_costs::adjust_body_cost_sve): Take a | |
4551 | aarch64_vec_issue_info instead of a aarch64_vec_op_count. | |
4552 | (aarch64_vector_costs::adjust_body_cost): Update call accordingly. | |
4553 | Exit earlier if m_ops is empty for either cost structure. | |
4554 | ||
4555 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4556 | ||
4557 | * config/aarch64/aarch64.c (aarch64_vector_costs::m_scalar_ops) | |
4558 | (aarch64_vector_costs::m_sve_ops): Replace with... | |
4559 | (aarch64_vector_costs::m_ops): ...this. | |
4560 | (aarch64_vector_costs::analyze_loop_vinfo): Update accordingly. | |
4561 | (aarch64_vector_costs::adjust_body_cost_sve): Likewise. | |
4562 | (aarch64_vector_costs::aarch64_vector_costs): Likewise. | |
4563 | Initialize m_vec_flags here rather than in add_stmt_cost. | |
4564 | (aarch64_vector_costs::count_ops): Test for scalar reductions too. | |
4565 | Allow vectype to be null. | |
4566 | (aarch64_vector_costs::add_stmt_cost): Call count_ops for scalar | |
4567 | code too. Don't require vectype to be nonnull. | |
4568 | (aarch64_vector_costs::adjust_body_cost): Take the loop_vec_info | |
4569 | and scalar costs as parameters. Use the scalar costs to determine | |
4570 | the cycles per iteration of the scalar loop, then multiply it | |
4571 | by the estimated VF. | |
4572 | (aarch64_vector_costs::finish_cost): Update call accordingly. | |
4573 | ||
4574 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4575 | ||
4576 | * config/aarch64/aarch64.c (aarch64_dr_type): New function. | |
4577 | (aarch64_vector_costs::count_ops): Use it rather than the | |
4578 | vectype to determine floatness. | |
4579 | ||
4580 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4581 | ||
4582 | * config/aarch64/aarch64.c (aarch64_sve_in_loop_reduction_latency): | |
4583 | Remove vectype parameter and get floatness from the type of the | |
4584 | stmt lhs instead. | |
4585 | (arch64_in_loop_reduction_latency): Likewise. | |
4586 | (aarch64_detect_vector_stmt_subtype): Update caller. | |
4587 | (aarch64_vector_costs::count_ops): Likewise. | |
4588 | ||
4589 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4590 | ||
4591 | * config/aarch64/aarch64.c (aarch64_sve_op_count): Fold into... | |
4592 | (aarch64_vec_op_count): ...this. Add a constructor. | |
4593 | (aarch64_vec_op_count::vec_flags): New function. | |
4594 | (aarch64_vec_op_count::base_issue_info): Likewise. | |
4595 | (aarch64_vec_op_count::simd_issue_info): Likewise. | |
4596 | (aarch64_vec_op_count::sve_issue_info): Likewise. | |
4597 | (aarch64_vec_op_count::m_issue_info): New member variable. | |
4598 | (aarch64_vec_op_count::m_vec_flags): Likewise. | |
4599 | (aarch64_vector_costs): Add a constructor. | |
4600 | (aarch64_vector_costs::m_sve_ops): Change type to aarch64_vec_op_count. | |
4601 | (aarch64_vector_costs::aarch64_vector_costs): New function. | |
4602 | Initialize m_scalar_ops, m_advsimd_ops and m_sve_ops. | |
4603 | (aarch64_vector_costs::count_ops): Remove vec_flags and | |
4604 | issue_info parameters, using the new aarch64_vec_op_count | |
4605 | functions instead. | |
4606 | (aarch64_vector_costs::add_stmt_cost): Update call accordingly. | |
4607 | (aarch64_sve_op_count::dump): Fold into... | |
4608 | (aarch64_vec_op_count::dump): ..here. | |
4609 | ||
4610 | 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> | |
4611 | ||
4612 | * config/aarch64/aarch64.c: Include tree-dfa.h. | |
4613 | (aarch64_check_consecutive_mems): New function that takes MEM_EXPR | |
4614 | and MEM_OFFSET into account. | |
4615 | (aarch64_swap_ldrstr_operands): Use it. | |
4616 | (aarch64_operands_ok_for_ldpstp): Likewise. Check that the | |
4617 | address of the second memory doesn't depend on the result of | |
4618 | the first load. | |
4619 | ||
4620 | 2021-11-12 Jan Hubicka <hubicka@ucw.cz> | |
4621 | ||
4622 | * ipa-pure-const.c (ipa_make_function_pure): Fix exit condition. | |
4623 | ||
4624 | 2021-11-12 Jan Hubicka <jh@suse.cz> | |
4625 | ||
4626 | PR tree-optimization/103175 | |
4627 | * ipa-modref.c (modref_lattice::merge): Add sanity check. | |
4628 | (callee_to_caller_flags): Make flags adjustment sane. | |
4629 | (modref_eaf_analysis::analyze_ssa_name): Likewise. | |
4630 | ||
4631 | 2021-11-12 Jan Hubicka <jh@suse.cz> | |
4632 | ||
4633 | PR ipa/103200 | |
4634 | * ipa-modref.c (analyze_function, modref_propagate_in_scc): Do | |
4635 | not mark pure/const function if there are side-effects. | |
4636 | ||
4637 | 2021-11-12 Chung-Lin Tang <cltang@codesourcery.com> | |
4638 | ||
4639 | * tree.h (OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P): New access macro for | |
4640 | 'implicit' bit, using 'base.deprecated_flag' field of tree_node. | |
4641 | * tree-pretty-print.c (dump_omp_clause): Add support for printing | |
4642 | implicit attribute in tree dumping. | |
4643 | * gimplify.c (gimplify_adjust_omp_clauses_1): | |
4644 | Set OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P to 1 if map clause is implicitly | |
4645 | created. | |
4646 | (gimplify_adjust_omp_clauses): Adjust place of adding implicitly created | |
4647 | clauses, from simple append, to starting of list, after non-map clauses. | |
4648 | * omp-low.c (lower_omp_target): Add GOMP_MAP_IMPLICIT bits into kind | |
4649 | values passed to libgomp for implicit maps. | |
4650 | ||
4651 | 2021-11-12 Jakub Jelinek <jakub@redhat.com> | |
4652 | ||
4653 | * omp-builtins.def (BUILT_IN_GOMP_TEAMS): Remove. | |
4654 | (BUILT_IN_GOMP_TEAMS4): New. | |
4655 | * builtin-types.def (BT_FN_VOID_UINT_UINT): Remove. | |
4656 | (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New. | |
4657 | * omp-low.c (lower_omp_teams): Use GOMP_teams4 instead of | |
4658 | GOMP_teams, pass to it also num_teams lower-bound expression | |
4659 | or a dup of upper-bound if it is missing and a flag whether | |
4660 | it is the first call or not. | |
4661 | ||
4662 | 2021-11-12 Martin Liska <mliska@suse.cz> | |
4663 | ||
4664 | PR tree-optimization/102497 | |
4665 | * gimple-predicate-analysis.cc (add_pred): Remove unused | |
4666 | function: | |
4667 | ||
4668 | 2021-11-12 Richard Biener <rguenther@suse.de> | |
4669 | ||
4670 | PR tree-optimization/103204 | |
4671 | * tree-ssa-sccvn.c (valueize_refs_1): Re-valueize the | |
4672 | top operand after folding in an address. | |
4673 | ||
4674 | 2021-11-11 Aldy Hernandez <aldyh@redhat.com> | |
4675 | ||
4676 | * gimple-range-path.cc (path_range_query::path_range_query): New | |
4677 | ctor without a ranger. | |
4678 | (path_range_query::~path_range_query): Free ranger if necessary. | |
4679 | (path_range_query::range_on_path_entry): Adjust m_ranger for pointer. | |
4680 | (path_range_query::ssa_range_in_phi): Same. | |
4681 | (path_range_query::compute_ranges_in_block): Same. | |
4682 | (path_range_query::compute_imports): Same. | |
4683 | (path_range_query::compute_ranges): Same. | |
4684 | (path_range_query::range_of_stmt): Same. | |
4685 | (path_range_query::compute_outgoing_relations): Same. | |
4686 | * gimple-range-path.h (class path_range_query): New ctor. | |
4687 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Remove gimple_ranger | |
4688 | as path_range_query allocates one. | |
4689 | * tree-ssa-threadbackward.c (class back_threader): Remove m_ranger. | |
4690 | (back_threader::~back_threader): Same. | |
4691 | ||
4692 | 2021-11-11 Aldy Hernandez <aldyh@redhat.com> | |
4693 | ||
4694 | * tree-ssa-threadbackward.c | |
4695 | (back_threader_profitability::profitable_path_p): Remove loop | |
4696 | crossing restriction. | |
4697 | ||
4698 | 2021-11-11 Jan Hubicka <hubicka@ucw.cz> | |
4699 | ||
4700 | * ipa-modref.c (analyze_function): Do pure/const discovery, return | |
4701 | true on success. | |
4702 | (pass_modref::execute): If pure/const is discovered fixup cfg. | |
4703 | (ignore_edge): Do not ignore pure/const edges. | |
4704 | (modref_propagate_in_scc): Do pure/const discovery, return true if | |
4705 | cdtor was promoted pure/const. | |
4706 | (pass_ipa_modref::execute): If needed remove unreachable functions. | |
4707 | * ipa-pure-const.c (warn_function_noreturn): Fix whitespace. | |
4708 | (warn_function_cold): Likewise. | |
4709 | (skip_function_for_local_pure_const): Move earlier. | |
4710 | (ipa_make_function_const): Break out from ... | |
4711 | (ipa_make_function_pure): Break out from ... | |
4712 | (propagate_pure_const): ... here. | |
4713 | (pass_local_pure_const::execute): Use it. | |
4714 | * ipa-utils.h (ipa_make_function_const): Declare. | |
4715 | (ipa_make_function_pure): Declare. | |
4716 | * passes.def: Move early modref after pure-const. | |
4717 | ||
4718 | 2021-11-11 David Malcolm <dmalcolm@redhat.com> | |
4719 | ||
4720 | PR other/103129 | |
4721 | * diagnostic-show-locus.c (def_policy): Use def_tabstop. | |
4722 | ||
4723 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4724 | ||
4725 | * config/aarch64/aarch64-builtins.c (TYPES_COMBINE): Delete. | |
4726 | (TYPES_COMBINEP): Delete. | |
4727 | * config/aarch64/aarch64-simd-builtins.def: Declare type- | |
4728 | qualified builtins for vcombine_* intrinsics. | |
4729 | * config/aarch64/arm_neon.h (vcombine_s8): Remove unnecessary | |
4730 | cast. | |
4731 | (vcombine_s16): Likewise. | |
4732 | (vcombine_s32): Likewise. | |
4733 | (vcombine_f32): Likewise. | |
4734 | (vcombine_u8): Use type-qualified builtin and remove casts. | |
4735 | (vcombine_u16): Likewise. | |
4736 | (vcombine_u32): Likewise. | |
4737 | (vcombine_u64): Likewise. | |
4738 | (vcombine_p8): Likewise. | |
4739 | (vcombine_p16): Likewise. | |
4740 | (vcombine_p64): Likewise. | |
4741 | (vcombine_bf16): Remove unnecessary cast. | |
4742 | * config/aarch64/iterators.md (VD_I): New mode iterator. | |
4743 | (VDC_P): New mode iterator. | |
4744 | ||
4745 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4746 | ||
4747 | * config/aarch64/aarch64-builtins.c (TYPES_LOAD1_U): Define. | |
4748 | (TYPES_LOAD1_P): Define. | |
4749 | (TYPES_STORE1_U): Define. | |
4750 | (TYPES_STORE1P): Rename to... | |
4751 | (TYPES_STORE1_P): This. | |
4752 | (get_mem_type_for_load_store): Add unsigned and poly types. | |
4753 | (aarch64_general_gimple_fold_builtin): Add unsigned and poly | |
4754 | type-qualified builtin declarations. | |
4755 | * config/aarch64/aarch64-simd-builtins.def: Declare type- | |
4756 | qualified builtins for LD1/ST1. | |
4757 | * config/aarch64/arm_neon.h (vld1_p8): Use type-qualified | |
4758 | builtin and remove cast. | |
4759 | (vld1_p16): Likewise. | |
4760 | (vld1_u8): Likewise. | |
4761 | (vld1_u16): Likewise. | |
4762 | (vld1_u32): Likewise. | |
4763 | (vld1q_p8): Likewise. | |
4764 | (vld1q_p16): Likewise. | |
4765 | (vld1q_p64): Likewise. | |
4766 | (vld1q_u8): Likewise. | |
4767 | (vld1q_u16): Likewise. | |
4768 | (vld1q_u32): Likewise. | |
4769 | (vld1q_u64): Likewise. | |
4770 | (vst1_p8): Likewise. | |
4771 | (vst1_p16): Likewise. | |
4772 | (vst1_u8): Likewise. | |
4773 | (vst1_u16): Likewise. | |
4774 | (vst1_u32): Likewise. | |
4775 | (vst1q_p8): Likewise. | |
4776 | (vst1q_p16): Likewise. | |
4777 | (vst1q_p64): Likewise. | |
4778 | (vst1q_u8): Likewise. | |
4779 | (vst1q_u16): Likewise. | |
4780 | (vst1q_u32): Likewise. | |
4781 | (vst1q_u64): Likewise. | |
4782 | * config/aarch64/iterators.md (VALLP_NO_DI): New iterator. | |
4783 | ||
4784 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4785 | ||
4786 | * config/aarch64/aarch64-simd-builtins.def: Declare unsigned | |
4787 | builtins for vector reduction. | |
4788 | * config/aarch64/arm_neon.h (vaddv_u8): Use type-qualified | |
4789 | builtin and remove casts. | |
4790 | (vaddv_u16): Likewise. | |
4791 | (vaddv_u32): Likewise. | |
4792 | (vaddvq_u8): Likewise. | |
4793 | (vaddvq_u16): Likewise. | |
4794 | (vaddvq_u32): Likewise. | |
4795 | (vaddvq_u64): Likewise. | |
4796 | ||
4797 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4798 | ||
4799 | * config/aarch64/aarch64-simd-builtins.def: | |
4800 | * config/aarch64/arm_neon.h (vpaddq_u8): Use type-qualified | |
4801 | builtin and remove casts. | |
4802 | (vpaddq_u16): Likewise. | |
4803 | (vpaddq_u32): Likewise. | |
4804 | (vpaddq_u64): Likewise. | |
4805 | (vpadd_u8): Likewise. | |
4806 | (vpadd_u16): Likewise. | |
4807 | (vpadd_u32): Likewise. | |
4808 | (vpaddd_u64): Likewise. | |
4809 | ||
4810 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4811 | ||
4812 | * config/aarch64/aarch64-simd-builtins.def: Declare unsigned | |
4813 | builtins for [r]subhn[2]. | |
4814 | * config/aarch64/arm_neon.h (vsubhn_s16): Remove unnecessary | |
4815 | cast. | |
4816 | (vsubhn_s32): Likewise. | |
4817 | (vsubhn_s64): Likewise. | |
4818 | (vsubhn_u16): Use type-qualified builtin and remove casts. | |
4819 | (vsubhn_u32): Likewise. | |
4820 | (vsubhn_u64): Likewise. | |
4821 | (vrsubhn_s16): Remove unnecessary cast. | |
4822 | (vrsubhn_s32): Likewise. | |
4823 | (vrsubhn_s64): Likewise. | |
4824 | (vrsubhn_u16): Use type-qualified builtin and remove casts. | |
4825 | (vrsubhn_u32): Likewise. | |
4826 | (vrsubhn_u64): Likewise. | |
4827 | (vrsubhn_high_s16): Remove unnecessary cast. | |
4828 | (vrsubhn_high_s32): Likewise. | |
4829 | (vrsubhn_high_s64): Likewise. | |
4830 | (vrsubhn_high_u16): Use type-qualified builtin and remove | |
4831 | casts. | |
4832 | (vrsubhn_high_u32): Likewise. | |
4833 | (vrsubhn_high_u64): Likewise. | |
4834 | (vsubhn_high_s16): Remove unnecessary cast. | |
4835 | (vsubhn_high_s32): Likewise. | |
4836 | (vsubhn_high_s64): Likewise. | |
4837 | (vsubhn_high_u16): Use type-qualified builtin and remove | |
4838 | casts. | |
4839 | (vsubhn_high_u32): Likewise. | |
4840 | (vsubhn_high_u64): Likewise. | |
4841 | ||
4842 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4843 | ||
4844 | * config/aarch64/aarch64-simd-builtins.def: Declare unsigned | |
4845 | builtins for [r]addhn[2]. | |
4846 | * config/aarch64/arm_neon.h (vaddhn_s16): Remove unnecessary | |
4847 | cast. | |
4848 | (vaddhn_s32): Likewise. | |
4849 | (vaddhn_s64): Likewise. | |
4850 | (vaddhn_u16): Use type-qualified builtin and remove casts. | |
4851 | (vaddhn_u32): Likewise. | |
4852 | (vaddhn_u64): Likewise. | |
4853 | (vraddhn_s16): Remove unnecessary cast. | |
4854 | (vraddhn_s32): Likewise. | |
4855 | (vraddhn_s64): Likewise. | |
4856 | (vraddhn_u16): Use type-qualified builtin and remove casts. | |
4857 | (vraddhn_u32): Likewise. | |
4858 | (vraddhn_u64): Likewise. | |
4859 | (vaddhn_high_s16): Remove unnecessary cast. | |
4860 | (vaddhn_high_s32): Likewise. | |
4861 | (vaddhn_high_s64): Likewise. | |
4862 | (vaddhn_high_u16): Use type-qualified builtin and remove | |
4863 | casts. | |
4864 | (vaddhn_high_u32): Likewise. | |
4865 | (vaddhn_high_u64): Likewise. | |
4866 | (vraddhn_high_s16): Remove unnecessary cast. | |
4867 | (vraddhn_high_s32): Likewise. | |
4868 | (vraddhn_high_s64): Likewise. | |
4869 | (vraddhn_high_u16): Use type-qualified builtin and remove | |
4870 | casts. | |
4871 | (vraddhn_high_u32): Likewise. | |
4872 | (vraddhn_high_u64): Likewise. | |
4873 | ||
4874 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4875 | ||
4876 | * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type | |
4877 | qualifiers in generator macros for uhsub builtins. | |
4878 | * config/aarch64/arm_neon.h (vhsub_s8): Remove unnecessary | |
4879 | cast. | |
4880 | (vhsub_s16): Likewise. | |
4881 | (vhsub_s32): Likewise. | |
4882 | (vhsub_u8): Use type-qualified builtin and remove casts. | |
4883 | (vhsub_u16): Likewise. | |
4884 | (vhsub_u32): Likewise. | |
4885 | (vhsubq_s8): Remove unnecessary cast. | |
4886 | (vhsubq_s16): Likewise. | |
4887 | (vhsubq_s32): Likewise. | |
4888 | (vhsubq_u8): Use type-qualified builtin and remove casts. | |
4889 | (vhsubq_u16): Likewise. | |
4890 | (vhsubq_u32): Likewise. | |
4891 | ||
4892 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4893 | ||
4894 | * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type | |
4895 | qualifiers in generator macros for u[r]hadd builtins. | |
4896 | * config/aarch64/arm_neon.h (vhadd_s8): Remove unnecessary | |
4897 | cast. | |
4898 | (vhadd_s16): Likewise. | |
4899 | (vhadd_s32): Likewise. | |
4900 | (vhadd_u8): Use type-qualified builtin and remove casts. | |
4901 | (vhadd_u16): Likewise. | |
4902 | (vhadd_u32): Likewise. | |
4903 | (vhaddq_s8): Remove unnecessary cast. | |
4904 | (vhaddq_s16): Likewise. | |
4905 | (vhaddq_s32): Likewise. | |
4906 | (vhaddq_u8): Use type-qualified builtin and remove casts. | |
4907 | (vhaddq_u16): Likewise. | |
4908 | (vhaddq_u32): Likewise. | |
4909 | (vrhadd_s8): Remove unnecessary cast. | |
4910 | (vrhadd_s16): Likewise. | |
4911 | (vrhadd_s32): Likewise. | |
4912 | (vrhadd_u8): Use type-qualified builtin and remove casts. | |
4913 | (vrhadd_u16): Likewise. | |
4914 | (vrhadd_u32): Likewise. | |
4915 | (vrhaddq_s8): Remove unnecessary cast. | |
4916 | (vrhaddq_s16): Likewise. | |
4917 | (vrhaddq_s32): Likewise. | |
4918 | (vrhaddq_u8): Use type-wualified builtin and remove casts. | |
4919 | (vrhaddq_u16): Likewise. | |
4920 | (vrhaddq_u32): Likewise. | |
4921 | ||
4922 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4923 | ||
4924 | * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type | |
4925 | qualifiers in generator macros for usub[lw][2] builtins. | |
4926 | * config/aarch64/arm_neon.h (vsubl_s8): Remove unnecessary | |
4927 | cast. | |
4928 | (vsubl_s16): Likewise. | |
4929 | (vsubl_s32): Likewise. | |
4930 | (vsubl_u8): Use type-qualified builtin and remove casts. | |
4931 | (vsubl_u16): Likewise. | |
4932 | (vsubl_u32): Likewise. | |
4933 | (vsubl_high_s8): Remove unnecessary cast. | |
4934 | (vsubl_high_s16): Likewise. | |
4935 | (vsubl_high_s32): Likewise. | |
4936 | (vsubl_high_u8): Use type-qualified builtin and remove casts. | |
4937 | (vsubl_high_u16): Likewise. | |
4938 | (vsubl_high_u32): Likewise. | |
4939 | (vsubw_s8): Remove unnecessary casts. | |
4940 | (vsubw_s16): Likewise. | |
4941 | (vsubw_s32): Likewise. | |
4942 | (vsubw_u8): Use type-qualified builtin and remove casts. | |
4943 | (vsubw_u16): Likewise. | |
4944 | (vsubw_u32): Likewise. | |
4945 | (vsubw_high_s8): Remove unnecessary cast. | |
4946 | (vsubw_high_s16): Likewise. | |
4947 | (vsubw_high_s32): Likewise. | |
4948 | (vsubw_high_u8): Use type-qualified builtin and remove casts. | |
4949 | (vsubw_high_u16): Likewise. | |
4950 | (vsubw_high_u32): Likewise. | |
4951 | ||
4952 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4953 | ||
4954 | * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type | |
4955 | qualifiers in generator macros for uadd[lw][2] builtins. | |
4956 | * config/aarch64/arm_neon.h (vaddl_s8): Remove unnecessary | |
4957 | cast. | |
4958 | (vaddl_s16): Likewise. | |
4959 | (vaddl_s32): Likewise. | |
4960 | (vaddl_u8): Use type-qualified builtin and remove casts. | |
4961 | (vaddl_u16): Likewise. | |
4962 | (vaddl_u32): Likewise. | |
4963 | (vaddl_high_s8): Remove unnecessary cast. | |
4964 | (vaddl_high_s16): Likewise. | |
4965 | (vaddl_high_s32): Likewise. | |
4966 | (vaddl_high_u8): Use type-qualified builtin and remove casts. | |
4967 | (vaddl_high_u16): Likewise. | |
4968 | (vaddl_high_u32): Likewise. | |
4969 | (vaddw_s8): Remove unnecessary cast. | |
4970 | (vaddw_s16): Likewise. | |
4971 | (vaddw_s32): Likewise. | |
4972 | (vaddw_u8): Use type-qualified builtin and remove casts. | |
4973 | (vaddw_u16): Likewise. | |
4974 | (vaddw_u32): Likewise. | |
4975 | (vaddw_high_s8): Remove unnecessary cast. | |
4976 | (vaddw_high_s16): Likewise. | |
4977 | (vaddw_high_s32): Likewise. | |
4978 | (vaddw_high_u8): Use type-qualified builtin and remove casts. | |
4979 | (vaddw_high_u16): Likewise. | |
4980 | (vaddw_high_u32): Likewise. | |
4981 | ||
4982 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
4983 | ||
4984 | * config/aarch64/aarch64-simd-builtins.def: Declare type- | |
4985 | qualified builtins for [R]SHRN[2]. | |
4986 | * config/aarch64/arm_neon.h (vshrn_n_u16): Use type-qualified | |
4987 | builtin and remove casts. | |
4988 | (vshrn_n_u32): Likewise. | |
4989 | (vshrn_n_u64): Likewise. | |
4990 | (vrshrn_high_n_u16): Likewise. | |
4991 | (vrshrn_high_n_u32): Likewise. | |
4992 | (vrshrn_high_n_u64): Likewise. | |
4993 | (vrshrn_n_u16): Likewise. | |
4994 | (vrshrn_n_u32): Likewise. | |
4995 | (vrshrn_n_u64): Likewise. | |
4996 | (vshrn_high_n_u16): Likewise. | |
4997 | (vshrn_high_n_u32): Likewise. | |
4998 | (vshrn_high_n_u64): Likewise. | |
4999 | ||
5000 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
5001 | ||
5002 | * config/aarch64/aarch64-simd-builtins.def: Declare unsigned | |
5003 | type-qualified builtins for XTN[2]. | |
5004 | * config/aarch64/arm_neon.h (vmovn_high_u16): Use type- | |
5005 | qualified builtin and remove casts. | |
5006 | (vmovn_high_u32): Likewise. | |
5007 | (vmovn_high_u64): Likewise. | |
5008 | (vmovn_u16): Likewise. | |
5009 | (vmovn_u32): Likewise. | |
5010 | (vmovn_u64): Likewise. | |
5011 | ||
5012 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
5013 | ||
5014 | * config/aarch64/aarch64-simd-builtins.def: Use poly type | |
5015 | qualifier in builtin generator macros. | |
5016 | * config/aarch64/arm_neon.h (vmul_p8): Use type-qualified | |
5017 | builtin and remove casts. | |
5018 | (vmulq_p8): Likewise. | |
5019 | (vmull_high_p8): Likewise. | |
5020 | (vmull_p8): Likewise. | |
5021 | ||
5022 | 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> | |
5023 | ||
5024 | * config/aarch64/aarch64-simd-builtins.def: Declare type- | |
5025 | qualified builtin generators for unsigned MLA/MLS intrinsics. | |
5026 | * config/aarch64/arm_neon.h (vmla_n_u16): Use type-qualified | |
5027 | builtin. | |
5028 | (vmla_n_u32): Likewise. | |
5029 | (vmla_u8): Likewise. | |
5030 | (vmla_u16): Likewise. | |
5031 | (vmla_u32): Likewise. | |
5032 | (vmlaq_n_u16): Likewise. | |
5033 | (vmlaq_n_u32): Likewise. | |
5034 | (vmlaq_u8): Likewise. | |
5035 | (vmlaq_u16): Likewise. | |
5036 | (vmlaq_u32): Likewise. | |
5037 | (vmls_n_u16): Likewise. | |
5038 | (vmls_n_u32): Likewise. | |
5039 | (vmls_u8): Likewise. | |
5040 | (vmls_u16): Likewise. | |
5041 | (vmls_u32): Likewise. | |
5042 | (vmlsq_n_u16): Likewise. | |
5043 | (vmlsq_n_u32): Likewise. | |
5044 | (vmlsq_u8): Likewise. | |
5045 | (vmlsq_u16): Likewise. | |
5046 | (vmlsq_u32): Likewise. | |
5047 | ||
5048 | 2021-11-11 Jan Hubicka <hubicka@ucw.cz> | |
5049 | ||
5050 | * ipa-modref.c (modref_summary::useful_p): Check also for side-effects | |
5051 | with looping const/pure. | |
5052 | (modref_summary_lto::useful_p): Likewise. | |
5053 | (merge_call_side_effects): Merge side effects before early exit | |
5054 | for pure/const. | |
5055 | (process_fnspec): Also handle pure functions. | |
5056 | (analyze_call): Do not early exit on looping pure const. | |
5057 | (propagate_unknown_call): Also handle nontrivial SCC as side-effect. | |
5058 | (modref_propagate_in_scc): Update. | |
5059 | ||
5060 | 2021-11-11 Richard Biener <rguenther@suse.de> | |
5061 | ||
5062 | PR tree-optimization/103190 | |
5063 | * tree-ssa-reassoc.c (insert_stmt_after): Only assert on asm goto. | |
5064 | ||
5065 | 2021-11-11 Aldy Hernandez <aldyh@redhat.com> | |
5066 | ||
5067 | * gimple-range-path.cc (path_range_query::add_copies_to_imports): | |
5068 | Rename to... | |
5069 | (path_range_query::compute_imports): ...this. Adapt it so it can | |
5070 | be passed the imports bitmap instead of working on m_imports. | |
5071 | (path_range_query::compute_ranges): Call compute_imports in all | |
5072 | cases unless an imports bitmap is passed. | |
5073 | * gimple-range-path.h (path_range_query::compute_imports): New. | |
5074 | (path_range_query::add_copies_to_imports): Remove. | |
5075 | * tree-ssa-threadbackward.c (back_threader::resolve_def): Remove. | |
5076 | (back_threader::find_paths_to_names): Inline resolve_def. | |
5077 | (back_threader::find_paths): Call compute_imports. | |
5078 | (back_threader::resolve_phi): Adjust comment. | |
5079 | ||
5080 | 2021-11-11 Richard Biener <rguenther@suse.de> | |
5081 | ||
5082 | PR tree-optimization/103188 | |
5083 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): | |
5084 | Remove query parameter, split out check for size | |
5085 | optimization. | |
5086 | (ch_base::m_ranger, cb_base::m_query): Remove. | |
5087 | (ch_base::copy_headers): Split processing loop into | |
5088 | analysis around which we allocate and use ranger and | |
5089 | transform where we do not. | |
5090 | (pass_ch::execute): Do not allocate/free ranger here. | |
5091 | (pass_ch_vect::execute): Likewise. | |
5092 | ||
5093 | 2021-11-11 Jan Hubicka <hubicka@ucw.cz> | |
5094 | ||
5095 | * ipa-pure-const.c (propagate_pure_const): Self recursion is | |
5096 | a side effects. | |
5097 | ||
5098 | 2021-11-11 Jan Hubicka <hubicka@ucw.cz> | |
5099 | ||
5100 | * cgraph.c (set_noreturn_flag_1): New function. | |
5101 | (cgraph_node::set_noreturn_flag): New member function | |
5102 | * cgraph.h (cgraph_node::set_noreturn_flags): Declare. | |
5103 | * ipa-pure-const.c (pass_local_pure_const::execute): Use it. | |
5104 | ||
5105 | 2021-11-11 Aldy Hernandez <aldyh@redhat.com> | |
5106 | Richard Biener <rguenther@suse.de> | |
5107 | ||
5108 | * tree-ssa-loop-ch.c (entry_loop_condition_is_static): Resolve | |
5109 | statically to the edge remaining in the loop. | |
5110 | ||
5111 | 2021-11-11 Richard Biener <rguenther@suse.de> | |
5112 | ||
5113 | PR middle-end/103181 | |
5114 | * tree-eh.c (operation_could_trap_helper_p): Properly | |
5115 | check vector constants for a zero element for integer | |
5116 | division. Separate floating point and integer division code. | |
5117 | ||
5118 | 2021-11-11 Jakub Jelinek <jakub@redhat.com> | |
5119 | ||
5120 | PR debug/101378 | |
5121 | * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS | |
5122 | handling only for DECL_BIT_FIELD_TYPE decls. | |
5123 | ||
5124 | 2021-11-11 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
5125 | ||
5126 | PR target/102376 | |
5127 | * config/aarch64/aarch64.c (aarch64_process_target_attr): Check if | |
5128 | token is arch extension without leading '+' and emit appropriate | |
5129 | diagnostic for the same. | |
5130 | ||
5131 | 2021-11-11 Jakub Jelinek <jakub@redhat.com> | |
5132 | ||
5133 | * tree.h (OMP_CLAUSE_NUM_TEAMS_EXPR): Rename to ... | |
5134 | (OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR): ... this. | |
5135 | (OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR): Define. | |
5136 | * tree.c (omp_clause_num_ops): Increase num ops for | |
5137 | OMP_CLAUSE_NUM_TEAMS to 2. | |
5138 | * tree-pretty-print.c (dump_omp_clause): Print optional lower bound | |
5139 | for OMP_CLAUSE_NUM_TEAMS. | |
5140 | * gimplify.c (gimplify_scan_omp_clauses): Gimplify | |
5141 | OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR if non-NULL. | |
5142 | (optimize_target_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead | |
5143 | of OMP_CLAUSE_NUM_TEAMS_EXPR. Handle OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR. | |
5144 | * omp-low.c (lower_omp_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR | |
5145 | instead of OMP_CLAUSE_NUM_TEAMS_EXPR. | |
5146 | * omp-expand.c (expand_teams_call, get_target_arguments): Likewise. | |
5147 | ||
5148 | 2021-11-11 Richard Biener <rguenther@suse.de> | |
5149 | ||
5150 | * cfganal.c (find_pdom): Remove. | |
5151 | (control_dependences::find_control_dependence): Remove | |
5152 | special-casing of entry block, call get_immediate_dominator | |
5153 | directly. | |
5154 | * gimple-predicate-analysis.cc (find_pdom): Remove. | |
5155 | (find_dom): Likewise. | |
5156 | (find_control_equiv_block): Call get_immediate_dominator | |
5157 | directly. | |
5158 | (compute_control_dep_chain): Likewise. | |
5159 | (predicate::init_from_phi_def): Likewise. | |
5160 | ||
5161 | 2021-11-11 Richard Biener <rguenther@suse.de> | |
5162 | ||
5163 | * cfganal.h (control_dependences::control_dependence_map): | |
5164 | Embed bitmap_head. | |
5165 | (control_dependences::m_bitmaps): New. | |
5166 | * cfganal.c (control_dependences::set_control_dependence_map_bit): | |
5167 | Adjust. | |
5168 | (control_dependences::clear_control_dependence_bitmap): | |
5169 | Likewise. | |
5170 | (control_dependences::find_control_dependence): Do not | |
5171 | find_edge for the abnormal edge test. | |
5172 | (control_dependences::control_dependences): Instead do not | |
5173 | add abnormal edges to the edge list. Adjust. | |
5174 | (control_dependences::~control_dependences): Likewise. | |
5175 | (control_dependences::get_edges_dependent_on): Likewise. | |
5176 | * function-tests.c: Include bitmap.h. | |
5177 | ||
5178 | 2021-11-11 Kewen Lin <linkw@linux.ibm.com> | |
5179 | ||
5180 | * doc/invoke.texi: Change references to "future cpu" to "power10", | |
5181 | "-mcpu=future" to "-mcpu=power10". Adjust words for float128. | |
5182 | ||
5183 | 2021-11-11 Cui,Lili <lili.cui@intel.com> | |
5184 | ||
5185 | * config/i386/i386-options.c (m_CORE_AVX2): Remove Alderlake | |
5186 | from m_CORE_AVX2. | |
5187 | (processor_cost_table): Use alderlake_cost for Alderlake. | |
5188 | * config/i386/i386.c (ix86_sched_init_global): Handle Alderlake. | |
5189 | * config/i386/x86-tune-costs.h (struct processor_costs): Add alderlake | |
5190 | cost. | |
5191 | * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Alderlake | |
5192 | issue rate to 4. | |
5193 | (ix86_adjust_cost): Handle Alderlake. | |
5194 | * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Enable for Alderlake. | |
5195 | (X86_TUNE_PARTIAL_REG_DEPENDENCY): Likewise. | |
5196 | (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Likewise. | |
5197 | (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Likewise. | |
5198 | (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. | |
5199 | (X86_TUNE_MEMORY_MISMATCH_STALL): Likewise. | |
5200 | (X86_TUNE_USE_LEAVE): Likewise. | |
5201 | (X86_TUNE_PUSH_MEMORY): Likewise. | |
5202 | (X86_TUNE_USE_INCDEC): Likewise. | |
5203 | (X86_TUNE_INTEGER_DFMODE_MOVES): Likewise. | |
5204 | (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. | |
5205 | (X86_TUNE_USE_SAHF): Likewise. | |
5206 | (X86_TUNE_USE_BT): Likewise. | |
5207 | (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. | |
5208 | (X86_TUNE_ONE_IF_CONV_INSN): Likewise. | |
5209 | (X86_TUNE_AVOID_MFENCE): Likewise. | |
5210 | (X86_TUNE_USE_SIMODE_FIOP): Likewise. | |
5211 | (X86_TUNE_EXT_80387_CONSTANTS): Likewise. | |
5212 | (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Likewise. | |
5213 | (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise. | |
5214 | (X86_TUNE_SSE_TYPELESS_STORES): Likewise. | |
5215 | (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. | |
5216 | (X86_TUNE_AVOID_4BYTE_PREFIXES): Likewise. | |
5217 | (X86_TUNE_USE_GATHER): Disable for Alderlake. | |
5218 | (X86_TUNE_AVX256_MOVE_BY_PIECES): Likewise. | |
5219 | (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. | |
5220 | ||
5221 | 2021-11-11 liuhongt <hongtao.liu@intel.com> | |
5222 | ||
5223 | PR target/103151 | |
5224 | * config/i386/sse.md (V_128_256): Extend to V8HF/V16HF. | |
5225 | (avxsizesuffix): Ditto. | |
5226 | ||
5227 | 2021-11-11 Kito Cheng <kito.cheng@sifive.com> | |
5228 | ||
5229 | * common/config/riscv/riscv-common.c (riscv_subset_list::to_string): Fix | |
5230 | wrong marco checking. | |
5231 | ||
5232 | 2021-11-10 Aldy Hernandez <aldyh@redhat.com> | |
5233 | ||
5234 | PR tree-optimization/102906 | |
5235 | * tree-ssa-loop-ch.c (entry_loop_condition_is_static): New. | |
5236 | (should_duplicate_loop_header_p): Call entry_loop_condition_is_static. | |
5237 | (class ch_base): Add m_ranger and m_query. | |
5238 | (ch_base::copy_headers): Pass m_query to | |
5239 | entry_loop_condition_is_static. | |
5240 | (pass_ch::execute): Allocate and deallocate m_ranger and | |
5241 | m_query. | |
5242 | (pass_ch_vect::execute): Same. | |
5243 | ||
5244 | 2021-11-10 Andrew Pinski <apinski@marvell.com> | |
5245 | ||
5246 | PR target/103170 | |
5247 | * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>): | |
5248 | Use vwcore iterator for the r constraint output string. | |
5249 | ||
5250 | 2021-11-10 qing zhao <qing.zhao@oracle.com> | |
5251 | ||
5252 | * internal-fn.c (expand_DEFERRED_INIT): Apply pattern initialization | |
5253 | only when have_insn_for return true for the mode. Fix a memory leak. | |
5254 | ||
5255 | 2021-11-10 Christophe Lyon <christophe.lyon@foss.st.com> | |
5256 | ||
5257 | * config/arm/arm.c (cortexa9_extra_costs, cortexa8_extra_costs, | |
5258 | cortexa5_extra_costs, cortexa7_extra_costs, | |
5259 | cortexa12_extra_costs, cortexa15_extra_costs, v7m_extra_costs): | |
5260 | Initialize movi, dup and extract costing fields. | |
5261 | ||
5262 | 2021-11-10 Aldy Hernandez <aldyh@redhat.com> | |
5263 | ||
5264 | * gimple-range-path.cc (path_range_query::path_range_query): Do | |
5265 | not init m_path. | |
5266 | (path_range_query::dump): Change m_path uses to non-pointer. | |
5267 | (path_range_query::defined_outside_path): Same. | |
5268 | (path_range_query::set_path): Same. | |
5269 | (path_range_query::add_copies_to_imports): Same. | |
5270 | (path_range_query::range_of_stmt): Same. | |
5271 | (path_range_query::compute_outgoing_relations): Same. | |
5272 | (path_range_query::compute_ranges): Imports are now optional. | |
5273 | Implement overload that takes an edge. | |
5274 | * gimple-range-path.h (class path_range_query): Make imports | |
5275 | optional for compute_ranges. Add compute_ranges(edge) overload. | |
5276 | Make m_path an auto_vec instead of a pointer and adjust | |
5277 | accordingly. | |
5278 | ||
5279 | 2021-11-10 Tamar Christina <tamar.christina@arm.com> | |
5280 | ||
5281 | * tree-vectorizer.h (struct scalar_cond_masked_key): Add inverted_p. | |
5282 | (default_hash_traits<scalar_conf_masked_key>): Likewise. | |
5283 | * tree-vect-stmts.c (vectorizable_condition): Check if inverse of mask | |
5284 | is live. | |
5285 | * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree): | |
5286 | Register mask inverses. | |
5287 | ||
5288 | 2021-11-10 Tamar Christina <tamar.christina@arm.com> | |
5289 | ||
5290 | * tree-vectorizer.c (vectorize_loops): Do local CSE through RPVN upon | |
5291 | successful vectorization. | |
5292 | ||
5293 | 2021-11-10 Andrew MacLeod <amacleod@redhat.com> | |
5294 | ||
5295 | * gimple-range-cache.cc (sbr_vector::grow): New. | |
5296 | (sbr_vector::set_bb_range): Call grow. | |
5297 | (sbr_vector::get_bb_range): Same. | |
5298 | (sbr_vector::bb_range_p): Remove assert. | |
5299 | ||
5300 | 2021-11-10 Tamar Christina <tamar.christina@arm.com> | |
5301 | ||
5302 | * config/aarch64/aarch64-simd.md (*aarch64_topbits_shuffle<mode>_le | |
5303 | ,*aarch64_topbits_shuffle<mode>_be): Remove. | |
5304 | ||
5305 | 2021-11-10 Jan Hubicka <jh@suse.cz> | |
5306 | ||
5307 | * ipa-modref.c: Include tree-eh.h | |
5308 | (modref_summary::modref_summary): Initialize side_effects. | |
5309 | (struct modref_summary_lto): New bool field side_effects. | |
5310 | (modref_summary_lto::modref_summary_lto): Initialize side_effects. | |
5311 | (modref_summary::dump): Dump side_effects. | |
5312 | (modref_summary_lto::dump): Dump side_effects. | |
5313 | (merge_call_side_effects): Merge side effects. | |
5314 | (process_fnspec): Calls to non-const/pure or looping | |
5315 | function is a side effect. | |
5316 | (analyze_call): Self-recursion is a side-effect; handle | |
5317 | special builtins. | |
5318 | (analyze_load): Watch for volatile and throwing memory. | |
5319 | (analyze_store): Likewise. | |
5320 | (analyze_stmt): Watch for volatitle asm. | |
5321 | (analyze_function): Handle side_effects. | |
5322 | (modref_summaries::duplicate): Duplicate side_effects. | |
5323 | (modref_summaries_lto::duplicate): Likewise. | |
5324 | (modref_write): Stream side_effects. | |
5325 | (read_section): Likewise. | |
5326 | (update_signature): Update. | |
5327 | (propagate_unknown_call): Handle side_effects. | |
5328 | (modref_propagate_in_scc): Likewise. | |
5329 | * ipa-modref.h (struct modref_summary): Add side_effects. | |
5330 | * ipa-pure-const.c (special_builtin_state): Rename to ... | |
5331 | (builtin_safe_for_const_function_p): ... this one. | |
5332 | (check_call): Update. | |
5333 | (finite_function_p): Break out from ... | |
5334 | (propagate_pure_const): ... here | |
5335 | * ipa-utils.h (finite_function): Declare. | |
5336 | ||
5337 | 2021-11-10 Lucas A. M. Magalhães <lamm@linux.ibm.com> | |
5338 | ||
5339 | * config.gcc (powerpc*-*-*): Remove -rpath from | |
5340 | --with-advance-toolchain. | |
5341 | ||
5342 | 2021-11-10 Marek Polacek <polacek@redhat.com> | |
5343 | ||
5344 | PR c++/101940 | |
5345 | * attribs.c (struct scoped_attributes): Add a bool member. | |
5346 | (lookup_scoped_attribute_spec): Forward declare. | |
5347 | (register_scoped_attributes): New bool parameter, defaulted to | |
5348 | false. Use it. | |
5349 | (handle_ignored_attributes_option): New function. | |
5350 | (free_attr_data): New function. | |
5351 | (init_attributes): Call handle_ignored_attributes_option. | |
5352 | (attr_namespace_ignored_p): New function. | |
5353 | (decl_attributes): Check attr_namespace_ignored_p before | |
5354 | warning. | |
5355 | * attribs.h (free_attr_data): Declare. | |
5356 | (register_scoped_attributes): Adjust declaration. | |
5357 | (handle_ignored_attributes_option): Declare. | |
5358 | (canonicalize_attr_name): New function template. | |
5359 | (canonicalize_attr_name): Use it. | |
5360 | * common.opt (Wattributes=): New option with a variable. | |
5361 | * doc/extend.texi: Document #pragma GCC diagnostic ignored_attributes. | |
5362 | * doc/invoke.texi: Document -Wno-attributes=. | |
5363 | * opts.c (common_handle_option) <case OPT_Wattributes_>: Handle. | |
5364 | * plugin.h (register_scoped_attributes): Adjust declaration. | |
5365 | * toplev.c (compile_file): Call free_attr_data. | |
5366 | ||
5367 | 2021-11-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
5368 | ||
5369 | * config/arm/arm-cpus.in (cortex-a710): New CPU. | |
5370 | * config/arm/arm-tables.opt: Regenerate. | |
5371 | * config/arm/arm-tune.md: Regenerate. | |
5372 | * doc/invoke.texi: Update docs. | |
5373 | ||
5374 | 2021-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
5375 | ||
5376 | * config/aarch64/aarch64-builtins.c | |
5377 | (aarch64_general_gimple_fold_builtin): Mark argument as unused. | |
5378 | ||
5379 | 2021-11-10 Martin Liska <mliska@suse.cz> | |
5380 | ||
5381 | * lto-wrapper.c (merge_and_complain): Make the first argument | |
5382 | a reference type. | |
5383 | ||
5384 | 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> | |
5385 | ||
5386 | * config/aarch64/iterators.md (optab): Use fmax_nan instead of | |
5387 | smax_nan and fmin_nan instead of smin_nan. | |
5388 | (maxmin_uns): Rename to... | |
5389 | (fmaxmin): ...this and make the same changes. Remove entries | |
5390 | unrelated to fmax* and fmin*. | |
5391 | * config/aarch64/aarch64.md (<maxmin_uns><mode>3): Rename to... | |
5392 | (<fmaxmin><mode>3): ...this. | |
5393 | * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): | |
5394 | Rename to... | |
5395 | (aarch64_<optab>p<mode>): ...this. | |
5396 | (<maxmin_uns><mode>3): Rename to... | |
5397 | (<fmaxmin><mode>3): ...this. | |
5398 | (reduc_<maxmin_uns>_scal_<mode>): Rename to... | |
5399 | (reduc_<optab>_scal_<mode>): ...this and update gen* call. | |
5400 | (aarch64_reduc_<maxmin_uns>_internal<mode>): Rename to... | |
5401 | (aarch64_reduc_<optab>_internal<mode>): ...this. | |
5402 | (aarch64_reduc_<maxmin_uns>_internalv2si): Rename to... | |
5403 | (aarch64_reduc_<optab>_internalv2si): ...this. | |
5404 | * config/aarch64/aarch64-sve.md (<maxmin_uns><mode>3): Rename to... | |
5405 | (<fmaxmin><mode>3): ...this. | |
5406 | * config/aarch64/aarch64-simd-builtins.def (smax_nan, smin_nan) | |
5407 | Rename to... | |
5408 | (fmax_nan, fmin_nan): ...this. | |
5409 | * config/aarch64/arm_neon.h (vmax_f32, vmax_f64, vmaxq_f32, vmaxq_f64) | |
5410 | (vmin_f32, vmin_f64, vminq_f32, vminq_f64, vmax_f16, vmaxq_f16) | |
5411 | (vmin_f16, vminq_f16): Update accordingly. | |
5412 | ||
5413 | 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> | |
5414 | ||
5415 | * tree-vectorizer.h (vector_costs::finish_cost): Take the | |
5416 | corresponding scalar costs as a parameter. | |
5417 | (finish_cost): Likewise. | |
5418 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) | |
5419 | (vect_estimate_min_profitable_iters): Update accordingly. | |
5420 | * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Likewise. | |
5421 | * tree-vectorizer.c (vector_costs::finish_cost): Likewise. | |
5422 | * config/aarch64/aarch64.c (aarch64_vector_costs::finish_cost): | |
5423 | Likewise. | |
5424 | * config/rs6000/rs6000.c (rs6000_cost_data::finish_cost): Likewise. | |
5425 | ||
5426 | 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> | |
5427 | ||
5428 | * tree-vectorizer.h (_loop_vec_info::scalar_costs): New member | |
5429 | variable. | |
5430 | (_loop_vec_info::single_scalar_iteration_cost): Delete. | |
5431 | (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Delete. | |
5432 | (vector_costs::total_cost): New function. | |
5433 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update | |
5434 | after above changes. | |
5435 | (_loop_vec_info::~_loop_vec_info): Delete scalar_costs. | |
5436 | (vect_compute_single_scalar_iteration_cost): Store the costs | |
5437 | in loop_vinfo->scalar_costs. | |
5438 | (vect_estimate_min_profitable_iters): Get the scalar cost from | |
5439 | loop_vinfo->scalar_costs. | |
5440 | ||
5441 | 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> | |
5442 | ||
5443 | * tree-vectorizer.h (vector_costs::better_main_loop_than_p) | |
5444 | (vector_costs::better_epilogue_loop_than_p) | |
5445 | (vector_costs::compare_inside_loop_cost) | |
5446 | (vector_costs::compare_outside_loop_cost): Likewise. | |
5447 | * tree-vectorizer.c (vector_costs::better_main_loop_than_p) | |
5448 | (vector_costs::better_epilogue_loop_than_p) | |
5449 | (vector_costs::compare_inside_loop_cost) | |
5450 | (vector_costs::compare_outside_loop_cost): New functions, | |
5451 | containing code moved from... | |
5452 | * tree-vect-loop.c (vect_better_loop_vinfo_p): ...here. | |
5453 | ||
5454 | 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> | |
5455 | ||
5456 | * tree-vectorizer.h (_loop_vec_info): Remove vec_outside_cost | |
5457 | and vec_inside_cost. | |
5458 | (vector_costs::outside_cost): New function. | |
5459 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update | |
5460 | after above. | |
5461 | (vect_estimate_min_profitable_iters): Likewise. | |
5462 | (vect_better_loop_vinfo_p): Get the inside and outside costs | |
5463 | from the loop_vec_infos' vector_costs. | |
5464 | ||
5465 | 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> | |
5466 | ||
5467 | * tree-vectorizer.h (vec_info::target_cost_data): Replace with... | |
5468 | (_loop_vec_info::vector_costs): ...this. | |
5469 | (LOOP_VINFO_TARGET_COST_DATA): Delete. | |
5470 | * tree-vectorizer.c (vec_info::vec_info): Remove target_cost_data | |
5471 | initialization. | |
5472 | (vec_info::~vec_info): Remove corresponding delete. | |
5473 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
5474 | vector_costs to null. | |
5475 | (_loop_vec_info::~_loop_vec_info): Delete vector_costs. | |
5476 | (vect_analyze_loop_operations): Update after above changes. | |
5477 | (vect_analyze_loop_2): Likewise. | |
5478 | (vect_estimate_min_profitable_iters): Likewise. | |
5479 | * tree-vect-slp.c (vect_slp_analyze_operations): Likewise. | |
5480 | ||
5481 | 2021-11-10 Jan Hubicka <hubicka@ucw.cz> | |
5482 | ||
5483 | * tree-core.h (EAF_DIRECT): Remove. | |
5484 | (EAF_NOCLOBBER): Remove. | |
5485 | (EAF_UNUSED): Remove. | |
5486 | (EAF_NOESCAPE): Remove. | |
5487 | (EAF_NO_DIRECT_CLOBBER): New. | |
5488 | (EAF_NO_INDIRECT_CLOBBER): New. | |
5489 | (EAF_NODIRECTESCAPE): Remove. | |
5490 | (EAF_NO_DIRECT_ESCAPE): New. | |
5491 | (EAF_NO_INDIRECT_ESCAPE): New. | |
5492 | (EAF_NOT_RETURNED): Remove. | |
5493 | (EAF_NOT_RETURNED_INDIRECTLY): New. | |
5494 | (EAF_NOREAD): Remove. | |
5495 | (EAF_NO_DIRECT_READ): New. | |
5496 | (EAF_NO_INDIRECT_READ): New. | |
5497 | * gimple.c (gimple_call_arg_flags): Update for new flags. | |
5498 | (gimple_call_retslot_flags): Update for new flags. | |
5499 | * ipa-modref.c (dump_eaf_flags): Likewise. | |
5500 | (remove_useless_eaf_flags): Likewise. | |
5501 | (deref_flags): Likewise. | |
5502 | (modref_lattice::init): Likewise. | |
5503 | (modref_lattice::merge): Likewise. | |
5504 | (modref_lattice::merge_direct_load): Likewise. | |
5505 | (modref_lattice::merge_direct_store): Likewise. | |
5506 | (modref_eaf_analysis::merge_call_lhs_flags): Likewise. | |
5507 | (callee_to_caller_flags): Likewise. | |
5508 | (modref_eaf_analysis::analyze_ssa_name): Likewise. | |
5509 | (modref_eaf_analysis::propagate): Likewise. | |
5510 | (modref_merge_call_site_flags): Likewise. | |
5511 | * ipa-modref.h (interposable_eaf_flags): Likewise. | |
5512 | * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1) Likewise. | |
5513 | * tree-ssa-structalias.c (handle_call_arg): Likewise. | |
5514 | (handle_rhs_call): Likewise. | |
5515 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Likewise. | |
5516 | ||
5517 | 2021-11-10 Tamar Christina <tamar.christina@arm.com> | |
5518 | ||
5519 | * tree-vect-slp-patterns.c (complex_mul_pattern::matches): Remove l1node. | |
5520 | ||
5521 | 2021-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
5522 | ||
5523 | * config/aarch64/aarch64-builtins.c | |
5524 | (aarch64_general_gimple_fold_builtin): Change pointer alignment and | |
5525 | alias. | |
5526 | ||
5527 | 2021-11-10 Jan Hubicka <jh@suse.cz> | |
5528 | ||
5529 | * ipa-modref-tree.h (modref_tree::remap_params): Fix off-by-one error. | |
5530 | ||
5531 | 2021-11-10 H.J. Lu <hongjiu.lu@intel.com> | |
5532 | Hongtao Liu <hongtao.liu@intel.com> | |
5533 | ||
5534 | PR middle-end/102566 | |
5535 | * match.pd (nop_atomic_bit_test_and_p): New match. | |
5536 | * tree-ssa-ccp.c (convert_atomic_bit_not): New function. | |
5537 | (gimple_nop_atomic_bit_test_and_p): New prototype. | |
5538 | (optimize_atomic_bit_test_and): Transform equivalent, but slighly | |
5539 | different cases to their canonical forms. | |
5540 | ||
5541 | 2021-11-10 liuhongt <hongtao.liu@intel.com> | |
5542 | ||
5543 | PR tree-optimization/103126 | |
5544 | * tree-vect-loop.c (neutral_op_for_reduction): Remove static. | |
5545 | * tree-vectorizer.h (neutral_op_for_reduction): Declare. | |
5546 | * tree-if-conv.c : Include tree-vectorizer.h. | |
5547 | (is_cond_scalar_reduction): Handle | |
5548 | BIT_XOR_EXPR/BIT_IOR_EXPR/BIT_AND_EXPR. | |
5549 | (convert_scalar_cond_reduction): Ditto. | |
5550 | ||
5551 | 2021-11-10 konglin1 <lingling.kong@intel.com> | |
5552 | ||
5553 | * config/i386/sse.md (cmul<conj_op><mode>3): add new define_expand. | |
5554 | (cmla<conj_op><mode>4): Likewise | |
5555 | ||
5556 | 2021-11-10 Aldy Hernandez <aldyh@redhat.com> | |
5557 | ||
5558 | * tree-ssa-threadedge.c: Do not include | |
5559 | gimple-ssa-evrp-analyze.h. | |
5560 | * value-pointer-equiv.cc: Same. | |
5561 | ||
5562 | 2021-11-10 Aldy Hernandez <aldyh@redhat.com> | |
5563 | ||
5564 | * tree-ssa-threadbackward.c | |
5565 | (back_threader::maybe_register_path_dump): Abstract path dumping... | |
5566 | (dump_path): ...here. | |
5567 | (back_threader::resolve_phi): Call dump_path. | |
5568 | (debug): Same. | |
5569 | ||
5570 | 2021-11-10 konglin1 <lingling.kong@intel.com> | |
5571 | ||
5572 | * config/i386/sse.md (fma_<complexpairopname>_<mode>_pair): | |
5573 | Add new define_insn. | |
5574 | (fma_<mode>_fmaddc_bcst): Add new define_insn_and_split. | |
5575 | (fma_<mode>_fcmaddc_bcst): Likewise | |
5576 | ||
5577 | 2021-11-10 liuhongt <hongtao.liu@intel.com> | |
5578 | ||
5579 | PR target/102464 | |
5580 | * match.pd: Simplify (trunc)fmax/fmin((extend)a, (extend)b) to | |
5581 | MAX/MIN(a,b) | |
5582 | ||
5583 | 2021-11-10 Andrew Pinski <apinski@marvell.com> | |
5584 | ||
5585 | PR target/101529 | |
5586 | * config/aarch64/aarch64.c (aarch64_evpc_ins): Don't use target | |
5587 | as an input, use original one. | |
5588 | ||
5589 | 2021-11-10 Sandra Loosemore <sandra@codesourcery.com> | |
5590 | ||
5591 | * config/nios2/nios2.c (nios2_can_inline_p): New. | |
5592 | (TARGET_CAN_INLINE_P): Define. | |
5593 | ||
5594 | 2021-11-09 Bill Schmidt <wschmidt@linux.ibm.com> | |
5595 | ||
5596 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): | |
5597 | Disable gimple fold for RS6000_BIF_{XVMINDP,XVMINSP,VMINFP} and | |
5598 | RS6000_BIF_{XVMAXDP,XVMAXSP,VMAXFP} when fast-math is not set. | |
5599 | (lxvrse_expand_builtin): Modify the expansion for sign extension. | |
5600 | All extensions are done within VSX registers. | |
5601 | ||
5602 | 2021-11-09 Andrew Pinski <apinski@marvell.com> | |
5603 | ||
5604 | PR tree-optimization/10352 | |
5605 | * match.pd: Remove check of TYPE_PRECISION for | |
5606 | the a?0:pow2 case. | |
5607 | ||
5608 | 2021-11-09 Andrew MacLeod <amacleod@redhat.com> | |
5609 | ||
5610 | * function.c (allocate_struct_function): Don't set x_range_query. | |
5611 | * function.h (get_range_query): Move to value-query.h. | |
5612 | * gimple-range.cc (enable_ranger): Check that query is currently NULL. | |
5613 | (disable_ranger): Clear function current query field. | |
5614 | * value-query.cc (get_global_range_query): Relocate to: | |
5615 | * value-query.h (get_global_range_query): Here and inline. | |
5616 | (get_range_query): Relocate here from function.h. | |
5617 | ||
5618 | 2021-11-09 Aldy Hernandez <aldyh@redhat.com> | |
5619 | ||
5620 | * tree-ssa-threadbackward.c | |
5621 | (back_threader::maybe_register_path_dump): New. | |
5622 | (back_threader::maybe_register_path): Call maybe_register_path_dump. | |
5623 | ||
5624 | 2021-11-09 Aldy Hernandez <aldyh@redhat.com> | |
5625 | ||
5626 | * tree-ssa-threadbackward.c (back_threader::maybe_register_path): | |
5627 | Return NULL when unprofitable. | |
5628 | ||
5629 | 2021-11-09 Martin Jambor <mjambor@suse.cz> | |
5630 | ||
5631 | * tree.h (build_debug_expr_decl): Declare. | |
5632 | * tree.c (build_debug_expr_decl): New function. | |
5633 | * cfgexpand.c (avoid_deep_ter_for_debug): Use build_debug_expr_decl | |
5634 | instead of building a DEBUG_EXPR_DECL. | |
5635 | * ipa-param-manipulation.c | |
5636 | (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. | |
5637 | * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise. | |
5638 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. | |
5639 | * tree-ssa-phiopt.c (spaceship_replacement): Likewise. | |
5640 | * tree-ssa-reassoc.c (make_new_ssa_for_def): Likewise. | |
5641 | ||
5642 | 2021-11-09 Bill Schmidt <wschmidt@linux.ibm.com> | |
5643 | ||
5644 | * config/rs6000/rs6000-call.c (rs6000_type_string): New function. | |
5645 | (def_builtin): Change debug formatting for easier parsing and | |
5646 | include more information. | |
5647 | (rs6000_init_builtins): Add dump of autogenerated builtins. | |
5648 | (altivec_init_builtins): Dump __builtin_altivec_mask_for_load for | |
5649 | completeness. | |
5650 | ||
5651 | 2021-11-09 Marek Polacek <polacek@redhat.com> | |
5652 | ||
5653 | * ipa-modref.c (analyze_parms): Fix a typo. | |
5654 | ||
5655 | 2021-11-09 Kito Cheng <kito.cheng@sifive.com> | |
5656 | ||
5657 | PR target/102957 | |
5658 | * common/config/riscv/riscv-common.c (multi_letter_subset_rank): Remove | |
5659 | assertion for Z*-ext. | |
5660 | ||
5661 | 2021-11-09 Jan Hubicka <hubicka@ucw.cz> | |
5662 | ||
5663 | * ipa-modref.c (analyze_parms): Add past_flags, past_retslot_flags | |
5664 | and past_static_chain; merge past summary with current one. | |
5665 | (analyze_function): Update. | |
5666 | ||
5667 | 2021-11-09 Aldy Hernandez <aldyh@redhat.com> | |
5668 | ||
5669 | * doc/invoke.texi (Invoking GCC): Document --param=threader-debug. | |
5670 | ||
5671 | 2021-11-09 Martin Liska <mliska@suse.cz> | |
5672 | ||
5673 | * print-rtl.c (rtx_writer::rtx_writer): Make the compilation | |
5674 | conditional based on | |
5675 | * print-rtl.h (class rtx_writer): Likewise. | |
5676 | ||
5677 | 2021-11-09 Thomas Schwinge <thomas@codesourcery.com> | |
5678 | ||
5679 | * input.h (location_hash): Use 'BUILTINS_LOCATION' as spare value | |
5680 | for 'Deleted'. Turn into a '#define'. | |
5681 | ||
5682 | 2021-11-09 Aldy Hernandez <aldyh@redhat.com> | |
5683 | ||
5684 | * gimple-range-path.cc (path_range_query::dump): Clean up. | |
5685 | (path_range_query::compute_ranges): Same. | |
5686 | * value-relation.cc (path_oracle::dump): Same. | |
5687 | ||
5688 | 2021-11-09 Aldy Hernandez <aldyh@redhat.com> | |
5689 | ||
5690 | * dumpfile.c (dump_options): Remove TDF_THREADING entry. | |
5691 | * dumpfile.h (enum dump_flag): Remove TDF_THREADING and adjust | |
5692 | remaining entries. | |
5693 | * flag-types.h (enum threader_debug): New. | |
5694 | * gimple-range-path.cc (DEBUG_SOLVER): Use param_threader_debug. | |
5695 | * params.opt: Add entry for --param=threader-debug=. | |
5696 | ||
5697 | 2021-11-09 Thomas Schwinge <thomas@codesourcery.com> | |
5698 | ||
5699 | PR middle-end/101204 | |
5700 | PR other/103157 | |
5701 | * diagnostic-spec.h (typedef xint_hash_t): Turn into... | |
5702 | (struct xint_hash_t): ... this. | |
5703 | * doc/gty.texi: Update. | |
5704 | ||
5705 | 2021-11-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
5706 | ||
5707 | * config/arm/arm-cpus.in (armv9): New define. | |
5708 | (ARMv9a): New group. | |
5709 | (armv9-a): New arch definition. | |
5710 | * config/arm/arm-tables.opt: Regenerate. | |
5711 | * config/arm/arm.h (BASE_ARCH_9A): New arch enum value. | |
5712 | * config/arm/t-aprofile: Added armv9-a and armv9+simd. | |
5713 | * config/arm/t-arm-elf: Added arm9-a, v9_fps and all_v9_archs | |
5714 | to MULTILIB_MATCHES. | |
5715 | * config/arm/t-multilib: Added v9_a_nosimd_variants and | |
5716 | v9_a_simd_variants to MULTILIB_MATCHES. | |
5717 | * doc/invoke.texi: Update docs. | |
5718 | ||
5719 | 2021-11-09 Martin Jambor <mjambor@suse.cz> | |
5720 | ||
5721 | PR ipa/103132 | |
5722 | * ipa-param-manipulation.c (replace_with_mapped_expr): Early | |
5723 | return with error_mark_mode when part of expression is mapped to | |
5724 | NULL. | |
5725 | (ipa_param_body_adjustments::remap_with_debug_expressions): Set | |
5726 | mapped value to NULL if walk_tree returns error_mark_mode. | |
5727 | ||
5728 | 2021-11-09 Aldy Hernandez <aldyh@redhat.com> | |
5729 | ||
5730 | * tree-ssa-strlen.c (compare_nonzero_chars): Pass statement | |
5731 | context to ranger. | |
5732 | (get_addr_stridx): Same. | |
5733 | (get_stridx): Same. | |
5734 | (get_range_strlen_dynamic): Same. | |
5735 | (handle_builtin_strlen): Same. | |
5736 | (handle_builtin_strchr): Same. | |
5737 | (handle_builtin_strcpy): Same. | |
5738 | (maybe_diag_stxncpy_trunc): Same. | |
5739 | (handle_builtin_stxncpy_strncat): Same. | |
5740 | (handle_builtin_memcpy): Same. | |
5741 | (handle_builtin_strcat): Same. | |
5742 | (handle_alloc_call): Same. | |
5743 | (handle_builtin_memset): Same. | |
5744 | (handle_builtin_string_cmp): Same. | |
5745 | (handle_pointer_plus): Same. | |
5746 | (count_nonzero_bytes_addr): Same. | |
5747 | (count_nonzero_bytes): Same. | |
5748 | (handle_store): Same. | |
5749 | (fold_strstr_to_strncmp): Same. | |
5750 | (handle_integral_assign): Same. | |
5751 | (check_and_optimize_stmt): Same. | |
5752 | (class strlen_dom_walker): Replace evrp with ranger. | |
5753 | (strlen_dom_walker::before_dom_children): Remove evrp. | |
5754 | (strlen_dom_walker::after_dom_children): Remove evrp. | |
5755 | * gimple-ssa-warn-access.cc (maybe_check_access_sizes): | |
5756 | Restrict sprintf output. | |
5757 | ||
5758 | 2021-11-09 Martin Liska <mliska@suse.cz> | |
5759 | ||
5760 | * genconditions.c (write_one_condition): Add const qualifier | |
5761 | to pointer casting. | |
5762 | ||
5763 | 2021-11-09 Jeff Law <jeffreyalaw@gmail.com> | |
5764 | ||
5765 | * match.pd: New pattern to simplify (1 << n) & M ==/!= 0 for M | |
5766 | being a power of 2. | |
5767 | ||
5768 | 2021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> | |
5769 | ||
5770 | * config/rs6000/rs6000-builtin-new.def (VEC_INIT_V16QI): Use | |
5771 | escape-newline support. | |
5772 | (VEC_INIT_V4SI): Likewise. | |
5773 | (VEC_INIT_V8HI): Likewise. | |
5774 | (PACK_V1TI): Likewise. | |
5775 | (DIVDEU): Likewise. | |
5776 | (VFIRSTMISMATCHOREOSINDEX_V16QI): Likewise. | |
5777 | (VFIRSTMISMATCHOREOSINDEX_V8HI): Likewise. | |
5778 | (VFIRSTMISMATCHOREOSINDEX_V4SI): Likewise. | |
5779 | (CMPRB2): Likewise. | |
5780 | (VSTDCP): Likewise. | |
5781 | (VSIEDP): Likewise. | |
5782 | (FMAF128_ODD): Likewise. | |
5783 | (VSCEQPUO): Likewise. | |
5784 | (VSIEQP): Likewise. | |
5785 | (VSIEQPF): Likewise. | |
5786 | (VSTDCQP): Likewise. | |
5787 | (PACK_TD): Likewise. | |
5788 | (TABORTDC): Likewise. | |
5789 | (TABORTDCI): Likewise. | |
5790 | (SE_LXVRBX): Likewise. | |
5791 | (SE_LXVRHX): Likewise. | |
5792 | (SE_LXVRWX): Likewise. | |
5793 | (SE_LXVRDX): Likewise. | |
5794 | (VREPLACE_UN_UV2DI): Likewise. | |
5795 | (VREPLACE_UN_UV4SI): Likewise. | |
5796 | (VREPLACE_UN_V2DI): Likewise. | |
5797 | (VREPLACE_ELT_UV2DI): Likewise. | |
5798 | (VREPLACE_ELT_V2DI): Likewise. | |
5799 | (ZE_LXVRBX): Likewise. | |
5800 | (ZE_LXVRHX): Likewise. | |
5801 | (ZE_LXVRWX): Likewise. | |
5802 | (ZE_LXVRDX): Likewise. | |
5803 | (CFUGED): Likewise. | |
5804 | (CNTLZDM): Likewise. | |
5805 | (CNTTZDM): Likewise. | |
5806 | (PDEPD): Likewise. | |
5807 | (PEXTD): Likewise. | |
5808 | (PMXVBF16GER2): Likewise. | |
5809 | (PMXVBF16GER2_INTERNAL): Likewise. | |
5810 | (PMXVBF16GER2NN): Likewise. | |
5811 | (PMXVBF16GER2NN_INTERNAL): Likewise. | |
5812 | (PMXVBF16GER2NP): Likewise. | |
5813 | (PMXVBF16GER2NP_INTERNAL): Likewise. | |
5814 | (PMXVBF16GER2PN): Likewise. | |
5815 | (PMXVBF16GER2PN_INTERNAL): Likewise. | |
5816 | (PMXVBF16GER2PP): Likewise. | |
5817 | (PMXVBF16GER2PP_INTERNAL): Likewise. | |
5818 | (PMXVF16GER2): Likewise. | |
5819 | (PMXVF16GER2_INTERNAL): Likewise. | |
5820 | (PMXVF16GER2NN): Likewise. | |
5821 | (PMXVF16GER2NN_INTERNAL): Likewise. | |
5822 | (PMXVF16GER2NP): Likewise. | |
5823 | (PMXVF16GER2NP_INTERNAL): Likewise. | |
5824 | (PMXVF16GER2PN): Likewise. | |
5825 | (PMXVF16GER2PN_INTERNAL): Likewise. | |
5826 | (PMXVF16GER2PP): Likewise. | |
5827 | (PMXVF16GER2PP_INTERNAL): Likewise. | |
5828 | (PMXVF32GER_INTERNAL): Likewise. | |
5829 | (PMXVF32GERNN): Likewise. | |
5830 | (PMXVF32GERNN_INTERNAL): Likewise. | |
5831 | (PMXVF32GERNP): Likewise. | |
5832 | (PMXVF32GERNP_INTERNAL): Likewise. | |
5833 | (PMXVF32GERPN): Likewise. | |
5834 | (PMXVF32GERPN_INTERNAL): Likewise. | |
5835 | (PMXVF32GERPP): Likewise. | |
5836 | (PMXVF32GERPP_INTERNAL): Likewise. | |
5837 | (PMXVF64GER): Likewise. | |
5838 | (PMXVF64GER_INTERNAL): Likewise. | |
5839 | (PMXVF64GERNN): Likewise. | |
5840 | (PMXVF64GERNN_INTERNAL): Likewise. | |
5841 | (PMXVF64GERNP): Likewise. | |
5842 | (PMXVF64GERNP_INTERNAL): Likewise. | |
5843 | (PMXVF64GERPN): Likewise. | |
5844 | (PMXVF64GERPN_INTERNAL): Likewise. | |
5845 | (PMXVF64GERPP): Likewise. | |
5846 | (PMXVF64GERPP_INTERNAL): Likewise. | |
5847 | (PMXVI16GER2): Likewise. | |
5848 | (PMXVI16GER2_INTERNAL): Likewise. | |
5849 | (PMXVI16GER2PP): Likewise. | |
5850 | (PMXVI16GER2PP_INTERNAL): Likewise. | |
5851 | (PMXVI16GER2S): Likewise. | |
5852 | (PMXVI16GER2S_INTERNAL): Likewise. | |
5853 | (PMXVI16GER2SPP): Likewise. | |
5854 | (PMXVI16GER2SPP_INTERNAL): Likewise. | |
5855 | (PMXVI4GER8): Likewise. | |
5856 | (PMXVI4GER8_INTERNAL): Likewise. | |
5857 | (PMXVI4GER8PP): Likewise. | |
5858 | (PMXVI4GER8PP_INTERNAL): Likewise. | |
5859 | (PMXVI8GER4): Likewise. | |
5860 | (PMXVI8GER4_INTERNAL): Likewise. | |
5861 | (PMXVI8GER4PP): Likewise. | |
5862 | (PMXVI8GER4PP_INTERNAL): Likewise. | |
5863 | (PMXVI8GER4SPP): Likewise. | |
5864 | (PMXVI8GER4SPP_INTERNAL): Likewise. | |
5865 | * config/rs6000/rs6000-gen-builtins.c (MAXLINES): New macro. | |
5866 | (linebuf): Increase size. | |
5867 | (lines): New variable. | |
5868 | (lastline): Likewise. | |
5869 | (real_line_pos): New function. | |
5870 | (diag): Change signature. | |
5871 | (bif_diag): Change signature; support escape-newline handling. | |
5872 | (ovld_diag): Likewise. | |
5873 | (fatal): Move earlier. | |
5874 | (consume_whitespace): Adjust diag call. | |
5875 | (advance_line): Add escape-newline handling; call fatal. | |
5876 | (safe_inc_pos): Adjust diag call. | |
5877 | (match_identifier): Likewise. | |
5878 | (match_integer): Likewise. | |
5879 | (match_to_right_bracket): Call fatal instead of diag; adjust diag | |
5880 | call. | |
5881 | (match_basetype): Adjust diag calls. | |
5882 | (match_bracketed_pair): Likewise. | |
5883 | (match_const_restriction): Likewise. | |
5884 | (match_type): Likewise. | |
5885 | (parse_args): Likewise. | |
5886 | (parse_bif_attrs): Likewise. | |
5887 | (complete_vector_type): Likewise. | |
5888 | (complete_base_type): Likewise. | |
5889 | (parse_prototype): Likewise. | |
5890 | (parse_bif_entry): Likewise. | |
5891 | (parse_bif_stanza): Likewise. | |
5892 | (parse_ovld_entry): Likewise. | |
5893 | (parse_ovld_stanza): Likewise. | |
5894 | (main): Allocate buffers for lines[]. | |
5895 | ||
5896 | 2021-11-08 Eric Botcazou <ebotcazou@adacore.com> | |
5897 | ||
5898 | * config/i386/i386.c (legitimize_pic_address): Adjust comment and | |
5899 | use the REG argument on the CM_LARGE_PIC code path as well. | |
5900 | * config/i386/predicates.md (gotoff_operand): Do not treat VxWorks | |
5901 | specially with the large code models. | |
5902 | ||
5903 | 2021-11-08 Jan Hubicka <hubicka@ucw.cz> | |
5904 | ||
5905 | * gimple.c (gimple_call_static_chain_flags): Revert the workaround | |
5906 | allowing interposition since issues with binds_to_local_def were | |
5907 | hopefully solved. | |
5908 | ||
5909 | 2021-11-08 Andrew MacLeod <amacleod@redhat.com> | |
5910 | ||
5911 | PR tree-optimization/103122 | |
5912 | * gimple-range.cc (gimple_ranger::range_of_expr): Request the cache | |
5913 | entry with "calulate new values" set to false. | |
5914 | ||
5915 | 2021-11-08 Jan Hubicka <hubicka@ucw.cz> | |
5916 | ||
5917 | * builtins.c (is_simple_builtin): Add builitin_dwarf_cfa | |
5918 | and builtin_return_address. | |
5919 | (builtin_fnspec): Annotate builtin_return, | |
5920 | bulitin_eh_pointer, builtin_eh_filter, builtin_unwind_resume, | |
5921 | builtin_cxa_end_cleanup, builtin_eh_copy_values, | |
5922 | builtin_frame_address, builtin_apply_args, | |
5923 | builtin_asan_before_dynamic_init, builtin_asan_after_dynamic_init, | |
5924 | builtin_prefetch, builtin_dwarf_cfa, builtin_return_addrss | |
5925 | as ".c" | |
5926 | * ipa-pure-const.c (special_builtin_state): Add builtin_dwarf_cfa | |
5927 | and builtin_return_address. | |
5928 | ||
5929 | 2021-11-08 Jan Hubicka <hubicka@ucw.cz> | |
5930 | ||
5931 | PR tree-optimization/103177 | |
5932 | * passes.def: Move uncprop after pure/const and modref. | |
5933 | ||
5934 | 2021-11-08 Martin Jambor <mjambor@suse.cz> | |
5935 | ||
5936 | PR ipa/103099 | |
5937 | PR ipa/103107 | |
5938 | * tree-inline.c (remap_gimple_stmt): Unshare the expression without | |
5939 | location before invoking remap_with_debug_expressions on it. | |
5940 | * ipa-param-manipulation.c | |
5941 | (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. | |
5942 | ||
5943 | 2021-11-08 David Edelsohn <dje.gcc@gmail.com> | |
5944 | ||
5945 | * config/rs6000/vsx.md (vsx_splat_v4si_di): Revert "wa" | |
5946 | constraint to "we". | |
5947 | ||
5948 | 2021-11-08 Richard Biener <rguenther@suse.de> | |
5949 | ||
5950 | * cfgloop.c (verify_loop_structure): Use a temporary BB flag | |
5951 | instead of an sbitmap to cache irreducible state. | |
5952 | ||
5953 | 2021-11-08 Aldy Hernandez <aldyh@redhat.com> | |
5954 | ||
5955 | PR tree-optimization/103120 | |
5956 | * gimple-range-path.cc (path_range_query::range_defined_in_block): | |
5957 | Bail if there's a cache entry. | |
5958 | ||
5959 | 2021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> | |
5960 | ||
5961 | * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use | |
5962 | rs6000_builtin_decls_x when appropriate. | |
5963 | (add_condition_to_bb): Likewise. | |
5964 | (rs6000_atomic_assign_expand_fenv): Likewise. | |
5965 | ||
5966 | 2021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> | |
5967 | ||
5968 | * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. | |
5969 | (rs6000_builtin_decl): Call it. | |
5970 | ||
5971 | 2021-11-08 Martin Liska <mliska@suse.cz> | |
5972 | ||
5973 | * cgraph.c (cgraph_node::dump): Dump it from decl. | |
5974 | ||
5975 | 2021-11-08 Martin Liska <mliska@suse.cz> | |
5976 | ||
5977 | PR gcov-profile/100520 | |
5978 | * coverage.c (coverage_compute_profile_id): Strip .gk when | |
5979 | compare debug is used. | |
5980 | * system.h (endswith): New function. | |
5981 | ||
5982 | 2021-11-08 Martin Liska <mliska@suse.cz> | |
5983 | ||
5984 | * cgraph.c (cgraph_node::dump): Dump static_chain_decl. | |
5985 | ||
5986 | 2021-11-08 Thomas Schwinge <thomas@codesourcery.com> | |
5987 | ||
5988 | * config/rs6000/rbtree.c: Fix 'Copyright (C) 2020-21' into '2020-2021' | |
5989 | * config/rs6000/rbtree.h: Likewise. | |
5990 | * config/rs6000/rs6000-builtin-new.def: Likewise. | |
5991 | * config/rs6000/rs6000-gen-builtins.c: Likewise. | |
5992 | * config/rs6000/rs6000-overload.def: Likewise. | |
5993 | ||
5994 | 2021-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
5995 | ||
5996 | * config/aarch64/aarch64.c (aarch64_ldn_stn_vectors): New function. | |
5997 | (aarch64_address_cost): Use it instead of testing for CImode and | |
5998 | XImode directly. | |
5999 | ||
6000 | 2021-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6001 | ||
6002 | * genmodes.c (emit_insn_modes_h): Define NUM_MODE_* macros. | |
6003 | * expmed.h (NUM_MODE_INT): Delete in favor of genmodes definitions. | |
6004 | (NUM_MODE_PARTIAL_INT, NUM_MODE_VECTOR_INT): Likewise. | |
6005 | * real.h (real_format_for_mode): Use NUM_MODE_FLOAT and | |
6006 | NUM_MODE_DECIMAL_FLOAT. | |
6007 | (REAL_MODE_FORMAT): Likewise. | |
6008 | ||
6009 | 2021-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
6010 | ||
6011 | * tree-vect-loop.c (vect_better_loop_vinfo_p): Change how epilogue loop | |
6012 | costs are compared. | |
6013 | ||
6014 | 2021-11-08 Richard Biener <rguenther@suse.de> | |
6015 | ||
6016 | * tree-vectorizer.h (vect_create_loop_vinfo): Add main_loop_info | |
6017 | parameter. | |
6018 | * tree-vect-loop.c (vect_create_loop_vinfo): Likewise. Set | |
6019 | LOOP_VINFO_ORIG_LOOP_INFO and conditionalize set of | |
6020 | LOOP_VINFO_NITERS_ASSUMPTIONS. | |
6021 | (vect_analyze_loop_1): Adjust. | |
6022 | (vect_analyze_loop): Move loop constraint setting and | |
6023 | SCEV/niter reset here from vect_create_loop_vinfo to perform | |
6024 | it only once. | |
6025 | (vect_analyze_loop_form): Move dumping of symbolic niters | |
6026 | here from vect_create_loop_vinfo. | |
6027 | ||
6028 | 2021-11-08 Jan Hubicka <hubicka@ucw.cz> | |
6029 | ||
6030 | * ipa-modref-tree.h (enum modref_special_parms): New enum. | |
6031 | (struct modref_access_node): update for special parms. | |
6032 | (struct modref_ref_node): Likewise. | |
6033 | (struct modref_parm_map): Likewise. | |
6034 | (struct modref_tree): Likewise. | |
6035 | * ipa-modref.c (dump_access): Likewise. | |
6036 | (get_access): Detect static chain. | |
6037 | (parm_map_for_arg): Take tree as arg instead of | |
6038 | stmt and index. | |
6039 | (merge_call_side_effects): Compute map for static chain. | |
6040 | (process_fnspec): Update. | |
6041 | (struct escape_point): Remove retslot_arg and static_chain_arg. | |
6042 | (analyze_parms): Update. | |
6043 | (compute_parm_map): Update. | |
6044 | (propagate_unknown_call): Update. | |
6045 | (modref_propagate_in_scc): Update. | |
6046 | (modref_merge_call_site_flags): Update. | |
6047 | (ipa_merge_modref_summary_after_inlining): Update. | |
6048 | * tree-ssa-alias.c (modref_may_conflict): Handle static chain. | |
6049 | * ipa-modref-tree.c (test_merge): Update. | |
6050 | ||
6051 | 2021-11-08 Haochen Gui <guihaoc@gcc.gnu.org> | |
6052 | ||
6053 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Disable | |
6054 | gimple fold for VSX_BUILTIN_XVMINDP, ALTIVEC_BUILTIN_VMINFP, | |
6055 | VSX_BUILTIN_XVMAXDP, ALTIVEC_BUILTIN_VMAXFP when fast-math is not | |
6056 | set. | |
6057 | ||
6058 | 2021-11-08 liuhongt <hongtao.liu@intel.com> | |
6059 | ||
6060 | PR tree-optimization/103077 | |
6061 | * doc/invoke.texi (Options That Control Optimization): | |
6062 | Update documentation for -ftree-loop-vectorize and | |
6063 | -ftree-slp-vectorize which are enabled by default at -02. | |
6064 | ||
6065 | 2021-11-08 liuhongt <hongtao.liu@intel.com> | |
6066 | ||
6067 | PR target/102464 | |
6068 | * match.pd (Simplifcation (trunc)copysign((extend)a, (extend)b) | |
6069 | to .COPYSIGN (a, b)): Add !HONOR_SNANS. | |
6070 | ||
6071 | 2021-11-08 liuhongt <hongtao.liu@intel.com> | |
6072 | ||
6073 | PR target/102464 | |
6074 | * match.pd: Simplify | |
6075 | (trunc)fma ((extend)a, (extend)b, (extend)c) to IFN_FMA (a, b, | |
6076 | c) under flag_unsafe_math_optimizations. | |
6077 | ||
6078 | 2021-11-07 Jan Hubicka <hubicka@ucw.cz> | |
6079 | ||
6080 | PR ipa/103055 | |
6081 | * params.opt (modref-max-depth): Add range. | |
6082 | (modref-max-adjustments): Fix range. | |
6083 | ||
6084 | 2021-11-07 Aldy Hernandez <aldyh@redhat.com> | |
6085 | ||
6086 | * tree-pass.h (make_pass_vrp_threader): Remove. | |
6087 | * tree-ssa-threadbackward.c | |
6088 | (back_threader_profitability::profitable_path_p): Remove | |
6089 | ASSERT_EXPR references. | |
6090 | * tree-ssa-threadedge.c (jt_state::register_equivs_stmt): Same. | |
6091 | * tree-vrp.c (vrp_folder::simplify_casted_conds): Same. | |
6092 | (execute_vrp): Same. | |
6093 | (class hybrid_threader): Remove. | |
6094 | (hybrid_threader::hybrid_threader): Remove. | |
6095 | (hybrid_threader::~hybrid_threader): Remove. | |
6096 | (hybrid_threader::before_dom_children): Remove. | |
6097 | (hybrid_threader::after_dom_children): Remove. | |
6098 | (execute_vrp_threader): Remove. | |
6099 | (class pass_vrp_threader): Remove. | |
6100 | (make_pass_vrp_threader): Remove. | |
6101 | ||
6102 | 2021-11-07 Jan Hubicka <hubicka@ucw.cz> | |
6103 | ||
6104 | * gimple.c (gimple_call_arg_flags): Use interposable_eaf_flags. | |
6105 | (gimple_call_retslot_flags): Likewise. | |
6106 | (gimple_call_static_chain_flags): Likewise. | |
6107 | * ipa-modref.c (remove_useless_eaf_flags): Do not remove everything for | |
6108 | NOVOPS. | |
6109 | (modref_summary::useful_p): Likewise. | |
6110 | (modref_summary_lto::useful_p): Likewise. | |
6111 | (analyze_parms): Do not give up on NOVOPS. | |
6112 | (analyze_function): When dumping report chnages in EAF flags | |
6113 | between IPA and local pass. | |
6114 | (modref_merge_call_site_flags): Compute implicit eaf flags | |
6115 | based on callee ecf_flags and fnspec; if the function does not | |
6116 | bind to current defs use interposable_eaf_flags. | |
6117 | (modref_propagate_flags_in_scc): Update. | |
6118 | * ipa-modref.h (interposable_eaf_flags): New function. | |
6119 | ||
6120 | 2021-11-07 Bill Schmidt <wschmidt@linux.ibm.com> | |
6121 | ||
6122 | * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New | |
6123 | forward decl. | |
6124 | (rs6000_invalid_new_builtin): New function. | |
6125 | (rs6000_expand_builtin): Call rs6000_expand_new_builtin. | |
6126 | (rs6000_expand_ldst_mask): New function. | |
6127 | (new_cpu_expand_builtin): Likewise. | |
6128 | (elemrev_icode): Likewise. | |
6129 | (ldv_expand_builtin): Likewise. | |
6130 | (lxvrse_expand_builtin): Likewise. | |
6131 | (lxvrze_expand_builtin): Likewise. | |
6132 | (stv_expand_builtin): Likewise. | |
6133 | (new_mma_expand_builtin): Likewise. | |
6134 | (new_htm_spr_num): Likewise. | |
6135 | (new_htm_expand_builtin): Likewise. | |
6136 | (rs6000_expand_new_builtin): Likewise. | |
6137 | (rs6000_init_builtins): Initialize altivec_builtin_mask_for_load. | |
6138 | ||
6139 | 2021-11-07 Jan Hubicka <hubicka@ucw.cz> | |
6140 | ||
6141 | * ipa-modref.c (modref_lattice): Add do_dataflow, | |
6142 | changed and propagate_to fields. | |
6143 | (modref_lattice::release): Free propagate_to | |
6144 | (modref_lattice::merge): Do not give up early on unknown | |
6145 | lattice values. | |
6146 | (modref_lattice::merge_deref): Likewise. | |
6147 | (modref_eaf_analysis): Update toplevel comment. | |
6148 | (modref_eaf_analysis::analyze_ssa_name): Record postponned ssa names; | |
6149 | do optimistic dataflow initialization. | |
6150 | (modref_eaf_analysis::merge_with_ssa_name): Build dataflow graph. | |
6151 | (modref_eaf_analysis::propagate): New member function. | |
6152 | (analyze_parms): Update to new API of modref_eaf_analysis. | |
6153 | ||
6154 | 2021-11-06 Jan Hubicka <hubicka@ucw.cz> | |
6155 | ||
6156 | * cgraph.h (cgraph_node::can_be_discarded_p): Do not | |
6157 | return true on functions from other partition. | |
6158 | ||
6159 | 2021-11-06 David Edelsohn <dje.gcc@gmail.com> | |
6160 | ||
6161 | * config/rs6000/vsx.md (vsx_splat_v4si): Change constraints to "wa". | |
6162 | (vsx_splat_v4si_di): Change constraint to "wa". | |
6163 | ||
6164 | 2021-11-06 Aldy Hernandez <aldyh@redhat.com> | |
6165 | ||
6166 | PR tree-optimization/103061 | |
6167 | * value-relation.cc (path_oracle::path_oracle): Initialize | |
6168 | m_killed_defs. | |
6169 | (path_oracle::killing_def): Set m_killed_defs. | |
6170 | (path_oracle::query_relation): Do not look at the root oracle for | |
6171 | killed defs. | |
6172 | * value-relation.h (class path_oracle): Add m_killed_defs. | |
6173 | ||
6174 | 2021-11-06 Aldy Hernandez <aldyh@redhat.com> | |
6175 | ||
6176 | * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): | |
6177 | Remove gotos and other cleanups. | |
6178 | ||
6179 | 2021-11-05 Jan Hubicka <hubicka@ucw.cz> | |
6180 | ||
6181 | PR ipa/103073 | |
6182 | * ipa-modref-tree.h (modref_tree::insert): Do nothing for | |
6183 | paradoxical and zero sized accesses. | |
6184 | ||
6185 | 2021-11-05 Jan Hubicka <hubicka@ucw.cz> | |
6186 | ||
6187 | PR ipa/103082 | |
6188 | * ipa-modref-tree.h (struct modref_access_node): Avoid left shift | |
6189 | of negative value | |
6190 | ||
6191 | 2021-11-05 Iain Sandoe <iain@sandoe.co.uk> | |
6192 | ||
6193 | * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add LTRAMP | |
6194 | to the list of symbol prefixes that must be made linker- | |
6195 | visible. | |
6196 | ||
6197 | 2021-11-05 Iain Sandoe <iain@sandoe.co.uk> | |
6198 | ||
6199 | * config.host: Add support for aarch64-*-darwin. | |
6200 | * config/aarch64/host-aarch64-darwin.c: New file. | |
6201 | * config/aarch64/x-darwin: New file. | |
6202 | ||
6203 | 2021-11-05 Andrew MacLeod <amacleod@redhat.com> | |
6204 | ||
6205 | PR tree-optimization/103093 | |
6206 | * gimple-range-gori.cc (range_def_chain::get_imports): Remove assert. | |
6207 | ||
6208 | 2021-11-05 Andrew MacLeod <amacleod@redhat.com> | |
6209 | ||
6210 | PR tree-optimization/102943 | |
6211 | * gimple-range-cache.cc (class update_list): New. | |
6212 | (update_list::add): Replace add_to_update. | |
6213 | (update_list::pop): New. | |
6214 | (ranger_cache::ranger_cache): Adjust. | |
6215 | (ranger_cache::~ranger_cache): Adjust. | |
6216 | (ranger_cache::add_to_update): Delete. | |
6217 | (ranger_cache::propagate_cache): Adjust to new class. | |
6218 | (ranger_cache::propagate_updated_value): Ditto. | |
6219 | (ranger_cache::fill_block_cache): Ditto. | |
6220 | * gimple-range-cache.h (class ranger_cache): Adjust to update class. | |
6221 | ||
6222 | 2021-11-05 Richard Biener <rguenther@suse.de> | |
6223 | ||
6224 | * tree-vect-loop.c (vect_analyze_loop): Remove obsolete | |
6225 | comment and expand on another one. Combine nested if. | |
6226 | ||
6227 | 2021-11-05 John David Anglin <danglin@gcc.gnu.org> | |
6228 | ||
6229 | PR libgomp/96661 | |
6230 | * config/pa/pa-modes.def: Add OImode integer type. | |
6231 | * config/pa/pa.c (pa_scalar_mode_supported_p): Allow TImode | |
6232 | for TARGET_64BIT. | |
6233 | * config/pa/pa.h (MIN_UNITS_PER_WORD) Define to MIN_UNITS_PER_WORD | |
6234 | to UNITS_PER_WORD if IN_LIBGCC2. | |
6235 | * config/pa/pa.md (addti3, addvti3, subti3, subvti3, negti2, | |
6236 | negvti2, ashlti3, shrpd_internal): New patterns. | |
6237 | Change some multi instruction types to multi. | |
6238 | ||
6239 | 2021-11-05 Jakub Jelinek <jakub@redhat.com> | |
6240 | ||
6241 | PR bootstrap/100246 | |
6242 | * config/i386/i386.h | |
6243 | (stringop_algs::stringop_strategy::stringop_strategy): Make the ctor | |
6244 | constexpr. | |
6245 | ||
6246 | 2021-11-05 Wilco Dijkstra <wdijkstr@arm.com> | |
6247 | ||
6248 | PR target/103085 | |
6249 | * config/aarch64/aarch64.c (aarch64_mov_operand_p): Strip the salt | |
6250 | first. | |
6251 | * config/aarch64/constraints.md: Support const in Usw. | |
6252 | ||
6253 | 2021-11-05 John David Anglin <danglin@gcc.gnu.org> | |
6254 | ||
6255 | * config/pa/pa.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2_DEBUG. | |
6256 | * config/pa/pa64-hpux.h (PREFERRED_DEBUGGING_TYPE): Remove define. | |
6257 | ||
6258 | 2021-11-05 Richard Biener <rguenther@suse.de> | |
6259 | ||
6260 | * tree-vectorizer.h (vec_info_shared::n_stmts): Add. | |
6261 | (LOOP_VINFO_N_STMTS): Likewise. | |
6262 | (vec_info_for_bb): Remove unused function. | |
6263 | * tree-vectorizer.c (vec_info_shared::vec_info_shared): | |
6264 | Initialize n_stmts member. | |
6265 | * tree-vect-loop.c: Remove INCLUDE_FUNCTIONAL. | |
6266 | (vect_create_loop_vinfo): Do not set loop->aux. | |
6267 | (vect_analyze_loop_2): Do not get n_stmts as argument, | |
6268 | instead use LOOP_VINFO_N_STMTS. Set LOOP_VINFO_VECTORIZABLE_P | |
6269 | here. | |
6270 | (vect_analyze_loop_1): Remove callback, get the mode iterator | |
6271 | and autodetected_vector_mode as argument, advancing the | |
6272 | iterator and initializing autodetected_vector_mode here. | |
6273 | (vect_analyze_loop): Split analysis loop into two, first | |
6274 | processing main loops only and then epilogues. | |
6275 | ||
6276 | 2021-11-05 Martin Jambor <mjambor@suse.cz> | |
6277 | ||
6278 | * ipa-prop.c (compute_complex_assign_jump_func): Remove | |
6279 | unnecessary check for RECORD_TYPE. | |
6280 | ||
6281 | 2021-11-05 Gerald Pfeifer <gerald@pfeifer.com> | |
6282 | ||
6283 | * doc/install.texi2html: Do not generate old.html any longer. | |
6284 | ||
6285 | 2021-11-05 Martin Liska <mliska@suse.cz> | |
6286 | ||
6287 | PR debug/102955 | |
6288 | * opts.c (finish_options): Reset flag_gtoggle when it is used. | |
6289 | ||
6290 | 2021-11-05 Jakub Jelinek <jakub@redhat.com> | |
6291 | ||
6292 | PR debug/103046 | |
6293 | * dwarf2out.c (add_const_value_attribute): Add MODE argument, use it | |
6294 | in CONST_WIDE_INT handling. Adjust recursive calls. | |
6295 | (add_location_or_const_value_attribute): Pass DECL_MODE (decl) to | |
6296 | new add_const_value_attribute argument. | |
6297 | (tree_add_const_value_attribute): Pass TYPE_MODE (type) to new | |
6298 | add_const_value_attribute argument. | |
6299 | ||
6300 | 2021-11-05 Rasmus Villemoes <rasmus.villemoes@prevas.dk> | |
6301 | ||
6302 | * config/vx-common.h: Test value of TARGET_VXWORKS7 rather | |
6303 | than definedness. | |
6304 | ||
6305 | 2021-11-05 Richard Biener <rguenther@suse.de> | |
6306 | ||
6307 | * tree-vectorizer.h (struct vect_loop_form_info): New. | |
6308 | (vect_analyze_loop_form): Adjust. | |
6309 | (vect_create_loop_vinfo): New. | |
6310 | * tree-parloops.c (gather_scalar_reductions): Adjust for | |
6311 | vect_analyze_loop_form API change. | |
6312 | * tree-vect-loop.c: Include <functional>. | |
6313 | (vect_analyze_loop_form_1): Rename to vect_analyze_loop_form, | |
6314 | take struct vect_loop_form_info as output parameter and adjust. | |
6315 | (vect_analyze_loop_form): Rename to vect_create_loop_vinfo and | |
6316 | split out call to the original vect_analyze_loop_form_1. | |
6317 | (vect_reanalyze_as_main_loop): Rename to... | |
6318 | (vect_analyze_loop_1): ... this, factor out the call to | |
6319 | vect_analyze_loop_form and generalize to be able to use it twice ... | |
6320 | (vect_analyze_loop): ... here. Perform vect_analyze_loop_form | |
6321 | once only and here. | |
6322 | ||
6323 | 2021-11-05 Xionghu Luo <luoxhu@linux.ibm.com> | |
6324 | ||
6325 | PR target/102991 | |
6326 | * config/rs6000/fusion.md: Regenerate. | |
6327 | * config/rs6000/genfusion.pl: Fix incorrect clobber constraint. | |
6328 | ||
6329 | 2021-11-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
6330 | ||
6331 | * config/s390/s390.h (STACK_CHECK_MOVING_SP): New macro | |
6332 | definition. | |
6333 | ||
6334 | 2021-11-04 Tamar Christina <tamar.christina@arm.com> | |
6335 | ||
6336 | * config/aarch64/aarch64-builtins.c | |
6337 | (aarch64_general_gimple_fold_builtin): Add ashl, sshl, ushl, ashr, | |
6338 | ashr_simd, lshr, lshr_simd. | |
6339 | * config/aarch64/aarch64-simd-builtins.def (lshr): Use USHIFTIMM. | |
6340 | * config/aarch64/arm_neon.h (vshr_n_u8, vshr_n_u16, vshr_n_u32, | |
6341 | vshrq_n_u8, vshrq_n_u16, vshrq_n_u32, vshrq_n_u64): Fix type hack. | |
6342 | ||
6343 | 2021-11-04 Tamar Christina <tamar.christina@arm.com> | |
6344 | ||
6345 | * match.pd: New negate+shift pattern. | |
6346 | ||
6347 | 2021-11-04 Andrew MacLeod <amacleod@redhat.com> | |
6348 | ||
6349 | PR tree-optimization/103079 | |
6350 | * gimple-range-gori.cc (gimple_range_calc_op1): Treat undefined as | |
6351 | varying. | |
6352 | (gimple_range_calc_op2): Ditto. | |
6353 | ||
6354 | 2021-11-04 Martin Jambor <mjambor@suse.cz> | |
6355 | ||
6356 | PR ipa/93385 | |
6357 | * ipa-param-manipulation.h (class ipa_param_body_adjustments): New | |
6358 | members remap_with_debug_expressions, m_dead_ssa_debug_equiv, | |
6359 | m_dead_stmt_debug_equiv and prepare_debug_expressions. Added | |
6360 | parameter to mark_dead_statements. | |
6361 | * ipa-param-manipulation.c: Include tree-phinodes.h and cfgexpand.h. | |
6362 | (ipa_param_body_adjustments::mark_dead_statements): New parameter | |
6363 | debugstack, push into it all SSA names used in debug statements, | |
6364 | produce m_dead_ssa_debug_equiv mapping for the removed param. | |
6365 | (replace_with_mapped_expr): New function. | |
6366 | (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise. | |
6367 | (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. | |
6368 | (ipa_param_body_adjustments::common_initialization): Gather and | |
6369 | procecc SSA which will be removed but are in debug statements. Simplify. | |
6370 | (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize | |
6371 | new members. | |
6372 | * tree-inline.c (remap_gimple_stmt): Create a debug bind when possible | |
6373 | when avoiding a copy of an unnecessary statement. Remap removed SSA | |
6374 | names in existing debug statements. | |
6375 | (tree_function_versioning): Do not create DEBUG_EXPR_DECL for removed | |
6376 | parameters if we have already done so. | |
6377 | ||
6378 | 2021-11-04 Jan Hubicka <hubicka@ucw.cz> | |
6379 | ||
6380 | PR ipa/103058 | |
6381 | * gimple.c (gimple_call_static_chain_flags): Handle case when | |
6382 | nested function does not bind locally. | |
6383 | ||
6384 | 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> | |
6385 | ||
6386 | * config/aarch64/aarch64.c (aarch64_function_value): Generate | |
6387 | a register rtx for Neon vector-tuple modes. | |
6388 | (aarch64_layout_arg): Likewise. | |
6389 | ||
6390 | 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> | |
6391 | ||
6392 | * lower-subreg.c (simple_move): Prevent decomposition if | |
6393 | modes are not tieable. | |
6394 | ||
6395 | 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> | |
6396 | Richard Sandiford <richard.sandiford@arm.com> | |
6397 | ||
6398 | * config/aarch64/aarch64-builtins.c (v2x8qi_UP): Define. | |
6399 | (v2x4hi_UP): Likewise. | |
6400 | (v2x4hf_UP): Likewise. | |
6401 | (v2x4bf_UP): Likewise. | |
6402 | (v2x2si_UP): Likewise. | |
6403 | (v2x2sf_UP): Likewise. | |
6404 | (v2x1di_UP): Likewise. | |
6405 | (v2x1df_UP): Likewise. | |
6406 | (v2x16qi_UP): Likewise. | |
6407 | (v2x8hi_UP): Likewise. | |
6408 | (v2x8hf_UP): Likewise. | |
6409 | (v2x8bf_UP): Likewise. | |
6410 | (v2x4si_UP): Likewise. | |
6411 | (v2x4sf_UP): Likewise. | |
6412 | (v2x2di_UP): Likewise. | |
6413 | (v2x2df_UP): Likewise. | |
6414 | (v3x8qi_UP): Likewise. | |
6415 | (v3x4hi_UP): Likewise. | |
6416 | (v3x4hf_UP): Likewise. | |
6417 | (v3x4bf_UP): Likewise. | |
6418 | (v3x2si_UP): Likewise. | |
6419 | (v3x2sf_UP): Likewise. | |
6420 | (v3x1di_UP): Likewise. | |
6421 | (v3x1df_UP): Likewise. | |
6422 | (v3x16qi_UP): Likewise. | |
6423 | (v3x8hi_UP): Likewise. | |
6424 | (v3x8hf_UP): Likewise. | |
6425 | (v3x8bf_UP): Likewise. | |
6426 | (v3x4si_UP): Likewise. | |
6427 | (v3x4sf_UP): Likewise. | |
6428 | (v3x2di_UP): Likewise. | |
6429 | (v3x2df_UP): Likewise. | |
6430 | (v4x8qi_UP): Likewise. | |
6431 | (v4x4hi_UP): Likewise. | |
6432 | (v4x4hf_UP): Likewise. | |
6433 | (v4x4bf_UP): Likewise. | |
6434 | (v4x2si_UP): Likewise. | |
6435 | (v4x2sf_UP): Likewise. | |
6436 | (v4x1di_UP): Likewise. | |
6437 | (v4x1df_UP): Likewise. | |
6438 | (v4x16qi_UP): Likewise. | |
6439 | (v4x8hi_UP): Likewise. | |
6440 | (v4x8hf_UP): Likewise. | |
6441 | (v4x8bf_UP): Likewise. | |
6442 | (v4x4si_UP): Likewise. | |
6443 | (v4x4sf_UP): Likewise. | |
6444 | (v4x2di_UP): Likewise. | |
6445 | (v4x2df_UP): Likewise. | |
6446 | (TYPES_GETREGP): Delete. | |
6447 | (TYPES_SETREGP): Likewise. | |
6448 | (TYPES_LOADSTRUCT_U): Define. | |
6449 | (TYPES_LOADSTRUCT_P): Likewise. | |
6450 | (TYPES_LOADSTRUCT_LANE_U): Likewise. | |
6451 | (TYPES_LOADSTRUCT_LANE_P): Likewise. | |
6452 | (TYPES_STORE1P): Move for consistency. | |
6453 | (TYPES_STORESTRUCT_U): Define. | |
6454 | (TYPES_STORESTRUCT_P): Likewise. | |
6455 | (TYPES_STORESTRUCT_LANE_U): Likewise. | |
6456 | (TYPES_STORESTRUCT_LANE_P): Likewise. | |
6457 | (aarch64_simd_tuple_types): Define. | |
6458 | (aarch64_lookup_simd_builtin_type): Handle tuple type lookup. | |
6459 | (aarch64_init_simd_builtin_functions): Update frontend lookup | |
6460 | for builtin functions after handling arm_neon.h pragma. | |
6461 | (register_tuple_type): Manually set modes of single-integer | |
6462 | tuple types. Record tuple types. | |
6463 | * config/aarch64/aarch64-modes.def | |
6464 | (ADV_SIMD_D_REG_STRUCT_MODES): Define D-register tuple modes. | |
6465 | (ADV_SIMD_Q_REG_STRUCT_MODES): Define Q-register tuple modes. | |
6466 | (SVE_MODES): Give single-vector modes priority over vector- | |
6467 | tuple modes. | |
6468 | (VECTOR_MODES_WITH_PREFIX): Set partial-vector mode order to | |
6469 | be after all single-vector modes. | |
6470 | * config/aarch64/aarch64-simd-builtins.def: Update builtin | |
6471 | generator macros to reflect modifications to the backend | |
6472 | patterns. | |
6473 | * config/aarch64/aarch64-simd.md (aarch64_simd_ld2<mode>): | |
6474 | Use vector-tuple mode iterator and rename to... | |
6475 | (aarch64_simd_ld2<vstruct_elt>): This. | |
6476 | (aarch64_simd_ld2r<mode>): Use vector-tuple mode iterator and | |
6477 | rename to... | |
6478 | (aarch64_simd_ld2r<vstruct_elt>): This. | |
6479 | (aarch64_vec_load_lanesoi_lane<mode>): Use vector-tuple mode | |
6480 | iterator and rename to... | |
6481 | (aarch64_vec_load_lanes<mode>_lane<vstruct_elt>): This. | |
6482 | (vec_load_lanesoi<mode>): Use vector-tuple mode iterator and | |
6483 | rename to... | |
6484 | (vec_load_lanes<mode><vstruct_elt>): This. | |
6485 | (aarch64_simd_st2<mode>): Use vector-tuple mode iterator and | |
6486 | rename to... | |
6487 | (aarch64_simd_st2<vstruct_elt>): This. | |
6488 | (aarch64_vec_store_lanesoi_lane<mode>): Use vector-tuple mode | |
6489 | iterator and rename to... | |
6490 | (aarch64_vec_store_lanes<mode>_lane<vstruct_elt>): This. | |
6491 | (vec_store_lanesoi<mode>): Use vector-tuple mode iterator and | |
6492 | rename to... | |
6493 | (vec_store_lanes<mode><vstruct_elt>): This. | |
6494 | (aarch64_simd_ld3<mode>): Use vector-tuple mode iterator and | |
6495 | rename to... | |
6496 | (aarch64_simd_ld3<vstruct_elt>): This. | |
6497 | (aarch64_simd_ld3r<mode>): Use vector-tuple mode iterator and | |
6498 | rename to... | |
6499 | (aarch64_simd_ld3r<vstruct_elt>): This. | |
6500 | (aarch64_vec_load_lanesci_lane<mode>): Use vector-tuple mode | |
6501 | iterator and rename to... | |
6502 | (vec_load_lanesci<mode>): This. | |
6503 | (aarch64_simd_st3<mode>): Use vector-tuple mode iterator and | |
6504 | rename to... | |
6505 | (aarch64_simd_st3<vstruct_elt>): This. | |
6506 | (aarch64_vec_store_lanesci_lane<mode>): Use vector-tuple mode | |
6507 | iterator and rename to... | |
6508 | (vec_store_lanesci<mode>): This. | |
6509 | (aarch64_simd_ld4<mode>): Use vector-tuple mode iterator and | |
6510 | rename to... | |
6511 | (aarch64_simd_ld4<vstruct_elt>): This. | |
6512 | (aarch64_simd_ld4r<mode>): Use vector-tuple mode iterator and | |
6513 | rename to... | |
6514 | (aarch64_simd_ld4r<vstruct_elt>): This. | |
6515 | (aarch64_vec_load_lanesxi_lane<mode>): Use vector-tuple mode | |
6516 | iterator and rename to... | |
6517 | (vec_load_lanesxi<mode>): This. | |
6518 | (aarch64_simd_st4<mode>): Use vector-tuple mode iterator and | |
6519 | rename to... | |
6520 | (aarch64_simd_st4<vstruct_elt>): This. | |
6521 | (aarch64_vec_store_lanesxi_lane<mode>): Use vector-tuple mode | |
6522 | iterator and rename to... | |
6523 | (vec_store_lanesxi<mode>): This. | |
6524 | (mov<mode>): Define for Neon vector-tuple modes. | |
6525 | (aarch64_ld1x3<VALLDIF:mode>): Use vector-tuple mode iterator | |
6526 | and rename to... | |
6527 | (aarch64_ld1x3<vstruct_elt>): This. | |
6528 | (aarch64_ld1_x3_<mode>): Use vector-tuple mode iterator and | |
6529 | rename to... | |
6530 | (aarch64_ld1_x3_<vstruct_elt>): This. | |
6531 | (aarch64_ld1x4<VALLDIF:mode>): Use vector-tuple mode iterator | |
6532 | and rename to... | |
6533 | (aarch64_ld1x4<vstruct_elt>): This. | |
6534 | (aarch64_ld1_x4_<mode>): Use vector-tuple mode iterator and | |
6535 | rename to... | |
6536 | (aarch64_ld1_x4_<vstruct_elt>): This. | |
6537 | (aarch64_st1x2<VALLDIF:mode>): Use vector-tuple mode iterator | |
6538 | and rename to... | |
6539 | (aarch64_st1x2<vstruct_elt>): This. | |
6540 | (aarch64_st1_x2_<mode>): Use vector-tuple mode iterator and | |
6541 | rename to... | |
6542 | (aarch64_st1_x2_<vstruct_elt>): This. | |
6543 | (aarch64_st1x3<VALLDIF:mode>): Use vector-tuple mode iterator | |
6544 | and rename to... | |
6545 | (aarch64_st1x3<vstruct_elt>): This. | |
6546 | (aarch64_st1_x3_<mode>): Use vector-tuple mode iterator and | |
6547 | rename to... | |
6548 | (aarch64_st1_x3_<vstruct_elt>): This. | |
6549 | (aarch64_st1x4<VALLDIF:mode>): Use vector-tuple mode iterator | |
6550 | and rename to... | |
6551 | (aarch64_st1x4<vstruct_elt>): This. | |
6552 | (aarch64_st1_x4_<mode>): Use vector-tuple mode iterator and | |
6553 | rename to... | |
6554 | (aarch64_st1_x4_<vstruct_elt>): This. | |
6555 | (*aarch64_mov<mode>): Define for vector-tuple modes. | |
6556 | (*aarch64_be_mov<mode>): Likewise. | |
6557 | (aarch64_ld<VSTRUCT:nregs>r<VALLDIF:mode>): Use vector-tuple | |
6558 | mode iterator and rename to... | |
6559 | (aarch64_ld<nregs>r<vstruct_elt>): This. | |
6560 | (aarch64_ld2<mode>_dreg): Use vector-tuple mode iterator and | |
6561 | rename to... | |
6562 | (aarch64_ld2<vstruct_elt>_dreg): This. | |
6563 | (aarch64_ld3<mode>_dreg): Use vector-tuple mode iterator and | |
6564 | rename to... | |
6565 | (aarch64_ld3<vstruct_elt>_dreg): This. | |
6566 | (aarch64_ld4<mode>_dreg): Use vector-tuple mode iterator and | |
6567 | rename to... | |
6568 | (aarch64_ld4<vstruct_elt>_dreg): This. | |
6569 | (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Use vector-tuple mode | |
6570 | iterator and rename to... | |
6571 | (aarch64_ld<nregs><vstruct_elt>): Use vector-tuple mode | |
6572 | iterator and rename to... | |
6573 | (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Use vector-tuple mode | |
6574 | (aarch64_ld1x2<VQ:mode>): Delete. | |
6575 | (aarch64_ld1x2<VDC:mode>): Use vector-tuple mode iterator and | |
6576 | rename to... | |
6577 | (aarch64_ld1x2<vstruct_elt>): This. | |
6578 | (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use vector- | |
6579 | tuple mode iterator and rename to... | |
6580 | (aarch64_ld<nregs>_lane<vstruct_elt>): This. | |
6581 | (aarch64_get_dreg<VSTRUCT:mode><VDC:mode>): Delete. | |
6582 | (aarch64_get_qreg<VSTRUCT:mode><VQ:mode>): Likewise. | |
6583 | (aarch64_st2<mode>_dreg): Use vector-tuple mode iterator and | |
6584 | rename to... | |
6585 | (aarch64_st2<vstruct_elt>_dreg): This. | |
6586 | (aarch64_st3<mode>_dreg): Use vector-tuple mode iterator and | |
6587 | rename to... | |
6588 | (aarch64_st3<vstruct_elt>_dreg): This. | |
6589 | (aarch64_st4<mode>_dreg): Use vector-tuple mode iterator and | |
6590 | rename to... | |
6591 | (aarch64_st4<vstruct_elt>_dreg): This. | |
6592 | (aarch64_st<VSTRUCT:nregs><VDC:mode>): Use vector-tuple mode | |
6593 | iterator and rename to... | |
6594 | (aarch64_st<nregs><vstruct_elt>): This. | |
6595 | (aarch64_st<VSTRUCT:nregs><VQ:mode>): Use vector-tuple mode | |
6596 | iterator and rename to aarch64_st<nregs><vstruct_elt>. | |
6597 | (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use vector- | |
6598 | tuple mode iterator and rename to... | |
6599 | (aarch64_st<nregs>_lane<vstruct_elt>): This. | |
6600 | (aarch64_set_qreg<VSTRUCT:mode><VQ:mode>): Delete. | |
6601 | (aarch64_simd_ld1<mode>_x2): Use vector-tuple mode iterator | |
6602 | and rename to... | |
6603 | (aarch64_simd_ld1<vstruct_elt>_x2): This. | |
6604 | * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): | |
6605 | Refactor to include new vector-tuple modes. | |
6606 | (aarch64_classify_vector_mode): Add cases for new vector- | |
6607 | tuple modes. | |
6608 | (aarch64_advsimd_partial_struct_mode_p): Define. | |
6609 | (aarch64_advsimd_full_struct_mode_p): Likewise. | |
6610 | (aarch64_advsimd_vector_array_mode): Likewise. | |
6611 | (aarch64_sve_data_mode): Change location in file. | |
6612 | (aarch64_array_mode): Handle case of Neon vector-tuple modes. | |
6613 | (aarch64_hard_regno_nregs): Handle case of partial Neon | |
6614 | vector structures. | |
6615 | (aarch64_classify_address): Refactor to include handling of | |
6616 | Neon vector-tuple modes. | |
6617 | (aarch64_print_operand): Print "d" for "%R" for a partial | |
6618 | Neon vector structure. | |
6619 | (aarch64_expand_vec_perm_1): Use new vector-tuple mode. | |
6620 | (aarch64_modes_tieable_p): Prevent tieing Neon partial struct | |
6621 | modes with scalar machines modes larger than 8 bytes. | |
6622 | (aarch64_can_change_mode_class): Don't allow changes between | |
6623 | partial and full Neon vector-structure modes. | |
6624 | * config/aarch64/arm_neon.h (vst2_lane_f16): Use updated | |
6625 | builtin and remove boiler-plate code for opaque mode. | |
6626 | (vst2_lane_f32): Likewise. | |
6627 | (vst2_lane_f64): Likewise. | |
6628 | (vst2_lane_p8): Likewise. | |
6629 | (vst2_lane_p16): Likewise. | |
6630 | (vst2_lane_p64): Likewise. | |
6631 | (vst2_lane_s8): Likewise. | |
6632 | (vst2_lane_s16): Likewise. | |
6633 | (vst2_lane_s32): Likewise. | |
6634 | (vst2_lane_s64): Likewise. | |
6635 | (vst2_lane_u8): Likewise. | |
6636 | (vst2_lane_u16): Likewise. | |
6637 | (vst2_lane_u32): Likewise. | |
6638 | (vst2_lane_u64): Likewise. | |
6639 | (vst2q_lane_f16): Likewise. | |
6640 | (vst2q_lane_f32): Likewise. | |
6641 | (vst2q_lane_f64): Likewise. | |
6642 | (vst2q_lane_p8): Likewise. | |
6643 | (vst2q_lane_p16): Likewise. | |
6644 | (vst2q_lane_p64): Likewise. | |
6645 | (vst2q_lane_s8): Likewise. | |
6646 | (vst2q_lane_s16): Likewise. | |
6647 | (vst2q_lane_s32): Likewise. | |
6648 | (vst2q_lane_s64): Likewise. | |
6649 | (vst2q_lane_u8): Likewise. | |
6650 | (vst2q_lane_u16): Likewise. | |
6651 | (vst2q_lane_u32): Likewise. | |
6652 | (vst2q_lane_u64): Likewise. | |
6653 | (vst3_lane_f16): Likewise. | |
6654 | (vst3_lane_f32): Likewise. | |
6655 | (vst3_lane_f64): Likewise. | |
6656 | (vst3_lane_p8): Likewise. | |
6657 | (vst3_lane_p16): Likewise. | |
6658 | (vst3_lane_p64): Likewise. | |
6659 | (vst3_lane_s8): Likewise. | |
6660 | (vst3_lane_s16): Likewise. | |
6661 | (vst3_lane_s32): Likewise. | |
6662 | (vst3_lane_s64): Likewise. | |
6663 | (vst3_lane_u8): Likewise. | |
6664 | (vst3_lane_u16): Likewise. | |
6665 | (vst3_lane_u32): Likewise. | |
6666 | (vst3_lane_u64): Likewise. | |
6667 | (vst3q_lane_f16): Likewise. | |
6668 | (vst3q_lane_f32): Likewise. | |
6669 | (vst3q_lane_f64): Likewise. | |
6670 | (vst3q_lane_p8): Likewise. | |
6671 | (vst3q_lane_p16): Likewise. | |
6672 | (vst3q_lane_p64): Likewise. | |
6673 | (vst3q_lane_s8): Likewise. | |
6674 | (vst3q_lane_s16): Likewise. | |
6675 | (vst3q_lane_s32): Likewise. | |
6676 | (vst3q_lane_s64): Likewise. | |
6677 | (vst3q_lane_u8): Likewise. | |
6678 | (vst3q_lane_u16): Likewise. | |
6679 | (vst3q_lane_u32): Likewise. | |
6680 | (vst3q_lane_u64): Likewise. | |
6681 | (vst4_lane_f16): Likewise. | |
6682 | (vst4_lane_f32): Likewise. | |
6683 | (vst4_lane_f64): Likewise. | |
6684 | (vst4_lane_p8): Likewise. | |
6685 | (vst4_lane_p16): Likewise. | |
6686 | (vst4_lane_p64): Likewise. | |
6687 | (vst4_lane_s8): Likewise. | |
6688 | (vst4_lane_s16): Likewise. | |
6689 | (vst4_lane_s32): Likewise. | |
6690 | (vst4_lane_s64): Likewise. | |
6691 | (vst4_lane_u8): Likewise. | |
6692 | (vst4_lane_u16): Likewise. | |
6693 | (vst4_lane_u32): Likewise. | |
6694 | (vst4_lane_u64): Likewise. | |
6695 | (vst4q_lane_f16): Likewise. | |
6696 | (vst4q_lane_f32): Likewise. | |
6697 | (vst4q_lane_f64): Likewise. | |
6698 | (vst4q_lane_p8): Likewise. | |
6699 | (vst4q_lane_p16): Likewise. | |
6700 | (vst4q_lane_p64): Likewise. | |
6701 | (vst4q_lane_s8): Likewise. | |
6702 | (vst4q_lane_s16): Likewise. | |
6703 | (vst4q_lane_s32): Likewise. | |
6704 | (vst4q_lane_s64): Likewise. | |
6705 | (vst4q_lane_u8): Likewise. | |
6706 | (vst4q_lane_u16): Likewise. | |
6707 | (vst4q_lane_u32): Likewise. | |
6708 | (vst4q_lane_u64): Likewise. | |
6709 | (vtbl3_s8): Likewise. | |
6710 | (vtbl3_u8): Likewise. | |
6711 | (vtbl3_p8): Likewise. | |
6712 | (vtbl4_s8): Likewise. | |
6713 | (vtbl4_u8): Likewise. | |
6714 | (vtbl4_p8): Likewise. | |
6715 | (vld1_u8_x3): Likewise. | |
6716 | (vld1_s8_x3): Likewise. | |
6717 | (vld1_u16_x3): Likewise. | |
6718 | (vld1_s16_x3): Likewise. | |
6719 | (vld1_u32_x3): Likewise. | |
6720 | (vld1_s32_x3): Likewise. | |
6721 | (vld1_u64_x3): Likewise. | |
6722 | (vld1_s64_x3): Likewise. | |
6723 | (vld1_f16_x3): Likewise. | |
6724 | (vld1_f32_x3): Likewise. | |
6725 | (vld1_f64_x3): Likewise. | |
6726 | (vld1_p8_x3): Likewise. | |
6727 | (vld1_p16_x3): Likewise. | |
6728 | (vld1_p64_x3): Likewise. | |
6729 | (vld1q_u8_x3): Likewise. | |
6730 | (vld1q_s8_x3): Likewise. | |
6731 | (vld1q_u16_x3): Likewise. | |
6732 | (vld1q_s16_x3): Likewise. | |
6733 | (vld1q_u32_x3): Likewise. | |
6734 | (vld1q_s32_x3): Likewise. | |
6735 | (vld1q_u64_x3): Likewise. | |
6736 | (vld1q_s64_x3): Likewise. | |
6737 | (vld1q_f16_x3): Likewise. | |
6738 | (vld1q_f32_x3): Likewise. | |
6739 | (vld1q_f64_x3): Likewise. | |
6740 | (vld1q_p8_x3): Likewise. | |
6741 | (vld1q_p16_x3): Likewise. | |
6742 | (vld1q_p64_x3): Likewise. | |
6743 | (vld1_u8_x2): Likewise. | |
6744 | (vld1_s8_x2): Likewise. | |
6745 | (vld1_u16_x2): Likewise. | |
6746 | (vld1_s16_x2): Likewise. | |
6747 | (vld1_u32_x2): Likewise. | |
6748 | (vld1_s32_x2): Likewise. | |
6749 | (vld1_u64_x2): Likewise. | |
6750 | (vld1_s64_x2): Likewise. | |
6751 | (vld1_f16_x2): Likewise. | |
6752 | (vld1_f32_x2): Likewise. | |
6753 | (vld1_f64_x2): Likewise. | |
6754 | (vld1_p8_x2): Likewise. | |
6755 | (vld1_p16_x2): Likewise. | |
6756 | (vld1_p64_x2): Likewise. | |
6757 | (vld1q_u8_x2): Likewise. | |
6758 | (vld1q_s8_x2): Likewise. | |
6759 | (vld1q_u16_x2): Likewise. | |
6760 | (vld1q_s16_x2): Likewise. | |
6761 | (vld1q_u32_x2): Likewise. | |
6762 | (vld1q_s32_x2): Likewise. | |
6763 | (vld1q_u64_x2): Likewise. | |
6764 | (vld1q_s64_x2): Likewise. | |
6765 | (vld1q_f16_x2): Likewise. | |
6766 | (vld1q_f32_x2): Likewise. | |
6767 | (vld1q_f64_x2): Likewise. | |
6768 | (vld1q_p8_x2): Likewise. | |
6769 | (vld1q_p16_x2): Likewise. | |
6770 | (vld1q_p64_x2): Likewise. | |
6771 | (vld1_s8_x4): Likewise. | |
6772 | (vld1q_s8_x4): Likewise. | |
6773 | (vld1_s16_x4): Likewise. | |
6774 | (vld1q_s16_x4): Likewise. | |
6775 | (vld1_s32_x4): Likewise. | |
6776 | (vld1q_s32_x4): Likewise. | |
6777 | (vld1_u8_x4): Likewise. | |
6778 | (vld1q_u8_x4): Likewise. | |
6779 | (vld1_u16_x4): Likewise. | |
6780 | (vld1q_u16_x4): Likewise. | |
6781 | (vld1_u32_x4): Likewise. | |
6782 | (vld1q_u32_x4): Likewise. | |
6783 | (vld1_f16_x4): Likewise. | |
6784 | (vld1q_f16_x4): Likewise. | |
6785 | (vld1_f32_x4): Likewise. | |
6786 | (vld1q_f32_x4): Likewise. | |
6787 | (vld1_p8_x4): Likewise. | |
6788 | (vld1q_p8_x4): Likewise. | |
6789 | (vld1_p16_x4): Likewise. | |
6790 | (vld1q_p16_x4): Likewise. | |
6791 | (vld1_s64_x4): Likewise. | |
6792 | (vld1_u64_x4): Likewise. | |
6793 | (vld1_p64_x4): Likewise. | |
6794 | (vld1q_s64_x4): Likewise. | |
6795 | (vld1q_u64_x4): Likewise. | |
6796 | (vld1q_p64_x4): Likewise. | |
6797 | (vld1_f64_x4): Likewise. | |
6798 | (vld1q_f64_x4): Likewise. | |
6799 | (vld2_s64): Likewise. | |
6800 | (vld2_u64): Likewise. | |
6801 | (vld2_f64): Likewise. | |
6802 | (vld2_s8): Likewise. | |
6803 | (vld2_p8): Likewise. | |
6804 | (vld2_p64): Likewise. | |
6805 | (vld2_s16): Likewise. | |
6806 | (vld2_p16): Likewise. | |
6807 | (vld2_s32): Likewise. | |
6808 | (vld2_u8): Likewise. | |
6809 | (vld2_u16): Likewise. | |
6810 | (vld2_u32): Likewise. | |
6811 | (vld2_f16): Likewise. | |
6812 | (vld2_f32): Likewise. | |
6813 | (vld2q_s8): Likewise. | |
6814 | (vld2q_p8): Likewise. | |
6815 | (vld2q_s16): Likewise. | |
6816 | (vld2q_p16): Likewise. | |
6817 | (vld2q_p64): Likewise. | |
6818 | (vld2q_s32): Likewise. | |
6819 | (vld2q_s64): Likewise. | |
6820 | (vld2q_u8): Likewise. | |
6821 | (vld2q_u16): Likewise. | |
6822 | (vld2q_u32): Likewise. | |
6823 | (vld2q_u64): Likewise. | |
6824 | (vld2q_f16): Likewise. | |
6825 | (vld2q_f32): Likewise. | |
6826 | (vld2q_f64): Likewise. | |
6827 | (vld3_s64): Likewise. | |
6828 | (vld3_u64): Likewise. | |
6829 | (vld3_f64): Likewise. | |
6830 | (vld3_s8): Likewise. | |
6831 | (vld3_p8): Likewise. | |
6832 | (vld3_s16): Likewise. | |
6833 | (vld3_p16): Likewise. | |
6834 | (vld3_s32): Likewise. | |
6835 | (vld3_u8): Likewise. | |
6836 | (vld3_u16): Likewise. | |
6837 | (vld3_u32): Likewise. | |
6838 | (vld3_f16): Likewise. | |
6839 | (vld3_f32): Likewise. | |
6840 | (vld3_p64): Likewise. | |
6841 | (vld3q_s8): Likewise. | |
6842 | (vld3q_p8): Likewise. | |
6843 | (vld3q_s16): Likewise. | |
6844 | (vld3q_p16): Likewise. | |
6845 | (vld3q_s32): Likewise. | |
6846 | (vld3q_s64): Likewise. | |
6847 | (vld3q_u8): Likewise. | |
6848 | (vld3q_u16): Likewise. | |
6849 | (vld3q_u32): Likewise. | |
6850 | (vld3q_u64): Likewise. | |
6851 | (vld3q_f16): Likewise. | |
6852 | (vld3q_f32): Likewise. | |
6853 | (vld3q_f64): Likewise. | |
6854 | (vld3q_p64): Likewise. | |
6855 | (vld4_s64): Likewise. | |
6856 | (vld4_u64): Likewise. | |
6857 | (vld4_f64): Likewise. | |
6858 | (vld4_s8): Likewise. | |
6859 | (vld4_p8): Likewise. | |
6860 | (vld4_s16): Likewise. | |
6861 | (vld4_p16): Likewise. | |
6862 | (vld4_s32): Likewise. | |
6863 | (vld4_u8): Likewise. | |
6864 | (vld4_u16): Likewise. | |
6865 | (vld4_u32): Likewise. | |
6866 | (vld4_f16): Likewise. | |
6867 | (vld4_f32): Likewise. | |
6868 | (vld4_p64): Likewise. | |
6869 | (vld4q_s8): Likewise. | |
6870 | (vld4q_p8): Likewise. | |
6871 | (vld4q_s16): Likewise. | |
6872 | (vld4q_p16): Likewise. | |
6873 | (vld4q_s32): Likewise. | |
6874 | (vld4q_s64): Likewise. | |
6875 | (vld4q_u8): Likewise. | |
6876 | (vld4q_u16): Likewise. | |
6877 | (vld4q_u32): Likewise. | |
6878 | (vld4q_u64): Likewise. | |
6879 | (vld4q_f16): Likewise. | |
6880 | (vld4q_f32): Likewise. | |
6881 | (vld4q_f64): Likewise. | |
6882 | (vld4q_p64): Likewise. | |
6883 | (vld2_dup_s8): Likewise. | |
6884 | (vld2_dup_s16): Likewise. | |
6885 | (vld2_dup_s32): Likewise. | |
6886 | (vld2_dup_f16): Likewise. | |
6887 | (vld2_dup_f32): Likewise. | |
6888 | (vld2_dup_f64): Likewise. | |
6889 | (vld2_dup_u8): Likewise. | |
6890 | (vld2_dup_u16): Likewise. | |
6891 | (vld2_dup_u32): Likewise. | |
6892 | (vld2_dup_p8): Likewise. | |
6893 | (vld2_dup_p16): Likewise. | |
6894 | (vld2_dup_p64): Likewise. | |
6895 | (vld2_dup_s64): Likewise. | |
6896 | (vld2_dup_u64): Likewise. | |
6897 | (vld2q_dup_s8): Likewise. | |
6898 | (vld2q_dup_p8): Likewise. | |
6899 | (vld2q_dup_s16): Likewise. | |
6900 | (vld2q_dup_p16): Likewise. | |
6901 | (vld2q_dup_s32): Likewise. | |
6902 | (vld2q_dup_s64): Likewise. | |
6903 | (vld2q_dup_u8): Likewise. | |
6904 | (vld2q_dup_u16): Likewise. | |
6905 | (vld2q_dup_u32): Likewise. | |
6906 | (vld2q_dup_u64): Likewise. | |
6907 | (vld2q_dup_f16): Likewise. | |
6908 | (vld2q_dup_f32): Likewise. | |
6909 | (vld2q_dup_f64): Likewise. | |
6910 | (vld2q_dup_p64): Likewise. | |
6911 | (vld3_dup_s64): Likewise. | |
6912 | (vld3_dup_u64): Likewise. | |
6913 | (vld3_dup_f64): Likewise. | |
6914 | (vld3_dup_s8): Likewise. | |
6915 | (vld3_dup_p8): Likewise. | |
6916 | (vld3_dup_s16): Likewise. | |
6917 | (vld3_dup_p16): Likewise. | |
6918 | (vld3_dup_s32): Likewise. | |
6919 | (vld3_dup_u8): Likewise. | |
6920 | (vld3_dup_u16): Likewise. | |
6921 | (vld3_dup_u32): Likewise. | |
6922 | (vld3_dup_f16): Likewise. | |
6923 | (vld3_dup_f32): Likewise. | |
6924 | (vld3_dup_p64): Likewise. | |
6925 | (vld3q_dup_s8): Likewise. | |
6926 | (vld3q_dup_p8): Likewise. | |
6927 | (vld3q_dup_s16): Likewise. | |
6928 | (vld3q_dup_p16): Likewise. | |
6929 | (vld3q_dup_s32): Likewise. | |
6930 | (vld3q_dup_s64): Likewise. | |
6931 | (vld3q_dup_u8): Likewise. | |
6932 | (vld3q_dup_u16): Likewise. | |
6933 | (vld3q_dup_u32): Likewise. | |
6934 | (vld3q_dup_u64): Likewise. | |
6935 | (vld3q_dup_f16): Likewise. | |
6936 | (vld3q_dup_f32): Likewise. | |
6937 | (vld3q_dup_f64): Likewise. | |
6938 | (vld3q_dup_p64): Likewise. | |
6939 | (vld4_dup_s64): Likewise. | |
6940 | (vld4_dup_u64): Likewise. | |
6941 | (vld4_dup_f64): Likewise. | |
6942 | (vld4_dup_s8): Likewise. | |
6943 | (vld4_dup_p8): Likewise. | |
6944 | (vld4_dup_s16): Likewise. | |
6945 | (vld4_dup_p16): Likewise. | |
6946 | (vld4_dup_s32): Likewise. | |
6947 | (vld4_dup_u8): Likewise. | |
6948 | (vld4_dup_u16): Likewise. | |
6949 | (vld4_dup_u32): Likewise. | |
6950 | (vld4_dup_f16): Likewise. | |
6951 | (vld4_dup_f32): Likewise. | |
6952 | (vld4_dup_p64): Likewise. | |
6953 | (vld4q_dup_s8): Likewise. | |
6954 | (vld4q_dup_p8): Likewise. | |
6955 | (vld4q_dup_s16): Likewise. | |
6956 | (vld4q_dup_p16): Likewise. | |
6957 | (vld4q_dup_s32): Likewise. | |
6958 | (vld4q_dup_s64): Likewise. | |
6959 | (vld4q_dup_u8): Likewise. | |
6960 | (vld4q_dup_u16): Likewise. | |
6961 | (vld4q_dup_u32): Likewise. | |
6962 | (vld4q_dup_u64): Likewise. | |
6963 | (vld4q_dup_f16): Likewise. | |
6964 | (vld4q_dup_f32): Likewise. | |
6965 | (vld4q_dup_f64): Likewise. | |
6966 | (vld4q_dup_p64): Likewise. | |
6967 | (vld2_lane_u8): Likewise. | |
6968 | (vld2_lane_u16): Likewise. | |
6969 | (vld2_lane_u32): Likewise. | |
6970 | (vld2_lane_u64): Likewise. | |
6971 | (vld2_lane_s8): Likewise. | |
6972 | (vld2_lane_s16): Likewise. | |
6973 | (vld2_lane_s32): Likewise. | |
6974 | (vld2_lane_s64): Likewise. | |
6975 | (vld2_lane_f16): Likewise. | |
6976 | (vld2_lane_f32): Likewise. | |
6977 | (vld2_lane_f64): Likewise. | |
6978 | (vld2_lane_p8): Likewise. | |
6979 | (vld2_lane_p16): Likewise. | |
6980 | (vld2_lane_p64): Likewise. | |
6981 | (vld2q_lane_u8): Likewise. | |
6982 | (vld2q_lane_u16): Likewise. | |
6983 | (vld2q_lane_u32): Likewise. | |
6984 | (vld2q_lane_u64): Likewise. | |
6985 | (vld2q_lane_s8): Likewise. | |
6986 | (vld2q_lane_s16): Likewise. | |
6987 | (vld2q_lane_s32): Likewise. | |
6988 | (vld2q_lane_s64): Likewise. | |
6989 | (vld2q_lane_f16): Likewise. | |
6990 | (vld2q_lane_f32): Likewise. | |
6991 | (vld2q_lane_f64): Likewise. | |
6992 | (vld2q_lane_p8): Likewise. | |
6993 | (vld2q_lane_p16): Likewise. | |
6994 | (vld2q_lane_p64): Likewise. | |
6995 | (vld3_lane_u8): Likewise. | |
6996 | (vld3_lane_u16): Likewise. | |
6997 | (vld3_lane_u32): Likewise. | |
6998 | (vld3_lane_u64): Likewise. | |
6999 | (vld3_lane_s8): Likewise. | |
7000 | (vld3_lane_s16): Likewise. | |
7001 | (vld3_lane_s32): Likewise. | |
7002 | (vld3_lane_s64): Likewise. | |
7003 | (vld3_lane_f16): Likewise. | |
7004 | (vld3_lane_f32): Likewise. | |
7005 | (vld3_lane_f64): Likewise. | |
7006 | (vld3_lane_p8): Likewise. | |
7007 | (vld3_lane_p16): Likewise. | |
7008 | (vld3_lane_p64): Likewise. | |
7009 | (vld3q_lane_u8): Likewise. | |
7010 | (vld3q_lane_u16): Likewise. | |
7011 | (vld3q_lane_u32): Likewise. | |
7012 | (vld3q_lane_u64): Likewise. | |
7013 | (vld3q_lane_s8): Likewise. | |
7014 | (vld3q_lane_s16): Likewise. | |
7015 | (vld3q_lane_s32): Likewise. | |
7016 | (vld3q_lane_s64): Likewise. | |
7017 | (vld3q_lane_f16): Likewise. | |
7018 | (vld3q_lane_f32): Likewise. | |
7019 | (vld3q_lane_f64): Likewise. | |
7020 | (vld3q_lane_p8): Likewise. | |
7021 | (vld3q_lane_p16): Likewise. | |
7022 | (vld3q_lane_p64): Likewise. | |
7023 | (vld4_lane_u8): Likewise. | |
7024 | (vld4_lane_u16): Likewise. | |
7025 | (vld4_lane_u32): Likewise. | |
7026 | (vld4_lane_u64): Likewise. | |
7027 | (vld4_lane_s8): Likewise. | |
7028 | (vld4_lane_s16): Likewise. | |
7029 | (vld4_lane_s32): Likewise. | |
7030 | (vld4_lane_s64): Likewise. | |
7031 | (vld4_lane_f16): Likewise. | |
7032 | (vld4_lane_f32): Likewise. | |
7033 | (vld4_lane_f64): Likewise. | |
7034 | (vld4_lane_p8): Likewise. | |
7035 | (vld4_lane_p16): Likewise. | |
7036 | (vld4_lane_p64): Likewise. | |
7037 | (vld4q_lane_u8): Likewise. | |
7038 | (vld4q_lane_u16): Likewise. | |
7039 | (vld4q_lane_u32): Likewise. | |
7040 | (vld4q_lane_u64): Likewise. | |
7041 | (vld4q_lane_s8): Likewise. | |
7042 | (vld4q_lane_s16): Likewise. | |
7043 | (vld4q_lane_s32): Likewise. | |
7044 | (vld4q_lane_s64): Likewise. | |
7045 | (vld4q_lane_f16): Likewise. | |
7046 | (vld4q_lane_f32): Likewise. | |
7047 | (vld4q_lane_f64): Likewise. | |
7048 | (vld4q_lane_p8): Likewise. | |
7049 | (vld4q_lane_p16): Likewise. | |
7050 | (vld4q_lane_p64): Likewise. | |
7051 | (vqtbl2_s8): Likewise. | |
7052 | (vqtbl2_u8): Likewise. | |
7053 | (vqtbl2_p8): Likewise. | |
7054 | (vqtbl2q_s8): Likewise. | |
7055 | (vqtbl2q_u8): Likewise. | |
7056 | (vqtbl2q_p8): Likewise. | |
7057 | (vqtbl3_s8): Likewise. | |
7058 | (vqtbl3_u8): Likewise. | |
7059 | (vqtbl3_p8): Likewise. | |
7060 | (vqtbl3q_s8): Likewise. | |
7061 | (vqtbl3q_u8): Likewise. | |
7062 | (vqtbl3q_p8): Likewise. | |
7063 | (vqtbl4_s8): Likewise. | |
7064 | (vqtbl4_u8): Likewise. | |
7065 | (vqtbl4_p8): Likewise. | |
7066 | (vqtbl4q_s8): Likewise. | |
7067 | (vqtbl4q_u8): Likewise. | |
7068 | (vqtbl4q_p8): Likewise. | |
7069 | (vqtbx2_s8): Likewise. | |
7070 | (vqtbx2_u8): Likewise. | |
7071 | (vqtbx2_p8): Likewise. | |
7072 | (vqtbx2q_s8): Likewise. | |
7073 | (vqtbx2q_u8): Likewise. | |
7074 | (vqtbx2q_p8): Likewise. | |
7075 | (vqtbx3_s8): Likewise. | |
7076 | (vqtbx3_u8): Likewise. | |
7077 | (vqtbx3_p8): Likewise. | |
7078 | (vqtbx3q_s8): Likewise. | |
7079 | (vqtbx3q_u8): Likewise. | |
7080 | (vqtbx3q_p8): Likewise. | |
7081 | (vqtbx4_s8): Likewise. | |
7082 | (vqtbx4_u8): Likewise. | |
7083 | (vqtbx4_p8): Likewise. | |
7084 | (vqtbx4q_s8): Likewise. | |
7085 | (vqtbx4q_u8): Likewise. | |
7086 | (vqtbx4q_p8): Likewise. | |
7087 | (vst1_s64_x2): Likewise. | |
7088 | (vst1_u64_x2): Likewise. | |
7089 | (vst1_f64_x2): Likewise. | |
7090 | (vst1_s8_x2): Likewise. | |
7091 | (vst1_p8_x2): Likewise. | |
7092 | (vst1_s16_x2): Likewise. | |
7093 | (vst1_p16_x2): Likewise. | |
7094 | (vst1_s32_x2): Likewise. | |
7095 | (vst1_u8_x2): Likewise. | |
7096 | (vst1_u16_x2): Likewise. | |
7097 | (vst1_u32_x2): Likewise. | |
7098 | (vst1_f16_x2): Likewise. | |
7099 | (vst1_f32_x2): Likewise. | |
7100 | (vst1_p64_x2): Likewise. | |
7101 | (vst1q_s8_x2): Likewise. | |
7102 | (vst1q_p8_x2): Likewise. | |
7103 | (vst1q_s16_x2): Likewise. | |
7104 | (vst1q_p16_x2): Likewise. | |
7105 | (vst1q_s32_x2): Likewise. | |
7106 | (vst1q_s64_x2): Likewise. | |
7107 | (vst1q_u8_x2): Likewise. | |
7108 | (vst1q_u16_x2): Likewise. | |
7109 | (vst1q_u32_x2): Likewise. | |
7110 | (vst1q_u64_x2): Likewise. | |
7111 | (vst1q_f16_x2): Likewise. | |
7112 | (vst1q_f32_x2): Likewise. | |
7113 | (vst1q_f64_x2): Likewise. | |
7114 | (vst1q_p64_x2): Likewise. | |
7115 | (vst1_s64_x3): Likewise. | |
7116 | (vst1_u64_x3): Likewise. | |
7117 | (vst1_f64_x3): Likewise. | |
7118 | (vst1_s8_x3): Likewise. | |
7119 | (vst1_p8_x3): Likewise. | |
7120 | (vst1_s16_x3): Likewise. | |
7121 | (vst1_p16_x3): Likewise. | |
7122 | (vst1_s32_x3): Likewise. | |
7123 | (vst1_u8_x3): Likewise. | |
7124 | (vst1_u16_x3): Likewise. | |
7125 | (vst1_u32_x3): Likewise. | |
7126 | (vst1_f16_x3): Likewise. | |
7127 | (vst1_f32_x3): Likewise. | |
7128 | (vst1_p64_x3): Likewise. | |
7129 | (vst1q_s8_x3): Likewise. | |
7130 | (vst1q_p8_x3): Likewise. | |
7131 | (vst1q_s16_x3): Likewise. | |
7132 | (vst1q_p16_x3): Likewise. | |
7133 | (vst1q_s32_x3): Likewise. | |
7134 | (vst1q_s64_x3): Likewise. | |
7135 | (vst1q_u8_x3): Likewise. | |
7136 | (vst1q_u16_x3): Likewise. | |
7137 | (vst1q_u32_x3): Likewise. | |
7138 | (vst1q_u64_x3): Likewise. | |
7139 | (vst1q_f16_x3): Likewise. | |
7140 | (vst1q_f32_x3): Likewise. | |
7141 | (vst1q_f64_x3): Likewise. | |
7142 | (vst1q_p64_x3): Likewise. | |
7143 | (vst1_s8_x4): Likewise. | |
7144 | (vst1q_s8_x4): Likewise. | |
7145 | (vst1_s16_x4): Likewise. | |
7146 | (vst1q_s16_x4): Likewise. | |
7147 | (vst1_s32_x4): Likewise. | |
7148 | (vst1q_s32_x4): Likewise. | |
7149 | (vst1_u8_x4): Likewise. | |
7150 | (vst1q_u8_x4): Likewise. | |
7151 | (vst1_u16_x4): Likewise. | |
7152 | (vst1q_u16_x4): Likewise. | |
7153 | (vst1_u32_x4): Likewise. | |
7154 | (vst1q_u32_x4): Likewise. | |
7155 | (vst1_f16_x4): Likewise. | |
7156 | (vst1q_f16_x4): Likewise. | |
7157 | (vst1_f32_x4): Likewise. | |
7158 | (vst1q_f32_x4): Likewise. | |
7159 | (vst1_p8_x4): Likewise. | |
7160 | (vst1q_p8_x4): Likewise. | |
7161 | (vst1_p16_x4): Likewise. | |
7162 | (vst1q_p16_x4): Likewise. | |
7163 | (vst1_s64_x4): Likewise. | |
7164 | (vst1_u64_x4): Likewise. | |
7165 | (vst1_p64_x4): Likewise. | |
7166 | (vst1q_s64_x4): Likewise. | |
7167 | (vst1q_u64_x4): Likewise. | |
7168 | (vst1q_p64_x4): Likewise. | |
7169 | (vst1_f64_x4): Likewise. | |
7170 | (vst1q_f64_x4): Likewise. | |
7171 | (vst2_s64): Likewise. | |
7172 | (vst2_u64): Likewise. | |
7173 | (vst2_f64): Likewise. | |
7174 | (vst2_s8): Likewise. | |
7175 | (vst2_p8): Likewise. | |
7176 | (vst2_s16): Likewise. | |
7177 | (vst2_p16): Likewise. | |
7178 | (vst2_s32): Likewise. | |
7179 | (vst2_u8): Likewise. | |
7180 | (vst2_u16): Likewise. | |
7181 | (vst2_u32): Likewise. | |
7182 | (vst2_f16): Likewise. | |
7183 | (vst2_f32): Likewise. | |
7184 | (vst2_p64): Likewise. | |
7185 | (vst2q_s8): Likewise. | |
7186 | (vst2q_p8): Likewise. | |
7187 | (vst2q_s16): Likewise. | |
7188 | (vst2q_p16): Likewise. | |
7189 | (vst2q_s32): Likewise. | |
7190 | (vst2q_s64): Likewise. | |
7191 | (vst2q_u8): Likewise. | |
7192 | (vst2q_u16): Likewise. | |
7193 | (vst2q_u32): Likewise. | |
7194 | (vst2q_u64): Likewise. | |
7195 | (vst2q_f16): Likewise. | |
7196 | (vst2q_f32): Likewise. | |
7197 | (vst2q_f64): Likewise. | |
7198 | (vst2q_p64): Likewise. | |
7199 | (vst3_s64): Likewise. | |
7200 | (vst3_u64): Likewise. | |
7201 | (vst3_f64): Likewise. | |
7202 | (vst3_s8): Likewise. | |
7203 | (vst3_p8): Likewise. | |
7204 | (vst3_s16): Likewise. | |
7205 | (vst3_p16): Likewise. | |
7206 | (vst3_s32): Likewise. | |
7207 | (vst3_u8): Likewise. | |
7208 | (vst3_u16): Likewise. | |
7209 | (vst3_u32): Likewise. | |
7210 | (vst3_f16): Likewise. | |
7211 | (vst3_f32): Likewise. | |
7212 | (vst3_p64): Likewise. | |
7213 | (vst3q_s8): Likewise. | |
7214 | (vst3q_p8): Likewise. | |
7215 | (vst3q_s16): Likewise. | |
7216 | (vst3q_p16): Likewise. | |
7217 | (vst3q_s32): Likewise. | |
7218 | (vst3q_s64): Likewise. | |
7219 | (vst3q_u8): Likewise. | |
7220 | (vst3q_u16): Likewise. | |
7221 | (vst3q_u32): Likewise. | |
7222 | (vst3q_u64): Likewise. | |
7223 | (vst3q_f16): Likewise. | |
7224 | (vst3q_f32): Likewise. | |
7225 | (vst3q_f64): Likewise. | |
7226 | (vst3q_p64): Likewise. | |
7227 | (vst4_s64): Likewise. | |
7228 | (vst4_u64): Likewise. | |
7229 | (vst4_f64): Likewise. | |
7230 | (vst4_s8): Likewise. | |
7231 | (vst4_p8): Likewise. | |
7232 | (vst4_s16): Likewise. | |
7233 | (vst4_p16): Likewise. | |
7234 | (vst4_s32): Likewise. | |
7235 | (vst4_u8): Likewise. | |
7236 | (vst4_u16): Likewise. | |
7237 | (vst4_u32): Likewise. | |
7238 | (vst4_f16): Likewise. | |
7239 | (vst4_f32): Likewise. | |
7240 | (vst4_p64): Likewise. | |
7241 | (vst4q_s8): Likewise. | |
7242 | (vst4q_p8): Likewise. | |
7243 | (vst4q_s16): Likewise. | |
7244 | (vst4q_p16): Likewise. | |
7245 | (vst4q_s32): Likewise. | |
7246 | (vst4q_s64): Likewise. | |
7247 | (vst4q_u8): Likewise. | |
7248 | (vst4q_u16): Likewise. | |
7249 | (vst4q_u32): Likewise. | |
7250 | (vst4q_u64): Likewise. | |
7251 | (vst4q_f16): Likewise. | |
7252 | (vst4q_f32): Likewise. | |
7253 | (vst4q_f64): Likewise. | |
7254 | (vst4q_p64): Likewise. | |
7255 | (vtbx4_s8): Likewise. | |
7256 | (vtbx4_u8): Likewise. | |
7257 | (vtbx4_p8): Likewise. | |
7258 | (vld1_bf16_x2): Likewise. | |
7259 | (vld1q_bf16_x2): Likewise. | |
7260 | (vld1_bf16_x3): Likewise. | |
7261 | (vld1q_bf16_x3): Likewise. | |
7262 | (vld1_bf16_x4): Likewise. | |
7263 | (vld1q_bf16_x4): Likewise. | |
7264 | (vld2_bf16): Likewise. | |
7265 | (vld2q_bf16): Likewise. | |
7266 | (vld2_dup_bf16): Likewise. | |
7267 | (vld2q_dup_bf16): Likewise. | |
7268 | (vld3_bf16): Likewise. | |
7269 | (vld3q_bf16): Likewise. | |
7270 | (vld3_dup_bf16): Likewise. | |
7271 | (vld3q_dup_bf16): Likewise. | |
7272 | (vld4_bf16): Likewise. | |
7273 | (vld4q_bf16): Likewise. | |
7274 | (vld4_dup_bf16): Likewise. | |
7275 | (vld4q_dup_bf16): Likewise. | |
7276 | (vst1_bf16_x2): Likewise. | |
7277 | (vst1q_bf16_x2): Likewise. | |
7278 | (vst1_bf16_x3): Likewise. | |
7279 | (vst1q_bf16_x3): Likewise. | |
7280 | (vst1_bf16_x4): Likewise. | |
7281 | (vst1q_bf16_x4): Likewise. | |
7282 | (vst2_bf16): Likewise. | |
7283 | (vst2q_bf16): Likewise. | |
7284 | (vst3_bf16): Likewise. | |
7285 | (vst3q_bf16): Likewise. | |
7286 | (vst4_bf16): Likewise. | |
7287 | (vst4q_bf16): Likewise. | |
7288 | (vld2_lane_bf16): Likewise. | |
7289 | (vld2q_lane_bf16): Likewise. | |
7290 | (vld3_lane_bf16): Likewise. | |
7291 | (vld3q_lane_bf16): Likewise. | |
7292 | (vld4_lane_bf16): Likewise. | |
7293 | (vld4q_lane_bf16): Likewise. | |
7294 | (vst2_lane_bf16): Likewise. | |
7295 | (vst2q_lane_bf16): Likewise. | |
7296 | (vst3_lane_bf16): Likewise. | |
7297 | (vst3q_lane_bf16): Likewise. | |
7298 | (vst4_lane_bf16): Likewise. | |
7299 | (vst4q_lane_bf16): Likewise. | |
7300 | * config/aarch64/geniterators.sh: Modify iterator regex to | |
7301 | match new vector-tuple modes. | |
7302 | * config/aarch64/iterators.md (insn_count): Extend mode | |
7303 | attribute with vector-tuple type information. | |
7304 | (nregs): Likewise. | |
7305 | (Vendreg): Likewise. | |
7306 | (Vetype): Likewise. | |
7307 | (Vtype): Likewise. | |
7308 | (VSTRUCT_2D): New mode iterator. | |
7309 | (VSTRUCT_2DNX): Likewise. | |
7310 | (VSTRUCT_2DX): Likewise. | |
7311 | (VSTRUCT_2Q): Likewise. | |
7312 | (VSTRUCT_2QD): Likewise. | |
7313 | (VSTRUCT_3D): Likewise. | |
7314 | (VSTRUCT_3DNX): Likewise. | |
7315 | (VSTRUCT_3DX): Likewise. | |
7316 | (VSTRUCT_3Q): Likewise. | |
7317 | (VSTRUCT_3QD): Likewise. | |
7318 | (VSTRUCT_4D): Likewise. | |
7319 | (VSTRUCT_4DNX): Likewise. | |
7320 | (VSTRUCT_4DX): Likewise. | |
7321 | (VSTRUCT_4Q): Likewise. | |
7322 | (VSTRUCT_4QD): Likewise. | |
7323 | (VSTRUCT_D): Likewise. | |
7324 | (VSTRUCT_Q): Likewise. | |
7325 | (VSTRUCT_QD): Likewise. | |
7326 | (VSTRUCT_ELT): New mode attribute. | |
7327 | (vstruct_elt): Likewise. | |
7328 | * genmodes.c (VECTOR_MODE): Add default prefix and order | |
7329 | parameters. | |
7330 | (VECTOR_MODE_WITH_PREFIX): Define. | |
7331 | (make_vector_mode): Add mode prefix and order parameters. | |
7332 | ||
7333 | 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> | |
7334 | ||
7335 | * expmed.c (extract_bit_field_1): Ensure modes are tieable. | |
7336 | ||
7337 | 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> | |
7338 | ||
7339 | * expr.c (emit_group_load_1): Remove historic workaround. | |
7340 | ||
7341 | 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> | |
7342 | ||
7343 | * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): | |
7344 | Factor out main loop to... | |
7345 | (aarch64_init_simd_builtin_functions): This new function. | |
7346 | (register_tuple_type): Define. | |
7347 | (aarch64_scalar_builtin_type_p): Define. | |
7348 | (handle_arm_neon_h): Define. | |
7349 | * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): Handle | |
7350 | pragma for arm_neon.h. | |
7351 | * config/aarch64/aarch64-protos.h (aarch64_advsimd_struct_mode_p): | |
7352 | Declare. | |
7353 | (handle_arm_neon_h): Likewise. | |
7354 | * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): | |
7355 | Remove static modifier. | |
7356 | * config/aarch64/arm_neon.h (target): Remove Neon vector | |
7357 | structure type definitions. | |
7358 | ||
7359 | 2021-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7360 | ||
7361 | PR tree-optimization/102943 | |
7362 | * gimple-range-path.cc (path_range_query::range_on_path_entry): | |
7363 | Prefer range_of_expr unless there are no statements in the BB. | |
7364 | ||
7365 | 2021-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7366 | ||
7367 | PR tree-optimization/102943 | |
7368 | * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): | |
7369 | Avoid duplicate calculation of paths. | |
7370 | ||
7371 | 2021-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7372 | ||
7373 | PR tree-optimization/102943 | |
7374 | * gimple-range-path.cc (path_range_query::compute_phi_relations): | |
7375 | Only compute relations for SSA names in the import list. | |
7376 | (path_range_query::compute_outgoing_relations): Same. | |
7377 | * gimple-range-path.h (path_range_query::import_p): New. | |
7378 | ||
7379 | 2021-11-04 Richard Biener <rguenther@suse.de> | |
7380 | ||
7381 | PR rtl-optimization/103075 | |
7382 | * simplify-rtx.c (exact_int_to_float_conversion_p): Return | |
7383 | false for a VOIDmode operand. | |
7384 | ||
7385 | 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> | |
7386 | ||
7387 | * config/aarch64/aarch64.c (aarch64_vector_costs): Make member | |
7388 | variables private and add "m_" to their names. Remove is_loop. | |
7389 | (aarch64_record_potential_advsimd_unrolling): Replace with... | |
7390 | (aarch64_vector_costs::record_potential_advsimd_unrolling): ...this. | |
7391 | (aarch64_analyze_loop_vinfo): Replace with... | |
7392 | (aarch64_vector_costs::analyze_loop_vinfo): ...this. | |
7393 | Move initialization of (m_)vec_flags to add_stmt_cost. | |
7394 | (aarch64_analyze_bb_vinfo): Delete. | |
7395 | (aarch64_count_ops): Replace with... | |
7396 | (aarch64_vector_costs::count_ops): ...this. | |
7397 | (aarch64_vector_costs::add_stmt_cost): Set m_vec_flags, | |
7398 | using m_costing_for_scalar to test whether we're costing | |
7399 | scalar or vector code. | |
7400 | (aarch64_adjust_body_cost_sve): Replace with... | |
7401 | (aarch64_vector_costs::adjust_body_cost_sve): ...this. | |
7402 | (aarch64_adjust_body_cost): Replace with... | |
7403 | (aarch64_vector_costs::adjust_body_cost): ...this. | |
7404 | (aarch64_vector_costs::finish_cost): Use m_vinfo instead of is_loop. | |
7405 | ||
7406 | 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> | |
7407 | ||
7408 | * target.def (targetm.vectorize.init_cost): Replace with... | |
7409 | (targetm.vectorize.create_costs): ...this. | |
7410 | (targetm.vectorize.add_stmt_cost): Delete. | |
7411 | (targetm.vectorize.finish_cost): Likewise. | |
7412 | (targetm.vectorize.destroy_cost_data): Likewise. | |
7413 | * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): Replace with... | |
7414 | (TARGET_VECTORIZE_CREATE_COSTS): ...this. | |
7415 | (TARGET_VECTORIZE_ADD_STMT_COST): Delete. | |
7416 | (TARGET_VECTORIZE_FINISH_COST): Likewise. | |
7417 | (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. | |
7418 | * doc/tm.texi: Regenerate. | |
7419 | * tree-vectorizer.h (vec_info::vec_info): Remove target_cost_data | |
7420 | parameter. | |
7421 | (vec_info::target_cost_data): Change from a void * to a vector_costs *. | |
7422 | (vector_costs): New class. | |
7423 | (init_cost): Take a vec_info and return a vector_costs. | |
7424 | (dump_stmt_cost): Remove data parameter. | |
7425 | (add_stmt_cost): Replace vinfo and data parameters with a vector_costs. | |
7426 | (add_stmt_costs): Likewise. | |
7427 | (finish_cost): Replace data parameter with a vector_costs. | |
7428 | (destroy_cost_data): Delete. | |
7429 | * tree-vectorizer.c (dump_stmt_cost): Remove data argument and | |
7430 | don't print it. | |
7431 | (vec_info::vec_info): Remove the target_cost_data parameter and | |
7432 | initialize the member variable to null instead. | |
7433 | (vec_info::~vec_info): Delete target_cost_data instead of calling | |
7434 | destroy_cost_data. | |
7435 | (vector_costs::add_stmt_cost): New function. | |
7436 | (vector_costs::finish_cost): Likewise. | |
7437 | (vector_costs::record_stmt_cost): Likewise. | |
7438 | (vector_costs::adjust_cost_for_freq): Likewise. | |
7439 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update | |
7440 | call to vec_info::vec_info. | |
7441 | (vect_compute_single_scalar_iteration_cost): Update after above | |
7442 | changes to costing interface. | |
7443 | (vect_analyze_loop_operations): Likewise. | |
7444 | (vect_estimate_min_profitable_iters): Likewise. | |
7445 | (vect_analyze_loop_2): Initialize LOOP_VINFO_TARGET_COST_DATA | |
7446 | at the start_over point, where it needs to be recreated after | |
7447 | trying without slp. Update retry code accordingly. | |
7448 | * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Update call | |
7449 | to vec_info::vec_info. | |
7450 | (vect_slp_analyze_operation): Update after above changes to costing | |
7451 | interface. | |
7452 | (vect_bb_vectorization_profitable_p): Likewise. | |
7453 | * targhooks.h (default_init_cost): Replace with... | |
7454 | (default_vectorize_create_costs): ...this. | |
7455 | (default_add_stmt_cost): Delete. | |
7456 | (default_finish_cost, default_destroy_cost_data): Likewise. | |
7457 | * targhooks.c (default_init_cost): Replace with... | |
7458 | (default_vectorize_create_costs): ...this. | |
7459 | (default_add_stmt_cost): Delete, moving logic to vector_costs instead. | |
7460 | (default_finish_cost, default_destroy_cost_data): Delete. | |
7461 | * config/aarch64/aarch64.c (aarch64_vector_costs): Inherit from | |
7462 | vector_costs. Add a constructor. | |
7463 | (aarch64_init_cost): Replace with... | |
7464 | (aarch64_vectorize_create_costs): ...this. | |
7465 | (aarch64_add_stmt_cost): Replace with... | |
7466 | (aarch64_vector_costs::add_stmt_cost): ...this. Use record_stmt_cost | |
7467 | to adjust the cost for inner loops. | |
7468 | (aarch64_finish_cost): Replace with... | |
7469 | (aarch64_vector_costs::finish_cost): ...this. | |
7470 | (aarch64_destroy_cost_data): Delete. | |
7471 | (TARGET_VECTORIZE_INIT_COST): Replace with... | |
7472 | (TARGET_VECTORIZE_CREATE_COSTS): ...this. | |
7473 | (TARGET_VECTORIZE_ADD_STMT_COST): Delete. | |
7474 | (TARGET_VECTORIZE_FINISH_COST): Likewise. | |
7475 | (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. | |
7476 | * config/i386/i386.c (ix86_vector_costs): New structure. | |
7477 | (ix86_init_cost): Replace with... | |
7478 | (ix86_vectorize_create_costs): ...this. | |
7479 | (ix86_add_stmt_cost): Replace with... | |
7480 | (ix86_vector_costs::add_stmt_cost): ...this. Use adjust_cost_for_freq | |
7481 | to adjust the cost for inner loops. | |
7482 | (ix86_finish_cost, ix86_destroy_cost_data): Delete. | |
7483 | (TARGET_VECTORIZE_INIT_COST): Replace with... | |
7484 | (TARGET_VECTORIZE_CREATE_COSTS): ...this. | |
7485 | (TARGET_VECTORIZE_ADD_STMT_COST): Delete. | |
7486 | (TARGET_VECTORIZE_FINISH_COST): Likewise. | |
7487 | (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. | |
7488 | * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): Replace with... | |
7489 | (TARGET_VECTORIZE_CREATE_COSTS): ...this. | |
7490 | (TARGET_VECTORIZE_ADD_STMT_COST): Delete. | |
7491 | (TARGET_VECTORIZE_FINISH_COST): Likewise. | |
7492 | (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. | |
7493 | (rs6000_cost_data): Inherit from vector_costs. | |
7494 | Add a constructor. Drop loop_info, cost and costing_for_scalar | |
7495 | in favor of the corresponding vector_costs member variables. | |
7496 | Add "m_" to the names of the remaining member variables and | |
7497 | initialize them. | |
7498 | (rs6000_density_test): Replace with... | |
7499 | (rs6000_cost_data::density_test): ...this. | |
7500 | (rs6000_init_cost): Replace with... | |
7501 | (rs6000_vectorize_create_costs): ...this. | |
7502 | (rs6000_update_target_cost_per_stmt): Replace with... | |
7503 | (rs6000_cost_data::update_target_cost_per_stmt): ...this. | |
7504 | (rs6000_add_stmt_cost): Replace with... | |
7505 | (rs6000_cost_data::add_stmt_cost): ...this. Use adjust_cost_for_freq | |
7506 | to adjust the cost for inner loops. | |
7507 | (rs6000_adjust_vect_cost_per_loop): Replace with... | |
7508 | (rs6000_cost_data::adjust_vect_cost_per_loop): ...this. | |
7509 | (rs6000_finish_cost): Replace with... | |
7510 | (rs6000_cost_data::finish_cost): ...this. Group loop code | |
7511 | into a single if statement and pass the loop_vinfo down to | |
7512 | subroutines. | |
7513 | (rs6000_destroy_cost_data): Delete. | |
7514 | ||
7515 | 2021-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7516 | ||
7517 | PR tree-optimization/103062 | |
7518 | PR tree-optimization/103062 | |
7519 | * value-pointer-equiv.cc (ssa_equiv_stack::ssa_equiv_stack): | |
7520 | Increase size of allocation by 1. | |
7521 | (ssa_equiv_stack::push_replacement): Grow as needed. | |
7522 | (ssa_equiv_stack::get_replacement): Same. | |
7523 | (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. | |
7524 | (pointer_equiv_analyzer::~pointer_equiv_analyzer): Remove delete. | |
7525 | (pointer_equiv_analyzer::set_global_equiv): Grow as needed. | |
7526 | (pointer_equiv_analyzer::get_equiv): Same. | |
7527 | (pointer_equiv_analyzer::get_equiv_expr): Remove const. | |
7528 | * value-pointer-equiv.h (class pointer_equiv_analyzer): Remove | |
7529 | const markers. Use auto_vec instead of tree *. | |
7530 | ||
7531 | 2021-11-04 Richard Biener <rguenther@suse.de> | |
7532 | ||
7533 | * tree-ssa-sccvn.c (vn_nary_op_insert_into): Remove always | |
7534 | true parameter and inline valueization. | |
7535 | (vn_nary_op_lookup_1): Inline valueization from ... | |
7536 | (vn_nary_op_compute_hash): ... here and remove it here. | |
7537 | * tree-ssa-pre.c (phi_translate_1): Do not valueize | |
7538 | before vn_nary_lookup_pieces. | |
7539 | (get_representative_for): Mark created SSA representatives | |
7540 | as visited. | |
7541 | ||
7542 | 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> | |
7543 | ||
7544 | * simplify-rtx.c (simplify_context::simplify_gen_vec_select): Assert | |
7545 | that the operand has a vector mode. Use subreg_lowpart_offset | |
7546 | to test whether an index corresponds to the low part. | |
7547 | ||
7548 | 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> | |
7549 | ||
7550 | * read-rtl.c: Remove dead !GENERATOR_FILE block. | |
7551 | * read-rtl-function.c (function_reader::consolidate_singletons): | |
7552 | Generate canonical CONST_VECTORs. | |
7553 | ||
7554 | 2021-11-04 liuhongt <hongtao.liu@intel.com> | |
7555 | ||
7556 | PR target/101989 | |
7557 | * config/i386/predicates.md (reg_or_notreg_operand): Rename to .. | |
7558 | (regmem_or_bitnot_regmem_operand): .. and extend to handle | |
7559 | memory_operand. | |
7560 | * config/i386/sse.md (*<avx512>_vpternlog<mode>_1): Force_reg | |
7561 | the operands which are required to be register_operand. | |
7562 | (*<avx512>_vpternlog<mode>_2): Ditto. | |
7563 | (*<avx512>_vpternlog<mode>_3): Ditto. | |
7564 | (*<avx512>_vternlog<mode>_all): Disallow embeded broadcast for | |
7565 | vector HFmodes since it's not a real AVX512FP16 instruction. | |
7566 | ||
7567 | 2021-11-04 liuhongt <hongtao.liu@intel.com> | |
7568 | ||
7569 | PR target/102464 | |
7570 | * match.pd: simplify (trunc)copysign((extend)a, (extend)b) to | |
7571 | .COPYSIGN (a,b) when a and b are same type as the truncation | |
7572 | type and has less precision than extend type. | |
7573 | ||
7574 | 2021-11-04 Richard Biener <rguenther@suse.de> | |
7575 | ||
7576 | * doc/generic.texi: Update TARGET_MEM_REF and MEM_REF | |
7577 | documentation. | |
7578 | ||
7579 | 2021-11-04 Hongyu Wang <hongyu.wang@intel.com> | |
7580 | ||
7581 | * config/i386/sse.md (VI2_AVX512VNNIBW): New mode iterator. | |
7582 | (VI1_AVX512VNNI): Likewise. | |
7583 | (SDOT_VPDP_SUF): New mode_attr. | |
7584 | (VI1SI): Likewise. | |
7585 | (vi1si): Likewise. | |
7586 | (sdot_prod<mode>): Use VI2_AVX512F iterator, expand to | |
7587 | vpdpwssd when VNNI targets available. | |
7588 | (usdot_prod<mode>): New expander for vector QImode. | |
7589 | ||
7590 | 2021-11-04 Hongyu Wang <hongyu.wang@intel.com> | |
7591 | ||
7592 | * config/i386/amxtileintrin.h (_tile_loadd_internal): Add | |
7593 | parentheses to base and stride. | |
7594 | (_tile_stream_loadd_internal): Likewise. | |
7595 | (_tile_stored_internal): Likewise. | |
7596 | ||
7597 | 2021-11-03 Maciej W. Rozycki <macro@embecosm.com> | |
7598 | ||
7599 | * config/riscv/riscv.c (riscv_class_max_nregs): Swap the | |
7600 | arguments to `reg_class_subset_p'. | |
7601 | ||
7602 | 2021-11-03 Joseph Myers <joseph@codesourcery.com> | |
7603 | ||
7604 | PR c/103031 | |
7605 | * fold-const.c (fold_init): New function. | |
7606 | * fold-const.h (fold_init): New prototype. | |
7607 | ||
7608 | 2021-11-03 Andrew MacLeod <amacleod@redhat.com> | |
7609 | ||
7610 | * params.opt (param_vrp2_mode): Make ranger the default for VRP2. | |
7611 | ||
7612 | 2021-11-03 Andrew MacLeod <amacleod@redhat.com> | |
7613 | ||
7614 | * gimple-range-fold.cc (fold_using_range::range_of_phi): Don't import | |
7615 | a range from edge if arg == phidef. | |
7616 | ||
7617 | 2021-11-03 Andrew MacLeod <amacleod@redhat.com> | |
7618 | ||
7619 | * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Test | |
7620 | for constant before any other processing. | |
7621 | ||
7622 | 2021-11-03 Andrew MacLeod <amacleod@redhat.com> | |
7623 | ||
7624 | * flag-types.h (RANGER_DEBUG_ALL): Fix values. | |
7625 | ||
7626 | 2021-11-03 Andrew MacLeod <amacleod@redhat.com> | |
7627 | ||
7628 | * gimple-range.cc (gimple_ranger::gimple_ranger): Initialize current_bb. | |
7629 | (gimple_ranger::range_of_expr): Pick up range_on_entry when there is | |
7630 | no explcit context and current_bb is set. | |
7631 | (gimple_ranger::fold_stmt): New. | |
7632 | * gimple-range.h (current_bb, fold_stmt): New. | |
7633 | * tree-vrp.c (rvrp_folder::fold_stmt): Call ranger's fold_stmt. | |
7634 | ||
7635 | 2021-11-03 Richard Biener <rguenther@suse.de> | |
7636 | ||
7637 | PR tree-optimization/102970 | |
7638 | * tree-ssa-pre.c (phi_translate_1): Drop clique and base | |
7639 | when translating a MEM_REF over a backedge. | |
7640 | ||
7641 | 2021-11-03 Philipp Tomsich <philipp.tomsich@vrull.eu> | |
7642 | ||
7643 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): New Ampere-1 core. | |
7644 | * config/aarch64/aarch64-tune.md: Regenerate. | |
7645 | * config/aarch64/aarch64-cost-tables.h: Add extra costs for Ampere-1. | |
7646 | * config/aarch64/aarch64.c: Add tuning structures for Ampere-1. | |
7647 | * doc/invoke.texi: Add documentation for Ampere-1 core. | |
7648 | ||
7649 | 2021-11-03 Wilco Dijkstra <wdijkstr@arm.com> | |
7650 | ||
7651 | * config/aarch64/aarch64.md (movsi): Add alternative for GOT accesses. | |
7652 | (movdi): Likewise. | |
7653 | (ldr_got_small_<mode>): Remove pattern. | |
7654 | (ldr_got_small_sidi): Likewise. | |
7655 | * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Keep | |
7656 | GOT accesses as moves. | |
7657 | (aarch64_print_operand): Correctly print got_lo12 in L specifier. | |
7658 | (aarch64_mov_operand_p): Make GOT accesses valid move operands. | |
7659 | * config/aarch64/constraints.md: Add new constraint Usw for GOT access. | |
7660 | ||
7661 | 2021-11-03 Martin Liska <mliska@suse.cz> | |
7662 | ||
7663 | * gcov.c (read_line): Remove dead variable. | |
7664 | ||
7665 | 2021-11-03 Martin Liska <mliska@suse.cz> | |
7666 | ||
7667 | PR bootstrap/102828 | |
7668 | * ipa-fnsummary.c (edge_predicate_pool): Rename predicate class to ipa_predicate. | |
7669 | (ipa_fn_summary::account_size_time): Likewise. | |
7670 | (edge_set_predicate): Likewise. | |
7671 | (set_hint_predicate): Likewise. | |
7672 | (add_freqcounting_predicate): Likewise. | |
7673 | (evaluate_conditions_for_known_args): Likewise. | |
7674 | (evaluate_properties_for_edge): Likewise. | |
7675 | (remap_freqcounting_preds_after_dup): Likewise. | |
7676 | (ipa_fn_summary_t::duplicate): Likewise. | |
7677 | (set_cond_stmt_execution_predicate): Likewise. | |
7678 | (set_switch_stmt_execution_predicate): Likewise. | |
7679 | (compute_bb_predicates): Likewise. | |
7680 | (will_be_nonconstant_expr_predicate): Likewise. | |
7681 | (will_be_nonconstant_predicate): Likewise. | |
7682 | (phi_result_unknown_predicate): Likewise. | |
7683 | (predicate_for_phi_result): Likewise. | |
7684 | (analyze_function_body): Likewise. | |
7685 | (compute_fn_summary): Likewise. | |
7686 | (summarize_calls_size_and_time): Likewise. | |
7687 | (estimate_calls_size_and_time): Likewise. | |
7688 | (ipa_call_context::estimate_size_and_time): Likewise. | |
7689 | (remap_edge_summaries): Likewise. | |
7690 | (remap_freqcounting_predicate): Likewise. | |
7691 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
7692 | (ipa_update_overall_fn_summary): Likewise. | |
7693 | (read_ipa_call_summary): Likewise. | |
7694 | (inline_read_section): Likewise. | |
7695 | * ipa-fnsummary.h (struct ipa_freqcounting_predicate): Likewise. | |
7696 | * ipa-predicate.c (predicate::add_clause): Likewise. | |
7697 | (ipa_predicate::add_clause): Likewise. | |
7698 | (predicate::or_with): Likewise. | |
7699 | (ipa_predicate::or_with): Likewise. | |
7700 | (predicate::evaluate): Likewise. | |
7701 | (ipa_predicate::evaluate): Likewise. | |
7702 | (predicate::probability): Likewise. | |
7703 | (ipa_predicate::probability): Likewise. | |
7704 | (dump_condition): Likewise. | |
7705 | (dump_clause): Likewise. | |
7706 | (predicate::dump): Likewise. | |
7707 | (ipa_predicate::dump): Likewise. | |
7708 | (predicate::debug): Likewise. | |
7709 | (ipa_predicate::debug): Likewise. | |
7710 | (predicate::remap_after_duplication): Likewise. | |
7711 | (ipa_predicate::remap_after_duplication): Likewise. | |
7712 | (predicate::remap_after_inlining): Likewise. | |
7713 | (ipa_predicate::remap_after_inlining): Likewise. | |
7714 | (predicate::stream_in): Likewise. | |
7715 | (ipa_predicate::stream_in): Likewise. | |
7716 | (predicate::stream_out): Likewise. | |
7717 | (ipa_predicate::stream_out): Likewise. | |
7718 | (add_condition): Likewise. | |
7719 | * ipa-predicate.h (class predicate): Likewise. | |
7720 | (class ipa_predicate): Likewise. | |
7721 | (add_condition): Likewise. | |
7722 | ||
7723 | 2021-11-03 Richard Biener <rguenther@suse.de> | |
7724 | ||
7725 | * bitmap.h (bitmap_bit_p): Change the return type to bool. | |
7726 | * bitmap.c (bitmap_bit_p): Likewise. | |
7727 | * sbitmap.h (bitmap_bit_p): Likewise. | |
7728 | (bitmap_set_bit): Return whether the bit changed. | |
7729 | (bitmap_clear_bit): Likewise. | |
7730 | * tree-ssa.c (verify_vssa): Make use of the changed state | |
7731 | from bitmap_set_bit. | |
7732 | ||
7733 | 2021-11-03 Richard Biener <rguenther@suse.de> | |
7734 | ||
7735 | PR middle-end/103033 | |
7736 | * internal-fn.c (expand_DEFERRED_INIT): Elide the | |
7737 | native_interpret_expr path in favor of folding the | |
7738 | VIEW_CONVERT_EXPR generated when punning the RHS. | |
7739 | ||
7740 | 2021-11-03 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
7741 | ||
7742 | * config/s390/s390.c (s390_loop_unroll_adjust): In case of early | |
7743 | exit free bbs. | |
7744 | ||
7745 | 2021-11-03 Jan Hubicka <hubicka@ucw.cz> | |
7746 | ||
7747 | PR ipa/103040 | |
7748 | * ipa-modref.c (callee_to_caller_flags): New function. | |
7749 | (modref_eaf_analysis::analyze_ssa_name): Use it. | |
7750 | (ipa_merge_modref_summary_after_inlining): Fix whitespace. | |
7751 | ||
7752 | 2021-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7753 | ||
7754 | * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Revert | |
7755 | accidental commit. | |
7756 | ||
7757 | 2021-11-02 Roger Sayle <roger@nextmovesoftware.com> | |
7758 | Uroš Bizjak <ubizjak@gmail.com> | |
7759 | ||
7760 | * config/i386/i386.md (<any_rotate>ti3): Provide expansion for | |
7761 | rotations by non-constant amounts. | |
7762 | ||
7763 | 2021-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7764 | ||
7765 | * ipa-modref.c: Fix anonymous namespace placement. | |
7766 | (class modref_eaf_analysis): New class. | |
7767 | (analyze_ssa_name_flags): Turn to ... | |
7768 | (modref_eaf_analysis::analyze_ssa_name): ... this one. | |
7769 | (merge_call_lhs_flags): Turn to ... | |
7770 | (modref_eaf_analysis::merge_call_lhs_flags): .. this one | |
7771 | (modref_eaf_analysis::merge_with_ssa_name): New member function. | |
7772 | (record_escape_points): Turn to ... | |
7773 | (modref_eaf_analysis::record_escape_points): ... this one. | |
7774 | (analyze_parms): Updat | |
7775 | (ipa_merge_modref_summary_after_inlining): Move to the end of file. | |
7776 | ||
7777 | 2021-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7778 | ||
7779 | * gimple.c (gimple_call_static_chain_flags): New function. | |
7780 | * gimple.h (gimple_call_static_chain_flags): Declare | |
7781 | * ipa-modref.c (modref_summary::modref_summary): Initialize | |
7782 | static_chain_flags. | |
7783 | (modref_summary_lto::modref_summary_lto): Likewise. | |
7784 | (modref_summary::useful_p): Test static_chain_flags. | |
7785 | (modref_summary_lto::useful_p): Likewise. | |
7786 | (struct modref_summary_lto): Add static_chain_flags. | |
7787 | (modref_summary::dump): Dump static_chain_flags. | |
7788 | (modref_summary_lto::dump): Likewise. | |
7789 | (struct escape_point): Add static_cahin_arg. | |
7790 | (analyze_ssa_name_flags): Use gimple_call_static_chain_flags. | |
7791 | (analyze_parms): Handle static chains. | |
7792 | (modref_summaries::duplicate): Duplicate static_chain_flags. | |
7793 | (modref_summaries_lto::duplicate): Likewise. | |
7794 | (modref_write): Stream static_chain_flags. | |
7795 | (read_section): Likewise. | |
7796 | (modref_merge_call_site_flags): Handle static_chain_flags. | |
7797 | * ipa-modref.h (struct modref_summary): Add static_chain_flags. | |
7798 | * tree-ssa-structalias.c (handle_rhs_call): Use | |
7799 | gimple_static_chain_flags. | |
7800 | ||
7801 | 2021-11-02 Richard Biener <rguenther@suse.de> | |
7802 | ||
7803 | PR tree-optimization/103029 | |
7804 | * tree-vect-loop-manip.c (vect_loop_versioning): Ensure | |
7805 | the PHI nodes in the loop maintain their original operand | |
7806 | order. | |
7807 | ||
7808 | 2021-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7809 | ||
7810 | * tree-core.h (EAF_NOT_RETURNED_DIRECTLY): New flag. | |
7811 | (EAF_NOREAD): Renumber. | |
7812 | * ipa-modref.c (dump_eaf_flags): Dump EAF_NOT_RETURNED_DIRECTLY. | |
7813 | (remove_useless_eaf_flags): Handle EAF_NOT_RETURNED_DIRECTLY | |
7814 | (deref_flags): Likewise. | |
7815 | (modref_lattice::init): Likewise. | |
7816 | (modref_lattice::merge): Likewise. | |
7817 | (merge_call_lhs_flags): Likewise. | |
7818 | (analyze_ssa_name_flags): Likewise. | |
7819 | (modref_merge_call_site_flags): Likewise. | |
7820 | * tree-ssa-structalias.c (handle_call_arg): Likewise. | |
7821 | ||
7822 | 2021-11-02 Maciej W. Rozycki <macro@embecosm.com> | |
7823 | ||
7824 | * config/riscv/riscv.c (riscv_rtx_costs): Correct a CONST_INT_P | |
7825 | check and remove an unused local variable with shNadd/shNadd.uw | |
7826 | pattern handling. | |
7827 | ||
7828 | 2021-11-02 Tamar Christina <tamar.christina@arm.com> | |
7829 | ||
7830 | PR tree-optimization/103007 | |
7831 | * tree-vect-slp-patterns.c (complex_fms_pattern::matches): Add elem | |
7832 | check. | |
7833 | ||
7834 | 2021-11-02 Richard Biener <rguenther@suse.de> | |
7835 | ||
7836 | PR middle-end/103038 | |
7837 | * fold-const.c (native_interpret_expr): Handle OFFSET_TYPE. | |
7838 | (can_native_interpret_type_p): Likewise. | |
7839 | * internal-fn.c (expand_DEFERRED_INIT): View-convert the | |
7840 | RHS if the LHS is an SSA name. | |
7841 | ||
7842 | 2021-11-02 Richard Sandiford <richard.sandiford@arm.com> | |
7843 | ||
7844 | * langhooks.h (lang_hooks_for_types::simulate_record_decl): New hook. | |
7845 | * langhooks-def.h (lhd_simulate_record_decl): Declare. | |
7846 | (LANG_HOOKS_SIMULATE_RECORD_DECL): Define. | |
7847 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it. | |
7848 | * langhooks.c (lhd_simulate_record_decl): New function. | |
7849 | ||
7850 | 2021-11-02 Jakub Jelinek <jakub@redhat.com> | |
7851 | ||
7852 | PR target/103020 | |
7853 | * config/i386/i386.c (ix86_vector_mode_supported_p): Reject vector | |
7854 | modes with TImode inner mode if 32-bit. | |
7855 | ||
7856 | 2021-11-02 liuhongt <hongtao.liu@intel.com> | |
7857 | ||
7858 | * doc/sourcebuild.texi (vect_slp_v4qi_store_unalign, | |
7859 | vect_slp_v2hi_store_unalign, vect_slp_v4hi_store_unalign, | |
7860 | vect_slp_v4si_store_unalign): Document efficient target. | |
7861 | (vect_slp_v4qi_store_unalign_1, vect_slp_v8qi_store_unalign_1, | |
7862 | vect_slp_v16qi_store_unalign_1): Ditto. | |
7863 | (vect_slp_v2hi_store_align,vect_slp_v2qi_store_align, | |
7864 | vect_slp_v2si_store_align, vect_slp_v4qi_store_align): Ditto. | |
7865 | (struct_4char_block_move, struct_8char_block_move, | |
7866 | struct_16char_block_move): Ditto. | |
7867 | ||
7868 | 2021-11-02 Roger Sayle <roger@nextmovesoftware.com> | |
7869 | Jakub Jelinek <jakub@redhat.com> | |
7870 | ||
7871 | PR target/102986 | |
7872 | * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti, | |
7873 | ix86_expand_ti_to_v1ti): New helper functions. | |
7874 | (ix86_expand_v1ti_shift): Check if the amount operand is an | |
7875 | integer constant, and expand as a TImode shift if it isn't. | |
7876 | (ix86_expand_v1ti_rotate): Check if the amount operand is an | |
7877 | integer constant, and expand as a TImode rotate if it isn't. | |
7878 | (ix86_expand_v1ti_ashiftrt): New function to expand arithmetic | |
7879 | right shifts of V1TImode quantities. | |
7880 | * config/i386/i386-protos.h (ix86_expand_v1ti_ashift): Prototype. | |
7881 | * config/i386/sse.md (ashlv1ti3, lshrv1ti3): Change constraints | |
7882 | to QImode general_operand, and let the helper functions lower | |
7883 | shifts by non-constant operands, as TImode shifts. Make | |
7884 | conditional on TARGET_64BIT. | |
7885 | (ashrv1ti3): New expander calling ix86_expand_v1ti_ashiftrt. | |
7886 | (rotlv1ti3, rotrv1ti3): Change shift operand to QImode. | |
7887 | Make conditional on TARGET_64BIT. | |
7888 | ||
7889 | 2021-11-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
7890 | ||
7891 | * config/s390/s390.md ("*cc_to_int", "tabort", "*tabort_1", | |
7892 | "*tabort_1_plus"): Remove operands non-null check. | |
7893 | ||
7894 | 2021-11-01 Martin Liska <mliska@suse.cz> | |
7895 | ||
7896 | * opt-functions.awk: Add new sanity checking. | |
7897 | * optc-gen.awk: Add new argument to integer_range_info. | |
7898 | * params.opt: Update 2 params which have negative IntegerRange. | |
7899 | ||
7900 | 2021-11-01 qing zhao <qing.zhao@oracle.com> | |
7901 | ||
7902 | * gimplify.c (gimplify_decl_expr): Do not add call to | |
7903 | __builtin_clear_padding when a variable is a gimple register | |
7904 | or it might not have padding. | |
7905 | (gimplify_init_constructor): Likewise. | |
7906 | ||
7907 | 2021-11-01 Tamar Christina <tamar.christina@arm.com> | |
7908 | ||
7909 | * config/arm/aarch-common-protos.h (struct vector_cost_table): Add | |
7910 | movi, dup and extract costing fields. | |
7911 | * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs, | |
7912 | thunderx_extra_costs, thunderx2t99_extra_costs, | |
7913 | thunderx3t110_extra_costs, tsv110_extra_costs, a64fx_extra_costs): Use | |
7914 | them. | |
7915 | * config/arm/aarch-cost-tables.h (generic_extra_costs, | |
7916 | cortexa53_extra_costs, cortexa57_extra_costs, cortexa76_extra_costs, | |
7917 | exynosm1_extra_costs, xgene1_extra_costs): Likewise | |
7918 | * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>): Add r->w dup. | |
7919 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Add extra costs. | |
7920 | ||
7921 | 2021-11-01 Tamar Christina <tamar.christina@arm.com> | |
7922 | ||
7923 | * cse.c (add_to_set): New. | |
7924 | (find_sets_in_insn): Register constants in sets. | |
7925 | (canonicalize_insn): Use auto_vec instead. | |
7926 | (cse_insn): Try materializing using vec_dup. | |
7927 | * rtl.h (simplify_context::simplify_gen_vec_select, | |
7928 | simplify_gen_vec_select): New. | |
7929 | * simplify-rtx.c (simplify_context::simplify_gen_vec_select): New. | |
7930 | ||
7931 | 2021-11-01 David Malcolm <dmalcolm@redhat.com> | |
7932 | ||
7933 | * common.opt (fdiagnostics-escape-format=): New. | |
7934 | (diagnostics_escape_format): New enum. | |
7935 | (DIAGNOSTICS_ESCAPE_FORMAT_UNICODE): New enum value. | |
7936 | (DIAGNOSTICS_ESCAPE_FORMAT_BYTES): Likewise. | |
7937 | * diagnostic-format-json.cc (json_end_diagnostic): Add | |
7938 | "escape-source" attribute. | |
7939 | * diagnostic-show-locus.c | |
7940 | (exploc_with_display_col::exploc_with_display_col): Replace | |
7941 | "tabstop" param with a cpp_char_column_policy and add an "aspect" | |
7942 | param. Use these to compute m_display_col accordingly. | |
7943 | (struct char_display_policy): New struct. | |
7944 | (layout::m_policy): New field. | |
7945 | (layout::m_escape_on_output): New field. | |
7946 | (def_policy): New function. | |
7947 | (make_range): Update for changes to exploc_with_display_col ctor. | |
7948 | (default_print_decoded_ch): New. | |
7949 | (width_per_escaped_byte): New. | |
7950 | (escape_as_bytes_width): New. | |
7951 | (escape_as_bytes_print): New. | |
7952 | (escape_as_unicode_width): New. | |
7953 | (escape_as_unicode_print): New. | |
7954 | (make_policy): New. | |
7955 | (layout::layout): Initialize new fields. Update m_exploc ctor | |
7956 | call for above change to ctor. | |
7957 | (layout::maybe_add_location_range): Update for changes to | |
7958 | exploc_with_display_col ctor. | |
7959 | (layout::calculate_x_offset_display): Update for change to | |
7960 | cpp_display_width. | |
7961 | (layout::print_source_line): Pass policy | |
7962 | to cpp_display_width_computation. Capture cpp_decoded_char when | |
7963 | calling process_next_codepoint. Move printing of source code to | |
7964 | m_policy.m_print_cb. | |
7965 | (line_label::line_label): Pass in policy rather than context. | |
7966 | (layout::print_any_labels): Update for change to line_label ctor. | |
7967 | (get_affected_range): Pass in policy rather than context, updating | |
7968 | calls to location_compute_display_column accordingly. | |
7969 | (get_printed_columns): Likewise, also for cpp_display_width. | |
7970 | (correction::correction): Pass in policy rather than tabstop. | |
7971 | (correction::compute_display_cols): Pass m_policy rather than | |
7972 | m_tabstop to cpp_display_width. | |
7973 | (correction::m_tabstop): Replace with... | |
7974 | (correction::m_policy): ...this. | |
7975 | (line_corrections::line_corrections): Pass in policy rather than | |
7976 | context. | |
7977 | (line_corrections::m_context): Replace with... | |
7978 | (line_corrections::m_policy): ...this. | |
7979 | (line_corrections::add_hint): Update to use m_policy rather than | |
7980 | m_context. | |
7981 | (line_corrections::add_hint): Likewise. | |
7982 | (layout::print_trailing_fixits): Likewise. | |
7983 | (selftest::test_display_widths): New. | |
7984 | (selftest::test_layout_x_offset_display_utf8): Update to use | |
7985 | policy rather than tabstop. | |
7986 | (selftest::test_one_liner_labels_utf8): Add test of escaping | |
7987 | source lines. | |
7988 | (selftest::test_diagnostic_show_locus_one_liner_utf8): Update to | |
7989 | use policy rather than tabstop. | |
7990 | (selftest::test_overlapped_fixit_printing): Likewise. | |
7991 | (selftest::test_overlapped_fixit_printing_utf8): Likewise. | |
7992 | (selftest::test_overlapped_fixit_printing_2): Likewise. | |
7993 | (selftest::test_tab_expansion): Likewise. | |
7994 | (selftest::test_escaping_bytes_1): New. | |
7995 | (selftest::test_escaping_bytes_2): New. | |
7996 | (selftest::diagnostic_show_locus_c_tests): Call the new tests. | |
7997 | * diagnostic.c (diagnostic_initialize): Initialize | |
7998 | context->escape_format. | |
7999 | (convert_column_unit): Update to use default character width policy. | |
8000 | (selftest::test_diagnostic_get_location_text): Likewise. | |
8001 | * diagnostic.h (enum diagnostics_escape_format): New enum. | |
8002 | (diagnostic_context::escape_format): New field. | |
8003 | * doc/invoke.texi (-fdiagnostics-escape-format=): New option. | |
8004 | (-fdiagnostics-format=): Add "escape-source" attribute to examples | |
8005 | of JSON output, and document it. | |
8006 | * input.c (location_compute_display_column): Pass in "policy" | |
8007 | rather than "tabstop", passing to | |
8008 | cpp_byte_column_to_display_column. | |
8009 | (selftest::test_cpp_utf8): Update to use cpp_char_column_policy. | |
8010 | * input.h (class cpp_char_column_policy): New forward decl. | |
8011 | (location_compute_display_column): Pass in "policy" rather than | |
8012 | "tabstop". | |
8013 | * opts.c (common_handle_option): Handle | |
8014 | OPT_fdiagnostics_escape_format_. | |
8015 | * selftest.c (temp_source_file::temp_source_file): New ctor | |
8016 | overload taking a size_t. | |
8017 | * selftest.h (temp_source_file::temp_source_file): Likewise. | |
8018 | ||
8019 | 2021-11-01 Aldy Hernandez <aldyh@redhat.com> | |
8020 | ||
8021 | * dbgcnt.def: Add debug counter for back_thread[12] and | |
8022 | back_threadfull[12]. | |
8023 | * passes.def: Pass "first" argument to each back threading pass. | |
8024 | * tree-ssa-threadbackward.c (back_threader::back_threader): Add | |
8025 | first argument. | |
8026 | (back_threader::debug_counter): New. | |
8027 | (back_threader::maybe_register_path): Call debug_counter. | |
8028 | ||
8029 | 2021-11-01 Aldy Hernandez <aldyh@redhat.com> | |
8030 | ||
8031 | * tree-ssa-threadbackward.c (BT_NONE): New. | |
8032 | (BT_SPEED): New. | |
8033 | (BT_RESOLVE): New. | |
8034 | (back_threader::back_threader): Add flags. | |
8035 | Move loop initialization here. | |
8036 | (back_threader::~back_threader): New. | |
8037 | (back_threader::find_taken_edge_switch): Change solver and ranger | |
8038 | to pointers. | |
8039 | (back_threader::find_taken_edge_cond): Same. | |
8040 | (back_threader::find_paths_to_names): Same. | |
8041 | (back_threader::find_paths): Same. | |
8042 | (back_threader::dump): Same. | |
8043 | (try_thread_blocks): Merge into thread_blocks. | |
8044 | (back_threader::thread_blocks): New. | |
8045 | (do_early_thread_jumps): Merge into thread_blocks. | |
8046 | (do_thread_jumps): Merge into thread_blocks. | |
8047 | (back_threader::thread_through_all_blocks): Remove. | |
8048 | ||
8049 | 2021-11-01 Andrew MacLeod <amacleod@redhat.com> | |
8050 | ||
8051 | PR tree-optimization/103003 | |
8052 | * value-relation.cc (dom_oracle::register_relation): If the 2 | |
8053 | ssa names are the same, don't register any relation. | |
8054 | ||
8055 | 2021-11-01 Dan Li <ashimida@linux.alibaba.com> | |
8056 | ||
8057 | * config/aarch64/aarch64.c (aarch64_expand_epilogue): Remove | |
8058 | redundant check for calls_eh_return. | |
8059 | * config/aarch64/aarch64.md (*do_return): Likewise. | |
8060 | ||
8061 | 2021-11-01 Xionghu Luo <luoxhu@linux.ibm.com> | |
8062 | ||
8063 | * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Rename | |
8064 | duplicate_loop_to_header_edge to | |
8065 | duplicate_loop_body_to_header_edge. | |
8066 | (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. | |
8067 | * cfghooks.h (struct cfg_hooks): Likewise. | |
8068 | (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. | |
8069 | * cfgloopmanip.c (duplicate_loop_body_to_header_edge): Likewise. | |
8070 | (clone_loop_to_header_edge): Likewise. | |
8071 | * cfgloopmanip.h (duplicate_loop_body_to_header_edge): Likewise. | |
8072 | * cfgrtl.c (struct cfg_hooks): Likewise. | |
8073 | * doc/loop.texi: Likewise. | |
8074 | * loop-unroll.c (unroll_loop_constant_iterations): Likewise. | |
8075 | (unroll_loop_runtime_iterations): Likewise. | |
8076 | (unroll_loop_stupid): Likewise. | |
8077 | (apply_opt_in_copies): Likewise. | |
8078 | * tree-cfg.c (struct cfg_hooks): Likewise. | |
8079 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. | |
8080 | (try_peel_loop): Likewise. | |
8081 | * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise. | |
8082 | (gimple_duplicate_loop_body_to_header_edge): Likewise. | |
8083 | (tree_transform_and_unroll_loop): Likewise. | |
8084 | * tree-ssa-loop-manip.h (gimple_duplicate_loop_body_to_header_edge): | |
8085 | Likewise. | |
8086 | ||
8087 | 2021-11-01 Xionghu Luo <luoxhu@linux.ibm.com> | |
8088 | ||
8089 | * cfgloopmanip.c (loop_version): Refactor loopify to | |
8090 | loop_version. Move condition generation after loopify. | |
8091 | (loopify): Delete. | |
8092 | * cfgloopmanip.h (loopify): Delete. | |
8093 | ||
8094 | 2021-10-31 Jan Hubicka <hubicka@ucw.cz> | |
8095 | ||
8096 | * ipa-fnsummary.c: Include tree-dfa.h. | |
8097 | (points_to_local_or_readonly_memory_p): Return true on return | |
8098 | slot writes. | |
8099 | * ipa-modref.c (analyze_ssa_name_flags): Fix handling of copy | |
8100 | statement. | |
8101 | ||
8102 | 2021-10-30 Tobias Burnus <tobias@codesourcery.com> | |
8103 | ||
8104 | PR middle-end/102972 | |
8105 | * omp-low.c (omp_runtime_api_call): Use DECL_ASSEMBLER_NAME to get | |
8106 | internal Fortran name; new permit_num_teams arg to permit | |
8107 | omp_get_num_teams and omp_get_team_num. | |
8108 | (scan_omp_1_stmt): Update call to it, add missing call for | |
8109 | reverse offload, and check for strictly nested API calls in teams. | |
8110 | ||
8111 | 2021-10-30 Jakub Jelinek <jakub@redhat.com> | |
8112 | ||
8113 | * gimplify.c (gimplify_omp_for): Diagnose threadprivate iterators. | |
8114 | ||
8115 | 2021-10-29 David Malcolm <dmalcolm@redhat.com> | |
8116 | ||
8117 | * selftest.c (assert_streq): Add newlines when emitting non-equal | |
8118 | non-NULL strings. | |
8119 | ||
8120 | 2021-10-29 David Malcolm <dmalcolm@redhat.com> | |
8121 | ||
8122 | * Makefile.in: Fix syntax for reference to LIBDEPS in | |
8123 | gengtype link rule. | |
8124 | ||
8125 | 2021-10-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
8126 | ||
8127 | * doc/install.texi: Bump required minimum DejaGnu version. | |
8128 | ||
8129 | 2021-10-29 Aldy Hernandez <aldyh@redhat.com> | |
8130 | Andrew MacLeod <amacleod@redhat.com> | |
8131 | ||
8132 | * value-relation.cc (path_oracle::killing_def): Add a | |
8133 | self-equivalence so we don't look to the root oracle. | |
8134 | ||
8135 | 2021-10-29 Aldy Hernandez <aldyh@redhat.com> | |
8136 | ||
8137 | * passes.def: Replace the pass_thread_jumps before VRP* with | |
8138 | pass_thread_jumps_full. Remove all pass_vrp_threader instances. | |
8139 | * tree-ssa-threadbackward.c (pass_data_thread_jumps_full): | |
8140 | Remove hyphen from "thread-full" name. | |
8141 | ||
8142 | 2021-10-29 Andrew MacLeod <amacleod@redhat.com> | |
8143 | ||
8144 | PR tree-optimization/102983 | |
8145 | * gimple-range-cache.h (propagate_updated_value): Make public. | |
8146 | * gimple-range.cc (gimple_ranger::range_of_stmt): Propagate exports | |
8147 | when processing gcond stmts. | |
8148 | ||
8149 | 2021-10-29 Jan Hubicka <hubicka@ucw.cz> | |
8150 | ||
8151 | * gimple.c (gimple_call_retslot_flags): New function. | |
8152 | * gimple.h (gimple_call_retslot_flags): Declare. | |
8153 | * ipa-modref.c: Include tree-cfg.h. | |
8154 | (struct escape_entry): Turn parm_index to signed. | |
8155 | (modref_summary_lto::modref_summary_lto): Add retslot_flags. | |
8156 | (modref_summary::modref_summary): Initialize retslot_flags. | |
8157 | (struct modref_summary_lto): Likewise. | |
8158 | (modref_summary::useful_p): Check retslot_flags. | |
8159 | (modref_summary_lto::useful_p): Likewise. | |
8160 | (modref_summary::dump): Dump retslot_flags. | |
8161 | (modref_summary_lto::dump): Likewise. | |
8162 | (struct escape_point): Add hidden_args enum. | |
8163 | (analyze_ssa_name_flags): Ignore return slot return; | |
8164 | use gimple_call_retslot_flags. | |
8165 | (record_escape_points): Break out from ... | |
8166 | (analyze_parms): ... here; handle retslot_flags. | |
8167 | (modref_summaries::duplicate): Duplicate retslot_flags. | |
8168 | (modref_summaries_lto::duplicate): Likewise. | |
8169 | (modref_write_escape_summary): Stream parm_index as signed. | |
8170 | (modref_read_escape_summary): Likewise. | |
8171 | (modref_write): Stream retslot_flags. | |
8172 | (read_section): Likewise. | |
8173 | (struct escape_map): Fix typo in comment. | |
8174 | (update_escape_summary_1): Fix whitespace. | |
8175 | (ipa_merge_modref_summary_after_inlining): Drop retslot_flags. | |
8176 | (modref_merge_call_site_flags): Merge retslot_flags. | |
8177 | * ipa-modref.h (struct modref_summary): Add retslot_flags. | |
8178 | * tree-ssa-structalias.c (handle_rhs_call): Handle retslot_flags. | |
8179 | ||
8180 | 2021-10-29 Tamar Christina <tamar.christina@arm.com> | |
8181 | ||
8182 | PR tree-optimization/102977 | |
8183 | * tree-vect-slp-patterns.c (vect_match_call_p): Remove. | |
8184 | (vect_detect_pair_op): Add crosslane check. | |
8185 | (vect_match_call_complex_mla): Remove. | |
8186 | (class complex_mul_pattern): Update comment. | |
8187 | (complex_mul_pattern::matches): Update detection. | |
8188 | (class complex_fma_pattern): Remove. | |
8189 | (complex_fma_pattern::matches): Remove. | |
8190 | (complex_fma_pattern::recognize): Remove. | |
8191 | (complex_fma_pattern::build): Remove. | |
8192 | (class complex_fms_pattern): Update comment. | |
8193 | (complex_fms_pattern::matches): Remove. | |
8194 | (complex_operations_pattern::recognize): Remove complex_fma_pattern | |
8195 | ||
8196 | 2021-10-29 Jakub Jelinek <jakub@redhat.com> | |
8197 | ||
8198 | * gimple-fold.c (gimple_fold_builtin_memset): Copy over location from | |
8199 | call to store. | |
8200 | ||
8201 | 2021-10-29 Xionghu Luo <luoxhu@linux.ibm.com> | |
8202 | ||
8203 | PR target/102868 | |
8204 | * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Add | |
8205 | patterns match and emit for VSX xxpermdi. | |
8206 | ||
8207 | 2021-10-29 liuhongt <hongtao.liu@intel.com> | |
8208 | ||
8209 | PR target/102464 | |
8210 | * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF): New | |
8211 | function type. | |
8212 | (V16HF_FTYPE_V16HF): Ditto. | |
8213 | (V32HF_FTYPE_V32HF): Ditto. | |
8214 | (V8HF_FTYPE_V8HF_ROUND): Ditto. | |
8215 | (V16HF_FTYPE_V16HF_ROUND): Ditto. | |
8216 | (V32HF_FTYPE_V32HF_ROUND): Ditto. | |
8217 | * config/i386/i386-builtin.def ( IX86_BUILTIN_FLOORPH, | |
8218 | IX86_BUILTIN_CEILPH, IX86_BUILTIN_TRUNCPH, | |
8219 | IX86_BUILTIN_FLOORPH256, IX86_BUILTIN_CEILPH256, | |
8220 | IX86_BUILTIN_TRUNCPH256, IX86_BUILTIN_FLOORPH512, | |
8221 | IX86_BUILTIN_CEILPH512, IX86_BUILTIN_TRUNCPH512): New builtin. | |
8222 | * config/i386/i386-builtins.c | |
8223 | (ix86_builtin_vectorized_function): Enable vectorization for | |
8224 | HFmode FLOOR/CEIL/TRUNC operation. | |
8225 | * config/i386/i386-expand.c (ix86_expand_args_builtin): Handle | |
8226 | new builtins. | |
8227 | * config/i386/sse.md (rint<mode>2, nearbyint<mode>2): Extend | |
8228 | to vector HFmodes. | |
8229 | ||
8230 | 2021-10-28 Aldy Hernandez <aldyh@redhat.com> | |
8231 | Andrew MacLeod <amacleod@redhat.com> | |
8232 | ||
8233 | * value-relation.cc (path_oracle::killing_def): Walk the | |
8234 | equivalency list and remove SSA from any equivalencies. | |
8235 | ||
8236 | 2021-10-28 Stafford Horne <shorne@gmail.com> | |
8237 | ||
8238 | * config/or1k/or1k.h (PROFILE_HOOK): Add return address argument | |
8239 | to _mcount. | |
8240 | ||
8241 | 2021-10-28 Jakub Jelinek <jakub@redhat.com> | |
8242 | ||
8243 | PR tree-optimization/102951 | |
8244 | * fold-const.h (address_compare): Declare. | |
8245 | * fold-const.c (address_compare): New function. | |
8246 | * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Use | |
8247 | address_compare helper. | |
8248 | (minmax cmp (convert1?@2 addr@0) (convert2?@3 addr@1)): New | |
8249 | simplification. | |
8250 | ||
8251 | 2021-10-28 Andrew MacLeod <amacleod@redhat.com> | |
8252 | ||
8253 | * vr-values.c (simplify_using_ranges::fold_cond): Change fold message. | |
8254 | ||
8255 | 2021-10-28 Andrew MacLeod <amacleod@redhat.com> | |
8256 | ||
8257 | PR tree-optimization/102940 | |
8258 | * tree-vrp.c (execute_ranger_vrp): Reset scev. | |
8259 | ||
8260 | 2021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org> | |
8261 | ||
8262 | * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add musl linker | |
8263 | ||
8264 | 2021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org> | |
8265 | ||
8266 | * configure: Regenerate. | |
8267 | * configure.ac: Use CPPFLAGS_FOR_BUILD for GMPINC | |
8268 | ||
8269 | 2021-10-28 Eric Botcazou <ebotcazou@adacore.com> | |
8270 | ||
8271 | * doc/invoke.texi (%X): Remove obsolete reference to -Wl. | |
8272 | ||
8273 | 2021-10-28 Richard Biener <rguenther@suse.de> | |
8274 | ||
8275 | PR middle-end/84407 | |
8276 | * fold-const.c (fold_convert_const): Avoid int to float | |
8277 | constant folding with -frounding-math and inexact result. | |
8278 | * simplify-rtx.c (simplify_const_unary_operation): Likewise | |
8279 | for both float and unsigned_float. | |
8280 | ||
8281 | 2021-10-28 Aldy Hernandez <aldyh@redhat.com> | |
8282 | ||
8283 | * tree-ssa-threadbackward.c | |
8284 | (back_threader::find_taken_edge_switch): Use find_case_label_range | |
8285 | instead of find_taken_edge. | |
8286 | ||
8287 | 2021-10-28 Aldy Hernandez <aldyh@redhat.com> | |
8288 | ||
8289 | * tree-ssa-threadbackward.c (class back_threader_registry): | |
8290 | Inherit from back_jt_path_registry. | |
8291 | (back_threader_registry::thread_through_all_blocks): Remove. | |
8292 | (back_threader_registry::register_path): Remove | |
8293 | m_lowlevel_registry prefix. | |
8294 | ||
8295 | 2021-10-28 Richard Biener <rguenther@suse.de> | |
8296 | ||
8297 | PR middle-end/57245 | |
8298 | * fold-const.c (fold_convert_const_real_from_real): Honor | |
8299 | -frounding-math if the conversion is not exact. | |
8300 | * simplify-rtx.c (simplify_const_unary_operation): Do not | |
8301 | simplify FLOAT_TRUNCATE with sign dependent rounding. | |
8302 | ||
8303 | 2021-10-28 Richard Biener <rguenther@suse.de> | |
8304 | ||
8305 | PR tree-optimization/102949 | |
8306 | * tree-vect-stmts.c (ensure_base_align): Look at the | |
8307 | dr_info of a group leader and assert we are looking at | |
8308 | one with analyzed alignment. | |
8309 | ||
8310 | 2021-10-28 Kewen Lin <linkw@linux.ibm.com> | |
8311 | ||
8312 | PR target/102767 | |
8313 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Consider | |
8314 | V1T1 mode for unaligned load and store. | |
8315 | ||
8316 | 2021-10-28 Kito Cheng <kito.cheng@sifive.com> | |
8317 | ||
8318 | * config/riscv/riscv.md (zero_extendsidi2_internal): Allow ZBB | |
8319 | use this pattern. | |
8320 | ||
8321 | 2021-10-28 Kito Cheng <kito.cheng@sifive.com> | |
8322 | ||
8323 | * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add `i` to | |
8324 | CANONICAL_ORDER. | |
8325 | ||
8326 | 2021-10-28 Alexandre Oliva <oliva@adacore.com> | |
8327 | ||
8328 | * common.opt (fharden-compares): New. | |
8329 | (fharden-conditional-branches): New. | |
8330 | * doc/invoke.texi: Document new options. | |
8331 | * gimple-harden-conditionals.cc: New. | |
8332 | * Makefile.in (OBJS): Build it. | |
8333 | * passes.def: Add new passes. | |
8334 | * tree-pass.h (make_pass_harden_compares): Declare. | |
8335 | (make_pass_harden_conditional_branches): Declare. | |
8336 | ||
8337 | 2021-10-28 Xionghu Luo <luoxhu@linux.ibm.com> | |
8338 | ||
8339 | PR target/94613 | |
8340 | * config/rs6000/altivec.md: Add vsx register constraints. | |
8341 | * config/rs6000/vsx.md (vsx_xxsel<mode>): Delete. | |
8342 | (vsx_xxsel<mode>2): Likewise. | |
8343 | (vsx_xxsel<mode>3): Likewise. | |
8344 | (vsx_xxsel<mode>4): Likewise. | |
8345 | ||
8346 | 2021-10-28 Xionghu Luo <luoxhu@linux.ibm.com> | |
8347 | ||
8348 | PR target/94613 | |
8349 | * config/rs6000/altivec.md (*altivec_vsel<mode>): Change to ... | |
8350 | (altivec_vsel<mode>): ... this and update define. | |
8351 | (*altivec_vsel<mode>_uns): Delete. | |
8352 | (altivec_vsel<mode>2): New define_insn. | |
8353 | (altivec_vsel<mode>3): Likewise. | |
8354 | (altivec_vsel<mode>4): Likewise. | |
8355 | * config/rs6000/rs6000-call.c (altivec_expand_vec_sel_builtin): New. | |
8356 | (altivec_expand_builtin): Call altivec_expand_vec_sel_builtin to expand | |
8357 | vel_sel. | |
8358 | * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use bit-wise | |
8359 | selection instead of per element. | |
8360 | * config/rs6000/vector.md: | |
8361 | * config/rs6000/vsx.md (*vsx_xxsel<mode>): Change to ... | |
8362 | (vsx_xxsel<mode>): ... this and update define. | |
8363 | (*vsx_xxsel<mode>_uns): Delete. | |
8364 | (vsx_xxsel<mode>2): New define_insn. | |
8365 | (vsx_xxsel<mode>3): Likewise. | |
8366 | (vsx_xxsel<mode>4): Likewise. | |
8367 | ||
8368 | 2021-10-28 Hongyu Wang <hongyu.wang@intel.com> | |
8369 | ||
8370 | * config/i386/i386.c (use_rsqrt_p): Add mode parameter, enable | |
8371 | HFmode rsqrt without TARGET_SSE_MATH. | |
8372 | (ix86_optab_supported_p): Refactor rint, adjust floor, ceil, | |
8373 | btrunc condition to be restricted by -ftrapping-math, adjust | |
8374 | use_rsqrt_p function call. | |
8375 | * config/i386/i386.md (rcphf2): New define_insn. | |
8376 | (rsqrthf2): Likewise. | |
8377 | * config/i386/sse.md (div<mode>3): Change VF2H to VF2. | |
8378 | (div<mode>3): New expander for HF mode. | |
8379 | (rsqrt<mode>2): Likewise. | |
8380 | (*avx512fp16_vmrcpv8hf2): New define_insn for rpad pass. | |
8381 | (*avx512fp16_vmrsqrtv8hf2): Likewise. | |
8382 | ||
8383 | 2021-10-27 Saagar Jha <saagar@saagarjha.com> | |
8384 | ||
8385 | * config.gcc: Adjust for Darwin21. | |
8386 | * config/darwin-c.c (macosx_version_as_macro): Likewise. | |
8387 | * config/darwin-driver.c (validate_macosx_version_min): | |
8388 | Likewise. | |
8389 | (darwin_find_version_from_kernel): Likewise. | |
8390 | ||
8391 | 2021-10-27 Aldy Hernandez <aldyh@redhat.com> | |
8392 | ||
8393 | * gimple-range-path.cc | |
8394 | (path_range_query::range_defined_in_block): Call killing_def. | |
8395 | ||
8396 | 2021-10-27 Aldy Hernandez <aldyh@redhat.com> | |
8397 | ||
8398 | * gimple-range-fold.cc (fold_using_range::range_of_range_op): Dump | |
8399 | operands as well as relation. | |
8400 | * gimple-range-path.cc | |
8401 | (path_range_query::compute_ranges_in_block): Compute PHI relations | |
8402 | first. Compute outgoing relations at the end. | |
8403 | (path_range_query::compute_ranges): Remove call to compute_relations. | |
8404 | (path_range_query::compute_relations): Remove. | |
8405 | (path_range_query::maybe_register_phi_relation): New. | |
8406 | (path_range_query::compute_phi_relations): Abstract out | |
8407 | registering one PHI relation to... | |
8408 | (path_range_query::compute_outgoing_relations): ...here. | |
8409 | * gimple-range-path.h (class path_range_query): Remove | |
8410 | compute_relations. | |
8411 | Add maybe_register_phi_relation. | |
8412 | ||
8413 | 2021-10-27 Aldy Hernandez <aldyh@redhat.com> | |
8414 | Andrew MacLeod <amacleod@redhat.com> | |
8415 | ||
8416 | * value-relation.cc (path_oracle::killing_def): Kill second | |
8417 | order relations. | |
8418 | ||
8419 | 2021-10-27 Martin Jambor <mjambor@suse.cz> | |
8420 | ||
8421 | * ipa-cp.c (good_cloning_opportunity_p): Decide whether to use | |
8422 | profile feedback depending on their local availability. | |
8423 | ||
8424 | 2021-10-27 Martin Jambor <mjambor@suse.cz> | |
8425 | ||
8426 | * params.opt (param_ipa_cp_profile_count_base): New parameter. | |
8427 | * doc/invoke.texi (Optimize Options): Add entry for | |
8428 | ipa-cp-profile-count-base. | |
8429 | * ipa-cp.c (max_count): Replace with base_count, replace all | |
8430 | occurrences too, unless otherwise stated. | |
8431 | (ipcp_cloning_candidate_p): identify mostly-directly called | |
8432 | functions based on their counts, not max_count. | |
8433 | (compare_edge_profile_counts): New function. | |
8434 | (ipcp_propagate_stage): Instead of setting max_count, find the | |
8435 | appropriate edge count in a sorted vector of counts of eligible | |
8436 | edges and make it the base_count. | |
8437 | ||
8438 | 2021-10-27 Martin Jambor <mjambor@suse.cz> | |
8439 | ||
8440 | * ipa-cp.c (struct caller_statistics): New fields rec_count_sum, | |
8441 | n_nonrec_calls and itself, document all fields. | |
8442 | (init_caller_stats): Initialize the above new fields. | |
8443 | (gather_caller_stats): Gather self-recursive counts and calls number. | |
8444 | (get_info_about_necessary_edges): Gather counts of self-recursive and | |
8445 | other edges bringing in the requested value separately. | |
8446 | (dump_profile_updates): Rework to dump info about a single node only. | |
8447 | (lenient_count_portion_handling): New function. | |
8448 | (struct gather_other_count_struct): New type. | |
8449 | (gather_count_of_non_rec_edges): New function. | |
8450 | (struct desc_incoming_count_struct): New type. | |
8451 | (analyze_clone_icoming_counts): New function. | |
8452 | (adjust_clone_incoming_counts): Likewise. | |
8453 | (update_counts_for_self_gen_clones): Likewise. | |
8454 | (update_profiling_info): Rewritten. | |
8455 | (update_specialized_profile): Adjust call to dump_profile_updates. | |
8456 | (create_specialized_node): Do not update profiling info. | |
8457 | (decide_about_value): New parameter self_gen_clones, either push new | |
8458 | clones into it or updat their profile counts. For self-recursively | |
8459 | generated values, use a portion of the node count instead of count | |
8460 | from self-recursive edges to estimate goodness. | |
8461 | (decide_whether_version_node): Gather clones for self-generated values | |
8462 | in a new vector, update their profiles at once at the end. | |
8463 | ||
8464 | 2021-10-27 Richard Biener <rguenther@suse.de> | |
8465 | ||
8466 | * tree-vectorizer.c (vect_transform_loops): New function, | |
8467 | split out from ... | |
8468 | (try_vectorize_loop_1): ... here. Simplify as epilogues | |
8469 | are now fully handled in the split part. | |
8470 | ||
8471 | 2021-10-27 Jakub Jelinek <jakub@redhat.com> | |
8472 | ||
8473 | * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular | |
8474 | iterators with pointer types. | |
8475 | (expand_omp_for_init_vars, extract_omp_for_update_vars): Likewise. | |
8476 | ||
8477 | 2021-10-26 Martin Sebor <msebor@redhat.com> | |
8478 | ||
8479 | PR tree-optimization/102238 | |
8480 | PR tree-optimization/102919 | |
8481 | * gimple-ssa-sprintf.c (get_string_length): Add an argument. | |
8482 | (array_elt_at_offset): Move to pointer-query. | |
8483 | (set_aggregate_size_and_offset): New function. | |
8484 | (field_at_offset): Move to pointer-query. | |
8485 | (get_origin_and_offset): Rename... | |
8486 | (get_origin_and_offset_r): this. Add an argument. Make aggregate | |
8487 | handling more robust. | |
8488 | (get_origin_and_offset): New. | |
8489 | (alias_offset): Add an argument. | |
8490 | (format_string): Use subobject size determined by get_origin_and_offset. | |
8491 | * pointer-query.cc (field_at_offset): Move from gimple-ssa-sprintf.c. | |
8492 | Improve/correct handling of aggregates. | |
8493 | (array_elt_at_offset): Same. | |
8494 | * pointer-query.h (field_at_offset): Declare. | |
8495 | (array_elt_at_offset): Declare. | |
8496 | ||
8497 | 2021-10-26 Martin Sebor <msebor@redhat.com> | |
8498 | ||
8499 | * builtins.c (check_strncat_sizes): Pass access_data ctor additional | |
8500 | arguments. | |
8501 | (expand_builtin_memcmp): Move code to gimple-ssa-warn-access.cc. | |
8502 | (expand_builtin_fork_or_exec): Same. | |
8503 | * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Pass | |
8504 | compute_objsize additional arguments. | |
8505 | (inbounds_memaccess_p): Same. | |
8506 | (array_bounds_checker::check_array_bounds): Add an assert. Stash | |
8507 | statement in a member. | |
8508 | (check_array_bounds_dom_walker::before_dom_children): Same. | |
8509 | * gimple-array-bounds.h (array_bounds_checker::m_stmt): New member. | |
8510 | * gimple-ssa-sprintf.c (get_destination_size): Add an argument. | |
8511 | (handle_printf_call): Pass a new argument. | |
8512 | * gimple-ssa-warn-access.cc (get_size_range): Add an argument. | |
8513 | (check_access): Add an argument and pass it along to callees. | |
8514 | (check_read_access): Make a member function. | |
8515 | (pass_waccess::check_strcat): Pass access_data ctor additional | |
8516 | arguments. | |
8517 | (pass_waccess::check_strncat): Same. | |
8518 | (pass_waccess::check_stxcpy): Same. | |
8519 | (pass_waccess::check_stxncpy): Same. | |
8520 | (pass_waccess::check_strncmp): Same. | |
8521 | (pass_waccess::check_read_access): Same. | |
8522 | (pass_waccess::check_builtin): Same. | |
8523 | (pass_waccess::maybe_check_access_sizes): Same. | |
8524 | (pass_waccess::maybe_check_dealloc_call): Same. | |
8525 | * gimple-ssa-warn-access.h (check_read_access): Declare a new | |
8526 | member function. | |
8527 | * pointer-query.cc (compute_objsize_r): Add an argument. | |
8528 | (gimple_call_return_array): Same. | |
8529 | (gimple_call_alloc_size): Same. | |
8530 | (access_ref::access_ref): Same. | |
8531 | (access_ref::get_ref): Same. | |
8532 | (pointer_query::get_ref): Same. | |
8533 | (handle_min_max_size): Pass an arguments to callees. | |
8534 | (handle_array_ref): Add an argument. | |
8535 | (handle_mem_ref): Same. | |
8536 | (compute_objsize): Same. | |
8537 | * pointer-query.h (struct access_ref): Adjust signatures. | |
8538 | (struct access_data): Same. | |
8539 | (gimple_call_alloc_size): Add an argument. | |
8540 | (gimple_parm_array_size): Same. | |
8541 | (compute_objsize): Same. | |
8542 | * tree-ssa-strlen.c (strlen_pass::adjust_last_stmt): Pass an additional | |
8543 | argument to compute_objsize. | |
8544 | (strlen_pass::maybe_warn_overflow): Same. | |
8545 | (maybe_diag_stxncpy_trunc): Same. | |
8546 | ||
8547 | 2021-10-26 Martin Sebor <msebor@redhat.com> | |
8548 | ||
8549 | PR middle-end/102453 | |
8550 | * gimple-ssa-warn-access.cc (pass_waccess::check_atomic_builtin): New. | |
8551 | (pass_waccess::check_atomic_builtin): Call it. | |
8552 | ||
8553 | 2021-10-26 Vladimir N. Makarov <vmakarov@redhat.com> | |
8554 | ||
8555 | PR rtl-optimization/102842 | |
8556 | * lra-constraints.c (match_reload): Ignore out in checking values | |
8557 | of outs. | |
8558 | (curr_insn_transform): Collect outputs before doing reloads of operands. | |
8559 | ||
8560 | 2021-10-26 Paul A. Clarke <pc@us.ibm.com> | |
8561 | ||
8562 | PR target/102719 | |
8563 | * config/rs6000/x86intrin.h: Move some included headers to new | |
8564 | headers. Include new immintrin.h instead of those headers. | |
8565 | * config/rs6000/immintrin.h: New. | |
8566 | * config/rs6000/x86gprintrin.h: New. | |
8567 | * config.gcc (powerpc*-*-*): Add new headers to extra_headers. | |
8568 | ||
8569 | 2021-10-26 Richard Biener <rguenther@suse.de> | |
8570 | ||
8571 | * tree-vectorizer.h (vect_create_addr_base_for_vector_ref): | |
8572 | Remove byte_offset parameter. | |
8573 | (vect_create_data_ref_ptr): Likewise. | |
8574 | * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): | |
8575 | Likewise. | |
8576 | (vect_create_data_ref_ptr): Likewise. | |
8577 | * tree-vect-stmts.c (vectorizable_store): Adjust. | |
8578 | (vectorizable_load): Likewise. | |
8579 | ||
8580 | 2021-10-26 Richard Biener <rguenther@suse.de> | |
8581 | ||
8582 | PR tree-optimization/96109 | |
8583 | * tree-vectorizer.h (dr_misalignment): Add optional offset | |
8584 | parameter. | |
8585 | * tree-vect-data-refs.c (dr_misalignment): Likewise. Remove | |
8586 | offset applied for negative stride accesses. | |
8587 | (vect_enhance_data_refs_alignment): Compute negative stride | |
8588 | access offset and pass it to dr_misalignment. | |
8589 | * tree-vect-stmts.c (get_negative_load_store_type): Pass | |
8590 | negative offset to dr_misalignment. | |
8591 | (get_group_load_store_type): Likewise. | |
8592 | (get_load_store_type): Likewise. | |
8593 | (vectorizable_store): Remove asserts about alignment. | |
8594 | (vectorizable_load): Likewise. | |
8595 | ||
8596 | 2021-10-26 Kewen Lin <linkw@linux.ibm.com> | |
8597 | ||
8598 | PR tree-optimization/102897 | |
8599 | * tree-ssa-forwprop.c (simplify_permutation): Remove a wrong assertion. | |
8600 | ||
8601 | 2021-10-26 Richard Biener <rguenther@suse.de> | |
8602 | ||
8603 | * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): | |
8604 | Take offset in bytes. | |
8605 | (vect_create_data_ref_ptr): Likewise. | |
8606 | * tree-vect-loop-manip.c (get_misalign_in_elems): Multiply | |
8607 | offset by element size. | |
8608 | (vect_create_cond_for_align_checks): Likewise. | |
8609 | * tree-vect-stmts.c (get_negative_load_store_type): Likewise. | |
8610 | (vectorizable_load): Remove duplicate leftover from merge | |
8611 | conflict. | |
8612 | ||
8613 | 2021-10-26 Roger Sayle <roger@nextmovesoftware.com> | |
8614 | ||
8615 | * config/i386/i386-expand.c (ix86_expand_v1ti_shift): New helper | |
8616 | function to expand V1TI mode logical shifts by integer constants. | |
8617 | (ix86_expand_v1ti_rotate): New helper function to expand V1TI | |
8618 | mode rotations by integer constants. | |
8619 | * config/i386/i386-protos.h (ix86_expand_v1ti_shift, | |
8620 | ix86_expand_v1ti_rotate): Prototype new functions here. | |
8621 | * config/i386/sse.md (ashlv1ti3, lshrv1ti3, rotlv1ti3, rotrv1ti3): | |
8622 | New TARGET_SSE2 expanders to implement V1TI shifts and rotations. | |
8623 | ||
8624 | 2021-10-26 Aldy Hernandez <aldyh@redhat.com> | |
8625 | ||
8626 | * tree-ssa-threadbackward.c (back_threader::maybe_register_path): | |
8627 | Avoid threading circular paths. | |
8628 | ||
8629 | 2021-10-26 Aldy Hernandez <aldyh@redhat.com> | |
8630 | ||
8631 | * tree-ssa-threadbackward.c (back_threader::resolve_phi): | |
8632 | Attempt to resolve all incoming paths to a PHI. | |
8633 | (back_threader::resolve_def): Always return true for PHIs. | |
8634 | ||
8635 | 2021-10-26 Aldy Hernandez <aldyh@redhat.com> | |
8636 | ||
8637 | * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): | |
8638 | Always try to resolve path without looking back. | |
8639 | * tree-ssa-threadupdate.c (dump_jump_thread): Indidicate whether | |
8640 | edge is a back edge. | |
8641 | ||
8642 | 2021-10-26 Kewen Lin <linkw@linux.ibm.com> | |
8643 | ||
8644 | PR tree-optimization/102789 | |
8645 | * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not | |
8646 | update inits of simd_lane_access. | |
8647 | ||
8648 | 2021-10-25 Andrew MacLeod <amacleod@redhat.com> | |
8649 | ||
8650 | * tree-vrp.c (vrp_simplify_cond_using_ranges): Add return type and | |
8651 | move to vr-values.c. | |
8652 | (simplify_casted_conds): Move to vrp_folder class. | |
8653 | (execute_vrp): Call via vrp_folder now. | |
8654 | * vr-values.c (simplify_cond_using_ranges_1): Call simplify_casted_cond. | |
8655 | (simplify_using_ranges::simplify_casted_cond): Relocate from tree-vrp.c. | |
8656 | * vr-values.h (simplify_casted_cond): Add prototype. | |
8657 | ||
8658 | 2021-10-25 Andrew MacLeod <amacleod@redhat.com> | |
8659 | ||
8660 | * tree-vrp.c (rvrp_folder::fold_stmt): If simplification fails, try | |
8661 | to fold anyway. | |
8662 | ||
8663 | 2021-10-25 Paul A. Clarke <pc@us.ibm.com> | |
8664 | ||
8665 | * config/rs6000/smmintrin.h (_mm_testz_si128): Add "extern" to | |
8666 | function signature. | |
8667 | (_mm_testc_si128): Likewise. | |
8668 | (_mm_testnzc_si128): Likewise. | |
8669 | (_mm_blend_ps): Likewise. | |
8670 | (_mm_blendv_ps): Likewise. | |
8671 | (_mm_blend_pd): Likewise. | |
8672 | (_mm_blendv_pd): Likewise. | |
8673 | (_mm_ceil_pd): Likewise. | |
8674 | (_mm_ceil_sd): Likewise. | |
8675 | (_mm_ceil_ps): Likewise. | |
8676 | (_mm_ceil_ss): Likewise. | |
8677 | (_mm_floor_pd): Likewise. | |
8678 | (_mm_floor_sd): Likewise. | |
8679 | (_mm_floor_ps): Likewise. | |
8680 | (_mm_floor_ss): Likewise. | |
8681 | (_mm_minpos_epu16): Likewise. | |
8682 | (_mm_mul_epi32): Likewise. | |
8683 | (_mm_cvtepi8_epi16): Likewise. | |
8684 | (_mm_packus_epi32): Likewise. | |
8685 | (_mm_cmpgt_epi64): Likewise. | |
8686 | ||
8687 | 2021-10-25 Roger Sayle <roger@nextmovesoftware.com> | |
8688 | ||
8689 | * simplify-rtx.c (simplify_binary_operation_1) [SS_ASHIFT]: Simplify | |
8690 | shifts of the mode's smin_value and smax_value when the bit count | |
8691 | operand doesn't have side-effects. | |
8692 | [US_ASHIFT]: Likewise, simplify shifts of the mode's umax_value | |
8693 | when the bit count operand doesn't have side-effects. | |
8694 | (simplify_const_binary_operation) [SS_ASHIFT, US_ASHIFT]: Perform | |
8695 | compile-time evaluation of saturating left shifts with constant | |
8696 | arguments. | |
8697 | ||
8698 | 2021-10-25 Andrew MacLeod <amacleod@redhat.com> | |
8699 | ||
8700 | * gimple-range.cc (gimple_ranger::export_global_ranges): Remove check | |
8701 | for TDF_DETAILS. | |
8702 | ||
8703 | 2021-10-25 Andrew MacLeod <amacleod@redhat.com> | |
8704 | ||
8705 | * flag-types.h (enum ranger_debug): Adjust values. | |
8706 | * params.opt (ranger_debug): Ditto. | |
8707 | ||
8708 | 2021-10-25 Martin Jambor <mjambor@suse.cz> | |
8709 | ||
8710 | PR tree-optimization/102886 | |
8711 | * tree-sra.c (totally_scalarize_subtree): Fix the out of | |
8712 | access-condition. | |
8713 | ||
8714 | 2021-10-25 Andrew Pinski <apinski@marvell.com> | |
8715 | ||
8716 | * tree-ssa-dce.c (simple_dce_from_worklist): | |
8717 | Check stmt_unremovable_because_of_non_call_eh_p also | |
8718 | before removing the statement. | |
8719 | ||
8720 | 2021-10-25 Richard Biener <rguenther@suse.de> | |
8721 | ||
8722 | PR tree-optimization/102905 | |
8723 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): | |
8724 | Use vect_supportable_dr_alignment again to determine whether | |
8725 | an access is supported when not aligned. | |
8726 | ||
8727 | 2021-10-25 Kito Cheng <kito.cheng@sifive.com> | |
8728 | ||
8729 | * config/riscv/riscv.c (riscv_rtx_costs): Handle cost model | |
8730 | for zbs extension. | |
8731 | ||
8732 | 2021-10-25 Jim Wilson <jimw@sifive.com> | |
8733 | Kito Cheng <kito.cheng@sifive.com> | |
8734 | Jia-Wei Chen <jiawei@iscas.ac.cn> | |
8735 | Shi-Hua Liao <shihua@iscas.ac.cn> | |
8736 | ||
8737 | * config/riscv/bitmanip.md (shiftm1): New. | |
8738 | (*bset<mode>): Ditto. | |
8739 | (*bset<mode>_mask): Ditto. | |
8740 | (*bset<mode>_1): Ditto. | |
8741 | (*bset<mode>_1_mask): Ditto. | |
8742 | (*bseti<mode>): Ditto. | |
8743 | (*bclr<mode>): Ditto. | |
8744 | (*bclri<mode>): Ditto. | |
8745 | (*binv<mode>): Ditto. | |
8746 | (*binvi<mode>): Ditto. | |
8747 | (*bext<mode>): Ditto. | |
8748 | (*bexti): Ditto. | |
8749 | * config/riscv/predicates.md (splittable_const_int_operand): | |
8750 | Handle bseti. | |
8751 | (single_bit_mask_operand): New. | |
8752 | (not_single_bit_mask_operand): Ditto. | |
8753 | (const31_operand): Ditto. | |
8754 | (const63_operand): Ditto. | |
8755 | * config/riscv/riscv.c (riscv_build_integer_1): Handle bseti. | |
8756 | (riscv_output_move): Ditto. | |
8757 | (riscv_print_operand): Handle new operand type: T and S. | |
8758 | * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): New. | |
8759 | ||
8760 | 2021-10-25 Jim Wilson <jimw@sifive.com> | |
8761 | ||
8762 | * config/riscv/riscv.c (riscv_build_integer_1): Build integer | |
8763 | with rotate. | |
8764 | ||
8765 | 2021-10-25 Kito Cheng <kito.cheng@sifive.com> | |
8766 | ||
8767 | * config/riscv/riscv.c (riscv_extend_cost): Handle cost model | |
8768 | for zbb extension. | |
8769 | (riscv_rtx_costs): Ditto. | |
8770 | ||
8771 | 2021-10-25 Jim Wilson <jimw@sifive.com> | |
8772 | Kito Cheng <kito.cheng@sifive.com> | |
8773 | Jia-Wei Chen <jiawei@iscas.ac.cn> | |
8774 | ||
8775 | * config/riscv/bitmanip.md (bitmanip_bitwise): New. | |
8776 | (bitmanip_minmax): New. | |
8777 | (clz_ctz_pcnt): New. | |
8778 | (bitmanip_optab): New. | |
8779 | (bitmanip_insn): New. | |
8780 | (*<optab>_not<mode>): New. | |
8781 | (*xor_not<mode>): New. | |
8782 | (<bitmanip_optab>si2): New. | |
8783 | (*<bitmanip_optab>disi2): New. | |
8784 | (<bitmanip_optab>di2): New. | |
8785 | (*zero_extendhi<GPR:mode>2_bitmanip): New. | |
8786 | (*extend<SHORT:mode><SUPERQI:mode>2_zbb): New. | |
8787 | (*zero_extendhi<GPR:mode>2_zbb): New. | |
8788 | (rotrsi3): New. | |
8789 | (rotrdi3): New. | |
8790 | (rotrsi3_sext): New. | |
8791 | (rotlsi3): New. | |
8792 | (rotldi3): New. | |
8793 | (rotlsi3_sext): New. | |
8794 | (bswap<mode>2): New. | |
8795 | (<bitmanip_optab><mode>3): New. | |
8796 | * config/riscv/riscv.md (type): Add rotate. | |
8797 | (zero_extendhi<GPR:mode>2): Change to define_expand pattern. | |
8798 | (*zero_extendhi<GPR:mode>2): New. | |
8799 | (extend<SHORT:mode><SUPERQI:mode>2): Change to define_expand pattern. | |
8800 | (*extend<SHORT:mode><SUPERQI:mode>2): New. | |
8801 | ||
8802 | 2021-10-25 Kito Cheng <kito.cheng@sifive.com> | |
8803 | ||
8804 | * config/riscv/riscv.c (riscv_extend_cost): Handle cost model | |
8805 | for zba extension. | |
8806 | (riscv_rtx_costs): Ditto. | |
8807 | ||
8808 | 2021-10-25 Jim Wilson <jimw@sifive.com> | |
8809 | Kito Cheng <kito.cheng@sifive.com> | |
8810 | Jia-Wei Chen <jiawei@iscas.ac.cn> | |
8811 | ||
8812 | * config/riscv/bitmanip.md (*zero_extendsidi2_bitmanip): New. | |
8813 | (*shNadd): Ditto. | |
8814 | (*shNadduw): Ditto. | |
8815 | (*add.uw): Ditto. | |
8816 | (*slliuw): Ditto. | |
8817 | (riscv_rtx_costs): Ditto. | |
8818 | * config/riscv/riscv.md: Include bitmanip.md | |
8819 | (type): Add bitmanip bype. | |
8820 | (zero_extendsidi2): Change to define_expand pattern. | |
8821 | (*zero_extendsidi2_internal): New. | |
8822 | (zero_extendsidi2_shifted): Disable for ZBA. | |
8823 | ||
8824 | 2021-10-25 Kito Cheng <kito.cheng@sifive.com> | |
8825 | ||
8826 | * common/config/riscv/riscv-common.c (riscv_ext_version_table): | |
8827 | Add zba, zbb, zbc and zbs. | |
8828 | (riscv_ext_flag_table): Ditto. | |
8829 | * config/riscv/riscv-opts.h (MASK_ZBA): New. | |
8830 | (MASK_ZBB): Ditto. | |
8831 | (MASK_ZBC): Ditto. | |
8832 | (MASK_ZBS): Ditto. | |
8833 | (TARGET_ZBA): Ditto. | |
8834 | (TARGET_ZBB): Ditto. | |
8835 | (TARGET_ZBC): Ditto. | |
8836 | (TARGET_ZBS): Ditto. | |
8837 | * config/riscv/riscv.opt (riscv_zb_subext): New. | |
8838 | ||
8839 | 2021-10-25 liuhongt <hongtao.liu@intel.com> | |
8840 | ||
8841 | PR target/102464 | |
8842 | * match.pd: Simplify (_Float16) sqrtf((float) a) to .SQRT(a) | |
8843 | when direct_internal_fn_supported_p, similar for sqrt/sqrtl. | |
8844 | ||
8845 | 2021-10-25 Richard Biener <rguenther@suse.de> | |
8846 | ||
8847 | PR tree-optimization/102920 | |
8848 | * tree-ssa-sccvn.h (expressions_equal_p): Add argument | |
8849 | controlling VN_TOP matching behavior. | |
8850 | * tree-ssa-sccvn.c (expressions_equal_p): Likewise. | |
8851 | (vn_phi_eq): Do not optimistically match VN_TOP. | |
8852 | ||
8853 | 2021-10-25 konglin1 <lingling.kong@intel.com> | |
8854 | ||
8855 | * config/i386/sse.md (fma_<mode>_fadd_fmul): Add new | |
8856 | define_insn_and_split. | |
8857 | (fma_<mode>_fadd_fcmul):Likewise | |
8858 | (fma_<complexopname>_<mode>_fma_zero):Likewise | |
8859 | ||
8860 | 2021-10-24 John David Anglin <danglin@gcc.gnu.org> | |
8861 | ||
8862 | * config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check | |
8863 | TARGET_DISABLE_FPREGS. | |
8864 | * config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of | |
8865 | MASK_DISABLE_FPREGS. | |
8866 | (hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS. Adjust | |
8867 | cost of hardware integer multiplication. | |
8868 | (pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS. | |
8869 | * config/pa/pa.h (INT14_OK_STRICT): Likewise. | |
8870 | * config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check | |
8871 | TARGET_SOFT_FLOAT in patterns that use xmpyu instruction. | |
8872 | * config/pa/pa.opt (mdisable-fpregs): Change target mask to | |
8873 | SOFT_FLOAT. Revise comment. | |
8874 | (msoft-float): New option. | |
8875 | ||
8876 | 2021-10-24 John David Anglin <danglin@gcc.gnu.org> | |
8877 | ||
8878 | * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. | |
8879 | ||
8880 | 2021-10-24 Gerald Pfeifer <gerald@pfeifer.com> | |
8881 | ||
8882 | * doc/install.texi (Specific): Remove obsolete details | |
8883 | around GNU/Linux on Itanium. | |
8884 | (Specific): Remove reference to Windows for Itanium. | |
8885 | ||
8886 | 2021-10-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
8887 | ||
8888 | * config/i386/x86-tune-sched-bd.c (dispatch_group): Commentary | |
8889 | typo fix. | |
8890 | ||
8891 | 2021-10-23 Jan Hubicka <hubicka@ucw.cz> | |
8892 | ||
8893 | * tree-ssa-structalias.c (compute_points_to_sets): Cleanup. | |
8894 | ||
8895 | 2021-10-23 Roger Sayle <roger@nextmovesoftware.com> | |
8896 | ||
8897 | * config/i386/sse.md (<any_logic>v1ti3): New define_insn to | |
8898 | implement V1TImode AND, IOR and XOR on TARGET_SSE2 (and above). | |
8899 | (one_cmplv1ti2): New define expand. | |
8900 | ||
8901 | 2021-10-22 Eric Gallager <egallager@gcc.gnu.org> | |
8902 | ||
8903 | PR other/102663 | |
8904 | * Makefile.in: Handle dvidir and install-dvi target. | |
8905 | * configure: Regenerate. | |
8906 | * configure.ac: Add install-dvi to target_list. | |
8907 | ||
8908 | 2021-10-22 Gerald Pfeifer <gerald@pfeifer.com> | |
8909 | ||
8910 | * doc/install.texi (Binaries): Convert mingw-w64.org to https. | |
8911 | (Specific): Ditto. | |
8912 | ||
8913 | 2021-10-22 Richard Biener <rguenther@suse.de> | |
8914 | ||
8915 | PR tree-optimization/102893 | |
8916 | * tree-ssa-dce.c (find_obviously_necessary_stmts): Fix the | |
8917 | test for an exit edge. | |
8918 | ||
8919 | 2021-10-22 Aldy Hernandez <aldyh@redhat.com> | |
8920 | Andrew MacLeod <amacleod@redhat.com> | |
8921 | ||
8922 | * gimple-range-path.cc (path_range_query::compute_phi_relations): | |
8923 | Kill any global relations we may know before registering a new | |
8924 | one. | |
8925 | * value-relation.cc (path_oracle::killing_def): New. | |
8926 | * value-relation.h (path_oracle::killing_def): New. | |
8927 | ||
8928 | 2021-10-22 Richard Biener <rguenther@suse.de> | |
8929 | ||
8930 | PR bootstrap/102681 | |
8931 | * tree-ssa-sccvn.c (vn_phi_insert): For undefined SSA args | |
8932 | record VN_TOP. | |
8933 | (vn_phi_lookup): Likewise. | |
8934 | ||
8935 | 2021-10-21 H.J. Lu <hjl.tools@gmail.com> | |
8936 | ||
8937 | PR target/98667 | |
8938 | * doc/invoke.texi: Document -fcf-protection requires i686 or | |
8939 | new. | |
8940 | ||
8941 | 2021-10-21 Eric Botcazou <ebotcazou@adacore.com> | |
8942 | ||
8943 | PR middle-end/102764 | |
8944 | * cfgexpand.c (expand_gimple_basic_block): Robustify latest change. | |
8945 | ||
8946 | 2021-10-21 Jonathan Wright <jonathan.wright@arm.com> | |
8947 | ||
8948 | * config/aarch64/arm_neon.h (__STRUCTN): Delete function | |
8949 | macro and all invocations. | |
8950 | ||
8951 | 2021-10-21 Andrew MacLeod <amacleod@redhat.com> | |
8952 | ||
8953 | * doc/invoke.texi (ranger-debug): Document. | |
8954 | * flag-types.h (enum ranger_debug): New. | |
8955 | (enum evrp_mode): Remove debug values. | |
8956 | * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Use new debug flag. | |
8957 | * gimple-range-gori.cc (gori_compute::gori_compute): Ditto. | |
8958 | * gimple-range.cc (gimple_ranger::gimple_ranger): Ditto. | |
8959 | * gimple-ssa-evrp.c (hybrid_folder::choose_value): Ditto. | |
8960 | (execute_early_vrp): Use evrp-mode directly. | |
8961 | * params.opt (enum evrp_mode): Remove debug values. | |
8962 | (ranger-debug): New. | |
8963 | (ranger-logical-depth): Relocate to be in alphabetical order. | |
8964 | ||
8965 | 2021-10-21 Andrew MacLeod <amacleod@redhat.com> | |
8966 | ||
8967 | * doc/invoke.texi: (vrp1-mode, vrp2-mode): Document. | |
8968 | * flag-types.h: (enum vrp_mode): New. | |
8969 | * params.opt: (vrp1-mode, vrp2-mode): New. | |
8970 | * tree-vrp.c (vrp_pass_num): New. | |
8971 | (pass_vrp::pass_vrp): Set pass number. | |
8972 | (pass_vrp::execute): Choose which VRP mode to execute. | |
8973 | ||
8974 | 2021-10-21 Andrew MacLeod <amacleod@redhat.com> | |
8975 | ||
8976 | * gimple-ssa-evrp.c (class rvrp_folder): Move to tree-vrp.c. | |
8977 | (execute_early_vrp): For ranger only mode, invoke ranger_vrp. | |
8978 | * tree-vrp.c (class rvrp_folder): Relocate here. | |
8979 | (execute_ranger_vrp): New. | |
8980 | * tree-vrp.h (execute_ranger_vrp): Export. | |
8981 | ||
8982 | 2021-10-21 Martin Liska <mliska@suse.cz> | |
8983 | ||
8984 | PR debug/102585 | |
8985 | PR bootstrap/102766 | |
8986 | * opts.c (finish_options): Process flag_var_tracking* options | |
8987 | here as they can be adjusted by optimize attribute. | |
8988 | Process also flag_syntax_only and flag_gtoggle. | |
8989 | * toplev.c (process_options): Remove it here. | |
8990 | * common.opt: Make debug_nonbind_markers_p as PerFunction | |
8991 | attribute as it depends on optimization level. | |
8992 | ||
8993 | 2021-10-21 Martin Jambor <mjambor@suse.cz> | |
8994 | ||
8995 | PR tree-optimization/102505 | |
8996 | * tree-sra.c (totally_scalarize_subtree): Check that the | |
8997 | encountered field fits within the acces we would like to put it | |
8998 | in. | |
8999 | ||
9000 | 2021-10-21 Aldy Hernandez <aldyh@redhat.com> | |
9001 | ||
9002 | * tree-ssa-threadbackward.c | |
9003 | (back_threader::maybe_register_path): Remove circular paths check. | |
9004 | ||
9005 | 2021-10-21 Richard Biener <rguenther@suse.de> | |
9006 | ||
9007 | * toplev.c (process_options): Move the initial debug_hooks | |
9008 | setting ... | |
9009 | (toplev::main): ... before the call of the post_options | |
9010 | langhook. | |
9011 | ||
9012 | 2021-10-21 Richard Biener <rguenther@suse.de> | |
9013 | ||
9014 | PR tree-optimization/102847 | |
9015 | * tree-vect-stmts.c (vect_model_load_cost): Add the scalar | |
9016 | load cost in the prologue for VMAT_INVARIANT. | |
9017 | ||
9018 | 2021-10-21 Richard Biener <rguenther@suse.de> | |
9019 | ||
9020 | PR tree-optimization/102847 | |
9021 | * tree-vect-stmts.c (vect_model_load_cost): Explicitely | |
9022 | handle VMAT_INVARIANT as a splat in the prologue. | |
9023 | ||
9024 | 2021-10-21 Hongyu Wang <hongyu.wang@intel.com> | |
9025 | ||
9026 | PR target/102812 | |
9027 | * config/i386/i386.c (ix86_get_ssemov): Adjust HFmode vector | |
9028 | move to use the same logic as HImode. | |
9029 | ||
9030 | 2021-10-21 Richard Biener <rguenther@suse.de> | |
9031 | ||
9032 | * tree-vect-slp.c (vect_build_slp_tree_1): Remove | |
9033 | superfluous gimple_call_nothrow_p check. | |
9034 | ||
9035 | 2021-10-21 Andrew Pinski <apinski@marvell.com> | |
9036 | ||
9037 | * tree-cfg.c (maybe_remove_writeonly_store): Add dce_ssa_names argument. | |
9038 | Mark the ssa-name of the rhs as one to be removed. | |
9039 | (execute_fixup_cfg): Update call to maybe_remove_writeonly_store. | |
9040 | Call simple_dce_from_worklist at the end to a simple dce. | |
9041 | ||
9042 | 2021-10-21 Andrew Pinski <apinski@marvell.com> | |
9043 | ||
9044 | * tree-cfg.c (maybe_remove_writeonly_store): New function | |
9045 | factored out from ... | |
9046 | (execute_fixup_cfg): Here. Call maybe_remove_writeonly_store. | |
9047 | ||
9048 | 2021-10-21 Andrew Pinski <apinski@marvell.com> | |
9049 | ||
9050 | * tree-cfg.c (execute_fixup_cfg): Remove comment | |
9051 | about standalone pass. | |
9052 | ||
9053 | 2021-10-21 Andrew Pinski <apinski@marvell.com> | |
9054 | ||
9055 | * tree-cfg.c (execute_fixup_cfg): Output when the statement | |
9056 | is removed when it is a write only var. | |
9057 | ||
9058 | 2021-10-21 Aldy Hernandez <aldyh@redhat.com> | |
9059 | ||
9060 | * tree-ssa-threadbackward.c (back_threader::maybe_register_path): | |
9061 | Avoid threading circular paths. | |
9062 | ||
9063 | 2021-10-20 Alex Coplan <alex.coplan@arm.com> | |
9064 | ||
9065 | * calls.c (initialize_argument_information): Remove some dead | |
9066 | code, remove handling for function_arg returning const_int. | |
9067 | * doc/tm.texi: Delete documentation for unused target hooks. | |
9068 | * doc/tm.texi.in: Likewise. | |
9069 | * target.def (load_bounds_for_arg): Delete. | |
9070 | (store_bounds_for_arg): Delete. | |
9071 | (load_returned_bounds): Delete. | |
9072 | (store_returned_bounds): Delete. | |
9073 | * targhooks.c (default_load_bounds_for_arg): Delete. | |
9074 | (default_store_bounds_for_arg): Delete. | |
9075 | (default_load_returned_bounds): Delete. | |
9076 | (default_store_returned_bounds): Delete. | |
9077 | * targhooks.h (default_load_bounds_for_arg): Delete. | |
9078 | (default_store_bounds_for_arg): Delete. | |
9079 | (default_load_returned_bounds): Delete. | |
9080 | (default_store_returned_bounds): Delete. | |
9081 | ||
9082 | 2021-10-20 Jonathan Wakely <jwakely@redhat.com> | |
9083 | ||
9084 | * doc/extend.texi (Basic Asm): Clarify that asm is not an | |
9085 | extension in C++. | |
9086 | * doc/invoke.texi (-fno-asm): Fix description for C++. | |
9087 | ||
9088 | 2021-10-20 Jonathan Wakely <jwakely@redhat.com> | |
9089 | ||
9090 | * doc/install.texi: Remove link to old.html | |
9091 | ||
9092 | 2021-10-20 Tamar Christina <tamar.christina@arm.com> | |
9093 | ||
9094 | * config/aarch64/aarch64-simd.md (*aarch64_cmtst_same_<mode>): New. | |
9095 | ||
9096 | 2021-10-20 Tamar Christina <tamar.christina@arm.com> | |
9097 | ||
9098 | * config/aarch64/aarch64-simd.md (*aarch64_narrow_trunc<mode>): New. | |
9099 | ||
9100 | 2021-10-20 Tamar Christina <tamar.christina@arm.com> | |
9101 | ||
9102 | * config/aarch64/aarch64-simd.md (aarch64_simd_ashr<mode>): Add case cmp | |
9103 | case. | |
9104 | * config/aarch64/constraints.md (D1): New. | |
9105 | ||
9106 | 2021-10-20 Tamar Christina <tamar.christina@arm.com> | |
9107 | ||
9108 | * config/aarch64/aarch64-simd.md | |
9109 | (*aarch64_<srn_op>topbits_shuffle<mode>_le): New. | |
9110 | (*aarch64_topbits_shuffle<mode>_le): New. | |
9111 | (*aarch64_<srn_op>topbits_shuffle<mode>_be): New. | |
9112 | (*aarch64_topbits_shuffle<mode>_be): New. | |
9113 | * config/aarch64/predicates.md | |
9114 | (aarch64_simd_shift_imm_vec_exact_top): New. | |
9115 | ||
9116 | 2021-10-20 Tamar Christina <tamar.christina@arm.com> | |
9117 | ||
9118 | * config/aarch64/aarch64-simd.md (*aarch64_<srn_op>shrn<mode>_vect, | |
9119 | *aarch64_<srn_op>shrn<mode>2_vect_le, | |
9120 | *aarch64_<srn_op>shrn<mode>2_vect_be): New. | |
9121 | * config/aarch64/iterators.md (srn_op): New. | |
9122 | ||
9123 | 2021-10-20 Chung-Lin Tang <cltang@codesourcery.com> | |
9124 | ||
9125 | * omp-low.c (omp_copy_decl_2): For !ctx, use record_vars to add new copy | |
9126 | as local variable. | |
9127 | (scan_sharing_clauses): Place copy of OMP_CLAUSE_IN_REDUCTION decl in | |
9128 | ctx->outer instead of ctx. | |
9129 | ||
9130 | 2021-10-20 Martin Liska <mliska@suse.cz> | |
9131 | ||
9132 | Revert: | |
9133 | 2021-10-19 Martin Liska <mliska@suse.cz> | |
9134 | ||
9135 | PR target/102374 | |
9136 | * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. | |
9137 | * system.h (strip_whilespaces): New function. | |
9138 | ||
9139 | 2021-10-20 Martin Liska <mliska@suse.cz> | |
9140 | ||
9141 | Revert: | |
9142 | 2021-10-19 Martin Liska <mliska@suse.cz> | |
9143 | ||
9144 | PR target/102375 | |
9145 | * config/aarch64/aarch64.c (aarch64_process_one_target_attr): | |
9146 | Strip whitespaces. | |
9147 | ||
9148 | 2021-10-20 Wilco Dijkstra <wdijkstr@arm.com> | |
9149 | ||
9150 | * config/aarch64/aarch64.c (aarch64_case_values_threshold): | |
9151 | Change to 8 with -Os, 11 otherwise. | |
9152 | ||
9153 | 2021-10-20 Wilco Dijkstra <wdijkstr@arm.com> | |
9154 | ||
9155 | * config/aarch64/aarch64.c (neoversev1_tunings): | |
9156 | Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. | |
9157 | (neoversen2_tunings): Likewise. | |
9158 | ||
9159 | 2021-10-20 Wilco Dijkstra <wdijkstr@arm.com> | |
9160 | ||
9161 | PR target/100966 | |
9162 | * config/aarch64/aarch64.md (frint_pattern): Update comment. | |
9163 | * config/aarch64/aarch64-simd-builtins.def: Change frintn to roundeven. | |
9164 | * config/aarch64/arm_fp16.h: Change frintn to roundeven. | |
9165 | * config/aarch64/arm_neon.h: Likewise. | |
9166 | * config/aarch64/iterators.md (frint_pattern): Use roundeven for FRINTN. | |
9167 | ||
9168 | 2021-10-20 Martin Liska <mliska@suse.cz> | |
9169 | ||
9170 | * config/arm/arm.c (arm_unwind_emit_sequence): Do not declare | |
9171 | already declared global variable. | |
9172 | (arm_unwind_emit_set): Use out_file as function argument. | |
9173 | (arm_unwind_emit): Likewise. | |
9174 | * config/darwin.c (machopic_output_data_section_indirection): Likewise. | |
9175 | (machopic_output_stub_indirection): Likewise. | |
9176 | (machopic_output_indirection): Likewise. | |
9177 | (machopic_finish): Likewise. | |
9178 | * config/i386/i386.c (ix86_asm_output_function_label): Likewise. | |
9179 | * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise. | |
9180 | * config/ia64/ia64.c (process_epilogue): Likewise. | |
9181 | (process_cfa_adjust_cfa): Likewise. | |
9182 | (process_cfa_register): Likewise. | |
9183 | (process_cfa_offset): Likewise. | |
9184 | (ia64_asm_unwind_emit): Likewise. | |
9185 | * config/s390/s390.c (s390_asm_output_function_label): Likewise. | |
9186 | ||
9187 | 2021-10-20 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> | |
9188 | ||
9189 | * config/aarch64/aarch64-builtins.c | |
9190 | (aarch64_general_gimple_fold_builtin): | |
9191 | lower vld1 and vst1 variants of the neon builtins | |
9192 | * config/aarch64/aarch64-protos.h: | |
9193 | (aarch64_general_gimple_fold_builtin): Add gsi parameter. | |
9194 | * config/aarch64/aarch64.c (aarch64_general_gimple_fold_builtin): | |
9195 | Likwise. | |
9196 | ||
9197 | 2021-10-20 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> | |
9198 | ||
9199 | * match.pd: Generate IFN_TRUNC. | |
9200 | ||
9201 | 2021-10-20 Richard Biener <rguenther@suse.de> | |
9202 | ||
9203 | PR tree-optimization/102853 | |
9204 | * tree-data-ref.c (split_constant_offset_1): Bail out | |
9205 | immediately if the expression traps on overflow. | |
9206 | ||
9207 | 2021-10-20 Aldy Hernandez <aldyh@redhat.com> | |
9208 | ||
9209 | * tree-ssa-threadbackward.c (back_threader::~back_threader): Remove. | |
9210 | ||
9211 | 2021-10-20 Aldy Hernandez <aldyh@redhat.com> | |
9212 | ||
9213 | * tree-ssa-threadupdate.c (back_jt_path_registry::adjust_paths_after_duplication): | |
9214 | Remove superflous debugging message. | |
9215 | (back_jt_path_registry::duplicate_thread_path): Same. | |
9216 | ||
9217 | 2021-10-20 Aldy Hernandez <aldyh@redhat.com> | |
9218 | ||
9219 | * tree-ssa-threadbackward.c (back_threader_registry::back_threader_registry): | |
9220 | Remove. | |
9221 | (back_threader_registry::register_path): Remove m_threaded_paths. | |
9222 | ||
9223 | 2021-10-20 Aldy Hernandez <aldyh@redhat.com> | |
9224 | ||
9225 | PR tree-optimization/102814 | |
9226 | * doc/invoke.texi: Document --param=max-fsm-thread-length. | |
9227 | * params.opt: Add --param=max-fsm-thread-length. | |
9228 | * tree-ssa-threadbackward.c | |
9229 | (back_threader_profitability::profitable_path_p): Fail on paths | |
9230 | longer than max-fsm-thread-length. | |
9231 | ||
9232 | 2021-10-20 Eric Botcazou <ebotcazou@adacore.com> | |
9233 | ||
9234 | PR middle-end/102764 | |
9235 | * cfgexpand.c (expand_gimple_basic_block): Disregard a final debug | |
9236 | statement to reset the current location for the outgoing edges. | |
9237 | ||
9238 | 2021-10-20 Aldy Hernandez <aldyh@redhat.com> | |
9239 | Richard Biener <rguenther@suse.de> | |
9240 | ||
9241 | * tree-ssa-threadupdate.c (cancel_thread): Dump threading reason | |
9242 | on the same line as the threading cancellation. | |
9243 | (jt_path_registry::cancel_invalid_paths): Avoid rotating loops. | |
9244 | Avoid threading through loop headers where the path remains in the | |
9245 | loop. | |
9246 | ||
9247 | 2021-10-20 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
9248 | ||
9249 | * tree-object-size.c (unknown): Make into a function. Adjust | |
9250 | all uses. | |
9251 | (unknown_object_size): Simplify implementation. | |
9252 | ||
9253 | 2021-10-20 Hongtao Liu <hongtao.liu@intel.com> | |
9254 | Kewen Lin <linkw@linux.ibm.com> | |
9255 | ||
9256 | * doc/sourcebuild.texi (Effective-Target Keywords): Document | |
9257 | vect_slp_v2qi_store, vect_slp_v4qi_store, vect_slp_v8qi_store, | |
9258 | vect_slp_v16qi_store, vect_slp_v2hi_store, | |
9259 | vect_slp_v4hi_store, vect_slp_v2si_store, vect_slp_v4si_store. | |
9260 | ||
9261 | 2021-10-19 Jonathan Wakely <jwakely@redhat.com> | |
9262 | ||
9263 | * doc/extend.texi (Basic PowerPC Built-in Functions): Fix typo. | |
9264 | ||
9265 | 2021-10-19 Paul A. Clarke <pc@us.ibm.com> | |
9266 | ||
9267 | PR target/101893 | |
9268 | PR target/102719 | |
9269 | * config/rs6000/emmintrin.h: Guard POWER8 intrinsics. | |
9270 | * config/rs6000/pmmintrin.h: Same. | |
9271 | * config/rs6000/smmintrin.h: Same. | |
9272 | * config/rs6000/tmmintrin.h: Same. | |
9273 | ||
9274 | 2021-10-19 Paul A. Clarke <pc@us.ibm.com> | |
9275 | ||
9276 | * config.gcc (extra_headers): Add nmmintrin.h. | |
9277 | ||
9278 | 2021-10-19 Richard Biener <rguenther@suse.de> | |
9279 | ||
9280 | * tree-vectorizer.h (vect_supportable_dr_alignment): Add | |
9281 | misalignment parameter. | |
9282 | * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): | |
9283 | Do not change DR_MISALIGNMENT in place, instead pass the | |
9284 | adjusted misalignment to vect_supportable_dr_alignment. | |
9285 | (vect_peeling_supportable): Likewise. | |
9286 | (vect_peeling_hash_get_lowest_cost): Adjust. | |
9287 | (vect_enhance_data_refs_alignment): Likewise. | |
9288 | (vect_vfa_access_size): Likewise. | |
9289 | (vect_supportable_dr_alignment): Add misalignment | |
9290 | parameter and simplify. | |
9291 | * tree-vect-stmts.c (get_negative_load_store_type): Adjust. | |
9292 | (get_group_load_store_type): Likewise. | |
9293 | (get_load_store_type): Likewise. | |
9294 | ||
9295 | 2021-10-19 Clément Chigot <clement.chigot@atos.net> | |
9296 | ||
9297 | * config/rs6000/rs6000.c (rs6000_xcoff_file_end): Move | |
9298 | __tls_get_addr reference to .text csect. | |
9299 | ||
9300 | 2021-10-19 Martin Liska <mliska@suse.cz> | |
9301 | ||
9302 | PR target/102375 | |
9303 | * config/aarch64/aarch64.c (aarch64_process_one_target_attr): | |
9304 | Strip whitespaces. | |
9305 | ||
9306 | 2021-10-19 Richard Biener <rguenther@suse.de> | |
9307 | ||
9308 | * tree-vectorizer.h (vect_get_store_cost): Adjust signature. | |
9309 | (vect_get_load_cost): Likewise. | |
9310 | * tree-vect-data-refs.c (vect_get_data_access_cost): Get | |
9311 | alignment support scheme and misalignment as arguments | |
9312 | and pass them down. | |
9313 | (vect_get_peeling_costs_all_drs): Compute that info here | |
9314 | and note that we shouldn't need to. | |
9315 | * tree-vect-stmts.c (vect_model_store_cost): Get | |
9316 | alignment support scheme and misalignment as arguments. | |
9317 | (vect_get_store_cost): Likewise. | |
9318 | (vect_model_load_cost): Likewise. | |
9319 | (vect_get_load_cost): Likewise. | |
9320 | (vectorizable_store): Pass down alignment support scheme | |
9321 | and misalignment to costing. | |
9322 | (vectorizable_load): Likewise. | |
9323 | ||
9324 | 2021-10-19 Richard Biener <rguenther@suse.de> | |
9325 | ||
9326 | * tree-vect-stmts.c (get_negative_load_store_type): Add | |
9327 | offset output parameter and initialize it. | |
9328 | (get_group_load_store_type): Likewise. | |
9329 | (get_load_store_type): Likewise. | |
9330 | (vectorizable_store): Use offset as computed by | |
9331 | get_load_store_type. | |
9332 | (vectorizable_load): Likewise. | |
9333 | ||
9334 | 2021-10-19 Richard Biener <rguenther@suse.de> | |
9335 | ||
9336 | PR tree-optimization/102827 | |
9337 | * tree-if-conv.c (predicate_statements): Add pe parameter | |
9338 | and use that edge to insert invariant stmts on. | |
9339 | (combine_blocks): Pass through pe. | |
9340 | (tree_if_conversion): Compute the edge to insert invariant | |
9341 | stmts on and pass it along. | |
9342 | ||
9343 | 2021-10-19 Roger Sayle <roger@nextmovesoftware.com> | |
9344 | ||
9345 | PR target/102785 | |
9346 | * config/bfin/bfin.md (addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, | |
9347 | sssubaddv2hi3): Swap the order of operators in vec_concat. | |
9348 | ||
9349 | 2021-10-19 Xionghu Luo <luoxhu@linux.ibm.com> | |
9350 | ||
9351 | * config/rs6000/altivec.md (*altivec_vmrghb_internal): Delete. | |
9352 | (altivec_vmrghb_direct): New. | |
9353 | (*altivec_vmrghh_internal): Delete. | |
9354 | (altivec_vmrghh_direct): New. | |
9355 | (*altivec_vmrghw_internal): Delete. | |
9356 | (altivec_vmrghw_direct_<mode>): New. | |
9357 | (altivec_vmrghw_direct): Delete. | |
9358 | (*altivec_vmrglb_internal): Delete. | |
9359 | (altivec_vmrglb_direct): New. | |
9360 | (*altivec_vmrglh_internal): Delete. | |
9361 | (altivec_vmrglh_direct): New. | |
9362 | (*altivec_vmrglw_internal): Delete. | |
9363 | (altivec_vmrglw_direct_<mode>): New. | |
9364 | (altivec_vmrglw_direct): Delete. | |
9365 | * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. | |
9366 | * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): | |
9367 | Adjust. | |
9368 | * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust. | |
9369 | (vsx_xxmrglw_<mode>): Adjust. | |
9370 | ||
9371 | 2021-10-19 Aldy Hernandez <aldyh@redhat.com> | |
9372 | ||
9373 | * passes.def: Change threading comment before pass_ccp pass. | |
9374 | ||
9375 | 2021-10-19 Haochen Gui <guihaoc@gcc.gnu.org> | |
9376 | ||
9377 | * config/rs6000/rs6000-call.c (altivec_expand_lxvr_builtin): | |
9378 | Modify the expansion for sign extension. All extensions are done | |
9379 | within VSX registers. | |
9380 | ||
9381 | 2021-10-19 Richard Biener <rguenther@suse.de> | |
9382 | ||
9383 | * tree-vect-stmts.c (get_group_load_store_type): Add | |
9384 | misalignment output parameter and initialize it. | |
9385 | (get_group_load_store_type): Likewise. | |
9386 | (vectorizable_store): Remove now redundant queries. | |
9387 | (vectorizable_load): Likewise. | |
9388 | ||
9389 | 2021-10-19 Richard Biener <rguenther@suse.de> | |
9390 | ||
9391 | * tree-vectorizer.h (vect_supportable_dr_alignment): Remove | |
9392 | check_aligned argument. | |
9393 | * tree-vect-data-refs.c (vect_supportable_dr_alignment): | |
9394 | Likewise. | |
9395 | (vect_peeling_hash_insert): Add supportable_if_not_aligned | |
9396 | argument and do not call vect_supportable_dr_alignment here. | |
9397 | (vect_peeling_supportable): Adjust. | |
9398 | (vect_enhance_data_refs_alignment): Compute whether the | |
9399 | access is supported with different alignment here and | |
9400 | pass that down to vect_peeling_hash_insert. | |
9401 | (vect_vfa_access_size): Adjust. | |
9402 | * tree-vect-stmts.c (vect_get_store_cost): Likewise. | |
9403 | (vect_get_load_cost): Likewise. | |
9404 | (get_negative_load_store_type): Likewise. | |
9405 | (get_group_load_store_type): Likewise. | |
9406 | (get_load_store_type): Likewise. | |
9407 | ||
9408 | 2021-10-19 Martin Liska <mliska@suse.cz> | |
9409 | ||
9410 | PR target/102374 | |
9411 | * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. | |
9412 | * system.h (strip_whilespaces): New function. | |
9413 | ||
9414 | 2021-10-19 dianhong xu <dianhong.xu@intel.com> | |
9415 | ||
9416 | * config/i386/avx512fp16intrin.h: | |
9417 | (_mm512_set1_pch): New intrinsic. | |
9418 | * config/i386/avx512fp16vlintrin.h: | |
9419 | (_mm256_set1_pch): New intrinsic. | |
9420 | (_mm_set1_pch): Ditto. | |
9421 | ||
9422 | 2021-10-18 Andrew MacLeod <amacleod@redhat.com> | |
9423 | ||
9424 | PR tree-optimization/102796 | |
9425 | * gimple-range.cc (gimple_ranger::range_on_edge): Process EH edges | |
9426 | normally. Return get_tree_range for non gimple_range_ssa_p names. | |
9427 | (gimple_ranger::range_of_stmt): Use get_tree_range for non | |
9428 | gimple_range_ssa_p names. | |
9429 | ||
9430 | 2021-10-18 Uroš Bizjak <ubizjak@gmail.com> | |
9431 | ||
9432 | PR target/102761 | |
9433 | * config/i386/i386.c (ix86_print_operand_address): | |
9434 | Error out for non-address_operand asm operands. | |
9435 | ||
9436 | 2021-10-18 Richard Biener <rguenther@suse.de> | |
9437 | ||
9438 | * tree-vect-data-refs.c (vect_peeling_hash_insert): Do | |
9439 | not auto-convert dr_alignment_support to bool. | |
9440 | (vect_peeling_supportable): Likewise. | |
9441 | (vect_enhance_data_refs_alignment): Likewise. | |
9442 | (vect_supportable_dr_alignment): Commonize read/write case. | |
9443 | * tree-vect-stmts.c (vect_get_store_cost): Use | |
9444 | dr_alignment_support, not int, for the vect_supportable_dr_alignment | |
9445 | result. | |
9446 | (vect_get_load_cost): Likewise. | |
9447 | ||
9448 | 2021-10-18 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
9449 | ||
9450 | * tree-object-size.c (object_sizes_execute): Consolidate LHS | |
9451 | null check and do it early. | |
9452 | ||
9453 | 2021-10-18 Richard Biener <rguenther@suse.de> | |
9454 | ||
9455 | * tree-vect-stmts.c (vectorizable_store): Use the | |
9456 | computed alignment scheme instead of querying | |
9457 | aligned_access_p. | |
9458 | ||
9459 | 2021-10-18 Richard Biener <rguenther@suse.de> | |
9460 | ||
9461 | * tree-vect-stmts.c (vectorizable_store): Do not recompute | |
9462 | alignment scheme already determined by get_load_store_type. | |
9463 | ||
9464 | 2021-10-18 Aldy Hernandez <aldyh@redhat.com> | |
9465 | ||
9466 | * tree-ssa-threadbackward.c (class pass_thread_jumps_full): | |
9467 | Clone corresponding pass. | |
9468 | ||
9469 | 2021-10-18 Roger Sayle <roger@nextmovesoftware.com> | |
9470 | ||
9471 | * combine.c (recog_for_combine): For an unrecognized move/set of | |
9472 | a constant, try force_const_mem to place it in the constant pool. | |
9473 | * cse.c (constant_pool_entries_cost, constant_pool_entries_regcost): | |
9474 | Delete global variables (that are no longer assigned a cost value). | |
9475 | (cse_insn): Simplify logic for deciding whether to place a folded | |
9476 | constant in the constant pool using force_const_mem. | |
9477 | (cse_main): Remove zero initialization of constant_pool_entries_cost | |
9478 | and constant_pool_entries_regcost. | |
9479 | * config/i386/i386.c (ix86_rtx_costs): Make memory accesses | |
9480 | fractionally more expensive, when optimizing for speed. | |
9481 | ||
9482 | 2021-10-18 Martin Liska <mliska@suse.cz> | |
9483 | ||
9484 | PR gcov-profile/102746 | |
9485 | PR gcov-profile/102747 | |
9486 | * gcov.c (main): Return return_code. | |
9487 | (output_gcov_file): Mark return_code when error happens. | |
9488 | (generate_results): Likewise. | |
9489 | (read_graph_file): Likewise. | |
9490 | (read_count_file): Likewise. | |
9491 | ||
9492 | 2021-10-18 Roger Sayle <roger@nextmovesoftware.com> | |
9493 | ||
9494 | * config/bfin/bfin.md (define_constants): Remove UNSPEC_ONES. | |
9495 | (define_insn "ones"): Replace UNSPEC_ONES with a truncate of | |
9496 | a popcount, allowing compile-time evaluation/simplification. | |
9497 | (popcountsi2, popcounthi2): New expanders using a "ones" insn. | |
9498 | ||
9499 | 2021-10-18 Richard Biener <rguenther@suse.de> | |
9500 | ||
9501 | PR tree-optimization/102788 | |
9502 | * tree-vect-patterns.c (vect_init_pattern_stmt): Allow | |
9503 | a NULL vectype. | |
9504 | (vect_pattern_recog_1): Likewise. | |
9505 | (vect_recog_bool_pattern): Continue matching the pattern | |
9506 | even if we do not have a vector type for a conversion | |
9507 | result. | |
9508 | ||
9509 | 2021-10-18 Roger Sayle <roger@nextmovesoftware.com> | |
9510 | ||
9511 | * simplify-rtx.c (simplify_const_unary_operation) [SS_NEG, SS_ABS]: | |
9512 | Evalute SS_NEG and SS_ABS of a constant argument. | |
9513 | ||
9514 | 2021-10-18 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
9515 | ||
9516 | PR target/93183 | |
9517 | * gimple-match-head.c (try_conditional_simplification): Add case for single operand. | |
9518 | * internal-fn.def: Add entry for COND_NEG internal function. | |
9519 | * internal-fn.c (FOR_EACH_CODE_MAPPING): Add entry for | |
9520 | NEGATE_EXPR, COND_NEG mapping. | |
9521 | * optabs.def: Add entry for cond_neg_optab. | |
9522 | * match.pd (UNCOND_UNARY, COND_UNARY): New operator lists. | |
9523 | (vec_cond COND (foo A) B) -> (IFN_COND_FOO COND A B): New pattern. | |
9524 | (vec_cond COND B (foo A)) -> (IFN_COND_FOO ~COND A B): Likewise. | |
9525 | ||
9526 | 2021-10-18 Aldy Hernandez <aldyh@redhat.com> | |
9527 | ||
9528 | * tree-ssa-strlen.c (class strlen_pass): Rename from | |
9529 | strlen_dom_walker. | |
9530 | (handle_builtin_stxncpy_strncat): Move to strlen_pass. | |
9531 | (handle_assign): Same. | |
9532 | (adjust_last_stmt): Same. | |
9533 | (maybe_warn_overflow): Same. | |
9534 | (handle_builtin_strlen): Same. | |
9535 | (handle_builtin_strchr): Same. | |
9536 | (handle_builtin_strcpy): Same. | |
9537 | (handle_builtin_strncat): Same. | |
9538 | (handle_builtin_stxncpy_strncat): Same. | |
9539 | (handle_builtin_memcpy): Same. | |
9540 | (handle_builtin_strcat): Same. | |
9541 | (handle_alloc_call): Same. | |
9542 | (handle_builtin_memset): Same. | |
9543 | (handle_builtin_memcmp): Same. | |
9544 | (get_len_or_size): Same. | |
9545 | (strxcmp_eqz_result): Same. | |
9546 | (handle_builtin_string_cmp): Same. | |
9547 | (handle_pointer_plus): Same. | |
9548 | (count_nonzero_bytes_addr): Same. | |
9549 | (count_nonzero_bytes): Same. | |
9550 | (handle_store): Same. | |
9551 | (strlen_check_and_optimize_call): Same. | |
9552 | (handle_integral_assign): Same. | |
9553 | (check_and_optimize_stmt): Same. | |
9554 | (printf_strlen_execute): Rename strlen_dom_walker to strlen_pass. | |
9555 | ||
9556 | 2021-10-18 Richard Biener <rguenther@suse.de> | |
9557 | ||
9558 | PR tree-optimization/102798 | |
9559 | * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): | |
9560 | Only copy points-to info to newly generated SSA names. | |
9561 | ||
9562 | 2021-10-18 Martin Liska <mliska@suse.cz> | |
9563 | ||
9564 | * dbgcnt.c (dbg_cnt_process_opt): Remove unused but set variable. | |
9565 | * gcov.c (get_cycles_count): Likewise. | |
9566 | * lto-compress.c (lto_compression_zlib): Likewise. | |
9567 | (lto_uncompression_zlib): Likewise. | |
9568 | * targhooks.c (default_pch_valid_p): Likewise. | |
9569 | ||
9570 | 2021-10-17 Aldy Hernandez <aldyh@redhat.com> | |
9571 | ||
9572 | * tree-pass.h (make_pass_thread_jumps_full): New. | |
9573 | * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Inline. | |
9574 | (try_thread_blocks): Add resolve and speed arguments. | |
9575 | (pass_thread_jumps::execute): Inline. | |
9576 | (do_early_thread_jumps): New. | |
9577 | (do_thread_jumps): New. | |
9578 | (make_pass_thread_jumps): Move. | |
9579 | (pass_early_thread_jumps::gate): Inline. | |
9580 | (pass_early_thread_jumps::execute): Inline. | |
9581 | (class pass_thread_jumps_full): New. | |
9582 | ||
9583 | 2021-10-16 Piotr Kubaj <pkubaj@FreeBSD.org> | |
9584 | ||
9585 | * configure.ac: Treat powerpc64*-*-freebsd* the same as | |
9586 | powerpc64-*-freebsd*. | |
9587 | * configure: Regenerate. | |
9588 | ||
9589 | 2021-10-16 H.J. Lu <hjl.tools@gmail.com> | |
9590 | ||
9591 | * value-query.cc (get_ssa_name_ptr_info_nonnull): Change | |
9592 | set_ptr_nonull to set_ptr_nonnull in comments. | |
9593 | ||
9594 | 2021-10-16 Jan Hubicka <hubicka@ucw.cz> | |
9595 | ||
9596 | PR tree-optimization/102720 | |
9597 | * tree-ssa-structalias.c (compute_points_to_sets): Fix producing | |
9598 | of call used and clobbered sets. | |
9599 | ||
9600 | 2021-10-15 Iain Sandoe <iain@sandoe.co.uk> | |
9601 | ||
9602 | * config/darwin.h (LINK_COMMAND_SPEC_A): Update 'r' handling to | |
9603 | skip gomp and itm when r or nodefaultlibs is given. | |
9604 | (DSYMUTIL_SPEC): Do not call dsymutil for '-r' link lines. | |
9605 | Update ordering of exclusions, remove duplicate 'v' addition | |
9606 | (collect2 will add this from the main command line). | |
9607 | ||
9608 | 2021-10-15 Iain Sandoe <iain@sandoe.co.uk> | |
9609 | ||
9610 | * config/darwin-driver.c (darwin_driver_init): Revise comments, handle | |
9611 | filelist and framework options in specs instead of code. | |
9612 | * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link | |
9613 | specs that are really driver ones. | |
9614 | (DARWIN_CC1_SPEC): Likewise. | |
9615 | (CPP_SPEC): Likewise. | |
9616 | (SYSROOT_SPEC): Append space. | |
9617 | (LINK_SYSROOT_SPEC): Remove most driver link specs. | |
9618 | (STANDARD_STARTFILE_PREFIX_2): Update link-related specs. | |
9619 | (STARTFILE_SPEC): Likewise. | |
9620 | (ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap. | |
9621 | (ASM_SPEC): Update driver-related specs. | |
9622 | (ASM_FINAL_SPEC): Likewise. | |
9623 | * config/darwin.opt: Remove now unused option aliases. | |
9624 | * config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt. | |
9625 | (ASM_SPEC): Update driver-related specs. | |
9626 | ||
9627 | 2021-10-15 Roger Sayle <roger@nextmovesoftware.com> | |
9628 | ||
9629 | * config/i386/i386.c (ix86_hardreg_mov_ok): For vector modes, | |
9630 | allow standard_sse_constant_p immediate constants. | |
9631 | ||
9632 | 2021-10-15 Iain Sandoe <iain@sandoe.co.uk> | |
9633 | ||
9634 | * config.gcc: Add tm-dwarf2.h to tm_d-file. | |
9635 | ||
9636 | 2021-10-15 Andrew MacLeod <amacleod@redhat.com> | |
9637 | ||
9638 | * gimple-range-fold.h (gimple_range_ssa_p): Don't process names | |
9639 | that occur in abnormal phis. | |
9640 | * gimple-range.cc (gimple_ranger::range_on_edge): Return false for | |
9641 | abnormal and EH edges. | |
9642 | * gimple-ssa-evrp.c (rvrp_folder::value_of_expr): Ditto. | |
9643 | (rvrp_folder::value_on_edge): Ditto. | |
9644 | (rvrp_folder::value_of_stmt): Ditto. | |
9645 | (hybrid_folder::value_of_expr): Ditto for ranger queries. | |
9646 | (hybrid_folder::value_on_edge): Ditto. | |
9647 | (hybrid_folder::value_of_stmt): Ditto. | |
9648 | * value-query.cc (gimple_range_global): Always return a range if | |
9649 | the type is supported. | |
9650 | ||
9651 | 2021-10-15 John David Anglin <danglin@gcc.gnu.org> | |
9652 | ||
9653 | * config/pa/pa.md: Consistently use "rG" constraint for copy | |
9654 | instruction in move patterns. | |
9655 | ||
9656 | 2021-10-15 Andrew Stubbs <ams@codesourcery.com> | |
9657 | ||
9658 | * config/gcn/gcn-hsa.h (S_FIJI): Set unconditionally. | |
9659 | (S_900): Likewise. | |
9660 | (S_906): Likewise. | |
9661 | * config/gcn/gcn.c: Hard code SRAM ECC settings for old architectures. | |
9662 | * config/gcn/mkoffload.c (ELFABIVERSION_AMDGPU_HSA): Rename to ... | |
9663 | (ELFABIVERSION_AMDGPU_HSA_V3): ... this. | |
9664 | (ELFABIVERSION_AMDGPU_HSA_V4): New. | |
9665 | (SET_SRAM_ECC_UNSUPPORTED): New. | |
9666 | (copy_early_debug_info): Create elf flags to match the other objects. | |
9667 | (main): Just let the attribute flags pass through. | |
9668 | ||
9669 | 2021-10-15 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
9670 | ||
9671 | * tree-loop-distribution.c (reduction_var_overflows_first): | |
9672 | Pass the type of reduction_var as first argument as it is also | |
9673 | done for the load type. | |
9674 | (loop_distribution::transform_reduction_loop): Add missing | |
9675 | TREE_TYPE while determining precission of reduction_var. | |
9676 | ||
9677 | 2021-10-15 Richard Biener <rguenther@suse.de> | |
9678 | ||
9679 | * defaults.h (PREFERRED_DEBUGGING_TYPE): Choose DWARF2_DEBUG | |
9680 | when not set. | |
9681 | * toplev.c (process_options): Warn when STABS debugging is | |
9682 | enabled but not the preferred format. | |
9683 | * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Define to | |
9684 | DBX_DEBUG. | |
9685 | * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Likewise. | |
9686 | ||
9687 | 2021-10-15 Richard Biener <rguenther@suse.de> | |
9688 | ||
9689 | PR ipa/102762 | |
9690 | * tree-inline.c (copy_bb): Avoid underflowing nargs. | |
9691 | ||
9692 | 2021-10-15 Hongyu Wang <hongyu.wang@intel.com> | |
9693 | ||
9694 | * config/i386/i386-expand.c (ix86_expand_vec_perm): Convert | |
9695 | HFmode input operand to HImode. | |
9696 | (ix86_vectorize_vec_perm_const): Likewise. | |
9697 | * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1_hf): | |
9698 | New define_insn. | |
9699 | (*avx512f_permvar_truncv8siv8hi_1_hf): | |
9700 | Likewise. | |
9701 | ||
9702 | 2021-10-15 Richard Biener <rguenther@suse.de> | |
9703 | ||
9704 | PR middle-end/102682 | |
9705 | * expmed.c (store_bit_field_1): Ensure a LHS subreg would | |
9706 | not create a paradoxical subreg. | |
9707 | ||
9708 | 2021-10-15 Hongyu Wang <hongyu.wang@intel.com> | |
9709 | ||
9710 | * config/i386/i386-expand.c (ix86_expand_vector_init): | |
9711 | For half_vector concat for HFmode, handle them like HImode. | |
9712 | ||
9713 | 2021-10-14 Aldy Hernandez <aldyh@redhat.com> | |
9714 | ||
9715 | * tree-ssa-threadbackward.c (class back_threader): Add m_resolve. | |
9716 | (back_threader::back_threader): Same. | |
9717 | (back_threader::resolve_phi): Try to solve without looking back if | |
9718 | possible. | |
9719 | (back_threader::find_paths_to_names): Same. | |
9720 | (try_thread_blocks): Pass resolve argument to back threader. | |
9721 | (pass_early_thread_jumps::execute): Same. | |
9722 | ||
9723 | 2021-10-14 Aldy Hernandez <aldyh@redhat.com> | |
9724 | ||
9725 | * doc/invoke.texi: Remove max-fsm-thread-length, | |
9726 | max-fsm-thread-paths, and fsm-maximum-phi-arguments. | |
9727 | * params.opt: Same. | |
9728 | * tree-ssa-threadbackward.c (back_threader::back_threader): Remove | |
9729 | argument. | |
9730 | (back_threader_registry::back_threader_registry): Same. | |
9731 | (back_threader_profitability::profitable_path_p): Remove | |
9732 | param_max_fsm_thread-length. | |
9733 | (back_threader_registry::register_path): Remove | |
9734 | m_max_allowable_paths. | |
9735 | ||
9736 | 2021-10-14 Aldy Hernandez <aldyh@redhat.com> | |
9737 | ||
9738 | * tree-ssa-threadbackward.c (class back_threader): Make m_imports | |
9739 | an auto_bitmap. | |
9740 | (back_threader::~back_threader): Do not release m_path. | |
9741 | ||
9742 | 2021-10-14 Andrew MacLeod <amacleod@redhat.com> | |
9743 | ||
9744 | PR tree-optimization/102738 | |
9745 | * vr-values.c (simplify_using_ranges::simplify): Handle RSHIFT_EXPR. | |
9746 | ||
9747 | 2021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com> | |
9748 | ||
9749 | * omp-general.c (omp_check_context_selector): Move from c-omp.c. | |
9750 | (omp_mark_declare_variant): Move from c-omp.c. | |
9751 | (omp_context_name_list_prop): Update for Fortran strings. | |
9752 | * omp-general.h (omp_check_context_selector): New prototype. | |
9753 | (omp_mark_declare_variant): New prototype. | |
9754 | ||
9755 | 2021-10-14 Richard Sandiford <richard.sandiford@arm.com> | |
9756 | ||
9757 | * config/rs6000/rs6000.c (rs6000_density_test): Move early | |
9758 | exit test further up the function. | |
9759 | ||
9760 | 2021-10-14 Richard Sandiford <richard.sandiford@arm.com> | |
9761 | ||
9762 | * config/arm/arm.c (arm_add_stmt_cost): Delete. | |
9763 | (TARGET_VECTORIZE_ADD_STMT_COST): Delete. | |
9764 | ||
9765 | 2021-10-14 Martin Jambor <mjambor@suse.cz> | |
9766 | ||
9767 | * doc/invoke.texi (Optimize Options): Add entry for | |
9768 | ipa-cp-recursive-freq-factor. | |
9769 | ||
9770 | 2021-10-14 Tamar Christina <tamar.christina@arm.com> | |
9771 | ||
9772 | * match.pd: New rule. | |
9773 | ||
9774 | 2021-10-14 Jan Hubicka <hubicka@ucw.cz> | |
9775 | ||
9776 | PR ipa/102557 | |
9777 | * ipa-modref-tree.h (modref_access_node::update2): | |
9778 | Also check that parm_offset is unchanged. | |
9779 | (modref_ref_node::insert_access): Fix updating of | |
9780 | parameter. | |
9781 | ||
9782 | 2021-10-14 Aldy Hernandez <aldyh@redhat.com> | |
9783 | ||
9784 | * tree-ssa-threadbackward.c (back_threader::resolve_phi): Add | |
9785 | FIXME note. | |
9786 | ||
9787 | 2021-10-14 Richard Biener <rguenther@suse.de> | |
9788 | ||
9789 | PR tree-optimization/102659 | |
9790 | * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Also | |
9791 | rewrite pointer typed undefined overflow operations. | |
9792 | (predicate_statements): Likewise. Make sure to emit invariant | |
9793 | conversions in the preheader. | |
9794 | * tree-vectorizer.c (vect_loop_vectorized_call): Look through | |
9795 | non-empty preheaders. | |
9796 | * tree-data-ref.c (dr_analyze_indices): Strip useless | |
9797 | conversions to the MEM_REF base type. | |
9798 | ||
9799 | 2021-10-14 Martin Liska <mliska@suse.cz> | |
9800 | ||
9801 | * common.opt: Stop using AUTODETECT_VALUE | |
9802 | and use EnabledBy where possible. | |
9803 | * opts.c: Enable OPT_fvar_tracking with optimize >= 1. | |
9804 | * toplev.c (AUTODETECT_VALUE): Remove macro. | |
9805 | (process_options): Simplify by using EnabledBy and | |
9806 | OPT_fvar_tracking. Use OPTION_SET_P macro instead of | |
9807 | AUTODETECT_VALUE. | |
9808 | ||
9809 | 2021-10-14 Jonathan Wright <jonathan.wright@arm.com> | |
9810 | ||
9811 | * config/aarch64/arm_neon.h (vld1_s8_x3): Use signed type for | |
9812 | pointer parameter. | |
9813 | (vld1_s32_x3): Likewise. | |
9814 | ||
9815 | 2021-10-14 Aldy Hernandez <aldyh@redhat.com> | |
9816 | ||
9817 | PR tree-optimization/102736 | |
9818 | PR tree-optimization/102736 | |
9819 | * gimple-range-path.cc (path_range_query::range_on_path_entry): | |
9820 | Assert that the requested range is defined outside the path. | |
9821 | (path_range_query::ssa_range_in_phi): Do not call | |
9822 | range_on_path_entry for SSA names that are defined within the | |
9823 | path. | |
9824 | ||
9825 | 2021-10-14 Iain Sandoe <iain@sandoe.co.uk> | |
9826 | ||
9827 | * config/darwin-driver.c (darwin_find_version_from_kernel): | |
9828 | Quote internal identifiers and avoid contractions in | |
9829 | warnings. | |
9830 | (darwin_default_min_version): Likewise. | |
9831 | (darwin_driver_init): Likewise. | |
9832 | ||
9833 | 2021-10-14 Martin Jambor <mjambor@suse.cz> | |
9834 | ||
9835 | * params.opt (ipa-cp-recursive-freq-factor): New. | |
9836 | * ipa-cp.c (ipcp_value): Switch to inline initialization. New members | |
9837 | scc_no, self_recursion_generated_level, same_scc and | |
9838 | self_recursion_generated_p. | |
9839 | (ipcp_lattice::add_value): Replaced parameter unlimited with | |
9840 | same_lat_gen_level, usit it determine limit of values and store it to | |
9841 | the value. | |
9842 | (ipcp_lattice<valtype>::print): Dump the new fileds. | |
9843 | (allocate_and_init_ipcp_value): Take same_lat_gen_level as a new | |
9844 | parameter and store it to the new value. | |
9845 | (self_recursively_generated_p): Removed. | |
9846 | (propagate_vals_across_arith_jfunc): Use self_recursion_generated_p | |
9847 | instead of self_recursively_generated_p, store self generation level | |
9848 | to such values. | |
9849 | (value_topo_info<valtype>::add_val): Set scc_no. | |
9850 | (value_topo_info<valtype>::propagate_effects): Multiply frequencies of | |
9851 | recursively feeding values and self generated values by appropriate | |
9852 | new factors. | |
9853 | ||
9854 | 2021-10-14 Richard Sandiford <richard.sandiford@arm.com> | |
9855 | ||
9856 | * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Remove | |
9857 | redundant test for flag_vect_cost_model. | |
9858 | ||
9859 | 2021-10-14 Aldy Hernandez <aldyh@redhat.com> | |
9860 | ||
9861 | * bitmap.c (debug): New overloaded function for auto_bitmaps. | |
9862 | * bitmap.h (debug): Same. | |
9863 | ||
9864 | 2021-10-14 Hongyu Wang <hongyu.wang@intel.com> | |
9865 | ||
9866 | * config/i386/avx512fp16intrin.h (_mm512_mask_fcmadd_pch): | |
9867 | Adjust builtin call. | |
9868 | (_mm512_mask3_fcmadd_pch): Likewise. | |
9869 | (_mm512_mask_fmadd_pch): Likewise | |
9870 | (_mm512_mask3_fmadd_pch): Likewise | |
9871 | (_mm512_mask_fcmadd_round_pch): Likewise | |
9872 | (_mm512_mask3_fcmadd_round_pch): Likewise | |
9873 | (_mm512_mask_fmadd_round_pch): Likewise | |
9874 | (_mm512_mask3_fmadd_round_pch): Likewise | |
9875 | (_mm_mask_fcmadd_sch): Likewise | |
9876 | (_mm_mask3_fcmadd_sch): Likewise | |
9877 | (_mm_mask_fmadd_sch): Likewise | |
9878 | (_mm_mask3_fmadd_sch): Likewise | |
9879 | (_mm_mask_fcmadd_round_sch): Likewise | |
9880 | (_mm_mask3_fcmadd_round_sch): Likewise | |
9881 | (_mm_mask_fmadd_round_sch): Likewise | |
9882 | (_mm_mask3_fmadd_round_sch): Likewise | |
9883 | (_mm_fcmadd_round_sch): Likewise | |
9884 | * config/i386/avx512fp16vlintrin.h (_mm_mask_fmadd_pch): | |
9885 | Adjust builtin call. | |
9886 | (_mm_mask3_fmadd_pch): Likewise | |
9887 | (_mm256_mask_fmadd_pch): Likewise | |
9888 | (_mm256_mask3_fmadd_pch): Likewise | |
9889 | (_mm_mask_fcmadd_pch): Likewise | |
9890 | (_mm_mask3_fcmadd_pch): Likewise | |
9891 | (_mm256_mask_fcmadd_pch): Likewise | |
9892 | (_mm256_mask3_fcmadd_pch): Likewise | |
9893 | * config/i386/i386-builtin.def: Add mask3 builtin for complex | |
9894 | fma, and adjust mask_builtin to corresponding expander. | |
9895 | * config/i386/i386-expand.c (ix86_expand_round_builtin): | |
9896 | Skip eraseing embedded rounding for expanders that emits | |
9897 | multiple insns. | |
9898 | * config/i386/sse.md (complexmove): New mode_attr. | |
9899 | (<avx512>_fmaddc_<mode>_mask1<round_expand_name>): New expander. | |
9900 | (<avx512>_fcmaddc_<mode>_mask1<round_expand_name>): Likewise. | |
9901 | (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name>): Likewise. | |
9902 | (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>): Likewise. | |
9903 | (avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>): Likewise. | |
9904 | (avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>): Likewise. | |
9905 | * config/i386/subst.md (round_embedded_complex): New subst. | |
9906 | ||
9907 | 2021-10-14 John David Anglin <danglin@gcc.gnu.org> | |
9908 | ||
9909 | * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. | |
9910 | (cbranchdf4): Likewise. | |
9911 | Add missing move patterns for TARGET_SOFT_FLOAT. | |
9912 | ||
9913 | 2021-10-13 Roger Sayle <roger@nextmovesoftware.com> | |
9914 | ||
9915 | * config/i386/i386-expand.c (ix86_expand_vector_move): Use a | |
9916 | pseudo intermediate when moving a SUBREG into a hard register, | |
9917 | by checking ix86_hardreg_mov_ok. | |
9918 | (ix86_expand_vector_extract): Store zero-extended SImode | |
9919 | intermediate in a pseudo, then set target using a SUBREG_PROMOTED | |
9920 | annotated subreg. | |
9921 | * config/i386/sse.md (mov<VMOVE>_internal): Prevent CSE creating | |
9922 | complex (SUBREG) sets of (vector) hard registers before reload, by | |
9923 | checking ix86_hardreg_mov_ok. | |
9924 | ||
9925 | 2021-10-13 Indu Bhagat <indu.bhagat@oracle.com> | |
9926 | ||
9927 | * ctfc.h (enum ctf_dtu_d_union_enum): Remove redundant comma. | |
9928 | ||
9929 | 2021-10-13 Indu Bhagat <indu.bhagat@oracle.com> | |
9930 | ||
9931 | * dwarf2ctf.c (gen_ctf_array_type): Fix typo in comment. | |
9932 | ||
9933 | 2021-10-13 Martin Sebor <msebor@redhat.com> | |
9934 | ||
9935 | PR middle-end/102630 | |
9936 | * pointer-query.cc (compute_objsize_r): Handle named address spaces. | |
9937 | ||
9938 | 2021-10-13 Iain Sandoe <iain@sandoe.co.uk> | |
9939 | ||
9940 | * collect2.c (is_lto_object_file): Release simple-object | |
9941 | resources, close files. | |
9942 | ||
9943 | 2021-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
9944 | ||
9945 | * config/arm/arm.c (thumb2_legitimate_address_p): Use VALID_MVE_MODE | |
9946 | when checking mve addressing modes. | |
9947 | (mve_vector_mem_operand): Fix the way we handle pre, post and offset | |
9948 | addressing modes. | |
9949 | (arm_print_operand): Fix printing of POST_ and PRE_MODIFY. | |
9950 | * config/arm/mve.md: Use mve_memory_operand predicate everywhere where | |
9951 | there is a single Ux constraint. | |
9952 | ||
9953 | 2021-10-13 John David Anglin <danglin@gcc.gnu.org> | |
9954 | ||
9955 | * config/pa/pa.md (muldi3): Add support for inlining 64-bit | |
9956 | multiplication on 32-bit PA 1.1 and 2.0 targets. | |
9957 | ||
9958 | 2021-10-13 Martin Liska <mliska@suse.cz> | |
9959 | ||
9960 | PR gcov-profile/90364 | |
9961 | * coverage.c (build_info): Emit checksum to the global variable. | |
9962 | (build_info_type): Add new field for checksum. | |
9963 | (coverage_obj_finish): Pass object_checksum. | |
9964 | (coverage_init): Use 0 as checksum for .gcno files. | |
9965 | * gcov-dump.c (dump_gcov_file): Dump also new checksum field. | |
9966 | * gcov.c (read_graph_file): Read also checksum. | |
9967 | * doc/invoke.texi: Document the behaviour change. | |
9968 | ||
9969 | 2021-10-13 Richard Biener <rguenther@suse.de> | |
9970 | ||
9971 | * gimple-iterator.h (gsi_iterator_update): Add GSI_LAST_NEW_STMT, | |
9972 | start at integer value 2. | |
9973 | * gimple-iterator.c (gsi_insert_seq_nodes_before): Update | |
9974 | the iterator for GSI_LAST_NEW_STMT. | |
9975 | (gsi_insert_seq_nodes_after): Likewise. | |
9976 | * tree-if-conv.c (predicate_statements): Use GSI_LAST_NEW_STMT. | |
9977 | * tree-ssa.c (execute_update_addresses_taken): Correct bogus | |
9978 | arguments to gsi_replace. | |
9979 | ||
9980 | 2021-10-13 Martin Liska <mliska@suse.cz> | |
9981 | ||
9982 | PR target/102688 | |
9983 | * common.opt: Use EnabledBy instead of detection in | |
9984 | finish_options and process_options. | |
9985 | * opts.c (finish_options): Remove handling of | |
9986 | x_flag_unroll_all_loops. | |
9987 | * toplev.c (process_options): Likewise for flag_web and | |
9988 | flag_rename_registers. | |
9989 | ||
9990 | 2021-10-13 Richard Biener <rguenther@suse.de> | |
9991 | ||
9992 | PR tree-optimization/102659 | |
9993 | * tree-if-conv.c (need_to_rewrite_undefined): New flag. | |
9994 | (if_convertible_gimple_assign_stmt_p): Mark the loop for | |
9995 | rewrite when stmts with undefined behavior on integer | |
9996 | overflow appear. | |
9997 | (combine_blocks): Predicate also when we need to rewrite stmts. | |
9998 | (predicate_statements): Rewrite affected stmts to something | |
9999 | with well-defined behavior on overflow. | |
10000 | (tree_if_conversion): Initialize need_to_rewrite_undefined. | |
10001 | ||
10002 | 2021-10-13 Richard Biener <rguenther@suse.de> | |
10003 | ||
10004 | PR ipa/102714 | |
10005 | * ipa-sra.c (ptr_parm_has_nonarg_uses): Fix volatileness | |
10006 | check. | |
10007 | ||
10008 | 2021-10-13 Jose E. Marchesi <jose.marchesi@oracle.com> | |
10009 | ||
10010 | * dwarf2ctf.c: Fix typo in comment. | |
10011 | ||
10012 | 2021-10-12 Bill Schmidt <wschmidt@linux.ibm.com> | |
10013 | ||
10014 | PR target/101985 | |
10015 | * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. | |
10016 | * config/rs6000/rs6000-overload.def (VEC_COPYSIGN): Use SKIP to | |
10017 | avoid generating an automatic #define of vec_cpsgn. Use the | |
10018 | correct built-in for V4SFmode that doesn't depend on VSX. | |
10019 | ||
10020 | 2021-10-12 Uroš Bizjak <ubizjak@gmail.com> | |
10021 | ||
10022 | PR target/85730 | |
10023 | PR target/82524 | |
10024 | * config/i386/i386.md (*add<mode>_1_slp): Rewrite as | |
10025 | define_insn_and_split pattern. Add alternative 1 and split it | |
10026 | post reload to insert operand 1 into the low part of operand 0. | |
10027 | (*sub<mode>_1_slp): Ditto. | |
10028 | (*and<mode>_1_slp): Ditto. | |
10029 | (*<any_or:code><mode>_1_slp): Ditto. | |
10030 | (*ashl<mode>3_1_slp): Ditto. | |
10031 | (*<any_shiftrt:insn><mode>3_1_slp): Ditto. | |
10032 | (*<any_rotate:insn><mode>3_1_slp): Ditto. | |
10033 | (*neg<mode>_1_slp): New insn_and_split pattern. | |
10034 | (*one_cmpl<mode>_1_slp): Ditto. | |
10035 | ||
10036 | 2021-10-12 David Edelsohn <dje.gcc@gmail.com> | |
10037 | ||
10038 | * doc/install.texi: Update MinGW and mingw-64 Binaries | |
10039 | download links. | |
10040 | ||
10041 | 2021-10-12 Daniel Le Duc Khoi Nguyen <greenrecyclebin@gmail.com> | |
10042 | ||
10043 | * doc/extend.texi (Common Variable Attributes): Fix typos in | |
10044 | alloc_size documentation. | |
10045 | ||
10046 | 2021-10-12 Richard Biener <rguenther@suse.de> | |
10047 | ||
10048 | PR tree-optimization/102696 | |
10049 | * tree-vect-slp.c (vect_build_slp_tree_2): Properly mark | |
10050 | the tree fatally failed when we reject a BIT_FIELD_REF. | |
10051 | ||
10052 | 2021-10-12 Richard Biener <rguenther@suse.de> | |
10053 | ||
10054 | PR tree-optimization/102572 | |
10055 | * tree-vect-stmts.c (vect_build_gather_load_calls): When | |
10056 | gathering the vectorized defs for the mask pass in the | |
10057 | desired mask vector type so invariants will be handled | |
10058 | correctly. | |
10059 | ||
10060 | 2021-10-12 Tamar Christina <tamar.christina@arm.com> | |
10061 | ||
10062 | * config/aarch64/aarch64-sve.md (*fcm<cmp_op><mode>_bic_combine, | |
10063 | *fcm<cmp_op><mode>_nor_combine, *fcmuo<mode>_bic_combine, | |
10064 | *fcmuo<mode>_nor_combine): New. | |
10065 | ||
10066 | 2021-10-12 Eric Botcazou <ebotcazou@adacore.com> | |
10067 | ||
10068 | PR target/102588 | |
10069 | * config/sparc/sparc-modes.def (OI): New integer mode. | |
10070 | ||
10071 | 2021-10-12 Jakub Jelinek <jakub@redhat.com> | |
10072 | ||
10073 | * gimple-fold.h (clear_padding_type_may_have_padding_p): Declare. | |
10074 | * gimple-fold.c (clear_padding_type_may_have_padding_p): No longer | |
10075 | static. | |
10076 | ||
10077 | 2021-10-12 Jakub Jelinek <jakub@redhat.com> | |
10078 | ||
10079 | * tree-vectorizer.h (loop_cost_model): New function. | |
10080 | (unlimited_cost_model): Use it. | |
10081 | * tree-vect-loop.c (vect_analyze_loop_costing): Use loop_cost_model | |
10082 | call instead of flag_vect_cost_model. | |
10083 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. | |
10084 | (vect_prune_runtime_alias_test_list): Likewise. Also use it instead | |
10085 | of flag_simd_cost_model. | |
10086 | ||
10087 | 2021-10-12 liuhongt <hongtao.liu@intel.com> | |
10088 | ||
10089 | PR target/102483 | |
10090 | * config/i386/i386-expand.c (emit_reduc_half): Handle | |
10091 | V4QImode. | |
10092 | * config/i386/mmx.md (reduc_<code>_scal_v4qi): New expander. | |
10093 | (reduc_plus_scal_v4qi): Ditto. | |
10094 | ||
10095 | 2021-10-12 Paul A. Clarke <pc@us.ibm.com> | |
10096 | ||
10097 | * config/rs6000/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64, | |
10098 | _mm_mullo_epi32, _mm_mul_epi32, _mm_packus_epi32): New. | |
10099 | * config/rs6000/nmmintrin.h: Copy from i386, tweak to suit. | |
10100 | ||
10101 | 2021-10-12 Paul A. Clarke <pc@us.ibm.com> | |
10102 | ||
10103 | * config/rs6000/smmintrin.h (_mm_cvtepi8_epi16, _mm_cvtepi8_epi32, | |
10104 | _mm_cvtepi8_epi64, _mm_cvtepi16_epi32, _mm_cvtepi16_epi64, | |
10105 | _mm_cvtepi32_epi64, _mm_cvtepu8_epi16, _mm_cvtepu8_epi32, | |
10106 | _mm_cvtepu8_epi64, _mm_cvtepu16_epi32, _mm_cvtepu16_epi64, | |
10107 | _mm_cvtepu32_epi64): New. | |
10108 | ||
10109 | 2021-10-12 Paul A. Clarke <pc@us.ibm.com> | |
10110 | ||
10111 | * config/rs6000/smmintrin.h (_mm_test_all_zeros, | |
10112 | _mm_test_all_ones, _mm_test_mix_ones_zeros): Rewrite as macro. | |
10113 | ||
10114 | 2021-10-12 Paul A. Clarke <pc@us.ibm.com> | |
10115 | ||
10116 | * config/rs6000/smmintrin.h (_mm_min_epi8, _mm_min_epu16, | |
10117 | _mm_min_epi32, _mm_min_epu32, _mm_max_epi8, _mm_max_epu16, | |
10118 | _mm_max_epi32, _mm_max_epu32): New. | |
10119 | ||
10120 | 2021-10-11 Jan Hubicka <hubicka@ucw.cz> | |
10121 | ||
10122 | * ipa-modref-tree.h (struct modref_access_node): Revert | |
10123 | accidental change. | |
10124 | (struct modref_ref_node): Likewise. | |
10125 | ||
10126 | 2021-10-11 Jan Hubicka <hubicka@ucw.cz> | |
10127 | ||
10128 | * ipa-modref-tree.h (modref_tree::global_access_p): New member | |
10129 | function. | |
10130 | * ipa-modref.c: | |
10131 | (implicint_const_eaf_flags,implicit_pure_eaf_flags, | |
10132 | ignore_stores_eaf_flags): Move to ipa-modref.h | |
10133 | (remove_useless_eaf_flags): Remove early exit on NOCLOBBER. | |
10134 | (modref_summary::global_memory_read_p): New member function. | |
10135 | (modref_summary::global_memory_written_p): New member function. | |
10136 | * ipa-modref.h (modref_summary::global_memory_read_p, | |
10137 | modref_summary::global_memory_written_p): Declare. | |
10138 | (implicint_const_eaf_flags,implicit_pure_eaf_flags, | |
10139 | ignore_stores_eaf_flags): move here. | |
10140 | * tree-ssa-structalias.c: Include ipa-modref-tree.h, ipa-modref.h | |
10141 | and attr-fnspec.h. | |
10142 | (handle_rhs_call): Rewrite. | |
10143 | (handle_call_arg): New function. | |
10144 | (determine_global_memory_access): New function. | |
10145 | (handle_const_call): Remove | |
10146 | (handle_pure_call): Remove | |
10147 | (find_func_aliases_for_call): Update use of handle_rhs_call. | |
10148 | (compute_points_to_sets): Handle global memory acccesses | |
10149 | selectively | |
10150 | ||
10151 | 2021-10-11 Diane Meirowitz <diane.meirowitz@oracle.com> | |
10152 | ||
10153 | * doc/invoke.texi: Add link to UndefinedBehaviorSanitizer | |
10154 | documentation, mention UBSAN_OPTIONS, similar to what is done | |
10155 | for AddressSanitizer. | |
10156 | ||
10157 | 2021-10-11 Richard Biener <rguenther@suse.de> | |
10158 | ||
10159 | PR middle-end/102683 | |
10160 | * internal-fn.c (expand_DEFERRED_INIT): Check for mode | |
10161 | availability before building an integer type for storage | |
10162 | purposes. | |
10163 | ||
10164 | 2021-10-11 Richard Biener <rguenther@suse.de> | |
10165 | ||
10166 | PR middle-end/101480 | |
10167 | * gimple.c (gimple_call_fnspec): Do not mark operator new/delete | |
10168 | as const. | |
10169 | ||
10170 | 2021-10-11 Martin Liska <mliska@suse.cz> | |
10171 | ||
10172 | * common.opt: Remove Init(2) for some options. | |
10173 | * toplev.c (process_options): Do not use AUTODETECT_VALUE, but | |
10174 | use rather OPTION_SET_P. | |
10175 | ||
10176 | 2021-10-11 Martin Liska <mliska@suse.cz> | |
10177 | ||
10178 | * common.opt: Remove usage of IRA_REGION_AUTODETECT. | |
10179 | * flag-types.h (enum ira_region): Likewise. | |
10180 | * toplev.c (process_options): Use OPTION_SET_P instead of | |
10181 | IRA_REGION_AUTODETECT. | |
10182 | ||
10183 | 2021-10-11 Jakub Jelinek <jakub@redhat.com> | |
10184 | ||
10185 | * omp-low.c (omp_runtime_api_call): Handle omp_get_max_teams, | |
10186 | omp_[sg]et_teams_thread_limit and omp_set_num_teams. | |
10187 | ||
10188 | 2021-10-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
10189 | ||
10190 | * config/s390/s390-protos.h (s390_rawmemchr): Add prototype. | |
10191 | * config/s390/s390.c (s390_rawmemchr): New function. | |
10192 | * config/s390/s390.md (rawmemchr<SINT:mode>): New expander. | |
10193 | * config/s390/vector.md (@vec_vfees<mode>): Basically a copy of | |
10194 | the pattern vfees<mode> from vx-builtins.md. | |
10195 | * config/s390/vx-builtins.md (*vfees<mode>): Remove. | |
10196 | ||
10197 | 2021-10-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
10198 | ||
10199 | * builtins.c (get_memory_rtx): Change to external linkage. | |
10200 | * builtins.h (get_memory_rtx): Add function prototype. | |
10201 | * doc/md.texi (rawmemchr<mode>): Document. | |
10202 | * internal-fn.c (expand_RAWMEMCHR): Define. | |
10203 | * internal-fn.def (RAWMEMCHR): Add. | |
10204 | * optabs.def (rawmemchr_optab): Add. | |
10205 | * tree-loop-distribution.c (find_single_drs): Change return code | |
10206 | behaviour by also returning true if no single store was found | |
10207 | but a single load. | |
10208 | (loop_distribution::classify_partition): Respect the new return | |
10209 | code behaviour of function find_single_drs. | |
10210 | (loop_distribution::execute): Call new function | |
10211 | transform_reduction_loop in order to replace rawmemchr or strlen | |
10212 | like loops by calls into builtins. | |
10213 | (generate_reduction_builtin_1): New function. | |
10214 | (generate_rawmemchr_builtin): New function. | |
10215 | (generate_strlen_builtin_1): New function. | |
10216 | (generate_strlen_builtin): New function. | |
10217 | (generate_strlen_builtin_using_rawmemchr): New function. | |
10218 | (reduction_var_overflows_first): New function. | |
10219 | (determine_reduction_stmt_1): New function. | |
10220 | (determine_reduction_stmt): New function. | |
10221 | (loop_distribution::transform_reduction_loop): New function. | |
10222 | ||
10223 | 2021-10-11 Martin Liska <mliska@suse.cz> | |
10224 | ||
10225 | * tree.c (cl_option_hasher::hash): Use cl_optimization_hash | |
10226 | and remove legacy hashing code. | |
10227 | ||
10228 | 2021-10-11 Kito Cheng <kito.cheng@sifive.com> | |
10229 | ||
10230 | PR target/100316 | |
10231 | * builtins.c (maybe_emit_call_builtin___clear_cache): Allow | |
10232 | CONST_INT for BEGIN and END, and use gcc_assert rather than | |
10233 | error. | |
10234 | ||
10235 | 2021-10-10 Jakub Jelinek <jakub@redhat.com> | |
10236 | ||
10237 | PR debug/102441 | |
10238 | * var-tracking.c (add_stores): For cselib_sp_derived_value_p values | |
10239 | use MO_VAL_SET if loc is not sp. | |
10240 | ||
10241 | 2021-10-10 Andrew Pinski <apinski@marvell.com> | |
10242 | ||
10243 | PR tree-optimization/102622 | |
10244 | * match.pd: Swap the order of a?pow2cst:0 and a?-1:0 transformations. | |
10245 | Swap the order of a?0:pow2cst and a?0:-1 transformations. | |
10246 | ||
10247 | 2021-10-09 liuhongt <hongtao.liu@intel.com> | |
10248 | ||
10249 | PR target/102639 | |
10250 | * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Handle | |
10251 | HFmode. | |
10252 | (ix86_use_mask_cmp_p): Ditto. | |
10253 | (ix86_expand_sse_movcc): Ditto. | |
10254 | * config/i386/i386.md (setcc_hf_mask): New define_insn. | |
10255 | (movhf_mask): Ditto. | |
10256 | (UNSPEC_MOVCC_MASK): New unspec. | |
10257 | * config/i386/sse.md (UNSPEC_PCMP): Move to i386.md. | |
10258 | ||
10259 | 2021-10-08 Vladimir N. Makarov <vmakarov@redhat.com> | |
10260 | ||
10261 | PR rtl-optimization/102627 | |
10262 | * lra-constraints.c (split_reg): Use at least natural mode of hard reg. | |
10263 | ||
10264 | 2021-10-08 Aldy Hernandez <aldyh@redhat.com> | |
10265 | ||
10266 | * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Grow | |
10267 | bitmap if needed. | |
10268 | ||
10269 | 2021-10-08 Aldy Hernandez <aldyh@redhat.com> | |
10270 | ||
10271 | * value-range.cc (irange::debug): New. | |
10272 | * value-range.h (irange::debug): New. | |
10273 | ||
10274 | 2021-10-08 Richard Sandiford <richard.sandiford@arm.com> | |
10275 | ||
10276 | PR tree-optimization/102385 | |
10277 | * predict.h (change_edge_frequency): Declare. | |
10278 | * predict.c (change_edge_frequency): New function. | |
10279 | * tree-ssa-loop-manip.h (tree_transform_and_unroll_loop): Remove | |
10280 | edge argument. | |
10281 | (tree_unroll_loop): Likewise. | |
10282 | * gimple-loop-jam.c (tree_loop_unroll_and_jam): Update accordingly. | |
10283 | * tree-predcom.c (pcom_worker::tree_predictive_commoning_loop): | |
10284 | Likewise. | |
10285 | * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Likewise. | |
10286 | * tree-ssa-loop-manip.c (tree_unroll_loop): Likewise. | |
10287 | (tree_transform_and_unroll_loop): Likewise. Use single_dom_exit | |
10288 | to retrieve the exit edges. Make all the old profile update code | |
10289 | conditional on !single_loop_p -- the case it was written for -- | |
10290 | and use a different approach for the single-loop case. | |
10291 | ||
10292 | 2021-10-08 Martin Liska <mliska@suse.cz> | |
10293 | ||
10294 | * config/alpha/alpha.c (alpha_option_override): Use new macro | |
10295 | OPTION_SET_P. | |
10296 | * config/arc/arc.c (arc_override_options): Likewise. | |
10297 | * config/arm/arm.c (arm_option_override): Likewise. | |
10298 | * config/bfin/bfin.c (bfin_load_pic_reg): Likewise. | |
10299 | * config/c6x/c6x.c (c6x_option_override): Likewise. | |
10300 | * config/csky/csky.c: Likewise. | |
10301 | * config/darwin.c (darwin_override_options): Likewise. | |
10302 | * config/frv/frv.c (frv_option_override): Likewise. | |
10303 | * config/i386/djgpp.h: Likewise. | |
10304 | * config/i386/i386.c (ix86_stack_protect_guard): Likewise. | |
10305 | (ix86_max_noce_ifcvt_seq_cost): Likewise. | |
10306 | * config/ia64/ia64.c (ia64_option_override): Likewise. | |
10307 | (ia64_override_options_after_change): Likewise. | |
10308 | * config/m32c/m32c.c (m32c_option_override): Likewise. | |
10309 | * config/m32r/m32r.c (m32r_init): Likewise. | |
10310 | * config/m68k/m68k.c (m68k_option_override): Likewise. | |
10311 | * config/microblaze/microblaze.c (microblaze_option_override): Likewise. | |
10312 | * config/mips/mips.c (mips_option_override): Likewise. | |
10313 | * config/nios2/nios2.c (nios2_option_override): Likewise. | |
10314 | * config/nvptx/nvptx.c (nvptx_option_override): Likewise. | |
10315 | * config/pa/pa.c (pa_option_override): Likewise. | |
10316 | * config/riscv/riscv.c (riscv_option_override): Likewise. | |
10317 | * config/rs6000/aix71.h: Likewise. | |
10318 | * config/rs6000/aix72.h: Likewise. | |
10319 | * config/rs6000/aix73.h: Likewise. | |
10320 | * config/rs6000/rs6000.c (darwin_rs6000_override_options): Likewise. | |
10321 | (rs6000_override_options_after_change): Likewise. | |
10322 | (rs6000_linux64_override_options): Likewise. | |
10323 | (glibc_supports_ieee_128bit): Likewise. | |
10324 | (rs6000_option_override_internal): Likewise. | |
10325 | (rs6000_file_start): Likewise. | |
10326 | (rs6000_darwin_file_start): Likewise. | |
10327 | * config/rs6000/rtems.h: Likewise. | |
10328 | * config/rs6000/sysv4.h: Likewise. | |
10329 | * config/rs6000/vxworks.h (SUB3TARGET_OVERRIDE_OPTIONS): Likewise. | |
10330 | * config/s390/s390.c (s390_option_override): Likewise. | |
10331 | * config/sh/linux.h: Likewise. | |
10332 | * config/sh/netbsd-elf.h (while): Likewise. | |
10333 | * config/sh/sh.c (sh_option_override): Likewise. | |
10334 | * config/sol2.c (solaris_override_options): Likewise. | |
10335 | * config/sparc/sparc.c (sparc_option_override): Likewise. | |
10336 | * config/tilegx/tilegx.c (tilegx_option_override): Likewise. | |
10337 | * config/visium/visium.c (visium_option_override): Likewise. | |
10338 | * config/vxworks.c (vxworks_override_options): Likewise. | |
10339 | * lto-opts.c (lto_write_options): Likewise. | |
10340 | * omp-expand.c (expand_omp_simd): Likewise. | |
10341 | * omp-general.c (omp_max_vf): Likewise. | |
10342 | * omp-offload.c (oacc_xform_loop): Likewise. | |
10343 | * opts.h (OPTION_SET_P): Likewise. | |
10344 | * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise. | |
10345 | * toplev.c (process_options): Likewise. | |
10346 | * tree-predcom.c: Likewise. | |
10347 | * tree-sra.c (analyze_all_variable_accesses): Likewise. | |
10348 | ||
10349 | 2021-10-08 liuhongt <hongtao.liu@intel.com> | |
10350 | ||
10351 | PR target/102464 | |
10352 | * config/i386/i386.c (ix86_optab_supported_p): | |
10353 | Return true for HFmode. | |
10354 | * match.pd: Simplify (_Float16) ceil ((double) x) to | |
10355 | __builtin_ceilf16 (a) when a is _Float16 type and | |
10356 | direct_internal_fn_supported_p. | |
10357 | ||
10358 | 2021-10-08 liuhongt <hongtao.liu@intel.com> | |
10359 | ||
10360 | PR target/102494 | |
10361 | * config/i386/i386-expand.c (emit_reduc_half): Hanlde V4HImode. | |
10362 | * config/i386/mmx.md (reduc_plus_scal_v4hi): New. | |
10363 | (reduc_<code>_scal_v4hi): New. | |
10364 | ||
10365 | 2021-10-08 liuhongt <hongtao.liu@intel.com> | |
10366 | ||
10367 | * common.opt (ftree-vectorize): Add Var(flag_tree_vectorize). | |
10368 | * doc/invoke.texi (Options That Control Optimization): Update | |
10369 | documents. | |
10370 | * opts.c (default_options_table): Enable auto-vectorization at | |
10371 | O2 with very-cheap cost model. | |
10372 | (finish_options): Use cheap cost model for | |
10373 | explicit -ftree{,-loop}-vectorize. | |
10374 | ||
10375 | 2021-10-07 Indu Bhagat <indu.bhagat@oracle.com> | |
10376 | ||
10377 | * ctfc.c (ctfc_delete_container): Free hash table contents. | |
10378 | ||
10379 | 2021-10-07 Indu Bhagat <indu.bhagat@oracle.com> | |
10380 | ||
10381 | * toplev.c (process_options): Do not warn for GNU GIMPLE. | |
10382 | ||
10383 | 2021-10-07 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
10384 | ||
10385 | * tree-object-size.c (addr_object_size, | |
10386 | compute_builtin_object_size): Drop PDECL and POFF arguments. | |
10387 | (addr_object_size): Adjust calls. | |
10388 | * tree-object-size.h (compute_builtin_object_size): Drop PDECL | |
10389 | and POFF arguments. | |
10390 | ||
10391 | 2021-10-07 Roger Sayle <roger@nextmovesoftware.com> | |
10392 | ||
10393 | * rtl.def (SMUL_HIGHPART, UMUL_HIGHPART): New RTX codes for | |
10394 | representing signed and unsigned high-part multiplication resp. | |
10395 | * simplify-rtx.c (simplify_binary_operation_1) [SMUL_HIGHPART, | |
10396 | UMUL_HIGHPART]: Simplify high-part multiplications by zero. | |
10397 | [SS_PLUS, US_PLUS, SS_MINUS, US_MINUS, SS_MULT, US_MULT, | |
10398 | SS_DIV, US_DIV]: Similar simplifications for saturating | |
10399 | arithmetic. | |
10400 | (simplify_const_binary_operation) [SS_PLUS, US_PLUS, SS_MINUS, | |
10401 | US_MINUS, SS_MULT, US_MULT, SMUL_HIGHPART, UMUL_HIGHPART]: | |
10402 | Implement compile-time evaluation for constant operands. | |
10403 | * dwarf2out.c (mem_loc_descriptor): Skip SMUL_HIGHPART and | |
10404 | UMUL_HIGHPART. | |
10405 | * doc/rtl.texi (smul_highpart, umul_highpart): Document RTX codes. | |
10406 | * doc/md.texi (smul@var{m}3_highpart, umul@var{m3}_highpart): | |
10407 | Mention the new smul_highpart and umul_highpart RTX codes. | |
10408 | * doc/invoke.texi: Silence @xref "compilation" warnings. | |
10409 | ||
10410 | 2021-10-07 Martin Jambor <mjambor@suse.cz> | |
10411 | ||
10412 | PR ipa/102388 | |
10413 | * ipa-prop.c (ipa_edge_args_sum_t::duplicate): Also handle the | |
10414 | case when the source reference description corresponds to a | |
10415 | referance taken in a function src->caller is inlined to. | |
10416 | ||
10417 | 2021-10-07 Jan Hubicka <hubicka@ucw.cz> | |
10418 | ||
10419 | PR ipa/102581 | |
10420 | * ipa-modref-tree.h (modref_access_node::contains_p): Handle offsets | |
10421 | better. | |
10422 | (modref_access_node::try_merge_with): Add sanity check that there | |
10423 | are no redundant entries in the list. | |
10424 | ||
10425 | 2021-10-07 Richard Biener <rguenther@suse.de> | |
10426 | ||
10427 | PR tree-optimization/102608 | |
10428 | * tree-ssa-sccvn.c (visit_stmt): Drop .DEFERRED_INIT to | |
10429 | varying. | |
10430 | ||
10431 | 2021-10-07 Martin Liska <mliska@suse.cz> | |
10432 | ||
10433 | * toplev.c (toplev::main): Make | |
10434 | save_opt_decoded_options a pointer type | |
10435 | * toplev.h: Likewise. | |
10436 | ||
10437 | 2021-10-07 Andrew Stubbs <ams@codesourcery.com> | |
10438 | ||
10439 | * config/gcn/gcn-valu.md (gather<mode>_insn_2offsets<exec>): Apply | |
10440 | HAVE_GCN_ASM_GLOBAL_LOAD_FIXED. | |
10441 | (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. | |
10442 | ||
10443 | 2021-10-07 Andrew Stubbs <ams@codesourcery.com> | |
10444 | ||
10445 | * config/gcn/gcn-hsa.h (SRAMOPT): Include the whole option string. | |
10446 | Adjust for new -msram-ecc=any behaviour. | |
10447 | (ASM_SPEC): Adjust -mxnack and -msram-ecc usage. | |
10448 | * config/gcn/gcn.c (output_file_start): Implement -msram-ecc=any. | |
10449 | * config/gcn/mkoffload.c (EF_AMDGPU_XNACK): Rename to ... | |
10450 | (EF_AMDGPU_XNACK_V3): ... this. | |
10451 | (EF_AMDGPU_SRAM_ECC): Rename to ... | |
10452 | (EF_AMDGPU_SRAM_ECC_V3): ... this. | |
10453 | (EF_AMDGPU_FEATURE_XNACK_V4): New. | |
10454 | (EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4): New. | |
10455 | (EF_AMDGPU_FEATURE_XNACK_ANY_V4): New. | |
10456 | (EF_AMDGPU_FEATURE_XNACK_OFF_V4): New. | |
10457 | (EF_AMDGPU_FEATURE_XNACK_ON_V4): New. | |
10458 | (EF_AMDGPU_FEATURE_SRAMECC_V4): New. | |
10459 | (EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4): New. | |
10460 | (EF_AMDGPU_FEATURE_SRAMECC_ANY_V4): New. | |
10461 | (EF_AMDGPU_FEATURE_SRAMECC_OFF_V4): New. | |
10462 | (EF_AMDGPU_FEATURE_SRAMECC_ON_V4): New. | |
10463 | (SET_XNACK_ON): New. | |
10464 | (SET_XNACK_OFF): New. | |
10465 | (TEST_XNACK): New. | |
10466 | (SET_SRAM_ECC_ON): New. | |
10467 | (SET_SRAM_ECC_ANY): New. | |
10468 | (SET_SRAM_ECC_OFF): New. | |
10469 | (TEST_SRAM_ECC_ANY): New. | |
10470 | (TEST_SRAM_ECC_ON): New. | |
10471 | (main): Implement HSACOv4 and -msram-ecc=any. | |
10472 | ||
10473 | 2021-10-07 Andrew Stubbs <ams@codesourcery.com> | |
10474 | ||
10475 | * config.in: Regenerate. | |
10476 | * config/gcn/gcn-hsa.h (X_FIJI): New macro. | |
10477 | (X_900): New macro. | |
10478 | (X_906): New macro. | |
10479 | (X_908): New macro. | |
10480 | (A_FIJI): Rename to ... | |
10481 | (S_FIJI): ... this. | |
10482 | (A_900): Rename to ... | |
10483 | (S_900): ... this. | |
10484 | (A_906): Rename to ... | |
10485 | (S_906): ... this. | |
10486 | (A_908): Rename to ... | |
10487 | (S_908): ... this. | |
10488 | (SRAMOPT): New macro. | |
10489 | (ASM_SPEC): Adjust xnack option usage. | |
10490 | * config/gcn/gcn.c (output_file_start): Adjust amdgcn_target usage. | |
10491 | * configure: Regenerate. | |
10492 | * configure.ac: Detect LLVM assembler dialect. | |
10493 | ||
10494 | 2021-10-07 Richard Biener <rguenther@suse.de> | |
10495 | ||
10496 | * tree-pretty-print.c (dump_generic_node): Do not elide | |
10497 | printing '&' when dumping with -gimple. | |
10498 | ||
10499 | 2021-10-06 Andrew MacLeod <amacleod@redhat.com> | |
10500 | ||
10501 | * gimple-range-cache.cc (non_null_ref::adjust_range): Call new | |
10502 | intersect routine. | |
10503 | * gimple-range-fold.cc (adjust_pointer_diff_expr): Ditto. | |
10504 | (adjust_imagpart_expr): Ditto. | |
10505 | * value-range.cc (irange::irange_intersect): Call new routine if | |
10506 | RHS is a single pair. | |
10507 | (irange::intersect): New wide_int version. | |
10508 | * value-range.h (class irange): New prototype. | |
10509 | ||
10510 | 2021-10-06 Andrew MacLeod <amacleod@redhat.com> | |
10511 | ||
10512 | * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range): | |
10513 | Add parameter to limit size when recognizing switches. | |
10514 | (gimple_outgoing_range::edge_range_p): Check size limit. | |
10515 | * gimple-range-edge.h (gimple_outgoing_range): Add size field. | |
10516 | * gimple-range-gori.cc (gori_map::calculate_gori): Ignore switches | |
10517 | that exceed the size limit. | |
10518 | (gori_compute::gori_compute): Add initializer. | |
10519 | * params.opt (evrp-switch-limit): New. | |
10520 | * doc/invoke.texi: Update docs. | |
10521 | ||
10522 | 2021-10-06 Andrew MacLeod <amacleod@redhat.com> | |
10523 | ||
10524 | * value-range.h (irange::set_varying): Use TYPE_MIN_VALUE and | |
10525 | TYPE_MAX_VALUE instead of creating new trees when possible. | |
10526 | ||
10527 | 2021-10-06 Andrew MacLeod <amacleod@redhat.com> | |
10528 | ||
10529 | * gimple-range-cache.cc (non_null_ref::adjust_range): Check for | |
10530 | zero and non-zero more efficently. | |
10531 | ||
10532 | 2021-10-06 Richard Biener <rguenther@suse.de> | |
10533 | ||
10534 | PR c/102605 | |
10535 | * dumpfile.h (TDF_GIMPLE_VAL): New. | |
10536 | (dump_flag): Re-order and adjust TDF_* flags. Make | |
10537 | the enum uint32_t. Use std::underlying_type in the | |
10538 | operator overloads. | |
10539 | (optgroup_flag): Likewise for the operator overloads. | |
10540 | * tree-pretty-print.c (dump_generic_node): Wrap ADDR_EXPR | |
10541 | in _Literal if TDF_GIMPLE_VAL. | |
10542 | * gimple-pretty-print.c (dump_gimple_assign): Add | |
10543 | TDF_GIMPLE_VAL to flags when dumping operands where only | |
10544 | is_gimple_val are allowed. | |
10545 | (dump_gimple_cond): Likewise. | |
10546 | ||
10547 | 2021-10-06 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
10548 | ||
10549 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove redundant if | |
10550 | condition. | |
10551 | ||
10552 | 2021-10-05 qing zhao <qing.zhao@oracle.com> | |
10553 | ||
10554 | PR middle-end/102359 | |
10555 | * gimplify.c (gimplify_decl_expr): Not add initialization for an | |
10556 | auto variable when it has been initialized by frontend. | |
10557 | ||
10558 | 2021-10-05 Aldy Hernandez <aldyh@redhat.com> | |
10559 | ||
10560 | * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): | |
10561 | Loosen restrictions | |
10562 | ||
10563 | 2021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> | |
10564 | ||
10565 | * common/config/avr/avr-common.c (avr_handle_option): Mark | |
10566 | argument as ATTRIBUTE_UNUSED. | |
10567 | ||
10568 | 2021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> | |
10569 | ||
10570 | * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): | |
10571 | Undefine before redefinition. | |
10572 | ||
10573 | 2021-10-05 Richard Biener <rguenther@suse.de> | |
10574 | ||
10575 | * toplev.c (no_backend): Remove global var. | |
10576 | (process_options): Pass in no_backend, move post_options | |
10577 | langhook call to toplev::main. | |
10578 | (do_compile): Pass in no_backend, move process_options call | |
10579 | to toplev::main. | |
10580 | (toplev::run_self_tests): Check no_backend at the caller. | |
10581 | (toplev::main): Call post_options and process_options | |
10582 | split out from do_compile, do self-tests only if | |
10583 | no_backend is initialized. | |
10584 | ||
10585 | 2021-10-05 Richard Biener <rguenther@suse.de> | |
10586 | ||
10587 | * tree-cfg.c (dump_function_to_file): Dump the UID of the | |
10588 | function as part of the name when requested. | |
10589 | * tree-pretty-print.c (dump_function_name): Dump the UID when | |
10590 | requested and the langhook produced the actual name. | |
10591 | ||
10592 | 2021-10-05 Richard Biener <rguenther@suse.de> | |
10593 | ||
10594 | PR middle-end/102587 | |
10595 | PR middle-end/102285 | |
10596 | * internal-fn.c (expand_DEFERRED_INIT): Fall back to | |
10597 | zero-initialization as last resort, use the constant | |
10598 | size as given by the DEFERRED_INIT argument to build | |
10599 | the initializer. | |
10600 | ||
10601 | 2021-10-04 Marek Polacek <polacek@redhat.com> | |
10602 | ||
10603 | PR c++/97573 | |
10604 | * doc/invoke.texi: Document -Warray-compare. | |
10605 | ||
10606 | 2021-10-04 Richard Biener <rguenther@suse.de> | |
10607 | ||
10608 | * gimplify.c (is_var_need_auto_init): DECL_HARD_REGISTER | |
10609 | variables are not to be initialized. | |
10610 | ||
10611 | 2021-10-04 Richard Biener <rguenther@suse.de> | |
10612 | ||
10613 | * expr.h (non_mem_decl_p): Declare. | |
10614 | (mem_ref_refers_to_non_mem_p): Likewise. | |
10615 | * expr.c (non_mem_decl_p): Export. | |
10616 | (mem_ref_refers_to_non_mem_p): Likewise. | |
10617 | * internal-fn.c (expand_DEFERRED_INIT): Do not expand the LHS | |
10618 | but check the base with mem_ref_refers_to_non_mem_p | |
10619 | and non_mem_decl_p. | |
10620 | ||
10621 | 2021-10-04 Richard Biener <rguenther@suse.de> | |
10622 | ||
10623 | PR tree-optimization/102570 | |
10624 | * tree-ssa-sccvn.h (vn_reference_op_struct): Document | |
10625 | we are using clique for the internal function code. | |
10626 | * tree-ssa-sccvn.c (vn_reference_op_eq): Compare the | |
10627 | internal function code. | |
10628 | (print_vn_reference_ops): Print the internal function code. | |
10629 | (vn_reference_op_compute_hash): Hash it. | |
10630 | (copy_reference_ops_from_call): Record it. | |
10631 | (visit_stmt): Remove the restriction around internal function | |
10632 | calls. | |
10633 | (fully_constant_vn_reference_p): Use fold_const_call and handle | |
10634 | internal functions. | |
10635 | (vn_reference_eq): Compare call return types. | |
10636 | * tree-ssa-pre.c (create_expression_by_pieces): Handle | |
10637 | generating calls to internal functions. | |
10638 | (compute_avail): Remove the restriction around internal function | |
10639 | calls. | |
10640 | ||
10641 | 2021-10-04 Aldy Hernandez <aldyh@redhat.com> | |
10642 | ||
10643 | PR tree-optimization/102560 | |
10644 | * gimple-ssa-warn-alloca.c (alloca_call_type): Remove static | |
10645 | marker for invalid_range. | |
10646 | ||
10647 | 2021-10-04 Richard Biener <rguenther@suse.de> | |
10648 | ||
10649 | PR middle-end/102587 | |
10650 | * internal-fn.c (expand_DEFERRED_INIT): Guard register | |
10651 | initialization path an avoid initializing VLA registers | |
10652 | with it. | |
10653 | ||
10654 | 2021-10-04 Eric Botcazou <ebotcazou@adacore.com> | |
10655 | ||
10656 | * config/rs6000/vxworks.h (TARGET_INIT_LIBFUNCS): Delete. | |
10657 | ||
10658 | 2021-10-03 Martin Liska <mliska@suse.cz> | |
10659 | ||
10660 | * toplev.c (toplev::main): Check opt_index if it is a part | |
10661 | of cl_options. | |
10662 | ||
10663 | 2021-10-02 Aldy Hernandez <aldyh@redhat.com> | |
10664 | ||
10665 | PR tree-optimization/102563 | |
10666 | * range-op.cc (operator_lshift::op1_range): Do not clobber | |
10667 | range. | |
10668 | ||
10669 | 2021-10-02 Martin Liska <mliska@suse.cz> | |
10670 | ||
10671 | * toplev.c (toplev::main): save_decoded_options[0] is program | |
10672 | name and so it should be skipped. | |
10673 | ||
10674 | 2021-10-01 Aldy Hernandez <aldyh@redhat.com> | |
10675 | ||
10676 | PR tree-optimization/102546 | |
10677 | * range-op.cc (operator_lshift::op1_range): Teach range-ops that | |
10678 | X << Y is non-zero implies X is also non-zero. | |
10679 | ||
10680 | 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
10681 | ||
10682 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): New | |
10683 | Cortex-X2 core. | |
10684 | * config/aarch64/aarch64-tune.md: Regenerate. | |
10685 | * doc/invoke.texi: Update docs. | |
10686 | ||
10687 | 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
10688 | ||
10689 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): New | |
10690 | Cortex-A710 core. | |
10691 | * config/aarch64/aarch64-tune.md: Regenerate. | |
10692 | * doc/invoke.texi: Update docs. | |
10693 | ||
10694 | 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
10695 | ||
10696 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): New | |
10697 | Cortex-A510 core. | |
10698 | * config/aarch64/aarch64-tune.md: Regenerate. | |
10699 | * doc/invoke.texi: Update docs. | |
10700 | ||
10701 | 2021-10-01 Martin Sebor <msebor@redhat.com> | |
10702 | ||
10703 | PR c/102103 | |
10704 | * doc/invoke.texi (-Waddress): Update. | |
10705 | * gengtype.c (write_types): Avoid -Waddress. | |
10706 | * poly-int.h (POLY_SET_COEFF): Avoid using null. | |
10707 | ||
10708 | 2021-10-01 John David Anglin <danglin@gcc.gnu.org> | |
10709 | ||
10710 | PR debug/102373 | |
10711 | * config/pa/pa.c (pa_option_override): Default to dwarf version 4 | |
10712 | on hppa64-hpux. | |
10713 | ||
10714 | 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
10715 | ||
10716 | * config/aarch64/aarch64.h (AARCH64_FL_V9): Update value. | |
10717 | ||
10718 | 2021-10-01 Aldy Hernandez <aldyh@redhat.com> | |
10719 | ||
10720 | * gimple-range-path.cc (path_range_query::compute_ranges): Use | |
10721 | get_path_oracle. | |
10722 | * gimple-range-path.h (class path_range_query): Remove shadowed | |
10723 | m_oracle field. | |
10724 | (path_range_query::get_path_oracle): New. | |
10725 | ||
10726 | 2021-10-01 Jakub Jelinek <jakub@redhat.com> | |
10727 | Richard Biener <rguenther@suse.de> | |
10728 | ||
10729 | PR sanitizer/102515 | |
10730 | * doc/invoke.texi (-fsanitize=integer-divide-by-zero): Remove | |
10731 | INT_MIN / -1 division detection from here ... | |
10732 | (-fsanitize=signed-integer-overflow): ... and add it here. | |
10733 | ||
10734 | 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
10735 | ||
10736 | * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Added | |
10737 | armv9-a. | |
10738 | * config/aarch64/aarch64.h (AARCH64_FL_V9): New. | |
10739 | (AARCH64_FL_FOR_ARCH9): New flags for Armv9-A. | |
10740 | (AARCH64_ISA_V9): New ISA flag. | |
10741 | * doc/invoke.texi: Update docs. | |
10742 | ||
10743 | 2021-10-01 Martin Liska <mliska@suse.cz> | |
10744 | ||
10745 | * toplev.c (toplev::main): Save decoded optimization options. | |
10746 | * toplev.h (save_opt_decoded_options): New. | |
10747 | * doc/extend.texi: Be more clear about optimize and target | |
10748 | attributes. | |
10749 | ||
10750 | 2021-10-01 Eric Botcazou <ebotcazou@adacore.com> | |
10751 | ||
10752 | * explow.c: Include langhooks.h. | |
10753 | (set_stack_check_libfunc): Build a proper function type. | |
10754 | ||
10755 | 2021-10-01 Eric Botcazou <ebotcazou@adacore.com> | |
10756 | ||
10757 | PR c++/64697 | |
10758 | * config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do | |
10759 | not return true for external weak function symbols in medium model. | |
10760 | ||
10761 | 2021-10-01 Jakub Jelinek <jakub@redhat.com> | |
10762 | ||
10763 | * tree.h (OMP_CLAUSE_ORDER_REPRODUCIBLE): Define. | |
10764 | * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_ORDER>: Print | |
10765 | reproducible: for OMP_CLAUSE_ORDER_REPRODUCIBLE. | |
10766 | * omp-general.c (omp_extract_for_data): If OMP_CLAUSE_ORDER is seen | |
10767 | without OMP_CLAUSE_ORDER_UNCONSTRAINED, overwrite sched_kind to | |
10768 | OMP_CLAUSE_SCHEDULE_STATIC. | |
10769 | ||
10770 | 2021-10-01 Richard Biener <rguenther@suse.de> | |
10771 | ||
10772 | PR middle-end/102518 | |
10773 | * tree-inline.c (setup_one_parameter): Avoid substituting | |
10774 | an invariant into contexts where a GIMPLE register is not valid. | |
10775 | ||
10776 | 2021-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
10777 | ||
10778 | * config/arm/arm-cpus.in: Add Cortex-R52+ CPU. | |
10779 | * config/arm/arm-tables.opt: Regenerate. | |
10780 | * config/arm/arm-tune.md: Regenerate. | |
10781 | * doc/invoke.texi: Update docs. | |
10782 | ||
10783 | 2021-09-30 Uroš Bizjak <ubizjak@gmail.com> | |
10784 | ||
10785 | PR target/89954 | |
10786 | * config/i386/i386.md | |
10787 | (sign_extend:WIDE (any_logic:NARROW (memory, immediate)) splitters): | |
10788 | New splitters. | |
10789 | ||
10790 | 2021-09-30 Tobias Burnus <tobias@codesourcery.com> | |
10791 | ||
10792 | * omp-low.c (omp_runtime_api_call): Add omp_aligned_{,c}alloc and | |
10793 | omp_{c,re}alloc, fix omp_alloc/omp_free. | |
10794 | ||
10795 | 2021-09-30 Martin Liska <mliska@suse.cz> | |
10796 | ||
10797 | * defaults.h (ASM_OUTPUT_ASCII): Do not hide global variable | |
10798 | asm_out_file and stream directly to MYFILE. | |
10799 | ||
10800 | 2021-09-30 Richard Biener <rguenther@suse.de> | |
10801 | ||
10802 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel): | |
10803 | Restore and fix condition under which we apply npeel to | |
10804 | the DRs misalignment value. | |
10805 | ||
10806 | 2021-09-30 Richard Biener <rguenther@suse.de> | |
10807 | ||
10808 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel): | |
10809 | Fix npeel check for variable amount of peeling. | |
10810 | ||
10811 | 2021-09-30 Aldy Hernandez <aldyh@redhat.com> | |
10812 | ||
10813 | * lto-wrapper.c (run_gcc): Plug snprintf overflow. | |
10814 | ||
10815 | 2021-09-30 Aldy Hernandez <aldyh@redhat.com> | |
10816 | ||
10817 | * gimple-range.cc (gimple_ranger::debug): New. | |
10818 | * gimple-range.h (class gimple_ranger): Add debug. | |
10819 | ||
10820 | 2021-09-30 Aldy Hernandez <aldyh@redhat.com> | |
10821 | ||
10822 | PR middle-end/102519 | |
10823 | * tree-vrp.c (hybrid_threader::~hybrid_threader): Free m_query. | |
10824 | ||
10825 | 2021-09-29 Indu Bhagat <indu.bhagat@oracle.com> | |
10826 | ||
10827 | PR debug/102507 | |
10828 | * btfout.c (GTY): Add GTY (()) albeit for cosmetic only purpose. | |
10829 | (btf_finalize): Empty the hash_map btf_var_ids. | |
10830 | ||
10831 | 2021-09-29 Aldy Hernandez <aldyh@redhat.com> | |
10832 | ||
10833 | * tree-vrp.c (thread_through_all_blocks): Return bool. | |
10834 | (execute_vrp_threader): Return TODO_* flags. | |
10835 | (pass_data_vrp_threader): Set todo_flags_finish to 0. | |
10836 | ||
10837 | 2021-09-29 Aldy Hernandez <aldyh@redhat.com> | |
10838 | ||
10839 | * timevar.def (TV_TREE_VRP_THREADER): New. | |
10840 | * tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass. | |
10841 | ||
10842 | 2021-09-29 David Faust <david.faust@oracle.com> | |
10843 | ||
10844 | * config.gcc (bpf-*-*): Do not overwrite extra_headers. | |
10845 | ||
10846 | 2021-09-29 Jonathan Wright <jonathan.wright@arm.com> | |
10847 | ||
10848 | * config/aarch64/aarch64-builtins.c (TYPES_BINOP_PPU): Define | |
10849 | new type qualifier enum. | |
10850 | (TYPES_TERNOP_SSSU): Likewise. | |
10851 | (TYPES_TERNOP_PPPU): Likewise. | |
10852 | * config/aarch64/aarch64-simd-builtins.def: Define PPU, SSU, | |
10853 | PPPU and SSSU builtin generator macros for qtbl1 and qtbx1 | |
10854 | Neon builtins. | |
10855 | * config/aarch64/arm_neon.h (vqtbl1_p8): Use type-qualified | |
10856 | builtin and remove casts. | |
10857 | (vqtbl1_s8): Likewise. | |
10858 | (vqtbl1q_p8): Likewise. | |
10859 | (vqtbl1q_s8): Likewise. | |
10860 | (vqtbx1_s8): Likewise. | |
10861 | (vqtbx1_p8): Likewise. | |
10862 | (vqtbx1q_s8): Likewise. | |
10863 | (vqtbx1q_p8): Likewise. | |
10864 | (vtbl1_p8): Likewise. | |
10865 | (vtbl2_p8): Likewise. | |
10866 | (vtbx2_p8): Likewise. | |
10867 | ||
10868 | 2021-09-29 Richard Biener <rguenther@suse.de> | |
10869 | ||
10870 | * tree-vect-data-refs.c (vect_dr_misalign_for_aligned_access): | |
10871 | New helper. | |
10872 | (vect_update_misalignment_for_peel): Use it to update | |
10873 | misaligned to the value necessary for an aligned access. | |
10874 | (vect_get_peeling_costs_all_drs): Likewise. | |
10875 | (vect_enhance_data_refs_alignment): Likewise. | |
10876 | ||
10877 | 2021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
10878 | ||
10879 | * config/aarch64/aarch64.c (aarch64_expand_cpymem): Count number of | |
10880 | emitted operations and adjust heuristic for code size. | |
10881 | ||
10882 | 2021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
10883 | ||
10884 | * config/aarch64/aarch64.c (aarch64_expand_setmem): Count number of | |
10885 | emitted operations and adjust heuristic for code size. | |
10886 | ||
10887 | 2021-09-29 Jakub Jelinek <jakub@redhat.com> | |
10888 | ||
10889 | PR middle-end/102504 | |
10890 | * gimplify.c (gimplify_scan_omp_clauses): Use omp_check_private even | |
10891 | in OMP_SCOPE clauses, not just on worksharing construct clauses. | |
10892 | ||
10893 | 2021-09-28 Geng Qi <gengqi@linux.alibaba.com> | |
10894 | ||
10895 | * config/riscv/riscv.md (mulv<mode>4): Call gen_smul<mode>3_highpart. | |
10896 | (<u>mulditi3): Call <su>muldi3_highpart. | |
10897 | (<u>muldi3_highpart): Rename to <su>muldi3_highpart. | |
10898 | (<u>mulsidi3): Call <su>mulsi3_highpart. | |
10899 | (<u>mulsi3_highpart): Rename to <su>mulsi3_highpart. | |
10900 | ||
10901 | 2021-09-28 Iain Sandoe <iain@sandoe.co.uk> | |
10902 | ||
10903 | * config/darwin.h (DSYMUTIL_SPEC): Recognize D sources. | |
10904 | ||
10905 | 2021-09-28 Iain Sandoe <iain@sandoe.co.uk> | |
10906 | ||
10907 | * config/rs6000/darwin.h (FIXED_R13): Add for PPC64. | |
10908 | (FIRST_SAVED_GP_REGNO): Save from R13 even when it is one | |
10909 | of the fixed regs. | |
10910 | ||
10911 | 2021-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
10912 | ||
10913 | * config/aarch64/aarch64.h (AARCH64_FL_LS64): Define | |
10914 | (AARCH64_FL_V8_7): Likewise. | |
10915 | (AARCH64_FL_FOR_ARCH8_7): Likewise. | |
10916 | * config/aarch64/aarch64-arches.def (armv8.7-a): Define. | |
10917 | * config/aarch64/aarch64-option-extensions.def (ls64): Define. | |
10918 | * doc/invoke.texi: Document the above. | |
10919 | ||
10920 | 2021-09-28 Aldy Hernandez <aldyh@redhat.com> | |
10921 | ||
10922 | * dbgcnt.c (dbg_cnt_counter): New. | |
10923 | * dbgcnt.h (dbg_cnt_counter): New. | |
10924 | * dumpfile.c (dump_options): Add entry for TDF_THREADING. | |
10925 | * dumpfile.h (enum dump_flag): Add TDF_THREADING. | |
10926 | * gimple-range-path.cc (DEBUG_SOLVER): Use TDF_THREADING. | |
10927 | * tree-ssa-threadupdate.c (dump_jump_thread_path): Dump out | |
10928 | debug counter. | |
10929 | ||
10930 | 2021-09-28 Aldy Hernandez <aldyh@redhat.com> | |
10931 | ||
10932 | * cfgcleanup.c (pass_jump::execute): Check | |
10933 | flag_expensive_optimizations. | |
10934 | (pass_jump_after_combine::gate): Same. | |
10935 | * doc/invoke.texi (-fthread-jumps): Enable for -O1. | |
10936 | * opts.c (default_options_table): Enable -fthread-jumps at -O1. | |
10937 | * tree-ssa-threadupdate.c | |
10938 | (fwd_jt_path_registry::remove_jump_threads_including): Bail unless | |
10939 | flag_thread_jumps. | |
10940 | ||
10941 | 2021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> | |
10942 | ||
10943 | * tree-ssa-reassoc.c (biased_names): New global. | |
10944 | (propagate_bias_p): New function. | |
10945 | (loop_carried_phi): Remove. | |
10946 | (propagate_rank): Propagate bias along single uses. | |
10947 | (get_rank): Update biased_names when needed. | |
10948 | ||
10949 | 2021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> | |
10950 | ||
10951 | * passes.def (pass_reassoc): Rename parameter to early_p. | |
10952 | * tree-ssa-reassoc.c (reassoc_bias_loop_carried_phi_ranks_p): | |
10953 | New variable. | |
10954 | (phi_rank): Don't bias loop-carried phi ranks | |
10955 | before vectorization pass. | |
10956 | (execute_reassoc): Add bias_loop_carried_phi_ranks_p parameter. | |
10957 | (pass_reassoc::pass_reassoc): Add bias_loop_carried_phi_ranks_p | |
10958 | initializer. | |
10959 | (pass_reassoc::set_param): Set bias_loop_carried_phi_ranks_p | |
10960 | value. | |
10961 | (pass_reassoc::execute): Pass bias_loop_carried_phi_ranks_p to | |
10962 | execute_reassoc. | |
10963 | (pass_reassoc::bias_loop_carried_phi_ranks_p): New member. | |
10964 | ||
10965 | 2021-09-28 Jakub Jelinek <jakub@redhat.com> | |
10966 | ||
10967 | PR target/102498 | |
10968 | * config/i386/i386.c (standard_80387_constant_p): Don't recognize | |
10969 | special 80387 instruction XFmode constants if flag_rounding_math. | |
10970 | ||
10971 | 2021-09-28 Richard Biener <rguenther@suse.de> | |
10972 | ||
10973 | PR tree-optimization/100112 | |
10974 | * tree-ssa-sccvn.c (visit_reference_op_load): Record the | |
10975 | referece into the hashtable twice in case last_vuse is | |
10976 | different from the original vuse on the stmt. | |
10977 | ||
10978 | 2021-09-28 Jakub Jelinek <jakub@redhat.com> | |
10979 | ||
10980 | PR middle-end/102492 | |
10981 | * gimplify.c (gimplify_adjust_omp_clauses_1): Don't call the | |
10982 | omp_finish_clause langhook on implicitly added OMP_CLAUSE_PRIVATE | |
10983 | clauses on SIMD constructs. | |
10984 | ||
10985 | 2021-09-28 Aldy Hernandez <aldyh@redhat.com> | |
10986 | ||
10987 | PR tree-optimization/102511 | |
10988 | * gimple-range-path.cc (path_range_query::range_on_path_entry): | |
10989 | Return VARYING when nothing found. | |
10990 | ||
10991 | 2021-09-28 Hongyu Wang <hongyu.wang@intel.com> | |
10992 | ||
10993 | PR target/102230 | |
10994 | * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Add | |
10995 | V2HF mode check. | |
10996 | (VALID_SSE2_REG_VHF_MODE): Add V4HFmode and V2HFmode. | |
10997 | (VALID_MMX_REG_MODE): Add V4HFmode. | |
10998 | (SSE_REG_MODE_P): Replace VALID_AVX512FP16_REG_MODE with | |
10999 | vector mode condition. | |
11000 | * config/i386/i386.c (classify_argument): Parse V4HF/V2HF | |
11001 | via sse regs. | |
11002 | (function_arg_32): Add V4HFmode. | |
11003 | (function_arg_advance_32): Likewise. | |
11004 | * config/i386/i386.md (mode): Add V4HF/V2HF. | |
11005 | (MODE_SIZE): Likewise. | |
11006 | * config/i386/mmx.md (MMXMODE): Add V4HF mode. | |
11007 | (V_32): Add V2HF mode. | |
11008 | (VHF_32_64): New mode iterator. | |
11009 | (*mov<mode>_internal): Adjust sse alternatives to support | |
11010 | V4HF mode move. | |
11011 | (*mov<mode>_internal): Adjust sse alternatives to support | |
11012 | V2HF mode move. | |
11013 | (<insn><mode>3): New define_insn for add/sub/mul/div. | |
11014 | ||
11015 | 2021-09-28 Aldy Hernandez <aldyh@redhat.com> | |
11016 | ||
11017 | * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Check | |
11018 | flag_thread_jumps. | |
11019 | (pass_early_thread_jumps::gate): Same. | |
11020 | * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): | |
11021 | Return if !flag_thread_jumps. | |
11022 | * tree-ssa-threadupdate.c | |
11023 | (jt_path_registry::register_jump_thread): Assert that | |
11024 | flag_thread_jumps is true. | |
11025 | ||
11026 | 2021-09-28 liuhongt <hongtao.liu@intel.com> | |
11027 | ||
11028 | * simplify-rtx.c | |
11029 | (simplify_context::simplify_binary_operation_1): Relax | |
11030 | condition of simplifying (vec_concat:M (vec_select op0 | |
11031 | index0)(vec_select op1 index1)) to allow different modes | |
11032 | between op0 and M, but have same inner mode. | |
11033 | ||
11034 | 2021-09-28 liuhongt <hongtao.liu@intel.com> | |
11035 | ||
11036 | * config/i386/i386-expand.c (emit_reduc_half): Handle | |
11037 | V8HF/V16HF/V32HFmode. | |
11038 | * config/i386/sse.md (REDUC_SSE_PLUS_MODE): Add V8HF. | |
11039 | (REDUC_SSE_SMINMAX_MODE): Ditto. | |
11040 | (REDUC_PLUS_MODE): Add V16HF and V32HF. | |
11041 | (REDUC_SMINMAX_MODE): Ditto. | |
11042 | ||
11043 | 2021-09-27 Aldy Hernandez <aldyh@redhat.com> | |
11044 | ||
11045 | * gimple-range-path.cc | |
11046 | (path_range_query::precompute_ranges_in_block): Rename to... | |
11047 | (path_range_query::compute_ranges_in_block): ...this. | |
11048 | (path_range_query::precompute_ranges): Rename to... | |
11049 | (path_range_query::compute_ranges): ...this. | |
11050 | (path_range_query::precompute_relations): Rename to... | |
11051 | (path_range_query::compute_relations): ...this. | |
11052 | (path_range_query::precompute_phi_relations): Rename to... | |
11053 | (path_range_query::compute_phi_relations): ...this. | |
11054 | * gimple-range-path.h: Rename precompute* to compute*. | |
11055 | * tree-ssa-threadbackward.c | |
11056 | (back_threader::find_taken_edge_switch): Same. | |
11057 | (back_threader::find_taken_edge_cond): Same. | |
11058 | * tree-ssa-threadedge.c | |
11059 | (hybrid_jt_simplifier::compute_ranges_from_state): Same. | |
11060 | (hybrid_jt_state::register_equivs_stmt): Inline... | |
11061 | * tree-ssa-threadedge.h: ...here. | |
11062 | ||
11063 | 2021-09-27 Aldy Hernandez <aldyh@redhat.com> | |
11064 | ||
11065 | * tree-vrp.c (lhs_of_dominating_assert): Remove. | |
11066 | (class vrp_jt_state): Remove. | |
11067 | (class vrp_jt_simplifier): Remove. | |
11068 | (vrp_jt_simplifier::simplify): Remove. | |
11069 | (class vrp_jump_threader): Remove. | |
11070 | (vrp_jump_threader::vrp_jump_threader): Remove. | |
11071 | (vrp_jump_threader::~vrp_jump_threader): Remove. | |
11072 | (vrp_jump_threader::before_dom_children): Remove. | |
11073 | (vrp_jump_threader::after_dom_children): Remove. | |
11074 | ||
11075 | 2021-09-27 Aldy Hernandez <aldyh@redhat.com> | |
11076 | ||
11077 | * passes.def (pass_vrp_threader): New. | |
11078 | * tree-pass.h (make_pass_vrp_threader): Add make_pass_vrp_threader. | |
11079 | * tree-ssa-threadedge.c (hybrid_jt_state::register_equivs_stmt): New. | |
11080 | (hybrid_jt_simplifier::hybrid_jt_simplifier): New. | |
11081 | (hybrid_jt_simplifier::simplify): New. | |
11082 | (hybrid_jt_simplifier::compute_ranges_from_state): New. | |
11083 | * tree-ssa-threadedge.h (class hybrid_jt_state): New. | |
11084 | (class hybrid_jt_simplifier): New. | |
11085 | * tree-vrp.c (execute_vrp): Remove ASSERT_EXPR based jump | |
11086 | threader. | |
11087 | (class hybrid_threader): New. | |
11088 | (hybrid_threader::hybrid_threader): New. | |
11089 | (hybrid_threader::~hybrid_threader): New. | |
11090 | (hybrid_threader::before_dom_children): New. | |
11091 | (hybrid_threader::after_dom_children): New. | |
11092 | (execute_vrp_threader): New. | |
11093 | (class pass_vrp_threader): New. | |
11094 | (make_pass_vrp_threader): New. | |
11095 | ||
11096 | 2021-09-27 Martin Liska <mliska@suse.cz> | |
11097 | ||
11098 | * output.h (enum section_flag): New. | |
11099 | (SECTION_FORGET): Remove. | |
11100 | (SECTION_ENTSIZE): Make it (1UL << 8) - 1. | |
11101 | (SECTION_STYLE_MASK): Define it based on other enum | |
11102 | values. | |
11103 | * varasm.c (switch_to_section): Remove unused handling of | |
11104 | SECTION_FORGET. | |
11105 | ||
11106 | 2021-09-27 Martin Liska <mliska@suse.cz> | |
11107 | ||
11108 | * common.opt: Add new variable flag_default_complex_method. | |
11109 | * opts.c (finish_options): Handle flags related to | |
11110 | x_flag_complex_method. | |
11111 | * toplev.c (process_options): Remove option handling related | |
11112 | to flag_complex_method. | |
11113 | ||
11114 | 2021-09-27 Richard Biener <rguenther@suse.de> | |
11115 | ||
11116 | PR middle-end/102450 | |
11117 | * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid using | |
11118 | type_for_size, instead use int_mode_for_size. | |
11119 | ||
11120 | 2021-09-27 Andrew Pinski <apinski@marvell.com> | |
11121 | ||
11122 | PR c/94726 | |
11123 | * gimplify.c (gimplify_save_expr): Return early | |
11124 | if the type of val is error_mark_node. | |
11125 | ||
11126 | 2021-09-27 Aldy Hernandez <aldyh@redhat.com> | |
11127 | ||
11128 | * tree-ssanames.c (ssa_name_has_boolean_range): Use | |
11129 | get_range_query. | |
11130 | ||
11131 | 2021-09-27 Aldy Hernandez <aldyh@redhat.com> | |
11132 | ||
11133 | * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove | |
11134 | vrp_visit_cond_stmt. | |
11135 | * tree-ssa-dom.c (cprop_operand): Convert to range_query API. | |
11136 | (cprop_into_stmt): Same. | |
11137 | (dom_opt_dom_walker::optimize_stmt): Same. | |
11138 | ||
11139 | 2021-09-27 Richard Biener <rguenther@suse.de> | |
11140 | ||
11141 | PR tree-optimization/97351 | |
11142 | PR tree-optimization/97352 | |
11143 | PR tree-optimization/82426 | |
11144 | * tree-vectorizer.h (dr_misalignment): Add vector type | |
11145 | argument. | |
11146 | (aligned_access_p): Likewise. | |
11147 | (known_alignment_for_access_p): Likewise. | |
11148 | (vect_supportable_dr_alignment): Likewise. | |
11149 | (vect_known_alignment_in_bytes): Likewise. Refactor. | |
11150 | (DR_MISALIGNMENT): Remove. | |
11151 | (vect_update_shared_vectype): Likewise. | |
11152 | * tree-vect-data-refs.c (dr_misalignment): Refactor, handle | |
11153 | a vector type with larger alignment requirement and apply | |
11154 | the negative step adjustment here. | |
11155 | (vect_calculate_target_alignment): Remove. | |
11156 | (vect_compute_data_ref_alignment): Get explicit vector type | |
11157 | argument, do not apply a negative step alignment adjustment | |
11158 | here. | |
11159 | (vect_slp_analyze_node_alignment): Re-analyze alignment | |
11160 | when we re-visit the DR with a bigger desired alignment but | |
11161 | keep more precise results from smaller alignments. | |
11162 | * tree-vect-slp.c (vect_update_shared_vectype): Remove. | |
11163 | (vect_slp_analyze_node_operations_1): Do not update the | |
11164 | shared vector type on stmts. | |
11165 | * tree-vect-stmts.c (vect_analyze_stmt): Push/pop the | |
11166 | vector type of an SLP node to the representative stmt-info. | |
11167 | (vect_transform_stmt): Likewise. | |
11168 | ||
11169 | 2021-09-27 liuhongt <hongtao.liu@intel.com> | |
11170 | ||
11171 | Revert: | |
11172 | 2021-09-09 liuhongt <hongtao.liu@intel.com> | |
11173 | ||
11174 | PR target/101059 | |
11175 | * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. | |
11176 | (reduc_plus_scal_v4sf): .. this, New define_expand. | |
11177 | (reduc_plus_scal_v2df): .. and this, New define_expand. | |
11178 | ||
11179 | 2021-09-26 liuhongt <hongtao.liu@intel.com> | |
11180 | ||
11181 | * doc/extend.texi (Half-Precision): Remove storage only | |
11182 | description for _Float16 w/o avx512fp16. | |
11183 | ||
11184 | 2021-09-25 Dimitar Dimitrov <dimitar@dinux.eu> | |
11185 | ||
11186 | * config/pru/constraints.md (Rrio): New constraint. | |
11187 | * config/pru/predicates.md (regio_operand): New predicate. | |
11188 | * config/pru/pru-pragma.c (pru_register_pragmas): Register | |
11189 | the __regio_symbol address space. | |
11190 | * config/pru/pru-protos.h (pru_symref2ioregno): Declaration. | |
11191 | * config/pru/pru.c (pru_symref2ioregno): New helper function. | |
11192 | (pru_legitimate_address_p): Remove. | |
11193 | (pru_addr_space_legitimate_address_p): Use the address space | |
11194 | aware hook variant. | |
11195 | (pru_nongeneric_pointer_addrspace): New helper function. | |
11196 | (pru_insert_attributes): New function to validate __regio_symbol | |
11197 | usage. | |
11198 | (TARGET_INSERT_ATTRIBUTES): New macro. | |
11199 | (TARGET_LEGITIMATE_ADDRESS_P): Remove. | |
11200 | (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): New macro. | |
11201 | * config/pru/pru.h (enum reg_class): Add REGIO_REGS class. | |
11202 | * config/pru/pru.md (*regio_readsi): New pattern to read I/O | |
11203 | registers. | |
11204 | (*regio_nozext_writesi): New pattern to write to I/O registers. | |
11205 | (*regio_zext_write_r30<EQS0:mode>): Ditto. | |
11206 | * doc/extend.texi: Document the new PRU Named Address Space. | |
11207 | ||
11208 | 2021-09-24 Patrick Palka <ppalka@redhat.com> | |
11209 | ||
11210 | PR c++/98216 | |
11211 | PR c++/91292 | |
11212 | * real.c (encode_ieee_double): Avoid unwanted sign extension. | |
11213 | (encode_ieee_quad): Likewise. | |
11214 | ||
11215 | 2021-09-24 Vladimir Makarov <vmakarov@redhat.com> | |
11216 | ||
11217 | PR rtl-optimization/102147 | |
11218 | * ira-build.c (ira_conflict_vector_profitable_p): Make | |
11219 | profitability calculation independent of host compiler pointer and | |
11220 | IRA_INT_BITS sizes. | |
11221 | ||
11222 | 2021-09-24 Aldy Hernandez <aldyh@redhat.com> | |
11223 | ||
11224 | * gimple-range-path.cc (path_range_query::path_range_query): | |
11225 | Move debugging header... | |
11226 | (path_range_query::precompute_ranges): ...here. | |
11227 | (path_range_query::internal_range_of_expr): Do not call | |
11228 | range_on_path_entry if NAME is defined in the current block. | |
11229 | ||
11230 | 2021-09-24 Richard Biener <rguenther@suse.de> | |
11231 | ||
11232 | * cfghooks.c (verify_flow_info): Verify unallocated BB and | |
11233 | edge flags are not set. | |
11234 | ||
11235 | 2021-09-24 Aldy Hernandez <aldyh@redhat.com> | |
11236 | ||
11237 | * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): | |
11238 | New. | |
11239 | (jt_path_registry::register_jump_thread): Call | |
11240 | cancel_invalid_paths. | |
11241 | * tree-ssa-threadupdate.h (class jt_path_registry): Add | |
11242 | cancel_invalid_paths. | |
11243 | ||
11244 | 2021-09-24 Feng Xue <fxue@os.amperecomputing.com> | |
11245 | ||
11246 | PR tree-optimization/102400 | |
11247 | * tree-ssa-sccvn.c (vn_reference_insert_pieces): Initialize | |
11248 | result_vdef to zero value. | |
11249 | ||
11250 | 2021-09-24 Feng Xue <fxue@os.amperecomputing.com> | |
11251 | ||
11252 | PR tree-optimization/102451 | |
11253 | * tree-ssa-dse.c (delete_dead_or_redundant_call): Record bb of stmt | |
11254 | before removal. | |
11255 | ||
11256 | 2021-09-24 Hongyu Wang <hongyu.wang@intel.com> | |
11257 | ||
11258 | * config/i386/sse.md (cond_<insn><mode>): Extend to support | |
11259 | vector HFmodes. | |
11260 | (cond_mul<mode>): Likewise. | |
11261 | (cond_div<mode>): Likewise. | |
11262 | (cond_<code><mode>): Likewise. | |
11263 | (cond_fma<mode>): Likewise. | |
11264 | (cond_fms<mode>): Likewise. | |
11265 | (cond_fnma<mode>): Likewise. | |
11266 | (cond_fnms<mode>): Likewise. | |
11267 | ||
11268 | 2021-09-23 Andrew MacLeod <amacleod@redhat.com> | |
11269 | ||
11270 | PR tree-optimization/102463 | |
11271 | * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): If | |
11272 | there is no range-ops handler, don't look for a relation. | |
11273 | ||
11274 | 2021-09-23 Andrew MacLeod <amacleod@redhat.com> | |
11275 | ||
11276 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Take | |
11277 | non-executable_edge flag as parameter. | |
11278 | * gimple-range-cache.h (ranger_cache): Adjust prototype. | |
11279 | * gimple-range-gori.cc (gori_compute::gori_compute): Take | |
11280 | non-executable_edge flag as parameter. | |
11281 | (gori_compute::outgoing_edge_range_p): Check new flag. | |
11282 | * gimple-range-gori.h (gori_compute): Adjust prototype. | |
11283 | * gimple-range.cc (gimple_ranger::gimple_ranger): Create new flag. | |
11284 | (gimple_ranger::range_on_edge): Check new flag. | |
11285 | * gimple-range.h (gimple_ranger::non_executable_edge_flag): New. | |
11286 | * gimple-ssa-evrp.c (rvrp_folder): Pass ranger flag to simplifer. | |
11287 | (hybrid_folder::hybrid_folder): Set ranger non-executable flag value. | |
11288 | (hybrid_folder::fold_stmt): Set flag value in the simplifer. | |
11289 | * vr-values.c (simplify_using_ranges::set_and_propagate_unexecutable): | |
11290 | Use not_executable flag if provided inmstead of EDGE_EXECUTABLE. | |
11291 | (simplify_using_ranges::simplify_switch_using_ranges): Clear | |
11292 | EDGE_EXECUTABLE like it originally did. | |
11293 | (simplify_using_ranges::cleanup_edges_and_switches): Clear any | |
11294 | NON_EXECUTABLE flags. | |
11295 | (simplify_using_ranges::simplify_using_ranges): Adjust. | |
11296 | * vr-values.h (class simplify_using_ranges): Adjust. | |
11297 | (simplify_using_ranges::set_range_query): Add non-executable flag param. | |
11298 | ||
11299 | 2021-09-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
11300 | ||
11301 | PR target/102024 | |
11302 | * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Detect | |
11303 | zero-width bit fields and return indicator. | |
11304 | (rs6000_discover_homogeneous_aggregate): Diagnose when the | |
11305 | presence of a zero-width bit field changes parameter passing in | |
11306 | GCC 12. | |
11307 | ||
11308 | 2021-09-23 Aldy Hernandez <aldyh@redhat.com> | |
11309 | ||
11310 | * gimple-range-fold.cc (fold_using_range::range_of_phi): | |
11311 | Remove dominator check. | |
11312 | ||
11313 | 2021-09-23 Aldy Hernandez <aldyh@redhat.com> | |
11314 | ||
11315 | * gimple-range-path.cc (path_range_query::precompute_relations): | |
11316 | Hoist edge calculations before using EDGE_SUCC. | |
11317 | ||
11318 | 2021-09-23 Jonathan Wakely <jwakely@redhat.com> | |
11319 | ||
11320 | * configure.ac: Fix --with-multilib-list description. | |
11321 | * configure: Regenerate. | |
11322 | ||
11323 | 2021-09-23 Richard Biener <rguenther@suse.de> | |
11324 | ||
11325 | PR tree-optimization/102448 | |
11326 | * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): | |
11327 | Clear alignment info copied from DR_PTR_INFO. | |
11328 | ||
11329 | 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> | |
11330 | ||
11331 | * config/i386/i386-expand.c (ix86_use_mask_cmp_p): Enable | |
11332 | HFmode mask_cmp. | |
11333 | * config/i386/sse.md (sseintvecmodelower): Add HF vector modes. | |
11334 | (<avx512>_store<mode>_mask): Extend to support HF vector modes. | |
11335 | (vec_cmp<mode><avx512fmaskmodelower>): Likewise. | |
11336 | (vcond_mask_<mode><avx512fmaskmodelower>): Likewise. | |
11337 | (vcond<mode><mode>): New expander. | |
11338 | (vcond<mode><sseintvecmodelower>): Likewise. | |
11339 | (vcond<sseintvecmodelower><mode>): Likewise. | |
11340 | (vcondu<mode><sseintvecmodelower>): Likewise. | |
11341 | ||
11342 | 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> | |
11343 | ||
11344 | * config/i386/sse.md (extend<ssePHmodelower><mode>2): | |
11345 | New expander. | |
11346 | (extendv4hf<mode>2): Likewise. | |
11347 | (extendv2hfv2df2): Likewise. | |
11348 | (trunc<mode><ssePHmodelower>2): Likewise. | |
11349 | (avx512fp16_vcvt<castmode>2ph_<mode>): Rename to ... | |
11350 | (trunc<mode>v4hf2): ... this, and drop constraints. | |
11351 | (avx512fp16_vcvtpd2ph_v2df): Rename to ... | |
11352 | (truncv2dfv2hf2): ... this, and likewise. | |
11353 | ||
11354 | 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> | |
11355 | ||
11356 | * config/i386/sse.md (float<floatunssuffix><mode><ssePHmodelower>2): | |
11357 | New expander. | |
11358 | (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): | |
11359 | Rename to ... | |
11360 | (float<floatunssuffix><mode>v4hf2): ... this, and drop constraints. | |
11361 | (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Rename to ... | |
11362 | (float<floatunssuffix>v2div2hf2): ... this, and likewise. | |
11363 | ||
11364 | 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> | |
11365 | ||
11366 | * config/i386/i386.md (fix<fixunssuffix>_trunchf<mode>2): New expander. | |
11367 | (fixuns_trunchfhi2): Likewise. | |
11368 | (*fixuns_trunchfsi2zext): New define_insn. | |
11369 | * config/i386/sse.md (ssePHmodelower): New mode_attr. | |
11370 | (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): | |
11371 | New expander for same element vector fix_truncate. | |
11372 | (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): | |
11373 | Likewise for V4HF to V4SI/V4DI fix_truncate. | |
11374 | (fix<fixunssuffix>_truncv2hfv2di2): | |
11375 | Likeise for V2HF to V2DI fix_truncate. | |
11376 | ||
11377 | 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> | |
11378 | ||
11379 | * config/i386/i386.md (<code>hf3): New expander. | |
11380 | ||
11381 | 2021-09-23 liuhongt <hongtao.liu@intel.com> | |
11382 | ||
11383 | * config/i386/sse.md (FMAMODEM): extend to handle FP16. | |
11384 | (VFH_SF_AVX512VL): Extend to handle HFmode. | |
11385 | (VF_SF_AVX512VL): Deleted. | |
11386 | ||
11387 | 2021-09-23 liuhongt <hongtao.liu@intel.com> | |
11388 | ||
11389 | * config/i386/i386.md (rinthf2): New expander. | |
11390 | (nearbyinthf2): New expander. | |
11391 | ||
11392 | 2021-09-23 Aldy Hernandez <aldyh@redhat.com> | |
11393 | ||
11394 | * tree-ssa-dom.c (class dom_jump_threader_simplifier): Rename... | |
11395 | (class dom_jt_state): ...this and provide virtual overrides. | |
11396 | (dom_jt_state::register_equiv): New. | |
11397 | (class dom_jt_simplifier): Rename from | |
11398 | dom_jump_threader_simplifier. | |
11399 | (dom_jump_threader_simplifier::simplify): Rename... | |
11400 | (dom_jt_simplifier::simplify): ...to this. | |
11401 | (pass_dominator::execute): Use dom_jt_simplifier and | |
11402 | dom_jt_state. | |
11403 | * tree-ssa-threadedge.c (jump_threader::jump_threader): | |
11404 | Clean-up. | |
11405 | (jt_state::register_equivs_stmt): Abstract out... | |
11406 | (jump_threader::record_temporary_equivalences_from_stmts_at_dest): | |
11407 | ...from here. | |
11408 | (jump_threader::thread_around_empty_blocks): Update state. | |
11409 | (jump_threader::thread_through_normal_block): Same. | |
11410 | (jt_state::jt_state): Remove. | |
11411 | (jt_state::push): Remove pass specific bits. Keep block vector | |
11412 | updated. | |
11413 | (jt_state::append_path): New. | |
11414 | (jt_state::pop): Remove pass specific bits. | |
11415 | (jt_state::register_equiv): Same. | |
11416 | (jt_state::record_ranges_from_stmt): Same. | |
11417 | (jt_state::register_equivs_on_edge): Same. Rename... | |
11418 | (jt_state::register_equivs_edge): ...to this. | |
11419 | (jt_state::dump): New. | |
11420 | (jt_state::debug): New. | |
11421 | (jump_threader_simplifier::simplify): Remove. | |
11422 | (jt_state::get_path): New. | |
11423 | * tree-ssa-threadedge.h (class jt_simplifier): Make into a base | |
11424 | class. Expose common functionality as virtual methods. | |
11425 | (class jump_threader_simplifier): Same. Rename... | |
11426 | (class jt_simplifier): ...to this. | |
11427 | * tree-vrp.c (class vrp_jump_threader_simplifier): Rename... | |
11428 | (class vrp_jt_simplifier): ...to this. Provide pass specific | |
11429 | overrides. | |
11430 | (class vrp_jt_state): New. | |
11431 | (vrp_jump_threader_simplifier::simplify): Rename... | |
11432 | (vrp_jt_simplifier::simplify): ...to this. Inline code from | |
11433 | what used to be the base class. | |
11434 | (vrp_jump_threader::vrp_jump_threader): Use vrp_jt_state and | |
11435 | vrp_jt_simplifier. | |
11436 | ||
11437 | 2021-09-22 Tobias Burnus <tobias@codesourcery.com> | |
11438 | ||
11439 | PR fortran/55534 | |
11440 | * doc/invoke.texi (-Wno-missing-include-dirs.): Document Fortran | |
11441 | behavior. | |
11442 | ||
11443 | 2021-09-22 Roger Sayle <roger@nextmovesoftware.com> | |
11444 | Richard Biener <rguenther@suse.de> | |
11445 | ||
11446 | * match.pd (negation simplifications): Implement some negation | |
11447 | folding transformations from fold-const.c's fold_negate_expr. | |
11448 | * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Add a SIMPLIFY | |
11449 | argument, to control whether the op should be simplified prior | |
11450 | to looking up/assigning a value number. | |
11451 | (vn_nary_build_or_lookup): Update call to vn_nary_build_or_lookup_1. | |
11452 | (vn_nary_simplify): Likewise. | |
11453 | (visit_nary_op): Likewise, but when constructing a NEGATE_EXPR | |
11454 | now call vn_nary_build_or_lookup_1 disabling simplification. | |
11455 | ||
11456 | 2021-09-22 Jiufu Guo <guojiufu@linux.ibm.com> | |
11457 | ||
11458 | PR tree-optimization/102087 | |
11459 | * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): | |
11460 | Update bound/cmp/control for niter. | |
11461 | ||
11462 | 2021-09-22 Aldy Hernandez <aldyh@redhat.com> | |
11463 | ||
11464 | * gimple-range-fold.cc (fold_using_range::range_of_range_op): | |
11465 | Move check for non-empty BB here. | |
11466 | (fur_source::register_outgoing_edges): ...from here. | |
11467 | ||
11468 | 2021-09-22 Aldy Hernandez <aldyh@redhat.com> | |
11469 | ||
11470 | * gimple-range-path.cc (path_range_query::internal_range_of_expr): | |
11471 | Remove call to improve_range_with_equivs. | |
11472 | (path_range_query::improve_range_with_equivs): Remove | |
11473 | * gimple-range-path.h: Remove improve_range_with_equivs. | |
11474 | ||
11475 | 2021-09-22 dianhong xu <dianhong.xu@intel.com> | |
11476 | ||
11477 | * config/i386/avx512fp16intrin.h: | |
11478 | (_mm512_mask_blend_ph): New intrinsic. | |
11479 | (_mm512_permutex2var_ph): Ditto. | |
11480 | (_mm512_permutexvar_ph): Ditto. | |
11481 | * config/i386/avx512fp16vlintrin.h: | |
11482 | (_mm256_mask_blend_ph): New intrinsic. | |
11483 | (_mm256_permutex2var_ph): Ditto. | |
11484 | (_mm256_permutexvar_ph): Ditto. | |
11485 | (_mm_mask_blend_ph): Ditto. | |
11486 | (_mm_permutex2var_ph): Ditto. | |
11487 | (_mm_permutexvar_ph): Ditto. | |
11488 | ||
11489 | 2021-09-22 dianhong xu <dianhong.xu@intel.com> | |
11490 | ||
11491 | * config/i386/avx512fp16intrin.h: Add new intrinsics. | |
11492 | (_mm512_conj_pch): New intrinsic. | |
11493 | (_mm512_mask_conj_pch): Ditto. | |
11494 | (_mm512_maskz_conj_pch): Ditto. | |
11495 | * config/i386/avx512fp16vlintrin.h: Add new intrinsics. | |
11496 | (_mm256_conj_pch): New intrinsic. | |
11497 | (_mm256_mask_conj_pch): Ditto. | |
11498 | (_mm256_maskz_conj_pch): Ditto. | |
11499 | (_mm_conj_pch): Ditto. | |
11500 | (_mm_mask_conj_pch): Ditto. | |
11501 | (_mm_maskz_conj_pch): Ditto. | |
11502 | ||
11503 | 2021-09-22 dianhong xu <dianhong.xu@intel.com> | |
11504 | ||
11505 | * config/i386/avx512fp16intrin.h (_MM512_REDUCE_OP): New macro | |
11506 | (_mm512_reduce_add_ph): New intrinsic. | |
11507 | (_mm512_reduce_mul_ph): Ditto. | |
11508 | (_mm512_reduce_min_ph): Ditto. | |
11509 | (_mm512_reduce_max_ph): Ditto. | |
11510 | * config/i386/avx512fp16vlintrin.h | |
11511 | (_MM256_REDUCE_OP/_MM_REDUCE_OP): New macro. | |
11512 | (_mm256_reduce_add_ph): New intrinsic. | |
11513 | (_mm256_reduce_mul_ph): Ditto. | |
11514 | (_mm256_reduce_min_ph): Ditto. | |
11515 | (_mm256_reduce_max_ph): Ditto. | |
11516 | (_mm_reduce_add_ph): Ditto. | |
11517 | (_mm_reduce_mul_ph): Ditto. | |
11518 | (_mm_reduce_min_ph): Ditto. | |
11519 | (_mm_reduce_max_ph): Ditto. | |
11520 | ||
11521 | 2021-09-22 dianhong xu <dianhong.xu@intel.com> | |
11522 | ||
11523 | * config/i386/avx512fp16intrin.h (__m512h_u, __m256h_u, | |
11524 | __m128h_u): New typedef. | |
11525 | (_mm512_load_ph): New intrinsic. | |
11526 | (_mm256_load_ph): Ditto. | |
11527 | (_mm_load_ph): Ditto. | |
11528 | (_mm512_loadu_ph): Ditto. | |
11529 | (_mm256_loadu_ph): Ditto. | |
11530 | (_mm_loadu_ph): Ditto. | |
11531 | (_mm512_store_ph): Ditto. | |
11532 | (_mm256_store_ph): Ditto. | |
11533 | (_mm_store_ph): Ditto. | |
11534 | (_mm512_storeu_ph): Ditto. | |
11535 | (_mm256_storeu_ph): Ditto. | |
11536 | (_mm_storeu_ph): Ditto. | |
11537 | (_mm512_abs_ph): Ditto. | |
11538 | * config/i386/avx512fp16vlintrin.h | |
11539 | (_mm_abs_ph): Ditto. | |
11540 | (_mm256_abs_ph): Ditto. | |
11541 | ||
11542 | 2021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> | |
11543 | ||
11544 | * config/s390/tpf.md (prologue_tpf, epilogue_tpf): Add cc clobber. | |
11545 | ||
11546 | 2021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> | |
11547 | ||
11548 | PR target/102222 | |
11549 | * config/s390/s390.c (s390_expand_insv): Emit a normal move if it | |
11550 | is actually a full copy of the source operand into the target. | |
11551 | Don't emit a strict low part move if source and target mode match. | |
11552 | ||
11553 | 2021-09-22 Jakub Jelinek <jakub@redhat.com> | |
11554 | ||
11555 | PR middle-end/102415 | |
11556 | * omp-expand.c (expand_omp_single): If region->exit is NULL, | |
11557 | assert region->entry is GIMPLE_OMP_SCOPE region and return. | |
11558 | ||
11559 | 2021-09-22 Jakub Jelinek <jakub@redhat.com> | |
11560 | ||
11561 | * tree.h (OMP_CLAUSE_ALLOCATE_ALIGN): Define. | |
11562 | * tree.c (omp_clause_num_ops): Change number of OMP_CLAUSE_ALLOCATE | |
11563 | arguments from 2 to 3. | |
11564 | * tree-pretty-print.c (dump_omp_clause): Print allocator() around | |
11565 | allocate clause allocator and print align if present. | |
11566 | * omp-low.c (scan_sharing_clauses): Force allocate_map entry even | |
11567 | for omp_default_mem_alloc if align modifier is present. If align | |
11568 | modifier is present, use TREE_LIST to encode both allocator and | |
11569 | align. | |
11570 | (lower_private_allocate, lower_rec_input_clauses, create_task_copyfn): | |
11571 | Handle align modifier on allocator clause if present. | |
11572 | ||
11573 | 2021-09-22 liuhongt <hongtao.liu@intel.com> | |
11574 | ||
11575 | * config/i386/i386.md (define_attr "isa"): Add | |
11576 | fma_or_avx512vl. | |
11577 | (define_attr "enabled"): Correspond fma_or_avx512vl to | |
11578 | TARGET_FMA || TARGET_AVX512VL. | |
11579 | * config/i386/mmx.md (fmav2sf4): Extend to AVX512 fma. | |
11580 | (fmsv2sf4): Ditto. | |
11581 | (fnmav2sf4): Ditto. | |
11582 | (fnmsv2sf4): Ditto. | |
11583 | ||
11584 | 2021-09-22 liuhongt <hongtao.liu@intel.com> | |
11585 | ||
11586 | * config/i386/i386.md (cstorehf3): New define_expand. | |
11587 | ||
11588 | 2021-09-22 liuhongt <hongtao.liu@intel.com> | |
11589 | ||
11590 | * config/i386/i386.md (<rounding_insn>hf2): New expander. | |
11591 | (sse4_1_round<mode>2): Extend from MODEF to MODEFH. | |
11592 | * config/i386/sse.md (*sse4_1_round<ssescalarmodesuffix>): | |
11593 | Extend from VF_128 to VFH_128. | |
11594 | ||
11595 | 2021-09-22 liuhongt <hongtao.liu@intel.com> | |
11596 | ||
11597 | * config/i386/i386-features.c (i386-features.c): Handle | |
11598 | E_HFmode. | |
11599 | * config/i386/i386.md (sqrthf2): New expander. | |
11600 | (*sqrthf2): New define_insn. | |
11601 | * config/i386/sse.md | |
11602 | (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): | |
11603 | Extend to VFH_128. | |
11604 | ||
11605 | 2021-09-22 liuhongt <hongtao.liu@intel.com> | |
11606 | ||
11607 | * config/i386/avx512fp16intrin.h (_mm_mask_fcmadd_sch): | |
11608 | New intrinsic. | |
11609 | (_mm_mask3_fcmadd_sch): Likewise. | |
11610 | (_mm_maskz_fcmadd_sch): Likewise. | |
11611 | (_mm_fcmadd_sch): Likewise. | |
11612 | (_mm_mask_fmadd_sch): Likewise. | |
11613 | (_mm_mask3_fmadd_sch): Likewise. | |
11614 | (_mm_maskz_fmadd_sch): Likewise. | |
11615 | (_mm_fmadd_sch): Likewise. | |
11616 | (_mm_mask_fcmadd_round_sch): Likewise. | |
11617 | (_mm_mask3_fcmadd_round_sch): Likewise. | |
11618 | (_mm_maskz_fcmadd_round_sch): Likewise. | |
11619 | (_mm_fcmadd_round_sch): Likewise. | |
11620 | (_mm_mask_fmadd_round_sch): Likewise. | |
11621 | (_mm_mask3_fmadd_round_sch): Likewise. | |
11622 | (_mm_maskz_fmadd_round_sch): Likewise. | |
11623 | (_mm_fmadd_round_sch): Likewise. | |
11624 | (_mm_fcmul_sch): Likewise. | |
11625 | (_mm_mask_fcmul_sch): Likewise. | |
11626 | (_mm_maskz_fcmul_sch): Likewise. | |
11627 | (_mm_fmul_sch): Likewise. | |
11628 | (_mm_mask_fmul_sch): Likewise. | |
11629 | (_mm_maskz_fmul_sch): Likewise. | |
11630 | (_mm_fcmul_round_sch): Likewise. | |
11631 | (_mm_mask_fcmul_round_sch): Likewise. | |
11632 | (_mm_maskz_fcmul_round_sch): Likewise. | |
11633 | (_mm_fmul_round_sch): Likewise. | |
11634 | (_mm_mask_fmul_round_sch): Likewise. | |
11635 | (_mm_maskz_fmul_round_sch): Likewise. | |
11636 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
11637 | * config/i386/sse.md | |
11638 | (avx512fp16_fmaddcsh_v8hf_maskz<round_expand_name>): New expander. | |
11639 | (avx512fp16_fcmaddcsh_v8hf_maskz<round_expand_name>): Ditto. | |
11640 | (avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>): | |
11641 | New define insn. | |
11642 | (avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Ditto. | |
11643 | (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>): | |
11644 | Ditto. | |
11645 | * config/i386/subst.md (mask_scalarcz_name): New. | |
11646 | (mask_scalarc_name): Ditto. | |
11647 | (mask_scalarc_operand3): Ditto. | |
11648 | (mask_scalarcz_operand4): Ditto. | |
11649 | (round_scalarcz_name): Ditto. | |
11650 | (round_scalarc_mask_operand3): Ditto. | |
11651 | (round_scalarcz_mask_operand4): Ditto. | |
11652 | (round_scalarc_mask_op3): Ditto. | |
11653 | (round_scalarcz_mask_op4): Ditto. | |
11654 | (round_scalarcz_constraint): Ditto. | |
11655 | (round_scalarcz_nimm_predicate): Ditto. | |
11656 | (mask_scalarcz): Ditto. | |
11657 | (mask_scalarc): Ditto. | |
11658 | (round_scalarcz): Ditto. | |
11659 | ||
11660 | 2021-09-22 liuhongt <hongtao.liu@intel.com> | |
11661 | ||
11662 | * config/i386/avx512fp16intrin.h (_mm512_fcmadd_pch): | |
11663 | New intrinsic. | |
11664 | (_mm512_mask_fcmadd_pch): Likewise. | |
11665 | (_mm512_mask3_fcmadd_pch): Likewise. | |
11666 | (_mm512_maskz_fcmadd_pch): Likewise. | |
11667 | (_mm512_fmadd_pch): Likewise. | |
11668 | (_mm512_mask_fmadd_pch): Likewise. | |
11669 | (_mm512_mask3_fmadd_pch): Likewise. | |
11670 | (_mm512_maskz_fmadd_pch): Likewise. | |
11671 | (_mm512_fcmadd_round_pch): Likewise. | |
11672 | (_mm512_mask_fcmadd_round_pch): Likewise. | |
11673 | (_mm512_mask3_fcmadd_round_pch): Likewise. | |
11674 | (_mm512_maskz_fcmadd_round_pch): Likewise. | |
11675 | (_mm512_fmadd_round_pch): Likewise. | |
11676 | (_mm512_mask_fmadd_round_pch): Likewise. | |
11677 | (_mm512_mask3_fmadd_round_pch): Likewise. | |
11678 | (_mm512_maskz_fmadd_round_pch): Likewise. | |
11679 | (_mm512_fcmul_pch): Likewise. | |
11680 | (_mm512_mask_fcmul_pch): Likewise. | |
11681 | (_mm512_maskz_fcmul_pch): Likewise. | |
11682 | (_mm512_fmul_pch): Likewise. | |
11683 | (_mm512_mask_fmul_pch): Likewise. | |
11684 | (_mm512_maskz_fmul_pch): Likewise. | |
11685 | (_mm512_fcmul_round_pch): Likewise. | |
11686 | (_mm512_mask_fcmul_round_pch): Likewise. | |
11687 | (_mm512_maskz_fcmul_round_pch): Likewise. | |
11688 | (_mm512_fmul_round_pch): Likewise. | |
11689 | (_mm512_mask_fmul_round_pch): Likewise. | |
11690 | (_mm512_maskz_fmul_round_pch): Likewise. | |
11691 | * config/i386/avx512fp16vlintrin.h (_mm_fmadd_pch): | |
11692 | New intrinsic. | |
11693 | (_mm_mask_fmadd_pch): Likewise. | |
11694 | (_mm_mask3_fmadd_pch): Likewise. | |
11695 | (_mm_maskz_fmadd_pch): Likewise. | |
11696 | (_mm256_fmadd_pch): Likewise. | |
11697 | (_mm256_mask_fmadd_pch): Likewise. | |
11698 | (_mm256_mask3_fmadd_pch): Likewise. | |
11699 | (_mm256_maskz_fmadd_pch): Likewise. | |
11700 | (_mm_fcmadd_pch): Likewise. | |
11701 | (_mm_mask_fcmadd_pch): Likewise. | |
11702 | (_mm_mask3_fcmadd_pch): Likewise. | |
11703 | (_mm_maskz_fcmadd_pch): Likewise. | |
11704 | (_mm256_fcmadd_pch): Likewise. | |
11705 | (_mm256_mask_fcmadd_pch): Likewise. | |
11706 | (_mm256_mask3_fcmadd_pch): Likewise. | |
11707 | (_mm256_maskz_fcmadd_pch): Likewise. | |
11708 | (_mm_fmul_pch): Likewise. | |
11709 | (_mm_mask_fmul_pch): Likewise. | |
11710 | (_mm_maskz_fmul_pch): Likewise. | |
11711 | (_mm256_fmul_pch): Likewise. | |
11712 | (_mm256_mask_fmul_pch): Likewise. | |
11713 | (_mm256_maskz_fmul_pch): Likewise. | |
11714 | (_mm_fcmul_pch): Likewise. | |
11715 | (_mm_mask_fcmul_pch): Likewise. | |
11716 | (_mm_maskz_fcmul_pch): Likewise. | |
11717 | (_mm256_fcmul_pch): Likewise. | |
11718 | (_mm256_mask_fcmul_pch): Likewise. | |
11719 | (_mm256_maskz_fcmul_pch): Likewise. | |
11720 | * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF_V8HF_V8HF, | |
11721 | V8HF_FTYPE_V16HF_V16HF_V16HF, V16HF_FTYPE_V16HF_V16HF_V16HF_UQI, | |
11722 | V32HF_FTYPE_V32HF_V32HF_V32HF_INT, | |
11723 | V32HF_FTYPE_V32HF_V32HF_V32HF_UHI_INT): Add new builtin types. | |
11724 | * config/i386/i386-builtin.def: Add new builtins. | |
11725 | * config/i386/i386-expand.c: Handle new builtin types. | |
11726 | * config/i386/subst.md (SUBST_CV): New. | |
11727 | (maskc_name): Ditto. | |
11728 | (maskc_operand3): Ditto. | |
11729 | (maskc): Ditto. | |
11730 | (sdc_maskz_name): Ditto. | |
11731 | (sdc_mask_op4): Ditto. | |
11732 | (sdc_mask_op5): Ditto. | |
11733 | (sdc_mask_mode512bit_condition): Ditto. | |
11734 | (sdc): Ditto. | |
11735 | (round_maskc_operand3): Ditto. | |
11736 | (round_sdc_mask_operand4): Ditto. | |
11737 | (round_maskc_op3): Ditto. | |
11738 | (round_sdc_mask_op4): Ditto. | |
11739 | (round_saeonly_sdc_mask_operand5): Ditto. | |
11740 | * config/i386/sse.md (unspec): Add complex fma unspecs. | |
11741 | (avx512fmaskcmode): New. | |
11742 | (UNSPEC_COMPLEX_F_C_MA): Ditto. | |
11743 | (UNSPEC_COMPLEX_F_C_MUL): Ditto. | |
11744 | (complexopname): Ditto. | |
11745 | (<avx512>_fmaddc_<mode>_maskz<round_expand_name>): New expander. | |
11746 | (<avx512>_fcmaddc_<mode>_maskz<round_expand_name>): Ditto. | |
11747 | (fma_<complexopname>_<mode><sdc_maskz_name><round_name>): New | |
11748 | define insn. | |
11749 | (<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto. | |
11750 | (<avx512>_<complexopname>_<mode><maskc_name><round_name>): Ditto. | |
11751 | ||
11752 | 2021-09-22 Kewen Lin <linkw@linux.ibm.com> | |
11753 | ||
11754 | * config/rs6000/rs6000.opt (rs6000-density-pct-threshold, | |
11755 | rs6000-density-size-threshold, rs6000-density-penalty, | |
11756 | rs6000-density-load-pct-threshold, | |
11757 | rs6000-density-load-num-threshold): New parameter. | |
11758 | * config/rs6000/rs6000.c (rs6000_density_test): Adjust with | |
11759 | corresponding parameters. | |
11760 | ||
11761 | 2021-09-21 Aldy Hernandez <aldyh@redhat.com> | |
11762 | ||
11763 | * gimple-range-path.cc (path_range_query::defined_outside_path): | |
11764 | New. | |
11765 | (path_range_query::range_on_path_entry): New. | |
11766 | (path_range_query::internal_range_of_expr): Resolve unknowns | |
11767 | with ranger. | |
11768 | (path_range_query::improve_range_with_equivs): New. | |
11769 | (path_range_query::ssa_range_in_phi): Resolve unknowns with | |
11770 | ranger. | |
11771 | * gimple-range-path.h (class path_range_query): Add | |
11772 | defined_outside_path, range_on_path_entry, and | |
11773 | improve_range_with_equivs. | |
11774 | ||
11775 | 2021-09-21 Aldy Hernandez <aldyh@redhat.com> | |
11776 | ||
11777 | * gimple-range-path.cc (path_range_query::add_to_imports): New. | |
11778 | (path_range_query::add_copies_to_imports): New. | |
11779 | (path_range_query::precompute_ranges): Call | |
11780 | add_copies_to_imports. | |
11781 | * gimple-range-path.h (class path_range_query): Add prototypes | |
11782 | for add_copies_to_imports and add_to_imports. | |
11783 | ||
11784 | 2021-09-21 Aldy Hernandez <aldyh@redhat.com> | |
11785 | ||
11786 | * gimple-range-path.cc (path_range_query::range_defined_in_block): | |
11787 | Remove useless code. | |
11788 | ||
11789 | 2021-09-21 Aldy Hernandez <aldyh@redhat.com> | |
11790 | ||
11791 | * gimple-range-fold.h (class fur_source): Make oracle protected. | |
11792 | * gimple-range-path.cc (path_range_query::path_range_query): Add | |
11793 | resolve argument. Initialize oracle. | |
11794 | (path_range_query::~path_range_query): Delete oracle. | |
11795 | (path_range_query::range_of_stmt): Adapt to use relations. | |
11796 | (path_range_query::precompute_ranges): Pre-compute relations. | |
11797 | (class jt_fur_source): New | |
11798 | (jt_fur_source::jt_fur_source): New. | |
11799 | (jt_fur_source::register_relation): New. | |
11800 | (jt_fur_source::query_relation): New. | |
11801 | (path_range_query::precompute_relations): New. | |
11802 | (path_range_query::precompute_phi_relations): New. | |
11803 | * gimple-range-path.h (path_range_query): Add resolve argument. | |
11804 | Add oracle, precompute_relations, precompute_phi_relations. | |
11805 | * tree-ssa-threadbackward.c (back_threader::back_threader): Pass | |
11806 | resolve argument to solver. | |
11807 | ||
11808 | 2021-09-21 Aldy Hernandez <aldyh@redhat.com> | |
11809 | ||
11810 | * gimple-range-fold.cc (fold_using_range::range_of_range_op): | |
11811 | Rename postfold_gcond_edges to register_outgoing_edges and | |
11812 | adapt. | |
11813 | (fold_using_range::postfold_gcond_edges): Rename... | |
11814 | (fur_source::register_outgoing_edges): ...to this. | |
11815 | * gimple-range-fold.h (postfold_gcond_edges): Rename to | |
11816 | register_outgoing_edges and move to fur_source. | |
11817 | ||
11818 | 2021-09-21 Aldy Hernandez <aldyh@redhat.com> | |
11819 | ||
11820 | * gimple-range-fold.cc (fold_using_range::range_of_phi): Check | |
11821 | dom_info_available_p. | |
11822 | ||
11823 | 2021-09-21 Aldy Hernandez <aldyh@redhat.com> | |
11824 | ||
11825 | * gimple-range-cache.cc (non_null_ref::non_null_ref): Use create | |
11826 | and quick_grow_cleared instead of safe_grow_cleared. | |
11827 | ||
11828 | 2021-09-21 Thomas Schwinge <thomas@codesourcery.com> | |
11829 | ||
11830 | PR other/102408 | |
11831 | * omp-oacc-neuter-broadcast.cc (oacc_do_neutering): Evaluate | |
11832 | 'random ()' to '0'. | |
11833 | ||
11834 | 2021-09-21 Richard Earnshaw <rearnsha@arm.com> | |
11835 | ||
11836 | * configure.ac: Detect when the assembler supports new-style | |
11837 | architecture extensions. | |
11838 | * common/config/arm/arm-common.c (arm_rewrite_mcpu): Return | |
11839 | the full CPU string if the assembler can grok it. | |
11840 | (arm_rewrite_march): Likewise but for the architecture. | |
11841 | * config.in: Regenerate. | |
11842 | * configure: Regenerate. | |
11843 | ||
11844 | 2021-09-21 Richard Biener <rguenther@suse.de> | |
11845 | ||
11846 | PR tree-optimization/102421 | |
11847 | * tree-vect-loop.c (vect_dissolve_slp_only_groups): Copy and | |
11848 | adjust alignment info. | |
11849 | ||
11850 | 2021-09-21 Kewen Lin <linkw@linux.ibm.com> | |
11851 | ||
11852 | * ipa-fnsummary.c (ipa_fn_summary_write): Remove inconsistent | |
11853 | bitfield stream out. | |
11854 | ||
11855 | 2021-09-20 Andrew MacLeod <amacleod@redhat.com> | |
11856 | ||
11857 | * gimple-range-fold.cc (fold_using_range::range_of_phi): Ignore | |
11858 | undefined edges, apply an equivalence if appropriate. | |
11859 | * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Return | |
11860 | UNDEFINED if EDGE_EXECUTABLE is not set. | |
11861 | * gimple-range.cc (gimple_ranger::gimple_ranger): Set all edges | |
11862 | as EXECUTABLE upon startup. | |
11863 | (gimple_ranger::range_on_edge): Return UNDEFINED for edges without | |
11864 | EDGE_EXECUTABLE set. | |
11865 | * vr-values.c (set_and_propagate_unexecutable): New. | |
11866 | (simplify_using_ranges::fold_cond): Call set_and_propagate. | |
11867 | (simplify_using_ranges::simplify_switch_using_ranges): Ditto. | |
11868 | * vr-values.h: Add prototype. | |
11869 | ||
11870 | 2021-09-20 Andrew MacLeod <amacleod@redhat.com> | |
11871 | ||
11872 | * value-relation.cc (equiv_oracle::register_initial_def): New. | |
11873 | (equiv_oracle::register_relation): Call register_initial_def. | |
11874 | (equiv_oracle::add_equiv_to_block): New. Split register_relation. | |
11875 | (relation_oracle::register_stmt): Check def block of PHI arguments. | |
11876 | * value-relation.h (equiv_oracle): Add new prototypes. | |
11877 | ||
11878 | 2021-09-20 Matthias Kretz <m.kretz@gsi.de> | |
11879 | ||
11880 | * cppbuiltin.c (define_builtin_macros_for_compilation_flags): | |
11881 | Define __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__, | |
11882 | __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and | |
11883 | __ROUNDING_MATH__ according to their corresponding flags. | |
11884 | * doc/cpp.texi: Document __RECIPROCAL_MATH__, | |
11885 | __NO_SIGNED_ZEROS__, __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, | |
11886 | and __ROUNDING_MATH__. | |
11887 | ||
11888 | 2021-09-20 Richard Biener <rguenther@suse.de> | |
11889 | ||
11890 | * tree-vect-stmts.c (vectorizable_load): Use the vectype | |
11891 | from the SLP node. | |
11892 | ||
11893 | 2021-09-20 Richard Biener <rguenther@suse.de> | |
11894 | ||
11895 | * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): | |
11896 | Do not compute alignment of the vectorized access here. | |
11897 | ||
11898 | 2021-09-20 Richard Biener <rguenther@suse.de> | |
11899 | ||
11900 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): | |
11901 | Store -1 for runtime alias peeling iterations. | |
11902 | ||
11903 | 2021-09-20 Richard Biener <rguenther@suse.de> | |
11904 | ||
11905 | * config.gcc: Obsolete hppa[12]*-*-hpux10* and hppa[12]*-*-hpux11*. | |
11906 | ||
11907 | 2021-09-20 Thomas Schwinge <thomas@codesourcery.com> | |
11908 | ||
11909 | * input.c (string_concat_db::record_string_concatenation) | |
11910 | (string_concat_db::get_string_concatenation): Skip for | |
11911 | 'RESERVED_LOCATION_P'. | |
11912 | ||
11913 | 2021-09-20 Richard Biener <rguenther@suse.de> | |
11914 | ||
11915 | PR tree-optimization/65206 | |
11916 | * tree-data-ref.h (struct data_reference): Add alt_indices, | |
11917 | order it last. | |
11918 | * tree-data-ref.c (free_data_ref): Release alt_indices. | |
11919 | (dr_analyze_indices): Work on struct indices and get DR_REF as tree. | |
11920 | (create_data_ref): Adjust. | |
11921 | (initialize_data_dependence_relation): Split into head | |
11922 | and tail. When the base objects fail to match up try | |
11923 | again with pointer-based analysis of indices. | |
11924 | * tree-vectorizer.c (vec_info_shared::check_datarefs): Do | |
11925 | not compare the lazily computed alternate set of indices. | |
11926 | ||
11927 | 2021-09-20 Iain Sandoe <iain@sandoe.co.uk> | |
11928 | ||
11929 | * gcc.c: Test for execute OK when we find the | |
11930 | programs for assembler linker and dsymutil and those | |
11931 | were specified at configure-time. | |
11932 | ||
11933 | 2021-09-19 Martin Sebor <msebor@redhat.com> | |
11934 | ||
11935 | PR middle-end/102403 | |
11936 | * gimple-predicate-analysis.cc (predicate::init_from_control_deps): | |
11937 | Correct a function pre/postcondition. | |
11938 | ||
11939 | 2021-09-19 Martin Sebor <msebor@redhat.com> | |
11940 | ||
11941 | PR middle-end/102243 | |
11942 | * tree-ssa-strlen.c (get_range): Handle null cfun. | |
11943 | ||
11944 | 2021-09-19 Iain Sandoe <iain@sandoe.co.uk> | |
11945 | ||
11946 | * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 | |
11947 | unwinder shim as a convenience library. | |
11948 | ||
11949 | 2021-09-19 Andrew Pinski <apinski@marvell.com> | |
11950 | ||
11951 | * doc/install.texi: Add note about | |
11952 | binutils 2.35 is required for LTO usage. | |
11953 | ||
11954 | 2021-09-19 Aldy Hernandez <aldyh@redhat.com> | |
11955 | ||
11956 | * tree-ssa-threadbackward.c | |
11957 | (back_threader_registry::register_path): Use push_edge. | |
11958 | * tree-ssa-threadedge.c | |
11959 | (jump_threader::thread_around_empty_blocks): Same. | |
11960 | (jump_threader::thread_through_normal_block): Same. | |
11961 | (jump_threader::thread_across_edge): Same. Also, use auto_bitmap. | |
11962 | Tidy up code. | |
11963 | * tree-ssa-threadupdate.c | |
11964 | (jt_path_registry::allocate_thread_edge): Remove. | |
11965 | (jt_path_registry::push_edge): New. | |
11966 | (dump_jump_thread_path): Make static. | |
11967 | * tree-ssa-threadupdate.h (allocate_thread_edge): Remove. | |
11968 | (push_edge): New. | |
11969 | ||
11970 | 2021-09-19 Aldy Hernandez <aldyh@redhat.com> | |
11971 | ||
11972 | * gimple-range-path.cc (path_range_query::path_range_query): Add | |
11973 | header. | |
11974 | (path_range_query::dump): Remove extern declaration of dump_ranger. | |
11975 | * gimple-range-trace.cc (dump_ranger): Add DEBUG_FUNCTION marker. | |
11976 | * gimple-range-trace.h (dump_ranger): Add prototype. | |
11977 | ||
11978 | 2021-09-19 John Ericson <git@JohnEricson.me> | |
11979 | ||
11980 | * gcc.c (find_a_program): New function, factored out of... | |
11981 | (find_a_file): Here. | |
11982 | (execute): Use find_a_program when looking for programs rather | |
11983 | than find_a_file. | |
11984 | ||
11985 | 2021-09-19 Matwey V. Kornilov <matwey.kornilov@gmail.com> | |
11986 | ||
11987 | * config/avr/avr-mcus.def: Add atmega324pb. | |
11988 | * doc/avr-mmcu.texi: Corresponding changes. | |
11989 | ||
11990 | 2021-09-19 Roger Sayle <roger@nextmovesoftware.com> | |
11991 | ||
11992 | PR middle-end/88173 | |
11993 | * match.pd (cmp @0 REAL_CST@1): When @0 is also REAL_CST, apply | |
11994 | the same transformations as to @1. For comparisons against NaN, | |
11995 | don't check HONOR_SNANS but confirm that neither operand is a | |
11996 | signaling NaN. | |
11997 | ||
11998 | 2021-09-19 Benjamin Peterson <benjamin@locrian.net> | |
11999 | ||
12000 | * attribs.c (make_unique_name): Delete. | |
12001 | * attribs.h (make_unique_name): Delete. | |
12002 | ||
12003 | 2021-09-19 Andrew Pinski <apinski@marvell.com> | |
12004 | ||
12005 | * lra-constraints.c (check_and_process_move): Assert | |
12006 | that dclass and sclass are greater than or equal to NO_REGS. | |
12007 | ||
12008 | 2021-09-18 Jakub Jelinek <jakub@redhat.com> | |
12009 | ||
12010 | * tree.h (OMP_CLAUSE_ORDER_UNCONSTRAINED): Define. | |
12011 | * tree-pretty-print.c (dump_omp_clause): Print unconstrained: | |
12012 | for OMP_CLAUSE_ORDER_UNCONSTRAINED. | |
12013 | ||
12014 | 2021-09-18 liuhongt <hongtao.liu@intel.com> | |
12015 | ||
12016 | * config/i386/i386-features.c (remove_partial_avx_dependency): | |
12017 | Restrict TARGET_USE_VECTOR_FP_CONVERTS and | |
12018 | TARGET_USE_VECTOR_CONVERTS to conversion instructions only. | |
12019 | ||
12020 | 2021-09-18 Jakub Jelinek <jakub@redhat.com> | |
12021 | ||
12022 | * gimplify.c (omp_default_clause): For C/C++ default({,first}private), | |
12023 | if file/namespace scope variable doesn't have predetermined sharing, | |
12024 | treat it as if there was default(none). | |
12025 | ||
12026 | 2021-09-18 liuhongt <hongtao.liu@intel.com> | |
12027 | ||
12028 | * config/i386/avx512fp16intrin.h (_mm_fmadd_sh): | |
12029 | New intrinsic. | |
12030 | (_mm_mask_fmadd_sh): Likewise. | |
12031 | (_mm_mask3_fmadd_sh): Likewise. | |
12032 | (_mm_maskz_fmadd_sh): Likewise. | |
12033 | (_mm_fmadd_round_sh): Likewise. | |
12034 | (_mm_mask_fmadd_round_sh): Likewise. | |
12035 | (_mm_mask3_fmadd_round_sh): Likewise. | |
12036 | (_mm_maskz_fmadd_round_sh): Likewise. | |
12037 | (_mm_fnmadd_sh): Likewise. | |
12038 | (_mm_mask_fnmadd_sh): Likewise. | |
12039 | (_mm_mask3_fnmadd_sh): Likewise. | |
12040 | (_mm_maskz_fnmadd_sh): Likewise. | |
12041 | (_mm_fnmadd_round_sh): Likewise. | |
12042 | (_mm_mask_fnmadd_round_sh): Likewise. | |
12043 | (_mm_mask3_fnmadd_round_sh): Likewise. | |
12044 | (_mm_maskz_fnmadd_round_sh): Likewise. | |
12045 | (_mm_fmsub_sh): Likewise. | |
12046 | (_mm_mask_fmsub_sh): Likewise. | |
12047 | (_mm_mask3_fmsub_sh): Likewise. | |
12048 | (_mm_maskz_fmsub_sh): Likewise. | |
12049 | (_mm_fmsub_round_sh): Likewise. | |
12050 | (_mm_mask_fmsub_round_sh): Likewise. | |
12051 | (_mm_mask3_fmsub_round_sh): Likewise. | |
12052 | (_mm_maskz_fmsub_round_sh): Likewise. | |
12053 | (_mm_fnmsub_sh): Likewise. | |
12054 | (_mm_mask_fnmsub_sh): Likewise. | |
12055 | (_mm_mask3_fnmsub_sh): Likewise. | |
12056 | (_mm_maskz_fnmsub_sh): Likewise. | |
12057 | (_mm_fnmsub_round_sh): Likewise. | |
12058 | (_mm_mask_fnmsub_round_sh): Likewise. | |
12059 | (_mm_mask3_fnmsub_round_sh): Likewise. | |
12060 | (_mm_maskz_fnmsub_round_sh): Likewise. | |
12061 | * config/i386/i386-builtin-types.def | |
12062 | (V8HF_FTYPE_V8HF_V8HF_V8HF_UQI_INT): New builtin type. | |
12063 | * config/i386/i386-builtin.def: Add new builtins. | |
12064 | * config/i386/i386-expand.c: Handle new builtin type. | |
12065 | * config/i386/sse.md (fmai_vmfmadd_<mode><round_name>): | |
12066 | Ajdust to support FP16. | |
12067 | (fmai_vmfmsub_<mode><round_name>): Ditto. | |
12068 | (fmai_vmfnmadd_<mode><round_name>): Ditto. | |
12069 | (fmai_vmfnmsub_<mode><round_name>): Ditto. | |
12070 | (*fmai_fmadd_<mode>): Ditto. | |
12071 | (*fmai_fmsub_<mode>): Ditto. | |
12072 | (*fmai_fnmadd_<mode><round_name>): Ditto. | |
12073 | (*fmai_fnmsub_<mode><round_name>): Ditto. | |
12074 | (avx512f_vmfmadd_<mode>_mask<round_name>): Ditto. | |
12075 | (avx512f_vmfmadd_<mode>_mask3<round_name>): Ditto. | |
12076 | (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): Ditto. | |
12077 | (avx512f_vmfmadd_<mode>_maskz_1<round_name>): Ditto. | |
12078 | (*avx512f_vmfmsub_<mode>_mask<round_name>): Ditto. | |
12079 | (avx512f_vmfmsub_<mode>_mask3<round_name>): Ditto. | |
12080 | (*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Ditto. | |
12081 | (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. | |
12082 | (*avx512f_vmfnmsub_<mode>_mask3<round_name>): Ditto. | |
12083 | (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. | |
12084 | (*avx512f_vmfnmadd_<mode>_mask<round_name>): Renamed to ... | |
12085 | (avx512f_vmfnmadd_<mode>_mask<round_name>) ... this, and | |
12086 | adjust to support FP16. | |
12087 | (avx512f_vmfnmadd_<mode>_mask3<round_name>): Ditto. | |
12088 | (avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Ditto. | |
12089 | (avx512f_vmfnmadd_<mode>_maskz<round_expand_name>): New | |
12090 | expander. | |
12091 | ||
12092 | 2021-09-18 H.J. Lu <hjl.tools@gmail.com> | |
12093 | ||
12094 | * config/i386/sse.md (avx512fmaskmodelower): Extend to support | |
12095 | HF modes. | |
12096 | (maskload<mode><avx512fmaskmodelower>): Ditto. | |
12097 | (maskstore<mode><avx512fmaskmodelower>): Ditto. | |
12098 | ||
12099 | 2021-09-18 H.J. Lu <hjl.tools@gmail.com> | |
12100 | ||
12101 | * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): | |
12102 | Handle HFmode. | |
12103 | (ix86_expand_copysign): Ditto. | |
12104 | (ix86_expand_xorsign): Ditto. | |
12105 | * config/i386/i386.c (ix86_build_const_vector): Handle HF vector | |
12106 | modes. | |
12107 | (ix86_build_signbit_mask): Ditto. | |
12108 | (ix86_can_change_mode_class): Ditto. | |
12109 | * config/i386/i386.md | |
12110 | (SSEMODEF): Add HFmode. | |
12111 | (ssevecmodef): Ditto. | |
12112 | (<code>hf2): New define_expand. | |
12113 | (*<code>hf2_1): New define_insn_and_split. | |
12114 | (copysign<mode>): Extend to support HFmode under AVX512FP16. | |
12115 | (xorsign<mode>): Ditto. | |
12116 | * config/i386/sse.md (VFB): New mode iterator. | |
12117 | (VFB_128_256): Ditto. | |
12118 | (VFB_512): Ditto. | |
12119 | (sseintvecmode2): Support HF vector mode. | |
12120 | (<code><mode>2): Use new mode iterator. | |
12121 | (*<code><mode>2): Ditto. | |
12122 | (copysign<mode>3): Ditto. | |
12123 | (xorsign<mode>3): Ditto. | |
12124 | (<code><mode>3<mask_name>): Ditto. | |
12125 | (<code><mode>3<mask_name>): Ditto. | |
12126 | (<sse>_andnot<mode>3<mask_name>): Adjust for HF vector mode. | |
12127 | (<sse>_andnot<mode>3<mask_name>): Ditto. | |
12128 | (*<code><mode>3<mask_name>): Ditto. | |
12129 | (*<code><mode>3<mask_name>): Ditto. | |
12130 | ||
12131 | 2021-09-18 liuhongt <hongtao.liu@intel.com> | |
12132 | ||
12133 | * config/i386/avx512fp16intrin.h (_mm512_mask_fmadd_ph): | |
12134 | New intrinsic. | |
12135 | (_mm512_mask3_fmadd_ph): Likewise. | |
12136 | (_mm512_maskz_fmadd_ph): Likewise. | |
12137 | (_mm512_fmadd_round_ph): Likewise. | |
12138 | (_mm512_mask_fmadd_round_ph): Likewise. | |
12139 | (_mm512_mask3_fmadd_round_ph): Likewise. | |
12140 | (_mm512_maskz_fmadd_round_ph): Likewise. | |
12141 | (_mm512_fnmadd_ph): Likewise. | |
12142 | (_mm512_mask_fnmadd_ph): Likewise. | |
12143 | (_mm512_mask3_fnmadd_ph): Likewise. | |
12144 | (_mm512_maskz_fnmadd_ph): Likewise. | |
12145 | (_mm512_fnmadd_round_ph): Likewise. | |
12146 | (_mm512_mask_fnmadd_round_ph): Likewise. | |
12147 | (_mm512_mask3_fnmadd_round_ph): Likewise. | |
12148 | (_mm512_maskz_fnmadd_round_ph): Likewise. | |
12149 | (_mm512_fmsub_ph): Likewise. | |
12150 | (_mm512_mask_fmsub_ph): Likewise. | |
12151 | (_mm512_mask3_fmsub_ph): Likewise. | |
12152 | (_mm512_maskz_fmsub_ph): Likewise. | |
12153 | (_mm512_fmsub_round_ph): Likewise. | |
12154 | (_mm512_mask_fmsub_round_ph): Likewise. | |
12155 | (_mm512_mask3_fmsub_round_ph): Likewise. | |
12156 | (_mm512_maskz_fmsub_round_ph): Likewise. | |
12157 | (_mm512_fnmsub_ph): Likewise. | |
12158 | (_mm512_mask_fnmsub_ph): Likewise. | |
12159 | (_mm512_mask3_fnmsub_ph): Likewise. | |
12160 | (_mm512_maskz_fnmsub_ph): Likewise. | |
12161 | (_mm512_fnmsub_round_ph): Likewise. | |
12162 | (_mm512_mask_fnmsub_round_ph): Likewise. | |
12163 | (_mm512_mask3_fnmsub_round_ph): Likewise. | |
12164 | (_mm512_maskz_fnmsub_round_ph): Likewise. | |
12165 | * config/i386/avx512fp16vlintrin.h (_mm256_fmadd_ph): | |
12166 | New intrinsic. | |
12167 | (_mm256_mask_fmadd_ph): Likewise. | |
12168 | (_mm256_mask3_fmadd_ph): Likewise. | |
12169 | (_mm256_maskz_fmadd_ph): Likewise. | |
12170 | (_mm_fmadd_ph): Likewise. | |
12171 | (_mm_mask_fmadd_ph): Likewise. | |
12172 | (_mm_mask3_fmadd_ph): Likewise. | |
12173 | (_mm_maskz_fmadd_ph): Likewise. | |
12174 | (_mm256_fnmadd_ph): Likewise. | |
12175 | (_mm256_mask_fnmadd_ph): Likewise. | |
12176 | (_mm256_mask3_fnmadd_ph): Likewise. | |
12177 | (_mm256_maskz_fnmadd_ph): Likewise. | |
12178 | (_mm_fnmadd_ph): Likewise. | |
12179 | (_mm_mask_fnmadd_ph): Likewise. | |
12180 | (_mm_mask3_fnmadd_ph): Likewise. | |
12181 | (_mm_maskz_fnmadd_ph): Likewise. | |
12182 | (_mm256_fmsub_ph): Likewise. | |
12183 | (_mm256_mask_fmsub_ph): Likewise. | |
12184 | (_mm256_mask3_fmsub_ph): Likewise. | |
12185 | (_mm256_maskz_fmsub_ph): Likewise. | |
12186 | (_mm_fmsub_ph): Likewise. | |
12187 | (_mm_mask_fmsub_ph): Likewise. | |
12188 | (_mm_mask3_fmsub_ph): Likewise. | |
12189 | (_mm_maskz_fmsub_ph): Likewise. | |
12190 | (_mm256_fnmsub_ph): Likewise. | |
12191 | (_mm256_mask_fnmsub_ph): Likewise. | |
12192 | (_mm256_mask3_fnmsub_ph): Likewise. | |
12193 | (_mm256_maskz_fnmsub_ph): Likewise. | |
12194 | (_mm_fnmsub_ph): Likewise. | |
12195 | (_mm_mask_fnmsub_ph): Likewise. | |
12196 | (_mm_mask3_fnmsub_ph): Likewise. | |
12197 | (_mm_maskz_fnmsub_ph): Likewise. | |
12198 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
12199 | * config/i386/sse.md | |
12200 | (<avx512>_fmadd_<mode>_maskz<round_expand_name>): Adjust to | |
12201 | support HF vector modes. | |
12202 | (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>): | |
12203 | Ditto. | |
12204 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): Ditto. | |
12205 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): Ditto. | |
12206 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): Ditto. | |
12207 | (<avx512>_fmadd_<mode>_mask<round_name>): Ditto. | |
12208 | (<avx512>_fmadd_<mode>_mask3<round_name>): Ditto. | |
12209 | (<avx512>_fmsub_<mode>_maskz<round_expand_name>): Ditto. | |
12210 | (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): | |
12211 | Ditto. | |
12212 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): Ditto. | |
12213 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): Ditto. | |
12214 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): Ditto. | |
12215 | (<avx512>_fmsub_<mode>_mask<round_name>): Ditto. | |
12216 | (<avx512>_fmsub_<mode>_mask3<round_name>): Ditto. | |
12217 | (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): | |
12218 | Ditto. | |
12219 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): Ditto. | |
12220 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): Ditto. | |
12221 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): Ditto. | |
12222 | (<avx512>_fnmadd_<mode>_mask<round_name>): Ditto. | |
12223 | (<avx512>_fnmadd_<mode>_mask3<round_name>): Ditto. | |
12224 | (<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Ditto. | |
12225 | (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): | |
12226 | Ditto. | |
12227 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Ditto. | |
12228 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): Ditto. | |
12229 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): Ditto. | |
12230 | (<avx512>_fnmsub_<mode>_mask<round_name>): Ditto. | |
12231 | (<avx512>_fnmsub_<mode>_mask3<round_name>): Ditto. | |
12232 | ||
12233 | 2021-09-18 liuhongt <hongtao.liu@intel.com> | |
12234 | ||
12235 | * config/i386/avx512fp16intrin.h (_mm512_fmaddsub_ph): | |
12236 | New intrinsic. | |
12237 | (_mm512_mask_fmaddsub_ph): Likewise. | |
12238 | (_mm512_mask3_fmaddsub_ph): Likewise. | |
12239 | (_mm512_maskz_fmaddsub_ph): Likewise. | |
12240 | (_mm512_fmaddsub_round_ph): Likewise. | |
12241 | (_mm512_mask_fmaddsub_round_ph): Likewise. | |
12242 | (_mm512_mask3_fmaddsub_round_ph): Likewise. | |
12243 | (_mm512_maskz_fmaddsub_round_ph): Likewise. | |
12244 | (_mm512_mask_fmsubadd_ph): Likewise. | |
12245 | (_mm512_mask3_fmsubadd_ph): Likewise. | |
12246 | (_mm512_maskz_fmsubadd_ph): Likewise. | |
12247 | (_mm512_fmsubadd_round_ph): Likewise. | |
12248 | (_mm512_mask_fmsubadd_round_ph): Likewise. | |
12249 | (_mm512_mask3_fmsubadd_round_ph): Likewise. | |
12250 | (_mm512_maskz_fmsubadd_round_ph): Likewise. | |
12251 | * config/i386/avx512fp16vlintrin.h (_mm256_fmaddsub_ph): | |
12252 | New intrinsic. | |
12253 | (_mm256_mask_fmaddsub_ph): Likewise. | |
12254 | (_mm256_mask3_fmaddsub_ph): Likewise. | |
12255 | (_mm256_maskz_fmaddsub_ph): Likewise. | |
12256 | (_mm_fmaddsub_ph): Likewise. | |
12257 | (_mm_mask_fmaddsub_ph): Likewise. | |
12258 | (_mm_mask3_fmaddsub_ph): Likewise. | |
12259 | (_mm_maskz_fmaddsub_ph): Likewise. | |
12260 | (_mm256_fmsubadd_ph): Likewise. | |
12261 | (_mm256_mask_fmsubadd_ph): Likewise. | |
12262 | (_mm256_mask3_fmsubadd_ph): Likewise. | |
12263 | (_mm256_maskz_fmsubadd_ph): Likewise. | |
12264 | (_mm_fmsubadd_ph): Likewise. | |
12265 | (_mm_mask_fmsubadd_ph): Likewise. | |
12266 | (_mm_mask3_fmsubadd_ph): Likewise. | |
12267 | (_mm_maskz_fmsubadd_ph): Likewise. | |
12268 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
12269 | * config/i386/sse.md (VFH_SF_AVX512VL): New mode iterator. | |
12270 | * (<avx512>_fmsubadd_<mode>_maskz<round_expand_name>): New expander. | |
12271 | * (<avx512>_fmaddsub_<mode>_maskz<round_expand_name>): Use | |
12272 | VFH_SF_AVX512VL. | |
12273 | * (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>): | |
12274 | Ditto. | |
12275 | * (<avx512>_fmaddsub_<mode>_mask<round_name>): Ditto. | |
12276 | * (<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto. | |
12277 | * (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>): | |
12278 | Ditto. | |
12279 | * (<avx512>_fmsubadd_<mode>_mask<round_name>): Ditto. | |
12280 | * (<avx512>_fmsubadd_<mode>_mask3<round_name>): Ditto. | |
12281 | ||
12282 | 2021-09-18 liuhongt <hongtao.liu@intel.com> | |
12283 | ||
12284 | PR target/87767 | |
12285 | * config/i386/i386.c (ix86_print_operand): Handle | |
12286 | V8HF/V16HF/V32HFmode. | |
12287 | * config/i386/i386.h (VALID_BCST_MODE_P): Add HFmode. | |
12288 | * config/i386/sse.md (avx512bcst): Remove. | |
12289 | ||
12290 | 2021-09-17 Martin Sebor <msebor@redhat.com> | |
12291 | ||
12292 | * Makefile.in (OBJS): Add gimple-predicate-analysis.o. | |
12293 | * tree-ssa-uninit.c (max_phi_args): Move to gimple-predicate-analysis. | |
12294 | (MASK_SET_BIT, MASK_TEST_BIT, MASK_EMPTY): Same. | |
12295 | (check_defs): Add comment. | |
12296 | (can_skip_redundant_opnd): Update comment. | |
12297 | (compute_uninit_opnds_pos): Adjust to namespace change. | |
12298 | (find_pdom): Move to gimple-predicate-analysis.cc. | |
12299 | (find_dom): Same. | |
12300 | (struct uninit_undef_val_t): New. | |
12301 | (is_non_loop_exit_postdominating): Move to gimple-predicate-analysis.cc. | |
12302 | (find_control_equiv_block): Same. | |
12303 | (MAX_NUM_CHAINS, MAX_CHAIN_LEN, MAX_POSTDOM_CHECK): Same. | |
12304 | (MAX_SWITCH_CASES): Same. | |
12305 | (compute_control_dep_chain): Same. | |
12306 | (find_uninit_use): Use predicate analyzer. | |
12307 | (struct pred_info): Move to gimple-predicate-analysis. | |
12308 | (convert_control_dep_chain_into_preds): Same. | |
12309 | (find_predicates): Same. | |
12310 | (collect_phi_def_edges): Same. | |
12311 | (warn_uninitialized_phi): Use predicate analyzer. | |
12312 | (find_def_preds): Move to gimple-predicate-analysis. | |
12313 | (dump_pred_info): Same. | |
12314 | (dump_pred_chain): Same. | |
12315 | (dump_predicates): Same. | |
12316 | (destroy_predicate_vecs): Remove. | |
12317 | (execute_late_warn_uninitialized): New. | |
12318 | (get_cmp_code): Move to gimple-predicate-analysis. | |
12319 | (is_value_included_in): Same. | |
12320 | (value_sat_pred_p): Same. | |
12321 | (find_matching_predicate_in_rest_chains): Same. | |
12322 | (is_use_properly_guarded): Same. | |
12323 | (prune_uninit_phi_opnds): Same. | |
12324 | (find_var_cmp_const): Same. | |
12325 | (use_pred_not_overlap_with_undef_path_pred): Same. | |
12326 | (pred_equal_p): Same. | |
12327 | (is_neq_relop_p): Same. | |
12328 | (is_neq_zero_form_p): Same. | |
12329 | (pred_expr_equal_p): Same. | |
12330 | (is_pred_expr_subset_of): Same. | |
12331 | (is_pred_chain_subset_of): Same. | |
12332 | (is_included_in): Same. | |
12333 | (is_superset_of): Same. | |
12334 | (pred_neg_p): Same. | |
12335 | (simplify_pred): Same. | |
12336 | (simplify_preds_2): Same. | |
12337 | (simplify_preds_3): Same. | |
12338 | (simplify_preds_4): Same. | |
12339 | (simplify_preds): Same. | |
12340 | (push_pred): Same. | |
12341 | (push_to_worklist): Same. | |
12342 | (get_pred_info_from_cmp): Same. | |
12343 | (is_degenerated_phi): Same. | |
12344 | (normalize_one_pred_1): Same. | |
12345 | (normalize_one_pred): Same. | |
12346 | (normalize_one_pred_chain): Same. | |
12347 | (normalize_preds): Same. | |
12348 | (can_one_predicate_be_invalidated_p): Same. | |
12349 | (can_chain_union_be_invalidated_p): Same. | |
12350 | (uninit_uses_cannot_happen): Same. | |
12351 | (pass_late_warn_uninitialized::execute): Define. | |
12352 | * gimple-predicate-analysis.cc: New file. | |
12353 | * gimple-predicate-analysis.h: New file. | |
12354 | ||
12355 | 2021-09-17 Julian Brown <julian@codesourcery.com> | |
12356 | ||
12357 | * config/gcn/gcn.c (gimple.h): Include. | |
12358 | (gcn_fork_join): Emit barrier for worker-level joins. | |
12359 | * omp-oacc-neuter-broadcast.cc (find_local_vars_to_propagate): Add | |
12360 | writes_gang_private bitmap parameter. Set bit for blocks | |
12361 | containing gang-private variable writes. | |
12362 | (worker_single_simple): Don't emit barrier after predicated block. | |
12363 | (worker_single_copy): Don't emit barrier if we're not broadcasting | |
12364 | anything and the block contains no gang-private writes. | |
12365 | (neuter_worker_single): Don't predicate blocks that only contain | |
12366 | NOPs or internal marker functions. Pass has_gang_private_write | |
12367 | argument to worker_single_copy. | |
12368 | (oacc_do_neutering): Add writes_gang_private bitmap handling. | |
12369 | ||
12370 | 2021-09-17 Julian Brown <julian@codesourcery.com> | |
12371 | ||
12372 | * config/gcn/gcn-protos.h | |
12373 | (gcn_goacc_create_worker_broadcast_record): Update prototype. | |
12374 | * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Use | |
12375 | preallocated block of LDS memory. Do not cache/share decls for | |
12376 | reduction temporaries between invocations. | |
12377 | (gcn_goacc_reduction_teardown): Unshare VAR on second use. | |
12378 | (gcn_goacc_create_worker_broadcast_record): Add OFFSET parameter | |
12379 | and return temporary LDS space at that offset. Return pointer in | |
12380 | "sender" case. | |
12381 | * config/gcn/gcn.c (acc_lds_size, gang_private_hwm, lds_allocs): | |
12382 | New global vars. | |
12383 | (ACC_LDS_SIZE): Define as acc_lds_size. | |
12384 | (gcn_init_machine_status): Don't initialise lds_allocated, | |
12385 | lds_allocs, reduc_decls fields of machine function struct. | |
12386 | (gcn_option_override): Handle default size for gang-private | |
12387 | variables and -mgang-private-size option. | |
12388 | (gcn_expand_prologue): Use LDS_SIZE instead of LDS_SIZE-1 when | |
12389 | initialising M0_REG. | |
12390 | (gcn_shared_mem_layout): New function. | |
12391 | (gcn_print_lds_decl): Update comment. Use global lds_allocs map and | |
12392 | gang_private_hwm variable. | |
12393 | (TARGET_GOACC_SHARED_MEM_LAYOUT): Define target hook. | |
12394 | * config/gcn/gcn.h (machine_function): Remove lds_allocated, | |
12395 | lds_allocs, reduc_decls. Add reduction_base, reduction_limit. | |
12396 | * config/gcn/gcn.opt (gang_private_size_opt): New global. | |
12397 | (mgang-private-size=): New option. | |
12398 | * doc/tm.texi.in (TARGET_GOACC_SHARED_MEM_LAYOUT): Place | |
12399 | documentation hook. | |
12400 | * doc/tm.texi: Regenerate. | |
12401 | * omp-oacc-neuter-broadcast.cc (targhooks.h, diagnostic-core.h): | |
12402 | Add includes. | |
12403 | (build_sender_ref): Handle sender_decl being pointer. | |
12404 | (worker_single_copy): Add PLACEMENT and ISOLATE_BROADCASTS | |
12405 | parameters. Pass placement argument to | |
12406 | create_worker_broadcast_record hook invocations. Handle | |
12407 | sender_decl being pointer and isolate_broadcasts inserting extra | |
12408 | barriers. | |
12409 | (blk_offset_map_t): Add typedef. | |
12410 | (neuter_worker_single): Add BLK_OFFSET_MAP parameter. Pass | |
12411 | preallocated range to worker_single_copy call. | |
12412 | (dfs_broadcast_reachable_1): New function. | |
12413 | (idx_decl_pair_t, used_range_vec_t): New typedefs. | |
12414 | (sort_size_descending): New function. | |
12415 | (addr_range): New class. | |
12416 | (splay_tree_compare_addr_range, splay_tree_free_key) | |
12417 | (first_fit_range, merge_ranges_1, merge_ranges): New functions. | |
12418 | (execute_omp_oacc_neuter_broadcast): Rename to... | |
12419 | (oacc_do_neutering): ... this. Add BOUNDS_LO, BOUNDS_HI | |
12420 | parameters. Arrange layout of shared memory for broadcast | |
12421 | operations. | |
12422 | (execute_omp_oacc_neuter_broadcast): New function. | |
12423 | (pass_omp_oacc_neuter_broadcast::gate): Remove num_workers==1 | |
12424 | handling from here. Enable pass for all OpenACC routines in order | |
12425 | to call shared memory-layout hook. | |
12426 | * target.def (create_worker_broadcast_record): Add OFFSET | |
12427 | parameter. | |
12428 | (shared_mem_layout): New hook. | |
12429 | ||
12430 | 2021-09-17 Julian Brown <julian@codesourcery.com> | |
12431 | Thomas Schwinge <thomas@codesourcery.com> | |
12432 | ||
12433 | * omp-oacc-neuter-broadcast.cc | |
12434 | (pass_omp_oacc_neuter_broadcast::gate): Disable if num_workers is | |
12435 | 1. | |
12436 | (execute_omp_oacc_neuter_broadcast): Adjust. | |
12437 | ||
12438 | 2021-09-17 Andrew MacLeod <amacleod@redhat.com> | |
12439 | ||
12440 | * value-relation.cc (class equiv_chain): Move to header file. | |
12441 | (path_oracle::path_oracle): New. | |
12442 | (path_oracle::~path_oracle): New. | |
12443 | (path_oracle::register_relation): New. | |
12444 | (path_oracle::query_relation): New. | |
12445 | (path_oracle::reset_path): New. | |
12446 | (path_oracle::dump): New. | |
12447 | * value-relation.h (class equiv_chain): Move to here. | |
12448 | (class path_oracle): New. | |
12449 | ||
12450 | 2021-09-17 Andrew MacLeod <amacleod@redhat.com> | |
12451 | ||
12452 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a DOM | |
12453 | based oracle. | |
12454 | * gimple-range-fold.cc (fur_depend::register_relation): Use | |
12455 | register_stmt/edge routines. | |
12456 | * value-relation.cc (equiv_chain::find): Relocate from equiv_oracle. | |
12457 | (equiv_oracle::equiv_oracle): Create self equivalence cache. | |
12458 | (equiv_oracle::~equiv_oracle): Release same. | |
12459 | (equiv_oracle::equiv_set): Return entry from self equiv cache if there | |
12460 | are no equivalences. | |
12461 | (equiv_oracle::find_equiv_block): Move list find to equiv_chain. | |
12462 | (equiv_oracle::register_relation): Rename from register_equiv. | |
12463 | (relation_chain_head::find_relation): Relocate from dom_oracle. | |
12464 | (relation_oracle::register_stmt): New. | |
12465 | (relation_oracle::register_edge): New. | |
12466 | (dom_oracle::*): Rename from relation_oracle. | |
12467 | (dom_oracle::register_relation): Adjust to call equiv_oracle. | |
12468 | (dom_oracle::set_one_relation): Split from register_relation. | |
12469 | (dom_oracle::register_transitives): Consolidate 2 methods. | |
12470 | (dom_oracle::find_relation_block): Move core to relation_chain. | |
12471 | (dom_oracle::query_relation): Rename from find_relation_dom and adjust. | |
12472 | * value-relation.h (class relation_oracle): New pure virtual base. | |
12473 | (class equiv_oracle): Inherit from relation_oracle and adjust. | |
12474 | (class dom_oracle): Rename from old relation_oracle and adjust. | |
12475 | ||
12476 | 2021-09-17 Martin Sebor <msebor@redhat.com> | |
12477 | ||
12478 | PR middle-end/102200 | |
12479 | * pointer-query.cc (access_ref::inform_access): Handle MIN/MAX_EXPR. | |
12480 | (handle_min_max_size): Change argument. Store original SSA_NAME for | |
12481 | operands to potentially distinct (sub)objects. | |
12482 | (compute_objsize_r): Adjust call to the above. | |
12483 | ||
12484 | 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> | |
12485 | ||
12486 | * config/rs6000/rs6000.c (rs6000-builtins.h): New include. | |
12487 | (rs6000_new_builtin_vectorized_function): New function. | |
12488 | (rs6000_new_builtin_md_vectorized_function): Likewise. | |
12489 | (rs6000_builtin_vectorized_function): Call | |
12490 | rs6000_new_builtin_vectorized_function. | |
12491 | (rs6000_builtin_md_vectorized_function): Call | |
12492 | rs6000_new_builtin_md_vectorized_function. | |
12493 | ||
12494 | 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> | |
12495 | ||
12496 | * config/rs6000/rs6000-builtin-new.def (ASSEMBLE_ACC): Add mmaint flag. | |
12497 | (ASSEMBLE_PAIR): Likewise. | |
12498 | (BUILD_ACC): Likewise. | |
12499 | (DISASSEMBLE_ACC): Likewise. | |
12500 | (DISASSEMBLE_PAIR): Likewise. | |
12501 | (PMXVBF16GER2): Likewise. | |
12502 | (PMXVBF16GER2NN): Likewise. | |
12503 | (PMXVBF16GER2NP): Likewise. | |
12504 | (PMXVBF16GER2PN): Likewise. | |
12505 | (PMXVBF16GER2PP): Likewise. | |
12506 | (PMXVF16GER2): Likewise. | |
12507 | (PMXVF16GER2NN): Likewise. | |
12508 | (PMXVF16GER2NP): Likewise. | |
12509 | (PMXVF16GER2PN): Likewise. | |
12510 | (PMXVF16GER2PP): Likewise. | |
12511 | (PMXVF32GER): Likewise. | |
12512 | (PMXVF32GERNN): Likewise. | |
12513 | (PMXVF32GERNP): Likewise. | |
12514 | (PMXVF32GERPN): Likewise. | |
12515 | (PMXVF32GERPP): Likewise. | |
12516 | (PMXVF64GER): Likewise. | |
12517 | (PMXVF64GERNN): Likewise. | |
12518 | (PMXVF64GERNP): Likewise. | |
12519 | (PMXVF64GERPN): Likewise. | |
12520 | (PMXVF64GERPP): Likewise. | |
12521 | (PMXVI16GER2): Likewise. | |
12522 | (PMXVI16GER2PP): Likewise. | |
12523 | (PMXVI16GER2S): Likewise. | |
12524 | (PMXVI16GER2SPP): Likewise. | |
12525 | (PMXVI4GER8): Likewise. | |
12526 | (PMXVI4GER8PP): Likewise. | |
12527 | (PMXVI8GER4): Likewise. | |
12528 | (PMXVI8GER4PP): Likewise. | |
12529 | (PMXVI8GER4SPP): Likewise. | |
12530 | (XVBF16GER2): Likewise. | |
12531 | (XVBF16GER2NN): Likewise. | |
12532 | (XVBF16GER2NP): Likewise. | |
12533 | (XVBF16GER2PN): Likewise. | |
12534 | (XVBF16GER2PP): Likewise. | |
12535 | (XVF16GER2): Likewise. | |
12536 | (XVF16GER2NN): Likewise. | |
12537 | (XVF16GER2NP): Likewise. | |
12538 | (XVF16GER2PN): Likewise. | |
12539 | (XVF16GER2PP): Likewise. | |
12540 | (XVF32GER): Likewise. | |
12541 | (XVF32GERNN): Likewise. | |
12542 | (XVF32GERNP): Likewise. | |
12543 | (XVF32GERPN): Likewise. | |
12544 | (XVF32GERPP): Likewise. | |
12545 | (XVF64GER): Likewise. | |
12546 | (XVF64GERNN): Likewise. | |
12547 | (XVF64GERNP): Likewise. | |
12548 | (XVF64GERPN): Likewise. | |
12549 | (XVF64GERPP): Likewise. | |
12550 | (XVI16GER2): Likewise. | |
12551 | (XVI16GER2PP): Likewise. | |
12552 | (XVI16GER2S): Likewise. | |
12553 | (XVI16GER2SPP): Likewise. | |
12554 | (XVI4GER8): Likewise. | |
12555 | (XVI4GER8PP): Likewise. | |
12556 | (XVI8GER4): Likewise. | |
12557 | (XVI8GER4PP): Likewise. | |
12558 | (XVI8GER4SPP): Likewise. | |
12559 | (XXMFACC): Likewise. | |
12560 | (XXMTACC): Likewise. | |
12561 | (XXSETACCZ): Likewise. | |
12562 | (ASSEMBLE_PAIR_V): Likewise. | |
12563 | (BUILD_PAIR): Likewise. | |
12564 | (DISASSEMBLE_PAIR_V): Likewise. | |
12565 | (LXVP): New. | |
12566 | (STXVP): New. | |
12567 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_mma_builtin): | |
12568 | Handle RS6000_BIF_LXVP and RS6000_BIF_STXVP. | |
12569 | * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add ismmaint. | |
12570 | (parse_bif_attrs): Handle ismmaint. | |
12571 | (write_decls): Add bif_mmaint_bit and bif_is_mmaint. | |
12572 | (write_bif_static_init): Handle ismmaint. | |
12573 | ||
12574 | 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> | |
12575 | ||
12576 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): New | |
12577 | forward decl. | |
12578 | (rs6000_gimple_fold_builtin): Call rs6000_gimple_fold_new_builtin. | |
12579 | (rs6000_new_builtin_valid_without_lhs): New function. | |
12580 | (rs6000_gimple_fold_new_mma_builtin): Likewise. | |
12581 | (rs6000_gimple_fold_new_builtin): Likewise. | |
12582 | ||
12583 | 2021-09-17 Thomas Schwinge <thomas@codesourcery.com> | |
12584 | ||
12585 | * hash-table.h (hash_table<Descriptor, Lazy, Allocator>::expand): | |
12586 | Destruct stale Value objects. | |
12587 | * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): | |
12588 | Update. | |
12589 | ||
12590 | 2021-09-17 Roger Sayle <roger@nextmovesoftware.com> | |
12591 | ||
12592 | PR c/102245 | |
12593 | * match.pd (shift optimizations): Disable recent sign-changing | |
12594 | optimization for shifts by zero, these will be folded later. | |
12595 | ||
12596 | 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> | |
12597 | ||
12598 | * config/rs6000/rs6000-builtin-new.def (__builtin_mffsl): Move from | |
12599 | [power9] to [always]. | |
12600 | ||
12601 | 2021-09-17 Richard Biener <rguenther@suse.de> | |
12602 | ||
12603 | * tree-vect-stmts.c (vectorizable_load): Do not frob | |
12604 | stmt_info for SLP. | |
12605 | ||
12606 | 2021-09-17 H.J. Lu <hjl.tools@gmail.com> | |
12607 | ||
12608 | * config/i386/i386-features.c (remove_partial_avx_dependency): | |
12609 | Also check TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY and | |
12610 | and TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY before generating | |
12611 | vxorps. | |
12612 | * config/i386/i386.h (TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): | |
12613 | New. | |
12614 | (TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. | |
12615 | * config/i386/i386.md (SSE FP to FP splitters): Replace | |
12616 | TARGET_SSE_PARTIAL_REG_DEPENDENCY with | |
12617 | TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY. | |
12618 | (SSE INT to FP splitter): Replace TARGET_SSE_PARTIAL_REG_DEPENDENCY | |
12619 | with TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY. | |
12620 | * config/i386/x86-tune.def | |
12621 | (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): New. | |
12622 | (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. | |
12623 | ||
12624 | 2021-09-17 H.J. Lu <hjl.tools@gmail.com> | |
12625 | ||
12626 | PR target/101900 | |
12627 | * config/i386/i386-features.c (remove_partial_avx_dependency): | |
12628 | Check TARGET_USE_VECTOR_FP_CONVERTS and TARGET_USE_VECTOR_CONVERTS | |
12629 | before generating vxorps. | |
12630 | ||
12631 | 2021-09-17 H.J. Lu <hjl.tools@gmail.com> | |
12632 | ||
12633 | * config/i386/i386-options.c (processor_cost_table): Use | |
12634 | tremont_cost for Tremont. | |
12635 | * config/i386/x86-tune-costs.h (tremont_memcpy): New. | |
12636 | (tremont_memset): Likewise. | |
12637 | (tremont_cost): Likewise. | |
12638 | * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): | |
12639 | Enable for Tremont. | |
12640 | ||
12641 | 2021-09-17 H.J. Lu <hjl.tools@gmail.com> | |
12642 | ||
12643 | * common/config/i386/i386-common.c: Use Haswell scheduling model | |
12644 | for Tremont. | |
12645 | * config/i386/i386.c (ix86_sched_init_global): Prepare for Tremont | |
12646 | scheduling pass. | |
12647 | * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Tremont | |
12648 | issue rate to 4. | |
12649 | (ix86_adjust_cost): Handle Tremont. | |
12650 | * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): | |
12651 | Enable for Tremont. | |
12652 | (X86_TUNE_USE_LEAVE): Likewise. | |
12653 | (X86_TUNE_PUSH_MEMORY): Likewise. | |
12654 | (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. | |
12655 | (X86_TUNE_USE_CLTD): Likewise. | |
12656 | (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. | |
12657 | (X86_TUNE_AVOID_MFENCE): Likewise. | |
12658 | (X86_TUNE_SSE_TYPELESS_STORES): Likewise. | |
12659 | (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. | |
12660 | (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Disable for Tremont. | |
12661 | (X86_TUNE_FOUR_JUMP_LIMIT): Likewise. | |
12662 | (X86_TUNE_OPT_AGU): Likewise. | |
12663 | (X86_TUNE_AVOID_LEA_FOR_ADDR): Likewise. | |
12664 | (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Likewise. | |
12665 | (X86_TUNE_EXPAND_ABS): Likewise. | |
12666 | (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Likewise. | |
12667 | (X86_TUNE_SLOW_PSHUFB): Likewise. | |
12668 | ||
12669 | 2021-09-17 Eric Botcazou <ebotcazou@adacore.com> | |
12670 | ||
12671 | PR rtl-optimization/102306 | |
12672 | * combine.c (try_combine): Abort the combination if we are about to | |
12673 | duplicate volatile references. | |
12674 | ||
12675 | 2021-09-17 liuhongt <hongtao.liu@intel.com> | |
12676 | ||
12677 | * config/i386/avx512fp16intrin.h (_mm_undefined_ph): | |
12678 | New intrinsic. | |
12679 | (_mm256_undefined_ph): Likewise. | |
12680 | (_mm512_undefined_ph): Likewise. | |
12681 | (_mm_cvtsh_h): Likewise. | |
12682 | (_mm256_cvtsh_h): Likewise. | |
12683 | (_mm512_cvtsh_h): Likewise. | |
12684 | (_mm512_castph_ps): Likewise. | |
12685 | (_mm512_castph_pd): Likewise. | |
12686 | (_mm512_castph_si512): Likewise. | |
12687 | (_mm512_castph512_ph128): Likewise. | |
12688 | (_mm512_castph512_ph256): Likewise. | |
12689 | (_mm512_castph128_ph512): Likewise. | |
12690 | (_mm512_castph256_ph512): Likewise. | |
12691 | (_mm512_zextph128_ph512): Likewise. | |
12692 | (_mm512_zextph256_ph512): Likewise. | |
12693 | (_mm512_castps_ph): Likewise. | |
12694 | (_mm512_castpd_ph): Likewise. | |
12695 | (_mm512_castsi512_ph): Likewise. | |
12696 | * config/i386/avx512fp16vlintrin.h (_mm_castph_ps): | |
12697 | New intrinsic. | |
12698 | (_mm256_castph_ps): Likewise. | |
12699 | (_mm_castph_pd): Likewise. | |
12700 | (_mm256_castph_pd): Likewise. | |
12701 | (_mm_castph_si128): Likewise. | |
12702 | (_mm256_castph_si256): Likewise. | |
12703 | (_mm_castps_ph): Likewise. | |
12704 | (_mm256_castps_ph): Likewise. | |
12705 | (_mm_castpd_ph): Likewise. | |
12706 | (_mm256_castpd_ph): Likewise. | |
12707 | (_mm_castsi128_ph): Likewise. | |
12708 | (_mm256_castsi256_ph): Likewise. | |
12709 | (_mm256_castph256_ph128): Likewise. | |
12710 | (_mm256_castph128_ph256): Likewise. | |
12711 | (_mm256_zextph128_ph256): Likewise. | |
12712 | ||
12713 | 2021-09-17 liuhongt <hongtao.liu@intel.com> | |
12714 | ||
12715 | * config/i386/avx512fp16intrin.h (_mm_cvtsh_ss): | |
12716 | New intrinsic. | |
12717 | (_mm_mask_cvtsh_ss): Likewise. | |
12718 | (_mm_maskz_cvtsh_ss): Likewise. | |
12719 | (_mm_cvtsh_sd): Likewise. | |
12720 | (_mm_mask_cvtsh_sd): Likewise. | |
12721 | (_mm_maskz_cvtsh_sd): Likewise. | |
12722 | (_mm_cvt_roundsh_ss): Likewise. | |
12723 | (_mm_mask_cvt_roundsh_ss): Likewise. | |
12724 | (_mm_maskz_cvt_roundsh_ss): Likewise. | |
12725 | (_mm_cvt_roundsh_sd): Likewise. | |
12726 | (_mm_mask_cvt_roundsh_sd): Likewise. | |
12727 | (_mm_maskz_cvt_roundsh_sd): Likewise. | |
12728 | (_mm_cvtss_sh): Likewise. | |
12729 | (_mm_mask_cvtss_sh): Likewise. | |
12730 | (_mm_maskz_cvtss_sh): Likewise. | |
12731 | (_mm_cvtsd_sh): Likewise. | |
12732 | (_mm_mask_cvtsd_sh): Likewise. | |
12733 | (_mm_maskz_cvtsd_sh): Likewise. | |
12734 | (_mm_cvt_roundss_sh): Likewise. | |
12735 | (_mm_mask_cvt_roundss_sh): Likewise. | |
12736 | (_mm_maskz_cvt_roundss_sh): Likewise. | |
12737 | (_mm_cvt_roundsd_sh): Likewise. | |
12738 | (_mm_mask_cvt_roundsd_sh): Likewise. | |
12739 | (_mm_maskz_cvt_roundsd_sh): Likewise. | |
12740 | * config/i386/i386-builtin-types.def | |
12741 | (V8HF_FTYPE_V2DF_V8HF_V8HF_UQI_INT, | |
12742 | V8HF_FTYPE_V4SF_V8HF_V8HF_UQI_INT, | |
12743 | V2DF_FTYPE_V8HF_V2DF_V2DF_UQI_INT, | |
12744 | V4SF_FTYPE_V8HF_V4SF_V4SF_UQI_INT): Add new builtin types. | |
12745 | * config/i386/i386-builtin.def: Add corrresponding new builtins. | |
12746 | * config/i386/i386-expand.c: Handle new builtin types. | |
12747 | * config/i386/sse.md (VF48_128): New mode iterator. | |
12748 | (avx512fp16_vcvtsh2<ssescalarmodesuffix><mask_scalar_name><round_saeonly_scalar_name>): | |
12749 | New. | |
12750 | (avx512fp16_vcvt<ssescalarmodesuffix>2sh<mask_scalar_name><round_scalar_name>): | |
12751 | Ditto. | |
12752 | ||
12753 | 2021-09-17 liuhongt <hongtao.liu@intel.com> | |
12754 | ||
12755 | * config/i386/avx512fp16intrin.h (_mm512_cvtph_pd): | |
12756 | New intrinsic. | |
12757 | (_mm512_mask_cvtph_pd): Likewise. | |
12758 | (_mm512_maskz_cvtph_pd): Likewise. | |
12759 | (_mm512_cvt_roundph_pd): Likewise. | |
12760 | (_mm512_mask_cvt_roundph_pd): Likewise. | |
12761 | (_mm512_maskz_cvt_roundph_pd): Likewise. | |
12762 | (_mm512_cvtxph_ps): Likewise. | |
12763 | (_mm512_mask_cvtxph_ps): Likewise. | |
12764 | (_mm512_maskz_cvtxph_ps): Likewise. | |
12765 | (_mm512_cvtx_roundph_ps): Likewise. | |
12766 | (_mm512_mask_cvtx_roundph_ps): Likewise. | |
12767 | (_mm512_maskz_cvtx_roundph_ps): Likewise. | |
12768 | (_mm512_cvtxps_ph): Likewise. | |
12769 | (_mm512_mask_cvtxps_ph): Likewise. | |
12770 | (_mm512_maskz_cvtxps_ph): Likewise. | |
12771 | (_mm512_cvtx_roundps_ph): Likewise. | |
12772 | (_mm512_mask_cvtx_roundps_ph): Likewise. | |
12773 | (_mm512_maskz_cvtx_roundps_ph): Likewise. | |
12774 | (_mm512_cvtpd_ph): Likewise. | |
12775 | (_mm512_mask_cvtpd_ph): Likewise. | |
12776 | (_mm512_maskz_cvtpd_ph): Likewise. | |
12777 | (_mm512_cvt_roundpd_ph): Likewise. | |
12778 | (_mm512_mask_cvt_roundpd_ph): Likewise. | |
12779 | (_mm512_maskz_cvt_roundpd_ph): Likewise. | |
12780 | * config/i386/avx512fp16vlintrin.h (_mm_cvtph_pd): | |
12781 | New intrinsic. | |
12782 | (_mm_mask_cvtph_pd): Likewise. | |
12783 | (_mm_maskz_cvtph_pd): Likewise. | |
12784 | (_mm256_cvtph_pd): Likewise. | |
12785 | (_mm256_mask_cvtph_pd): Likewise. | |
12786 | (_mm256_maskz_cvtph_pd): Likewise. | |
12787 | (_mm_cvtxph_ps): Likewise. | |
12788 | (_mm_mask_cvtxph_ps): Likewise. | |
12789 | (_mm_maskz_cvtxph_ps): Likewise. | |
12790 | (_mm256_cvtxph_ps): Likewise. | |
12791 | (_mm256_mask_cvtxph_ps): Likewise. | |
12792 | (_mm256_maskz_cvtxph_ps): Likewise. | |
12793 | (_mm_cvtxps_ph): Likewise. | |
12794 | (_mm_mask_cvtxps_ph): Likewise. | |
12795 | (_mm_maskz_cvtxps_ph): Likewise. | |
12796 | (_mm256_cvtxps_ph): Likewise. | |
12797 | (_mm256_mask_cvtxps_ph): Likewise. | |
12798 | (_mm256_maskz_cvtxps_ph): Likewise. | |
12799 | (_mm_cvtpd_ph): Likewise. | |
12800 | (_mm_mask_cvtpd_ph): Likewise. | |
12801 | (_mm_maskz_cvtpd_ph): Likewise. | |
12802 | (_mm256_cvtpd_ph): Likewise. | |
12803 | (_mm256_mask_cvtpd_ph): Likewise. | |
12804 | (_mm256_maskz_cvtpd_ph): Likewise. | |
12805 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
12806 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
12807 | * config/i386/i386-expand.c: Handle new builtin types. | |
12808 | * config/i386/sse.md | |
12809 | (VF4_128_8_256): New. | |
12810 | (VF48H_AVX512VL): Ditto. | |
12811 | (ssePHmode): Add HF vector modes. | |
12812 | (castmode): Add new convertable modes. | |
12813 | (qq2phsuff): Ditto. | |
12814 | (ph2pssuffix): New. | |
12815 | (avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>): Ditto. | |
12816 | (avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. | |
12817 | (*avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. | |
12818 | (avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. | |
12819 | (*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. | |
12820 | (*avx512fp16_vcvt<castmode>2ph_<mode>_mask_1): Ditto. | |
12821 | (avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>): | |
12822 | Ditto. | |
12823 | (avx512fp16_float_extend_ph<mode>2<mask_name>): Ditto. | |
12824 | (*avx512fp16_float_extend_ph<mode>2_load<mask_name>): Ditto. | |
12825 | (avx512fp16_float_extend_phv2df2<mask_name>): Ditto. | |
12826 | (*avx512fp16_float_extend_phv2df2_load<mask_name>): Ditto. | |
12827 | ||
12828 | 2021-09-17 liuhongt <hongtao.liu@intel.com> | |
12829 | ||
12830 | * config/i386/avx512fp16intrin.h (_mm_cvttsh_i32): | |
12831 | New intrinsic. | |
12832 | (_mm_cvttsh_u32): Likewise. | |
12833 | (_mm_cvtt_roundsh_i32): Likewise. | |
12834 | (_mm_cvtt_roundsh_u32): Likewise. | |
12835 | (_mm_cvttsh_i64): Likewise. | |
12836 | (_mm_cvttsh_u64): Likewise. | |
12837 | (_mm_cvtt_roundsh_i64): Likewise. | |
12838 | (_mm_cvtt_roundsh_u64): Likewise. | |
12839 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
12840 | * config/i386/sse.md | |
12841 | (avx512fp16_fix<fixunssuffix>_trunc<mode>2<round_saeonly_name>): | |
12842 | New. | |
12843 | ||
12844 | 2021-09-17 liuhongt <hongtao.liu@intel.com> | |
12845 | ||
12846 | * config/i386/avx512fp16intrin.h (_mm512_cvttph_epi32): | |
12847 | New intrinsic. | |
12848 | (_mm512_mask_cvttph_epi32): Likewise. | |
12849 | (_mm512_maskz_cvttph_epi32): Likewise. | |
12850 | (_mm512_cvtt_roundph_epi32): Likewise. | |
12851 | (_mm512_mask_cvtt_roundph_epi32): Likewise. | |
12852 | (_mm512_maskz_cvtt_roundph_epi32): Likewise. | |
12853 | (_mm512_cvttph_epu32): Likewise. | |
12854 | (_mm512_mask_cvttph_epu32): Likewise. | |
12855 | (_mm512_maskz_cvttph_epu32): Likewise. | |
12856 | (_mm512_cvtt_roundph_epu32): Likewise. | |
12857 | (_mm512_mask_cvtt_roundph_epu32): Likewise. | |
12858 | (_mm512_maskz_cvtt_roundph_epu32): Likewise. | |
12859 | (_mm512_cvttph_epi64): Likewise. | |
12860 | (_mm512_mask_cvttph_epi64): Likewise. | |
12861 | (_mm512_maskz_cvttph_epi64): Likewise. | |
12862 | (_mm512_cvtt_roundph_epi64): Likewise. | |
12863 | (_mm512_mask_cvtt_roundph_epi64): Likewise. | |
12864 | (_mm512_maskz_cvtt_roundph_epi64): Likewise. | |
12865 | (_mm512_cvttph_epu64): Likewise. | |
12866 | (_mm512_mask_cvttph_epu64): Likewise. | |
12867 | (_mm512_maskz_cvttph_epu64): Likewise. | |
12868 | (_mm512_cvtt_roundph_epu64): Likewise. | |
12869 | (_mm512_mask_cvtt_roundph_epu64): Likewise. | |
12870 | (_mm512_maskz_cvtt_roundph_epu64): Likewise. | |
12871 | (_mm512_cvttph_epi16): Likewise. | |
12872 | (_mm512_mask_cvttph_epi16): Likewise. | |
12873 | (_mm512_maskz_cvttph_epi16): Likewise. | |
12874 | (_mm512_cvtt_roundph_epi16): Likewise. | |
12875 | (_mm512_mask_cvtt_roundph_epi16): Likewise. | |
12876 | (_mm512_maskz_cvtt_roundph_epi16): Likewise. | |
12877 | (_mm512_cvttph_epu16): Likewise. | |
12878 | (_mm512_mask_cvttph_epu16): Likewise. | |
12879 | (_mm512_maskz_cvttph_epu16): Likewise. | |
12880 | (_mm512_cvtt_roundph_epu16): Likewise. | |
12881 | (_mm512_mask_cvtt_roundph_epu16): Likewise. | |
12882 | (_mm512_maskz_cvtt_roundph_epu16): Likewise. | |
12883 | * config/i386/avx512fp16vlintrin.h (_mm_cvttph_epi32): | |
12884 | New intirnsic. | |
12885 | (_mm_mask_cvttph_epi32): Likewise. | |
12886 | (_mm_maskz_cvttph_epi32): Likewise. | |
12887 | (_mm256_cvttph_epi32): Likewise. | |
12888 | (_mm256_mask_cvttph_epi32): Likewise. | |
12889 | (_mm256_maskz_cvttph_epi32): Likewise. | |
12890 | (_mm_cvttph_epu32): Likewise. | |
12891 | (_mm_mask_cvttph_epu32): Likewise. | |
12892 | (_mm_maskz_cvttph_epu32): Likewise. | |
12893 | (_mm256_cvttph_epu32): Likewise. | |
12894 | (_mm256_mask_cvttph_epu32): Likewise. | |
12895 | (_mm256_maskz_cvttph_epu32): Likewise. | |
12896 | (_mm_cvttph_epi64): Likewise. | |
12897 | (_mm_mask_cvttph_epi64): Likewise. | |
12898 | (_mm_maskz_cvttph_epi64): Likewise. | |
12899 | (_mm256_cvttph_epi64): Likewise. | |
12900 | (_mm256_mask_cvttph_epi64): Likewise. | |
12901 | (_mm256_maskz_cvttph_epi64): Likewise. | |
12902 | (_mm_cvttph_epu64): Likewise. | |
12903 | (_mm_mask_cvttph_epu64): Likewise. | |
12904 | (_mm_maskz_cvttph_epu64): Likewise. | |
12905 | (_mm256_cvttph_epu64): Likewise. | |
12906 | (_mm256_mask_cvttph_epu64): Likewise. | |
12907 | (_mm256_maskz_cvttph_epu64): Likewise. | |
12908 | (_mm_cvttph_epi16): Likewise. | |
12909 | (_mm_mask_cvttph_epi16): Likewise. | |
12910 | (_mm_maskz_cvttph_epi16): Likewise. | |
12911 | (_mm256_cvttph_epi16): Likewise. | |
12912 | (_mm256_mask_cvttph_epi16): Likewise. | |
12913 | (_mm256_maskz_cvttph_epi16): Likewise. | |
12914 | (_mm_cvttph_epu16): Likewise. | |
12915 | (_mm_mask_cvttph_epu16): Likewise. | |
12916 | (_mm_maskz_cvttph_epu16): Likewise. | |
12917 | (_mm256_cvttph_epu16): Likewise. | |
12918 | (_mm256_mask_cvttph_epu16): Likewise. | |
12919 | (_mm256_maskz_cvttph_epu16): Likewise. | |
12920 | * config/i386/i386-builtin.def: Add new builtins. | |
12921 | * config/i386/sse.md | |
12922 | (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>): | |
12923 | New. | |
12924 | (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>): Ditto. | |
12925 | (*avx512fp16_fix<fixunssuffix>_trunc<mode>2_load<mask_name>): Ditto. | |
12926 | (avx512fp16_fix<fixunssuffix>_truncv2di2<mask_name>): Ditto. | |
12927 | (avx512fp16_fix<fixunssuffix>_truncv2di2_load<mask_name>): Ditto. | |
12928 | ||
12929 | 2021-09-17 liuhongt <hongtao.liu@intel.com> | |
12930 | ||
12931 | * config/i386/avx512fp16intrin.h (_mm_cvtsh_i32): New intrinsic. | |
12932 | (_mm_cvtsh_u32): Likewise. | |
12933 | (_mm_cvt_roundsh_i32): Likewise. | |
12934 | (_mm_cvt_roundsh_u32): Likewise. | |
12935 | (_mm_cvtsh_i64): Likewise. | |
12936 | (_mm_cvtsh_u64): Likewise. | |
12937 | (_mm_cvt_roundsh_i64): Likewise. | |
12938 | (_mm_cvt_roundsh_u64): Likewise. | |
12939 | (_mm_cvti32_sh): Likewise. | |
12940 | (_mm_cvtu32_sh): Likewise. | |
12941 | (_mm_cvt_roundi32_sh): Likewise. | |
12942 | (_mm_cvt_roundu32_sh): Likewise. | |
12943 | (_mm_cvti64_sh): Likewise. | |
12944 | (_mm_cvtu64_sh): Likewise. | |
12945 | (_mm_cvt_roundi64_sh): Likewise. | |
12946 | (_mm_cvt_roundu64_sh): Likewise. | |
12947 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
12948 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
12949 | * config/i386/i386-expand.c (ix86_expand_round_builtin): | |
12950 | Handle new builtin types. | |
12951 | * config/i386/sse.md | |
12952 | (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix><round_name>): | |
12953 | New define_insn. | |
12954 | (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix>_2): Likewise. | |
12955 | (avx512fp16_vcvt<floatsuffix>si2sh<rex64namesuffix><round_name>): Likewise. | |
12956 | ||
12957 | 2021-09-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
12958 | ||
12959 | * config/rs6000/rs6000-c.c (rs6000-builtins.h): New include. | |
12960 | (altivec_resolve_new_overloaded_builtin): New forward decl. | |
12961 | (rs6000_new_builtin_type_compatible): New function. | |
12962 | (altivec_resolve_overloaded_builtin): Call | |
12963 | altivec_resolve_new_overloaded_builtin. | |
12964 | (altivec_build_new_resolved_builtin): New function. | |
12965 | (altivec_resolve_new_overloaded_builtin): Likewise. | |
12966 | * config/rs6000/rs6000-call.c (rs6000_new_builtin_is_supported): | |
12967 | Likewise. | |
12968 | * config/rs6000/rs6000-gen-builtins.c (write_decls): Remove _p from | |
12969 | name of rs6000_new_builtin_is_supported. | |
12970 | ||
12971 | 2021-09-16 Uroš Bizjak <ubizjak@gmail.com> | |
12972 | ||
12973 | * config/i386/i386-protos.h (ix86_decompose_address): | |
12974 | Change return type to bool. | |
12975 | * config/i386/i386.c (ix86_decompose_address): Ditto. | |
12976 | ||
12977 | 2021-09-16 Tobias Burnus <tobias@codesourcery.com> | |
12978 | ||
12979 | PR target/102353 | |
12980 | * config/rs6000/t-rs6000 (build/rs6000-gen-builtins.o, build/rbtree.o): | |
12981 | Added 'build/' to target, use build/%.o rule. | |
12982 | (build/rs6000-gen-builtins$(build_exeext)): Add 'build/' and | |
12983 | '$(build_exeext)' to target and 'build/' for the *.o files. | |
12984 | (rs6000-builtins.c): Update for those changes; run rs6000-gen-builtins | |
12985 | with $(RUN_GEN). | |
12986 | ||
12987 | 2021-09-16 Martin Jambor <mjambor@suse.cz> | |
12988 | ||
12989 | * cgraph.c (cgraph_node::dump): Do not check caller count sums if | |
12990 | the body has been removed. Remove trailing whitespace. | |
12991 | ||
12992 | 2021-09-16 Richard Biener <rguenther@suse.de> | |
12993 | ||
12994 | PR middle-end/102360 | |
12995 | * internal-fn.c (expand_DEFERRED_INIT): Make pattern-init | |
12996 | of non-memory more robust. | |
12997 | ||
12998 | 2021-09-16 Daniel Cederman <cederman@gaisler.com> | |
12999 | ||
13000 | * config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5 | |
13001 | * config/sparc/sparc.c (struct processor_costs): Add LEON5 costs | |
13002 | (leon5_adjust_cost): Increase cost of store with data dependency | |
13003 | on ALU instruction and FPU anti-dependencies. | |
13004 | (sparc_option_override): Add LEON5 costs | |
13005 | (sparc_adjust_cost): Add LEON5 cost adjustments | |
13006 | * config/sparc/sparc.h: Add LEON5 | |
13007 | * config/sparc/sparc.md: Include LEON5 scheduling information | |
13008 | * config/sparc/sparc.opt: Add LEON5 | |
13009 | * doc/invoke.texi: Add LEON5 | |
13010 | * config/sparc/leon5.md: New file. | |
13011 | ||
13012 | 2021-09-16 Daniel Cederman <cederman@gaisler.com> | |
13013 | ||
13014 | * config/sparc/sparc.md (stack_protect_set32): Add NOP to prevent | |
13015 | sensitive sequence for B2BST errata workaround. | |
13016 | ||
13017 | 2021-09-16 Daniel Cederman <cederman@gaisler.com> | |
13018 | ||
13019 | * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin | |
13020 | functions with atomic instruction in the UT700 errata workaround. | |
13021 | ||
13022 | 2021-09-16 Daniel Cederman <cederman@gaisler.com> | |
13023 | ||
13024 | * config/sparc/sparc.c (next_active_non_empty_insn): New function | |
13025 | that returns next active non empty assembly instruction. | |
13026 | (sparc_do_work_around_errata): Use new function. | |
13027 | ||
13028 | 2021-09-16 Daniel Cederman <cederman@gaisler.com> | |
13029 | ||
13030 | * config/sparc/sparc.c (store_insn_p): Add predicate for store | |
13031 | attributes. | |
13032 | (load_insn_p): Add predicate for load attributes. | |
13033 | (sparc_do_work_around_errata): Use new predicates. | |
13034 | ||
13035 | 2021-09-16 Andreas Larsson <andreas@gaisler.com> | |
13036 | ||
13037 | * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for | |
13038 | LEON and LEON3. | |
13039 | ||
13040 | 2021-09-16 Martin Liska <mliska@suse.cz> | |
13041 | ||
13042 | * config/mips/netbsd.h: Fix typo in name of a macro. | |
13043 | ||
13044 | 2021-09-16 liuhongt <hongtao.liu@intel.com> | |
13045 | ||
13046 | PR middle-end/102080 | |
13047 | * match.pd: Check mask type when doing cond_op related gimple | |
13048 | simplification. | |
13049 | * tree.c (is_truth_type_for): New function. | |
13050 | * tree.h (is_truth_type_for): New declaration. | |
13051 | ||
13052 | 2021-09-16 liuhongt <hongtao.liu@intel.com> | |
13053 | ||
13054 | * config/i386/avx512fp16intrin.h (_mm512_cvtepi32_ph): New | |
13055 | intrinsic. | |
13056 | (_mm512_mask_cvtepi32_ph): Likewise. | |
13057 | (_mm512_maskz_cvtepi32_ph): Likewise. | |
13058 | (_mm512_cvt_roundepi32_ph): Likewise. | |
13059 | (_mm512_mask_cvt_roundepi32_ph): Likewise. | |
13060 | (_mm512_maskz_cvt_roundepi32_ph): Likewise. | |
13061 | (_mm512_cvtepu32_ph): Likewise. | |
13062 | (_mm512_mask_cvtepu32_ph): Likewise. | |
13063 | (_mm512_maskz_cvtepu32_ph): Likewise. | |
13064 | (_mm512_cvt_roundepu32_ph): Likewise. | |
13065 | (_mm512_mask_cvt_roundepu32_ph): Likewise. | |
13066 | (_mm512_maskz_cvt_roundepu32_ph): Likewise. | |
13067 | (_mm512_cvtepi64_ph): Likewise. | |
13068 | (_mm512_mask_cvtepi64_ph): Likewise. | |
13069 | (_mm512_maskz_cvtepi64_ph): Likewise. | |
13070 | (_mm512_cvt_roundepi64_ph): Likewise. | |
13071 | (_mm512_mask_cvt_roundepi64_ph): Likewise. | |
13072 | (_mm512_maskz_cvt_roundepi64_ph): Likewise. | |
13073 | (_mm512_cvtepu64_ph): Likewise. | |
13074 | (_mm512_mask_cvtepu64_ph): Likewise. | |
13075 | (_mm512_maskz_cvtepu64_ph): Likewise. | |
13076 | (_mm512_cvt_roundepu64_ph): Likewise. | |
13077 | (_mm512_mask_cvt_roundepu64_ph): Likewise. | |
13078 | (_mm512_maskz_cvt_roundepu64_ph): Likewise. | |
13079 | (_mm512_cvtepi16_ph): Likewise. | |
13080 | (_mm512_mask_cvtepi16_ph): Likewise. | |
13081 | (_mm512_maskz_cvtepi16_ph): Likewise. | |
13082 | (_mm512_cvt_roundepi16_ph): Likewise. | |
13083 | (_mm512_mask_cvt_roundepi16_ph): Likewise. | |
13084 | (_mm512_maskz_cvt_roundepi16_ph): Likewise. | |
13085 | (_mm512_cvtepu16_ph): Likewise. | |
13086 | (_mm512_mask_cvtepu16_ph): Likewise. | |
13087 | (_mm512_maskz_cvtepu16_ph): Likewise. | |
13088 | (_mm512_cvt_roundepu16_ph): Likewise. | |
13089 | (_mm512_mask_cvt_roundepu16_ph): Likewise. | |
13090 | (_mm512_maskz_cvt_roundepu16_ph): Likewise. | |
13091 | * config/i386/avx512fp16vlintrin.h (_mm_cvtepi32_ph): New | |
13092 | intrinsic. | |
13093 | (_mm_mask_cvtepi32_ph): Likewise. | |
13094 | (_mm_maskz_cvtepi32_ph): Likewise. | |
13095 | (_mm256_cvtepi32_ph): Likewise. | |
13096 | (_mm256_mask_cvtepi32_ph): Likewise. | |
13097 | (_mm256_maskz_cvtepi32_ph): Likewise. | |
13098 | (_mm_cvtepu32_ph): Likewise. | |
13099 | (_mm_mask_cvtepu32_ph): Likewise. | |
13100 | (_mm_maskz_cvtepu32_ph): Likewise. | |
13101 | (_mm256_cvtepu32_ph): Likewise. | |
13102 | (_mm256_mask_cvtepu32_ph): Likewise. | |
13103 | (_mm256_maskz_cvtepu32_ph): Likewise. | |
13104 | (_mm_cvtepi64_ph): Likewise. | |
13105 | (_mm_mask_cvtepi64_ph): Likewise. | |
13106 | (_mm_maskz_cvtepi64_ph): Likewise. | |
13107 | (_mm256_cvtepi64_ph): Likewise. | |
13108 | (_mm256_mask_cvtepi64_ph): Likewise. | |
13109 | (_mm256_maskz_cvtepi64_ph): Likewise. | |
13110 | (_mm_cvtepu64_ph): Likewise. | |
13111 | (_mm_mask_cvtepu64_ph): Likewise. | |
13112 | (_mm_maskz_cvtepu64_ph): Likewise. | |
13113 | (_mm256_cvtepu64_ph): Likewise. | |
13114 | (_mm256_mask_cvtepu64_ph): Likewise. | |
13115 | (_mm256_maskz_cvtepu64_ph): Likewise. | |
13116 | (_mm_cvtepi16_ph): Likewise. | |
13117 | (_mm_mask_cvtepi16_ph): Likewise. | |
13118 | (_mm_maskz_cvtepi16_ph): Likewise. | |
13119 | (_mm256_cvtepi16_ph): Likewise. | |
13120 | (_mm256_mask_cvtepi16_ph): Likewise. | |
13121 | (_mm256_maskz_cvtepi16_ph): Likewise. | |
13122 | (_mm_cvtepu16_ph): Likewise. | |
13123 | (_mm_mask_cvtepu16_ph): Likewise. | |
13124 | (_mm_maskz_cvtepu16_ph): Likewise. | |
13125 | (_mm256_cvtepu16_ph): Likewise. | |
13126 | (_mm256_mask_cvtepu16_ph): Likewise. | |
13127 | (_mm256_maskz_cvtepu16_ph): Likewise. | |
13128 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
13129 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
13130 | * config/i386/i386-expand.c | |
13131 | (ix86_expand_args_builtin): Handle new builtin types. | |
13132 | (ix86_expand_round_builtin): Ditto. | |
13133 | * config/i386/i386-modes.def: Declare V2HF and V6HF. | |
13134 | * config/i386/sse.md (VI2H_AVX512VL): New. | |
13135 | (qq2phsuff): Ditto. | |
13136 | (sseintvecmode): Add HF vector modes. | |
13137 | (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>): | |
13138 | New. | |
13139 | (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. | |
13140 | (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. | |
13141 | (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. | |
13142 | (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. | |
13143 | (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask_1): Ditto. | |
13144 | (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. | |
13145 | (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. | |
13146 | (avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. | |
13147 | (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. | |
13148 | (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask_1): Ditto. | |
13149 | * config/i386/subst.md (round_qq2phsuff): New subst_attr. | |
13150 | ||
13151 | 2021-09-16 liuhongt <hongtao.liu@intel.com> | |
13152 | ||
13153 | * config/i386/avx512fp16intrin.h (_mm512_cvtph_epi32): | |
13154 | New intrinsic/ | |
13155 | (_mm512_mask_cvtph_epi32): Likewise. | |
13156 | (_mm512_maskz_cvtph_epi32): Likewise. | |
13157 | (_mm512_cvt_roundph_epi32): Likewise. | |
13158 | (_mm512_mask_cvt_roundph_epi32): Likewise. | |
13159 | (_mm512_maskz_cvt_roundph_epi32): Likewise. | |
13160 | (_mm512_cvtph_epu32): Likewise. | |
13161 | (_mm512_mask_cvtph_epu32): Likewise. | |
13162 | (_mm512_maskz_cvtph_epu32): Likewise. | |
13163 | (_mm512_cvt_roundph_epu32): Likewise. | |
13164 | (_mm512_mask_cvt_roundph_epu32): Likewise. | |
13165 | (_mm512_maskz_cvt_roundph_epu32): Likewise. | |
13166 | (_mm512_cvtph_epi64): Likewise. | |
13167 | (_mm512_mask_cvtph_epi64): Likewise. | |
13168 | (_mm512_maskz_cvtph_epi64): Likewise. | |
13169 | (_mm512_cvt_roundph_epi64): Likewise. | |
13170 | (_mm512_mask_cvt_roundph_epi64): Likewise. | |
13171 | (_mm512_maskz_cvt_roundph_epi64): Likewise. | |
13172 | (_mm512_cvtph_epu64): Likewise. | |
13173 | (_mm512_mask_cvtph_epu64): Likewise. | |
13174 | (_mm512_maskz_cvtph_epu64): Likewise. | |
13175 | (_mm512_cvt_roundph_epu64): Likewise. | |
13176 | (_mm512_mask_cvt_roundph_epu64): Likewise. | |
13177 | (_mm512_maskz_cvt_roundph_epu64): Likewise. | |
13178 | (_mm512_cvtph_epi16): Likewise. | |
13179 | (_mm512_mask_cvtph_epi16): Likewise. | |
13180 | (_mm512_maskz_cvtph_epi16): Likewise. | |
13181 | (_mm512_cvt_roundph_epi16): Likewise. | |
13182 | (_mm512_mask_cvt_roundph_epi16): Likewise. | |
13183 | (_mm512_maskz_cvt_roundph_epi16): Likewise. | |
13184 | (_mm512_cvtph_epu16): Likewise. | |
13185 | (_mm512_mask_cvtph_epu16): Likewise. | |
13186 | (_mm512_maskz_cvtph_epu16): Likewise. | |
13187 | (_mm512_cvt_roundph_epu16): Likewise. | |
13188 | (_mm512_mask_cvt_roundph_epu16): Likewise. | |
13189 | (_mm512_maskz_cvt_roundph_epu16): Likewise. | |
13190 | * config/i386/avx512fp16vlintrin.h (_mm_cvtph_epi32): | |
13191 | New intrinsic. | |
13192 | (_mm_mask_cvtph_epi32): Likewise. | |
13193 | (_mm_maskz_cvtph_epi32): Likewise. | |
13194 | (_mm256_cvtph_epi32): Likewise. | |
13195 | (_mm256_mask_cvtph_epi32): Likewise. | |
13196 | (_mm256_maskz_cvtph_epi32): Likewise. | |
13197 | (_mm_cvtph_epu32): Likewise. | |
13198 | (_mm_mask_cvtph_epu32): Likewise. | |
13199 | (_mm_maskz_cvtph_epu32): Likewise. | |
13200 | (_mm256_cvtph_epu32): Likewise. | |
13201 | (_mm256_mask_cvtph_epu32): Likewise. | |
13202 | (_mm256_maskz_cvtph_epu32): Likewise. | |
13203 | (_mm_cvtph_epi64): Likewise. | |
13204 | (_mm_mask_cvtph_epi64): Likewise. | |
13205 | (_mm_maskz_cvtph_epi64): Likewise. | |
13206 | (_mm256_cvtph_epi64): Likewise. | |
13207 | (_mm256_mask_cvtph_epi64): Likewise. | |
13208 | (_mm256_maskz_cvtph_epi64): Likewise. | |
13209 | (_mm_cvtph_epu64): Likewise. | |
13210 | (_mm_mask_cvtph_epu64): Likewise. | |
13211 | (_mm_maskz_cvtph_epu64): Likewise. | |
13212 | (_mm256_cvtph_epu64): Likewise. | |
13213 | (_mm256_mask_cvtph_epu64): Likewise. | |
13214 | (_mm256_maskz_cvtph_epu64): Likewise. | |
13215 | (_mm_cvtph_epi16): Likewise. | |
13216 | (_mm_mask_cvtph_epi16): Likewise. | |
13217 | (_mm_maskz_cvtph_epi16): Likewise. | |
13218 | (_mm256_cvtph_epi16): Likewise. | |
13219 | (_mm256_mask_cvtph_epi16): Likewise. | |
13220 | (_mm256_maskz_cvtph_epi16): Likewise. | |
13221 | (_mm_cvtph_epu16): Likewise. | |
13222 | (_mm_mask_cvtph_epu16): Likewise. | |
13223 | (_mm_maskz_cvtph_epu16): Likewise. | |
13224 | (_mm256_cvtph_epu16): Likewise. | |
13225 | (_mm256_mask_cvtph_epu16): Likewise. | |
13226 | (_mm256_maskz_cvtph_epu16): Likewise. | |
13227 | * config/i386/i386-builtin-types.def: Add new builtin types. | |
13228 | * config/i386/i386-builtin.def: Add new builtins. | |
13229 | * config/i386/i386-expand.c | |
13230 | (ix86_expand_args_builtin): Handle new builtin types. | |
13231 | (ix86_expand_round_builtin): Ditto. | |
13232 | * config/i386/sse.md (sseintconvert): New. | |
13233 | (ssePHmode): Ditto. | |
13234 | (UNSPEC_US_FIX_NOTRUNC): Ditto. | |
13235 | (sseintconvertsignprefix): Ditto. | |
13236 | (avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode><mask_name><round_name>): | |
13237 | Ditto. | |
13238 | ||
13239 | 2021-09-16 liuhongt <hongtao.liu@intel.com> | |
13240 | ||
13241 | * config/i386/avx512fp16intrin.h: (_mm_cvtsi16_si128): | |
13242 | New intrinsic. | |
13243 | (_mm_cvtsi128_si16): Likewise. | |
13244 | (_mm_mask_load_sh): Likewise. | |
13245 | (_mm_maskz_load_sh): Likewise. | |
13246 | (_mm_mask_store_sh): Likewise. | |
13247 | (_mm_move_sh): Likewise. | |
13248 | (_mm_mask_move_sh): Likewise. | |
13249 | (_mm_maskz_move_sh): Likewise. | |
13250 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
13251 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
13252 | * config/i386/i386-expand.c | |
13253 | (ix86_expand_special_args_builtin): Handle new builtin types. | |
13254 | (ix86_expand_vector_init_one_nonzero): Adjust for FP16 target. | |
13255 | * config/i386/sse.md (VI2F): New mode iterator. | |
13256 | (vec_set<mode>_0): Use new mode iterator. | |
13257 | (avx512f_mov<ssescalarmodelower>_mask): Adjust for HF vector mode. | |
13258 | (avx512f_store<mode>_mask): Ditto. | |
13259 | ||
13260 | 2021-09-16 Kewen Lin <linkw@linux.ibm.com> | |
13261 | ||
13262 | * config/rs6000/rs6000.opt (-mtoc-fusion): Remove. | |
13263 | ||
13264 | 2021-09-15 David Edelsohn <dje.gcc@gmail.com> | |
13265 | ||
13266 | * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): | |
13267 | Proceed if no symbol summary or the symbol alias flag is false. | |
13268 | ||
13269 | 2021-09-15 Jakub Jelinek <jakub@redhat.com> | |
13270 | ||
13271 | PR c++/88578 | |
13272 | PR c++/102295 | |
13273 | * varasm.c (output_constructor_regular_field): Instead of assertion | |
13274 | that array_size_for_constructor result is equal to size of | |
13275 | TREE_TYPE (local->val) in bytes, assert that the type size is greater | |
13276 | or equal to array_size_for_constructor result and use type size as | |
13277 | fieldsize. | |
13278 | ||
13279 | 2021-09-15 Martin Liska <mliska@suse.cz> | |
13280 | ||
13281 | PR target/102351 | |
13282 | * config/i386/vxworks.h: Use new macro TARGET_CPU_P. | |
13283 | ||
13284 | 2021-09-15 Martin Liska <mliska@suse.cz> | |
13285 | ||
13286 | PR target/102349 | |
13287 | * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): | |
13288 | Check that we have a symbol summary for a symbol. | |
13289 | ||
13290 | 2021-09-15 Richard Biener <rguenther@suse.de> | |
13291 | ||
13292 | PR target/102348 | |
13293 | * config/rs6000/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE | |
13294 | to inherit from elfos.h | |
13295 | ||
13296 | 2021-09-15 liuhongt <hongtao.liu@intel.com> | |
13297 | ||
13298 | PR target/102327 | |
13299 | * config/i386/i386-expand.c | |
13300 | (ix86_expand_vector_init_interleave): Use puncklwd to pack 2 | |
13301 | HFmodes. | |
13302 | (ix86_expand_vector_set): Use blendw instead of pinsrw. | |
13303 | * config/i386/i386.c (ix86_can_change_mode_class): Adjust for | |
13304 | AVX512FP16 which supports 16bit vector load. | |
13305 | * config/i386/sse.md (avx512bw_interleave_highv32hi<mask_name>): | |
13306 | Rename to .. | |
13307 | (avx512bw_interleave_high<mode><mask_name>): .. this, and | |
13308 | extend to V32HFmode. | |
13309 | (avx2_interleave_highv16hi<mask_name>): Rename to .. | |
13310 | (avx2_interleave_high<mode><mask_name>): .. this, and extend | |
13311 | to V16HFmode. | |
13312 | (vec_interleave_highv8hi<mask_name>): Rename to .. | |
13313 | (vec_interleave_high<mode><mask_name>): .. this, and extend to V8HFmode. | |
13314 | (<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>): | |
13315 | Rename to .. | |
13316 | (<mask_codefor>avx512bw_interleave_low<mode><mask_name>): | |
13317 | this, and extend to V32HFmode. | |
13318 | (avx2_interleave_lowv16hi<mask_name>): Rename to .. | |
13319 | (avx2_interleave_low<mode><mask_name>): .. this, and extend to V16HFmode. | |
13320 | (vec_interleave_lowv8hi<mask_name>): Rename to .. | |
13321 | (vec_interleave_low<mode><mask_name>): .. this, and extend to V8HFmode. | |
13322 | (sse4_1_pblendw): Rename to .. | |
13323 | (sse4_1_pblend<blendsuf>): .. this, and extend to V8HFmode. | |
13324 | (avx2_pblendph): New define_expand. | |
13325 | (<sse2p4_1>_pinsr<ssemodesuffix>): Refactor, use | |
13326 | sseintmodesuffix instead of ssemodesuffix. | |
13327 | (blendsuf): New mode attr. | |
13328 | ||
13329 | 2021-09-15 Richard Biener <rguenther@suse.de> | |
13330 | ||
13331 | * tree-vectorizer.h (dr_misalignment): Move out of line. | |
13332 | (dr_target_alignment): New. | |
13333 | (DR_TARGET_ALIGNMENT): Wrap dr_target_alignment. | |
13334 | (set_dr_target_alignment): New. | |
13335 | (SET_DR_TARGET_ALIGNMENT): Wrap set_dr_target_alignment. | |
13336 | * tree-vect-data-refs.c (dr_misalignment): Compute and | |
13337 | return the group members misalignment. | |
13338 | (vect_compute_data_ref_alignment): Use SET_DR_TARGET_ALIGNMENT. | |
13339 | (vect_analyze_data_refs_alignment): Compute alignment only | |
13340 | for the first element of a DR group. | |
13341 | (vect_slp_analyze_node_alignment): Likewise. | |
13342 | ||
13343 | 2021-09-15 Hongyu Wang <hongyu.wang@intel.com> | |
13344 | ||
13345 | * config/i386/avx512fp16intrin.h: Adjust all builtin calls. | |
13346 | * config/i386/avx512fp16vlintrin.h: Likewise. | |
13347 | * config/i386/i386-builtin.def: Adjust builtin name and | |
13348 | enumeration to match AVX512F style. | |
13349 | ||
13350 | 2021-09-15 Richard Biener <rguenther@suse.de> | |
13351 | ||
13352 | PR tree-optimization/102318 | |
13353 | * tree-vect-loop.c (vect_transform_cycle_phi): Revert | |
13354 | previous change and do the mode conversion separately from | |
13355 | the sign conversion. | |
13356 | ||
13357 | 2021-09-15 Hongtao Liu <hongtao.liu@intel.com> | |
13358 | Peter Cordes <peter@cordes.ca> | |
13359 | ||
13360 | PR target/91103 | |
13361 | * config/i386/sse.md (extract_suf): Add V8SF/V8SI/V4DF/V4DI. | |
13362 | (*vec_extract<mode><ssescalarmodelower>_valign): Output | |
13363 | vextract{i,f}{32x4,64x2} instruction when byte_offset % 16 == | |
13364 | 0. | |
13365 | ||
13366 | 2021-09-15 Richard Biener <rguenther@suse.de> | |
13367 | ||
13368 | * config.gcc: Remove vax-*-openbsd* configuration. | |
13369 | ||
13370 | 2021-09-15 Richard Biener <rguenther@suse.de> | |
13371 | ||
13372 | * config.gcc: Remove m68k-openbsd. | |
13373 | ||
13374 | 2021-09-15 Max Filippov <jcmvbkbc@gmail.com> | |
13375 | ||
13376 | PR target/102336 | |
13377 | * config/xtensa/t-xtensa (TM_H): Add include/xtensa-config.h. | |
13378 | ||
13379 | 2021-09-14 Peter Bergner <bergner@linux.ibm.com> | |
13380 | ||
13381 | * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_XXSETACCZ. | |
13382 | (unspecv): Add UNSPECV_MMA_XXSETACCZ. | |
13383 | (*mma_xxsetaccz): Delete. | |
13384 | (mma_xxsetaccz): Change to define_insn. Remove operand 1. | |
13385 | Use UNSPECV_MMA_XXSETACCZ. Update comment. | |
13386 | * config/rs6000/rs6000.c (rs6000_rtx_costs): Use UNSPECV_MMA_XXSETACCZ. | |
13387 | ||
13388 | 2021-09-14 Iain Sandoe <iain@sandoe.co.uk> | |
13389 | ||
13390 | * Makefile.in: Remove variables related to applying no-PIE | |
13391 | to the exes on $build. | |
13392 | * configure: Regenerate. | |
13393 | * configure.ac: Remove configuration related to applying | |
13394 | no-PIE to the exes on $build. | |
13395 | ||
13396 | 2021-09-14 Claudiu Zissulescu <claziss@synopsys.com> | |
13397 | ||
13398 | * config/arc/arc.md (doloop_end): Add missing mode. | |
13399 | (loop_end): Likewise. | |
13400 | ||
13401 | 2021-09-14 Jakub Jelinek <jakub@redhat.com> | |
13402 | ||
13403 | * gimplify.c (goa_stabilize_expr): Add depth argument, propagate | |
13404 | it to recursive calls, for depth above 7 just gimplify or return. | |
13405 | Perform a test even for MODIFY_EXPR, ADDR_EXPR, COMPOUND_EXPR with | |
13406 | __builtin_clear_padding and TARGET_EXPR. | |
13407 | (gimplify_omp_atomic): Adjust goa_stabilize_expr callers. | |
13408 | ||
13409 | 2021-09-14 liuhongt <hongtao.liu@intel.com> | |
13410 | ||
13411 | * config/i386/avx512fp16intrin.h (_mm_fpclass_sh_mask): | |
13412 | New intrinsic. | |
13413 | (_mm_mask_fpclass_sh_mask): Likewise. | |
13414 | (_mm512_mask_fpclass_ph_mask): Likewise. | |
13415 | (_mm512_fpclass_ph_mask): Likewise. | |
13416 | (_mm_getexp_sh): Likewise. | |
13417 | (_mm_mask_getexp_sh): Likewise. | |
13418 | (_mm_maskz_getexp_sh): Likewise. | |
13419 | (_mm512_getexp_ph): Likewise. | |
13420 | (_mm512_mask_getexp_ph): Likewise. | |
13421 | (_mm512_maskz_getexp_ph): Likewise. | |
13422 | (_mm_getexp_round_sh): Likewise. | |
13423 | (_mm_mask_getexp_round_sh): Likewise. | |
13424 | (_mm_maskz_getexp_round_sh): Likewise. | |
13425 | (_mm512_getexp_round_ph): Likewise. | |
13426 | (_mm512_mask_getexp_round_ph): Likewise. | |
13427 | (_mm512_maskz_getexp_round_ph): Likewise. | |
13428 | (_mm_getmant_sh): Likewise. | |
13429 | (_mm_mask_getmant_sh): Likewise. | |
13430 | (_mm_maskz_getmant_sh): Likewise. | |
13431 | (_mm512_getmant_ph): Likewise. | |
13432 | (_mm512_mask_getmant_ph): Likewise. | |
13433 | (_mm512_maskz_getmant_ph): Likewise. | |
13434 | (_mm_getmant_round_sh): Likewise. | |
13435 | (_mm_mask_getmant_round_sh): Likewise. | |
13436 | (_mm_maskz_getmant_round_sh): Likewise. | |
13437 | (_mm512_getmant_round_ph): Likewise. | |
13438 | (_mm512_mask_getmant_round_ph): Likewise. | |
13439 | (_mm512_maskz_getmant_round_ph): Likewise. | |
13440 | * config/i386/avx512fp16vlintrin.h (_mm_mask_fpclass_ph_mask): | |
13441 | New intrinsic. | |
13442 | (_mm_fpclass_ph_mask): Likewise. | |
13443 | (_mm256_mask_fpclass_ph_mask): Likewise. | |
13444 | (_mm256_fpclass_ph_mask): Likewise. | |
13445 | (_mm256_getexp_ph): Likewise. | |
13446 | (_mm256_mask_getexp_ph): Likewise. | |
13447 | (_mm256_maskz_getexp_ph): Likewise. | |
13448 | (_mm_getexp_ph): Likewise. | |
13449 | (_mm_mask_getexp_ph): Likewise. | |
13450 | (_mm_maskz_getexp_ph): Likewise. | |
13451 | (_mm256_getmant_ph): Likewise. | |
13452 | (_mm256_mask_getmant_ph): Likewise. | |
13453 | (_mm256_maskz_getmant_ph): Likewise. | |
13454 | (_mm_getmant_ph): Likewise. | |
13455 | (_mm_mask_getmant_ph): Likewise. | |
13456 | (_mm_maskz_getmant_ph): Likewise. | |
13457 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
13458 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
13459 | * config/i386/i386-expand.c | |
13460 | (ix86_expand_args_builtin): Handle new builtin types. | |
13461 | (ix86_expand_round_builtin): Ditto. | |
13462 | * config/i386/sse.md (vecmemsuffix): Add HF vector modes. | |
13463 | (<avx512>_getexp<mode><mask_name><round_saeonly_name>): Adjust | |
13464 | to support HF vector modes. | |
13465 | (avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name): | |
13466 | Ditto. | |
13467 | (avx512dq_fpclass<mode><mask_scalar_merge_name>): Ditto. | |
13468 | (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Ditto. | |
13469 | (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Ditto. | |
13470 | (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): | |
13471 | Ditto. | |
13472 | ||
13473 | 2021-09-14 liuhongt <hongtao.liu@intel.com> | |
13474 | ||
13475 | * config/i386/avx512fp16intrin.h (_mm512_reduce_ph): | |
13476 | New intrinsic. | |
13477 | (_mm512_mask_reduce_ph): Likewise. | |
13478 | (_mm512_maskz_reduce_ph): Likewise. | |
13479 | (_mm512_reduce_round_ph): Likewise. | |
13480 | (_mm512_mask_reduce_round_ph): Likewise. | |
13481 | (_mm512_maskz_reduce_round_ph): Likewise. | |
13482 | (_mm_reduce_sh): Likewise. | |
13483 | (_mm_mask_reduce_sh): Likewise. | |
13484 | (_mm_maskz_reduce_sh): Likewise. | |
13485 | (_mm_reduce_round_sh): Likewise. | |
13486 | (_mm_mask_reduce_round_sh): Likewise. | |
13487 | (_mm_maskz_reduce_round_sh): Likewise. | |
13488 | (_mm512_roundscale_ph): Likewise. | |
13489 | (_mm512_mask_roundscale_ph): Likewise. | |
13490 | (_mm512_maskz_roundscale_ph): Likewise. | |
13491 | (_mm512_roundscale_round_ph): Likewise. | |
13492 | (_mm512_mask_roundscale_round_ph): Likewise. | |
13493 | (_mm512_maskz_roundscale_round_ph): Likewise. | |
13494 | (_mm_roundscale_sh): Likewise. | |
13495 | (_mm_mask_roundscale_sh): Likewise. | |
13496 | (_mm_maskz_roundscale_sh): Likewise. | |
13497 | (_mm_roundscale_round_sh): Likewise. | |
13498 | (_mm_mask_roundscale_round_sh): Likewise. | |
13499 | (_mm_maskz_roundscale_round_sh): Likewise. | |
13500 | * config/i386/avx512fp16vlintrin.h: (_mm_reduce_ph): | |
13501 | New intrinsic. | |
13502 | (_mm_mask_reduce_ph): Likewise. | |
13503 | (_mm_maskz_reduce_ph): Likewise. | |
13504 | (_mm256_reduce_ph): Likewise. | |
13505 | (_mm256_mask_reduce_ph): Likewise. | |
13506 | (_mm256_maskz_reduce_ph): Likewise. | |
13507 | (_mm_roundscale_ph): Likewise. | |
13508 | (_mm_mask_roundscale_ph): Likewise. | |
13509 | (_mm_maskz_roundscale_ph): Likewise. | |
13510 | (_mm256_roundscale_ph): Likewise. | |
13511 | (_mm256_mask_roundscale_ph): Likewise. | |
13512 | (_mm256_maskz_roundscale_ph): Likewise. | |
13513 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
13514 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
13515 | * config/i386/i386-expand.c | |
13516 | (ix86_expand_args_builtin): Handle new builtin types. | |
13517 | (ix86_expand_round_builtin): Ditto. | |
13518 | * config/i386/sse.md (<mask_codefor>reducep<mode><mask_name>): | |
13519 | Renamed to ... | |
13520 | (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): | |
13521 | ... this, and adjust for round operands. | |
13522 | (reduces<mode><mask_scalar_name>): Likewise, with ... | |
13523 | (reduces<mode><mask_scalar_name><round_saeonly_scalar_name): | |
13524 | ... this. | |
13525 | (<avx512>_rndscale<mode><mask_name><round_saeonly_name>): | |
13526 | Adjust for HF vector modes. | |
13527 | (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>): | |
13528 | Ditto. | |
13529 | (*avx512f_rndscale<mode><round_saeonly_name>): Ditto. | |
13530 | ||
13531 | 2021-09-14 liuhongt <hongtao.liu@intel.com> | |
13532 | ||
13533 | * config/i386/avx512fp16intrin.h: (_mm512_rcp_ph): | |
13534 | New intrinsic. | |
13535 | (_mm512_mask_rcp_ph): Likewise. | |
13536 | (_mm512_maskz_rcp_ph): Likewise. | |
13537 | (_mm_rcp_sh): Likewise. | |
13538 | (_mm_mask_rcp_sh): Likewise. | |
13539 | (_mm_maskz_rcp_sh): Likewise. | |
13540 | (_mm512_scalef_ph): Likewise. | |
13541 | (_mm512_mask_scalef_ph): Likewise. | |
13542 | (_mm512_maskz_scalef_ph): Likewise. | |
13543 | (_mm512_scalef_round_ph): Likewise. | |
13544 | (_mm512_mask_scalef_round_ph): Likewise. | |
13545 | (_mm512_maskz_scalef_round_ph): Likewise. | |
13546 | (_mm_scalef_sh): Likewise. | |
13547 | (_mm_mask_scalef_sh): Likewise. | |
13548 | (_mm_maskz_scalef_sh): Likewise. | |
13549 | (_mm_scalef_round_sh): Likewise. | |
13550 | (_mm_mask_scalef_round_sh): Likewise. | |
13551 | (_mm_maskz_scalef_round_sh): Likewise. | |
13552 | * config/i386/avx512fp16vlintrin.h (_mm_rcp_ph): | |
13553 | New intrinsic. | |
13554 | (_mm256_rcp_ph): Likewise. | |
13555 | (_mm_mask_rcp_ph): Likewise. | |
13556 | (_mm256_mask_rcp_ph): Likewise. | |
13557 | (_mm_maskz_rcp_ph): Likewise. | |
13558 | (_mm256_maskz_rcp_ph): Likewise. | |
13559 | (_mm_scalef_ph): Likewise. | |
13560 | (_mm256_scalef_ph): Likewise. | |
13561 | (_mm_mask_scalef_ph): Likewise. | |
13562 | (_mm256_mask_scalef_ph): Likewise. | |
13563 | (_mm_maskz_scalef_ph): Likewise. | |
13564 | (_mm256_maskz_scalef_ph): Likewise. | |
13565 | * config/i386/i386-builtin.def: Add new builtins. | |
13566 | * config/i386/sse.md (VFH_AVX512VL): New. | |
13567 | (avx512fp16_rcp<mode>2<mask_name>): Ditto. | |
13568 | (avx512fp16_vmrcpv8hf2<mask_scalar_name>): Ditto. | |
13569 | (avx512f_vmscalef<mode><mask_scalar_name><round_scalar_name>): | |
13570 | Adjust to support HF vector modes. | |
13571 | (<avx512>_scalef<mode><mask_name><round_name>): Ditto. | |
13572 | ||
13573 | 2021-09-14 liuhongt <hongtao.liu@intel.com> | |
13574 | ||
13575 | * config/i386/avx512fp16intrin.h: (_mm512_sqrt_ph): | |
13576 | New intrinsic. | |
13577 | (_mm512_mask_sqrt_ph): Likewise. | |
13578 | (_mm512_maskz_sqrt_ph): Likewise. | |
13579 | (_mm512_sqrt_round_ph): Likewise. | |
13580 | (_mm512_mask_sqrt_round_ph): Likewise. | |
13581 | (_mm512_maskz_sqrt_round_ph): Likewise. | |
13582 | (_mm512_rsqrt_ph): Likewise. | |
13583 | (_mm512_mask_rsqrt_ph): Likewise. | |
13584 | (_mm512_maskz_rsqrt_ph): Likewise. | |
13585 | (_mm_rsqrt_sh): Likewise. | |
13586 | (_mm_mask_rsqrt_sh): Likewise. | |
13587 | (_mm_maskz_rsqrt_sh): Likewise. | |
13588 | (_mm_sqrt_sh): Likewise. | |
13589 | (_mm_mask_sqrt_sh): Likewise. | |
13590 | (_mm_maskz_sqrt_sh): Likewise. | |
13591 | (_mm_sqrt_round_sh): Likewise. | |
13592 | (_mm_mask_sqrt_round_sh): Likewise. | |
13593 | (_mm_maskz_sqrt_round_sh): Likewise. | |
13594 | * config/i386/avx512fp16vlintrin.h (_mm_sqrt_ph): New intrinsic. | |
13595 | (_mm256_sqrt_ph): Likewise. | |
13596 | (_mm_mask_sqrt_ph): Likewise. | |
13597 | (_mm256_mask_sqrt_ph): Likewise. | |
13598 | (_mm_maskz_sqrt_ph): Likewise. | |
13599 | (_mm256_maskz_sqrt_ph): Likewise. | |
13600 | (_mm_rsqrt_ph): Likewise. | |
13601 | (_mm256_rsqrt_ph): Likewise. | |
13602 | (_mm_mask_rsqrt_ph): Likewise. | |
13603 | (_mm256_mask_rsqrt_ph): Likewise. | |
13604 | (_mm_maskz_rsqrt_ph): Likewise. | |
13605 | (_mm256_maskz_rsqrt_ph): Likewise. | |
13606 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
13607 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
13608 | * config/i386/i386-expand.c | |
13609 | (ix86_expand_args_builtin): Handle new builtins. | |
13610 | (ix86_expand_round_builtin): Ditto. | |
13611 | * config/i386/sse.md (VF_AVX512FP16VL): New. | |
13612 | (sqrt<mode>2): Adjust for HF vector modes. | |
13613 | (<sse>_sqrt<mode>2<mask_name><round_name>): Likewise. | |
13614 | (<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): | |
13615 | Likewise. | |
13616 | (<sse>_rsqrt<mode>2<mask_name>): New. | |
13617 | (avx512fp16_vmrsqrtv8hf2<mask_scalar_name>): Likewise. | |
13618 | ||
13619 | 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> | |
13620 | ||
13621 | PR bootstrap/101574 | |
13622 | * diagnostic-spec.c (warning_suppressed_at, copy_warning): Handle | |
13623 | 'RESERVED_LOCATION_P' locations. | |
13624 | * warning-control.cc (get_nowarn_spec, suppress_warning) | |
13625 | (copy_warning): Likewise. | |
13626 | ||
13627 | 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> | |
13628 | ||
13629 | * diagnostic-spec.h (typedef xint_hash_t): Use 'location_t' instead of... | |
13630 | (typedef key_type_t): ... this. Remove. | |
13631 | (nowarn_map): Document. | |
13632 | * diagnostic-spec.c (nowarn_map): Likewise. | |
13633 | * warning-control.cc (convert_to_key): Evolve functions into... | |
13634 | (get_location): ... these. Adjust all users. | |
13635 | ||
13636 | 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> | |
13637 | ||
13638 | * warning-control.cc (copy_warning): Remove 'nowarn_map' setup. | |
13639 | ||
13640 | 2021-09-13 Jason Merrill <jason@redhat.com> | |
13641 | ||
13642 | * params.opt: Add destructive-interference-size and | |
13643 | constructive-interference-size. | |
13644 | * doc/invoke.texi: Document them. | |
13645 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
13646 | Set them. | |
13647 | * config/arm/arm.c (arm_option_override): Set them. | |
13648 | * config/i386/i386-options.c (ix86_option_override_internal): | |
13649 | Set them. | |
13650 | ||
13651 | 2021-09-13 Martin Liska <mliska@suse.cz> | |
13652 | H.J. Lu <hjl.tools@gmail.com> | |
13653 | ||
13654 | PR target/101696 | |
13655 | * common/config/i386/cpuinfo.h (cpu_indicator_init): Add support | |
13656 | for x86-64 micro levels for __builtin_cpu_supports. | |
13657 | * common/config/i386/i386-cpuinfo.h (enum feature_priority): | |
13658 | Add priorities for the micro-arch levels. | |
13659 | (enum processor_features): Add new features. | |
13660 | * common/config/i386/i386-isas.h: Add micro-arch features. | |
13661 | * config/i386/i386-builtins.c (get_builtin_code_for_version): | |
13662 | Support the micro-arch levels by callsing | |
13663 | __builtin_cpu_supports. | |
13664 | * doc/extend.texi: Document that the levels are support by | |
13665 | __builtin_cpu_supports. | |
13666 | ||
13667 | 2021-09-13 Andrew Pinski <apinski@marvell.com> | |
13668 | ||
13669 | PR target/95969 | |
13670 | * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin_lane_check): | |
13671 | New function. | |
13672 | (aarch64_general_fold_builtin): Handle AARCH64_SIMD_BUILTIN_LANE_CHECK. | |
13673 | (aarch64_general_gimple_fold_builtin): Likewise. | |
13674 | ||
13675 | 2021-09-13 Andrew Pinski <apinski@marvell.com> | |
13676 | ||
13677 | * config.gcc: Add m32r-*-linux* and m32rle-*-linux* | |
13678 | to the Unsupported targets list. | |
13679 | Remove support for m32r-*-linux* and m32rle-*-linux*. | |
13680 | * config/m32r/linux.h: Removed. | |
13681 | * config/m32r/t-linux: Removed. | |
13682 | ||
13683 | 2021-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
13684 | ||
13685 | PR target/102252 | |
13686 | * config/aarch64/aarch64.c (aarch64_classify_address): Don't allow | |
13687 | register index for SVE predicate modes. | |
13688 | ||
13689 | 2021-09-13 Aldy Hernandez <aldyh@redhat.com> | |
13690 | ||
13691 | * tree-ssa-threadbackward.c | |
13692 | (back_threader_profitability::profitable_path_p): Remove FSM | |
13693 | references. | |
13694 | (back_threader_registry::register_path): Same. | |
13695 | * tree-ssa-threadedge.c | |
13696 | (jump_threader::simplify_control_stmt_condition): Same. | |
13697 | * tree-ssa-threadupdate.c (jt_path_registry::jt_path_registry): | |
13698 | Add backedge_threads argument. | |
13699 | (fwd_jt_path_registry::fwd_jt_path_registry): Pass | |
13700 | backedge_threads argument. | |
13701 | (back_jt_path_registry::back_jt_path_registry): Same. | |
13702 | (dump_jump_thread_path): Adjust for FSM removal. | |
13703 | (back_jt_path_registry::rewire_first_differing_edge): Same. | |
13704 | (back_jt_path_registry::adjust_paths_after_duplication): Same. | |
13705 | (back_jt_path_registry::update_cfg): Same. | |
13706 | (jt_path_registry::register_jump_thread): Same. | |
13707 | * tree-ssa-threadupdate.h (enum jump_thread_edge_type): Remove | |
13708 | EDGE_FSM_THREAD. | |
13709 | (class back_jt_path_registry): Add backedge_threads to | |
13710 | constructor. | |
13711 | ||
13712 | 2021-09-13 Martin Liska <mliska@suse.cz> | |
13713 | ||
13714 | PR c++/101331 | |
13715 | * asan.h (sanitize_coverage_p): Handle when fn == NULL. | |
13716 | ||
13717 | 2021-09-13 H.J. Lu <hjl.tools@gmail.com> | |
13718 | ||
13719 | PR target/101935 | |
13720 | * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): New. | |
13721 | (TARGET_AVX256_STORE_BY_PIECES): Likewise. | |
13722 | (MOVE_MAX): Check TARGET_AVX256_MOVE_BY_PIECES and | |
13723 | TARGET_AVX256_STORE_BY_PIECES instead of | |
13724 | TARGET_AVX256_SPLIT_UNALIGNED_LOAD and | |
13725 | TARGET_AVX256_SPLIT_UNALIGNED_STORE. | |
13726 | (STORE_MAX_PIECES): Check TARGET_AVX256_STORE_BY_PIECES instead | |
13727 | of TARGET_AVX256_SPLIT_UNALIGNED_STORE. | |
13728 | * config/i386/x86-tune.def (X86_TUNE_AVX256_MOVE_BY_PIECES): New. | |
13729 | (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. | |
13730 | ||
13731 | 2021-09-13 liuhongt <hongtao.liu@intel.com> | |
13732 | ||
13733 | PR bootstrap/102302 | |
13734 | * expmed.c (extract_bit_field_using_extv): Use | |
13735 | gen_lowpart_if_possible instead of gen_lowpart to avoid ICE. | |
13736 | ||
13737 | 2021-09-13 Aldy Hernandez <aldyh@redhat.com> | |
13738 | ||
13739 | * Makefile.in (OBJS): Add value-pointer-equiv.o. | |
13740 | * gimple-ssa-evrp.c (class ssa_equiv_stack): Move to | |
13741 | value-pointer-equiv.*. | |
13742 | (ssa_equiv_stack::ssa_equiv_stack): Same. | |
13743 | (ssa_equiv_stack::enter): Same. | |
13744 | (ssa_equiv_stack::leave): Same. | |
13745 | (ssa_equiv_stack::push_replacement): Same. | |
13746 | (ssa_equiv_stack::get_replacement): Same. | |
13747 | (is_pointer_ssa): Same. | |
13748 | (class pointer_equiv_analyzer): Same. | |
13749 | (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. | |
13750 | (pointer_equiv_analyzer::~pointer_equiv_analyzer): Same. | |
13751 | (pointer_equiv_analyzer::set_global_equiv): Same. | |
13752 | (pointer_equiv_analyzer::set_cond_equiv): Same. | |
13753 | (pointer_equiv_analyzer::get_equiv): Same. | |
13754 | (pointer_equiv_analyzer::enter): Same. | |
13755 | (pointer_equiv_analyzer::leave): Same. | |
13756 | (pointer_equiv_analyzer::get_equiv_expr): Same. | |
13757 | (pta_valueize): Same. | |
13758 | (pointer_equiv_analyzer::visit_stmt): Same. | |
13759 | (pointer_equiv_analyzer::visit_edge): Same. | |
13760 | (hybrid_folder::value_of_expr): Same. | |
13761 | (hybrid_folder::value_on_edge): Same. | |
13762 | * value-pointer-equiv.cc: New file. | |
13763 | * value-pointer-equiv.h: New file. | |
13764 | ||
13765 | 2021-09-13 Richard Earnshaw <rearnsha@arm.com> | |
13766 | ||
13767 | PR target/102125 | |
13768 | * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding | |
13769 | memcpy if the size is not more than MOVE_MAX * MOVE_RATIO. | |
13770 | ||
13771 | 2021-09-13 Richard Earnshaw <rearnsha@arm.com> | |
13772 | ||
13773 | PR target/102125 | |
13774 | * config/arm/arm.md (movmisaligndi): New define_expand. | |
13775 | * config/arm/vec-common.md (movmisalign<mode>): Iterate over VDQ mode. | |
13776 | ||
13777 | 2021-09-13 Richard Earnshaw <rearnsha@arm.com> | |
13778 | ||
13779 | PR target/102125 | |
13780 | * emit-rtl.c (gen_highpart): Use adjust_address to handle | |
13781 | MEM rather than calling simplify_gen_subreg. | |
13782 | ||
13783 | 2021-09-13 Jan-Benedict Glaw <jbglaw@ług-owl.de> | |
13784 | ||
13785 | * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment | |
13786 | define into a block. | |
13787 | ||
13788 | 2021-09-13 Richard Biener <rguenther@suse.de> | |
13789 | ||
13790 | * config/darwin.h (DARWIN_PREFER_DWARF): Do not define. | |
13791 | * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Do not | |
13792 | change based on DARWIN_PREFER_DWARF not being defined. | |
13793 | ||
13794 | 2021-09-13 Richard Biener <rguenther@suse.de> | |
13795 | ||
13796 | * config/i386/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE | |
13797 | to inherit from elfos.h | |
13798 | ||
13799 | 2021-09-13 Richard Biener <rguenther@suse.de> | |
13800 | ||
13801 | * config.gcc: Add cr16-*-* to the list of obsoleted targets. | |
13802 | ||
13803 | 2021-09-13 Richard Biener <rguenther@suse.de> | |
13804 | ||
13805 | * config/avr/elf.h (PREFERRED_DEBUGGING_TYPE): Remove | |
13806 | override, pick up DWARF2_DEBUG define from elfos.h | |
13807 | ||
13808 | 2021-09-13 Richard Biener <rguenther@suse.de> | |
13809 | ||
13810 | * config/rx/rx.h (PREFERRED_DEBUGGING_TYPE): Always define to | |
13811 | DWARF2_DEBUG. | |
13812 | ||
13813 | 2021-09-13 Richard Biener <rguenther@suse.de> | |
13814 | ||
13815 | * config/alpha/vms.h (PREFERRED_DEBUGGING_TYPE): Define to | |
13816 | DWARF2_DEBUG. | |
13817 | ||
13818 | 2021-09-13 Richard Biener <rguenther@suse.de> | |
13819 | ||
13820 | * config/i386/cygming.h: Always default to DWARF2 debugging. | |
13821 | Do not define DBX_DEBUGGING_INFO, that's done via dbxcoff.h | |
13822 | already. | |
13823 | * doc/install.texi: Document binutils 2.16 as minimum | |
13824 | requirement for mingw. | |
13825 | ||
13826 | 2021-09-13 Kewen Lin <linkw@linux.ibm.com> | |
13827 | ||
13828 | * config/rs6000/rs6000.c (struct rs6000_cost_data): New members | |
13829 | nstmts, nloads and extra_ctor_cost. | |
13830 | (rs6000_density_test): Add load density related heuristics. Do | |
13831 | extra costing on vector construction statements if need. | |
13832 | (rs6000_init_cost): Init new members. | |
13833 | (rs6000_update_target_cost_per_stmt): New function. | |
13834 | (rs6000_add_stmt_cost): Factor vect_nonmem hunk out to function | |
13835 | rs6000_update_target_cost_per_stmt and call it. | |
13836 | ||
13837 | 2021-09-13 Kewen Lin <linkw@linux.ibm.com> | |
13838 | ||
13839 | * config/rs6000/rs6000.c (struct rs6000_cost_data): Remove typedef. | |
13840 | (rs6000_init_cost): Adjust. | |
13841 | ||
13842 | 2021-09-13 liuhongt <hongtao.liu@intel.com> | |
13843 | ||
13844 | * config/i386/i386.md: (UNSPEC_COPYSIGN): Remove. | |
13845 | (UNSPEC_XORSIGN): Ditto. | |
13846 | ||
13847 | 2021-09-12 Roger Sayle <roger@nextmovesoftware.com> | |
13848 | ||
13849 | * expr.c (convert_move): Preserve SUBREG_PROMOTED_VAR_P when | |
13850 | creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P | |
13851 | subreg. | |
13852 | ||
13853 | 2021-09-11 Aldy Hernandez <aldyh@redhat.com> | |
13854 | ||
13855 | * tree-ssa-threadbackward.c (class back_threader_registry): Use | |
13856 | back_jt_path_registry. | |
13857 | * tree-ssa-threadedge.c (jump_threader::jump_threader): Use | |
13858 | fwd_jt_path_registry. | |
13859 | * tree-ssa-threadedge.h (class jump_threader): Same.. | |
13860 | * tree-ssa-threadupdate.c | |
13861 | (jump_thread_path_registry::jump_thread_path_registry): Rename... | |
13862 | (jt_path_registry::jt_path_registry): ...to this. | |
13863 | (jump_thread_path_registry::~jump_thread_path_registry): Rename... | |
13864 | (jt_path_registry::~jt_path_registry): ...this. | |
13865 | (fwd_jt_path_registry::fwd_jt_path_registry): New. | |
13866 | (fwd_jt_path_registry::~fwd_jt_path_registry): New. | |
13867 | (jump_thread_path_registry::allocate_thread_edge): Rename... | |
13868 | (jt_path_registry::allocate_thread_edge): ...to this. | |
13869 | (jump_thread_path_registry::allocate_thread_path): Rename... | |
13870 | (jt_path_registry::allocate_thread_path): ...to this. | |
13871 | (jump_thread_path_registry::lookup_redirection_data): Rename... | |
13872 | (fwd_jt_path_registry::lookup_redirection_data): ...to this. | |
13873 | (jump_thread_path_registry::thread_block_1): Rename... | |
13874 | (fwd_jt_path_registry::thread_block_1): ...to this. | |
13875 | (jump_thread_path_registry::thread_block): Rename... | |
13876 | (fwd_jt_path_registry::thread_block): ...to this. | |
13877 | (jt_path_registry::thread_through_loop_header): Rename... | |
13878 | (fwd_jt_path_registry::thread_through_loop_header): ...to this. | |
13879 | (jump_thread_path_registry::mark_threaded_blocks): Rename... | |
13880 | (fwd_jt_path_registry::mark_threaded_blocks): ...to this. | |
13881 | (jump_thread_path_registry::debug_path): Rename... | |
13882 | (jt_path_registry::debug_path): ...to this. | |
13883 | (jump_thread_path_registry::dump): Rename... | |
13884 | (jt_path_registry::debug): ...to this. | |
13885 | (jump_thread_path_registry::rewire_first_differing_edge): Rename... | |
13886 | (back_jt_path_registry::rewire_first_differing_edge): ...to this. | |
13887 | (jump_thread_path_registry::adjust_paths_after_duplication): Rename... | |
13888 | (back_jt_path_registry::adjust_paths_after_duplication): ...to this. | |
13889 | (jump_thread_path_registry::duplicate_thread_path): Rename... | |
13890 | (back_jt_path_registry::duplicate_thread_path): ...to this. Also, | |
13891 | drop ill-formed candidates. | |
13892 | (jump_thread_path_registry::remove_jump_threads_including): Rename... | |
13893 | (fwd_jt_path_registry::remove_jump_threads_including): ...to this. | |
13894 | (jt_path_registry::thread_through_all_blocks): New. | |
13895 | (back_jt_path_registry::update_cfg): New. | |
13896 | (fwd_jt_path_registry::update_cfg): New. | |
13897 | (jump_thread_path_registry::register_jump_thread): Rename... | |
13898 | (jt_path_registry::register_jump_thread): ...to this. | |
13899 | * tree-ssa-threadupdate.h (class jump_thread_path_registry): | |
13900 | Abstract to... | |
13901 | (class jt_path_registry): ...here. | |
13902 | (class fwd_jt_path_registry): New. | |
13903 | (class back_jt_path_registry): New. | |
13904 | ||
13905 | 2021-09-10 liuhongt <hongtao.liu@intel.com> | |
13906 | ||
13907 | Revert: | |
13908 | 2021-09-01 liuhongt <hongtao.liu@intel.com> | |
13909 | ||
13910 | * emit-rtl.c (validate_subreg): Get rid of all float-int | |
13911 | special cases. | |
13912 | ||
13913 | 2021-09-10 Jakub Jelinek <jakub@redhat.com> | |
13914 | ||
13915 | * tree-core.h (enum omp_memory_order): Add OMP_MEMORY_ORDER_MASK, | |
13916 | OMP_FAIL_MEMORY_ORDER_UNSPECIFIED, OMP_FAIL_MEMORY_ORDER_RELAXED, | |
13917 | OMP_FAIL_MEMORY_ORDER_ACQUIRE, OMP_FAIL_MEMORY_ORDER_RELEASE, | |
13918 | OMP_FAIL_MEMORY_ORDER_ACQ_REL, OMP_FAIL_MEMORY_ORDER_SEQ_CST and | |
13919 | OMP_FAIL_MEMORY_ORDER_MASK enumerators. | |
13920 | (OMP_FAIL_MEMORY_ORDER_SHIFT): Define. | |
13921 | * gimple-pretty-print.c (dump_gimple_omp_atomic_load, | |
13922 | dump_gimple_omp_atomic_store): Print [weak] for weak atomic | |
13923 | load/store. | |
13924 | * gimple.h (enum gf_mask): Change GF_OMP_ATOMIC_MEMORY_ORDER | |
13925 | to 6-bit mask, adjust GF_OMP_ATOMIC_NEED_VALUE value and add | |
13926 | GF_OMP_ATOMIC_WEAK. | |
13927 | (gimple_omp_atomic_weak_p, gimple_omp_atomic_set_weak): New inline | |
13928 | functions. | |
13929 | * tree.h (OMP_ATOMIC_WEAK): Define. | |
13930 | * tree-pretty-print.c (dump_omp_atomic_memory_order): Adjust for | |
13931 | fail memory order being encoded in the same enum and also print | |
13932 | fail clause if present. | |
13933 | (dump_generic_node): Print weak clause if OMP_ATOMIC_WEAK. | |
13934 | * gimplify.c (goa_stabilize_expr): Add target_expr and rhs arguments, | |
13935 | handle pre_p == NULL case as a test mode that only returns value | |
13936 | but doesn't change gimplify nor change anything otherwise, adjust | |
13937 | recursive calls, add MODIFY_EXPR, ADDR_EXPR, COND_EXPR, TARGET_EXPR | |
13938 | and CALL_EXPR handling, adjust COMPOUND_EXPR handling for | |
13939 | __builtin_clear_padding calls, for !rhs gimplify as lvalue rather | |
13940 | than rvalue. | |
13941 | (gimplify_omp_atomic): Adjust goa_stabilize_expr caller. Handle | |
13942 | COND_EXPR rhs. Set weak flag on gimple load/store for | |
13943 | OMP_ATOMIC_WEAK. | |
13944 | * omp-expand.c (omp_memory_order_to_fail_memmodel): New function. | |
13945 | (omp_memory_order_to_memmodel): Adjust for fail clause encoded | |
13946 | in the same enum. | |
13947 | (expand_omp_atomic_cas): New function. | |
13948 | (expand_omp_atomic_pipeline): Use omp_memory_order_to_fail_memmodel | |
13949 | function. | |
13950 | (expand_omp_atomic): Attempt to optimize atomic compare and exchange | |
13951 | using expand_omp_atomic_cas. | |
13952 | ||
13953 | 2021-09-10 Aldy Hernandez <aldyh@redhat.com> | |
13954 | Michael Matz <matz@suse.de> | |
13955 | ||
13956 | * tree-pass.h (PROP_loop_opts_done): New. | |
13957 | * gimple-range-path.cc (path_range_query::internal_range_of_expr): | |
13958 | Intersect with global range. | |
13959 | * tree-ssa-loop.c (tree_ssa_loop_done): Set PROP_loop_opts_done. | |
13960 | * tree-ssa-threadbackward.c | |
13961 | (back_threader_profitability::profitable_path_p): Disable | |
13962 | threading through latches until after loop optimizations have run. | |
13963 | ||
13964 | 2021-09-10 David Faust <david.faust@oracle.com> | |
13965 | ||
13966 | * doc/invoke.texi: Document BPF -mcpu, -mjmpext, -mjmp32 and -malu32 | |
13967 | options. | |
13968 | ||
13969 | 2021-09-10 David Faust <david.faust@oracle.com> | |
13970 | ||
13971 | * config/bpf/bpf-opts.h (bpf_isa_version): New enum. | |
13972 | * config/bpf/bpf-protos.h (bpf_expand_cbranch): New. | |
13973 | * config/bpf/bpf.c (bpf_option_override): Handle -mcpu option. | |
13974 | (bpf_expand_cbranch): New function. | |
13975 | * config/bpf/bpf.md (AM mode iterator): Conditionalize support for SI | |
13976 | mode. | |
13977 | (zero_extendsidi2): Only use mov32 instruction if it is available. | |
13978 | (SIM mode iterator): Conditionalize support for SI mode. | |
13979 | (JM mode iterator): New. | |
13980 | (cbranchdi4): Update name, use new JM iterator. Use bpf_expand_cbranch. | |
13981 | (*branch_on_di): Update name, use new JM iterator. | |
13982 | * config/bpf/bpf.opt: (mjmpext): New option. | |
13983 | (malu32): Likewise. | |
13984 | (mjmp32): Likewise. | |
13985 | (mcpu): Likewise. | |
13986 | (bpf_isa): New enum. | |
13987 | ||
13988 | 2021-09-10 David Faust <david.faust@oracle.com> | |
13989 | ||
13990 | * config/bpf/bpf.md (zero_extendhidi2): Add new output template | |
13991 | for register-to-register extensions. | |
13992 | (zero_extendqidi2): Likewise. | |
13993 | ||
13994 | 2021-09-10 Richard Biener <rguenther@suse.de> | |
13995 | ||
13996 | PR middle-end/102273 | |
13997 | * internal-fn.c (expand_DEFERRED_INIT): Always expand non-SSA vars. | |
13998 | ||
13999 | 2021-09-10 Richard Biener <rguenther@suse.de> | |
14000 | ||
14001 | PR middle-end/102269 | |
14002 | * gimplify.c (is_var_need_auto_init): Empty types do not need | |
14003 | initialization. | |
14004 | ||
14005 | 2021-09-10 Richard Biener <rguenther@suse.de> | |
14006 | ||
14007 | * configure.ac (--with-stabs): Remove. | |
14008 | * configure: Regenerate. | |
14009 | * doc/install.texi: Remove --with-stabs documentation. | |
14010 | ||
14011 | 2021-09-10 liuhongt <hongtao.liu@intel.com> | |
14012 | ||
14013 | * config/i386/avx512fp16intrin.h: (_mm512_cmp_ph_mask): | |
14014 | New intrinsic. | |
14015 | (_mm512_mask_cmp_ph_mask): Likewise. | |
14016 | (_mm512_cmp_round_ph_mask): Likewise. | |
14017 | (_mm512_mask_cmp_round_ph_mask): Likewise. | |
14018 | (_mm_cmp_sh_mask): Likewise. | |
14019 | (_mm_mask_cmp_sh_mask): Likewise. | |
14020 | (_mm_cmp_round_sh_mask): Likewise. | |
14021 | (_mm_mask_cmp_round_sh_mask): Likewise. | |
14022 | (_mm_comieq_sh): Likewise. | |
14023 | (_mm_comilt_sh): Likewise. | |
14024 | (_mm_comile_sh): Likewise. | |
14025 | (_mm_comigt_sh): Likewise. | |
14026 | (_mm_comige_sh): Likewise. | |
14027 | (_mm_comineq_sh): Likewise. | |
14028 | (_mm_ucomieq_sh): Likewise. | |
14029 | (_mm_ucomilt_sh): Likewise. | |
14030 | (_mm_ucomile_sh): Likewise. | |
14031 | (_mm_ucomigt_sh): Likewise. | |
14032 | (_mm_ucomige_sh): Likewise. | |
14033 | (_mm_ucomineq_sh): Likewise. | |
14034 | (_mm_comi_round_sh): Likewise. | |
14035 | (_mm_comi_sh): Likewise. | |
14036 | * config/i386/avx512fp16vlintrin.h (_mm_cmp_ph_mask): New intrinsic. | |
14037 | (_mm_mask_cmp_ph_mask): Likewise. | |
14038 | (_mm256_cmp_ph_mask): Likewise. | |
14039 | (_mm256_mask_cmp_ph_mask): Likewise. | |
14040 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
14041 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
14042 | * config/i386/i386-expand.c | |
14043 | (ix86_expand_args_builtin): Handle new builtin types. | |
14044 | (ix86_expand_round_builtin): Ditto. | |
14045 | * config/i386/i386.md (ssevecmode): Add HF mode. | |
14046 | (MODEFH): New mode iterator. | |
14047 | * config/i386/sse.md | |
14048 | (V48H_AVX512VL): New mode iterator to support HF vector modes. | |
14049 | Ajdust corresponding description. | |
14050 | (ssecmpintprefix): New. | |
14051 | (VI12_AVX512VL): Adjust to support HF vector modes. | |
14052 | (cmp_imm_predicate): Likewise. | |
14053 | (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): | |
14054 | Likewise. | |
14055 | (avx512f_vmcmp<mode>3<round_saeonly_name>): Likewise. | |
14056 | (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Likewise. | |
14057 | (<sse>_<unord>comi<round_saeonly_name>): Likewise. | |
14058 | ||
14059 | 2021-09-10 liuhongt <hongtao.liu@intel.com> | |
14060 | ||
14061 | * config/i386/avx512fp16intrin.h: (_mm512_max_ph): New intrinsic. | |
14062 | (_mm512_mask_max_ph): Likewise. | |
14063 | (_mm512_maskz_max_ph): Likewise. | |
14064 | (_mm512_min_ph): Likewise. | |
14065 | (_mm512_mask_min_ph): Likewise. | |
14066 | (_mm512_maskz_min_ph): Likewise. | |
14067 | (_mm512_max_round_ph): Likewise. | |
14068 | (_mm512_mask_max_round_ph): Likewise. | |
14069 | (_mm512_maskz_max_round_ph): Likewise. | |
14070 | (_mm512_min_round_ph): Likewise. | |
14071 | (_mm512_mask_min_round_ph): Likewise. | |
14072 | (_mm512_maskz_min_round_ph): Likewise. | |
14073 | (_mm_max_sh): Likewise. | |
14074 | (_mm_mask_max_sh): Likewise. | |
14075 | (_mm_maskz_max_sh): Likewise. | |
14076 | (_mm_min_sh): Likewise. | |
14077 | (_mm_mask_min_sh): Likewise. | |
14078 | (_mm_maskz_min_sh): Likewise. | |
14079 | (_mm_max_round_sh): Likewise. | |
14080 | (_mm_mask_max_round_sh): Likewise. | |
14081 | (_mm_maskz_max_round_sh): Likewise. | |
14082 | (_mm_min_round_sh): Likewise. | |
14083 | (_mm_mask_min_round_sh): Likewise. | |
14084 | (_mm_maskz_min_round_sh): Likewise. | |
14085 | * config/i386/avx512fp16vlintrin.h (_mm_max_ph): New intrinsic. | |
14086 | (_mm256_max_ph): Likewise. | |
14087 | (_mm_mask_max_ph): Likewise. | |
14088 | (_mm256_mask_max_ph): Likewise. | |
14089 | (_mm_maskz_max_ph): Likewise. | |
14090 | (_mm256_maskz_max_ph): Likewise. | |
14091 | (_mm_min_ph): Likewise. | |
14092 | (_mm256_min_ph): Likewise. | |
14093 | (_mm_mask_min_ph): Likewise. | |
14094 | (_mm256_mask_min_ph): Likewise. | |
14095 | (_mm_maskz_min_ph): Likewise. | |
14096 | (_mm256_maskz_min_ph): Likewise. | |
14097 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
14098 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
14099 | * config/i386/i386-expand.c | |
14100 | (ix86_expand_args_builtin): Handle new builtin types. | |
14101 | * config/i386/sse.md | |
14102 | (<code><mode>3<mask_name><round_saeonly_name>): Adjust to | |
14103 | support HF vector modes. | |
14104 | (*<code><mode>3<mask_name><round_saeonly_name>): Likewise. | |
14105 | (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): | |
14106 | Likewise. | |
14107 | (<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>): | |
14108 | Likewise. | |
14109 | * config/i386/subst.md (round_saeonly_mode512bit_condition): | |
14110 | Adjust for HF vector modes. | |
14111 | ||
14112 | 2021-09-10 Liu, Hongtao <hongtao.liu@intel.com> | |
14113 | ||
14114 | * config/i386/avx512fp16intrin.h (_mm_add_sh): New intrinsic. | |
14115 | (_mm_mask_add_sh): Likewise. | |
14116 | (_mm_maskz_add_sh): Likewise. | |
14117 | (_mm_sub_sh): Likewise. | |
14118 | (_mm_mask_sub_sh): Likewise. | |
14119 | (_mm_maskz_sub_sh): Likewise. | |
14120 | (_mm_mul_sh): Likewise. | |
14121 | (_mm_mask_mul_sh): Likewise. | |
14122 | (_mm_maskz_mul_sh): Likewise. | |
14123 | (_mm_div_sh): Likewise. | |
14124 | (_mm_mask_div_sh): Likewise. | |
14125 | (_mm_maskz_div_sh): Likewise. | |
14126 | (_mm_add_round_sh): Likewise. | |
14127 | (_mm_mask_add_round_sh): Likewise. | |
14128 | (_mm_maskz_add_round_sh): Likewise. | |
14129 | (_mm_sub_round_sh): Likewise. | |
14130 | (_mm_mask_sub_round_sh): Likewise. | |
14131 | (_mm_maskz_sub_round_sh): Likewise. | |
14132 | (_mm_mul_round_sh): Likewise. | |
14133 | (_mm_mask_mul_round_sh): Likewise. | |
14134 | (_mm_maskz_mul_round_sh): Likewise. | |
14135 | (_mm_div_round_sh): Likewise. | |
14136 | (_mm_mask_div_round_sh): Likewise. | |
14137 | (_mm_maskz_div_round_sh): Likewise. | |
14138 | * config/i386/i386-builtin-types.def: Add corresponding builtin types. | |
14139 | * config/i386/i386-builtin.def: Add corresponding new builtins. | |
14140 | * config/i386/i386-expand.c | |
14141 | (ix86_expand_round_builtin): Handle new builtins. | |
14142 | * config/i386/sse.md (VF_128): Change description. | |
14143 | (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>): | |
14144 | Adjust to support HF vector modes. | |
14145 | (<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>): | |
14146 | Likewise. | |
14147 | ||
14148 | 2021-09-10 H.J. Lu <hjl.tools@gmail.com> | |
14149 | ||
14150 | * config/i386/i386-expand.c | |
14151 | (ix86_avx256_split_vector_move_misalign): Handle V16HF mode. | |
14152 | * config/i386/i386.c | |
14153 | (ix86_preferred_simd_mode): Handle HF mode. | |
14154 | * config/i386/sse.md (V_256H): New mode iterator. | |
14155 | (avx_vextractf128<mode>): Use it. | |
14156 | (VEC_INIT_MODE): Align vector HFmode condition to vector | |
14157 | HImodes since there're no real HF instruction used. | |
14158 | (VEC_INIT_HALF_MODE): Ditto. | |
14159 | (VIHF): Ditto. | |
14160 | (VIHF_AVX512BW): Ditto. | |
14161 | (*vec_extracthf): Ditto. | |
14162 | (VEC_EXTRACT_MODE): Ditto. | |
14163 | ||
14164 | 2021-09-10 Richard Biener <rguenther@suse.de> | |
14165 | ||
14166 | PR target/102255 | |
14167 | * config/dbx.h: Remove. | |
14168 | * config/dbxcoff.h: Do not define PREFERRED_DEBUGGING_TYPE. | |
14169 | * config/lynx.h: Likewise. | |
14170 | ||
14171 | 2021-09-10 liuhongt <hongtao.liu@intel.com> | |
14172 | ||
14173 | * config/i386/i386-expand.c (ix86_expand_copysign): Expand | |
14174 | right into ANDNOT + AND + IOR, using paradoxical subregs. | |
14175 | (ix86_split_copysign_const): Remove. | |
14176 | (ix86_split_copysign_var): Ditto. | |
14177 | * config/i386/i386-protos.h (ix86_split_copysign_const): Dotto. | |
14178 | (ix86_split_copysign_var): Ditto. | |
14179 | * config/i386/i386.md (@copysign<mode>3_const): Ditto. | |
14180 | (@copysign<mode>3_var): Ditto. | |
14181 | ||
14182 | 2021-09-09 qing zhao <qing.zhao@oracle.com> | |
14183 | ||
14184 | * builtins.c (expand_builtin_memset): Make external visible. | |
14185 | * builtins.h (expand_builtin_memset): Declare extern. | |
14186 | * common.opt (ftrivial-auto-var-init=): New option. | |
14187 | * doc/extend.texi: Document the uninitialized attribute. | |
14188 | * doc/invoke.texi: Document -ftrivial-auto-var-init. | |
14189 | * flag-types.h (enum auto_init_type): New enumerated type | |
14190 | auto_init_type. | |
14191 | * gimple-fold.c (clear_padding_type): Add one new parameter. | |
14192 | (clear_padding_union): Likewise. | |
14193 | (clear_padding_emit_loop): Likewise. | |
14194 | (clear_type_padding_in_mask): Likewise. | |
14195 | (gimple_fold_builtin_clear_padding): Handle this new parameter. | |
14196 | * gimplify.c (gimple_add_init_for_auto_var): New function. | |
14197 | (gimple_add_padding_init_for_auto_var): New function. | |
14198 | (is_var_need_auto_init): New function. | |
14199 | (gimplify_decl_expr): Add initialization to automatic variables per | |
14200 | users' requests. | |
14201 | (gimplify_call_expr): Add one new parameter for call to | |
14202 | __builtin_clear_padding. | |
14203 | (gimplify_init_constructor): Add padding initialization in the end. | |
14204 | * internal-fn.c (INIT_PATTERN_VALUE): New macro. | |
14205 | (expand_DEFERRED_INIT): New function. | |
14206 | * internal-fn.def (DEFERRED_INIT): New internal function. | |
14207 | * tree-cfg.c (verify_gimple_call): Verify calls to .DEFERRED_INIT. | |
14208 | * tree-sra.c (generate_subtree_deferred_init): New function. | |
14209 | (scan_function): Avoid setting cannot_scalarize_away_bitmap for | |
14210 | calls to .DEFERRED_INIT. | |
14211 | (sra_modify_deferred_init): New function. | |
14212 | (sra_modify_function_body): Handle calls to DEFERRED_INIT specially. | |
14213 | * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. | |
14214 | * tree-ssa-uninit.c (warn_uninit): Handle calls to DEFERRED_INIT | |
14215 | specially. | |
14216 | (check_defs): Likewise. | |
14217 | (warn_uninitialized_vars): Likewise. | |
14218 | * tree-ssa.c (ssa_undefined_value_p): Likewise. | |
14219 | * tree.c (build_common_builtin_nodes): Build tree node for | |
14220 | BUILT_IN_CLEAR_PADDING when needed. | |
14221 | ||
14222 | 2021-09-09 Richard Biener <rguenther@suse.de> | |
14223 | ||
14224 | * tree-ssa-loop-im.c (fill_always_executed_in_1): Walk | |
14225 | into all subloops. | |
14226 | ||
14227 | 2021-09-09 Richard Biener <rguenther@suse.de> | |
14228 | ||
14229 | * tree-ssa-loop-im.c (fill_always_executed_in_1): Integrate | |
14230 | DOM walk from get_loop_body_in_dom_order using a worklist | |
14231 | approach. | |
14232 | ||
14233 | 2021-09-09 liuhongt <hongtao.liu@intel.com> | |
14234 | ||
14235 | * config.gcc: Add avx512fp16vlintrin.h. | |
14236 | * config/i386/avx512fp16intrin.h: (_mm512_add_ph): New intrinsic. | |
14237 | (_mm512_mask_add_ph): Likewise. | |
14238 | (_mm512_maskz_add_ph): Likewise. | |
14239 | (_mm512_sub_ph): Likewise. | |
14240 | (_mm512_mask_sub_ph): Likewise. | |
14241 | (_mm512_maskz_sub_ph): Likewise. | |
14242 | (_mm512_mul_ph): Likewise. | |
14243 | (_mm512_mask_mul_ph): Likewise. | |
14244 | (_mm512_maskz_mul_ph): Likewise. | |
14245 | (_mm512_div_ph): Likewise. | |
14246 | (_mm512_mask_div_ph): Likewise. | |
14247 | (_mm512_maskz_div_ph): Likewise. | |
14248 | (_mm512_add_round_ph): Likewise. | |
14249 | (_mm512_mask_add_round_ph): Likewise. | |
14250 | (_mm512_maskz_add_round_ph): Likewise. | |
14251 | (_mm512_sub_round_ph): Likewise. | |
14252 | (_mm512_mask_sub_round_ph): Likewise. | |
14253 | (_mm512_maskz_sub_round_ph): Likewise. | |
14254 | (_mm512_mul_round_ph): Likewise. | |
14255 | (_mm512_mask_mul_round_ph): Likewise. | |
14256 | (_mm512_maskz_mul_round_ph): Likewise. | |
14257 | (_mm512_div_round_ph): Likewise. | |
14258 | (_mm512_mask_div_round_ph): Likewise. | |
14259 | (_mm512_maskz_div_round_ph): Likewise. | |
14260 | * config/i386/avx512fp16vlintrin.h: New header. | |
14261 | * config/i386/i386-builtin-types.def (V16HF, V8HF, V32HF): | |
14262 | Add new builtin types. | |
14263 | * config/i386/i386-builtin.def: Add corresponding builtins. | |
14264 | * config/i386/i386-expand.c | |
14265 | (ix86_expand_args_builtin): Handle new builtin types. | |
14266 | (ix86_expand_round_builtin): Likewise. | |
14267 | * config/i386/immintrin.h: Include avx512fp16vlintrin.h | |
14268 | * config/i386/sse.md (VFH): New mode_iterator. | |
14269 | (VF2H): Likewise. | |
14270 | (avx512fmaskmode): Add HF vector modes. | |
14271 | (avx512fmaskhalfmode): Likewise. | |
14272 | (<plusminus_insn><mode>3<mask_name><round_name>): Adjust to for | |
14273 | HF vector modes. | |
14274 | (*<plusminus_insn><mode>3<mask_name><round_name>): Likewise. | |
14275 | (mul<mode>3<mask_name><round_name>): Likewise. | |
14276 | (*mul<mode>3<mask_name><round_name>): Likewise. | |
14277 | (div<mode>3): Likewise. | |
14278 | (<sse>_div<mode>3<mask_name><round_name>): Likewise. | |
14279 | * config/i386/subst.md (SUBST_V): Add HF vector modes. | |
14280 | (SUBST_A): Likewise. | |
14281 | (round_mode512bit_condition): Adjust for V32HFmode. | |
14282 | ||
14283 | 2021-09-09 liuhongt <hongtao.liu@intel.com> | |
14284 | ||
14285 | PR target/101059 | |
14286 | * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. | |
14287 | (reduc_plus_scal_v4sf): .. this, New define_expand. | |
14288 | (reduc_plus_scal_v2df): .. and this, New define_expand. | |
14289 | ||
14290 | 2021-09-09 liuhongt <hongtao.liu@intel.com> | |
14291 | ||
14292 | PR target/91103 | |
14293 | * config/i386/sse.md (*vec_extract<mode><ssescalarmodelower>_valign): | |
14294 | New define_insn. | |
14295 | ||
14296 | 2021-09-08 Jonathan Wakely <jwakely@redhat.com> | |
14297 | ||
14298 | PR c++/60318 | |
14299 | * doc/trouble.texi (Copy Assignment): Fix description of | |
14300 | behaviour and fix code in example. | |
14301 | ||
14302 | 2021-09-08 Segher Boessenkool <segher@kernel.crashing.org> | |
14303 | ||
14304 | PR target/102107 | |
14305 | * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use | |
14306 | r11 instead of r12 for restoring CR. | |
14307 | ||
14308 | 2021-09-08 Jakub Jelinek <jakub@redhat.com> | |
14309 | liuhongt <hongtao.liu@intel.com> | |
14310 | ||
14311 | PR target/89984 | |
14312 | * config/i386/i386.md (@xorsign<mode>3_1): Remove. | |
14313 | * config/i386/i386-expand.c (ix86_expand_xorsign): Expand right away | |
14314 | into AND with mask and XOR, using paradoxical subregs. | |
14315 | (ix86_split_xorsign): Remove. | |
14316 | * config/i386/i386-protos.h (ix86_split_xorsign): Remove. | |
14317 | ||
14318 | 2021-09-08 Di Zhao <dizhao@os.amperecomputing.com> | |
14319 | ||
14320 | * tree-ssa-sccvn.c (vn_nary_op_insert_into): fix result compare | |
14321 | ||
14322 | 2021-09-08 Jakub Jelinek <jakub@redhat.com> | |
14323 | ||
14324 | PR target/102224 | |
14325 | * config/i386/i386.md (xorsign<mode>3): If operands[1] is equal to | |
14326 | operands[2], emit abs<mode>2 instead. | |
14327 | (@xorsign<mode>3_1): Add early-clobbers for output operand, enable | |
14328 | first alternative even for avx, add another alternative with | |
14329 | =&Yv <- 0, Yv, Yvm constraints. | |
14330 | * config/i386/i386-expand.c (ix86_split_xorsign): If op0 is equal | |
14331 | to op1, emit vpandn instead. | |
14332 | ||
14333 | 2021-09-08 liuhongt <hongtao.liu@intel.com> | |
14334 | ||
14335 | * config/i386/avx512fp16intrin.h (_mm_set_ph): New intrinsic. | |
14336 | (_mm256_set_ph): Likewise. | |
14337 | (_mm512_set_ph): Likewise. | |
14338 | (_mm_setr_ph): Likewise. | |
14339 | (_mm256_setr_ph): Likewise. | |
14340 | (_mm512_setr_ph): Likewise. | |
14341 | (_mm_set1_ph): Likewise. | |
14342 | (_mm256_set1_ph): Likewise. | |
14343 | (_mm512_set1_ph): Likewise. | |
14344 | (_mm_setzero_ph): Likewise. | |
14345 | (_mm256_setzero_ph): Likewise. | |
14346 | (_mm512_setzero_ph): Likewise. | |
14347 | (_mm_set_sh): Likewise. | |
14348 | (_mm_load_sh): Likewise. | |
14349 | (_mm_store_sh): Likewise. | |
14350 | * config/i386/i386-builtin-types.def (V8HF): New type. | |
14351 | (DEF_FUNCTION_TYPE (V8HF, V8HI)): New builtin function type | |
14352 | * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): | |
14353 | Support vector HFmodes. | |
14354 | (ix86_expand_vector_init_one_nonzero): Likewise. | |
14355 | (ix86_expand_vector_init_one_var): Likewise. | |
14356 | (ix86_expand_vector_init_interleave): Likewise. | |
14357 | (ix86_expand_vector_init_general): Likewise. | |
14358 | (ix86_expand_vector_set): Likewise. | |
14359 | (ix86_expand_vector_extract): Likewise. | |
14360 | (ix86_expand_vector_init_concat): Likewise. | |
14361 | (ix86_expand_sse_movcc): Handle vector HFmodes. | |
14362 | (ix86_expand_vector_set_var): Ditto. | |
14363 | * config/i386/i386-modes.def: Add HF vector modes in comment. | |
14364 | * config/i386/i386.c (classify_argument): Add HF vector modes. | |
14365 | (ix86_hard_regno_mode_ok): Allow HF vector modes for AVX512FP16. | |
14366 | (ix86_vector_mode_supported_p): Likewise. | |
14367 | (ix86_set_reg_reg_cost): Handle vector HFmode. | |
14368 | (ix86_get_ssemov): Handle vector HFmode. | |
14369 | (function_arg_advance_64): Pass unamed V16HFmode and V32HFmode | |
14370 | by stack. | |
14371 | (function_arg_advance_32): Pass V8HF/V16HF/V32HF by sse reg for 32bit | |
14372 | mode. | |
14373 | (function_arg_advance_32): Ditto. | |
14374 | * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): New. | |
14375 | (VALID_AVX256_REG_OR_OI_MODE): Rename to .. | |
14376 | (VALID_AVX256_REG_OR_OI_VHF_MODE): .. this, and add V16HF. | |
14377 | (VALID_SSE2_REG_VHF_MODE): New. | |
14378 | (VALID_AVX512VL_128_REG_MODE): Add V8HF and TImode. | |
14379 | (SSE_REG_MODE_P): Add vector HFmode. | |
14380 | * config/i386/i386.md (mode): Add HF vector modes. | |
14381 | (MODE_SIZE): Likewise. | |
14382 | (ssemodesuffix): Add ph suffix for HF vector modes. | |
14383 | * config/i386/sse.md (VFH_128): New mode iterator. | |
14384 | (VMOVE): Adjust for HF vector modes. | |
14385 | (V): Likewise. | |
14386 | (V_256_512): Likewise. | |
14387 | (avx512): Likewise. | |
14388 | (avx512fmaskmode): Likewise. | |
14389 | (shuffletype): Likewise. | |
14390 | (sseinsnmode): Likewise. | |
14391 | (ssedoublevecmode): Likewise. | |
14392 | (ssehalfvecmode): Likewise. | |
14393 | (ssehalfvecmodelower): Likewise. | |
14394 | (ssePScmode): Likewise. | |
14395 | (ssescalarmode): Likewise. | |
14396 | (ssescalarmodelower): Likewise. | |
14397 | (sseintprefix): Likewise. | |
14398 | (i128): Likewise. | |
14399 | (bcstscalarsuff): Likewise. | |
14400 | (xtg_mode): Likewise. | |
14401 | (VI12HF_AVX512VL): New mode_iterator. | |
14402 | (VF_AVX512FP16): Likewise. | |
14403 | (VIHF): Likewise. | |
14404 | (VIHF_256): Likewise. | |
14405 | (VIHF_AVX512BW): Likewise. | |
14406 | (V16_256): Likewise. | |
14407 | (V32_512): Likewise. | |
14408 | (sseintmodesuffix): New mode_attr. | |
14409 | (sse): Add scalar and vector HFmodes. | |
14410 | (ssescalarmode): Add vector HFmode mapping. | |
14411 | (ssescalarmodesuffix): Add sh suffix for HFmode. | |
14412 | (*<sse>_vm<insn><mode>3): Use VFH_128. | |
14413 | (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. | |
14414 | (*ieee_<ieee_maxmin><mode>3): Likewise. | |
14415 | (<avx512>_blendm<mode>): New define_insn. | |
14416 | (vec_setv8hf): New define_expand. | |
14417 | (vec_set<mode>_0): New define_insn for HF vector set. | |
14418 | (*avx512fp16_movsh): Likewise. | |
14419 | (avx512fp16_movsh): Likewise. | |
14420 | (vec_extract_lo_v32hi): Rename to ... | |
14421 | (vec_extract_lo_<mode>): ... this, and adjust to allow HF | |
14422 | vector modes. | |
14423 | (vec_extract_hi_v32hi): Likewise. | |
14424 | (vec_extract_hi_<mode>): Likewise. | |
14425 | (vec_extract_lo_v16hi): Likewise. | |
14426 | (vec_extract_lo_<mode>): Likewise. | |
14427 | (vec_extract_hi_v16hi): Likewise. | |
14428 | (vec_extract_hi_<mode>): Likewise. | |
14429 | (vec_set_hi_v16hi): Likewise. | |
14430 | (vec_set_hi_<mode>): Likewise. | |
14431 | (vec_set_lo_v16hi): Likewise. | |
14432 | (vec_set_lo_<mode>): Likewise. | |
14433 | (*vec_extract<mode>_0): New define_insn_and_split for HF | |
14434 | vector extract. | |
14435 | (*vec_extracthf): New define_insn. | |
14436 | (VEC_EXTRACT_MODE): Add HF vector modes. | |
14437 | (PINSR_MODE): Add V8HF. | |
14438 | (sse2p4_1): Likewise. | |
14439 | (pinsr_evex_isa): Likewise. | |
14440 | (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support | |
14441 | insert for V8HFmode. | |
14442 | (pbroadcast_evex_isa): Add HF vector modes. | |
14443 | (AVX2_VEC_DUP_MODE): Likewise. | |
14444 | (VEC_INIT_MODE): Likewise. | |
14445 | (VEC_INIT_HALF_MODE): Likewise. | |
14446 | (avx2_pbroadcast<mode>): Adjust to support HF vector mode | |
14447 | broadcast. | |
14448 | (avx2_pbroadcast<mode>_1): Likewise. | |
14449 | (<avx512>_vec_dup<mode>_1): Likewise. | |
14450 | (<avx512>_vec_dup<mode><mask_name>): Likewise. | |
14451 | (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): | |
14452 | Likewise. | |
14453 | ||
14454 | 2021-09-08 Guo, Xuepeng <xuepeng.guo@intel.com> | |
14455 | H.J. Lu <hongjiu.lu@intel.com> | |
14456 | Liu Hongtao <hongtao.liu@intel.com> | |
14457 | Wang Hongyu <hongyu.wang@intel.com> | |
14458 | Xu Dianhong <dianhong.xu@intel.com> | |
14459 | ||
14460 | * common/config/i386/cpuinfo.h (get_available_features): | |
14461 | Detect FEATURE_AVX512FP16. | |
14462 | * common/config/i386/i386-common.c | |
14463 | (OPTION_MASK_ISA_AVX512FP16_SET, | |
14464 | OPTION_MASK_ISA_AVX512FP16_UNSET, | |
14465 | OPTION_MASK_ISA2_AVX512FP16_SET, | |
14466 | OPTION_MASK_ISA2_AVX512FP16_UNSET): New. | |
14467 | (OPTION_MASK_ISA2_AVX512BW_UNSET, | |
14468 | OPTION_MASK_ISA2_AVX512BF16_UNSET): Add AVX512FP16. | |
14469 | (ix86_handle_option): Handle -mavx512fp16. | |
14470 | * common/config/i386/i386-cpuinfo.h (enum processor_features): | |
14471 | Add FEATURE_AVX512FP16. | |
14472 | * common/config/i386/i386-isas.h: Add entry for AVX512FP16. | |
14473 | * config.gcc: Add avx512fp16intrin.h. | |
14474 | * config/i386/avx512fp16intrin.h: New intrinsic header. | |
14475 | * config/i386/cpuid.h: Add bit_AVX512FP16. | |
14476 | * config/i386/i386-builtin-types.def: (FLOAT16): New primitive type. | |
14477 | * config/i386/i386-builtins.c: Support _Float16 type for i386 | |
14478 | backend. | |
14479 | (ix86_register_float16_builtin_type): New function. | |
14480 | (ix86_float16_type_node): New. | |
14481 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
14482 | __AVX512FP16__. | |
14483 | * config/i386/i386-expand.c (ix86_expand_branch): Support | |
14484 | HFmode. | |
14485 | (ix86_prepare_fp_compare_args): Adjust TARGET_SSE_MATH && | |
14486 | SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. | |
14487 | (ix86_expand_fp_movcc): Ditto. | |
14488 | * config/i386/i386-isa.def: Add PTA define for AVX512FP16. | |
14489 | * config/i386/i386-options.c (isa2_opts): Add -mavx512fp16. | |
14490 | (ix86_valid_target_attribute_inner_p): Add avx512fp16 attribute. | |
14491 | * config/i386/i386.c (ix86_get_ssemov): Use | |
14492 | vmovdqu16/vmovw/vmovsh for HFmode/HImode scalar or vector. | |
14493 | (ix86_get_excess_precision): Use | |
14494 | FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when TARGET_AVX512FP16 | |
14495 | existed. | |
14496 | (sse_store_index): Use SFmode cost for HFmode cost. | |
14497 | (inline_memory_move_cost): Add HFmode, and perfer SSE cost over | |
14498 | GPR cost for HFmode. | |
14499 | (ix86_hard_regno_mode_ok): Allow HImode in sse register. | |
14500 | (ix86_mangle_type): Add manlging for _Float16 type. | |
14501 | (inline_secondary_memory_needed): No memory is needed for | |
14502 | 16bit movement between gpr and sse reg under | |
14503 | TARGET_AVX512FP16. | |
14504 | (ix86_multiplication_cost): Adjust TARGET_SSE_MATH && | |
14505 | SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. | |
14506 | (ix86_division_cost): Ditto. | |
14507 | (ix86_rtx_costs): Ditto. | |
14508 | (ix86_add_stmt_cost): Ditto. | |
14509 | (ix86_optab_supported_p): Ditto. | |
14510 | * config/i386/i386.h (VALID_AVX512F_SCALAR_MODE): Add HFmode. | |
14511 | (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Add HFmode. | |
14512 | (PTA_SAPPHIRERAPIDS): Add PTA_AVX512FP16. | |
14513 | * config/i386/i386.md (mode): Add HFmode. | |
14514 | (MODE_SIZE): Add HFmode. | |
14515 | (isa): Add avx512fp16. | |
14516 | (enabled): Handle avx512fp16. | |
14517 | (ssemodesuffix): Add sh suffix for HFmode. | |
14518 | (comm): Add mult, div. | |
14519 | (plusminusmultdiv): New code iterator. | |
14520 | (insn): Add mult, div. | |
14521 | (*movhf_internal): Adjust for avx512fp16 instruction. | |
14522 | (*movhi_internal): Ditto. | |
14523 | (*cmpi<unord>hf): New define_insn for HFmode. | |
14524 | (*ieee_s<ieee_maxmin>hf3): Likewise. | |
14525 | (extendhf<mode>2): Likewise. | |
14526 | (trunc<mode>hf2): Likewise. | |
14527 | (float<floatunssuffix><mode>hf2): Likewise. | |
14528 | (*<insn>hf): Likewise. | |
14529 | (cbranchhf4): New expander. | |
14530 | (movhfcc): Likewise. | |
14531 | (<insn>hf3): Likewise. | |
14532 | (mulhf3): Likewise. | |
14533 | (divhf3): Likewise. | |
14534 | * config/i386/i386.opt: Add mavx512fp16. | |
14535 | * config/i386/immintrin.h: Include avx512fp16intrin.h. | |
14536 | * doc/invoke.texi: Add mavx512fp16. | |
14537 | * doc/extend.texi: Add avx512fp16 Usage Notes. | |
14538 | ||
14539 | 2021-09-08 liuhongt <hongtao.liu@intel.com> | |
14540 | ||
14541 | * common.opt: Support -fexcess-precision=16. | |
14542 | * config/aarch64/aarch64.c (aarch64_excess_precision): Return | |
14543 | FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when | |
14544 | EXCESS_PRECISION_TYPE_FLOAT16. | |
14545 | * config/arm/arm.c (arm_excess_precision): Ditto. | |
14546 | * config/i386/i386.c (ix86_get_excess_precision): Ditto. | |
14547 | * config/m68k/m68k.c (m68k_excess_precision): Issue an error | |
14548 | when EXCESS_PRECISION_TYPE_FLOAT16. | |
14549 | * config/s390/s390.c (s390_excess_precision): Ditto. | |
14550 | * coretypes.h (enum excess_precision_type): Add | |
14551 | EXCESS_PRECISION_TYPE_FLOAT16. | |
14552 | * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Update documents. | |
14553 | * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): Ditto. | |
14554 | * doc/extend.texi (Half-Precision): Document | |
14555 | -fexcess-precision=16. | |
14556 | * flag-types.h (enum excess_precision): Add | |
14557 | EXCESS_PRECISION_FLOAT16. | |
14558 | * target.def (excess_precision): Update document. | |
14559 | * tree.c (excess_precision_type): Set excess_precision_type to | |
14560 | EXCESS_PRECISION_FLOAT16 when -fexcess-precision=16. | |
14561 | ||
14562 | 2021-09-08 liuhongt <hongtao.liu@intel.com> | |
14563 | ||
14564 | * doc/extend.texi: (@node Floating Types): Adjust the wording. | |
14565 | (@node Half-Precision): Ditto. | |
14566 | ||
14567 | 2021-09-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
14568 | ||
14569 | PR target/102115 | |
14570 | * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Add | |
14571 | 'CONST_INT_P (src)' to the condition of the block that tries to | |
14572 | eliminate literal when loading integer contant. | |
14573 | ||
14574 | 2021-09-07 David Faust <david.faust@oracle.com> | |
14575 | ||
14576 | * doc/extend.texi (BPF Type Attributes) New node. | |
14577 | Document new preserve_access_index attribute. | |
14578 | Document new preserve_access_index builtin. | |
14579 | * doc/invoke.texi: Document -mco-re and -mno-co-re options. | |
14580 | ||
14581 | 2021-09-07 David Faust <david.faust@oracle.com> | |
14582 | ||
14583 | * config/bpf/bpf.c: Adjust includes. | |
14584 | (bpf_handle_preserve_access_index_attribute): New function. | |
14585 | (bpf_attribute_table): Use it here. | |
14586 | (bpf_builtins): Add BPF_BUILTIN_PRESERVE_ACCESS_INDEX. | |
14587 | (bpf_option_override): Handle "-mco-re" option. | |
14588 | (bpf_asm_init_sections): New. | |
14589 | (TARGET_ASM_INIT_SECTIONS): Redefine. | |
14590 | (bpf_file_end): New. | |
14591 | (TARGET_ASM_FILE_END): Redefine. | |
14592 | (bpf_init_builtins): Add "__builtin_preserve_access_index". | |
14593 | (bpf_core_compute, bpf_core_get_index): New. | |
14594 | (is_attr_preserve_access): New. | |
14595 | (bpf_expand_builtin): Handle new builtins. | |
14596 | (bpf_core_newdecl, bpf_core_is_maybe_aggregate_access): New. | |
14597 | (bpf_core_walk): New. | |
14598 | (bpf_resolve_overloaded_builtin): New. | |
14599 | (TARGET_RESOLVE_OVERLOADED_BUILTIN): Redefine. | |
14600 | (handle_attr): New. | |
14601 | (pass_bpf_core_attr): New RTL pass. | |
14602 | * config/bpf/bpf-passes.def: New file. | |
14603 | * config/bpf/bpf-protos.h (make_pass_bpf_core_attr): New. | |
14604 | * config/bpf/coreout.c: New file. | |
14605 | * config/bpf/coreout.h: Likewise. | |
14606 | * config/bpf/t-bpf (TM_H): Add $(srcdir)/config/bpf/coreout.h. | |
14607 | (coreout.o): New rule. | |
14608 | (PASSES_EXTRA): Add $(srcdir)/config/bpf/bpf-passes.def. | |
14609 | * config.gcc (bpf): Add coreout.h to extra_headers. | |
14610 | Add coreout.o to extra_objs. | |
14611 | Add $(srcdir)/config/bpf/coreout.c to target_gtfiles. | |
14612 | ||
14613 | 2021-09-07 David Faust <david.faust@oracle.com> | |
14614 | ||
14615 | * btfout.c (get_btf_id): Function is no longer static. | |
14616 | * ctfc.h: Expose it here. | |
14617 | ||
14618 | 2021-09-07 David Faust <david.faust@oracle.com> | |
14619 | ||
14620 | * ctfc.c (ctf_lookup_tree_type): New function. | |
14621 | * ctfc.h: Likewise. | |
14622 | ||
14623 | 2021-09-07 David Faust <david.faust@oracle.com> | |
14624 | ||
14625 | * ctfc.c (ctf_dtd_lookup): Function is no longer static. | |
14626 | * ctfc.h: Analogous change. | |
14627 | ||
14628 | 2021-09-07 David Faust <david.faust@oracle.com> | |
14629 | ||
14630 | * dwarf2out.c (lookup_type_die): Function is no longer static. | |
14631 | * dwarf2out.h: Expose it here. | |
14632 | ||
14633 | 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> | |
14634 | ||
14635 | * dwarf2ctf.c (ctf_debug_finalize): Make it static. | |
14636 | (ctf_debug_early_finish): New definition. | |
14637 | (ctf_debug_finish): Likewise. | |
14638 | * dwarf2ctf.h (ctf_debug_finalize): Remove declaration. | |
14639 | (ctf_debug_early_finish): New declaration. | |
14640 | (ctf_debug_finish): Likewise. | |
14641 | * dwarf2out.c (dwarf2out_finish): Invoke ctf_debug_finish. | |
14642 | (dwarf2out_early_finish): Invoke ctf_debug_early_finish. | |
14643 | ||
14644 | 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> | |
14645 | ||
14646 | * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO | |
14647 | support when compiling for CO-RE. | |
14648 | * config/bpf/bpf.opt: Add new command line option -mco-re. | |
14649 | ||
14650 | 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> | |
14651 | ||
14652 | * flag-types.h (enum debug_info_type): Add new enum | |
14653 | DINFO_TYPE_BTF_WITH_CORE. | |
14654 | (BTF_WITH_CORE_DEBUG): New bitmask. | |
14655 | * flags.h (btf_with_core_debuginfo_p): New declaration. | |
14656 | * opts.c (btf_with_core_debuginfo_p): New definition. | |
14657 | ||
14658 | 2021-09-07 Jason Merrill <jason@redhat.com> | |
14659 | ||
14660 | * tree.h (error_operand_p): Change to inline function. | |
14661 | ||
14662 | 2021-09-07 Aldy Hernandez <aldyh@redhat.com> | |
14663 | ||
14664 | * tree-ssa-threadedge.c (forwarder_block_p): Rename to... | |
14665 | (empty_block_with_phis_p): ...this. | |
14666 | (potentially_threadable_block): Same. | |
14667 | (jump_threader::thread_through_normal_block): Same. | |
14668 | ||
14669 | 2021-09-07 Eric Botcazou <ebotcazou@adacore.com> | |
14670 | ||
14671 | PR debug/101947 | |
14672 | * dwarf2out.c (mark_base_types): New overloaded function. | |
14673 | (dwarf2out_early_finish): Invoke it on the COMDAT type list as well | |
14674 | as the compilation unit, and call move_marked_base_types afterward. | |
14675 | ||
14676 | 2021-09-07 H.J. Lu <hjl.tools@gmail.com> | |
14677 | ||
14678 | PR target/85819 | |
14679 | * config/i386/i386-expand.c (ix86_expand_convert_uns_sisf_sse): | |
14680 | Enable FMA. | |
14681 | (ix86_expand_vector_convert_uns_vsivsf): Likewise. | |
14682 | ||
14683 | 2021-09-07 Richard Biener <rguenther@suse.de> | |
14684 | ||
14685 | PR tree-optimization/102226 | |
14686 | * tree-vect-loop.c (vect_transform_cycle_phi): Record | |
14687 | the converted value for the epilogue PHI use. | |
14688 | ||
14689 | 2021-09-07 Martin Liska <mliska@suse.cz> | |
14690 | ||
14691 | PR gcov-profile/80223 | |
14692 | * ipa-inline.c (can_inline_edge_p): Similarly to sanitizer | |
14693 | options, do not inline when no_profile_instrument_function | |
14694 | attributes are different in early inliner. It's fine to inline | |
14695 | it after PGO instrumentation. | |
14696 | ||
14697 | 2021-09-07 Richard Biener <rguenther@suse.de> | |
14698 | ||
14699 | PR tree-optimization/101555 | |
14700 | * tree-ssa-pre.c (translate_vuse_through_block): Do not | |
14701 | perform an alias walk to determine the validity of the | |
14702 | mem at the start of the block which is already guaranteed | |
14703 | by means of prune_clobbered_mems. | |
14704 | (phi_translate_1): Pass edge to translate_vuse_through_block. | |
14705 | ||
14706 | 2021-09-07 Xionghu Luo <luoxhu@linux.ibm.com> | |
14707 | ||
14708 | PR target/97142 | |
14709 | * config/rs6000/rs6000.md (fmod<mode>3): New define_expand. | |
14710 | (remainder<mode>3): Likewise. | |
14711 | ||
14712 | 2021-09-07 YunQiang Su <yunqiang.su@cipunited.com> | |
14713 | ||
14714 | * config/mips/mips.c (mips_file_start): add .module for | |
14715 | arch and ase. | |
14716 | ||
14717 | 2021-09-06 Roger Sayle <roger@nextmovesoftware.com> | |
14718 | ||
14719 | * wide-int.cc (wi::clz): Reorder tests to ensure the result | |
14720 | is zero for all negative values. | |
14721 | ||
14722 | 2021-09-06 Tobias Burnus <tobias@codesourcery.com> | |
14723 | ||
14724 | * doc/invoke.texi (-foffload-options): Fix @opindex. | |
14725 | ||
14726 | 2021-09-06 H.J. Lu <hjl.tools@gmail.com> | |
14727 | ||
14728 | PR target/89984 | |
14729 | * config/i386/i386-expand.c (ix86_split_xorsign): Use operands[2]. | |
14730 | * config/i386/i386.md (@xorsign<mode>3_1): Add non-destructive | |
14731 | source alternative for AVX. | |
14732 | ||
14733 | 2021-09-06 liuhongt <hongtao.liu@intel.com> | |
14734 | ||
14735 | PR middle-end/102182 | |
14736 | * optabs.c (expand_fix): Add from1 to avoid from being | |
14737 | overwritten. | |
14738 | ||
14739 | 2021-09-06 Eric Botcazou <ebotcazou@adacore.com> | |
14740 | ||
14741 | * dwarf2out.c (modified_type_die): Deal with all array types earlier | |
14742 | and use local variable consistently throughout the function. | |
14743 | ||
14744 | 2021-09-06 Jakub Jelinek <jakub@redhat.com> | |
14745 | ||
14746 | PR tree-optimization/102207 | |
14747 | * match.pd: Don't demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they | |
14748 | were promoted from signed to wider unsigned type. | |
14749 | ||
14750 | 2021-09-06 Andrew Pinski <apinski@marvell.com> | |
14751 | ||
14752 | PR tree-optimization/63184 | |
14753 | * match.pd: Add simplification of pointer_diff of two pointer_plus | |
14754 | with addr_expr in the first operand of each pointer_plus. | |
14755 | Add simplificatoin of ne/eq of two pointer_plus with addr_expr | |
14756 | in the first operand of each pointer_plus. | |
14757 | ||
14758 | 2021-09-06 Richard Biener <rguenther@suse.de> | |
14759 | ||
14760 | PR tree-optimization/102176 | |
14761 | * tree-vect-slp.c (vect_slp_gather_vectorized_scalar_stmts): | |
14762 | New function. | |
14763 | (vect_bb_slp_scalar_cost): Use the computed set of | |
14764 | vectorized scalar stmts instead of relying on the out-of-date | |
14765 | and not accurate PURE_SLP_STMT. | |
14766 | (vect_bb_vectorization_profitable_p): Compute the set | |
14767 | of vectorized scalar stmts. | |
14768 | ||
14769 | 2021-09-05 Aldy Hernandez <aldyh@redhat.com> | |
14770 | ||
14771 | * gimple-range-path.cc (path_range_query::range_of_stmt): Remove | |
14772 | GIMPLE_COND special casing. | |
14773 | (path_range_query::range_defined_in_block): Use range_of_stmt | |
14774 | instead of calling fold_range directly. | |
14775 | ||
14776 | 2021-09-05 Aldy Hernandez <aldyh@redhat.com> | |
14777 | ||
14778 | * gimple-range-path.cc (path_range_query::range_of_expr): Set | |
14779 | m_undefined_path when appropriate. | |
14780 | (path_range_query::internal_range_of_expr): Copy from range_of_expr. | |
14781 | (path_range_query::unreachable_path_p): New. | |
14782 | (path_range_query::precompute_ranges): Set m_undefined_path. | |
14783 | * gimple-range-path.h (path_range_query::unreachable_path_p): New. | |
14784 | (path_range_query::internal_range_of_expr): New. | |
14785 | * tree-ssa-threadbackward.c (back_threader::find_taken_edge_cond): | |
14786 | Use unreachable_path_p. | |
14787 | ||
14788 | 2021-09-05 Aldy Hernandez <aldyh@redhat.com> | |
14789 | ||
14790 | * tree-ssa-threadbackward.c (back_threader::maybe_register_path): | |
14791 | Remove argument and call find_taken_edge. | |
14792 | (back_threader::resolve_phi): Do not calculate taken edge before | |
14793 | calling maybe_register_path. | |
14794 | (back_threader::find_paths_to_names): Same. | |
14795 | ||
14796 | 2021-09-05 Jeff Law <jlaw@localhost.localdomain> | |
14797 | ||
14798 | * config/h8300/h8300.md (QHSI2 mode iterator): New mode iterator. | |
14799 | * config/h8300/testcompare.md (store_c): Update name, use new | |
14800 | QHSI2 iterator. | |
14801 | (store_neg_c, store_shifted_c): New patterns. | |
14802 | ||
14803 | 2021-09-03 Segher Boessenkool <segher@kernel.crashing.org> | |
14804 | ||
14805 | PR target/102107 | |
14806 | * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11 | |
14807 | instead of r12 for CR save, in all cases. | |
14808 | ||
14809 | 2021-09-03 Andrew Pinski <apinski@marvell.com> | |
14810 | ||
14811 | * config/aarch64/aarch64-sve-builtins.cc (register_vector_type): | |
14812 | Handle error_mark_node as the type of the type_decl. | |
14813 | ||
14814 | 2021-09-03 Andrew Pinski <apinski@marvell.com> | |
14815 | ||
14816 | * config/aarch64/aarch64-builtins.c (struct aarch64_simd_type_info): | |
14817 | Mark with GTY. | |
14818 | (aarch64_simd_types): Likewise. | |
14819 | (aarch64_simd_intOI_type_node): Likewise. | |
14820 | (aarch64_simd_intCI_type_node): Likewise. | |
14821 | (aarch64_simd_intXI_type_node): Likewise. | |
14822 | * config/aarch64/aarch64.h (aarch64_fp16_type_node): Likewise. | |
14823 | (aarch64_fp16_ptr_type_node): Likewise. | |
14824 | (aarch64_bf16_type_node): Likewise. | |
14825 | (aarch64_bf16_ptr_type_node): Likewise. | |
14826 | ||
14827 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14828 | ||
14829 | * range-op.cc (operator_minus::op1_op2_relation_effect): Abstract | |
14830 | out to... | |
14831 | (minus_op1_op2_relation_effect): ...here. | |
14832 | (class operator_pointer_diff): New. | |
14833 | (operator_pointer_diff::op1_op2_relation_effect): Call | |
14834 | minus_op1_op2_relation_effect. | |
14835 | (integral_table::integral_table): Add entry for POINTER_DIFF_EXPR. | |
14836 | ||
14837 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14838 | ||
14839 | * tree-ssa-threadbackward.c (back_threader::thread_through_all_blocks): | |
14840 | Add may_peel_loop_headers. | |
14841 | (back_threader_registry::thread_through_all_blocks): Same. | |
14842 | (try_thread_blocks): Pass may_peel_loop_headers argument. | |
14843 | (pass_early_thread_jumps::execute): Same. | |
14844 | ||
14845 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14846 | ||
14847 | * tree-ssa-threadedge.c (has_phis_p): New. | |
14848 | (forwarder_block_p): New. | |
14849 | (potentially_threadable_block): Call forwarder_block_p. | |
14850 | (jump_threader::thread_around_empty_blocks): Call has_phis_p. | |
14851 | (jump_threader::thread_through_normal_block): Call | |
14852 | forwarder_block_p. | |
14853 | ||
14854 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14855 | ||
14856 | * tree-ssa-threadbackward.c (back_threader::dump): New. | |
14857 | (back_threader::debug): New. | |
14858 | (back_threader_profitability::profitable_path_p): Dump blocks | |
14859 | even if we are bailing early. | |
14860 | ||
14861 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14862 | ||
14863 | * tree-ssa-threadupdate.c (cancel_thread): New. | |
14864 | (jump_thread_path_registry::thread_block_1): Use cancel_thread. | |
14865 | (jump_thread_path_registry::mark_threaded_blocks): Same. | |
14866 | (jump_thread_path_registry::register_jump_thread): Same. | |
14867 | ||
14868 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14869 | ||
14870 | * tree-ssa-threadedge.c (jt_state::push): Only call methods for | |
14871 | which objects are available. | |
14872 | (jt_state::pop): Same. | |
14873 | (jt_state::register_equiv): Same. | |
14874 | (jt_state::register_equivs_on_edge): Same. | |
14875 | ||
14876 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14877 | ||
14878 | * tree-ssa-threadedge.c (jump_threader::thread_across_edge): | |
14879 | Move pop until after a thread is registered. | |
14880 | ||
14881 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14882 | ||
14883 | * tree-ssa-threadupdate.c (debug): New. | |
14884 | ||
14885 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14886 | ||
14887 | * gimple-range-trace.cc (push_dump_file::push_dump_file): New. | |
14888 | (push_dump_file::~push_dump_file): New. | |
14889 | (dump_ranger): Change dump_file temporarily while dumping | |
14890 | ranger. | |
14891 | * gimple-range-trace.h (class push_dump_file): New. | |
14892 | ||
14893 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14894 | ||
14895 | * gimple-range-trace.cc (debug_seed_ranger): Remove static. | |
14896 | (dump_ranger): Dump function name. | |
14897 | ||
14898 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14899 | ||
14900 | * gimple-range-path.cc (path_range_query::range_defined_in_block): | |
14901 | Adjust for non-null. | |
14902 | (path_range_query::adjust_for_non_null_uses): New. | |
14903 | (path_range_query::precompute_ranges): Call | |
14904 | adjust_for_non_null_uses. | |
14905 | * gimple-range-path.h: Add m_non_null and | |
14906 | adjust_for_non_null_uses. | |
14907 | ||
14908 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14909 | ||
14910 | * gimple-range-path.cc (path_range_query::dump): Dump path | |
14911 | length. | |
14912 | (path_range_query::precompute_ranges): Dump entire path. | |
14913 | ||
14914 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14915 | ||
14916 | * value-relation.cc (relation_oracle::debug): New. | |
14917 | * value-relation.h (relation_oracle::debug): New. | |
14918 | ||
14919 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14920 | ||
14921 | * tree-ssa-loop-ch.c: Remove unnecessary include file. | |
14922 | ||
14923 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14924 | ||
14925 | * gimple-range-fold.cc (fold_using_range::postfold_gcond_edges): | |
14926 | Skip statements with no defining BB. | |
14927 | * gimple-range-path.cc (path_range_query::range_defined_in_block): | |
14928 | Do not get confused by statements with no defining BB. | |
14929 | ||
14930 | 2021-09-03 Aldy Hernandez <aldyh@redhat.com> | |
14931 | ||
14932 | * gimple-range-fold.cc (adjust_imagpart_expr): Move from | |
14933 | gimple_range_adjustment. Add support for constants. | |
14934 | (adjust_realpart_expr): New. | |
14935 | (gimple_range_adjustment): Move IMAGPART_EXPR code to | |
14936 | adjust_imagpart_expr. | |
14937 | * range-op.cc (integral_table::integral_table): Add entry for | |
14938 | REALPART_CST. | |
14939 | ||
14940 | 2021-09-03 Jakub Jelinek <jakub@redhat.com> | |
14941 | ||
14942 | * omp-expand.c (expand_omp_atomic_pipeline): Use | |
14943 | IFN_ATOMIC_COMPARE_EXCHANGE instead of | |
14944 | BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_? so that memory order | |
14945 | can be provided. | |
14946 | ||
14947 | 2021-09-03 Jakub Jelinek <jakub@redhat.com> | |
14948 | ||
14949 | PR target/102024 | |
14950 | * tree.h (DECL_FIELD_ABI_IGNORED): Changed into rvalue only macro | |
14951 | that is false if DECL_BIT_FIELD. | |
14952 | (SET_DECL_FIELD_ABI_IGNORED, DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD, | |
14953 | SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD): Define. | |
14954 | * tree-streamer-out.c (pack_ts_decl_common_value_fields): For | |
14955 | DECL_BIT_FIELD stream DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead | |
14956 | of DECL_FIELD_ABI_IGNORED. | |
14957 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use | |
14958 | SET_DECL_FIELD_ABI_IGNORED instead of writing to | |
14959 | DECL_FIELD_ABI_IGNORED and for DECL_BIT_FIELD use | |
14960 | SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead. | |
14961 | * lto-streamer-out.c (hash_tree): For DECL_BIT_FIELD hash | |
14962 | DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead of DECL_FIELD_ABI_IGNORED. | |
14963 | ||
14964 | 2021-09-03 liuhongt <hongtao.liu@intel.com> | |
14965 | ||
14966 | PR target/102166 | |
14967 | * config/i386/amxbf16intrin.h : Remove macro check for __AMX_BF16__. | |
14968 | * config/i386/amxint8intrin.h : Remove macro check for __AMX_INT8__. | |
14969 | * config/i386/amxtileintrin.h : Remove macro check for __AMX_TILE__. | |
14970 | ||
14971 | 2021-09-02 Martin Sebor <msebor@redhat.com> | |
14972 | ||
14973 | PR tree-optimization/17506 | |
14974 | PR testsuite/37182 | |
14975 | * tree-ssa-uninit.c (warn_uninit): Remove conditional guarding note. | |
14976 | ||
14977 | 2021-09-02 Richard Biener <rguenther@suse.de> | |
14978 | ||
14979 | * tree-ssa-loop-im.c (fill_always_executed_in_1): Refine | |
14980 | fix for PR78185 and continue processing when leaving | |
14981 | finite inner loops. | |
14982 | ||
14983 | 2021-09-02 Jakub Jelinek <jakub@redhat.com> | |
14984 | ||
14985 | PR tree-optimization/99591 | |
14986 | * match.pd: Demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they | |
14987 | were promoted. | |
14988 | ||
14989 | 2021-09-02 Richard Biener <rguenther@suse.de> | |
14990 | ||
14991 | Revert: | |
14992 | 2021-09-02 Richard Biener <rguenther@suse.de> | |
14993 | ||
14994 | PR tree-optimization/102155 | |
14995 | * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate | |
14996 | over a part of the RPO array and do not recurse here. | |
14997 | Dump blocks marked as always executed. | |
14998 | (fill_always_executed_in): Walk over the RPO array and | |
14999 | process loops whose header we run into. | |
15000 | (loop_invariant_motion_in_fun): Compute the first RPO | |
15001 | using rev_post_order_and_mark_dfs_back_seme in iteration | |
15002 | order and pass that to fill_always_executed_in. | |
15003 | ||
15004 | 2021-09-02 liuhongt <hongtao.liu@intel.com> | |
15005 | ||
15006 | * config/i386/i386-modes.def (FLOAT_MODE): Define ieee HFmode. | |
15007 | * config/i386/i386.c (enum x86_64_reg_class): Add | |
15008 | X86_64_SSEHF_CLASS. | |
15009 | (merge_classes): Handle X86_64_SSEHF_CLASS. | |
15010 | (examine_argument): Ditto. | |
15011 | (construct_container): Ditto. | |
15012 | (classify_argument): Ditto, and set HFmode/HCmode to | |
15013 | X86_64_SSEHF_CLASS. | |
15014 | (function_value_32): Return _FLoat16/Complex Float16 by | |
15015 | %xmm0. | |
15016 | (function_value_64): Return _Float16/Complex Float16 by SSE | |
15017 | register. | |
15018 | (ix86_print_operand): Handle CONST_DOUBLE HFmode. | |
15019 | (ix86_secondary_reload): Require gpr as intermediate register | |
15020 | to store _Float16 from sse register when sse4 is not | |
15021 | available. | |
15022 | (ix86_libgcc_floating_mode_supported_p): Enable _FLoat16 under | |
15023 | sse2. | |
15024 | (ix86_scalar_mode_supported_p): Ditto. | |
15025 | (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Defined. | |
15026 | * config/i386/i386.h (VALID_SSE2_REG_MODE): Add HFmode. | |
15027 | (VALID_INT_MODE_P): Add HFmode and HCmode. | |
15028 | * config/i386/i386.md (*pushhf_rex64): New define_insn. | |
15029 | (*pushhf): Ditto. | |
15030 | (*movhf_internal): Ditto. | |
15031 | * doc/extend.texi (Half-Precision Floating Point): Documemt | |
15032 | _Float16 for x86. | |
15033 | ||
15034 | 2021-09-02 Richard Biener <rguenther@suse.de> | |
15035 | ||
15036 | PR tree-optimization/102155 | |
15037 | * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate | |
15038 | over a part of the RPO array and do not recurse here. | |
15039 | Dump blocks marked as always executed. | |
15040 | (fill_always_executed_in): Walk over the RPO array and | |
15041 | process loops whose header we run into. | |
15042 | (loop_invariant_motion_in_fun): Compute the first RPO | |
15043 | using rev_post_order_and_mark_dfs_back_seme in iteration | |
15044 | order and pass that to fill_always_executed_in. | |
15045 | ||
15046 | 2021-09-02 YunQiang Su <syq@debian.org> | |
15047 | ||
15048 | Revert: | |
15049 | 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> | |
15050 | ||
15051 | * config/mips/mips.c (mips_module_isa_name): New. | |
15052 | mips_file_start: add .module mipsREV to all asm output | |
15053 | ||
15054 | 2021-09-01 Jeff Law <jlaw@localhost.localdomain> | |
15055 | ||
15056 | PR tree-optimization/102152 | |
15057 | * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Reduce a vector | |
15058 | comparison to a scalar comparison before calling | |
15059 | update_stmt_if_modified. | |
15060 | ||
15061 | 2021-09-01 Andrew Pinski <apinski@marvell.com> | |
15062 | ||
15063 | PR target/101934 | |
15064 | * config/aarch64/aarch64.c (aarch64_expand_setmem): | |
15065 | Check STRICT_ALIGNMENT before creating an overlapping | |
15066 | store. | |
15067 | ||
15068 | 2021-09-01 Martin Sebor <msebor@redhat.com> | |
15069 | ||
15070 | * gimple-ssa-warn-access.cc (get_size_range): Add argument. | |
15071 | (check_access): Pass additional argument. | |
15072 | (check_memop_access): Remove template and make a member function. | |
15073 | (maybe_check_dealloc_call): Make a pass_waccess member function. | |
15074 | (class pass_waccess): Add, rename, and remove members. | |
15075 | (pass_waccess::pass_waccess): Adjust to name change. | |
15076 | (pass_waccess::~pass_waccess): Same. | |
15077 | (check_alloca): Make a member function. | |
15078 | (check_alloc_size_call): Same. | |
15079 | (check_strcat): Same. | |
15080 | (check_strncat): Same. | |
15081 | (check_stxcpy): Same. | |
15082 | (check_stxncpy): Same. | |
15083 | (check_strncmp): Same. | |
15084 | (maybe_warn_rdwr_sizes): Rename... | |
15085 | (pass_waccess::maybe_check_access_sizes): ...to this. | |
15086 | (pass_waccess::check_call): Adjust to name changes. | |
15087 | (pass_waccess::maybe_check_dealloc_call): Make a pass_waccess member | |
15088 | function. | |
15089 | (pass_waccess::execute): Adjust to name changes. | |
15090 | * gimple-ssa-warn-access.h (check_memop_access): Remove. | |
15091 | * pointer-query.cc (access_ref::phi): Handle null pointer. | |
15092 | (access_ref::inform_access): Same. | |
15093 | (pointer_query::put_ref): Modify a cached value, not a copy of it. | |
15094 | (pointer_query::dump): New function. | |
15095 | (compute_objsize_r): Avoid overwriting access_ref::bndrng. Cache | |
15096 | more results. | |
15097 | * pointer-query.h (pointer_query::dump): Declare. | |
15098 | * tree-ssa-strlen.c (get_range): Simplify. Use function query. | |
15099 | (dump_strlen_info): Use function query. | |
15100 | (printf_strlen_execute): Factor code out into pointer_query::put_ref. | |
15101 | ||
15102 | 2021-09-01 Thomas Schwinge <thomas@codesourcery.com> | |
15103 | ||
15104 | * tree.c (walk_tree_1) <OMP_CLAUSE>: Simplify. | |
15105 | ||
15106 | 2021-09-01 Iain Sandoe <iain@sandoe.co.uk> | |
15107 | ||
15108 | * doc/extend.texi: Document unavailable attribute. | |
15109 | * print-tree.c (print_node): Handle unavailable attribute. | |
15110 | * tree-core.h (struct tree_base): Add a bit to carry unavailability. | |
15111 | * tree.c (error_unavailable_use): New. | |
15112 | * tree.h (TREE_UNAVAILABLE): New. | |
15113 | (error_unavailable_use): New. | |
15114 | ||
15115 | 2021-09-01 Jakub Jelinek <jakub@redhat.com> | |
15116 | ||
15117 | PR tree-optimization/102124 | |
15118 | * tree-vect-patterns.c (vect_recog_widen_op_pattern): For ORIG_CODE | |
15119 | MINUS_EXPR, if itype is unsigned with smaller precision than type, | |
15120 | add an extra cast to signed variant of itype to ensure sign-extension. | |
15121 | ||
15122 | 2021-09-01 Martin Liska <mliska@suse.cz> | |
15123 | ||
15124 | * graph.c (draw_cfg_node_succ_edges): Do not color fallthru | |
15125 | edges and rather use colors for TRUE and FALSE edges. | |
15126 | ||
15127 | 2021-09-01 Richard Biener <rguenther@suse.de> | |
15128 | ||
15129 | PR tree-optimization/93491 | |
15130 | * tree-ssa-pre.c (compute_avail): Set BB_MAY_NOTRETURN | |
15131 | after processing the stmt itself. Do not consider | |
15132 | pure functions possibly not returning. Properly avoid | |
15133 | adding possibly trapping calls to EXP_GEN when there's | |
15134 | a preceeding possibly not returning call. | |
15135 | * tree-ssa-sccvn.c (vn_reference_may_trap): Conservatively | |
15136 | not handle calls. | |
15137 | ||
15138 | 2021-09-01 Richard Biener <rguenther@suse.de> | |
15139 | ||
15140 | PR tree-optimization/102139 | |
15141 | * tree-vectorizer.h (vec_base_alignments): Adjust hash-map | |
15142 | type to record a std::pair of the stmt-info and the innermost | |
15143 | loop behavior. | |
15144 | (dr_vec_info::group): New member. | |
15145 | * tree-vect-data-refs.c (vect_record_base_alignment): Adjust. | |
15146 | (vect_compute_data_ref_alignment): Verify the recorded | |
15147 | base alignment can be used. | |
15148 | (data_ref_pair): Remove. | |
15149 | (dr_group_sort_cmp): Adjust. | |
15150 | (vect_analyze_data_ref_accesses): Store the group-ID in the | |
15151 | dr_vec_info and operate on a vector of dr_vec_infos. | |
15152 | ||
15153 | 2021-09-01 YunQiang Su <yunqiang.su@cipunited.com> | |
15154 | ||
15155 | * read-md.c (md_reader::handle_enum): support value assignation. | |
15156 | * doc/md.texi: record define_c_enum value assignation support. | |
15157 | ||
15158 | 2021-09-01 Jakub Jelinek <jakub@redhat.com> | |
15159 | ||
15160 | PR tree-optimization/102141 | |
15161 | * gimple-ssa-store-merging.c (bswap_view_convert): Add BEFORE | |
15162 | argument. If false, emit stmts after gsi instead of before, and | |
15163 | with GSI_NEW_STMT. | |
15164 | (bswap_replace): Adjust callers. When converting output of bswap, | |
15165 | emit VIEW_CONVERT prepratation stmts after a copy of gsi instead | |
15166 | of before it. | |
15167 | ||
15168 | 2021-09-01 liuhongt <hongtao.liu@intel.com> | |
15169 | ||
15170 | * emit-rtl.c (validate_subreg): Get rid of all float-int | |
15171 | special cases. | |
15172 | ||
15173 | 2021-09-01 liuhongt <hongtao.liu@intel.com> | |
15174 | ||
15175 | Revert: | |
15176 | 2021-08-30 liuhongt <hongtao.liu@intel.com> | |
15177 | ||
15178 | * expmed.c (extract_bit_field_1): Make sure we're playing with | |
15179 | integral modes before call extract_integral_bit_field. | |
15180 | (extract_integral_bit_field): Add a parameter of type | |
15181 | scalar_int_mode which corresponds to of tmode. | |
15182 | And call extract_and_convert_fixed_bit_field instead of | |
15183 | extract_fixed_bit_field and convert_extracted_bit_field. | |
15184 | (extract_and_convert_fixed_bit_field): New function, it's a | |
15185 | combination of extract_fixed_bit_field and | |
15186 | convert_extracted_bit_field. | |
15187 | ||
15188 | 2021-08-31 Thomas Schwinge <thomas@codesourcery.com> | |
15189 | ||
15190 | * tree.c (walk_tree_1) <OMP_CLAUSE_TILE>: Handle three operands. | |
15191 | ||
15192 | 2021-08-31 Thomas Schwinge <thomas@codesourcery.com> | |
15193 | ||
15194 | * omp-general.h (omp_is_reference): Rename to... | |
15195 | (omp_privatize_by_reference): ... this. Adjust all users... | |
15196 | * omp-general.c: ... here, ... | |
15197 | * gimplify.c: ... here, ... | |
15198 | * omp-expand.c: ... here, ... | |
15199 | * omp-low.c: ... here. | |
15200 | ||
15201 | 2021-08-31 Martin Sebor <msebor@redhat.com> | |
15202 | ||
15203 | * gimple-ssa-warn-access.cc (maybe_warn_alloc_args_overflow): Test | |
15204 | pointer element for equality to zero, not that of the cotaining | |
15205 | array. | |
15206 | ||
15207 | 2021-08-31 Martin Sebor <msebor@redhat.com> | |
15208 | ||
15209 | * gcc-rich-location.h (gcc_rich_location): Make ctor explicit. | |
15210 | ||
15211 | 2021-08-31 Martin Sebor <msebor@redhat.com> | |
15212 | ||
15213 | * function.h (function): Add comments. | |
15214 | (get_range_query): Same. Add attribute returns nonnull. | |
15215 | ||
15216 | 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> | |
15217 | ||
15218 | * expr.c (convert_modes): Don't use subreg_promoted_mode on a | |
15219 | SUBREG if it can't be guaranteed to a SUBREG_PROMOTED_VAR_P set. | |
15220 | Instead use the standard (safer) is_a <scalar_int_mode> idiom. | |
15221 | ||
15222 | 2021-08-31 Jeff Law <jlaw@localhost.localdomain> | |
15223 | ||
15224 | * config.gcc (cris-*-elf, cris-*-none): Remove dbxelf.h from | |
15225 | tm_file. | |
15226 | (m32r-*-elf, m32rle-*-elf, m32r-*-linux): Likewise. | |
15227 | (mn10300-*-*, am33_2.0-*-linux*): Likewise. | |
15228 | (xtensa*-*-elf, xtensa*-*-linux, xtensa*-*-uclinux): Likewise. | |
15229 | (m32c-*-elf*, m32c-*-rtems*): Likewise. | |
15230 | * config/cris/cris.h (DBX_NO_XREFS): Remove. | |
15231 | (DBX_CONTIN_LENGTH, DBX_CONTIN_CHAR): Likewise. | |
15232 | * config/m32r/m32r.h (DBXOUT_SOURCE_LINE): Likewise. | |
15233 | (DBX_DEBUGGING_INFO, DBX_CONTIN_LENGTH): Likewise. | |
15234 | * config/mn10300/mn10300.h (DEFAULT_GDB_EXTENSIONS): Likewise. | |
15235 | * config/mn10300/linux.h (DBX_REGISTER_NAMES): Likewise. | |
15236 | ||
15237 | 2021-08-31 Marcel Vollweiler <marcel@codesourcery.com> | |
15238 | ||
15239 | * gimplify.c (gimplify_scan_omp_clauses): Error handling. 'ancestor' only | |
15240 | allowed on target constructs and only with particular other clauses. | |
15241 | * omp-expand.c (expand_omp_target): Output of 'sorry, not supported' if | |
15242 | 'ancestor' is used. | |
15243 | * omp-low.c (check_omp_nesting_restrictions): Error handling. No nested OpenMP | |
15244 | structs when 'ancestor' is used. | |
15245 | (scan_omp_1_stmt): No usage of OpenMP runtime routines in a target region when | |
15246 | 'ancestor' is used. | |
15247 | * tree-pretty-print.c (dump_omp_clause): Append 'ancestor'. | |
15248 | * tree.h (OMP_CLAUSE_DEVICE_ANCESTOR): Define macro. | |
15249 | ||
15250 | 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> | |
15251 | ||
15252 | * expr.c (convert_modes): Preserve SUBREG_PROMOTED_VAR_P when | |
15253 | creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P | |
15254 | subreg. | |
15255 | * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]: | |
15256 | Likewise, preserve SUBREG_PROMOTED_VAR_P when creating a (wider) | |
15257 | partial subreg from a SUBREG_PROMOTED_VAR_P subreg. Generate | |
15258 | SIGN_EXTEND of the SUBREG_REG when a subreg would be paradoxical. | |
15259 | [ZERO_EXTEND]: Likewise, preserve SUBREG_PROMOTED_VAR_P when | |
15260 | creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P | |
15261 | subreg. Generate ZERO_EXTEND of the SUBREG_REG when a subreg | |
15262 | would be paradoxical. | |
15263 | ||
15264 | 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> | |
15265 | ||
15266 | * combine.c (combine_simplify_rtx): Avoid converting an explicit | |
15267 | TRUNCATE into a lowpart SUBREG on !TRULY_NOOP_TRUNCATION targets. | |
15268 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
15269 | ||
15270 | 2021-08-31 Richard Biener <rguenther@suse.de> | |
15271 | ||
15272 | PR tree-optimization/102142 | |
15273 | * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Fix | |
15274 | condition under which to unset the visited flag. | |
15275 | ||
15276 | 2021-08-31 Richard Biener <rguenther@suse.de> | |
15277 | ||
15278 | PR middle-end/102129 | |
15279 | * tree-ssa-ter.c (find_replaceable_in_bb): Do not move | |
15280 | possibly trapping expressions across calls. | |
15281 | ||
15282 | 2021-08-31 Jakub Jelinek <jakub@redhat.com> | |
15283 | ||
15284 | PR tree-optimization/102134 | |
15285 | * tree-ssa-ccp.c (bit_value_binop) <case RSHIFT_EXPR>: If sgn is | |
15286 | UNSIGNED and r1val | r1mask has MSB set, ensure lzcount doesn't | |
15287 | become negative. | |
15288 | ||
15289 | 2021-08-31 Andrew Pinski <apinski@marvell.com> | |
15290 | ||
15291 | PR driver/79181 | |
15292 | * collect-utils.c (setup_signals): New declaration. | |
15293 | * collect-utils.h (setup_signals): New function. | |
15294 | * collect2.c (handler): Delete. | |
15295 | (main): Instead of manually setting up the signals, | |
15296 | just call setup_signals. | |
15297 | * lto-wrapper.c (main): Likewise. | |
15298 | ||
15299 | 2021-08-31 Andrew Pinski <apinski@marvell.com> | |
15300 | ||
15301 | PR target/56337 | |
15302 | * config/i386/i386-protos.h (x86_output_aligned_bss): | |
15303 | Change align argument to unsigned type. | |
15304 | (x86_elf_aligned_decl_common): Likewise. | |
15305 | * config/i386/i386.c (x86_elf_aligned_decl_common): Likewise. | |
15306 | (x86_output_aligned_bss): Likewise. | |
15307 | ||
15308 | 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> | |
15309 | ||
15310 | * config/mips/mips.c (mips_module_isa_name): New. | |
15311 | mips_file_start: add .module mipsREV to all asm output | |
15312 | ||
15313 | 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> | |
15314 | ||
15315 | * config/mips/mips.h (struct mips_cpu_info): define enum mips_isa; | |
15316 | use enum instead of int for 'isa' member. | |
15317 | * config.gcc, config/mips/mips.c, config/mips/mips-cpus.def, | |
15318 | config/mips/netbsd.h: replace hardcoded numbers with enum. | |
15319 | ||
15320 | 2021-08-31 liuhongt <hongtao.liu@intel.com> | |
15321 | ||
15322 | * config/i386/sse.md (*<avx512>_ucmp<mode>3_1): Change from | |
15323 | define_split to define_insn_and_split. | |
15324 | (*avx2_eq<mode>3): Removed. | |
15325 | (<avx512>_eq<mode>3<mask_scalar_merge_name>): Adjust pattern | |
15326 | (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Rename to .. | |
15327 | (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): .. this, and | |
15328 | adjust pattern. | |
15329 | (*avx2_gt<mode>3): Removed. | |
15330 | (<avx512>_gt<mode>3<mask_scalar_merge_name>): Change from | |
15331 | define_insn to define_expand, and adjust pattern. | |
15332 | (UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed. | |
15333 | ||
15334 | 2021-08-30 David Malcolm <dmalcolm@redhat.com> | |
15335 | ||
15336 | PR analyzer/99260 | |
15337 | * Makefile.in (ANALYZER_OBJS): Add analyzer/call-info.o. | |
15338 | ||
15339 | 2021-08-30 Jason Merrill <jason@redhat.com> | |
15340 | ||
15341 | * doc/invoke.texi: Document -Wmissing-requires. | |
15342 | ||
15343 | 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
15344 | ||
15345 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove | |
15346 | TARGET_EXTRA_BUILTINS guard. | |
15347 | ||
15348 | 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
15349 | ||
15350 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change | |
15351 | initialization of V2DI_type_node and unsigned_V2DI_type_node. | |
15352 | ||
15353 | 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
15354 | ||
15355 | * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new | |
15356 | decl when new_builtins_are_live. | |
15357 | * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New | |
15358 | built-in. | |
15359 | ||
15360 | 2021-08-30 Pat Haugen <pthaugen@linux.ibm.com> | |
15361 | ||
15362 | * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Add | |
15363 | OPTION_MASK_P10_FUSION_2STORE. | |
15364 | (POWERPC_MASKS): Likewise. | |
15365 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable | |
15366 | store fusion for Power10. | |
15367 | (is_fusable_store): New. | |
15368 | (power10_sched_reorder): Likewise. | |
15369 | (rs6000_sched_reorder): Do Power10 specific reordering. | |
15370 | (rs6000_sched_reorder2): Likewise. | |
15371 | * config/rs6000/rs6000.opt: Add new option. | |
15372 | ||
15373 | 2021-08-30 Richard Biener <rguenther@suse.de> | |
15374 | ||
15375 | PR tree-optimization/102128 | |
15376 | * tree-vect-slp.c (vect_bb_vectorization_profitable_p): | |
15377 | Move scanning for if-converted scalar code to the caller | |
15378 | and instead delay clearing the visited flag for profitable | |
15379 | subgraphs. | |
15380 | (vect_slp_region): Cost all subgraphs before scheduling. | |
15381 | For if-converted BB vectorization scan for scalar COND_EXPRs | |
15382 | and do not vectorize if any found and the cost model is | |
15383 | very-cheap. | |
15384 | ||
15385 | 2021-08-30 Richard Biener <rguenther@suse.de> | |
15386 | ||
15387 | * common.opt (fexceptions): Mark | |
15388 | EnabledBy(fnon-call-exceptions). | |
15389 | * doc/invoke.texi (fnon-call-exceptions): Document this | |
15390 | enables -fexceptions. | |
15391 | ||
15392 | 2021-08-30 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
15393 | ||
15394 | * tsystem.h (abort): Define abort() if inhibit_libc is defined and it | |
15395 | is not already defined. | |
15396 | ||
15397 | 2021-08-30 liuhongt <hongtao.liu@intel.com> | |
15398 | ||
15399 | * expmed.c (extract_bit_field_1): Make sure we're playing with | |
15400 | integral modes before call extract_integral_bit_field. | |
15401 | (extract_integral_bit_field): Add a parameter of type | |
15402 | scalar_int_mode which corresponds to of tmode. | |
15403 | And call extract_and_convert_fixed_bit_field instead of | |
15404 | extract_fixed_bit_field and convert_extracted_bit_field. | |
15405 | (extract_and_convert_fixed_bit_field): New function, it's a | |
15406 | combination of extract_fixed_bit_field and | |
15407 | convert_extracted_bit_field. | |
15408 | ||
15409 | 2021-08-29 Iain Sandoe <iain@sandoe.co.uk> | |
15410 | ||
15411 | * config/darwin.c (darwin_libc_has_function): Do not run | |
15412 | the checks for x86 or modern Darwin. Make sure that there | |
15413 | is a value set for darwin_macosx_version_min before testing. | |
15414 | ||
15415 | 2021-08-29 Iain Sandoe <iain@sandoe.co.uk> | |
15416 | ||
15417 | * config/i386/darwin.h (CLEAR_INSN_CACHE): New. | |
15418 | ||
15419 | 2021-08-28 Jan Hubicka <hubicka@ucw.cz> | |
15420 | ||
15421 | * ipa-modref-tree.h (modref_access_node::merge): Break out | |
15422 | logic combining offsets and logic merging ranges to ... | |
15423 | (modref_access_node::combined_offsets): ... here | |
15424 | (modref_access_node::update2): ... here | |
15425 | (modref_access_node::closer_pair_p): New member function. | |
15426 | (modref_access_node::forced_merge): New member function. | |
15427 | (modre_ref_node::insert): Do merging when table is full. | |
15428 | ||
15429 | 2021-08-28 YunQiang Su <yunqiang.su@cipunited.com> | |
15430 | ||
15431 | PR target/102089 | |
15432 | * config.gcc: MIPS: use N64 ABI by default if the triple end | |
15433 | with -gnuabi64, which is used by Debian since 2013. | |
15434 | ||
15435 | 2021-08-28 Alexandre Oliva <oliva@adacore.com> | |
15436 | ||
15437 | * ipa-modref.c (analyze_function): Skip debug stmts. | |
15438 | * tree-inline.c (estimate_num_insn): Consider builtins even | |
15439 | without a cgraph_node. | |
15440 | ||
15441 | 2021-08-27 Jeff Law <jlaw@localhost.localdomain> | |
15442 | ||
15443 | * config/h8300/bitfield.md (cstore<mode>4): Remove expander. | |
15444 | * config/h8300/h8300.c (h8300_expand_branch): Remove function. | |
15445 | * config/h8300/h8300-protos.h (h8300_expadn_branch): Remove prototype. | |
15446 | * config/h8300/h8300.md (eqne): New code iterator. | |
15447 | (geultu, geultu_to_c): Similarly. | |
15448 | * config/h8300/testcompare.md (cstore<mode>4): Dummy expander. | |
15449 | (store_c_<mode>, store_c_i_<mode>): New define_insn_and_splits | |
15450 | (cmp<mode>_c): New pattern | |
15451 | ||
15452 | 2021-08-27 Jeff Law <jlaw@localhost.localdomain> | |
15453 | ||
15454 | * tree-ssa-dom.c (reduce_vector_comparison_to_scalar_comparison): New | |
15455 | function. | |
15456 | (dom_opt_dom_walker::optimize_stmt): Use it. | |
15457 | ||
15458 | 2021-08-27 Iain Sandoe <iain@sandoe.co.uk> | |
15459 | ||
15460 | * config/darwin.c (finalize_ctors): Add a section-start linker- | |
15461 | visible symbol. | |
15462 | (finalize_dtors): Likewise. | |
15463 | * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New. | |
15464 | ||
15465 | 2021-08-27 Bill Schmidt <wschmidt@linux.ibm.com> | |
15466 | ||
15467 | * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include. | |
15468 | (rs6000_init_builtins): Call rs6000_init_generated_builtins. Skip the | |
15469 | old initialization logic when new builtins are enabled. | |
15470 | * config/rs6000/rs6000-gen-builtins.c (write_decls): Rename | |
15471 | rs6000_autoinit_builtins to rs6000_init_generated_builtins. | |
15472 | (write_init_file): Likewise. | |
15473 | ||
15474 | 2021-08-27 Iain Sandoe <iain@sandoe.co.uk> | |
15475 | ||
15476 | * configure.ac (darwin2[[0-9]]* | darwin19*): Alter use of | |
15477 | gcc_GAS_CHECK_FEATURE to remove an extraneous parameter. | |
15478 | (amdgcn-* | gcn-*) Likewise. | |
15479 | ||
15480 | 2021-08-27 Anthony Sharp <anthonysharp15@gmail.com> | |
15481 | ||
15482 | * symbol-summary.h: Added missing template keyword. | |
15483 | ||
15484 | 2021-08-27 Richard Biener <rguenther@suse.de> | |
15485 | ||
15486 | PR tree-optimization/45178 | |
15487 | * tree-ssa-dce.c (find_obviously_necessary_stmts): For | |
15488 | infinite loops without exit do not mark control dependent | |
15489 | edges of the latch necessary. | |
15490 | ||
15491 | 2021-08-27 konglin1 <lingling.kong@intel.com> | |
15492 | ||
15493 | PR target/101472 | |
15494 | * config/i386/sse.md: (<avx512>scattersi<mode>): Add mask operand to | |
15495 | UNSPEC_VSIBADDR. | |
15496 | (<avx512>scattersi<mode>): Likewise. | |
15497 | (*avx512f_scattersi<VI48F:mode>): Merge mask operand to set_dest. | |
15498 | (*avx512f_scatterdi<VI48F:mode>): Likewise | |
15499 | ||
15500 | 2021-08-27 Kewen Lin <linkw@linux.ibm.com> | |
15501 | ||
15502 | * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function): Add | |
15503 | support for built-in functions MISC_BUILTIN_DIVWE, MISC_BUILTIN_DIVWEU, | |
15504 | MISC_BUILTIN_DIVDE, MISC_BUILTIN_DIVDEU, P10_BUILTIN_CFUGED, | |
15505 | P10_BUILTIN_CNTLZDM, P10_BUILTIN_CNTTZDM, P10_BUILTIN_PDEPD and | |
15506 | P10_BUILTIN_PEXTD on Power10. | |
15507 | ||
15508 | 2021-08-27 Kewen Lin <linkw@linux.ibm.com> | |
15509 | ||
15510 | * config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned | |
15511 | signedness for some Power10 bifs. | |
15512 | ||
15513 | 2021-08-27 David Edelsohn <dje.gcc@gmail.com> | |
15514 | ||
15515 | PR target/102068 | |
15516 | * config/rs6000/rs6000.c (rs6000_adjust_field_align): Use | |
15517 | computed alignment if the entire struct has attribute packed. | |
15518 | ||
15519 | 2021-08-27 liuhongt <hongtao.liu@intel.com> | |
15520 | ||
15521 | PR target/98167 | |
15522 | PR target/43147 | |
15523 | * config/i386/i386.c (ix86_gimple_fold_builtin): Fold | |
15524 | IX86_BUILTIN_SHUFPD512, IX86_BUILTIN_SHUFPS512, | |
15525 | IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS, | |
15526 | IX86_BUILTIN_SHUFPS256. | |
15527 | (ix86_masked_all_ones): New function. | |
15528 | ||
15529 | 2021-08-26 Uroš Bizjak <ubizjak@gmail.com> | |
15530 | ||
15531 | * config/i386/i386.md (*btr<mode>_1): Call force_reg unconditionally. | |
15532 | (conditional moves with memory inputs splitters): Ditto. | |
15533 | * config/i386/sse.md (one_cmpl<mode>2): Simplify. | |
15534 | ||
15535 | 2021-08-26 Jan Hubicka <hubicka@ucw.cz> | |
15536 | ||
15537 | * ipa-modref-tree.h (modref_access_node::try_merge_with): Restart | |
15538 | search after merging. | |
15539 | ||
15540 | 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> | |
15541 | ||
15542 | * config/rs6000/rs6000-overload.def: Add remaining overloads. | |
15543 | ||
15544 | 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> | |
15545 | ||
15546 | * config/rs6000/rs6000-builtin-new.def: Add cell stanza. | |
15547 | ||
15548 | 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> | |
15549 | ||
15550 | * config/rs6000/rs6000-builtin-new.def: Add ieee128-hw, dfp, | |
15551 | crypto, and htm stanzas. | |
15552 | ||
15553 | 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> | |
15554 | ||
15555 | * config/rs6000/rs6000-builtin-new.def: Add mma stanza. | |
15556 | ||
15557 | 2021-08-26 Martin Sebor <msebor@redhat.com> | |
15558 | ||
15559 | * tree-ssa-uninit.c (warn_uninit): Refactor and simplify. | |
15560 | (warn_uninit_phi_uses): Remove argument from calls to warn_uninit. | |
15561 | (warn_uninitialized_vars): Same. Reduce visibility of locals. | |
15562 | (warn_uninitialized_phi): Same. | |
15563 | ||
15564 | 2021-08-26 Roger Sayle <roger@nextmovesoftware.com> | |
15565 | ||
15566 | * tree-ssa-ccp.c (get_individual_bits): Helper function to | |
15567 | extract the individual bits from a widest_int constant (mask). | |
15568 | (gray_code_bit_flips): New read-only table for effiently | |
15569 | enumerating permutations/combinations of bits. | |
15570 | (bit_value_binop) [LROTATE_EXPR, RROTATE_EXPR]: Handle rotates | |
15571 | by unknown counts that are guaranteed less than the target | |
15572 | precision and four or fewer unknown bits by enumeration. | |
15573 | [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise, also handle shifts by | |
15574 | enumeration under the same conditions. Handle remaining | |
15575 | shifts as a mask based upon the minimum possible shift value. | |
15576 | ||
15577 | 2021-08-26 Roger Sayle <roger@nextmovesoftware.com> | |
15578 | Richard Biener <rguenther@suse.de> | |
15579 | ||
15580 | * match.pd (shift transformations): Remove a redundant | |
15581 | !POINTER_TYPE_P check. | |
15582 | ||
15583 | 2021-08-26 Uroš Bizjak <ubizjak@gmail.com> | |
15584 | ||
15585 | PR target/102057 | |
15586 | * config/i386/i386.md (cmove reg-reg move elimination peephole2s): | |
15587 | Set all_regs to true in the call to replace_rtx. | |
15588 | ||
15589 | 2021-08-26 Jan Hubicka <hubicka@ucw.cz> | |
15590 | ||
15591 | * ipa-modref-tree.c (test_insert_search_collapse): Update test. | |
15592 | * ipa-modref-tree.h (modref_base_node::insert): Be smarter when | |
15593 | hiting --param modref-max-refs limit. | |
15594 | (modref_tree:insert_base): Be smarter when hitting | |
15595 | --param modref-max-bases limit. Add new parameter REF. | |
15596 | (modref_tree:insert): Update. | |
15597 | (modref_tree:merge): Update. | |
15598 | * ipa-modref.c (read_modref_records): Update. | |
15599 | ||
15600 | 2021-08-26 Jan Hubicka <hubicka@ucw.cz> | |
15601 | ||
15602 | * params.opt: (modref-max-adjustments): Add full stop. | |
15603 | ||
15604 | 2021-08-26 Jan Hubicka <hubicka@ucw.cz> | |
15605 | ||
15606 | * ipa-modref-tree.h (modref_ref_node::verify): New member | |
15607 | functoin. | |
15608 | (modref_ref_node::insert): Use it. | |
15609 | (modref_ref_node::try_mere_with): Fix off by one error. | |
15610 | ||
15611 | 2021-08-26 Martin Liska <mliska@suse.cz> | |
15612 | Stefan Kneifel <stefan.kneifel@bluewin.ch> | |
15613 | ||
15614 | * cgraph.h (create_version_clone_with_body): Add new parameter. | |
15615 | * cgraphclones.c: Likewise. | |
15616 | * multiple_target.c (create_dispatcher_calls): Do not use | |
15617 | numbered suffixes. | |
15618 | (create_target_clone): Likewise here. | |
15619 | ||
15620 | 2021-08-26 Jonathan Yong <10walls@gmail.com> | |
15621 | ||
15622 | * doc/extend.texi: Add note about reserved priorities | |
15623 | to the constructor attribute. | |
15624 | ||
15625 | 2021-08-25 Martin Sebor <msebor@redhat.com> | |
15626 | ||
15627 | * gimple-range-cache.cc (ssa_global_cache::dump): Avoid printing | |
15628 | range table header alone. | |
15629 | * gimple-range.cc (gimple_ranger::export_global_ranges): Same. | |
15630 | ||
15631 | 2021-08-25 Jan Hubicka <hubicka@ucw.cz> | |
15632 | ||
15633 | * doc/invoke.texi: Document --param modref-max-adjustments. | |
15634 | * ipa-modref-tree.c (test_insert_search_collapse): Update. | |
15635 | (test_merge): Update. | |
15636 | * ipa-modref-tree.h (struct modref_access_node): Add adjustments; | |
15637 | (modref_access_node::operator==): Fix handling of access ranges. | |
15638 | (modref_access_node::contains): Constify parameter; handle also | |
15639 | mismatched parm offsets. | |
15640 | (modref_access_node::update): New function. | |
15641 | (modref_access_node::merge): New function. | |
15642 | (unspecified_modref_access_node): Update constructor. | |
15643 | (modref_ref_node::insert_access): Add record_adjustments parameter; | |
15644 | handle merging. | |
15645 | (modref_ref_node::try_merge_with): New private function. | |
15646 | (modref_tree::insert): New record_adjustments parameter. | |
15647 | (modref_tree::merge): New record_adjustments parameter. | |
15648 | (modref_tree::copy_from): Update. | |
15649 | * ipa-modref.c (dump_access): Dump adjustments field. | |
15650 | (get_access): Update constructor. | |
15651 | (record_access): Update call of insert. | |
15652 | (record_access_lto): Update call of insert. | |
15653 | (merge_call_side_effects): Add record_adjustments parameter. | |
15654 | (get_access_for_fnspec): Update. | |
15655 | (process_fnspec): Update. | |
15656 | (analyze_call): Update. | |
15657 | (analyze_function): Update. | |
15658 | (read_modref_records): Update. | |
15659 | (ipa_merge_modref_summary_after_inlining): Update. | |
15660 | (propagate_unknown_call): Update. | |
15661 | (modref_propagate_in_scc): Update. | |
15662 | * params.opt (param-max-modref-adjustments=): New. | |
15663 | ||
15664 | 2021-08-25 Michael Meissner <meissner@linux.ibm.com> | |
15665 | ||
15666 | * config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from | |
15667 | UNSPEC_XXSPLTID. | |
15668 | (xxspltiw_v4si): Use vecperm type attribute. | |
15669 | (xxspltiw_v4si_inst): Use vecperm type attribute. | |
15670 | (xxspltiw_v4sf_inst): Likewise. | |
15671 | (xxspltidp_v2df): Use vecperm type attribute. Use | |
15672 | UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID. | |
15673 | (xxspltidp_v2df_inst): Likewise. | |
15674 | (xxsplti32dx_v4si): Use vecperm type attribute. | |
15675 | (xxsplti32dx_v4si_inst): Likewise. | |
15676 | (xxsplti32dx_v4sf_inst): Likewise. | |
15677 | (xxblend_<mode>): Likewise. | |
15678 | (xxpermx): Likewise. | |
15679 | (xxpermx_inst): Likewise. | |
15680 | (xxeval): Likewise. | |
15681 | ||
15682 | 2021-08-25 Lewis Hyatt <lhyatt@gmail.com> | |
15683 | ||
15684 | PR other/93067 | |
15685 | * coretypes.h (typedef diagnostic_input_charset_callback): Declare. | |
15686 | * diagnostic.c (diagnostic_initialize_input_context): New function. | |
15687 | * diagnostic.h (diagnostic_initialize_input_context): Declare. | |
15688 | * input.c (default_charset_callback): New function. | |
15689 | (file_cache::initialize_input_context): New function. | |
15690 | (file_cache_slot::create): Added ability to convert the input | |
15691 | according to the input context. | |
15692 | (file_cache::file_cache): Initialize the new input context. | |
15693 | (class file_cache_slot): Added new m_alloc_offset member. | |
15694 | (file_cache_slot::file_cache_slot): Initialize the new member. | |
15695 | (file_cache_slot::~file_cache_slot): Handle potentially offset buffer. | |
15696 | (file_cache_slot::maybe_grow): Likewise. | |
15697 | (file_cache_slot::needs_read_p): Handle NULL fp, which is now possible. | |
15698 | (file_cache_slot::get_next_line): Likewise. | |
15699 | * input.h (class file_cache): Added input context member. | |
15700 | ||
15701 | 2021-08-25 Richard Biener <rguenther@suse.de> | |
15702 | ||
15703 | PR tree-optimization/102046 | |
15704 | * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively | |
15705 | update ->any_pattern when swapping operands. | |
15706 | ||
15707 | 2021-08-25 Hongyu Wang <hongyu.wang@intel.com> | |
15708 | ||
15709 | PR target/101716 | |
15710 | * config/i386/i386.c (ix86_live_on_entry): Adjust comment. | |
15711 | (ix86_decompose_address): Remove retval check for ASHIFT, | |
15712 | allow non-canonical zero extend if AND mask covers ASHIFT | |
15713 | count. | |
15714 | (ix86_legitimate_address_p): Adjust condition for decompose. | |
15715 | (ix86_rtx_costs): Adjust cost for lea with non-canonical | |
15716 | zero-extend. | |
15717 | Co-Authored by: Uros Bizjak <ubizjak@gmail.com> | |
15718 | ||
15719 | 2021-08-25 Jiufu Guo <guojiufu@linux.ibm.com> | |
15720 | ||
15721 | PR tree-optimization/101145 | |
15722 | * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): | |
15723 | New function. | |
15724 | (number_of_iterations_lt): Invoke above function. | |
15725 | (adjust_cond_for_loop_until_wrap): | |
15726 | Merge to number_of_iterations_until_wrap. | |
15727 | (number_of_iterations_cond): Update invokes for | |
15728 | adjust_cond_for_loop_until_wrap and number_of_iterations_lt. | |
15729 | ||
15730 | 2021-08-25 konglin1 <lingling.kong@intel.com> | |
15731 | ||
15732 | PR target/101471 | |
15733 | * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix | |
15734 | macro define in O0. | |
15735 | (_mm512_mask_fpclass_ps_mask): Ditto. | |
15736 | ||
15737 | 2021-08-25 Kewen Lin <linkw@linux.ibm.com> | |
15738 | ||
15739 | * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Remove. | |
15740 | (vec_unpacku_hi_v8hi): Likewise. | |
15741 | (vec_unpacku_lo_v16qi): Likewise. | |
15742 | (vec_unpacku_lo_v8hi): Likewise. | |
15743 | (vec_unpacku_hi_<VP_small_lc>): New define_expand. | |
15744 | (vec_unpacku_lo_<VP_small_lc>): Likewise. | |
15745 | ||
15746 | 2021-08-24 David Edelsohn <dje.gcc@gmail.com> | |
15747 | ||
15748 | * config/rs6000/aix.h (SYSTEM_IMPLICIT_EXTERN_C): Delete. | |
15749 | * config/rs6000/aix71.h (SYSTEM_IMPLICIT_EXTERN_C): Define. | |
15750 | * config/rs6000/aix72.h (SYSTEM_IMPLICIT_EXTERN_C): Define. | |
15751 | * config/rs6000/aix73.h (TARGET_AIX_VERSION): Increase to 73. | |
15752 | ||
15753 | 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> | |
15754 | ||
15755 | PR middle-end/102031 | |
15756 | * simplify-rtx.c (simplify_truncation): When comparing precisions | |
15757 | use "subreg_prec" variable, not "subreg_mode". | |
15758 | ||
15759 | 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> | |
15760 | ||
15761 | * config/rs6000/rs6000-builtin-new.def: Add power10 and power10-64 | |
15762 | stanzas. | |
15763 | ||
15764 | 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> | |
15765 | ||
15766 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize | |
15767 | various pointer type nodes. | |
15768 | * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum | |
15769 | values for various pointer types. | |
15770 | (ptr_V16QI_type_node): New macro. | |
15771 | (ptr_V1TI_type_node): New macro. | |
15772 | (ptr_V2DI_type_node): New macro. | |
15773 | (ptr_V2DF_type_node): New macro. | |
15774 | (ptr_V4SI_type_node): New macro. | |
15775 | (ptr_V4SF_type_node): New macro. | |
15776 | (ptr_V8HI_type_node): New macro. | |
15777 | (ptr_unsigned_V16QI_type_node): New macro. | |
15778 | (ptr_unsigned_V1TI_type_node): New macro. | |
15779 | (ptr_unsigned_V8HI_type_node): New macro. | |
15780 | (ptr_unsigned_V4SI_type_node): New macro. | |
15781 | (ptr_unsigned_V2DI_type_node): New macro. | |
15782 | (ptr_bool_V16QI_type_node): New macro. | |
15783 | (ptr_bool_V8HI_type_node): New macro. | |
15784 | (ptr_bool_V4SI_type_node): New macro. | |
15785 | (ptr_bool_V2DI_type_node): New macro. | |
15786 | (ptr_bool_V1TI_type_node): New macro. | |
15787 | (ptr_pixel_type_node): New macro. | |
15788 | (ptr_intQI_type_node): New macro. | |
15789 | (ptr_uintQI_type_node): New macro. | |
15790 | (ptr_intHI_type_node): New macro. | |
15791 | (ptr_uintHI_type_node): New macro. | |
15792 | (ptr_intSI_type_node): New macro. | |
15793 | (ptr_uintSI_type_node): New macro. | |
15794 | (ptr_intDI_type_node): New macro. | |
15795 | (ptr_uintDI_type_node): New macro. | |
15796 | (ptr_intTI_type_node): New macro. | |
15797 | (ptr_uintTI_type_node): New macro. | |
15798 | (ptr_long_integer_type_node): New macro. | |
15799 | (ptr_long_unsigned_type_node): New macro. | |
15800 | (ptr_float_type_node): New macro. | |
15801 | (ptr_double_type_node): New macro. | |
15802 | (ptr_long_double_type_node): New macro. | |
15803 | (ptr_dfloat64_type_node): New macro. | |
15804 | (ptr_dfloat128_type_node): New macro. | |
15805 | (ptr_ieee128_type_node): New macro. | |
15806 | (ptr_ibm128_type_node): New macro. | |
15807 | (ptr_vector_pair_type_node): New macro. | |
15808 | (ptr_vector_quad_type_node): New macro. | |
15809 | (ptr_long_long_integer_type_node): New macro. | |
15810 | (ptr_long_long_unsigned_type_node): New macro. | |
15811 | ||
15812 | 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> | |
15813 | ||
15814 | * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9, | |
15815 | and power9-64 stanzas. | |
15816 | ||
15817 | 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> | |
15818 | Tom de Vries <tdevries@suse.de> | |
15819 | ||
15820 | * config.gcc (nvptx-*-*): Define {c,c++}_target_objs. | |
15821 | * config/nvptx/nvptx-protos.h (nvptx_cpu_cpp_builtins): Prototype. | |
15822 | * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Implement with | |
15823 | a call to the new nvptx_cpu_cpp_builtins function in nvptx-c.c. | |
15824 | * config/nvptx/t-nvptx (nvptx-c.o): New rule. | |
15825 | * config/nvptx/nvptx-c.c: New source file. | |
15826 | (nvptx_cpu_cpp_builtins): Move implementation here. | |
15827 | ||
15828 | 2021-08-24 Martin Sebor <msebor@redhat.com> | |
15829 | ||
15830 | PR middle-end/101600 | |
15831 | PR middle-end/101977 | |
15832 | * gimple-ssa-warn-access.cc (maybe_warn_for_bound): Tighten up | |
15833 | the phrasing of a warning. | |
15834 | (check_access): Use the remaining size after subtracting any offset | |
15835 | rather than the whole object size. | |
15836 | * pointer-query.cc (access_ref::get_ref): Clear BASE0 flag if it's | |
15837 | clear for any nonnull PHI argument. | |
15838 | (compute_objsize): Clear argument. | |
15839 | ||
15840 | 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> | |
15841 | ||
15842 | * config/rs6000/rs6000-builtin-new.def: Add power8-vector stanza. | |
15843 | ||
15844 | 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> | |
15845 | ||
15846 | * config/rs6000/rs6000-builtin-new.def: Add power7 and power7-64 | |
15847 | stanzas. | |
15848 | ||
15849 | 2021-08-24 Andrew MacLeod <amacleod@redhat.com> | |
15850 | ||
15851 | * value-relation.cc (rr_transitive_table): New. | |
15852 | (relation_transitive): New. | |
15853 | (value_relation::swap): Remove. | |
15854 | (value_relation::apply_transitive): New. | |
15855 | (relation_oracle::relation_oracle): Allocate a new tmp bitmap. | |
15856 | (relation_oracle::register_relation): Call register_transitives. | |
15857 | (relation_oracle::register_transitives): New. | |
15858 | * value-relation.h (relation_oracle): Add new temporary bitmap and | |
15859 | methods. | |
15860 | ||
15861 | 2021-08-24 H.J. Lu <hjl.tools@gmail.com> | |
15862 | ||
15863 | PR target/102021 | |
15864 | * config/i386/i386-expand.c (ix86_expand_vector_move): Broadcast | |
15865 | from integer to a pseudo vector register. | |
15866 | ||
15867 | 2021-08-24 Richard Biener <rguenther@suse.de> | |
15868 | ||
15869 | PR tree-optimization/100089 | |
15870 | * tree-vectorizer.h (vect_slp_bb): Rename to ... | |
15871 | (vect_slp_if_converted_bb): ... this and get the original | |
15872 | loop as new argument. | |
15873 | * tree-vectorizer.c (try_vectorize_loop_1): Revert previous fix, | |
15874 | pass original loop to vect_slp_if_converted_bb. | |
15875 | * tree-vect-slp.c (vect_bb_vectorization_profitable_p): | |
15876 | If orig_loop was passed scan the not vectorized stmts | |
15877 | for COND_EXPRs and force not profitable if found. | |
15878 | (vect_slp_region): Pass down all SLP instances to costing | |
15879 | if orig_loop was specified. | |
15880 | (vect_slp_bbs): Pass through orig_loop. | |
15881 | (vect_slp_bb): Rename to ... | |
15882 | (vect_slp_if_converted_bb): ... this and get the original | |
15883 | loop as new argument. | |
15884 | (vect_slp_function): Adjust. | |
15885 | ||
15886 | 2021-08-24 Richard Earnshaw <rearnsha@arm.com> | |
15887 | ||
15888 | PR target/102035 | |
15889 | * config/arm/arm.md (attribute arch): Add fix_vlldm. | |
15890 | (arch_enabled): Use it. | |
15891 | * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to | |
15892 | use when erratum mitigation is needed. | |
15893 | ||
15894 | 2021-08-24 Richard Earnshaw <rearnsha@arm.com> | |
15895 | ||
15896 | PR target/102035 | |
15897 | * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option. | |
15898 | * doc/invoke.texi (Arm Options): Document it. | |
15899 | * config/arm/arm-cpus.in (quirk_vlldm): New feature bit. | |
15900 | (ALL_QUIRKS): Add quirk_vlldm. | |
15901 | (cortex-m33): Add quirk_vlldm. | |
15902 | (cortex-m35p, cortex-m55): Likewise. | |
15903 | * config/arm/arm.c (arm_option_override): Enable fix_vlldm if | |
15904 | targetting an affected CPU and not explicitly controlled on | |
15905 | the command line. | |
15906 | ||
15907 | 2021-08-24 Richard Earnshaw <rearnsha@arm.com> | |
15908 | ||
15909 | * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL. | |
15910 | (lazy_load_multiple_insn): Likewise. | |
15911 | ||
15912 | 2021-08-24 liuhongt <hongtao.liu@intel.com> | |
15913 | ||
15914 | PR target/101989 | |
15915 | * config/i386/sse.md (<avx512>_vternlog<mode><sd_maskz_name>): | |
15916 | Enable avx512 embedded broadcast. | |
15917 | (*<avx512>_vternlog<mode>_all): Ditto. | |
15918 | (<avx512>_vternlog<mode>_mask): Ditto. | |
15919 | ||
15920 | 2021-08-24 liuhongt <hongtao.liu@intel.com> | |
15921 | ||
15922 | PR target/101989 | |
15923 | * config/i386/i386.c (ix86_rtx_costs): Define cost for | |
15924 | UNSPEC_VTERNLOG. | |
15925 | * config/i386/i386.h (STRIP_UNARY): New macro. | |
15926 | * config/i386/predicates.md (reg_or_notreg_operand): New | |
15927 | predicate. | |
15928 | * config/i386/sse.md (*<avx512>_vternlog<mode>_all): New define_insn. | |
15929 | (*<avx512>_vternlog<mode>_1): New pre_reload | |
15930 | define_insn_and_split. | |
15931 | (*<avx512>_vternlog<mode>_2): Ditto. | |
15932 | (*<avx512>_vternlog<mode>_3): Ditto. | |
15933 | (any_logic1,any_logic2): New code iterator. | |
15934 | (logic_op): New code attribute. | |
15935 | (ternlogsuffix): Extend to VNxDF and VNxSF. | |
15936 | ||
15937 | 2021-08-24 Richard Biener <rguenther@suse.de> | |
15938 | ||
15939 | * doc/invoke.texi (vect-inner-loop-cost-factor): Adjust. | |
15940 | * params.opt (--param vect-inner-loop-cost-factor): Adjust | |
15941 | maximum value. | |
15942 | * tree-vect-loop.c (vect_analyze_loop_form): Initialize | |
15943 | inner_loop_cost_factor to the minimum of the estimated number | |
15944 | of iterations of the inner loop and vect-inner-loop-cost-factor. | |
15945 | ||
15946 | 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> | |
15947 | Richard Biener <rguenther@suse.de> | |
15948 | ||
15949 | * config/i386/i386-features.c (compute_convert_gain): Provide | |
15950 | more accurate values for CONST_INT, when optimizing for size. | |
15951 | * config/i386/i386.c (COSTS_N_BYTES): Move definition from here... | |
15952 | * config/i386/i386.h (COSTS_N_BYTES): to here. | |
15953 | ||
15954 | 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> | |
15955 | Jakub Jelinek <jakub@redhat.com> | |
15956 | ||
15957 | PR middle-end/102029 | |
15958 | * match.pd (shift transformations): Add an additional check for | |
15959 | !POINTER_TYPE_P in the recently added left shift transformation. | |
15960 | ||
15961 | 2021-08-24 liuhongt <hongtao.liu@intel.com> | |
15962 | ||
15963 | PR tree-optimization/100089 | |
15964 | * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in | |
15965 | loop vectorizer when cost model is very-cheap. | |
15966 | ||
15967 | 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
15968 | ||
15969 | * config/rs6000/rs6000-gen-builtins.c (parse_bif_entry): Don't call | |
15970 | asprintf, which is not available on AIX. | |
15971 | ||
15972 | 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
15973 | ||
15974 | * config.gcc (target_gtfiles): Add ./rs6000-builtins.h. | |
15975 | * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set. | |
15976 | ||
15977 | 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
15978 | ||
15979 | * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs. | |
15980 | * config/rs6000/rs6000-gen-builtins.c (main): Close init_file | |
15981 | last. | |
15982 | * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target. | |
15983 | (rbtree.o): Likewise. | |
15984 | (rs6000-gen-builtins): Likewise. | |
15985 | (rs6000-builtins.c): Likewise. | |
15986 | (rs6000-builtins.h): Likewise. | |
15987 | (rs6000.o): Add dependency. | |
15988 | (EXTRA_HEADERS): Add rs6000-vecdefines.h. | |
15989 | (rs6000-vecdefines.h): New target. | |
15990 | (rs6000-builtins.o): Likewise. | |
15991 | (rs6000-call.o): Add rs6000-builtins.h as a dependency. | |
15992 | (rs6000-c.o): Likewise. | |
15993 | ||
15994 | 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
15995 | ||
15996 | PR target/101830 | |
15997 | * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): | |
15998 | Diagnose buffer overrun. | |
15999 | (safe_inc_pos): Fix overrun detection. | |
16000 | (match_identifier): Diagnose buffer overrun. | |
16001 | (match_integer): Likewise. | |
16002 | (match_to_right_bracket): Likewise. | |
16003 | ||
16004 | 2021-08-23 Jan Hubicka <hubicka@ucw.cz> | |
16005 | ||
16006 | * ipa-modref-tree.h (modref_access_node::range_info_useful_p): | |
16007 | Improve range compare. | |
16008 | (modref_access_node::contains): New member function. | |
16009 | (modref_access_node::search): Remove. | |
16010 | (modref_access_node::insert): Be smarter about subaccesses. | |
16011 | ||
16012 | 2021-08-23 Thomas Schwinge <thomas@codesourcery.com> | |
16013 | ||
16014 | * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa) | |
16015 | <omp_device_arch> [ACCEL_COMPILER]: Match "intel_mic". | |
16016 | * config/i386/t-omp-device (omp-device-properties-i386) <arch>: | |
16017 | Add "intel_mic". | |
16018 | ||
16019 | 2021-08-23 Jeff Law <jlaw@localhost.localdomain> | |
16020 | ||
16021 | * config/h8300/h8300-protos.h (h8300_expand_epilogue): Add new | |
16022 | argument. | |
16023 | * config/h8300/jumpcall.md (call, call_value): Restrict to | |
16024 | !SIBLING_CALL_P cases. | |
16025 | (subcall, sibcall_value): New patterns & expanders. | |
16026 | * config/h8300/proepi.md (epilogue): Pass new argument to | |
16027 | h8300_expand_epilogue. | |
16028 | (sibcall_epilogue): New expander. | |
16029 | * config/h8300/h8300.c (h8300_expand_epilogue): Handle sibcall | |
16030 | epilogues too. | |
16031 | (h8300_ok_for_sibcall_p): New function. | |
16032 | (TARGET_FUNCTION_OK_FOR_SIBCALL): define. | |
16033 | ||
16034 | 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> | |
16035 | ||
16036 | * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]: | |
16037 | Handle case where the operand is already the desired mode. | |
16038 | ||
16039 | 2021-08-23 Richard Biener <rguenther@suse.de> | |
16040 | ||
16041 | PR ipa/97565 | |
16042 | * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition | |
16043 | in addition to has_gimple_body. | |
16044 | ||
16045 | 2021-08-23 Jan Hubicka <hubicka@ucw.cz> | |
16046 | ||
16047 | PR middle-end/101949 | |
16048 | * ipa-modref.c (analyze_ssa_name_flags): Fix merging of | |
16049 | EAF_NOCLOBBER | |
16050 | ||
16051 | 2021-08-23 Martin Liska <mliska@suse.cz> | |
16052 | ||
16053 | * doc/invoke.texi: Put the option out of -mxl-mode-app-model | |
16054 | table. | |
16055 | ||
16056 | 2021-08-23 Richard Biener <rguenther@suse.de> | |
16057 | ||
16058 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): | |
16059 | Properly scale the inner loop cost only once. | |
16060 | ||
16061 | 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> | |
16062 | ||
16063 | * tree-ssa-ccp.c (bit_value_binop) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: | |
16064 | Provide bounds for unsigned (and signed with non-negative operands) | |
16065 | division and modulus. | |
16066 | ||
16067 | 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> | |
16068 | ||
16069 | * simplify-rtx.c (simplify_truncation): Generalize simplification | |
16070 | of (truncate:A (subreg:B X)). | |
16071 | (simplify_unary_operation_1) [FLOAT_TRUNCATE, FLOAT_EXTEND, | |
16072 | SIGN_EXTEND, ZERO_EXTEND]: Handle cases where the operand | |
16073 | already has the desired machine mode. | |
16074 | (test_scalar_int_ops): Add tests that useless extensions and | |
16075 | truncations are optimized away. | |
16076 | (test_scalar_int_ext_ops): New self-test function to confirm | |
16077 | that truncations of extensions are correctly simplified. | |
16078 | (test_scalar_int_ext_ops2): New self-test function to check | |
16079 | truncations of truncations, extensions of extensions, and | |
16080 | truncations of extensions. | |
16081 | (test_scalar_ops): Call the above two functions with a | |
16082 | representative sampling of integer machine modes. | |
16083 | ||
16084 | 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> | |
16085 | ||
16086 | * match.pd (shift transformations): Change the sign of an | |
16087 | LSHIFT_EXPR if it reduces the number of explicit conversions. | |
16088 | ||
16089 | 2021-08-23 Jakub Jelinek <jakub@redhat.com> | |
16090 | ||
16091 | PR tree-optimization/86723 | |
16092 | * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Add | |
16093 | cast64_to_32 argument, set *cast64_to_32 to false, unless n is | |
16094 | non-memory permutation of 64-bit src which only has bytes of | |
16095 | 0 or [5..8] and n->range is 4. | |
16096 | (find_bswap_or_nop): Add cast64_to_32 and mask arguments, adjust | |
16097 | find_bswap_or_nop_finalize caller, support bswap with some bytes | |
16098 | zeroed, as long as at least two bytes are not zeroed. | |
16099 | (bswap_replace): Add mask argument and handle masking of bswap | |
16100 | result. | |
16101 | (maybe_optimize_vector_constructor): Adjust find_bswap_or_nop | |
16102 | caller, punt if cast64_to_32 or mask is not all ones. | |
16103 | (pass_optimize_bswap::execute): Adjust find_bswap_or_nop_finalize | |
16104 | caller, for now punt if cast64_to_32. | |
16105 | ||
16106 | 2021-08-23 Richard Biener <rguenther@suse.de> | |
16107 | ||
16108 | PR tree-optimization/79334 | |
16109 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record | |
16110 | a type also for COMPONENT_REFs. | |
16111 | (vn_reference_may_trap): Check ARRAY_REF with constant index | |
16112 | against the array domain. | |
16113 | ||
16114 | 2021-08-23 liuhongt <hongtao.liu@intel.com> | |
16115 | ||
16116 | PR target/102016 | |
16117 | * config/i386/sse.md (*avx512f_pshufb_truncv8hiv8qi_1): Add | |
16118 | TARGET_AVX512BW to condition. | |
16119 | ||
16120 | 2021-08-23 Jakub Jelinek <jakub@redhat.com> | |
16121 | ||
16122 | PR debug/101905 | |
16123 | * dwarf2out.c (gen_variable_die): Add DW_AT_location for global | |
16124 | register variables already during early_dwarf if possible. | |
16125 | ||
16126 | 2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> | |
16127 | ||
16128 | * config/arm/arm_mve.h: Fix __arm_vctp16q return type. | |
16129 | ||
16130 | 2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> | |
16131 | ||
16132 | PR target/100856 | |
16133 | * config/arm/arm.opt: Fix typo. | |
16134 | * config/arm/t-rmprofile: Fix typo. | |
16135 | ||
16136 | 2021-08-23 Jakub Jelinek <jakub@redhat.com> | |
16137 | ||
16138 | * tree.h (OMP_CLAUSE_GRAINSIZE_STRICT): Define. | |
16139 | (OMP_CLAUSE_NUM_TASKS_STRICT): Define. | |
16140 | * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_GRAINSIZE, | |
16141 | case OMP_CLAUSE_NUM_TASKS>: Print strict: modifier. | |
16142 | * omp-expand.c (expand_task_call): Use GOMP_TASK_FLAG_STRICT in iflags | |
16143 | if either grainsize or num_tasks clause has the strict modifier. | |
16144 | ||
16145 | 2021-08-23 Martin Liska <mliska@suse.cz> | |
16146 | ||
16147 | * dbgcnt.def (DEBUG_COUNTER): New counter. | |
16148 | * gimple.c (gimple_call_arg_flags): Use it in IPA PTA. | |
16149 | ||
16150 | 2021-08-23 Jan Hubicka <hubicka@ucw.cz> | |
16151 | ||
16152 | * ipa-modref.c (analyze_ssa_name_flags): Improve handling of return slot. | |
16153 | ||
16154 | 2021-08-23 Xi Ruoyao <xry111@mengyan1223.wang> | |
16155 | ||
16156 | PR target/101922 | |
16157 | * config/mips/mips-protos.h (mips_msa_output_shift_immediate): | |
16158 | Declare. | |
16159 | * config/mips/mips.c (mips_msa_output_shift_immediate): New | |
16160 | function. | |
16161 | * config/mips/mips-msa.md (vashl<mode>3, vashr<mode>3, | |
16162 | vlshr<mode>3): Call it. | |
16163 | ||
16164 | 2021-08-22 Jan Hubicka <hubicka@ucw.cz> | |
16165 | Martin Liska <mliska@suse.cz> | |
16166 | ||
16167 | PR middle-end/101949 | |
16168 | * ipa-modref.c (analyze_ssa_name_flags): Indirect call implies | |
16169 | ~EAF_NOCLOBBER. | |
16170 | ||
16171 | 2021-08-21 Dragan Mladjenovic <OT_Dragan.Mladjenovic@mediatek.com> | |
16172 | ||
16173 | * config/mips/mips.c (mips_function_rodata_section, | |
16174 | TARGET_ASM_FUNCTION_RODATA_SECTION): Removed. | |
16175 | ||
16176 | 2021-08-21 John David Anglin <danglin@gcc.gnu.org> | |
16177 | ||
16178 | * config/pa/pa.c (pa_asm_output_aligned_common): Remove warning. | |
16179 | ||
16180 | 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> | |
16181 | ||
16182 | * configure.ac (thread-local storage support): Remove tls_first_major | |
16183 | and tls_first_minor. Use "$conftest_s" to check support. | |
16184 | * configure: Regenerate. | |
16185 | ||
16186 | 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> | |
16187 | ||
16188 | * configure.ac: Fixup formatting. | |
16189 | ||
16190 | 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> | |
16191 | ||
16192 | * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Remove third argument and ... | |
16193 | * configure.ac: ... update all callers. | |
16194 | ||
16195 | 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> | |
16196 | ||
16197 | PR target/91602 | |
16198 | * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION, _gcc_GAS_VERSION_GTE_IFELSE) | |
16199 | (gcc_GAS_VERSION_GTE_IFELSE): Remove. | |
16200 | (gcc_GAS_CHECK_FEATURE): Do not handle in-tree case specially. | |
16201 | * configure.ac: Remove gcc_cv_gas_major_version, gcc_cv_gas_minor_version. | |
16202 | Remove remaining checks for in-tree assembler. | |
16203 | * configure: Regenerate. | |
16204 | ||
16205 | 2021-08-20 Jeff Law <jlaw@localhost.localdomain> | |
16206 | ||
16207 | * config/h8300/h8300.c (shift_alg_hi): Improve arithmetic shift right | |
16208 | by 15 bits for H8/300H and H8/S. Improve logical shifts by 12 | |
16209 | bits for H8/S. | |
16210 | (shift_alg_si): Improve arithmetic right shift by 28-30 bits for | |
16211 | H8/300H. Improve arithmetic shift right by 15 bits for H8/S. | |
16212 | Improve logical shifts by 27 bits for H8/S. | |
16213 | (get_shift_alg): Corresponding changes. | |
16214 | (h8300_option_override): Revert to loops for -Os when profitable. | |
16215 | ||
16216 | 2021-08-20 Richard Biener <rguenther@suse.de> | |
16217 | ||
16218 | * tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare | |
16219 | BBs. | |
16220 | (vect_analyze_data_ref_accesses): Likewise. Assign the BB | |
16221 | index as group_id when dataref_groups were not computed. | |
16222 | * tree-vect-slp.c (vect_slp_bbs): Bump current_group when | |
16223 | we advace to the next BB. | |
16224 | ||
16225 | 2021-08-20 Jakub Jelinek <jakub@redhat.com> | |
16226 | ||
16227 | * omp-builtins.def (BUILT_IN_GOMP_WARNING, BUILT_IN_GOMP_ERROR): New | |
16228 | builtins. | |
16229 | ||
16230 | 2021-08-20 Martin Liska <mliska@suse.cz> | |
16231 | ||
16232 | PR gcov-profile/89961 | |
16233 | * gcov.c (make_gcov_file_name): Rewrite using std::string. | |
16234 | (mangle_name): Simplify, do not used the second argument. | |
16235 | (strip_extention): New function. | |
16236 | (get_md5sum): Likewise. | |
16237 | (get_gcov_intermediate_filename): Handle properly -p and -x | |
16238 | options. | |
16239 | (output_gcov_file): Use string type. | |
16240 | (generate_results): Likewise. | |
16241 | (md5sum_to_hex): Remove. | |
16242 | ||
16243 | 2021-08-20 Michael Meissner <meissner@linux.ibm.com> | |
16244 | ||
16245 | * config/rs6000/altivec.md (UNSPEC_XXEVAL): Move to vsx.md. | |
16246 | (UNSPEC_XXSPLTIW): Move to vsx.md. | |
16247 | (UNSPEC_XXSPLTID): Move to vsx.md. | |
16248 | (UNSPEC_XXSPLTI32DX): Move to vsx.md. | |
16249 | (UNSPEC_XXBLEND): Move to vsx.md. | |
16250 | (UNSPEC_XXPERMX): Move to vsx.md. | |
16251 | (VM3): Move to vsx.md. | |
16252 | (VM3_char): Move to vsx.md. | |
16253 | (xxspltiw_v4si): Move to vsx.md. | |
16254 | (xxspltiw_v4sf): Move to vsx.md. | |
16255 | (xxspltiw_v4sf_inst): Move to vsx.md. | |
16256 | (xxspltidp_v2df): Move to vsx.md. | |
16257 | (xxspltidp_v2df_inst): Move to vsx.md. | |
16258 | (xxsplti32dx_v4si_inst): Move to vsx.md. | |
16259 | (xxsplti32dx_v4sf): Move to vsx.md. | |
16260 | (xxsplti32dx_v4sf_inst): Move to vsx.md. | |
16261 | (xxblend_<mode>): Move to vsx.md. | |
16262 | (xxpermx): Move to vsx.md. | |
16263 | (xxpermx_inst): Move to vsx.md. | |
16264 | * config/rs6000/vsx.md (UNSPEC_XXEVAL): Move from altivec.md. | |
16265 | (UNSPEC_XXSPLTIW): Move from altivec.md. | |
16266 | (UNSPEC_XXSPLTID): Move from altivec.md. | |
16267 | (UNSPEC_XXSPLTI32DX): Move from altivec.md. | |
16268 | (UNSPEC_XXBLEND): Move from altivec.md. | |
16269 | (UNSPEC_XXPERMX): Move from altivec.md. | |
16270 | (VM3): Move from altivec.md. | |
16271 | (VM3_char): Move from altivec.md. | |
16272 | (xxspltiw_v4si): Move from altivec.md. | |
16273 | (xxspltiw_v4sf): Move from altivec.md. | |
16274 | (xxspltiw_v4sf_inst): Move from altivec.md. | |
16275 | (xxspltidp_v2df): Move from altivec.md. | |
16276 | (xxspltidp_v2df_inst): Move from altivec.md. | |
16277 | (xxsplti32dx_v4si_inst): Move from altivec.md. | |
16278 | (xxsplti32dx_v4sf): Move from altivec.md. | |
16279 | (xxsplti32dx_v4sf_inst): Move from altivec.md. | |
16280 | (xxblend_<mode>): Move from altivec.md. | |
16281 | (xxpermx): Move from altivec.md. | |
16282 | (xxpermx_inst): Move from altivec.md. | |
16283 | ||
16284 | 2021-08-19 Roger Sayle <roger@nextmovesoftware.com> | |
16285 | ||
16286 | * tree-vect-generic.c (expand_vector_operations_1): Use either | |
16287 | gimplify_build1 or gimplify_build2 instead of gimple_build_assign | |
16288 | when constructing scalar splat expressions. | |
16289 | ||
16290 | 2021-08-19 Peter Bergner <bergner@linux.ibm.com> | |
16291 | ||
16292 | PR target/101849 | |
16293 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast | |
16294 | pointer to __vector_pair *. | |
16295 | ||
16296 | 2021-08-19 Martin Sebor <msebor@redhat.com> | |
16297 | ||
16298 | * gimple-range.cc: Add comments. | |
16299 | * gimple-range.h: Same. | |
16300 | ||
16301 | 2021-08-19 Martin Sebor <msebor@redhat.com> | |
16302 | ||
16303 | PR middle-end/101984 | |
16304 | * gimple-ssa-warn-access.cc (pass_waccess::execute): Also call | |
16305 | disable_ranger. | |
16306 | ||
16307 | 2021-08-19 Jeff Law <jlaw@localhost.localdomain> | |
16308 | ||
16309 | * config.gcc (h8300-*-elf*): Do not include dbxelf.h. | |
16310 | (h8300-*-linux*, v850-*-rtems*, v850*-elf*): Likewise. | |
16311 | * config/v850/v850.h (DEFAULT_GDB_EXTENSIONS): Remove. | |
16312 | ||
16313 | 2021-08-19 Jakub Jelinek <jakub@redhat.com> | |
16314 | ||
16315 | PR middle-end/101950 | |
16316 | * optabs.c (expand_clrsb_using_clz): New function. | |
16317 | (expand_unop): Use it as another clrsb expansion fallback. | |
16318 | ||
16319 | 2021-08-19 liuhongt <hongtao.liu@intel.com> | |
16320 | ||
16321 | Revert: | |
16322 | 2021-07-28 liuhongt <hongtao.liu@intel.com> | |
16323 | ||
16324 | PR target/99881 | |
16325 | * config/i386/i386.h (processor_costs): Add new member | |
16326 | integer_to_sse. | |
16327 | * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, | |
16328 | i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, | |
16329 | geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, | |
16330 | bdver_cost, znver1_cost, znver2_cost, znver3_cost, | |
16331 | btver1_cost, btver2_cost, btver3_cost, pentium4_cost, | |
16332 | nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, | |
16333 | generic_cost, core_cost): Initialize integer_to_sse same value | |
16334 | as sse_op. | |
16335 | (skylake_cost): Initialize integer_to_sse twice as much as sse_op. | |
16336 | * config/i386/i386.c (ix86_builtin_vectorization_cost): | |
16337 | Use integer_to_sse instead of sse_op to calculate the cost of | |
16338 | vec_construct. | |
16339 | ||
16340 | 2021-08-18 Iain Sandoe <iain@sandoe.co.uk> | |
16341 | ||
16342 | * config.gcc: Include rpath.opt for Darwin. | |
16343 | * config/darwin.h (DRIVER_SELF_SPECS): Handle -rpath. | |
16344 | ||
16345 | 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> | |
16346 | ||
16347 | PR bootstrap/101959 | |
16348 | * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): | |
16349 | Use an 'int_hash'. | |
16350 | ||
16351 | 2021-08-18 Jonathan Wright <jonathan.wright@arm.com> | |
16352 | ||
16353 | * config/aarch64/arm_neon.h (vld3_lane_f64): Use float RTL | |
16354 | pattern and type cast. | |
16355 | (vld4_lane_f32): Use float RTL pattern. | |
16356 | (vld4q_lane_f64): Use float type cast. | |
16357 | ||
16358 | 2021-08-18 Jan Hubicka <hubicka@ucw.cz> | |
16359 | ||
16360 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Check also | |
16361 | EAF_NOREAD. | |
16362 | ||
16363 | 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> | |
16364 | ||
16365 | * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Extend. | |
16366 | (test_map_of_type_with_ctor_and_dtor_expand): Add function. | |
16367 | (hash_map_tests_c_tests): Call it. | |
16368 | ||
16369 | 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> | |
16370 | ||
16371 | * ggc.h (enum ggc_collect): New. | |
16372 | (ggc_collect): Use it. | |
16373 | * ggc-page.c: Adjust. | |
16374 | * ggc-common.c: Likewise. | |
16375 | * ggc-tests.c: Likewise. | |
16376 | * read-rtl-function.c: Likewise. | |
16377 | * selftest-run-tests.c: Likewise. | |
16378 | * doc/gty.texi (Invoking the garbage collector): Likewise. | |
16379 | ||
16380 | 2021-08-18 liuhongt <hongtao.liu@intel.com> | |
16381 | ||
16382 | PR target/97147 | |
16383 | * config/i386/i386.h (TARGET_V2DF_REDUCTION_PREFER_HADDPD): | |
16384 | New macro. | |
16385 | * config/i386/sse.md (*sse3_haddv2df3_low): Add | |
16386 | TARGET_V2DF_REDUCTION_PREFER_HADDPD. | |
16387 | (*sse3_hsubv2df3_low): Ditto. | |
16388 | * config/i386/x86-tune.def | |
16389 | (X86_TUNE_V2DF_REDUCTION_PREFER_HADDPD): New tune. | |
16390 | ||
16391 | 2021-08-17 Andrew MacLeod <amacleod@redhat.com> | |
16392 | ||
16393 | * gimple-range-gori.cc (gori_compute::gori_compute): Enable tracing. | |
16394 | (gori_compute::compute_operand_range): Add tracing. | |
16395 | (gori_compute::logical_combine): Ditto. | |
16396 | (gori_compute::compute_logical_operands): Ditto. | |
16397 | (gori_compute::compute_operand1_range): Ditto. | |
16398 | (gori_compute::compute_operand2_range): Ditto. | |
16399 | (gori_compute::outgoing_edge_range_p): Ditto. | |
16400 | * gimple-range-gori.h (class gori_compute): Add range_tracer. | |
16401 | ||
16402 | 2021-08-17 Andrew MacLeod <amacleod@redhat.com> | |
16403 | ||
16404 | * flag-types.h (enum evrp_mode): Adjust evrp-mode values. | |
16405 | * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Relocate from. | |
16406 | * gimple-range-trace.h (DEBUG_RANGE_CACHE): Here. | |
16407 | * params.opt (--param=evrp-mode): Adjust options. | |
16408 | ||
16409 | 2021-08-17 Andrew MacLeod <amacleod@redhat.com> | |
16410 | ||
16411 | * Makefile.in (OBJS): Add gimple-range-trace.o. | |
16412 | * gimple-range-cache.h (enable_new_values): Remove unused prototype. | |
16413 | * gimple-range-fold.cc: Adjust headers. | |
16414 | * gimple-range-trace.cc: New. | |
16415 | * gimple-range-trace.h: New. | |
16416 | * gimple-range.cc (gimple_ranger::gimple_ranger): Enable tracer. | |
16417 | (gimple_ranger::range_of_expr): Add tracing. | |
16418 | (gimple_ranger::range_on_entry): Ditto. | |
16419 | (gimple_ranger::range_on_exit): Ditto. | |
16420 | (gimple_ranger::range_on_edge): Ditto. | |
16421 | (gimple_ranger::fold_range_internal): Ditto. | |
16422 | (gimple_ranger::dump_bb): Do not calculate edge range twice. | |
16423 | (trace_ranger::*): Remove. | |
16424 | (enable_ranger): Never create a trace_ranger. | |
16425 | (debug_seed_ranger): Move to gimple-range-trace.cc. | |
16426 | (dump_ranger): Ditto. | |
16427 | (debug_ranger): Ditto. | |
16428 | * gimple-range.h: Include gimple-range-trace.h. | |
16429 | (range_on_entry, range_on_exit): No longer virtual. | |
16430 | (class trace_ranger): Remove. | |
16431 | (DEBUG_RANGE_CACHE): Move to gimple-range-trace.h. | |
16432 | ||
16433 | 2021-08-17 Martin Sebor <msebor@redhat.com> | |
16434 | ||
16435 | PR middle-end/101854 | |
16436 | * builtins.c (expand_builtin_alloca): Move warning code to check_alloca | |
16437 | in gimple-ssa-warn-access.cc. | |
16438 | * calls.c (alloc_max_size): Move code to check_alloca. | |
16439 | (get_size_range): Move to pointer-query.cc. | |
16440 | (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.cc. | |
16441 | (get_attr_nonstring_decl): Move to tree.c. | |
16442 | (fntype_argno_type): Move to gimple-ssa-warn-access.cc. | |
16443 | (append_attrname): Same. | |
16444 | (maybe_warn_rdwr_sizes): Same. | |
16445 | (initialize_argument_information): Move code to | |
16446 | gimple-ssa-warn-access.cc. | |
16447 | * calls.h (maybe_warn_alloc_args_overflow): Move to | |
16448 | gimple-ssa-warn-access.h. | |
16449 | (get_attr_nonstring_decl): Move to tree.h. | |
16450 | (maybe_warn_nonstring_arg): Move to gimple-ssa-warn-access.h. | |
16451 | (enum size_range_flags): Move to pointer-query.h. | |
16452 | (get_size_range): Same. | |
16453 | * gimple-ssa-warn-access.cc (has_location): Remove unused overload | |
16454 | to avoid Clang -Wunused-function. | |
16455 | (get_size_range): Declare static. | |
16456 | (maybe_emit_free_warning): Rename... | |
16457 | (maybe_check_dealloc_call): ...to this for consistency. | |
16458 | (class pass_waccess): Add members. | |
16459 | (pass_waccess::~pass_waccess): Defined. | |
16460 | (alloc_max_size): Move here from calls.c. | |
16461 | (maybe_warn_alloc_args_overflow): Same. | |
16462 | (check_alloca): New function. | |
16463 | (check_alloc_size_call): New function. | |
16464 | (check_strncat): Handle another warning flag. | |
16465 | (pass_waccess::check_builtin): Handle alloca. | |
16466 | (fntype_argno_type): Move here from calls.c. | |
16467 | (append_attrname): Same. | |
16468 | (maybe_warn_rdwr_sizes): Same. | |
16469 | (pass_waccess::check_call): Define. | |
16470 | (check_nonstring_args): New function. | |
16471 | (pass_waccess::check): Call new member functions. | |
16472 | (pass_waccess::execute): Enable ranger. | |
16473 | * gimple-ssa-warn-access.h (get_size_range): Move here from calls.h. | |
16474 | (maybe_warn_nonstring_arg): Same. | |
16475 | * gimple-ssa-warn-restrict.c: Remove #include. | |
16476 | * pointer-query.cc (get_size_range): Move here from calls.c. | |
16477 | * pointer-query.h (enum size_range_flags): Same. | |
16478 | (get_size_range): Same. | |
16479 | * tree.c (get_attr_nonstring_decl): Move here from calls.c. | |
16480 | * tree.h (get_attr_nonstring_decl): Move here from calls.h. | |
16481 | ||
16482 | 2021-08-17 Thomas Schwinge <thomas@codesourcery.com> | |
16483 | ||
16484 | * ggc.h (ggc_collect): Add 'force_collect' parameter. | |
16485 | * ggc-page.c (ggc_collect): Use that one instead of global | |
16486 | 'ggc_force_collect'. Adjust all users. | |
16487 | * doc/gty.texi (Invoking the garbage collector): Update. | |
16488 | * ggc-internal.h (ggc_force_collect): Remove. | |
16489 | * ggc-common.c (ggc_force_collect): Likewise. | |
16490 | * selftest.h (forcibly_ggc_collect): Remove. | |
16491 | * ggc-tests.c (selftest::forcibly_ggc_collect): Likewise. | |
16492 | * read-rtl-function.c (test_loading_labels): Adjust. | |
16493 | * selftest-run-tests.c (run_tests): Likewise. | |
16494 | ||
16495 | 2021-08-17 Iain Sandoe <iain@sandoe.co.uk> | |
16496 | ||
16497 | * config/darwin.c (darwin_file_end): Reset and reclaim the | |
16498 | section names table at the end of compile. | |
16499 | ||
16500 | 2021-08-17 Iain Sandoe <iain@sandoe.co.uk> | |
16501 | ||
16502 | PR target/100340 | |
16503 | * config.in: Regenerate. | |
16504 | * config/i386/darwin.h (EXTRA_ASM_OPTS): New | |
16505 | (ASM_SPEC): Pass options to disable branch shortening where | |
16506 | needed. | |
16507 | * configure: Regenerate. | |
16508 | * configure.ac: Detect versions of 'as' that support the | |
16509 | optimisation which has the bug. | |
16510 | ||
16511 | 2021-08-17 Richard Biener <rguenther@suse.de> | |
16512 | ||
16513 | * optabs-query.c (supports_vec_gather_load_p): Also check | |
16514 | for masked optabs. | |
16515 | (supports_vec_scatter_store_p): Likewise. | |
16516 | * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Fall | |
16517 | back to masked variants if non-masked are not supported. | |
16518 | * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): | |
16519 | When we need to use masked gather/scatter but do not have | |
16520 | a mask set up a constant true one. | |
16521 | * tree-vect-stmts.c (vect_check_scalar_mask): Also allow | |
16522 | non-SSA_NAME masks. | |
16523 | ||
16524 | 2021-08-17 Roger Sayle <roger@nextmovesoftware.com> | |
16525 | ||
16526 | * tree-ssa-ccp.c (bit_value_binop) [MINUS_EXPR]: Use same | |
16527 | algorithm as PLUS_EXPR to improve subtraction bit bounds. | |
16528 | [POINTER_DIFF_EXPR]: Treat as synonymous with MINUS_EXPR. | |
16529 | ||
16530 | 2021-08-17 Roger Sayle <roger@nextmovesoftware.com> | |
16531 | ||
16532 | * tree-ssa-ccp.c (bit_value_mult_const): New helper function to | |
16533 | calculate the mask-value pair result of a multiplication by an | |
16534 | unsigned constant. | |
16535 | (bit_value_binop) [MULT_EXPR]: Call it from here for | |
16536 | multiplications by (sparse) non-negative constants. | |
16537 | ||
16538 | 2021-08-17 Christophe Lyon <christophe.lyon@foss.st.com> | |
16539 | ||
16540 | PR target/100896 | |
16541 | * config.gcc (gcc_cv_initfini_array): Leave undefined for | |
16542 | uclinuxfdpiceabi targets. | |
16543 | ||
16544 | 2021-08-17 Alexandre Oliva <oliva@adacore.com> | |
16545 | ||
16546 | * tree-inline.c (maybe_move_debug_stmts_to_successors): Don't | |
16547 | reverse debug stmts. | |
16548 | ||
16549 | 2021-08-17 Alexandre Oliva <oliva@adacore.com> | |
16550 | ||
16551 | * tree-cfg.c (dump_function_to_file): Use fun, not cfun. | |
16552 | ||
16553 | 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> | |
16554 | ||
16555 | * config/aarch64/arm_neon.h (__LD4_LANE_FUNC): Delete. | |
16556 | (__LD4Q_LANE_FUNC): Likewise. | |
16557 | (vld4_lane_u8): Define without macro. | |
16558 | (vld4_lane_u16): Likewise. | |
16559 | (vld4_lane_u32): Likewise. | |
16560 | (vld4_lane_u64): Likewise. | |
16561 | (vld4_lane_s8): Likewise. | |
16562 | (vld4_lane_s16): Likewise. | |
16563 | (vld4_lane_s32): Likewise. | |
16564 | (vld4_lane_s64): Likewise. | |
16565 | (vld4_lane_f16): Likewise. | |
16566 | (vld4_lane_f32): Likewise. | |
16567 | (vld4_lane_f64): Likewise. | |
16568 | (vld4_lane_p8): Likewise. | |
16569 | (vld4_lane_p16): Likewise. | |
16570 | (vld4_lane_p64): Likewise. | |
16571 | (vld4q_lane_u8): Likewise. | |
16572 | (vld4q_lane_u16): Likewise. | |
16573 | (vld4q_lane_u32): Likewise. | |
16574 | (vld4q_lane_u64): Likewise. | |
16575 | (vld4q_lane_s8): Likewise. | |
16576 | (vld4q_lane_s16): Likewise. | |
16577 | (vld4q_lane_s32): Likewise. | |
16578 | (vld4q_lane_s64): Likewise. | |
16579 | (vld4q_lane_f16): Likewise. | |
16580 | (vld4q_lane_f32): Likewise. | |
16581 | (vld4q_lane_f64): Likewise. | |
16582 | (vld4q_lane_p8): Likewise. | |
16583 | (vld4q_lane_p16): Likewise. | |
16584 | (vld4q_lane_p64): Likewise. | |
16585 | (vld4_lane_bf16): Likewise. | |
16586 | (vld4q_lane_bf16): Likewise. | |
16587 | ||
16588 | 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> | |
16589 | ||
16590 | * config/aarch64/arm_neon.h (__LD3_LANE_FUNC): Delete. | |
16591 | (__LD3Q_LANE_FUNC): Delete. | |
16592 | (vld3_lane_u8): Define without macro. | |
16593 | (vld3_lane_u16): Likewise. | |
16594 | (vld3_lane_u32): Likewise. | |
16595 | (vld3_lane_u64): Likewise. | |
16596 | (vld3_lane_s8): Likewise. | |
16597 | (vld3_lane_s16): Likewise. | |
16598 | (vld3_lane_s32): Likewise. | |
16599 | (vld3_lane_s64): Likewise. | |
16600 | (vld3_lane_f16): Likewise. | |
16601 | (vld3_lane_f32): Likewise. | |
16602 | (vld3_lane_f64): Likewise. | |
16603 | (vld3_lane_p8): Likewise. | |
16604 | (vld3_lane_p16): Likewise. | |
16605 | (vld3_lane_p64): Likewise. | |
16606 | (vld3q_lane_u8): Likewise. | |
16607 | (vld3q_lane_u16): Likewise. | |
16608 | (vld3q_lane_u32): Likewise. | |
16609 | (vld3q_lane_u64): Likewise. | |
16610 | (vld3q_lane_s8): Likewise. | |
16611 | (vld3q_lane_s16): Likewise. | |
16612 | (vld3q_lane_s32): Likewise. | |
16613 | (vld3q_lane_s64): Likewise. | |
16614 | (vld3q_lane_f16): Likewise. | |
16615 | (vld3q_lane_f32): Likewise. | |
16616 | (vld3q_lane_f64): Likewise. | |
16617 | (vld3q_lane_p8): Likewise. | |
16618 | (vld3q_lane_p16): Likewise. | |
16619 | (vld3q_lane_p64): Likewise. | |
16620 | (vld3_lane_bf16): Likewise. | |
16621 | (vld3q_lane_bf16): Likewise. | |
16622 | ||
16623 | 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> | |
16624 | ||
16625 | * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Delete. | |
16626 | (__LD2Q_LANE_FUNC): Likewise. | |
16627 | (vld2_lane_u8): Define without macro. | |
16628 | (vld2_lane_u16): Likewise. | |
16629 | (vld2_lane_u32): Likewise. | |
16630 | (vld2_lane_u64): Likewise. | |
16631 | (vld2_lane_s8): Likewise. | |
16632 | (vld2_lane_s16): Likewise. | |
16633 | (vld2_lane_s32): Likewise. | |
16634 | (vld2_lane_s64): Likewise. | |
16635 | (vld2_lane_f16): Likewise. | |
16636 | (vld2_lane_f32): Likewise. | |
16637 | (vld2_lane_f64): Likewise. | |
16638 | (vld2_lane_p8): Likewise. | |
16639 | (vld2_lane_p16): Likewise. | |
16640 | (vld2_lane_p64): Likewise. | |
16641 | (vld2q_lane_u8): Likewise. | |
16642 | (vld2q_lane_u16): Likewise. | |
16643 | (vld2q_lane_u32): Likewise. | |
16644 | (vld2q_lane_u64): Likewise. | |
16645 | (vld2q_lane_s8): Likewise. | |
16646 | (vld2q_lane_s16): Likewise. | |
16647 | (vld2q_lane_s32): Likewise. | |
16648 | (vld2q_lane_s64): Likewise. | |
16649 | (vld2q_lane_f16): Likewise. | |
16650 | (vld2q_lane_f32): Likewise. | |
16651 | (vld2q_lane_f64): Likewise. | |
16652 | (vld2q_lane_p8): Likewise. | |
16653 | (vld2q_lane_p16): Likewise. | |
16654 | (vld2q_lane_p64): Likewise. | |
16655 | (vld2_lane_bf16): Likewise. | |
16656 | (vld2q_lane_bf16): Likewise. | |
16657 | ||
16658 | 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
16659 | ||
16660 | * haifa-sched.c (advance_one_cycle): Output more context-synchronization | |
16661 | lines for diff. | |
16662 | ||
16663 | 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
16664 | ||
16665 | * haifa-sched.c (enum rfs_decision, rfs_str): Add RFS_AUTOPREF. | |
16666 | (rank_for_schedule): Use it. | |
16667 | ||
16668 | 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
16669 | ||
16670 | PR rtl-optimization/91598 | |
16671 | * haifa-sched.c (autopref_rank_for_schedule): Prioritize "irrelevant" | |
16672 | insns after memory reads and before memory writes. | |
16673 | ||
16674 | 2021-08-17 Alistair_Lee <alistair.lee@arm.com> | |
16675 | ||
16676 | * rtl.h (CONST_VECTOR_P): New macro. | |
16677 | * config/aarch64/aarch64.c (aarch64_get_sve_pred_bits): Use RTL | |
16678 | code testing macros. | |
16679 | (aarch64_ptrue_all_mode): Likewise. | |
16680 | (aarch64_expand_mov_immediate): Likewise. | |
16681 | (aarch64_const_vec_all_in_range_p): Likewise. | |
16682 | (aarch64_rtx_costs): Likewise. | |
16683 | (aarch64_legitimate_constant_p): Likewise. | |
16684 | (aarch64_simd_valid_immediate): Likewise. | |
16685 | (aarch64_simd_make_constant): Likewise. | |
16686 | (aarch64_convert_mult_to_shift): Likewise. | |
16687 | (aarch64_expand_sve_vec_perm): Likewise. | |
16688 | (aarch64_vec_fpconst_pow_of_2): Likewise. | |
16689 | ||
16690 | 2021-08-17 Andrew MacLeod <amacleod@redhat.com> | |
16691 | ||
16692 | PR tree-optimization/101938 | |
16693 | * range-op.cc (operator_abs::op1_range): Special case | |
16694 | -TYPE_MIN_VALUE for flag_wrapv. | |
16695 | ||
16696 | 2021-08-17 Kewen Lin <linkw@linux.ibm.com> | |
16697 | ||
16698 | * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Add the cost for | |
16699 | value extraction. | |
16700 | ||
16701 | 2021-08-17 Jakub Jelinek <jakub@redhat.com> | |
16702 | ||
16703 | * tree.def (OMP_SCOPE): New tree code. | |
16704 | * tree.h (OMP_SCOPE_BODY, OMP_SCOPE_CLAUSES): Define. | |
16705 | * tree-nested.c (convert_nonlocal_reference_stmt, | |
16706 | convert_local_reference_stmt, convert_gimple_call): Handle | |
16707 | GIMPLE_OMP_SCOPE. | |
16708 | * tree-pretty-print.c (dump_generic_node): Handle OMP_SCOPE. | |
16709 | * gimple.def (GIMPLE_OMP_SCOPE): New gimple code. | |
16710 | * gimple.c (gimple_build_omp_scope): New function. | |
16711 | (gimple_copy): Handle GIMPLE_OMP_SCOPE. | |
16712 | * gimple.h (gimple_build_omp_scope): Declare. | |
16713 | (gimple_has_substatements): Handle GIMPLE_OMP_SCOPE. | |
16714 | (gimple_omp_scope_clauses, gimple_omp_scope_clauses_ptr, | |
16715 | gimple_omp_scope_set_clauses): New inline functions. | |
16716 | (CASE_GIMPLE_OMP): Add GIMPLE_OMP_SCOPE. | |
16717 | * gimple-pretty-print.c (dump_gimple_omp_scope): New function. | |
16718 | (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCOPE. | |
16719 | * gimple-walk.c (walk_gimple_stmt): Likewise. | |
16720 | * gimple-low.c (lower_stmt): Likewise. | |
16721 | * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. | |
16722 | (gimplify_scan_omp_clauses): For task reductions, handle OMP_SCOPE | |
16723 | like ORT_WORKSHARE constructs. Adjust diagnostics for %<scope%> | |
16724 | allowing task reductions. Reject inscan reductions on scope. | |
16725 | (omp_find_stores_stmt): Handle GIMPLE_OMP_SCOPE. | |
16726 | (gimplify_omp_workshare, gimplify_expr): Handle OMP_SCOPE. | |
16727 | * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_SCOPE. | |
16728 | (estimate_num_insns): Likewise. | |
16729 | * omp-low.c (build_outer_var_ref): Look through GIMPLE_OMP_SCOPE | |
16730 | contexts if var isn't privatized there. | |
16731 | (check_omp_nesting_restrictions): Handle GIMPLE_OMP_SCOPE. | |
16732 | (scan_omp_1_stmt): Likewise. | |
16733 | (maybe_add_implicit_barrier_cancel): Look through outer | |
16734 | scope constructs. | |
16735 | (lower_omp_scope): New function. | |
16736 | (lower_omp_task_reductions): Handle OMP_SCOPE. | |
16737 | (lower_omp_1): Handle GIMPLE_OMP_SCOPE. | |
16738 | (diagnose_sb_1, diagnose_sb_2): Likewise. | |
16739 | * omp-expand.c (expand_omp_single): Support also GIMPLE_OMP_SCOPE. | |
16740 | (expand_omp): Handle GIMPLE_OMP_SCOPE. | |
16741 | (omp_make_gimple_edges): Likewise. | |
16742 | * omp-builtins.def (BUILT_IN_GOMP_SCOPE_START): New built-in. | |
16743 | ||
16744 | 2021-08-17 Richard Biener <rguenther@suse.de> | |
16745 | ||
16746 | PR tree-optimization/101925 | |
16747 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set | |
16748 | reverse on COMPONENT_REF and ARRAY_REF according to | |
16749 | what reverse_storage_order_for_component_p does. | |
16750 | (vn_reference_eq): Compare reversed on reference ops. | |
16751 | (reverse_storage_order_for_component_p): New overload. | |
16752 | (vn_reference_lookup_3): Check reverse_storage_order_for_component_p | |
16753 | on the reference looked up. | |
16754 | ||
16755 | 2021-08-17 Jeff Law <jlaw@localhost.localdomain> | |
16756 | ||
16757 | * config/h8300/h8300.c (shift_alg_si): Avoid loops for most SImode | |
16758 | shifts on the H8/S. | |
16759 | (h8300_option_override): Use loops on H8/S more often when optimizing | |
16760 | for size. | |
16761 | (get_shift_alg): Handle new "special" cases on H8/S. Simplify | |
16762 | accordingly. Handle various arithmetic right shifts with special | |
16763 | sequences that we couldn't handle before. | |
16764 | ||
16765 | 2021-08-16 Jeff Law <jlaw@localhost.localdomain> | |
16766 | ||
16767 | * config.gcc (rl78-*-elf*): Do not include dbxelf.h. | |
16768 | ||
16769 | 2021-08-16 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
16770 | ||
16771 | * config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define. | |
16772 | * config/sparc/sparc.c (sparc_gcov_type_size): New. | |
16773 | (TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined. | |
16774 | * coverage.c (get_gcov_type): Use targetm.gcov_type_size(). | |
16775 | * doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc". | |
16776 | * doc/tm.texi.in: Regenerate. | |
16777 | * target.def (gcov_type_size): New target hook. | |
16778 | * targhooks.c (default_gcov_type_size): New. | |
16779 | * targhooks.h (default_gcov_type_size): Declare. | |
16780 | * tree-profile.c (gimple_gen_edge_profiler): Use precision of | |
16781 | gcov_type_node. | |
16782 | (gimple_gen_time_profiler): Likewise. | |
16783 | ||
16784 | 2021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> | |
16785 | ||
16786 | * dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset. | |
16787 | ||
16788 | 2021-08-16 Tobias Burnus <tobias@codesourcery.com> | |
16789 | ||
16790 | PR middle-end/101931 | |
16791 | * omp-low.c (omp_runtime_api_call): Update for routines | |
16792 | added in the meanwhile. | |
16793 | ||
16794 | 2021-08-16 Martin Liska <mliska@suse.cz> | |
16795 | ||
16796 | PR tree-optimization/100393 | |
16797 | * tree-switch-conversion.c (group_cluster::dump): Use | |
16798 | get_comparison_count. | |
16799 | (jump_table_cluster::find_jump_tables): Pre-compute number of | |
16800 | comparisons and then decrement it. Cache also max_ratio. | |
16801 | (jump_table_cluster::can_be_handled): Change signature. | |
16802 | * tree-switch-conversion.h (get_comparison_count): New. | |
16803 | ||
16804 | 2021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> | |
16805 | ||
16806 | * dwarf2out.c (add_data_member_location_attribute): Use GNAT | |
16807 | encodings only when -fgnat-encodings=all is specified. | |
16808 | (add_bound_info): Likewise. | |
16809 | (add_byte_size_attribute): Likewise. | |
16810 | (gen_member_die): Likewise. | |
16811 | ||
16812 | 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> | |
16813 | ||
16814 | * omp-oacc-neuter-broadcast.cc | |
16815 | (execute_omp_oacc_neuter_broadcast): Plug 'par' memory leak. | |
16816 | ||
16817 | 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> | |
16818 | ||
16819 | * omp-oacc-neuter-broadcast.cc | |
16820 | (execute_omp_oacc_neuter_broadcast): Clarify memory management for | |
16821 | 'prop_set'. | |
16822 | ||
16823 | 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> | |
16824 | ||
16825 | * omp-oacc-neuter-broadcast.cc (field_map): Move variable into... | |
16826 | (execute_omp_oacc_neuter_broadcast): ... here. | |
16827 | (install_var_field, build_receiver_ref, build_sender_ref): Take | |
16828 | 'field_map_t *' parameter. Adjust all users. | |
16829 | (worker_single_copy, neuter_worker_single): Take a | |
16830 | 'record_field_map_t *' parameter. Adjust all users. | |
16831 | ||
16832 | 2021-08-16 liuhongt <hongtao.liu@intel.com> | |
16833 | ||
16834 | PR target/101930 | |
16835 | * config/i386/i386.md (ldexp<mode>3): Force operands[1] to | |
16836 | reg. | |
16837 | ||
16838 | 2021-08-16 Martin Liska <mliska@suse.cz> | |
16839 | ||
16840 | PR ipa/101726 | |
16841 | * multiple_target.c (create_dispatcher_calls): Make default | |
16842 | function local only if it is a definition. | |
16843 | ||
16844 | 2021-08-16 Martin Liska <mliska@suse.cz> | |
16845 | ||
16846 | PR ipa/100600 | |
16847 | * ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not | |
16848 | consider equal SSA_NAMEs when one is a param. | |
16849 | ||
16850 | 2021-08-16 liuhongt <hongtao.liu@intel.com> | |
16851 | ||
16852 | PR target/101846 | |
16853 | * config/i386/i386-expand.c (ix86_expand_vec_perm_vpermt2): | |
16854 | Support vpermi2b for V32QI/V16QImode. | |
16855 | (ix86_extract_perm_from_pool_constant): New function. | |
16856 | (ix86_expand_vec_one_operand_perm_avx512): Support | |
16857 | vpermw/vpermb under TARGET_AVX512BW/TARGET_AVX512VBMI. | |
16858 | (expand_vec_perm_1): Adjust comments for upper. | |
16859 | * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): | |
16860 | New declare. | |
16861 | * config/i386/predicates.md (permvar_truncate_operand): New predicate. | |
16862 | (pshufb_truncv4siv4hi_operand): Ditto. | |
16863 | (pshufb_truncv8hiv8qi_operand): Ditto. | |
16864 | * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1): | |
16865 | New pre_reload define_insn_and_split. | |
16866 | (*avx512f_permvar_truncv8siv8hi_1): Ditto. | |
16867 | (*avx512f_vpermvar_truncv8div8si_1): Ditto. | |
16868 | (*avx512f_permvar_truncv32hiv32qi_1): Ditto. | |
16869 | (*avx512f_permvar_truncv16hiv16qi_1): Ditto. | |
16870 | (*avx512f_permvar_truncv4div4si_1): Ditto. | |
16871 | (*avx512f_pshufb_truncv8hiv8qi_1): Ditto. | |
16872 | (*avx512f_pshufb_truncv4siv4hi_1): Ditto. | |
16873 | (*avx512f_pshufd_truncv2div2si_1): Ditto. | |
16874 | ||
16875 | 2021-08-16 Kito Cheng <kito.cheng@sifive.com> | |
16876 | ||
16877 | * config/riscv/multilib-generator: Support code model option for | |
16878 | multi-lib. | |
16879 | * doc/install.texi: Add document of new option for | |
16880 | --with-multilib-generator. | |
16881 | ||
16882 | 2021-08-15 Clément Chigot <clement.chigot@atos.net> | |
16883 | ||
16884 | * config/rs6000/rs6000.c (xcoff_tls_exec_model_detected): New. | |
16885 | (rs6000_legitimize_tls_address_aix): Use it. | |
16886 | (rs6000_xcoff_file_end): Add ".ref __tls_get_addr" when | |
16887 | xcoff_tls_exec_model_detected is true. | |
16888 | ||
16889 | 2021-08-15 Jeff Law <jlaw@localhost.localdomain> | |
16890 | ||
16891 | * config/h8300/h8300.c (shift_alg_si): Retune H8/300H shifts | |
16892 | to allow a bit more code growth, saving many dozens of cycles. | |
16893 | (h8300_option_override): Adjus shift_alg_si if optimizing for | |
16894 | code size. | |
16895 | (get_shift_alg): Use special + inline shifts for residuals | |
16896 | in more cases. | |
16897 | ||
16898 | 2021-08-14 Stafford Horne <shorne@gmail.com> | |
16899 | ||
16900 | PR target/99783 | |
16901 | * config/or1k/or1k-opts.h: New file. | |
16902 | * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): | |
16903 | Support generating gotha relocations if -mcmodel=large is | |
16904 | specified. | |
16905 | * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): | |
16906 | New macros. | |
16907 | * config/or1k/or1k.opt (mcmodel=): New option. | |
16908 | * doc/invoke.texi (OpenRISC Options): Document mcmodel. | |
16909 | ||
16910 | 2021-08-14 Martin Sebor <msebor@redhat.com> | |
16911 | ||
16912 | PR middle-end/101791 | |
16913 | * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Use new argument | |
16914 | to valid_new_delete_pair_p. | |
16915 | * tree.c (valid_new_delete_pair_p): Add argument. | |
16916 | * tree.h (valid_new_delete_pair_p): Same. | |
16917 | ||
16918 | 2021-08-14 Jakub Jelinek <jakub@redhat.com> | |
16919 | ||
16920 | PR target/101896 | |
16921 | * config/i386/i386-expand.c (expand_vec_perm_broadcast_1) | |
16922 | <case E_V64QImode>: For this mode assert | |
16923 | !TARGET_AVX512BW || d->perm[0] rather than !TARGET_AVX2 || d->perm[0]. | |
16924 | ||
16925 | 2021-08-13 Michael Meissner <meissner@linux.ibm.com> | |
16926 | ||
16927 | PR target/99921 | |
16928 | * config/rs6000/altivec.md (xxeval): Use register_predicate | |
16929 | instead of altivec_register_predicate. | |
16930 | ||
16931 | 2021-08-13 Martin Sebor <msebor@redhat.com> | |
16932 | ||
16933 | PR middle-end/101734 | |
16934 | * tree-ssa-uninit.c (maybe_warn_read_write_only): New function. | |
16935 | (maybe_warn_operand): Call it. | |
16936 | ||
16937 | 2021-08-13 Martin Liska <mliska@suse.cz> | |
16938 | ||
16939 | PR ipa/101354 | |
16940 | * attribs.c (decl_attributes): Make naked functions "noipa" | |
16941 | functions. | |
16942 | ||
16943 | 2021-08-13 Martin Liska <mliska@suse.cz> | |
16944 | ||
16945 | PR ipa/101261 | |
16946 | * symtab.c (symtab_node::noninterposable_alias): Do not create | |
16947 | local aliases for target_clone functions as the clonning pass | |
16948 | rejects aliases. | |
16949 | ||
16950 | 2021-08-13 Martin Liska <mliska@suse.cz> | |
16951 | ||
16952 | * opts.c (LIVE_PATCHING_OPTION): Define. | |
16953 | (control_options_for_live_patching): Use it in error messages. | |
16954 | ||
16955 | 2021-08-13 Jan Hubicka <hubicka@ucw.cz> | |
16956 | ||
16957 | * ipa-modref.c (dump_eaf_flags): Dump EAF_NOREAD. | |
16958 | (implicit_const_eaf_flags, implicit_pure_eaf_flags, | |
16959 | ignore_stores_eaf_flags): New constants. | |
16960 | (remove_useless_eaf_flags): New function. | |
16961 | (eaf_flags_useful_p): Use it. | |
16962 | (deref_flags): Add EAF_NOT_RETURNED if flag is unused; | |
16963 | handle EAF_NOREAD. | |
16964 | (modref_lattice::init): Add EAF_NOREAD. | |
16965 | (modref_lattice::add_escape_point): Do not reacord escape point if | |
16966 | result is unused. | |
16967 | (modref_lattice::merge): EAF_NOESCAPE implies EAF_NODIRECTESCAPE; | |
16968 | use remove_useless_eaf_flags. | |
16969 | (modref_lattice::merge_deref): Use ignore_stores_eaf_flags. | |
16970 | (modref_lattice::merge_direct_load): Add EAF_NOREAD | |
16971 | (analyze_ssa_name_flags): Fix handling EAF_NOT_RETURNED | |
16972 | (analyze_parms): Use remove_useless_eaf_flags. | |
16973 | (ipa_merge_modref_summary_after_inlining): Use ignore_stores_eaf_flags. | |
16974 | (modref_merge_call_site_flags): Add caller and ecf_flags parameter; | |
16975 | use remove_useless_eaf_flags. | |
16976 | (modref_propagate_flags_in_scc): Update. | |
16977 | * ipa-modref.h: Turn eaf_flags_t back to char. | |
16978 | * tree-core.h (EAF_NOT_RETURNED): Fix. | |
16979 | (EAF_NOREAD): New constant | |
16980 | * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1): Check for | |
16981 | EAF_NOREAD. | |
16982 | * tree-ssa-structalias.c (handle_rhs_call): Handle new flags. | |
16983 | (handle_pure_call): Likewise. | |
16984 | ||
16985 | 2021-08-12 Jakub Jelinek <jakub@redhat.com> | |
16986 | ||
16987 | * tree.def (OMP_MASKED): New tree code. | |
16988 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_FILTER. | |
16989 | * tree.h (OMP_MASKED_BODY, OMP_MASKED_CLAUSES, OMP_MASKED_COMBINED, | |
16990 | OMP_CLAUSE_FILTER_EXPR): Define. | |
16991 | * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FILTER entry. | |
16992 | (omp_clause_code_name): Likewise. | |
16993 | (walk_tree_1): Handle OMP_CLAUSE_FILTER. | |
16994 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
16995 | convert_local_omp_clauses): Handle OMP_CLAUSE_FILTER. | |
16996 | (convert_nonlocal_reference_stmt, convert_local_reference_stmt, | |
16997 | convert_gimple_call): Handle GIMPLE_OMP_MASTER. | |
16998 | * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FILTER. | |
16999 | (dump_generic_node): Handle OMP_MASTER. | |
17000 | * gimple.def (GIMPLE_OMP_MASKED): New gimple code. | |
17001 | * gimple.c (gimple_build_omp_masked): New function. | |
17002 | (gimple_copy): Handle GIMPLE_OMP_MASKED. | |
17003 | * gimple.h (gimple_build_omp_masked): Declare. | |
17004 | (gimple_has_substatements): Handle GIMPLE_OMP_MASKED. | |
17005 | (gimple_omp_masked_clauses, gimple_omp_masked_clauses_ptr, | |
17006 | gimple_omp_masked_set_clauses): New inline functions. | |
17007 | (CASE_GIMPLE_OMP): Add GIMPLE_OMP_MASKED. | |
17008 | * gimple-pretty-print.c (dump_gimple_omp_masked): New function. | |
17009 | (pp_gimple_stmt_1): Handle GIMPLE_OMP_MASKED. | |
17010 | * gimple-walk.c (walk_gimple_stmt): Likewise. | |
17011 | * gimple-low.c (lower_stmt): Likewise. | |
17012 | * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. | |
17013 | (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_FILTER. For clauses | |
17014 | that take one expression rather than decl or constant, force | |
17015 | gimplification of that into a SSA_NAME or temporary unless min | |
17016 | invariant. | |
17017 | (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FILTER. | |
17018 | (gimplify_expr): Handle OMP_MASKED. | |
17019 | * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_MASKED. | |
17020 | (estimate_num_insns): Likewise. | |
17021 | * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FILTER. | |
17022 | (check_omp_nesting_restrictions): Handle GIMPLE_OMP_MASKED. Adjust | |
17023 | diagnostics for existence of masked construct. | |
17024 | (scan_omp_1_stmt, lower_omp_master, lower_omp_1, diagnose_sb_1, | |
17025 | diagnose_sb_2): Handle GIMPLE_OMP_MASKED. | |
17026 | * omp-expand.c (expand_omp_synch, expand_omp, omp_make_gimple_edges): | |
17027 | Likewise. | |
17028 | ||
17029 | 2021-08-12 Uroš Bizjak <ubizjak@gmail.com> | |
17030 | ||
17031 | PR target/98309 | |
17032 | * config/i386/i386.md (avx512f_scalef<mode>2): New insn pattern. | |
17033 | (ldexp<mode>3): Use avx512f_scalef<mode>2. | |
17034 | (UNSPEC_SCALEF): Move from ... | |
17035 | * config/i386/sse.md (UNSPEC_SCALEF): ... here. | |
17036 | ||
17037 | 2021-08-12 Jan Hubicka <hubicka@ucw.cz> | |
17038 | ||
17039 | * ipa-split.c (consider_split): Fix condition testing void functions. | |
17040 | ||
17041 | 2021-08-12 Aldy Hernandez <aldyh@redhat.com> | |
17042 | ||
17043 | * doc/invoke.texi: Remove docs for threader-mode param. | |
17044 | * flag-types.h (enum threader_mode): Remove. | |
17045 | * params.opt: Remove threader-mode param. | |
17046 | * tree-ssa-threadbackward.c (class back_threader): Remove | |
17047 | path_is_unreachable_p. | |
17048 | Make find_paths private. | |
17049 | Add maybe_thread and thread_through_all_blocks. | |
17050 | Remove reference marker for m_registry. | |
17051 | Remove reference marker for m_profit. | |
17052 | (back_threader::back_threader): Adjust for registry and profit not | |
17053 | being references. | |
17054 | (dump_path): Move down. | |
17055 | (debug): Move down. | |
17056 | (class thread_jumps): Remove. | |
17057 | (class back_threader_registry): Remove m_all_paths. | |
17058 | Remove destructor. | |
17059 | (thread_jumps::thread_through_all_blocks): Move to back_threader | |
17060 | class. | |
17061 | (fsm_find_thread_path): Remove | |
17062 | (back_threader::maybe_thread): New. | |
17063 | (back_threader::thread_through_all_blocks): Move from | |
17064 | thread_jumps. | |
17065 | (back_threader_registry::back_threader_registry): Remove | |
17066 | m_all_paths. | |
17067 | (back_threader_registry::~back_threader_registry): Remove. | |
17068 | (thread_jumps::find_taken_edge): Remove. | |
17069 | (thread_jumps::check_subpath_and_update_thread_path): Remove. | |
17070 | (thread_jumps::maybe_register_path): Remove. | |
17071 | (thread_jumps::handle_phi): Remove. | |
17072 | (handle_assignment_p): Remove. | |
17073 | (thread_jumps::handle_assignment): Remove. | |
17074 | (thread_jumps::fsm_find_control_statement_thread_paths): Remove. | |
17075 | (thread_jumps::find_jump_threads_backwards): Remove. | |
17076 | (thread_jumps::find_jump_threads_backwards_with_ranger): Remove. | |
17077 | (try_thread_blocks): Rename find_jump_threads_backwards to | |
17078 | maybe_thread. | |
17079 | (pass_early_thread_jumps::execute): Same. | |
17080 | ||
17081 | 2021-08-12 Tobias Burnus <tobias@codesourcery.com> | |
17082 | ||
17083 | * tree-core.h (omp_clause_proc_bind_kind): Add | |
17084 | OMP_CLAUSE_PROC_BIND_PRIMARY. | |
17085 | * tree-pretty-print.c (dump_omp_clause): Add TODO comment to | |
17086 | change 'master' to 'primary' in proc_bind for OpenMP 5.1. | |
17087 | ||
17088 | 2021-08-12 Claudiu Zissulescu <claziss@synopsys.com> | |
17089 | ||
17090 | * common/config/arc/arc-common.c (arc_option_init_struct): Remove | |
17091 | fno-common reference. | |
17092 | * config/arc/arc.c (arc_override_options): Remove overriding of | |
17093 | flag_no_common. | |
17094 | ||
17095 | 2021-08-12 Jakub Jelinek <jakub@redhat.com> | |
17096 | ||
17097 | PR target/101860 | |
17098 | * config/i386/i386-expand.c (ix86_expand_vec_one_operand_perm_avx512): | |
17099 | If d->testing_p, return true after performing checks instead of | |
17100 | actually expanding the insn. | |
17101 | (expand_vec_perm_broadcast_1): Handle V32HImode - assert | |
17102 | !TARGET_AVX512BW and return false. | |
17103 | ||
17104 | 2021-08-12 Eric Botcazou <ebotcazou@gcc.gnu.org> | |
17105 | ||
17106 | * configure.ac (PE linker --disable-dynamicbase support): New check. | |
17107 | * configure: Regenerate. | |
17108 | * config.in: Likewise. | |
17109 | * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define. | |
17110 | (LINK_SPEC): Use it. | |
17111 | * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise. | |
17112 | (LINK_SPEC): Likewise. | |
17113 | ||
17114 | 2021-08-12 liuhongt <hongtao.liu@intel.com> | |
17115 | ||
17116 | PR target/101846 | |
17117 | * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_2): New | |
17118 | post_reload define_insn_and_split. | |
17119 | (*avx512bw_zero_extendv32qiv32hi2_2): Ditto. | |
17120 | (*sse4_1_zero_extendv8qiv8hi2_4): Ditto. | |
17121 | (*avx512f_zero_extendv16hiv16si2_2): Ditto. | |
17122 | (*avx2_zero_extendv8hiv8si2_2): Ditto. | |
17123 | (*sse4_1_zero_extendv4hiv4si2_4): Ditto. | |
17124 | (*avx512f_zero_extendv8siv8di2_2): Ditto. | |
17125 | (*avx2_zero_extendv4siv4di2_2): Ditto. | |
17126 | (*sse4_1_zero_extendv2siv2di2_4): Ditto. | |
17127 | (VI248_256, VI248_512, VI148_512, VI148_256, VI148_128): New | |
17128 | mode iterator. | |
17129 | ||
17130 | 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> | |
17131 | ||
17132 | * config/rs6000/rs6000-builtin-new.def: Add always, power5, and | |
17133 | power6 stanzas. | |
17134 | ||
17135 | 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> | |
17136 | ||
17137 | * config/rs6000/rs6000-builtin-new.def: Add vsx stanza. | |
17138 | ||
17139 | 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> | |
17140 | ||
17141 | * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza. | |
17142 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move | |
17143 | initialization of pcvoid_type_node here... | |
17144 | (altivec_init_builtins): ...from here. | |
17145 | * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add | |
17146 | RS6000_BTI_const_ptr_void. | |
17147 | (pcvoid_type_node): New macro. | |
17148 | ||
17149 | 2021-08-11 Richard Biener <rguenther@suse.de> | |
17150 | ||
17151 | PR target/101877 | |
17152 | * tree-ssa-forwprop.c (pass_forwprop::execute): Do not decompose | |
17153 | hard-register accesses. | |
17154 | ||
17155 | 2021-08-11 Richard Biener <rguenther@suse.de> | |
17156 | ||
17157 | * tree-ssa-operands.c (operands_scanner::get_expr_operands): | |
17158 | Do not look at COMPONENT_REF FIELD_DECLs TREE_THIS_VOLATILE | |
17159 | to determine has_volatile_ops. | |
17160 | ||
17161 | 2021-08-11 Eric Botcazou <ebotcazou@gcc.gnu.org> | |
17162 | ||
17163 | * cfgexpand.c (expand_used_vars): Reuse attribs local variable. | |
17164 | ||
17165 | 2021-08-11 Jan Hubicka <hubicka@ucw.cz> | |
17166 | Alexandre Oliva <oliva@adacore.com> | |
17167 | ||
17168 | * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags | |
17169 | dumping. | |
17170 | (modref_lattice::merge_deref): Fix handling of indirect scape points. | |
17171 | (update_escape_summary_1): Likewise. | |
17172 | (update_escape_summary): Likewise. | |
17173 | (ipa_merge_modref_summary_after_inlining): Likewise. | |
17174 | ||
17175 | 2021-08-11 Richard Biener <rguenther@suse.de> | |
17176 | ||
17177 | PR middle-end/101858 | |
17178 | * fold-const.c (fold_binary_loc): Guard simplification | |
17179 | of X < (cast) (1 << Y) to integer types. | |
17180 | ||
17181 | 2021-08-11 Richard Biener <rguenther@suse.de> | |
17182 | ||
17183 | PR tree-optimization/101861 | |
17184 | * tree-vect-stmts.c (vectorizable_load): Fix error in | |
17185 | previous change with regard to gather vectorization. | |
17186 | ||
17187 | 2021-08-11 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
17188 | ||
17189 | PR target/66791 | |
17190 | * config/arm/arm_neon.h (vdup_n_s8): Replace call to builtin | |
17191 | with constructor. | |
17192 | (vdup_n_s16): Likewise. | |
17193 | (vdup_n_s32): Likewise. | |
17194 | (vdup_n_s64): Likewise. | |
17195 | (vdup_n_u8): Likewise. | |
17196 | (vdup_n_u16): Likewise. | |
17197 | (vdup_n_u32): Likewise. | |
17198 | (vdup_n_u64): Likewise. | |
17199 | (vdup_n_p8): Likewise. | |
17200 | (vdup_n_p16): Likewise. | |
17201 | (vdup_n_p64): Likewise. | |
17202 | (vdup_n_f16): Likewise. | |
17203 | (vdup_n_f32): Likewise. | |
17204 | (vdupq_n_s8): Likewise. | |
17205 | (vdupq_n_s16): Likewise. | |
17206 | (vdupq_n_s32): Likewise. | |
17207 | (vdupq_n_s64): Likewise. | |
17208 | (vdupq_n_u8): Likewise. | |
17209 | (vdupq_n_u16): Likewise. | |
17210 | (vdupq_n_u32): Likewise. | |
17211 | (vdupq_n_u64): Likewise. | |
17212 | (vdupq_n_p8): Likewise. | |
17213 | (vdupq_n_p16): Likewise. | |
17214 | (vdupq_n_p64): Likewise. | |
17215 | (vdupq_n_f16): Likewise. | |
17216 | (vdupq_n_f32): Likewise. | |
17217 | (vmov_n_s8): Replace call to builtin with call to corresponding | |
17218 | vdup_n intrinsic. | |
17219 | (vmov_n_s16): Likewise. | |
17220 | (vmov_n_s32): Likewise. | |
17221 | (vmov_n_s64): Likewise. | |
17222 | (vmov_n_u8): Likewise. | |
17223 | (vmov_n_u16): Likewise. | |
17224 | (vmov_n_u32): Likewise. | |
17225 | (vmov_n_u64): Likewise. | |
17226 | (vmov_n_p8): Likewise. | |
17227 | (vmov_n_p16): Likewise. | |
17228 | (vmov_n_f16): Likewise. | |
17229 | (vmov_n_f32): Likewise. | |
17230 | (vmovq_n_s8): Likewise. | |
17231 | (vmovq_n_s16): Likewise. | |
17232 | (vmovq_n_s32): Likewise. | |
17233 | (vmovq_n_s64): Likewise. | |
17234 | (vmovq_n_u8): Likewise. | |
17235 | (vmovq_n_u16): Likewise. | |
17236 | (vmovq_n_u32): Likewise. | |
17237 | (vmovq_n_u64): Likewise. | |
17238 | (vmovq_n_p8): Likewise. | |
17239 | (vmovq_n_p16): Likewise. | |
17240 | (vmovq_n_f16): Likewise. | |
17241 | (vmovq_n_f32): Likewise. | |
17242 | * config/arm/arm_neon_builtins.def: Remove entries for vdup_n. | |
17243 | ||
17244 | 2021-08-11 liuhongt <hongtao.liu@intel.com> | |
17245 | ||
17246 | PR target/98309 | |
17247 | * config/i386/i386.md (ldexp<mode>3): Extend to vscalefs[sd] | |
17248 | when TARGET_AVX512F and TARGET_SSE_MATH. | |
17249 | ||
17250 | 2021-08-10 Jakub Jelinek <jakub@redhat.com> | |
17251 | ||
17252 | PR target/80355 | |
17253 | * config/i386/i386-expand.c (expand_vec_perm_even_odd): Return false | |
17254 | for V32HImode if !TARGET_AVX512BW. | |
17255 | (ix86_vectorize_vec_perm_const) <case E_V32HImode, case E_V64QImode>: | |
17256 | If !TARGET_AVX512BW and TARGET_AVX512F and d.testing_p, don't fail | |
17257 | early, but actually check the permutation. | |
17258 | ||
17259 | 2021-08-10 Richard Biener <rguenther@suse.de> | |
17260 | ||
17261 | PR tree-optimization/101809 | |
17262 | * tree-vect-stmts.c (get_load_store_type): Allow emulated | |
17263 | gathers with offset vector nunits being a constant multiple | |
17264 | of the data vector nunits. | |
17265 | (vect_get_gather_scatter_ops): Use the appropriate nunits | |
17266 | for the offset vector defs. | |
17267 | (vectorizable_store): Adjust call to | |
17268 | vect_get_gather_scatter_ops. | |
17269 | (vectorizable_load): Likewise. Handle the case of less | |
17270 | offset vectors than data vectors. | |
17271 | ||
17272 | 2021-08-10 Jakub Jelinek <jakub@redhat.com> | |
17273 | ||
17274 | PR target/80355 | |
17275 | * config/i386/sse.md (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1, | |
17276 | *avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): New define_insn | |
17277 | patterns. | |
17278 | ||
17279 | 2021-08-10 Richard Biener <rguenther@suse.de> | |
17280 | ||
17281 | PR tree-optimization/101801 | |
17282 | PR tree-optimization/101819 | |
17283 | * tree-vectorizer.h (vect_emulated_vector_p): Declare. | |
17284 | * tree-vect-loop.c (vect_emulated_vector_p): New function. | |
17285 | (vectorizable_reduction): Re-instantiate a check for emulated | |
17286 | operations. | |
17287 | * tree-vect-stmts.c (vectorizable_shift): Likewise. | |
17288 | (vectorizable_operation): Likewise. Cost emulated vector | |
17289 | operations according to the scalar sequence synthesized by | |
17290 | vector lowering. | |
17291 | ||
17292 | 2021-08-10 Richard Biener <rguenther@suse.de> | |
17293 | ||
17294 | PR middle-end/101824 | |
17295 | * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as | |
17296 | volatile in case the variable was. | |
17297 | ||
17298 | 2021-08-10 H.J. Lu <hjl.tools@gmail.com> | |
17299 | ||
17300 | PR target/101804 | |
17301 | * config/i386/constraints.md (BC): Document for integer SSE | |
17302 | constant all bits set operand. | |
17303 | (BF): New constraint for const floating-point all bits set | |
17304 | vectors. | |
17305 | * config/i386/i386.c (standard_sse_constant_p): Likewise. | |
17306 | (standard_sse_constant_opcode): Likewise. | |
17307 | * config/i386/sse.md (sseconstm1): New mode attribute. | |
17308 | (mov<mode>_internal): Replace BC with <sseconstm1>. | |
17309 | ||
17310 | 2021-08-10 liuhongt <hongtao.liu@intel.com> | |
17311 | ||
17312 | * config/i386/sse.md (cond_<insn><mode>): New expander. | |
17313 | (VI248_AVX512VLBW): New mode iterator. | |
17314 | * config/i386/predicates.md | |
17315 | (nonimmediate_or_const_vec_dup_operand): New predicate. | |
17316 | ||
17317 | 2021-08-09 Andrew MacLeod <amacleod@redhat.com> | |
17318 | ||
17319 | PR tree-optimization/101741 | |
17320 | * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Check | |
17321 | type of parameter for toupper/tolower. | |
17322 | ||
17323 | 2021-08-09 Martin Jambor <mjambor@suse.cz> | |
17324 | ||
17325 | PR testsuite/101654 | |
17326 | * ipa-prop.c (propagate_controlled_uses): Removed a spurious space. | |
17327 | ||
17328 | 2021-08-09 Pat Haugen <pthaugen@linux.ibm.com> | |
17329 | ||
17330 | * config/rs6000/rs6000.c (is_load_insn1): Verify destination is a | |
17331 | register. | |
17332 | (is_store_insn1): Verify source is a register. | |
17333 | ||
17334 | 2021-08-09 Uroš Bizjak <ubizjak@gmail.com> | |
17335 | ||
17336 | PR target/101812 | |
17337 | * config/i386/mmx.md (<any_logic:code>v2sf3): | |
17338 | Rename from *mmx_<any_logic:code>v2sf3 | |
17339 | ||
17340 | 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> | |
17341 | ||
17342 | * config/nvptx/nvptx.c: Cross-reference parts adapted in | |
17343 | 'gcc/omp-oacc-neuter-broadcast.cc'. | |
17344 | * omp-low.c: Likewise. | |
17345 | * omp-oacc-neuter-broadcast.cc: Cross-reference parts adapted from | |
17346 | the above files. | |
17347 | ||
17348 | 2021-08-09 Julian Brown <julian@codesourcery.com> | |
17349 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
17350 | Thomas Schwinge <thomas@codesourcery.com> | |
17351 | ||
17352 | * config/gcn/gcn.c (gcn_init_builtins): Override decls for | |
17353 | BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START, | |
17354 | BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER. | |
17355 | (gcn_goacc_validate_dims): Turn on worker partitioning unconditionally. | |
17356 | (gcn_fork_join): Update comment. | |
17357 | * config/gcn/gcn.opt (flag_worker_partitioning): Remove. | |
17358 | (macc_experimental_workers): Remove unused option. | |
17359 | ||
17360 | 2021-08-09 Julian Brown <julian@codesourcery.com> | |
17361 | Nathan Sidwell <nathan@codesourcery.com> (via 'gcc/config/nvptx/nvptx.c' master) | |
17362 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
17363 | Thomas Schwinge <thomas@codesourcery.com> | |
17364 | ||
17365 | * Makefile.in (OBJS): Add omp-oacc-neuter-broadcast.o. | |
17366 | * doc/tm.texi.in (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): | |
17367 | Add documentation hook. | |
17368 | * doc/tm.texi: Regenerate. | |
17369 | * omp-oacc-neuter-broadcast.cc: New file. | |
17370 | * omp-builtins.def (BUILT_IN_GOACC_BARRIER) | |
17371 | (BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START) | |
17372 | (BUILT_IN_GOACC_SINGLE_COPY_END): New builtins. | |
17373 | * passes.def (pass_omp_oacc_neuter_broadcast): Add pass. | |
17374 | * target.def (goacc.create_worker_broadcast_record): Add target | |
17375 | hook. | |
17376 | * tree-pass.h (make_pass_omp_oacc_neuter_broadcast): Add | |
17377 | prototype. | |
17378 | * config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record): | |
17379 | Rename prototype to... | |
17380 | (gcn_goacc_create_worker_broadcast_record): ... this. | |
17381 | * config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename | |
17382 | function to... | |
17383 | (gcn_goacc_create_worker_broadcast_record): ... this. | |
17384 | * config/gcn/gcn.c (TARGET_GOACC_ADJUST_PROPAGATION_RECORD): | |
17385 | Rename to... | |
17386 | (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): ... this. | |
17387 | ||
17388 | 2021-08-09 Tejas Belagod <tejas.belagod@arm.com> | |
17389 | ||
17390 | PR target/101609 | |
17391 | * config/aarch64/aarch64-simd.md (vlshr<mode>3, vashr<mode>3): Use | |
17392 | the right iterator. | |
17393 | ||
17394 | 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> | |
17395 | ||
17396 | * Makefile.in (GTFILES): Remove '$(srcdir)/omp-offload.c'. | |
17397 | ||
17398 | 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> | |
17399 | ||
17400 | * builtins.def (DEF_GOACC_BUILTIN, DEF_GOMP_BUILTIN): Don't | |
17401 | consider '-foffload-abi'. | |
17402 | * common.opt (-foffload-abi): Remove 'Var', 'Init'. | |
17403 | * opts.c (common_handle_option) <-foffload-abi> [ACCEL_COMPILER]: | |
17404 | Ignore. | |
17405 | ||
17406 | 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> | |
17407 | ||
17408 | * optc-gen.awk: Sanity check that 'Init' doesn't appear without | |
17409 | 'Var'. | |
17410 | ||
17411 | 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> | |
17412 | ||
17413 | * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE): Remove. | |
17414 | ||
17415 | 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> | |
17416 | ||
17417 | * doc/gty.texi (Files): Update. | |
17418 | ||
17419 | 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> | |
17420 | ||
17421 | * doc/gty.texi (Files): Fix GTY header file example. | |
17422 | ||
17423 | 2021-08-09 Roger Sayle <roger@nextmovesoftware.com> | |
17424 | ||
17425 | * tree-ssa-ccp.c (value_mask_to_min_max): Helper function to | |
17426 | determine the upper and lower bounds from a mask-value pair. | |
17427 | (bit_value_unop) [ABS_EXPR, ABSU_EXPR]: Add support for | |
17428 | absolute value and unsigned absolute value expressions. | |
17429 | (bit_value_binop): Initialize *VAL's precision. | |
17430 | [LT_EXPR, LE_EXPR]: Use value_mask_to_min_max to determine | |
17431 | upper and lower bounds of operands. Add LE_EXPR/GE_EXPR | |
17432 | support when the operands are unknown but potentially equal. | |
17433 | [MIN_EXPR, MAX_EXPR]: Support minimum/maximum expressions. | |
17434 | ||
17435 | 2021-08-09 Bin Cheng <bin.cheng@linux.alibaba.com> | |
17436 | ||
17437 | * config/aarch64/aarch64.md | |
17438 | (*extend<SHORT:mode><GPI:mode>2_aarch64): Use %<GPI:w>0. | |
17439 | ||
17440 | 2021-08-08 Sergei Trofimovich <siarheit@google.com> | |
17441 | ||
17442 | * lra-constraints.c: Fix s/otput/output/ typo. | |
17443 | ||
17444 | 2021-08-06 Martin Sebor <msebor@redhat.com> | |
17445 | ||
17446 | * builtins.c (expand_builtin_memchr): Move to gimple-ssa-warn-access.cc. | |
17447 | (expand_builtin_strcat): Same. | |
17448 | (expand_builtin_stpncpy): Same. | |
17449 | (expand_builtin_strncat): Same. | |
17450 | (check_read_access): Same. | |
17451 | (check_memop_access): Same. | |
17452 | (expand_builtin_strlen): Move checks to gimple-ssa-warn-access.cc. | |
17453 | (expand_builtin_strnlen): Same. | |
17454 | (expand_builtin_memcpy): Same. | |
17455 | (expand_builtin_memmove): Same. | |
17456 | (expand_builtin_mempcpy): Same. | |
17457 | (expand_builtin_strcpy): Same. | |
17458 | (expand_builtin_strcpy_args): Same. | |
17459 | (expand_builtin_stpcpy_1): Same. | |
17460 | (expand_builtin_strncpy): Same. | |
17461 | (expand_builtin_memset): Same. | |
17462 | (expand_builtin_bzero): Same. | |
17463 | (expand_builtin_strcmp): Same. | |
17464 | (expand_builtin_strncmp): Same. | |
17465 | (expand_builtin): Remove handlers. | |
17466 | (fold_builtin_strlen): Add a comment. | |
17467 | * builtins.h (check_access): Move to gimple-ssa-warn-access.cc. | |
17468 | * calls.c (maybe_warn_nonstring_arg): Same. | |
17469 | * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Add warning option. | |
17470 | * gimple-fold.c (gimple_fold_builtin_strcpy): Pass argument to callee. | |
17471 | (gimple_fold_builtin_stpcpy): Same. | |
17472 | * gimple-ssa-warn-access.cc (has_location): New function. | |
17473 | (get_location): Same. | |
17474 | (get_callee_fndecl): Same. | |
17475 | (call_nargs): Same. | |
17476 | (call_arg): Same. | |
17477 | (warn_string_no_nul): Define. | |
17478 | (unterminated_array): Same. | |
17479 | (check_nul_terminated_array): Same. | |
17480 | (maybe_warn_nonstring_arg): Same. | |
17481 | (maybe_warn_for_bound): Same. | |
17482 | (warn_for_access): Same. | |
17483 | (check_access): Same. | |
17484 | (check_memop_access): Same. | |
17485 | (check_read_access): Same. | |
17486 | (warn_dealloc_offset): Use helper functions. | |
17487 | (maybe_emit_free_warning): Same. | |
17488 | (class pass_waccess): Add members. | |
17489 | (check_strcat): New function. | |
17490 | (check_strncat): New function. | |
17491 | (check_stxcpy): New function. | |
17492 | (check_stxncpy): New function. | |
17493 | (check_strncmp): New function. | |
17494 | (pass_waccess::check_builtin): New function. | |
17495 | (pass_waccess::check): Call it. | |
17496 | * gimple-ssa-warn-access.h (warn_string_no_nul): Move here from | |
17497 | builtins.h. | |
17498 | (maybe_warn_for_bound): Same. | |
17499 | (check_access): Same. | |
17500 | (check_memop_access): Same. | |
17501 | (check_read_access): Same. | |
17502 | * pointer-query.h (struct access_data): Define a ctor overload. | |
17503 | ||
17504 | 2021-08-06 Richard Biener <rguenther@suse.de> | |
17505 | ||
17506 | PR tree-optimization/101801 | |
17507 | * tree-vectorizer.h (vect_worthwhile_without_simd_p): Rename... | |
17508 | (vect_can_vectorize_without_simd_p): ... to this. | |
17509 | * tree-vect-loop.c (vect_worthwhile_without_simd_p): Rename... | |
17510 | (vect_can_vectorize_without_simd_p): ... to this and fold | |
17511 | in vect_min_worthwhile_factor. | |
17512 | (vect_min_worthwhile_factor): Remove. | |
17513 | (vectorizable_reduction): Adjust and remove the cost part. | |
17514 | * tree-vect-stmts.c (vectorizable_shift): Likewise. | |
17515 | (vectorizable_operation): Likewise. | |
17516 | ||
17517 | 2021-08-06 Uroš Bizjak <ubizjak@gmail.com> | |
17518 | ||
17519 | PR target/101797 | |
17520 | * config/i386/i386.md (cmove reg-to-reg move elimination peephole2s): | |
17521 | Add general_gr_operand predicate to operand 3. | |
17522 | ||
17523 | 2021-08-06 Roger Sayle <roger@nextmovesoftware.com> | |
17524 | ||
17525 | * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): Use | |
17526 | CFN_BUILT_IN_CLRSB* instead of BUILT_IN_CLRSB* for consistency. | |
17527 | ||
17528 | 2021-08-06 Tamar Christina <tamar.christina@arm.com> | |
17529 | ||
17530 | * config/aarch64/aarch64-sve-builtins.cc (register_svpattern, | |
17531 | register_svprfop): Pass vec<> by pointer. | |
17532 | * langhooks-def.h (lhd_simulate_enum_decl): Likewise. | |
17533 | * langhooks.c (lhd_simulate_enum_decl): Likewise. | |
17534 | * langhooks.h (struct lang_hooks_for_types): Likewise. | |
17535 | ||
17536 | 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> | |
17537 | ||
17538 | * config/aarch64/arm_neon.h (vst1_bf16_x2): Use | |
17539 | __builtin_memcpy instead of constructing an additional | |
17540 | __builtin_aarch64_simd_oi one vector at a time. | |
17541 | (vst1q_bf16_x2): Likewise. | |
17542 | (vst1_bf16_x3): Use __builtin_memcpy instead of constructing | |
17543 | an additional __builtin_aarch64_simd_ci one vector at a time. | |
17544 | (vst1q_bf16_x3): Likewise. | |
17545 | (vst1_bf16_x4): Use __builtin_memcpy instead of a union. | |
17546 | (vst1q_bf16_x4): Likewise. | |
17547 | (vst2_bf16): Use __builtin_memcpy instead of constructing an | |
17548 | additional __builtin_aarch64_simd_oi one vector at a time. | |
17549 | (vst2q_bf16): Likewise. | |
17550 | (vst3_bf16): Use __builtin_memcpy instead of constructing an | |
17551 | additional __builtin_aarch64_simd_ci mode one vector at a | |
17552 | time. | |
17553 | (vst3q_bf16): Likewise. | |
17554 | (vst4_bf16): Use __builtin_memcpy instead of constructing an | |
17555 | additional __builtin_aarch64_simd_xi one vector at a time. | |
17556 | (vst4q_bf16): Likewise. | |
17557 | ||
17558 | 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> | |
17559 | ||
17560 | * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Delete. | |
17561 | (__ST2Q_LANE_FUNC): Delete. | |
17562 | (vst2_lane_f16): Use __builtin_memcpy to copy vector | |
17563 | structure instead of constructing __builtin_aarch64_simd_oi | |
17564 | one vector at a time. | |
17565 | (vst2_lane_f32): Likewise. | |
17566 | (vst2_lane_f64): Likewise. | |
17567 | (vst2_lane_p8): Likewise. | |
17568 | (vst2_lane_p16): Likewise. | |
17569 | (vst2_lane_p64): Likewise. | |
17570 | (vst2_lane_s8): Likewise. | |
17571 | (vst2_lane_s16): Likewise. | |
17572 | (vst2_lane_s32): Likewise. | |
17573 | (vst2_lane_s64): Likewise. | |
17574 | (vst2_lane_u8): Likewise. | |
17575 | (vst2_lane_u16): Likewise. | |
17576 | (vst2_lane_u32): Likewise. | |
17577 | (vst2_lane_u64): Likewise. | |
17578 | (vst2_lane_bf16): Likewise. | |
17579 | (vst2q_lane_f16): Use __builtin_memcpy to copy vector | |
17580 | structure instead of using a union. | |
17581 | (vst2q_lane_f32): Likewise. | |
17582 | (vst2q_lane_f64): Likewise. | |
17583 | (vst2q_lane_p8): Likewise. | |
17584 | (vst2q_lane_p16): Likewise. | |
17585 | (vst2q_lane_p64): Likewise. | |
17586 | (vst2q_lane_s8): Likewise. | |
17587 | (vst2q_lane_s16): Likewise. | |
17588 | (vst2q_lane_s32): Likewise. | |
17589 | (vst2q_lane_s64): Likewise. | |
17590 | (vst2q_lane_u8): Likewise. | |
17591 | (vst2q_lane_u16): Likewise. | |
17592 | (vst2q_lane_u32): Likewise. | |
17593 | (vst2q_lane_u64): Likewise. | |
17594 | (vst2q_lane_bf16): Likewise. | |
17595 | ||
17596 | 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> | |
17597 | ||
17598 | * config/aarch64/arm_neon.h (__ST3_LANE_FUNC): Delete. | |
17599 | (__ST3Q_LANE_FUNC): Delete. | |
17600 | (vst3_lane_f16): Use __builtin_memcpy to copy vector | |
17601 | structure instead of constructing __builtin_aarch64_simd_ci | |
17602 | one vector at a time. | |
17603 | (vst3_lane_f32): Likewise. | |
17604 | (vst3_lane_f64): Likewise. | |
17605 | (vst3_lane_p8): Likewise. | |
17606 | (vst3_lane_p16): Likewise. | |
17607 | (vst3_lane_p64): Likewise. | |
17608 | (vst3_lane_s8): Likewise. | |
17609 | (vst3_lane_s16): Likewise. | |
17610 | (vst3_lane_s32): Likewise. | |
17611 | (vst3_lane_s64): Likewise. | |
17612 | (vst3_lane_u8): Likewise. | |
17613 | (vst3_lane_u16): Likewise. | |
17614 | (vst3_lane_u32): Likewise. | |
17615 | (vst3_lane_u64): Likewise. | |
17616 | (vst3_lane_bf16): Likewise. | |
17617 | (vst3q_lane_f16): Use __builtin_memcpy to copy vector | |
17618 | structure instead of using a union. | |
17619 | (vst3q_lane_f32): Likewise. | |
17620 | (vst3q_lane_f64): Likewise. | |
17621 | (vst3q_lane_p8): Likewise. | |
17622 | (vst3q_lane_p16): Likewise. | |
17623 | (vst3q_lane_p64): Likewise. | |
17624 | (vst3q_lane_s8): Likewise. | |
17625 | (vst3q_lane_s16): Likewise. | |
17626 | (vst3q_lane_s32): Likewise. | |
17627 | (vst3q_lane_s64): Likewise. | |
17628 | (vst3q_lane_u8): Likewise. | |
17629 | (vst3q_lane_u16): Likewise. | |
17630 | (vst3q_lane_u32): Likewise. | |
17631 | (vst3q_lane_u64): Likewise. | |
17632 | (vst3q_lane_bf16): Likewise. | |
17633 | ||
17634 | 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> | |
17635 | ||
17636 | * config/aarch64/arm_neon.h (__ST4_LANE_FUNC): Delete. | |
17637 | (__ST4Q_LANE_FUNC): Delete. | |
17638 | (vst4_lane_f16): Use __builtin_memcpy to copy vector | |
17639 | structure instead of constructing __builtin_aarch64_simd_xi | |
17640 | one vector at a time. | |
17641 | (vst4_lane_f32): Likewise. | |
17642 | (vst4_lane_f64): Likewise. | |
17643 | (vst4_lane_p8): Likewise. | |
17644 | (vst4_lane_p16): Likewise. | |
17645 | (vst4_lane_p64): Likewise. | |
17646 | (vst4_lane_s8): Likewise. | |
17647 | (vst4_lane_s16): Likewise. | |
17648 | (vst4_lane_s32): Likewise. | |
17649 | (vst4_lane_s64): Likewise. | |
17650 | (vst4_lane_u8): Likewise. | |
17651 | (vst4_lane_u16): Likewise. | |
17652 | (vst4_lane_u32): Likewise. | |
17653 | (vst4_lane_u64): Likewise. | |
17654 | (vst4_lane_bf16): Likewise. | |
17655 | (vst4q_lane_f16): Use __builtin_memcpy to copy vector | |
17656 | structure instead of using a union. | |
17657 | (vst4q_lane_f32): Likewise. | |
17658 | (vst4q_lane_f64): Likewise. | |
17659 | (vst4q_lane_p8): Likewise. | |
17660 | (vst4q_lane_p16): Likewise. | |
17661 | (vst4q_lane_p64): Likewise. | |
17662 | (vst4q_lane_s8): Likewise. | |
17663 | (vst4q_lane_s16): Likewise. | |
17664 | (vst4q_lane_s32): Likewise. | |
17665 | (vst4q_lane_s64): Likewise. | |
17666 | (vst4q_lane_u8): Likewise. | |
17667 | (vst4q_lane_u16): Likewise. | |
17668 | (vst4q_lane_u32): Likewise. | |
17669 | (vst4q_lane_u64): Likewise. | |
17670 | (vst4q_lane_bf16): Likewise. | |
17671 | ||
17672 | 2021-08-06 Martin Liska <mliska@suse.cz> | |
17673 | ||
17674 | * config/rs6000/rs6000.c (rs6000_option_override_internal): When | |
17675 | a target option is restored, it can have | |
17676 | rs6000_long_double_type_size set to FLOAT_PRECISION_TFmode | |
17677 | and error should not be emitted. | |
17678 | ||
17679 | 2021-08-06 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
17680 | ||
17681 | * gcov-io.h (gcov_write): Declare. | |
17682 | * gcov-io.c (gcov_write): New. | |
17683 | (gcov_write_counter): Remove. | |
17684 | (gcov_write_tag_length): Likewise. | |
17685 | (gcov_write_summary): Replace gcov_write_tag_length() with calls to | |
17686 | gcov_write_unsigned(). | |
17687 | * doc/invoke.texi (fprofile-info-section): Mention | |
17688 | __gcov_info_to_gdca(). | |
17689 | ||
17690 | 2021-08-06 Martin Sebor <msebor@redhat.com> | |
17691 | ||
17692 | * dominance.c (prune_bbs_to_update_dominators): Adjust by-value vec | |
17693 | arguments to by-reference. | |
17694 | (iterate_fix_dominators): Same. | |
17695 | * dominance.h (iterate_fix_dominators): Same. | |
17696 | * ipa-prop.h: Call auto_vec::to_vec_legacy. | |
17697 | * tree-data-ref.c (dump_data_dependence_relation): Adjust by-value vec | |
17698 | arguments to by-reference. | |
17699 | (debug_data_dependence_relation): Same. | |
17700 | (dump_data_dependence_relations): Same. | |
17701 | * tree-data-ref.h (debug_data_dependence_relation): Same. | |
17702 | (dump_data_dependence_relations): Same. | |
17703 | * tree-predcom.c (dump_chains): Same. | |
17704 | (initialize_root_vars_lm): Same. | |
17705 | (determine_unroll_factor): Same. | |
17706 | (replace_phis_by_defined_names): Same. | |
17707 | (insert_init_seqs): Same. | |
17708 | (pcom_worker::tree_predictive_commoning_loop): Call | |
17709 | auto_vec::to_vec_legacy. | |
17710 | * tree-ssa-pre.c (insert_into_preds_of_block): Adjust by-value vec | |
17711 | arguments to by-reference. | |
17712 | * tree-ssa-threadbackward.c (populate_worklist): Same. | |
17713 | (back_threader::resolve_def): Same. | |
17714 | * tree-vect-data-refs.c (vect_check_nonzero_value): Same. | |
17715 | (vect_enhance_data_refs_alignment): Same. | |
17716 | (vect_check_lower_bound): Same. | |
17717 | (vect_prune_runtime_alias_test_list): Same. | |
17718 | (vect_permute_store_chain): Same. | |
17719 | * tree-vect-slp-patterns.c (vect_normalize_conj_loc): Same. | |
17720 | * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Same. | |
17721 | * tree-vectorizer.h (vect_permute_store_chain): Same. | |
17722 | * vec.c (test_init): New function. | |
17723 | (vec_c_tests): Call new function. | |
17724 | * vec.h (vec): Declare ctors, dtor, and assignment. | |
17725 | (auto_vec::vec_to_legacy): New function. | |
17726 | (vec::copy): Adjust initialization. | |
17727 | ||
17728 | 2021-08-05 H.J. Lu <hjl.tools@gmail.com> | |
17729 | ||
17730 | PR target/99744 | |
17731 | * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if | |
17732 | callee only uses GPRs. | |
17733 | * config/i386/ia32intrin.h: Revert commit 5463cee2770. | |
17734 | * config/i386/serializeintrin.h: Revert commit 71958f740f1. | |
17735 | * config/i386/x86gprintrin.h: Add | |
17736 | #pragma GCC target("general-regs-only") and #pragma GCC pop_options | |
17737 | to disable non-GPR ISAs. | |
17738 | ||
17739 | 2021-08-05 Richard Sandiford <richard.sandiford@arm.com> | |
17740 | ||
17741 | PR middle-end/101787 | |
17742 | * doc/md.texi (cond_ashl, cond_ashr, cond_lshr): Document. | |
17743 | ||
17744 | 2021-08-05 Richard Sandiford <richard.sandiford@arm.com> | |
17745 | ||
17746 | * tree-vectorizer.h (vect_is_store_elt_extraction, vect_is_reduction) | |
17747 | (vect_reduc_type, vect_embedded_comparison_type, vect_comparison_type) | |
17748 | (vect_is_extending_load, vect_is_integer_truncation): New functions, | |
17749 | moved from aarch64.c but given different names. | |
17750 | * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction) | |
17751 | (aarch64_is_reduction, aarch64_reduc_type) | |
17752 | (aarch64_embedded_comparison_type, aarch64_comparison_type) | |
17753 | (aarch64_extending_load_p, aarch64_integer_truncation_p): Delete | |
17754 | in favor of the above. Update callers accordingly. | |
17755 | ||
17756 | 2021-08-05 Richard Earnshaw <rearnsha@arm.com> | |
17757 | ||
17758 | PR target/101723 | |
17759 | * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress | |
17760 | writing .cpu directive in asm output. | |
17761 | * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. | |
17762 | (arm_last_printed_arch_string): Delete. | |
17763 | (arm_last-printed_fpu_string): Delete. | |
17764 | (arm_configure_build_target): If use of floating-point/SIMD is | |
17765 | disabled, remove all fp/simd related features from the target ISA. | |
17766 | (last_arm_targ_options): New variable. | |
17767 | (arm_print_asm_arch_directives): Add new parameters. Change order | |
17768 | of emitted directives and handle all cases here. | |
17769 | (arm_file_start): Always call arm_print_asm_arch_directives, move | |
17770 | all generation of .arch/.arch_extension here. | |
17771 | (arm_file_end): Call arm_print_asm_arch. | |
17772 | (arm_declare_function_name): Call arm_print_asm_arch_directives | |
17773 | instead of printing .arch/.fpu directives directly. | |
17774 | ||
17775 | 2021-08-05 Richard Earnshaw <rearnsha@arm.com> | |
17776 | ||
17777 | * config/arm/arm.c (arm_configure_build_target): Don't call | |
17778 | arm_option_reconfigure_globals. | |
17779 | (arm_option_restore): Call arm_option_reconfigure_globals after | |
17780 | reconfiguring the target. | |
17781 | * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. | |
17782 | ||
17783 | 2021-08-05 Richard Earnshaw <rearnsha@arm.com> | |
17784 | ||
17785 | * config/arm/arm.c (arm_configure_build_target): Ensure the target's | |
17786 | arch_name is always set. | |
17787 | ||
17788 | 2021-08-05 Jonathan Wright <jonathan.wright@arm.com> | |
17789 | ||
17790 | * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost | |
17791 | of vec_select high-half from being added into Neon subtract | |
17792 | cost. | |
17793 | ||
17794 | 2021-08-05 Jonathan Wright <jonathan.wright@arm.com> | |
17795 | ||
17796 | * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost | |
17797 | of vec_select high-half from being added into Neon add cost. | |
17798 | ||
17799 | 2021-08-05 Kewen Lin <linkw@linux.ibm.com> | |
17800 | ||
17801 | * cfgloop.h (loops_list::loops_list): Add one optional argument | |
17802 | root and adjust accordingly, update loop tree walking and factor | |
17803 | out to ... | |
17804 | * cfgloop.c (loops_list::walk_loop_tree): ... this. New function. | |
17805 | ||
17806 | 2021-08-05 Eric Botcazou <ebotcazou@gcc.gnu.org> | |
17807 | ||
17808 | PR tree-optimization/101626 | |
17809 | * tree-sra.c (propagate_subaccesses_from_rhs): Do not set the | |
17810 | reverse scalar storage order on a pointer or vector component. | |
17811 | ||
17812 | 2021-08-05 liuhongt <hongtao.liu@intel.com> | |
17813 | ||
17814 | * config/i386/sse.md (cond_<code><mode>): New expander. | |
17815 | ||
17816 | 2021-08-05 liuhongt <hongtao.liu@intel.com> | |
17817 | ||
17818 | * config/i386/sse.md (cond_<code><mode>): New expander. | |
17819 | ||
17820 | 2021-08-05 liuhongt <hongtao.liu@intel.com> | |
17821 | ||
17822 | * config/i386/sse.md (cond_<code><mode>): New expander. | |
17823 | ||
17824 | 2021-08-04 David Malcolm <dmalcolm@redhat.com> | |
17825 | ||
17826 | PR analyzer/101570 | |
17827 | * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o. | |
17828 | ||
17829 | 2021-08-04 H.J. Lu <hjl.tools@gmail.com> | |
17830 | ||
17831 | PR target/101742 | |
17832 | * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes | |
17833 | only if TARGET_INTER_UNIT_MOVES_TO_VEC is true. | |
17834 | ||
17835 | 2021-08-04 H.J. Lu <hjl.tools@gmail.com> | |
17836 | ||
17837 | PR target/101772 | |
17838 | * config/i386/i386-expand.c (ix86_expand_vector_move): Call | |
17839 | ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy | |
17840 | data with SSE register from one memory location to another. | |
17841 | ||
17842 | 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
17843 | ||
17844 | * config/s390/s390.c (expand_perm_with_vpdi): New function. | |
17845 | (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi. | |
17846 | * config/s390/vector.md (*vpdi1<mode>, @vpdi1<mode>): Enable a | |
17847 | parameterized expander. | |
17848 | (*vpdi4<mode>, @vpdi4<mode>): Likewise. | |
17849 | ||
17850 | 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
17851 | ||
17852 | * config/s390/s390.c (MAX_VECT_LEN): Define macro. | |
17853 | (struct expand_vec_perm_d): Define struct. | |
17854 | (expand_perm_with_merge): New function. | |
17855 | (vectorize_vec_perm_const_1): New function. | |
17856 | (s390_vectorize_vec_perm_const): New function. | |
17857 | (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro. | |
17858 | ||
17859 | 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
17860 | ||
17861 | * config/s390/vector.md (V_HW_64): Remove mode iterator. | |
17862 | (*vec_load_pair<mode>): Use V_HW_2 instead of V_HW_64. | |
17863 | * config/s390/vx-builtins.md | |
17864 | (vec_scatter_element<V_HW_2:mode>_SI): Use V_HW_2 instead of | |
17865 | V_HW_64. | |
17866 | ||
17867 | 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
17868 | ||
17869 | * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant | |
17870 | definition. | |
17871 | * config/s390/vector.md (*vpdi1<mode>, *vpdi4<mode>): New pattern | |
17872 | definitions. | |
17873 | * config/s390/vx-builtins.md (*vec_permi<mode>): Emit generic rtx | |
17874 | instead of an unspec. | |
17875 | ||
17876 | 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
17877 | ||
17878 | * config/s390/s390-modes.def: Add more vector modes to support | |
17879 | concatenation of two vectors. | |
17880 | * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add | |
17881 | prototype. | |
17882 | (s390_expand_merge): Likewise. | |
17883 | * config/s390/s390.c (s390_expand_merge_perm_const): New function. | |
17884 | (s390_expand_merge): New function. | |
17885 | * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL): | |
17886 | Remove constant definitions. | |
17887 | * config/s390/vector.md (V_HW_2): Add mode iterators. | |
17888 | (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4. | |
17889 | (vec_2x_nelts, vec_2x_wide): New mode attributes. | |
17890 | (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg): | |
17891 | New pattern definitions. | |
17892 | (vec_widen_umult_lo_<mode>, vec_widen_umult_hi_<mode>) | |
17893 | (vec_widen_smult_lo_<mode>, vec_widen_smult_hi_<mode>) | |
17894 | (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df) | |
17895 | (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for | |
17896 | vec merge. | |
17897 | * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now | |
17898 | in vector.md. | |
17899 | (vec_mergeh<mode>, vec_mergel<mode>): Use s390_expand_merge to | |
17900 | emit vec merge pattern. | |
17901 | ||
17902 | 2021-08-04 Jonathan Wright <jonathan.wright@arm.com> | |
17903 | ||
17904 | * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half): | |
17905 | Define. | |
17906 | (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of | |
17907 | vec_select high-half from being added into Neon multiply | |
17908 | cost. | |
17909 | * rtlanal.c (vec_series_highpart_p): Define. | |
17910 | * rtlanal.h (vec_series_highpart_p): Declare. | |
17911 | ||
17912 | 2021-08-04 Jonathan Wright <jonathan.wright@arm.com> | |
17913 | ||
17914 | * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt): | |
17915 | Define. | |
17916 | (aarch64_rtx_mult_cost): Traverse RTL tree to prevent | |
17917 | vec_select cost from being added into Neon multiply cost. | |
17918 | ||
17919 | 2021-08-04 Richard Sandiford <richard.sandiford@arm.com> | |
17920 | ||
17921 | * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in | |
17922 | which old_loop_vinfo is an epilogue loop that handles a constant | |
17923 | number of iterations. | |
17924 | ||
17925 | 2021-08-04 Richard Sandiford <richard.sandiford@arm.com> | |
17926 | ||
17927 | * tree-vect-loop.c (vect_analyze_loop): Print a dump message | |
17928 | when a reanalyzed loop fails to be cheaper than the current | |
17929 | main loop. | |
17930 | ||
17931 | 2021-08-04 Richard Sandiford <richard.sandiford@arm.com> | |
17932 | ||
17933 | * config/aarch64/aarch64.c: Fix a typo. | |
17934 | ||
17935 | 2021-08-04 Vincent Lefèvre <vincent-gcc@vinc17.net> | |
17936 | ||
17937 | PR gcov-profile/101773 | |
17938 | * gcov-io.c (gcov_close): Check return code of a fclose. | |
17939 | ||
17940 | 2021-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17941 | ||
17942 | PR ada/101575 | |
17943 | * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy | |
17944 | .file statement when needed. | |
17945 | ||
17946 | 2021-08-04 Richard Biener <rguenther@suse.de> | |
17947 | ||
17948 | * tree-vect-data-refs.c (vect_check_gather_scatter): | |
17949 | Include widening conversions only when the result is | |
17950 | still handed by native gather or the current offset | |
17951 | size not already matches the data size. | |
17952 | Also succeed analysis in case there's no native support, | |
17953 | noted by a IFN_LAST ifn and a NULL decl. | |
17954 | (vect_analyze_data_refs): Always consider gathers. | |
17955 | * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): | |
17956 | Test for no IFN gather rather than decl gather. | |
17957 | * tree-vect-stmts.c (vect_model_load_cost): Pass in the | |
17958 | gather-scatter info and cost emulated gathers accordingly. | |
17959 | (vect_truncate_gather_scatter_offset): Properly test for | |
17960 | no IFN gather. | |
17961 | (vect_use_strided_gather_scatters_p): Likewise. | |
17962 | (get_load_store_type): Handle emulated gathers and its | |
17963 | restrictions. | |
17964 | (vectorizable_load): Likewise. Emulate them by extracting | |
17965 | scalar offsets, doing scalar loads and a vector construct. | |
17966 | ||
17967 | 2021-08-04 H.J. Lu <hjl.tools@gmail.com> | |
17968 | ||
17969 | PR target/101742 | |
17970 | * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces | |
17971 | argument to set m_max_size. | |
17972 | (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d. | |
17973 | (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d. | |
17974 | (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d. | |
17975 | ||
17976 | 2021-08-04 Roger Sayle <roger@nextmovesoftware.com> | |
17977 | Marc Glisse <marc.glisse@inria.fr> | |
17978 | ||
17979 | * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and | |
17980 | (X*C1)^(X*C2) as X*(C1+C2), and related variants, using | |
17981 | tree_nonzero_bits to ensure that operands are bit-wise disjoint. | |
17982 | ||
17983 | 2021-08-04 Richard Biener <rguenther@suse.de> | |
17984 | ||
17985 | * tree-ssa-forwprop.c (pass_forwprop::execute): Split | |
17986 | out code to decompose vector loads ... | |
17987 | (optimize_vector_load): ... here. Generalize it to | |
17988 | handle intermediate widening and TARGET_MEM_REF loads | |
17989 | and apply it to loads with a supported vector mode as well. | |
17990 | ||
17991 | 2021-08-04 Richard Biener <rguenther@suse.de> | |
17992 | ||
17993 | PR tree-optimization/101756 | |
17994 | * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure | |
17995 | the result of the reduction epilogue is compatible to the original | |
17996 | scalar result. | |
17997 | ||
17998 | 2021-08-04 liuhongt <hongtao.liu@intel.com> | |
17999 | ||
18000 | PR target/101743 | |
18001 | * config/i386/i386.md (peephole2): Refine predicate from | |
18002 | register_operand to general_reg_operand. | |
18003 | ||
18004 | 2021-08-04 Aldy Hernandez <aldyh@redhat.com> | |
18005 | ||
18006 | * gimple-range-path.h (path_range_query::dump): Mark override. | |
18007 | ||
18008 | 2021-08-04 Richard Biener <rguenther@suse.de> | |
18009 | ||
18010 | PR tree-optimization/101769 | |
18011 | * tree-tailcall.c (eliminate_tail_call): Add the created loop | |
18012 | for the first recursion and return it via the new output parameter. | |
18013 | (optimize_tail_call): Pass through new output param. | |
18014 | (tree_optimize_tail_calls_1): After creating all latches, | |
18015 | add the created loop to the loop tree. Do not mark loops for fixup. | |
18016 | ||
18017 | 2021-08-04 Martin Liska <mliska@suse.cz> | |
18018 | ||
18019 | * doc/invoke.texi: Document threader-mode param. | |
18020 | ||
18021 | 2021-08-04 liuhongt <hongtao.liu@intel.com> | |
18022 | ||
18023 | * config/i386/sse.md (cond_fma<mode>): New expander. | |
18024 | (cond_fms<mode>): Ditto. | |
18025 | (cond_fnma<mode>): Ditto. | |
18026 | (cond_fnms<mode>): Ditto. | |
18027 | ||
18028 | 2021-08-03 Segher Boessenkool <segher@kernel.crashing.org> | |
18029 | ||
18030 | * config/rs6000/vsx.md (*vsx_le_perm_store_<mode>): Use && instead of &. | |
18031 | ||
18032 | 2021-08-03 Segher Boessenkool <segher@kernel.crashing.org> | |
18033 | ||
18034 | * config/rs6000/constraints.md: Remove "e" from the list of available | |
18035 | constraint characters. | |
18036 | ||
18037 | 2021-08-03 Eugene Rozenfeld <erozen@microsoft.com> | |
18038 | ||
18039 | PR gcov-profile/71672 | |
18040 | * auto-profile.c (afdo_indirect_call): Fix setup of the historgram value for indirect calls. | |
18041 | ||
18042 | 2021-08-03 Paul A. Clarke <pc@us.ibm.com> | |
18043 | ||
18044 | * config/rs6000/smmintrin.h (_mm_minpos_epu16): New. | |
18045 | ||
18046 | 2021-08-03 H.J. Lu <hjl.tools@gmail.com> | |
18047 | ||
18048 | * config/i386/i386.c (ix86_gen_scratch_sse_rtx): In 64-bit mode, | |
18049 | try XMM31 to avoid vzeroupper. | |
18050 | ||
18051 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18052 | ||
18053 | * doc/invoke.texi: Document -mtune=neoverse-512tvb and | |
18054 | -mcpu=neoverse-512tvb. | |
18055 | * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. | |
18056 | * config/aarch64/aarch64-tune.md: Regenerate. | |
18057 | * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost) | |
18058 | (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info) | |
18059 | (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures. | |
18060 | (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb. | |
18061 | (aarch64_adjust_body_cost): Likewise. | |
18062 | ||
18063 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18064 | ||
18065 | * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only | |
18066 | record issue information for operations that occur in the | |
18067 | innermost loop. | |
18068 | ||
18069 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18070 | ||
18071 | * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags | |
18072 | parameter. Detect cases in which an Advanced SIMD MLA would almost | |
18073 | certainly require a MOV. | |
18074 | (aarch64_count_ops): Update accordingly. | |
18075 | ||
18076 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18077 | ||
18078 | * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New | |
18079 | function, split out from... | |
18080 | (aarch64_detect_vector_stmt_subtype): ...here. | |
18081 | (aarch64_add_stmt_cost): Treat extracting element 0 as free. | |
18082 | ||
18083 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18084 | ||
18085 | * config/aarch64/aarch64-protos.h (sve_vec_cost): | |
18086 | Add gather_load_x32_cost and gather_load_x64_cost. | |
18087 | * config/aarch64/aarch64.c (generic_sve_vector_cost) | |
18088 | (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update | |
18089 | accordingly, using the values given by the scalar_load * number | |
18090 | of elements calculation that we used previously. | |
18091 | (aarch64_detect_vector_stmt_subtype): Use the new fields. | |
18092 | ||
18093 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18094 | ||
18095 | * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New | |
18096 | function, split out from... | |
18097 | (aarch64_adjust_body_cost): ...here. | |
18098 | ||
18099 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18100 | ||
18101 | * config/aarch64/fractional-cost.h: New file. | |
18102 | * config/aarch64/aarch64.c: Include <algorithm> (indirectly) | |
18103 | and cost_fraction.h. | |
18104 | (vec_cost_fraction): New typedef. | |
18105 | (aarch64_detect_scalar_stmt_subtype): Use it for statement costs. | |
18106 | (aarch64_detect_vector_stmt_subtype): Likewise. | |
18107 | (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise. | |
18108 | (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction | |
18109 | for cycle counts. | |
18110 | (aarch64_adjust_body_cost): Likewise. | |
18111 | (aarch64_test_cost_fraction): New function. | |
18112 | (aarch64_run_selftests): Call it. | |
18113 | ||
18114 | 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
18115 | ||
18116 | * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn | |
18117 | into a bitmask. | |
18118 | * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update | |
18119 | accordingly. | |
18120 | (aarch64_estimated_poly_value): Likewise. Use the least significant | |
18121 | set bit for the minimum and likely values. Use the most significant | |
18122 | set bit for the maximum value. | |
18123 | ||
18124 | 2021-08-03 liuhongt <hongtao.liu@intel.com> | |
18125 | ||
18126 | * config/i386/sse.md (cond_<insn><mode>): New expander. | |
18127 | (cond_mul<mode>): Ditto. | |
18128 | ||
18129 | 2021-08-03 Kewen Lin <linkw@linux.ibm.com> | |
18130 | ||
18131 | * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop. | |
18132 | ||
18133 | 2021-08-03 liuhongt <hongtao.liu@intel.com> | |
18134 | ||
18135 | * config/i386/sse.md (cond_<insn><mode>):New expander. | |
18136 | (cond_mul<mode>): Ditto. | |
18137 | (cond_div<mode>): Ditto. | |
18138 | ||
18139 | 2021-08-02 H.J. Lu <hjl.tools@gmail.com> | |
18140 | ||
18141 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Also | |
18142 | check stack_realign_needed for stack realignment. | |
18143 | (ix86_legitimate_constant_p): Always allow CONST_WIDE_INT smaller | |
18144 | than the largest integer supported by vector register. | |
18145 | * config/i386/i386.h (MAX_MOVE_MAX): New. Set to 64. | |
18146 | (MOVE_MAX): Set to bytes of the largest integer supported by | |
18147 | vector register. | |
18148 | (STORE_MAX_PIECES): New. | |
18149 | ||
18150 | 2021-08-02 H.J. Lu <hjl.tools@gmail.com> | |
18151 | ||
18152 | * config/i386/i386-expand.c (ix86_expand_vector_move): Call | |
18153 | ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy | |
18154 | data from one memory location to another. | |
18155 | ||
18156 | 2021-08-02 H.J. Lu <hjl.tools@gmail.com> | |
18157 | ||
18158 | PR middle-end/90773 | |
18159 | * config/i386/i386.c (TARGET_GEN_MEMSET_SCRATCH_RTX): New. | |
18160 | ||
18161 | 2021-08-02 Aldy Hernandez <aldyh@redhat.com> | |
18162 | ||
18163 | PR tree-optimization/101724 | |
18164 | * params.opt: Remove --param=threader-iterative. | |
18165 | * tree-ssa-threadbackward.c (pass_thread_jumps::execute): Remove | |
18166 | iterative mode. | |
18167 | ||
18168 | 2021-08-02 Tom de Vries <tdevries@suse.de> | |
18169 | ||
18170 | PR middle-end/101665 | |
18171 | * doc/extend.texi (nonnull attribute): Improve documentation. | |
18172 | ||
18173 | 2021-08-02 Andrew Pinski <apinski@marvell.com> | |
18174 | ||
18175 | PR rtl-optimization/101683 | |
18176 | * rtlanal.c (may_trap_p_1): Handle UNSIGNED_FIX. | |
18177 | ||
18178 | 2021-08-02 Roger Sayle <roger@nextmovesoftware.com> | |
18179 | ||
18180 | * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): | |
18181 | Renamed from cond_removal_in_popcount_clz_ctz_pattern. | |
18182 | Add support for BSWAP, FFS, PARITY and CLRSB builtins. | |
18183 | (tree_ssa_phiop_worker): Update call to function above. | |
18184 | ||
18185 | 2021-08-01 H.J. Lu <hjl.tools@gmail.com> | |
18186 | ||
18187 | PR target/78103 | |
18188 | * config/i386/i386.md (bsr_rex64_1_zext): New. | |
18189 | (combine splitter for constant - clzll): Replace gen_bsr_rex64_1 | |
18190 | with gen_bsr_rex64_1_zext. | |
18191 | ||
18192 | 2021-07-31 Jakub Jelinek <jakub@redhat.com> | |
18193 | ||
18194 | PR target/78103 | |
18195 | * config/i386/i386.md (bsr_rex64_1, bsr_1, bsr_zext_1): New | |
18196 | define_insn patterns. | |
18197 | (*bsr_rex64_2, *bsr_2): New define_insn_and_split patterns. | |
18198 | Add combine splitters for constant - clz. | |
18199 | (clz<mode>2): Use a temporary pseudo for bsr result. | |
18200 | ||
18201 | 2021-07-30 Paul A. Clarke <pc@us.ibm.com> | |
18202 | ||
18203 | * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps, | |
18204 | _mm_floor_sd, _mm_floor_ss): New. | |
18205 | ||
18206 | 2021-07-30 Paul A. Clarke <pc@us.ibm.com> | |
18207 | ||
18208 | * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps, | |
18209 | _mm_ceil_sd, _mm_ceil_ss): New. | |
18210 | ||
18211 | 2021-07-30 Paul A. Clarke <pc@us.ibm.com> | |
18212 | ||
18213 | * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd, | |
18214 | _mm_blend_ps, _mm_blendv_ps): New. | |
18215 | ||
18216 | 2021-07-30 Roger Sayle <roger@nextmovesoftware.com> | |
18217 | Uroš Bizjak <ubizjak@gmail.com> | |
18218 | ||
18219 | * config/i386/i386.md (*dec_cmov<mode>): New define_insn_and_split | |
18220 | to generate a conditional move using the carry flag after sub $1. | |
18221 | (peephole2): Eliminate a register-to-register move by inverting | |
18222 | the condition of a conditional move. | |
18223 | ||
18224 | 2021-07-30 Hans-Peter Nilsson <hp@bitrange.com> | |
18225 | ||
18226 | * config/mmix/mmix.md ("call", "call_value", "*call_real") | |
18227 | ("*call_value_real"): Don't generate rtx mentioning the generic | |
18228 | operands 1 and 2 to "call", and similarly for "call_value". | |
18229 | * config/mmix/mmix.c (mmix_print_operand_punct_valid_p) | |
18230 | (mmix_print_operand): Use '!' instead of 'p'. | |
18231 | ||
18232 | 2021-07-30 Hans-Peter Nilsson <hp@bitrange.com> | |
18233 | ||
18234 | * doc/md.texi (call): Correct information about operand 2. | |
18235 | * config/mmix/mmix.md ("call", "call_value"): Remove fixed FIXMEs. | |
18236 | ||
18237 | 2021-07-30 Andrew MacLeod <amacleod@redhat.com> | |
18238 | ||
18239 | * range-op.cc (operator_trunc_mod::wi_fold): Fold constants. | |
18240 | ||
18241 | 2021-07-30 Andrew MacLeod <amacleod@redhat.com> | |
18242 | ||
18243 | * range-op.cc (operator_div::wi_fold): Return UNDEFINED for [0, 0] divisor. | |
18244 | ||
18245 | 2021-07-30 Andrew MacLeod <amacleod@redhat.com> | |
18246 | ||
18247 | * gimple-range-cache.cc (*::set_bb_range): Change const basic_block to | |
18248 | const_basic_block.. | |
18249 | (*::get_bb_range): Ditto. | |
18250 | (*::bb_range_p): Ditto. | |
18251 | * gimple-range-cache.h: Change prototypes. | |
18252 | ||
18253 | 2021-07-30 H.J. Lu <hjl.tools@gmail.com> | |
18254 | ||
18255 | PR middle-end/90773 | |
18256 | * builtins.c (builtin_memcpy_read_str): Change the mode argument | |
18257 | from scalar_int_mode to fixed_size_mode. | |
18258 | (builtin_strncpy_read_str): Likewise. | |
18259 | (gen_memset_value_from_prev): New function. | |
18260 | (builtin_memset_read_str): Change the mode argument from | |
18261 | scalar_int_mode to fixed_size_mode. Use gen_memset_value_from_prev | |
18262 | and support CONST_VECTOR. | |
18263 | (builtin_memset_gen_str): Likewise. | |
18264 | (try_store_by_multiple_pieces): Use by_pieces_constfn to declare | |
18265 | constfun. | |
18266 | * builtins.h (builtin_strncpy_read_str): Replace scalar_int_mode | |
18267 | with fixed_size_mode. | |
18268 | (builtin_memset_read_str): Likewise. | |
18269 | * expr.c (widest_int_mode_for_size): Renamed to ... | |
18270 | (widest_fixed_size_mode_for_size): Add a bool argument to | |
18271 | indicate if QI vector mode can be used. | |
18272 | (by_pieces_ninsns): Call widest_fixed_size_mode_for_size | |
18273 | instead of widest_int_mode_for_size. | |
18274 | (pieces_addr::adjust): Change the mode argument from | |
18275 | scalar_int_mode to fixed_size_mode. | |
18276 | (op_by_pieces_d): Make m_len read-only. Add a bool member, | |
18277 | m_qi_vector_mode, to indicate that QI vector mode can be used. | |
18278 | (op_by_pieces_d::op_by_pieces_d): Add a bool argument to | |
18279 | initialize m_qi_vector_mode. Call widest_fixed_size_mode_for_size | |
18280 | instead of widest_int_mode_for_size. | |
18281 | (op_by_pieces_d::get_usable_mode): Change the mode argument from | |
18282 | scalar_int_mode to fixed_size_mode. Call | |
18283 | widest_fixed_size_mode_for_size instead of | |
18284 | widest_int_mode_for_size. | |
18285 | (op_by_pieces_d::smallest_fixed_size_mode_for_size): New member | |
18286 | function to return the smallest integer or QI vector mode. | |
18287 | (op_by_pieces_d::run): Call widest_fixed_size_mode_for_size | |
18288 | instead of widest_int_mode_for_size. Call | |
18289 | smallest_fixed_size_mode_for_size instead of | |
18290 | smallest_int_mode_for_size. | |
18291 | (store_by_pieces_d::store_by_pieces_d): Add a bool argument to | |
18292 | indicate that QI vector mode can be used and pass it to | |
18293 | op_by_pieces_d::op_by_pieces_d. | |
18294 | (can_store_by_pieces): Call widest_fixed_size_mode_for_size | |
18295 | instead of widest_int_mode_for_size. Pass memsetp to | |
18296 | widest_fixed_size_mode_for_size to support QI vector mode. | |
18297 | Allow all CONST_VECTORs for memset if vec_duplicate is supported. | |
18298 | (store_by_pieces): Pass memsetp to | |
18299 | store_by_pieces_d::store_by_pieces_d. | |
18300 | (clear_by_pieces_1): Removed. | |
18301 | (clear_by_pieces): Replace clear_by_pieces_1 with | |
18302 | builtin_memset_read_str and pass true to store_by_pieces_d to | |
18303 | support vector mode broadcast. | |
18304 | (string_cst_read_str): Change the mode argument from | |
18305 | scalar_int_mode to fixed_size_mode. | |
18306 | * expr.h (by_pieces_constfn): Change scalar_int_mode to | |
18307 | fixed_size_mode. | |
18308 | (by_pieces_prev): Likewise. | |
18309 | * rtl.h (lowpart_subreg_regno): New. | |
18310 | * rtlanal.c (lowpart_subreg_regno): New. A wrapper around | |
18311 | simplify_subreg_regno. | |
18312 | * target.def (gen_memset_scratch_rtx): New hook. | |
18313 | * doc/tm.texi.in: Add TARGET_GEN_MEMSET_SCRATCH_RTX. | |
18314 | * doc/tm.texi: Regenerated. | |
18315 | ||
18316 | 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> | |
18317 | ||
18318 | PR target/94780 | |
18319 | * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use | |
18320 | TARGET_EXPR instead of MODIFY_EXPR. | |
18321 | ||
18322 | 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> | |
18323 | ||
18324 | PR target/101132 | |
18325 | * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare. | |
18326 | * config/mips/mips.c (mips_expand_vec_cmp_expr): New function. | |
18327 | * config/mips/mips-msa.md (vec_cmp<MSA:mode><mode_i>): New | |
18328 | expander. | |
18329 | (vec_cmpu<IMSA:mode><mode_i>): New expander. | |
18330 | ||
18331 | 2021-07-30 H.J. Lu <hjl.tools@gmail.com> | |
18332 | ||
18333 | PR target/101685 | |
18334 | * config/i386/i386-options.c (ix86_option_override_internal): | |
18335 | Don't enable LZCNT/POPCNT if they have been disabled explicitly. | |
18336 | ||
18337 | 2021-07-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
18338 | ||
18339 | PR target/66791 | |
18340 | * config/arm/arm_neon.h (vld1_p64): Replace call to builtin by | |
18341 | explicitly dereferencing __a. | |
18342 | (vld1_s64): Likewise. | |
18343 | (vld1_u64): Likewise. | |
18344 | * config/arm/arm_neon_builtins.def (vld1): Remove entry for di | |
18345 | and change to VAR13. | |
18346 | ||
18347 | 2021-07-30 Aldy Hernandez <aldyh@redhat.com> | |
18348 | ||
18349 | * gimple-loop-versioning.cc (lv_dom_walker::lv_dom_walker): Remove | |
18350 | use of m_range_analyzer. | |
18351 | (loop_versioning::lv_dom_walker::before_dom_children): Same. | |
18352 | (loop_versioning::lv_dom_walker::after_dom_children): Remove. | |
18353 | (loop_versioning::prune_loop_conditions): Replace vr_values use | |
18354 | with range_query interface. | |
18355 | (pass_loop_versioning::execute): Use ranger. | |
18356 | ||
18357 | 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> | |
18358 | ||
18359 | PR ipa/101396 | |
18360 | * ipa-devirt.c (ipa_odr_read_section): Compare the precision of | |
18361 | enum values, and emit a warning if they mismatch. | |
18362 | ||
18363 | 2021-07-30 Kewen Lin <linkw@linux.ibm.com> | |
18364 | ||
18365 | * cfgloop.h (as_const): New function. | |
18366 | (class loop_iterator): Rename to ... | |
18367 | (class loops_list): ... this. | |
18368 | (loop_iterator::next): Rename to ... | |
18369 | (loops_list::Iter::fill_curr_loop): ... this and adjust. | |
18370 | (loop_iterator::loop_iterator): Rename to ... | |
18371 | (loops_list::loops_list): ... this and adjust. | |
18372 | (loops_list::Iter): New class. | |
18373 | (loops_list::iterator): New type. | |
18374 | (loops_list::const_iterator): New type. | |
18375 | (loops_list::begin): New function. | |
18376 | (loops_list::end): Likewise. | |
18377 | (loops_list::begin const): Likewise. | |
18378 | (loops_list::end const): Likewise. | |
18379 | (FOR_EACH_LOOP): Remove. | |
18380 | (FOR_EACH_LOOP_FN): Remove. | |
18381 | * cfgloop.c (flow_loops_dump): Adjust FOR_EACH_LOOP* with range-based | |
18382 | for loop with loops_list instance. | |
18383 | (sort_sibling_loops): Likewise. | |
18384 | (disambiguate_loops_with_multiple_latches): Likewise. | |
18385 | (verify_loop_structure): Likewise. | |
18386 | * cfgloopmanip.c (create_preheaders): Likewise. | |
18387 | (force_single_succ_latches): Likewise. | |
18388 | * config/aarch64/falkor-tag-collision-avoidance.c | |
18389 | (execute_tag_collision_avoidance): Likewise. | |
18390 | * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Likewise. | |
18391 | * config/s390/s390.c (s390_adjust_loops): Likewise. | |
18392 | * doc/loop.texi: Likewise. | |
18393 | * gimple-loop-interchange.cc (pass_linterchange::execute): Likewise. | |
18394 | * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. | |
18395 | * gimple-loop-versioning.cc (loop_versioning::analyze_blocks): Likewise. | |
18396 | (loop_versioning::make_versioning_decisions): Likewise. | |
18397 | * gimple-ssa-split-paths.c (split_paths): Likewise. | |
18398 | * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. | |
18399 | * graphite.c (canonicalize_loop_form): Likewise. | |
18400 | (graphite_transform_loops): Likewise. | |
18401 | * ipa-fnsummary.c (analyze_function_body): Likewise. | |
18402 | * ipa-pure-const.c (analyze_function): Likewise. | |
18403 | * loop-doloop.c (doloop_optimize_loops): Likewise. | |
18404 | * loop-init.c (loop_optimizer_finalize): Likewise. | |
18405 | (fix_loop_structure): Likewise. | |
18406 | * loop-invariant.c (calculate_loop_reg_pressure): Likewise. | |
18407 | (move_loop_invariants): Likewise. | |
18408 | * loop-unroll.c (decide_unrolling): Likewise. | |
18409 | (unroll_loops): Likewise. | |
18410 | * modulo-sched.c (sms_schedule): Likewise. | |
18411 | * predict.c (predict_loops): Likewise. | |
18412 | (pass_profile::execute): Likewise. | |
18413 | * profile.c (branch_prob): Likewise. | |
18414 | * sel-sched-ir.c (sel_finish_pipelining): Likewise. | |
18415 | (sel_find_rgns): Likewise. | |
18416 | * tree-cfg.c (replace_loop_annotate): Likewise. | |
18417 | (replace_uses_by): Likewise. | |
18418 | (move_sese_region_to_fn): Likewise. | |
18419 | * tree-if-conv.c (pass_if_conversion::execute): Likewise. | |
18420 | * tree-loop-distribution.c (loop_distribution::execute): Likewise. | |
18421 | * tree-parloops.c (parallelize_loops): Likewise. | |
18422 | * tree-predcom.c (tree_predictive_commoning): Likewise. | |
18423 | * tree-scalar-evolution.c (scev_initialize): Likewise. | |
18424 | (scev_reset): Likewise. | |
18425 | * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise. | |
18426 | * tree-ssa-live.c (remove_unused_locals): Likewise. | |
18427 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. | |
18428 | * tree-ssa-loop-im.c (analyze_memory_references): Likewise. | |
18429 | (tree_ssa_lim_initialize): Likewise. | |
18430 | * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise. | |
18431 | * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Likewise. | |
18432 | * tree-ssa-loop-manip.c (get_loops_exits): Likewise. | |
18433 | * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Likewise. | |
18434 | (free_numbers_of_iterations_estimates): Likewise. | |
18435 | * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise. | |
18436 | * tree-ssa-loop-split.c (tree_ssa_split_loops): Likewise. | |
18437 | * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Likewise. | |
18438 | * tree-ssa-loop.c (gate_oacc_kernels): Likewise. | |
18439 | (pass_scev_cprop::execute): Likewise. | |
18440 | * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise. | |
18441 | * tree-ssa-sccvn.c (do_rpo_vn): Likewise. | |
18442 | * tree-ssa-threadupdate.c | |
18443 | (jump_thread_path_registry::thread_through_all_blocks): Likewise. | |
18444 | * tree-vectorizer.c (vectorize_loops): Likewise. | |
18445 | * tree-vrp.c (vrp_asserts::find_assert_locations): Likewise. | |
18446 | ||
18447 | 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com> | |
18448 | ||
18449 | * config/mmix/mmix.c (mmix_function_arg_1): Avoid | |
18450 | generating a VOIDmode register for e.g the | |
18451 | function_arg_info::end_marker. | |
18452 | ||
18453 | 2021-07-29 Jeff Law <jeffreyalaw@gmail.com> | |
18454 | ||
18455 | * config/h8300/h8300-modes.def: Add CCZ, CCV and CCC, drop CCZNV. | |
18456 | * config/h8300/h8300.md (H8cc mode iterator): Add CCZ. | |
18457 | (cc mode_attr): Similarly. | |
18458 | (ccz subst_attr): Similarly. | |
18459 | * config/h8300/jumpcall.md: Add new patterns for branch-on-bit. | |
18460 | * config/h8300/testcompare.md: Remove various cc0 based patterns | |
18461 | that had been commented out. Add pattern to set CCZ from a bit | |
18462 | test. | |
18463 | ||
18464 | 2021-07-29 Thomas Schwinge <thomas@codesourcery.com> | |
18465 | Julian Brown <julian@codesourcery.com> | |
18466 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
18467 | ||
18468 | * omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process): | |
18469 | 'update_stmt' after modification. | |
18470 | (pass_oacc_loop_designation): New function, extracted out of... | |
18471 | (pass_oacc_device_lower): ... this. | |
18472 | (pass_data_oacc_loop_designation, pass_oacc_loop_designation) | |
18473 | (make_pass_oacc_loop_designation): New | |
18474 | * passes.def: Add it. | |
18475 | * tree-parloops.c (create_parallel_loop): Adjust. | |
18476 | * tree-pass.h (make_pass_oacc_loop_designation): New. | |
18477 | ||
18478 | 2021-07-29 Aldy Hernandez <aldyh@redhat.com> | |
18479 | ||
18480 | * flag-types.h (enum threader_mode): New. | |
18481 | * params.opt: Add entry for --param=threader-mode. | |
18482 | * tree-ssa-threadbackward.c (THREADER_ITERATIVE_MODE): New. | |
18483 | (class back_threader): New. | |
18484 | (back_threader::back_threader): New. | |
18485 | (back_threader::~back_threader): New. | |
18486 | (back_threader::maybe_register_path): New. | |
18487 | (back_threader::find_taken_edge): New. | |
18488 | (back_threader::find_taken_edge_switch): New. | |
18489 | (back_threader::find_taken_edge_cond): New. | |
18490 | (back_threader::resolve_def): New. | |
18491 | (back_threader::resolve_phi): New. | |
18492 | (back_threader::find_paths_to_names): New. | |
18493 | (back_threader::find_paths): New. | |
18494 | (dump_path): New. | |
18495 | (debug): New. | |
18496 | (thread_jumps::find_jump_threads_backwards): Call ranger threader. | |
18497 | (thread_jumps::find_jump_threads_backwards_with_ranger): New. | |
18498 | (pass_thread_jumps::execute): Abstract out code... | |
18499 | (try_thread_blocks): ...here. | |
18500 | * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): | |
18501 | Abstract out threading candidate code to... | |
18502 | (single_succ_to_potentially_threadable_block): ...here. | |
18503 | * tree-ssa-threadedge.h (single_succ_to_potentially_threadable_block): | |
18504 | New. | |
18505 | * tree-ssa-threadupdate.c (register_jump_thread): Return boolean. | |
18506 | * tree-ssa-threadupdate.h (class jump_thread_path_registry): | |
18507 | Return bool from register_jump_thread. | |
18508 | ||
18509 | 2021-07-29 Andreas Krebbel <krebbel@linux.ibm.com> | |
18510 | ||
18511 | * target.def: in0 and in1 do not need to be registers. | |
18512 | * doc/tm.texi: Regenerate. | |
18513 | ||
18514 | 2021-07-29 liuhongt <hongtao.liu@intel.com> | |
18515 | ||
18516 | PR target/39821 | |
18517 | * config/i386/i386.c (ix86_widen_mult_cost): New function. | |
18518 | (ix86_add_stmt_cost): Use ix86_widen_mult_cost for | |
18519 | WIDEN_MULT_EXPR. | |
18520 | ||
18521 | 2021-07-29 Jiufu Guo <guojiufu@linux.ibm.com> | |
18522 | ||
18523 | PR target/61837 | |
18524 | * config/rs6000/rs6000.c (TARGET_PREFERRED_DOLOOP_MODE): New hook. | |
18525 | (rs6000_preferred_doloop_mode): New hook. | |
18526 | * doc/tm.texi: Regenerate. | |
18527 | * doc/tm.texi.in: Add hook preferred_doloop_mode. | |
18528 | * target.def (preferred_doloop_mode): New hook. | |
18529 | * targhooks.c (default_preferred_doloop_mode): New hook. | |
18530 | * targhooks.h (default_preferred_doloop_mode): New hook. | |
18531 | * tree-ssa-loop-ivopts.c (compute_doloop_base_on_mode): New function. | |
18532 | (add_iv_candidate_for_doloop): Call targetm.preferred_doloop_mode | |
18533 | and compute_doloop_base_on_mode. | |
18534 | ||
18535 | 2021-07-28 Martin Sebor <msebor@redhat.com> | |
18536 | ||
18537 | PR middle-end/101494 | |
18538 | * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset | |
18539 | and size computation. | |
18540 | ||
18541 | 2021-07-28 Martin Sebor <msebor@redhat.com> | |
18542 | ||
18543 | PR middle-end/101601 | |
18544 | * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove | |
18545 | a pointless test. | |
18546 | Handle pointers to functions. | |
18547 | ||
18548 | 2021-07-28 Martin Sebor <msebor@redhat.com> | |
18549 | ||
18550 | * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o. | |
18551 | * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h. | |
18552 | * builtins.c (compute_objsize_r): Move to pointer-query.cc. | |
18553 | (access_ref::access_ref): Same. | |
18554 | (access_ref::phi): Same. | |
18555 | (access_ref::get_ref): Same. | |
18556 | (access_ref::size_remaining): Same. | |
18557 | (access_ref::offset_in_range): Same. | |
18558 | (access_ref::add_offset): Same. | |
18559 | (access_ref::inform_access): Same. | |
18560 | (ssa_name_limit_t::visit_phi): Same. | |
18561 | (ssa_name_limit_t::leave_phi): Same. | |
18562 | (ssa_name_limit_t::next): Same. | |
18563 | (ssa_name_limit_t::next_phi): Same. | |
18564 | (ssa_name_limit_t::~ssa_name_limit_t): Same. | |
18565 | (pointer_query::pointer_query): Same. | |
18566 | (pointer_query::get_ref): Same. | |
18567 | (pointer_query::put_ref): Same. | |
18568 | (pointer_query::flush_cache): Same. | |
18569 | (warn_string_no_nul): Move to gimple-ssa-warn-access.cc. | |
18570 | (check_nul_terminated_array): Same. | |
18571 | (unterminated_array): Same. | |
18572 | (maybe_warn_for_bound): Same. | |
18573 | (check_read_access): Same. | |
18574 | (warn_for_access): Same. | |
18575 | (get_size_range): Same. | |
18576 | (check_access): Same. | |
18577 | (gimple_call_alloc_size): Move to tree.c. | |
18578 | (gimple_parm_array_size): Move to pointer-query.cc. | |
18579 | (get_offset_range): Same. | |
18580 | (gimple_call_return_array): Same. | |
18581 | (handle_min_max_size): Same. | |
18582 | (handle_array_ref): Same. | |
18583 | (handle_mem_ref): Same. | |
18584 | (compute_objsize): Same. | |
18585 | (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc. | |
18586 | (call_dealloc_argno): Same. | |
18587 | (fndecl_dealloc_argno): Same. | |
18588 | (new_delete_mismatch_p): Same. | |
18589 | (matching_alloc_calls_p): Same. | |
18590 | (warn_dealloc_offset): Same. | |
18591 | (maybe_emit_free_warning): Same. | |
18592 | * builtins.h (check_nul_terminated_array): Move to | |
18593 | gimple-ssa-warn-access.h. | |
18594 | (check_nul_terminated_array): Same. | |
18595 | (warn_string_no_nul): Same. | |
18596 | (unterminated_array): Same. | |
18597 | (class ssa_name_limit_t): Same. | |
18598 | (class pointer_query): Same. | |
18599 | (struct access_ref): Same. | |
18600 | (class range_query): Same. | |
18601 | (struct access_data): Same. | |
18602 | (gimple_call_alloc_size): Same. | |
18603 | (gimple_parm_array_size): Same. | |
18604 | (compute_objsize): Same. | |
18605 | (class access_data): Same. | |
18606 | (maybe_emit_free_warning): Same. | |
18607 | * calls.c (initialize_argument_information): Remove call to | |
18608 | maybe_emit_free_warning. | |
18609 | * gimple-array-bounds.cc: Include new header.. | |
18610 | * gimple-fold.c: Same. | |
18611 | * gimple-ssa-sprintf.c: Same. | |
18612 | * gimple-ssa-warn-restrict.c: Same. | |
18613 | * passes.def: Add pass_warn_access. | |
18614 | * tree-pass.h (make_pass_warn_access): Declare. | |
18615 | * tree-ssa-strlen.c: Include new headers. | |
18616 | * tree.c (fndecl_dealloc_argno): Move here from builtins.c. | |
18617 | * tree.h (fndecl_dealloc_argno): Move here from attribs.h. | |
18618 | * gimple-ssa-warn-access.cc: New file. | |
18619 | * gimple-ssa-warn-access.h: New file. | |
18620 | * pointer-query.cc: New file. | |
18621 | * pointer-query.h: New file. | |
18622 | ||
18623 | 2021-07-28 Jakub Jelinek <jakub@redhat.com> | |
18624 | ||
18625 | PR middle-end/101624 | |
18626 | * ubsan.c (maybe_instrument_pointer_overflow, | |
18627 | instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, | |
18628 | PARM_DECLs or RESULT_DECLs. | |
18629 | * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. | |
18630 | ||
18631 | 2021-07-28 Jakub Jelinek <jakub@redhat.com> | |
18632 | ||
18633 | PR middle-end/101642 | |
18634 | * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands | |
18635 | to type of bswap16 for comparison. | |
18636 | (bswap16 (x) == cst): Cast bswap16 operand to type of cst. | |
18637 | ||
18638 | 2021-07-28 Richard Biener <rguenther@suse.de> | |
18639 | ||
18640 | PR tree-optimization/101615 | |
18641 | * tree-vect-slp.c (vect_optimize_slp): Materialize permutes | |
18642 | at CTOR SLP graph entries. | |
18643 | ||
18644 | 2021-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18645 | ||
18646 | * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64): | |
18647 | Add "r,w" alternative. | |
18648 | ||
18649 | 2021-07-28 H.J. Lu <hjl.tools@gmail.com> | |
18650 | ||
18651 | PR target/101456 | |
18652 | * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set | |
18653 | AVX_U128_DIRTY when all bits are zero. | |
18654 | ||
18655 | 2021-07-28 Richard Biener <rguenther@suse.de> | |
18656 | ||
18657 | PR tree-optimization/101615 | |
18658 | * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector | |
18659 | external nodes cannot be permuted so make them perm_out 0. | |
18660 | ||
18661 | 2021-07-28 Andrew Stubbs <ams@codesourcery.com> | |
18662 | ||
18663 | PR target/100208 | |
18664 | * config.in: Regenerate. | |
18665 | * config/gcn/gcn-hsa.h (A_FIJI): New define. | |
18666 | (A_900): New define. | |
18667 | (A_906): New define. | |
18668 | (A_908): New define. | |
18669 | (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908. | |
18670 | * config/gcn/gcn.c (output_file_start): Adjust attributes according | |
18671 | to the assembler capabilities. | |
18672 | * config/gcn/mkoffload.c (main): Likewise. | |
18673 | * configure: Regenerate. | |
18674 | * configure.ac: Add tests for LLVM assembler attribute features. | |
18675 | ||
18676 | 2021-07-28 Andrew MacLeod <amacleod@redhat.com> | |
18677 | ||
18678 | * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for | |
18679 | cond_false and cond_true on branches. | |
18680 | ||
18681 | 2021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com> | |
18682 | ||
18683 | * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use | |
18684 | gcc_stablesort. | |
18685 | ||
18686 | 2021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com> | |
18687 | ||
18688 | * alias.c (init_alias_analysis): Don't skip prologue/epilogue. | |
18689 | ||
18690 | 2021-07-28 Jakub Jelinek <jakub@redhat.com> | |
18691 | ||
18692 | PR target/101611 | |
18693 | * config/i386/sse.md (vashr<mode>3): Split into vashrv8di3 expander | |
18694 | and vashrv4di3 expander, where the latter requires just TARGET_AVX2 | |
18695 | and has special !TARGET_AVX512VL expansion. | |
18696 | (vashrv2di3<mask_name>): Rename to ... | |
18697 | (vashrv2di3): ... this. Change condition to TARGET_XOP || TARGET_AVX2 | |
18698 | and add special !TARGET_XOP && !TARGET_AVX512VL expansion. | |
18699 | ||
18700 | 2021-07-28 Martin Uecker <muecker@gwdg.de> | |
18701 | ||
18702 | * calls.c (maybe_warn_rdwr_sizes): Correct argument | |
18703 | numbers in warning that were switched. | |
18704 | ||
18705 | 2021-07-28 Kewen Lin <linkw@linux.ibm.com> | |
18706 | ||
18707 | PR tree-optimization/101596 | |
18708 | * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check | |
18709 | by using new_type's precision instead. | |
18710 | ||
18711 | 2021-07-28 liuhongt <hongtao.liu@intel.com> | |
18712 | ||
18713 | PR target/99881 | |
18714 | * config/i386/i386.h (processor_costs): Add new member | |
18715 | integer_to_sse. | |
18716 | * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, | |
18717 | i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, | |
18718 | geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, | |
18719 | bdver_cost, znver1_cost, znver2_cost, znver3_cost, | |
18720 | btver1_cost, btver2_cost, btver3_cost, pentium4_cost, | |
18721 | nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, | |
18722 | generic_cost, core_cost): Initialize integer_to_sse same value | |
18723 | as sse_op. | |
18724 | (skylake_cost): Initialize integer_to_sse twice as much as sse_op. | |
18725 | * config/i386/i386.c (ix86_builtin_vectorization_cost): | |
18726 | Use integer_to_sse instead of sse_op to calculate the cost of | |
18727 | vec_construct. | |
18728 | ||
18729 | 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> | |
18730 | ||
18731 | * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New | |
18732 | function. | |
18733 | (write_init_file): Call write_ovld_static_init. | |
18734 | ||
18735 | 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> | |
18736 | ||
18737 | * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New | |
18738 | function. | |
18739 | (write_init_file): Call write_bif_static_init. | |
18740 | ||
18741 | 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> | |
18742 | ||
18743 | * config/rs6000/rs6000-gen-builtins.c (typemap): New struct. | |
18744 | (TYPE_MAP_SIZE): New macro. | |
18745 | (type_map): New initialized variable. | |
18746 | (typemap_cmp): New function. | |
18747 | (write_type_node): Likewise. | |
18748 | (write_fntype_init): Implement. | |
18749 | ||
18750 | 2021-07-27 Martin Sebor <msebor@redhat.com> | |
18751 | ||
18752 | PR tree-optimization/101584 | |
18753 | * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function. | |
18754 | (check_defs): Call it. | |
18755 | ||
18756 | 2021-07-27 Aldy Hernandez <aldyh@redhat.com> | |
18757 | ||
18758 | * tree-ssa-dom.c (dom_jump_threader_simplifier): | |
18759 | Put avail_exprs_stack in the class, instead of passing it to | |
18760 | jump_threader_simplifier. | |
18761 | (dom_jump_threader_simplifier::simplify): Add state argument. | |
18762 | (dom_opt_dom_walker): Add state. | |
18763 | (pass_dominator::execute): Pass state to threader. | |
18764 | (dom_opt_dom_walker::before_dom_children): Use state. | |
18765 | * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace | |
18766 | arguments by state. | |
18767 | (jump_threader::record_temporary_equivalences_from_phis): | |
18768 | Register equivalences through the state variable. | |
18769 | (jump_threader::record_temporary_equivalences_from_stmts_at_dest): | |
18770 | Record ranges in a statement through the state variable. | |
18771 | (jump_threader::simplify_control_stmt_condition): Pass state to | |
18772 | simplify. | |
18773 | (jump_threader::simplify_control_stmt_condition_1): Same. | |
18774 | (jump_threader::thread_around_empty_blocks): Remove obsolete | |
18775 | comment. | |
18776 | (jump_threader::thread_through_normal_block): Record equivalences | |
18777 | on edge through the state variable. | |
18778 | (jump_threader::thread_across_edge): Abstract state pushing. | |
18779 | (jt_state::jt_state): New. | |
18780 | (jt_state::push): New. | |
18781 | (jt_state::pop): New. | |
18782 | (jt_state::register_equiv): New. | |
18783 | (jt_state::record_ranges_from_stmt): New. | |
18784 | (jt_state::register_equivs_on_edge): New. | |
18785 | (jump_threader_simplifier::jump_threader_simplifier): Move from | |
18786 | header. | |
18787 | (jump_threader_simplifier::simplify): Add state argument. | |
18788 | * tree-ssa-threadedge.h (class jt_state): New. | |
18789 | (class jump_threader): Add state to constructor. | |
18790 | (class jump_threader_simplifier): Add state to simplify. Remove | |
18791 | avail_exprs_stack from class. | |
18792 | * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state | |
18793 | argument. | |
18794 | (vrp_jump_threader::vrp_jump_threader): Add state. | |
18795 | (vrp_jump_threader::~vrp_jump_threader): Cleanup state. | |
18796 | ||
18797 | 2021-07-27 Aldy Hernandez <aldyh@redhat.com> | |
18798 | ||
18799 | * Makefile.in (OBJS): Add gimple-range-path.o. | |
18800 | * gimple-range-path.cc: New file. | |
18801 | * gimple-range-path.h: New file. | |
18802 | ||
18803 | 2021-07-27 Jonathan Wright <jonathan.wright@arm.com> | |
18804 | ||
18805 | * config/aarch64/aarch64-simd.md: Push sign/zero-extension | |
18806 | inside vec_duplicate for all patterns. | |
18807 | * simplify-rtx.c (simplify_context::simplify_unary_operation_1): | |
18808 | Push sign/zero-extension inside vec_duplicate. | |
18809 | ||
18810 | 2021-07-27 Richard Biener <rguenther@suse.de> | |
18811 | ||
18812 | PR tree-optimization/101573 | |
18813 | * tree-ssa-uninit.c (warn_uninit_phi_uses): New function | |
18814 | looking at uninitialized PHI arg defs in some constrained cases. | |
18815 | (warn_uninitialized_vars): Call it. | |
18816 | (execute_early_warn_uninitialized): Calculate dominators. | |
18817 | ||
18818 | 2021-07-27 Richard Biener <rguenther@suse.de> | |
18819 | ||
18820 | PR tree-optimization/39821 | |
18821 | * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use | |
18822 | vector_stmt for widening arithmetic. | |
18823 | (vectorizable_conversion): Adjust. | |
18824 | ||
18825 | 2021-07-27 Martin Jambor <mjambor@suse.cz> | |
18826 | ||
18827 | * cgraph.h (ipa_replace_map): New field force_load_ref. | |
18828 | * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost, | |
18829 | aded new flag load_dereferenced, adjusted comments. | |
18830 | (ipa_get_param_dereferenced): New function. | |
18831 | (ipa_set_param_dereferenced): Likewise. | |
18832 | * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it. | |
18833 | * ipa-cp.c: Include gimple.h. | |
18834 | (ipcp_discover_new_direct_edges): Take into account dereferenced flag. | |
18835 | (get_replacement_map): New parameter force_load_ref, set the | |
18836 | appropriate flag in ipa_replace_map if set. | |
18837 | (struct symbol_and_index_together): New type. | |
18838 | (adjust_refs_in_act_callers): New function. | |
18839 | (adjust_references_in_caller): Likewise. | |
18840 | (create_specialized_node): When appropriate, call | |
18841 | adjust_references_in_caller and force only load references. | |
18842 | * ipa-prop.c (load_from_dereferenced_name): New function. | |
18843 | (ipa_analyze_controlled_uses): Also detect loads from a | |
18844 | dereference, harden testing of call statements. | |
18845 | (ipa_write_node_info): Stream the dereferenced flag. | |
18846 | (ipa_read_node_info): Likewise. | |
18847 | (ipa_set_jf_constant): Also create refdesc when jump function | |
18848 | references a variable. | |
18849 | (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work | |
18850 | also on references of variables and return a symtab_node. Adjust | |
18851 | all callers. | |
18852 | (propagate_controlled_uses): Also remove references to VAR_DECLs. | |
18853 | ||
18854 | 2021-07-27 Jakub Jelinek <jakub@redhat.com> | |
18855 | ||
18856 | PR middle-end/101586 | |
18857 | * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte | |
18858 | positions above or equal to sz except for diagnostics of flexible | |
18859 | array members. | |
18860 | ||
18861 | 2021-07-26 Andrew MacLeod <amacleod@redhat.com> | |
18862 | ||
18863 | PR tree-optimization/78888 | |
18864 | * gimple-range-fold.cc (get_letter_range): New. | |
18865 | (fold_using_range::range_of_builtin_call): Call get_letter_range. | |
18866 | ||
18867 | 2021-07-26 Andrew MacLeod <amacleod@redhat.com> | |
18868 | ||
18869 | PR tree-optimization/78888 | |
18870 | * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases | |
18871 | for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER. | |
18872 | ||
18873 | 2021-07-26 Roger Sayle <roger@nextmovesoftware.com> | |
18874 | Marc Glisse <marc.glisse@inria.fr> | |
18875 | ||
18876 | * match.pd (rotate): Simplify equality/inequality of rotations. | |
18877 | (bswap): Simplify equality/inequality tests of byte swapping. | |
18878 | ||
18879 | 2021-07-26 Aldy Hernandez <aldyh@redhat.com> | |
18880 | ||
18881 | * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect): | |
18882 | New. | |
18883 | ||
18884 | 2021-07-26 Aldy Hernandez <aldyh@redhat.com> | |
18885 | ||
18886 | * range-op.cc (operator_lshift::fold_range): Pass rel to | |
18887 | base class fold_range. | |
18888 | (operator_rshift::fold_range): Same. | |
18889 | ||
18890 | 2021-07-26 Ashimida <ashimida@linux.alibaba.com> | |
18891 | ||
18892 | PR driver/101447 | |
18893 | * toplev.h (min_align_loops_log): Remove declaration. | |
18894 | (min_align_jumps_log, min_align_labels_log): Likewise. | |
18895 | (min_align_functions_log): Likewise. | |
18896 | ||
18897 | 2021-07-26 Aldy Hernandez <aldyh@redhat.com> | |
18898 | ||
18899 | * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values | |
18900 | with range_query. | |
18901 | (execute_vrp): Abstract out simplification of conditionals... | |
18902 | (simplify_casted_conds): ...here. | |
18903 | ||
18904 | 2021-07-26 Aldy Hernandez <aldyh@redhat.com> | |
18905 | ||
18906 | * gimple-array-bounds.cc (array_bounds_checker::get_value_range): | |
18907 | Add gimple argument. | |
18908 | (array_bounds_checker::check_array_ref): Same. | |
18909 | (array_bounds_checker::check_addr_expr): Same. | |
18910 | (array_bounds_checker::check_array_bounds): Pass statement to | |
18911 | check_array_bounds and check_addr_expr. | |
18912 | * gimple-array-bounds.h (check_array_bounds): Add gimple argument. | |
18913 | (check_addr_expr): Same. | |
18914 | (get_value_range): Same. | |
18915 | ||
18916 | 2021-07-26 Tamar Christina <tamar.christina@arm.com> | |
18917 | ||
18918 | * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to.. | |
18919 | (sdot_prod, udot_prod): ... This. | |
18920 | * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged | |
18921 | into... | |
18922 | (<sur>dot_prod<vsi2qi>): ... this. | |
18923 | (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>): | |
18924 | Change operands order. | |
18925 | (<sur>sadv16qi): Use new operands order. | |
18926 | * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, | |
18927 | vdotq_s32): Use new RTL ordering. | |
18928 | ||
18929 | 2021-07-26 Tamar Christina <tamar.christina@arm.com> | |
18930 | ||
18931 | * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS, | |
18932 | aarch64_types_ternop_suss_qualifiers): New. | |
18933 | * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it. | |
18934 | * config/aarch64/aarch64-simd.md (usdot_prod<vsi2qi>): Re-organize RTL. | |
18935 | * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it. | |
18936 | ||
18937 | 2021-07-23 Jakub Jelinek <jakub@redhat.com> | |
18938 | ||
18939 | PR rtl-optimization/101562 | |
18940 | * expmed.c (store_integral_bit_field): Only use movstrict_optab | |
18941 | if the operand isn't paradoxical. | |
18942 | ||
18943 | 2021-07-23 Aldy Hernandez <aldyh@redhat.com> | |
18944 | ||
18945 | * gimple-array-bounds.h (class array_bounds_checker): Change | |
18946 | ranges type to range_query. | |
18947 | ||
18948 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
18949 | ||
18950 | * config/aarch64/arm_neon.h (vst1_s64_x2): Use | |
18951 | __builtin_memcpy instead of constructing | |
18952 | __builtin_aarch64_simd_oi one vector at a time. | |
18953 | (vst1_u64_x2): Likewise. | |
18954 | (vst1_f64_x2): Likewise. | |
18955 | (vst1_s8_x2): Likewise. | |
18956 | (vst1_p8_x2): Likewise. | |
18957 | (vst1_s16_x2): Likewise. | |
18958 | (vst1_p16_x2): Likewise. | |
18959 | (vst1_s32_x2): Likewise. | |
18960 | (vst1_u8_x2): Likewise. | |
18961 | (vst1_u16_x2): Likewise. | |
18962 | (vst1_u32_x2): Likewise. | |
18963 | (vst1_f16_x2): Likewise. | |
18964 | (vst1_f32_x2): Likewise. | |
18965 | (vst1_p64_x2): Likewise. | |
18966 | (vst1q_s8_x2): Likewise. | |
18967 | (vst1q_p8_x2): Likewise. | |
18968 | (vst1q_s16_x2): Likewise. | |
18969 | (vst1q_p16_x2): Likewise. | |
18970 | (vst1q_s32_x2): Likewise. | |
18971 | (vst1q_s64_x2): Likewise. | |
18972 | (vst1q_u8_x2): Likewise. | |
18973 | (vst1q_u16_x2): Likewise. | |
18974 | (vst1q_u32_x2): Likewise. | |
18975 | (vst1q_u64_x2): Likewise. | |
18976 | (vst1q_f16_x2): Likewise. | |
18977 | (vst1q_f32_x2): Likewise. | |
18978 | (vst1q_f64_x2): Likewise. | |
18979 | (vst1q_p64_x2): Likewise. | |
18980 | ||
18981 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
18982 | ||
18983 | * config/aarch64/arm_neon.h (vst1_s64_x3): Use | |
18984 | __builtin_memcpy instead of constructing | |
18985 | __builtin_aarch64_simd_ci one vector at a time. | |
18986 | (vst1_u64_x3): Likewise. | |
18987 | (vst1_f64_x3): Likewise. | |
18988 | (vst1_s8_x3): Likewise. | |
18989 | (vst1_p8_x3): Likewise. | |
18990 | (vst1_s16_x3): Likewise. | |
18991 | (vst1_p16_x3): Likewise. | |
18992 | (vst1_s32_x3): Likewise. | |
18993 | (vst1_u8_x3): Likewise. | |
18994 | (vst1_u16_x3): Likewise. | |
18995 | (vst1_u32_x3): Likewise. | |
18996 | (vst1_f16_x3): Likewise. | |
18997 | (vst1_f32_x3): Likewise. | |
18998 | (vst1_p64_x3): Likewise. | |
18999 | (vst1q_s8_x3): Likewise. | |
19000 | (vst1q_p8_x3): Likewise. | |
19001 | (vst1q_s16_x3): Likewise. | |
19002 | (vst1q_p16_x3): Likewise. | |
19003 | (vst1q_s32_x3): Likewise. | |
19004 | (vst1q_s64_x3): Likewise. | |
19005 | (vst1q_u8_x3): Likewise. | |
19006 | (vst1q_u16_x3): Likewise. | |
19007 | (vst1q_u32_x3): Likewise. | |
19008 | (vst1q_u64_x3): Likewise. | |
19009 | (vst1q_f16_x3): Likewise. | |
19010 | (vst1q_f32_x3): Likewise. | |
19011 | (vst1q_f64_x3): Likewise. | |
19012 | (vst1q_p64_x3): Likewise. | |
19013 | ||
19014 | 2021-07-23 H.J. Lu <hjl.tools@gmail.com> | |
19015 | ||
19016 | PR target/101504 | |
19017 | * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return | |
19018 | hard register when LRA is in progress. | |
19019 | ||
19020 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
19021 | ||
19022 | * config/aarch64/arm_neon.h (vst1_s8_x4): Use | |
19023 | __builtin_memcpy instead of using a union. | |
19024 | (vst1q_s8_x4): Likewise. | |
19025 | (vst1_s16_x4): Likewise. | |
19026 | (vst1q_s16_x4): Likewise. | |
19027 | (vst1_s32_x4): Likewise. | |
19028 | (vst1q_s32_x4): Likewise. | |
19029 | (vst1_u8_x4): Likewise. | |
19030 | (vst1q_u8_x4): Likewise. | |
19031 | (vst1_u16_x4): Likewise. | |
19032 | (vst1q_u16_x4): Likewise. | |
19033 | (vst1_u32_x4): Likewise. | |
19034 | (vst1q_u32_x4): Likewise. | |
19035 | (vst1_f16_x4): Likewise. | |
19036 | (vst1q_f16_x4): Likewise. | |
19037 | (vst1_f32_x4): Likewise. | |
19038 | (vst1q_f32_x4): Likewise. | |
19039 | (vst1_p8_x4): Likewise. | |
19040 | (vst1q_p8_x4): Likewise. | |
19041 | (vst1_p16_x4): Likewise. | |
19042 | (vst1q_p16_x4): Likewise. | |
19043 | (vst1_s64_x4): Likewise. | |
19044 | (vst1_u64_x4): Likewise. | |
19045 | (vst1_p64_x4): Likewise. | |
19046 | (vst1q_s64_x4): Likewise. | |
19047 | (vst1q_u64_x4): Likewise. | |
19048 | (vst1q_p64_x4): Likewise. | |
19049 | (vst1_f64_x4): Likewise. | |
19050 | (vst1q_f64_x4): Likewise. | |
19051 | ||
19052 | 2021-07-23 Jonathan Wrightt <jonathan.wright@arm.com> | |
19053 | ||
19054 | * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy | |
19055 | instead of constructing __builtin_aarch64_simd_oi one vector | |
19056 | at a time. | |
19057 | (vst2_u64): Likewise. | |
19058 | (vst2_f64): Likewise. | |
19059 | (vst2_s8): Likewise. | |
19060 | (vst2_p8): Likewise. | |
19061 | (vst2_s16): Likewise. | |
19062 | (vst2_p16): Likewise. | |
19063 | (vst2_s32): Likewise. | |
19064 | (vst2_u8): Likewise. | |
19065 | (vst2_u16): Likewise. | |
19066 | (vst2_u32): Likewise. | |
19067 | (vst2_f16): Likewise. | |
19068 | (vst2_f32): Likewise. | |
19069 | (vst2_p64): Likewise. | |
19070 | (vst2q_s8): Likewise. | |
19071 | (vst2q_p8): Likewise. | |
19072 | (vst2q_s16): Likewise. | |
19073 | (vst2q_p16): Likewise. | |
19074 | (vst2q_s32): Likewise. | |
19075 | (vst2q_s64): Likewise. | |
19076 | (vst2q_u8): Likewise. | |
19077 | (vst2q_u16): Likewise. | |
19078 | (vst2q_u32): Likewise. | |
19079 | (vst2q_u64): Likewise. | |
19080 | (vst2q_f16): Likewise. | |
19081 | (vst2q_f32): Likewise. | |
19082 | (vst2q_f64): Likewise. | |
19083 | (vst2q_p64): Likewise. | |
19084 | ||
19085 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
19086 | ||
19087 | * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy | |
19088 | instead of constructing __builtin_aarch64_simd_ci one vector | |
19089 | at a time. | |
19090 | (vst3_u64): Likewise. | |
19091 | (vst3_f64): Likewise. | |
19092 | (vst3_s8): Likewise. | |
19093 | (vst3_p8): Likewise. | |
19094 | (vst3_s16): Likewise. | |
19095 | (vst3_p16): Likewise. | |
19096 | (vst3_s32): Likewise. | |
19097 | (vst3_u8): Likewise. | |
19098 | (vst3_u16): Likewise. | |
19099 | (vst3_u32): Likewise. | |
19100 | (vst3_f16): Likewise. | |
19101 | (vst3_f32): Likewise. | |
19102 | (vst3_p64): Likewise. | |
19103 | (vst3q_s8): Likewise. | |
19104 | (vst3q_p8): Likewise. | |
19105 | (vst3q_s16): Likewise. | |
19106 | (vst3q_p16): Likewise. | |
19107 | (vst3q_s32): Likewise. | |
19108 | (vst3q_s64): Likewise. | |
19109 | (vst3q_u8): Likewise. | |
19110 | (vst3q_u16): Likewise. | |
19111 | (vst3q_u32): Likewise. | |
19112 | (vst3q_u64): Likewise. | |
19113 | (vst3q_f16): Likewise. | |
19114 | (vst3q_f32): Likewise. | |
19115 | (vst3q_f64): Likewise. | |
19116 | (vst3q_p64): Likewise. | |
19117 | ||
19118 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
19119 | ||
19120 | * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy | |
19121 | instead of constructing __builtin_aarch64_simd_xi one vector | |
19122 | at a time. | |
19123 | (vst4_u64): Likewise. | |
19124 | (vst4_f64): Likewise. | |
19125 | (vst4_s8): Likewise. | |
19126 | (vst4_p8): Likewise. | |
19127 | (vst4_s16): Likewise. | |
19128 | (vst4_p16): Likewise. | |
19129 | (vst4_s32): Likewise. | |
19130 | (vst4_u8): Likewise. | |
19131 | (vst4_u16): Likewise. | |
19132 | (vst4_u32): Likewise. | |
19133 | (vst4_f16): Likewise. | |
19134 | (vst4_f32): Likewise. | |
19135 | (vst4_p64): Likewise. | |
19136 | (vst4q_s8): Likewise. | |
19137 | (vst4q_p8): Likewise. | |
19138 | (vst4q_s16): Likewise. | |
19139 | (vst4q_p16): Likewise. | |
19140 | (vst4q_s32): Likewise. | |
19141 | (vst4q_s64): Likewise. | |
19142 | (vst4q_u8): Likewise. | |
19143 | (vst4q_u16): Likewise. | |
19144 | (vst4q_u32): Likewise. | |
19145 | (vst4q_u64): Likewise. | |
19146 | (vst4q_f16): Likewise. | |
19147 | (vst4q_f32): Likewise. | |
19148 | (vst4q_f64): Likewise. | |
19149 | (vst4q_p64): Likewise. | |
19150 | ||
19151 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
19152 | ||
19153 | * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy | |
19154 | instead of constructing __builtin_aarch64_simd_oi one vector | |
19155 | at a time. | |
19156 | (vtbx4_u8): Likewise. | |
19157 | (vtbx4_p8): Likewise. | |
19158 | ||
19159 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
19160 | ||
19161 | * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy | |
19162 | instead of constructing __builtin_aarch64_simd_oi one vector | |
19163 | at a time. | |
19164 | (vtbl3_u8): Likewise. | |
19165 | (vtbl3_p8): Likewise. | |
19166 | (vtbl4_s8): Likewise. | |
19167 | (vtbl4_u8): Likewise. | |
19168 | (vtbl4_p8): Likewise. | |
19169 | ||
19170 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
19171 | ||
19172 | * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy | |
19173 | instead of constructing __builtin_aarch64_simd_oi one vector | |
19174 | at a time. | |
19175 | (vqtbx2_u8): Likewise. | |
19176 | (vqtbx2_p8): Likewise. | |
19177 | (vqtbx2q_s8): Likewise. | |
19178 | (vqtbx2q_u8): Likewise. | |
19179 | (vqtbx2q_p8): Likewise. | |
19180 | (vqtbx3_s8): Use __builtin_memcpy instead of constructing | |
19181 | __builtin_aarch64_simd_ci one vector at a time. | |
19182 | (vqtbx3_u8): Likewise. | |
19183 | (vqtbx3_p8): Likewise. | |
19184 | (vqtbx3q_s8): Likewise. | |
19185 | (vqtbx3q_u8): Likewise. | |
19186 | (vqtbx3q_p8): Likewise. | |
19187 | (vqtbx4_s8): Use __builtin_memcpy instead of constructing | |
19188 | __builtin_aarch64_simd_xi one vector at a time. | |
19189 | (vqtbx4_u8): Likewise. | |
19190 | (vqtbx4_p8): Likewise. | |
19191 | (vqtbx4q_s8): Likewise. | |
19192 | (vqtbx4q_u8): Likewise. | |
19193 | (vqtbx4q_p8): Likewise. | |
19194 | ||
19195 | 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> | |
19196 | ||
19197 | * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy | |
19198 | instead of constructing __builtin_aarch64_simd_oi one vector | |
19199 | at a time. | |
19200 | (vqtbl2_u8): Likewise. | |
19201 | (vqtbl2_p8): Likewise. | |
19202 | (vqtbl2q_s8): Likewise. | |
19203 | (vqtbl2q_u8): Likewise. | |
19204 | (vqtbl2q_p8): Likewise. | |
19205 | (vqtbl3_s8): Use __builtin_memcpy instead of constructing | |
19206 | __builtin_aarch64_simd_ci one vector at a time. | |
19207 | (vqtbl3_u8): Likewise. | |
19208 | (vqtbl3_p8): Likewise. | |
19209 | (vqtbl3q_s8): Likewise. | |
19210 | (vqtbl3q_u8): Likewise. | |
19211 | (vqtbl3q_p8): Likewise. | |
19212 | (vqtbl4_s8): Use __builtin_memcpy instead of constructing | |
19213 | __builtin_aarch64_simd_xi one vector at a time. | |
19214 | (vqtbl4_u8): Likewise. | |
19215 | (vqtbl4_p8): Likewise. | |
19216 | (vqtbl4q_s8): Likewise. | |
19217 | (vqtbl4q_u8): Likewise. | |
19218 | (vqtbl4q_p8): Likewise. | |
19219 | ||
19220 | 2021-07-23 Haochen Gui <guihaoc@gcc.gnu.org> | |
19221 | ||
19222 | PR target/100952 | |
19223 | * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through. | |
19224 | ||
19225 | 2021-07-22 Andrew Pinski <apinski@marvell.com> | |
19226 | ||
19227 | PR tree-optimization/10153 | |
19228 | * tree-tailcall.c (create_tailcall_accumulator): | |
19229 | Don't call fold_convert as the type should be correct already. | |
19230 | (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead | |
19231 | of integer_{one,zero}_node for the call of create_tailcall_accumulator. | |
19232 | ||
19233 | 2021-07-22 Aldy Hernandez <aldyh@redhat.com> | |
19234 | ||
19235 | * gimple-range-cache.cc (non_null_ref::adjust_range): Replace | |
19236 | varying_p check for null/non-null check. | |
19237 | ||
19238 | 2021-07-22 Andrew MacLeod <amacleod@redhat.com> | |
19239 | ||
19240 | PR tree-optimization/101511 | |
19241 | * value-relation.cc (relation_oracle::query_relation): Check if ssa1 | |
19242 | is in ssa2's equiv set, and don't trap if so. | |
19243 | ||
19244 | 2021-07-22 Andrew MacLeod <amacleod@redhat.com> | |
19245 | ||
19246 | PR tree-optimization/101497 | |
19247 | * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check | |
19248 | for undefined. | |
19249 | ||
19250 | 2021-07-22 Andrew MacLeod <amacleod@redhat.com> | |
19251 | ||
19252 | PR tree-optimization/101496 | |
19253 | * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt | |
19254 | first, then vrp_visit_cond_Stmt. | |
19255 | ||
19256 | 2021-07-22 liuhongt <hongtao.liu@intel.com> | |
19257 | ||
19258 | * config/i386/i386-expand.c | |
19259 | (ix86_broadcast_from_integer_constant): Rename to .. | |
19260 | (ix86_broadcast_from_constant): .. this, and extend it to | |
19261 | handle float mode. | |
19262 | (ix86_expand_vector_move): Extend to float mode. | |
19263 | * config/i386/i386-features.c | |
19264 | (replace_constant_pool_with_broadcast): Remove. | |
19265 | (remove_partial_avx_dependency_gate): Ditto. | |
19266 | (constant_pool_broadcast): Ditto. | |
19267 | (class pass_constant_pool_broadcast): Ditto. | |
19268 | (make_pass_constant_pool_broadcast): Ditto. | |
19269 | (remove_partial_avx_dependency): Adjust gate. | |
19270 | * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast. | |
19271 | * config/i386/i386-protos.h | |
19272 | (make_pass_constant_pool_broadcast): Remove. | |
19273 | ||
19274 | 2021-07-22 liuhongt <hongtao.liu@intel.com> | |
19275 | ||
19276 | * config/i386/constraints.md (Wb): New constraint. | |
19277 | (Ww): Ditto. | |
19278 | * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask | |
19279 | shift. | |
19280 | (*ashlqi3_1): Ditto. | |
19281 | (*<insn><mode>3_1): Split to .. | |
19282 | (*ashr<mode>3_1): this, ... | |
19283 | (*lshr<mode>3_1): and this, also extend this pattern to avx512 | |
19284 | mask registers. | |
19285 | (*<insn><mode>3_1): Split to .. | |
19286 | (*ashr<mode>3_1): this, ... | |
19287 | (*lshrqi3_1): and this, also extend this pattern to avx512 | |
19288 | mask registers. | |
19289 | (*lshrhi3_1): And this, also extend this pattern to avx512 | |
19290 | mask registers. | |
19291 | * config/i386/sse.md (k<code><mode>): New define_split after | |
19292 | it to convert generic shift pattern to mask shift ones. | |
19293 | ||
19294 | 2021-07-21 Thomas Schwinge <thomas@codesourcery.com> | |
19295 | Joseph Myers <joseph@codesourcery.com> | |
19296 | Cesar Philippidis <cesar@codesourcery.com> | |
19297 | ||
19298 | * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'. | |
19299 | * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1): | |
19300 | Handle it. | |
19301 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
19302 | * omp-general.c (oacc_verify_routine_clauses): Likewise. | |
19303 | * gimplify.c (gimplify_scan_omp_clauses) | |
19304 | (gimplify_adjust_omp_clauses): Likewise. | |
19305 | * tree-nested.c (convert_nonlocal_omp_clauses) | |
19306 | (convert_local_omp_clauses): Likewise. | |
19307 | * omp-low.c (scan_sharing_clauses): Likewise. | |
19308 | * omp-offload.c (execute_oacc_device_lower): Update. | |
19309 | ||
19310 | 2021-07-21 Martin Sebor <msebor@redhat.com> | |
19311 | ||
19312 | * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment. | |
19313 | ||
19314 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19315 | ||
19316 | * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table): | |
19317 | Implement. | |
19318 | ||
19319 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19320 | ||
19321 | * config/rs6000/rs6000-gen-builtins.c (write_fntype): New | |
19322 | callback function. | |
19323 | (write_fntype_init): New stub function. | |
19324 | (write_init_bif_table): Likewise. | |
19325 | (write_init_ovld_table): New function. | |
19326 | (write_init_file): Implement. | |
19327 | ||
19328 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19329 | ||
19330 | * config/rs6000/rs6000-gen-builtins.c | |
19331 | (write_autogenerated_header): New function. | |
19332 | (write_decls): Likewise. | |
19333 | (write_extern_fntype): New callback function. | |
19334 | (write_header_file): Implement. | |
19335 | ||
19336 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19337 | ||
19338 | * config/rs6000/rs6000-gen-builtins.c (write_defines_file): | |
19339 | Implement. | |
19340 | ||
19341 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19342 | ||
19343 | * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New | |
19344 | function. | |
19345 | (complete_base_type): Likewise. | |
19346 | (construct_fntype_id): Likewise. | |
19347 | (parse_bif_entry): Call contruct_fntype_id. | |
19348 | (parse_ovld_entry): Likewise. | |
19349 | ||
19350 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19351 | ||
19352 | * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct. | |
19353 | (MAXOVLDSTANZAS): New macro. | |
19354 | (ovld_stanzas): New variable. | |
19355 | (curr_ovld_stanza): Likewise. | |
19356 | (MAXOVLDS): New macro. | |
19357 | (ovlddata): New struct. | |
19358 | (ovlds): New variable. | |
19359 | (curr_ovld): Likewise. | |
19360 | (max_ovld_args): Likewise. | |
19361 | (parse_ovld_entry): New function. | |
19362 | (parse_ovld_stanza): Likewise. | |
19363 | (parse_ovld): Implement. | |
19364 | ||
19365 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19366 | ||
19367 | * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs): | |
19368 | Implement. | |
19369 | ||
19370 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19371 | ||
19372 | * config/rs6000/rs6000-gen-builtins.c (parse_args): New function. | |
19373 | (parse_prototype): Implement. | |
19374 | ||
19375 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19376 | ||
19377 | * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum. | |
19378 | (curr_bif_stanza): New variable. | |
19379 | (stanza_entry): New struct. | |
19380 | (stanza_map): New initialized variable. | |
19381 | (enable_string): Likewise. | |
19382 | (fnkinds): New enum. | |
19383 | (typelist): New struct. | |
19384 | (attrinfo): Likewise. | |
19385 | (MAXRESTROPNDS): New macro. | |
19386 | (prototype): New struct. | |
19387 | (MAXBIFS): New macro. | |
19388 | (bifdata): New struct. | |
19389 | (bifs): New variable. | |
19390 | (curr_bif): Likewise. | |
19391 | (bif_order): Likewise. | |
19392 | (bif_index): Likewise. | |
19393 | (fatal): New function. | |
19394 | (stanza_name_to_stanza): Likewise. | |
19395 | (parse_bif_attrs): New stub function. | |
19396 | (parse_prototype): Likewise. | |
19397 | (parse_bif_entry): New function. | |
19398 | (parse_bif_stanza): Likewise. | |
19399 | (parse_bif): Implement. | |
19400 | (set_bif_order): New function. | |
19401 | (create_bif_order): Implement. | |
19402 | ||
19403 | 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
19404 | ||
19405 | * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. | |
19406 | (num_bifs): New variable. | |
19407 | (num_ovld_stanzas): Likewise. | |
19408 | (num_ovlds): Likewise. | |
19409 | (parse_codes): New enum. | |
19410 | (bif_rbt): New variable. | |
19411 | (ovld_rbt): Likewise. | |
19412 | (fntype_rbt): Likewise. | |
19413 | (bifo_rbt): Likewise. | |
19414 | (parse_bif): New stub function. | |
19415 | (create_bif_order): Likewise. | |
19416 | (parse_ovld): Likewise. | |
19417 | (write_header_file): Likewise. | |
19418 | (write_init_file): Likewise. | |
19419 | (write_defines_file): Likewise. | |
19420 | (delete_output_files): New function. | |
19421 | (main): Likewise. | |
19422 | ||
19423 | 2021-07-21 H.J. Lu <hjl.tools@gmail.com> | |
19424 | ||
19425 | PR target/101549 | |
19426 | * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2 | |
19427 | from CRC32 _builtin functions. | |
19428 | ||
19429 | 2021-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
19430 | ||
19431 | * coverage.c (build_gcov_info_var_registration): Mark the object placed | |
19432 | in the linker set as referenced so that it does not get optimized away. | |
19433 | ||
19434 | 2021-07-21 Kito Cheng <kito.cheng@sifive.com> | |
19435 | ||
19436 | Revert: | |
19437 | 2021-07-20 Kito Cheng <kito.cheng@sifive.com> | |
19438 | ||
19439 | * config.gcc (riscv*-*-*): Detect which python is available. | |
19440 | ||
19441 | 2021-07-21 Jakub Jelinek <jakub@redhat.com> | |
19442 | ||
19443 | PR middle-end/101535 | |
19444 | * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA | |
19445 | contexts in which decl isn't privatized and for ORT_TARGET return | |
19446 | false if decl is mapped. | |
19447 | ||
19448 | 2021-07-21 Richard Sandiford <richard.sandiford@arm.com> | |
19449 | ||
19450 | * gimple-loop-jam.c: Include tree-ssa-sccvn.h. | |
19451 | (tree_loop_unroll_and_jam): Run value-numbering on a loop that | |
19452 | has been successfully unrolled. | |
19453 | ||
19454 | 2021-07-21 Richard Sandiford <richard.sandiford@arm.com> | |
19455 | ||
19456 | * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null | |
19457 | exit condition if no tail loop is needed, and if the original exit | |
19458 | condition should therefore be kept as-is. | |
19459 | (tree_transform_and_unroll_loop): Handle that case here too. | |
19460 | ||
19461 | 2021-07-21 Kewen Lin <linkw@linux.ibm.com> | |
19462 | ||
19463 | * tree-data-ref.c (free_dependence_relations): Adjust to pass vec | |
19464 | by reference. | |
19465 | (free_data_refs): Likewise. | |
19466 | * tree-data-ref.h (free_dependence_relations): Likewise. | |
19467 | (free_data_refs): Likewise. | |
19468 | * tree-predcom.c (struct chain): Use auto_vec instead of vec for | |
19469 | members. | |
19470 | (struct component): Likewise. | |
19471 | (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes. | |
19472 | (pcom_worker::~pcom_worker): Likewise. | |
19473 | (pcom_worker::release_chain): Adjust as auto_vec changes. | |
19474 | (pcom_worker::loop): Rename to ... | |
19475 | (pcom_worker::m_loop): ... this. | |
19476 | (pcom_worker::datarefs): Rename to ... | |
19477 | (pcom_worker::m_datarefs): ... this. Use auto_vec instead of vec. | |
19478 | (pcom_worker::dependences): Rename to ... | |
19479 | (pcom_worker::m_dependences): ... this. Use auto_vec instead of vec. | |
19480 | (pcom_worker::chains): Rename to ... | |
19481 | (pcom_worker::m_chains): ... this. Use auto_vec instead of vec. | |
19482 | (pcom_worker::looparound_phis): Rename to ... | |
19483 | (pcom_worker::m_looparound_phis): ... this. Use auto_vec instead of | |
19484 | vec. | |
19485 | (pcom_worker::cache): Rename to ... | |
19486 | (pcom_worker::m_cache): ... this. Use auto_vec instead of vec. | |
19487 | (pcom_worker::release_chain): Adjust for auto_vec changes. | |
19488 | (pcom_worker::release_chains): Adjust for auto_vec and renaming | |
19489 | changes. | |
19490 | (release_component): Remove. | |
19491 | (release_components): Adjust for release_component removal. | |
19492 | (component_of): Adjust to use vec. | |
19493 | (merge_comps): Likewise. | |
19494 | (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes. | |
19495 | (pcom_worker::determine_offset): Likewise. | |
19496 | (class comp_ptrs): Remove. | |
19497 | (pcom_worker::split_data_refs_to_components): Adjust for renaming | |
19498 | changes, for comp_ptrs removal with auto_vec. | |
19499 | (pcom_worker::suitable_component_p): Adjust for renaming changes. | |
19500 | (pcom_worker::filter_suitable_components): Adjust for release_component | |
19501 | removal. | |
19502 | (pcom_worker::valid_initializer_p): Adjust for renaming changes. | |
19503 | (pcom_worker::find_looparound_phi): Likewise. | |
19504 | (pcom_worker::add_looparound_copies): Likewise. | |
19505 | (pcom_worker::determine_roots_comp): Likewise. | |
19506 | (pcom_worker::single_nonlooparound_use): Likewise. | |
19507 | (pcom_worker::execute_pred_commoning_chain): Likewise. | |
19508 | (pcom_worker::execute_pred_commoning): Likewise. | |
19509 | (pcom_worker::try_combine_chains): Likewise. | |
19510 | (pcom_worker::prepare_initializers_chain): Likewise. | |
19511 | (pcom_worker::prepare_initializers): Likewise. | |
19512 | (pcom_worker::prepare_finalizers_chain): Likewise. | |
19513 | (pcom_worker::prepare_finalizers): Likewise. | |
19514 | (pcom_worker::tree_predictive_commoning_loop): Likewise. | |
19515 | ||
19516 | 2021-07-20 Martin Sebor <msebor@redhat.com> | |
19517 | ||
19518 | PR middle-end/101397 | |
19519 | * builtins.c (gimple_call_return_array): Add argument. Correct | |
19520 | offsets for memchr, mempcpy, stpcpy, and stpncpy. | |
19521 | (compute_objsize_r): Adjust offset computation for argument returning | |
19522 | built-ins. | |
19523 | ||
19524 | 2021-07-20 Martin Sebor <msebor@redhat.com> | |
19525 | ||
19526 | PR middle-end/101300 | |
19527 | * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins. | |
19528 | ||
19529 | 2021-07-20 Jeff Law <jlaw@localhost.localdomain> | |
19530 | ||
19531 | * function.c (assign_parm_setup_block): Use adjust_address instead | |
19532 | of change_address to preserve MEM_EXPR and friends. | |
19533 | ||
19534 | 2021-07-20 Martin Sebor <msebor@redhat.com> | |
19535 | ||
19536 | * cfgloop.h (single_likely_exit): Adjust by-value argument to | |
19537 | by-const-reference. | |
19538 | * cfgloopanal.c (single_likely_exit): Same. | |
19539 | * cgraph.h (struct cgraph_node): Same. | |
19540 | * cgraphclones.c (cgraph_node::create_virtual_clone): Same. | |
19541 | * genautomata.c (merge_states): Same. | |
19542 | * genextract.c (VEC_char_to_string): Same. | |
19543 | * genmatch.c (dt_node::gen_kids_1): Same. | |
19544 | (walk_captures): Adjust by-value argument to by-reference. | |
19545 | * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument | |
19546 | to by-const-reference. | |
19547 | * gimple.c (gimple_build_call_vec): Same. | |
19548 | (gimple_build_call_internal_vec): Same. | |
19549 | (gimple_build_switch): Same. | |
19550 | (sort_case_labels): Same. | |
19551 | (preprocess_case_label_vec_for_gimple): Adjust by-value argument to | |
19552 | by-reference. | |
19553 | * gimple.h (gimple_build_call_vec): Adjust by-value argument to | |
19554 | by-const-reference. | |
19555 | (gimple_build_call_internal_vec): Same. | |
19556 | (gimple_build_switch): Same. | |
19557 | (sort_case_labels): Same. | |
19558 | (preprocess_case_label_vec_for_gimple): Adjust by-value argument to | |
19559 | by-reference. | |
19560 | * haifa-sched.c (calc_priorities): Adjust by-value argument to | |
19561 | by-const-reference. | |
19562 | (sched_init_luids): Same. | |
19563 | (haifa_init_h_i_d): Same. | |
19564 | * ipa-cp.c (ipa_get_indirect_edge_target_1): Same. | |
19565 | (adjust_callers_for_value_intersection): Adjust by-value argument to | |
19566 | by-reference. | |
19567 | (find_more_scalar_values_for_callers_subset): Adjust by-value argument to | |
19568 | by-const-reference. | |
19569 | (find_more_contexts_for_caller_subset): Same. | |
19570 | (find_aggregate_values_for_callers_subset): Same. | |
19571 | (copy_useful_known_contexts): Same. | |
19572 | * ipa-fnsummary.c (remap_edge_summaries): Same. | |
19573 | (remap_freqcounting_predicate): Same. | |
19574 | * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to | |
19575 | by-reference. | |
19576 | * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument | |
19577 | to by-const-reference. | |
19578 | * ipa-predicate.h (predicate::remap_after_inlining): Same. | |
19579 | * ipa-prop.c (ipa_find_agg_cst_for_param): Same. | |
19580 | * ipa-prop.h (ipa_find_agg_cst_for_param): Same. | |
19581 | * ira-build.c (ira_loop_tree_body_rev_postorder): Same. | |
19582 | * read-rtl.c (add_overload_instance): Same. | |
19583 | * rtl.h (native_decode_rtx): Same. | |
19584 | (native_decode_vector_rtx): Same. | |
19585 | * sched-int.h (sched_init_luids): Same. | |
19586 | (haifa_init_h_i_d): Same. | |
19587 | * simplify-rtx.c (native_decode_vector_rtx): Same. | |
19588 | (native_decode_rtx): Same. | |
19589 | * tree-call-cdce.c (gen_shrink_wrap_conditions): Same. | |
19590 | (shrink_wrap_one_built_in_call_with_conds): Same. | |
19591 | (shrink_wrap_conditional_dead_built_in_calls): Same. | |
19592 | * tree-data-ref.c (create_runtime_alias_checks): Same. | |
19593 | (compute_all_dependences): Same. | |
19594 | * tree-data-ref.h (compute_all_dependences): Same. | |
19595 | (create_runtime_alias_checks): Same. | |
19596 | (index_in_loop_nest): Same. | |
19597 | * tree-if-conv.c (mask_exists): Same. | |
19598 | * tree-loop-distribution.c (class loop_distribution): Same. | |
19599 | (loop_distribution::create_rdg_vertices): Same. | |
19600 | (dump_rdg_partitions): Same. | |
19601 | (debug_rdg_partitions): Same. | |
19602 | (partition_contains_all_rw): Same. | |
19603 | (loop_distribution::distribute_loop): Same. | |
19604 | * tree-parloops.c (oacc_entry_exit_ok_1): Same. | |
19605 | (oacc_entry_exit_single_gang): Same. | |
19606 | * tree-ssa-loop-im.c (hoist_memory_references): Same. | |
19607 | (loop_suitable_for_sm): Same. | |
19608 | * tree-ssa-loop-niter.c (bound_index): Same. | |
19609 | * tree-ssa-reassoc.c (update_ops): Same. | |
19610 | (swap_ops_for_binary_stmt): Same. | |
19611 | (rewrite_expr_tree): Same. | |
19612 | (rewrite_expr_tree_parallel): Same. | |
19613 | * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same. | |
19614 | * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same. | |
19615 | * tree-ssa-structalias.c (process_all_all_constraints): Same. | |
19616 | (make_constraints_to): Same. | |
19617 | (handle_lhs_call): Same. | |
19618 | (find_func_aliases_for_builtin_call): Same. | |
19619 | (sort_fieldstack): Same. | |
19620 | (check_for_overlaps): Same. | |
19621 | * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same. | |
19622 | (vect_create_cond_for_unequal_addrs): Same. | |
19623 | (vect_create_cond_for_lower_bounds): Same. | |
19624 | (vect_create_cond_for_alias_checks): Same. | |
19625 | * tree-vect-slp-patterns.c (vect_validate_multiplication): Same. | |
19626 | * tree-vect-slp.c (vect_analyze_slp_instance): Same. | |
19627 | (vect_make_slp_decision): Same. | |
19628 | (vect_slp_bbs): Same. | |
19629 | (duplicate_and_interleave): Same. | |
19630 | (vect_transform_slp_perm_load): Same. | |
19631 | (vect_schedule_slp): Same. | |
19632 | * tree-vectorizer.h (vect_transform_slp_perm_load): Same. | |
19633 | (vect_schedule_slp): Same. | |
19634 | (duplicate_and_interleave): Same. | |
19635 | * tree.c (build_vector_from_ctor): Same. | |
19636 | (build_vector): Same. | |
19637 | (check_vector_cst): Same. | |
19638 | (check_vector_cst_duplicate): Same. | |
19639 | (check_vector_cst_fill): Same. | |
19640 | (check_vector_cst_stepped): Same. | |
19641 | * tree.h (build_vector_from_ctor): Same. | |
19642 | ||
19643 | 2021-07-20 Jakub Jelinek <jakub@redhat.com> | |
19644 | ||
19645 | PR target/101384 | |
19646 | * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return | |
19647 | type from bool to int. | |
19648 | * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the | |
19649 | EASY_VECTOR_MSB case if either step or copies is not 1. | |
19650 | (vspltis_shifted): Fix comment typo. | |
19651 | (easy_altivec_constant): Change return type from bool to int, instead | |
19652 | of returning true return byte size of the element mode that should be | |
19653 | used to synthetize the constant. | |
19654 | * config/rs6000/predicates.md (easy_vector_constant_msb): Require | |
19655 | that vspltis_shifted is 0, handle the case where easy_altivec_constant | |
19656 | assumes using different vector mode from CONST_VECTOR's mode. | |
19657 | * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use | |
19658 | easy_altivec_constant to determine mode in which -1 >> -1 should be | |
19659 | performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi. | |
19660 | ||
19661 | 2021-07-20 Richard Biener <rguenther@suse.de> | |
19662 | ||
19663 | PR debug/101473 | |
19664 | * dwarf2out.h (dwarf_file_data): Add key member. | |
19665 | * dwarf2out.c (dwarf_file_hasher::equal): Compare key. | |
19666 | (dwarf_file_hasher::hash): Hash key. | |
19667 | (lookup_filename): Remap the filename and store it in the | |
19668 | filename member of dwarf_file_data when creating a new | |
19669 | dwarf_file_data. | |
19670 | (file_name_acquire): Do not remap the filename again. | |
19671 | (maybe_emit_file): Likewise. | |
19672 | ||
19673 | 2021-07-20 Jonathan Wright <jonathan.wright@arm.com> | |
19674 | ||
19675 | * config/aarch64/aarch64-simd-builtins.def: Use two variant | |
19676 | generators for all TBL/TBX intrinsics and rename to | |
19677 | consistent forms: qtbl[1234] or qtbx[1234]. | |
19678 | * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>): | |
19679 | Rename to... | |
19680 | (aarch64_qtbl1<mode>): This. | |
19681 | (aarch64_tbx1<mode>): Rename to... | |
19682 | (aarch64_qtbx1<mode>): This. | |
19683 | (aarch64_tbl2v16qi): Delete. | |
19684 | (aarch64_tbl3<mode>): Rename to... | |
19685 | (aarch64_qtbl2<mode>): This. | |
19686 | (aarch64_tbx4<mode>): Rename to... | |
19687 | (aarch64_qtbx2<mode>): This. | |
19688 | * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use | |
19689 | renamed qtbl1 and qtbl2 RTL patterns. | |
19690 | * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1 | |
19691 | RTL pattern. | |
19692 | (vqtbl1_s8): Likewise. | |
19693 | (vqtbl1_u8): Likewise. | |
19694 | (vqtbl1q_p8): Likewise. | |
19695 | (vqtbl1q_s8): Likewise. | |
19696 | (vqtbl1q_u8): Likewise. | |
19697 | (vqtbx1_s8): Use renamed qtbx1 RTL pattern. | |
19698 | (vqtbx1_u8): Likewise. | |
19699 | (vqtbx1_p8): Likewise. | |
19700 | (vqtbx1q_s8): Likewise. | |
19701 | (vqtbx1q_u8): Likewise. | |
19702 | (vqtbx1q_p8): Likewise. | |
19703 | (vtbl1_s8): Use renamed qtbl1 RTL pattern. | |
19704 | (vtbl1_u8): Likewise. | |
19705 | (vtbl1_p8): Likewise. | |
19706 | (vtbl2_s8): Likewise | |
19707 | (vtbl2_u8): Likewise. | |
19708 | (vtbl2_p8): Likewise. | |
19709 | (vtbl3_s8): Use renamed qtbl2 RTL pattern. | |
19710 | (vtbl3_u8): Likewise. | |
19711 | (vtbl3_p8): Likewise. | |
19712 | (vtbl4_s8): Likewise. | |
19713 | (vtbl4_u8): Likewise. | |
19714 | (vtbl4_p8): Likewise. | |
19715 | (vtbx2_s8): Use renamed qtbx2 RTL pattern. | |
19716 | (vtbx2_u8): Likewise. | |
19717 | (vtbx2_p8): Likewise. | |
19718 | (vqtbl2_s8): Use renamed qtbl2 RTL pattern. | |
19719 | (vqtbl2_u8): Likewise. | |
19720 | (vqtbl2_p8): Likewise. | |
19721 | (vqtbl2q_s8): Likewise. | |
19722 | (vqtbl2q_u8): Likewise. | |
19723 | (vqtbl2q_p8): Likewise. | |
19724 | (vqtbx2_s8): Use renamed qtbx2 RTL pattern. | |
19725 | (vqtbx2_u8): Likewise. | |
19726 | (vqtbx2_p8): Likewise. | |
19727 | (vqtbx2q_s8): Likewise. | |
19728 | (vqtbx2q_u8): Likewise. | |
19729 | (vqtbx2q_p8): Likewise. | |
19730 | (vtbx4_s8): Likewise. | |
19731 | (vtbx4_u8): Likewise. | |
19732 | (vtbx4_p8): Likewise. | |
19733 | ||
19734 | 2021-07-20 Uroš Bizjak <ubizjak@gmail.com> | |
19735 | ||
19736 | PR target/100182 | |
19737 | * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): | |
19738 | Remove. | |
19739 | (define_peephole2 atomic_loaddi_fpu): Ditto. | |
19740 | ||
19741 | 2021-07-20 Kito Cheng <kito.cheng@sifive.com> | |
19742 | ||
19743 | * config.gcc (riscv*-*-*): Detect which python is available. | |
19744 | ||
19745 | 2021-07-20 Kewen Lin <linkw@linux.ibm.com> | |
19746 | ||
19747 | * config/rs6000/vsx.md (mulhs_<mode>): Rename to... | |
19748 | (smul<mode>3_highpart): ... this. | |
19749 | (mulhu_<mode>): Rename to... | |
19750 | (umul<mode>3_highpart): ... this. | |
19751 | * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI, | |
19752 | MULHU_V2DI, MULHU_V4SI): Adjust. | |
19753 | ||
19754 | 2021-07-20 Kewen Lin <linkw@linux.ibm.com> | |
19755 | ||
19756 | PR tree-optimization/100696 | |
19757 | * internal-fn.c (first_commutative_argument): Add info for IFN_MULH. | |
19758 | * internal-fn.def (IFN_MULH): New internal function. | |
19759 | * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to | |
19760 | recog normal multiply highpart as IFN_MULH. | |
19761 | * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined | |
19762 | function CFN_MULH. | |
19763 | ||
19764 | 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com> | |
19765 | ||
19766 | * config/elfos.h (CTF_DEBUGGING_INFO): New definition. | |
19767 | (BTF_DEBUGGING_INFO): Likewise. | |
19768 | * doc/tm.texi.in: Document the new macros. | |
19769 | * doc/tm.texi: Regenerated. | |
19770 | * toplev.c: Guard initialization of debug hooks. | |
19771 | ||
19772 | 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com> | |
19773 | ||
19774 | * flags.h (ctf_debuginfo_p): New function declaration. | |
19775 | * opts.c (ctf_debuginfo_p): New function definition. | |
19776 | ||
19777 | 2021-07-19 Andrew Stubbs <ams@codesourcery.com> | |
19778 | ||
19779 | PR target/100208 | |
19780 | * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New. | |
19781 | (ASM_SPEC): Set -mattr for xnack and sram-ecc. | |
19782 | * config/gcn/gcn-opts.h (enum sram_ecc_type): New. | |
19783 | * config/gcn/gcn-valu.md: Add a warning comment. | |
19784 | * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack. | |
19785 | (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target". | |
19786 | * config/gcn/gcn.md: Add a warning comment. | |
19787 | * config/gcn/gcn.opt: Add -mxnack and -msram-ecc. | |
19788 | * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove | |
19789 | SRAM-ECC flag. | |
19790 | (EF_AMDGPU_XNACK): New. | |
19791 | (EF_AMDGPU_SRAM_ECC): New. | |
19792 | (elf_flags): New. | |
19793 | (copy_early_debug_info): Use elf_flags. | |
19794 | (main): Handle -mxnack and -msram-ecc options. | |
19795 | * doc/invoke.texi: Document -mxnack and -msram-ecc. | |
19796 | ||
19797 | 2021-07-19 Andrew Pinski <apinski@marvell.com> | |
19798 | ||
19799 | PR target/101205 | |
19800 | * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ... | |
19801 | (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT. | |
19802 | ||
19803 | 2021-07-19 Richard Biener <rguenther@suse.de> | |
19804 | ||
19805 | PR tree-optimization/101505 | |
19806 | * tree-vect-patterns.c (vect_determine_precisions): Walk | |
19807 | PHIs also for loop vectorization. | |
19808 | ||
19809 | 2021-07-19 Richard Biener <rguenther@suse.de> | |
19810 | ||
19811 | * gimple.h (gimple_expr_type): Remove. | |
19812 | * doc/gimple.texi: Remove gimple_expr_type documentation. | |
19813 | ||
19814 | 2021-07-19 Richard Biener <rguenther@suse.de> | |
19815 | ||
19816 | * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type. | |
19817 | (ao_ref_init_from_vn_reference): Likewise. | |
19818 | (fully_constant_reference): Likewise. | |
19819 | (vn_reference_lookup_call): Do not set vr->type to random | |
19820 | values. | |
19821 | * tree-ssa-pre.c (compute_avail): Do not try to PRE calls | |
19822 | without a value. | |
19823 | * tree-vect-generic.c (expand_vector_piecewise): Pass in | |
19824 | whether we expanded parallel. | |
19825 | (expand_vector_parallel): Adjust. | |
19826 | (expand_vector_addition): Likewise. | |
19827 | (expand_vector_comparison): Likewise. | |
19828 | (expand_vector_operation): Likewise. | |
19829 | (expand_vector_scalar_condition): Likewise. | |
19830 | (expand_vector_conversion): Likewise. | |
19831 | ||
19832 | 2021-07-19 Richard Biener <rguenther@suse.de> | |
19833 | ||
19834 | * tree-vrp.c (register_edge_assert_for_2): Use the | |
19835 | type from the LHS. | |
19836 | (vrp_folder::fold_predicate_in): Likewise. | |
19837 | * vr-values.c (gimple_assign_nonzero_p): Likewise. | |
19838 | (vr_values::extract_range_from_comparison): Likewise. | |
19839 | (vr_values::extract_range_from_ubsan_builtin): Use the | |
19840 | type of the first operand. | |
19841 | (vr_values::extract_range_basic): Push down type | |
19842 | computation, use the appropriate LHS. | |
19843 | (vr_values::extract_range_from_assignment): Use the | |
19844 | type of the LHS. | |
19845 | ||
19846 | 2021-07-18 H.J. Lu <hjl.tools@gmail.com> | |
19847 | ||
19848 | PR target/101492 | |
19849 | * common/config/i386/i386-common.c (ix86_handle_option): For | |
19850 | -mgeneral-regs-only, enable the GPR only instructions which are | |
19851 | enabled implicitly by SSE ISAs unless they have been disabled | |
19852 | explicitly. | |
19853 | ||
19854 | 2021-07-18 H.J. Lu <hjl.tools@gmail.com> | |
19855 | ||
19856 | PR target/101495 | |
19857 | * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before | |
19858 | ix86_avx_u128_mode_needed. | |
19859 | (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee | |
19860 | returns AVX register. | |
19861 | ||
19862 | 2021-07-17 Jan Hubicka <hubicka@ucw.cz> | |
19863 | ||
19864 | * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED. | |
19865 | (handle_const_call): Liekise | |
19866 | (handle_pure_call): Liekise | |
19867 | ||
19868 | 2021-07-17 Andrew MacLeod <amacleod@redhat.com> | |
19869 | ||
19870 | PR tree-optimization/96542 | |
19871 | * range-op.cc (range_operator::wi_fold_in_parts): New. | |
19872 | (range_operator::fold_range): Call wi_fold_in_parts. | |
19873 | (operator_lshift::wi_fold): Fix broken lshift by [0,0]. | |
19874 | * range-op.h (wi_fold_in_parts): Add prototype. | |
19875 | ||
19876 | 2021-07-16 David Malcolm <dmalcolm@redhat.com> | |
19877 | ||
19878 | * doc/analyzer.texi: Add __analyzer_dump_state. | |
19879 | ||
19880 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19881 | ||
19882 | * config/rs6000/rbtree.c: New file. | |
19883 | * config/rs6000/rbtree.h: New file. | |
19884 | ||
19885 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19886 | ||
19887 | * config/rs6000/rs6000-gen-builtins.c (restriction): New enum. | |
19888 | (typeinfo): Add restr field. | |
19889 | (match_bracketed_pair): New function. | |
19890 | (match_const_restriction): Implement. | |
19891 | ||
19892 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19893 | ||
19894 | * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement. | |
19895 | ||
19896 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19897 | ||
19898 | * config/rs6000/rs6000-gen-builtins.c (void_status): New enum. | |
19899 | (basetype): Likewise. | |
19900 | (typeinfo): Likewise. | |
19901 | (handle_pointer): New function. | |
19902 | (match_basetype): New stub function. | |
19903 | (match_const_restriction): Likewise. | |
19904 | (match_type): New function. | |
19905 | ||
19906 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19907 | ||
19908 | * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New | |
19909 | function. | |
19910 | (advance_line): Likewise. | |
19911 | (safe_inc_pos): Likewise. | |
19912 | (match_identifier): Likewise. | |
19913 | (match_integer): Likewise. | |
19914 | (match_to_right_bracket): Likewise. | |
19915 | ||
19916 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19917 | ||
19918 | * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable. | |
19919 | (ovld_file): Likewise. | |
19920 | (header_file): Likewise. | |
19921 | (init_file): Likewise. | |
19922 | (defines_file): Likewise. | |
19923 | (pgm_path): Likewise. | |
19924 | (bif_path): Likewise. | |
19925 | (ovld_path): Likewise. | |
19926 | (header_path): Likewise. | |
19927 | (init_path): Likewise. | |
19928 | (defines_path): Likewise. | |
19929 | (LINELEN): New macro. | |
19930 | (linebuf): New variable. | |
19931 | (line): Likewise. | |
19932 | (pos): Likewise. | |
19933 | (diag): Likewise. | |
19934 | (bif_diag): New function. | |
19935 | (ovld_diag): Likewise. | |
19936 | ||
19937 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19938 | ||
19939 | * config/rs6000/rs6000-builtin-new.def: New. | |
19940 | * config/rs6000/rs6000-overload.def: New. | |
19941 | ||
19942 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19943 | ||
19944 | * config/rs6000/rs6000-gen-builtins.c: New. | |
19945 | ||
19946 | 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
19947 | ||
19948 | * Makefile.in (EXTRA_GTYPE_DEPS): New variable. | |
19949 | (s-gtype): Depend on EXTRA_GTYPE_DEPS. | |
19950 | * gengtype-state.c (state_writer::write_state_file_list): Add a | |
19951 | parameter to the fileslist expression for the number of build | |
19952 | headers to scan. | |
19953 | (read_state_files_list): Detect build headers and strip the | |
19954 | initial "./" or ".\" from their names. | |
19955 | * gengtype.c (build_headers): New global variable. | |
19956 | (num_build_headers): Likewise. | |
19957 | (open_base_files): Emit #include for each build header. | |
19958 | (main): Detect and count build headers. | |
19959 | * gengtype.h (build_headers): New extern variable. | |
19960 | (num_build_headers): Likewise. | |
19961 | ||
19962 | 2021-07-16 Richard Biener <rguenther@suse.de> | |
19963 | ||
19964 | * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use | |
19965 | the type of the LHS. | |
19966 | (find_bswap_or_nop_1): Likewise. | |
19967 | (find_bswap_or_nop): Likewise. | |
19968 | * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust | |
19969 | prototype. | |
19970 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type): | |
19971 | Remove unused parameters, pass in the scalar type. Fix | |
19972 | internal store function handling. | |
19973 | * tree-vect-stmts.c (vect_analyze_stmt): Remove assert. | |
19974 | (vect_get_vector_types_for_stmt): Move down check for | |
19975 | existing vector stmt after we've determined a scalar type. | |
19976 | Pass down the used scalar type to vect_get_smallest_scalar_type. | |
19977 | * tree-vect-generic.c (expand_vector_condition): Use | |
19978 | the type of the LHS. | |
19979 | (expand_vector_scalar_condition): Likewise. | |
19980 | (expand_vector_operations_1): Likewise. | |
19981 | * tree-vect-patterns.c (vect_widened_op_tree): Likewise. | |
19982 | (vect_recog_dot_prod_pattern): Likewise. | |
19983 | (vect_recog_sad_pattern): Likewise. | |
19984 | (vect_recog_widen_op_pattern): Likewise. | |
19985 | (vect_recog_widen_sum_pattern): Likewise. | |
19986 | (vect_recog_mixed_size_cond_pattern): Likewise. | |
19987 | ||
19988 | 2021-07-16 Jan Hubicka <hubicka@ucw.cz> | |
19989 | ||
19990 | * ipa-modref.c (struct escape_entry): Use eaf_fleags_t. | |
19991 | (dump_eaf_flags): Dump EAF_NOT_RETURNED | |
19992 | (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions | |
19993 | and EAF_NOT_RETURNED. | |
19994 | (modref_summary::useful_p): Likewise. | |
19995 | (modref_summary_lto::useful_p): Likewise. | |
19996 | (struct) modref_summary_lto: Use eaf_fleags_t. | |
19997 | (deref_flags): Handle EAF_NOT_RETURNED. | |
19998 | (struct escape_point): Use min_flags. | |
19999 | (modref_lattice::init): Add EAF_NOT_RETURNED. | |
20000 | (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions | |
20001 | (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return; | |
20002 | handle call flags. | |
20003 | (analyze_parms): Also analyze const functions; update conition on | |
20004 | flags usefulness. | |
20005 | (modref_write): Update streaming. | |
20006 | (read_section): Update streaming. | |
20007 | (remap_arg_flags): Use eaf_flags_t. | |
20008 | (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED. | |
20009 | * ipa-modref.h: (eaf_flags_t): New typedef. | |
20010 | (struct modref_summary): Use eaf_flags_t. | |
20011 | * tree-core.h (EAF_NOT_RETURNED): New constant. | |
20012 | ||
20013 | 2021-07-16 Richard Biener <rguenther@suse.de> | |
20014 | ||
20015 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use | |
20016 | the type of the LHS. | |
20017 | (gimple_assign_nonnegative_warnv_p): Likewise. | |
20018 | (gimple_call_nonnegative_warnv_p): Likewise. Return false | |
20019 | if the call has no LHS. | |
20020 | * gimple.c (gimple_could_trap_p_1): Use the type of the LHS. | |
20021 | * tree-eh.c (stmt_could_throw_1_p): Likewise. | |
20022 | * tree-inline.c (insert_init_stmt): Likewise. | |
20023 | * tree-ssa-loop-niter.c (get_val_for): Likewise. | |
20024 | * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of | |
20025 | the def. | |
20026 | * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a | |
20027 | gassign *. Use the type of the lhs. | |
20028 | (vn_nary_op_lookup_stmt): Adjust. | |
20029 | (vn_nary_op_insert_stmt): Likewise. | |
20030 | ||
20031 | 2021-07-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
20032 | ||
20033 | * config/s390/predicates.md (bras_sym_operand): Accept all | |
20034 | functions in 64-bit mode, use UNSPEC_PLT31. | |
20035 | (larl_operand): Use UNSPEC_PLT31. | |
20036 | * config/s390/s390.c (s390_loadrelative_operand_p): Likewise. | |
20037 | (legitimize_pic_address): Likewise. | |
20038 | (s390_emit_tls_call_insn): Mark __tls_get_offset as function, | |
20039 | use UNSPEC_PLT31. | |
20040 | (s390_delegitimize_address): Use UNSPEC_PLT31. | |
20041 | (s390_output_addr_const_extra): Likewise. | |
20042 | (print_operand): Add @PLT to TLS calls, handle %K. | |
20043 | (s390_function_profiler): Mark __fentry__/_mcount as function, | |
20044 | use %K, use UNSPEC_PLT31. | |
20045 | (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K. | |
20046 | (s390_emit_call): Use UNSPEC_PLT31. | |
20047 | (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function. | |
20048 | * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT. | |
20049 | (*movdi_64): Use %K. | |
20050 | (reload_base_64): Likewise. | |
20051 | (*sibcall_brc): Likewise. | |
20052 | (*sibcall_brcl): Likewise. | |
20053 | (*sibcall_value_brc): Likewise. | |
20054 | (*sibcall_value_brcl): Likewise. | |
20055 | (*bras): Likewise. | |
20056 | (*brasl): Likewise. | |
20057 | (*bras_r): Likewise. | |
20058 | (*brasl_r): Likewise. | |
20059 | (*bras_tls): Likewise. | |
20060 | (*brasl_tls): Likewise. | |
20061 | (main_base_64): Likewise. | |
20062 | (reload_base_64): Likewise. | |
20063 | (@split_stack_call<mode>): Likewise. | |
20064 | ||
20065 | 2021-07-16 Richard Biener <rguenther@suse.de> | |
20066 | ||
20067 | PR tree-optimization/101467 | |
20068 | * tree-vect-stmts.c (vect_gen_while): Properly guard | |
20069 | make_temp_ssa_name usage. | |
20070 | ||
20071 | 2021-07-16 Cooper Qu <cooper.qu@linux.alibaba.com> | |
20072 | ||
20073 | * config.gcc: Don't use forked print-sysroot-suffix.sh and | |
20074 | t-sysroot-suffix for C-SKY. | |
20075 | * config/csky/print-sysroot-suffix.sh: Delete. | |
20076 | * config/csky/t-csky-linux: Delete. | |
20077 | * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES | |
20078 | instead of CSKY_MULTILIB_DIRNAMES. | |
20079 | ||
20080 | 2021-07-16 Richard Biener <rguenther@suse.de> | |
20081 | ||
20082 | * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign | |
20083 | conversion issues with the partial reduction of the reused | |
20084 | vector accumulator. | |
20085 | ||
20086 | 2021-07-16 Richard Biener <rguenther@suse.de> | |
20087 | ||
20088 | * config/i386/i386-options.c (ix86_option_override_internal): Set | |
20089 | param_vect_partial_vector_usage to zero if not set. | |
20090 | ||
20091 | 2021-07-15 Uroš Bizjak <ubizjak@gmail.com> | |
20092 | ||
20093 | PR target/101346 | |
20094 | * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode. | |
20095 | (VALID_INT_MODE_P): Add SDmode and DDmode. | |
20096 | Add TDmode for TARGET_64BIT. | |
20097 | (VALID_DFP_MODE_P): Remove. | |
20098 | * config/i386/i386.c (ix86_hard_regno_mode_ok): | |
20099 | Do not use VALID_DFP_MODE_P. | |
20100 | ||
20101 | 2021-07-15 Andrew MacLeod <amacleod@redhat.com> | |
20102 | ||
20103 | * gimple-range-fold.cc (adjust_pointer_diff_expr): Use | |
20104 | gimple_range_type. | |
20105 | (fold_using_range::fold_stmt): Ditto. | |
20106 | (fold_using_range::range_of_range_op): Ditto. | |
20107 | (fold_using_range::range_of_phi): Ditto. | |
20108 | (fold_using_range::range_of_call): Ditto. | |
20109 | (fold_using_range::range_of_builtin_ubsan_call): Ditto. | |
20110 | (fold_using_range::range_of_builtin_call): Ditto. | |
20111 | (fold_using_range::range_of_cond_expr): Ditto. | |
20112 | * gimple-range-fold.h (gimple_range_type): New. | |
20113 | ||
20114 | 2021-07-15 Martin Sebor <msebor@redhat.com> | |
20115 | ||
20116 | PR middle-end/97027 | |
20117 | * tree-ssa-strlen.c (handle_assign): New function. | |
20118 | (maybe_warn_overflow): Add argument. | |
20119 | (nonzero_bytes_for_type): New function. | |
20120 | (count_nonzero_bytes): Handle more tree types. Call | |
20121 | nonzero_bytes_for_tye. | |
20122 | (count_nonzero_bytes): Handle types. | |
20123 | (handle_store): Handle stores from function calls. | |
20124 | (strlen_check_and_optimize_call): Move code to handle_assign. Call | |
20125 | it for assignments from function calls. | |
20126 | ||
20127 | 2021-07-15 David Malcolm <dmalcolm@redhat.com> | |
20128 | ||
20129 | PR analyzer/95006 | |
20130 | PR analyzer/94713 | |
20131 | PR analyzer/94714 | |
20132 | * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value. | |
20133 | ||
20134 | 2021-07-15 David Malcolm <dmalcolm@redhat.com> | |
20135 | ||
20136 | * doc/invoke.texi (-fdump-analyzer-exploded-paths): New. | |
20137 | ||
20138 | 2021-07-15 Martin Sebor <msebor@redhat.com> | |
20139 | ||
20140 | PR c/101289 | |
20141 | PR c/97548 | |
20142 | * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME. | |
20143 | (operand_compare::verify_hash_value): Same. | |
20144 | * tree-core.h (OEP_DECL_NAME): New. | |
20145 | ||
20146 | 2021-07-15 Martin Jambor <mjambor@suse.cz> | |
20147 | ||
20148 | * profile-count.h (profile_count::value): Change the return type to | |
20149 | uint64_t. | |
20150 | * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print | |
20151 | statement. | |
20152 | * tree-cfg.c (dump_function_to_file): Likewise. | |
20153 | ||
20154 | 2021-07-15 Bill Schmidt <wschmidt@linux.ibm.com> | |
20155 | ||
20156 | PR target/101129 | |
20157 | * config/rs6000/rs6000-p8swap.c (has_part_mult): New. | |
20158 | (rs6000_analyze_swaps): Insns containing a subreg of a mult are | |
20159 | not swappable. | |
20160 | ||
20161 | 2021-07-15 Richard Biener <rguenther@suse.de> | |
20162 | ||
20163 | * tree-vectorizer.h (vect_gen_while): Match up with | |
20164 | vect_gen_while_not. | |
20165 | * tree-vect-stmts.c (vect_gen_while): Adjust API to that | |
20166 | of vect_gen_while_not. | |
20167 | (vect_gen_while_not): Adjust. | |
20168 | * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise. | |
20169 | ||
20170 | 2021-07-15 Aldy Hernandez <aldyh@redhat.com> | |
20171 | ||
20172 | * gimple-range-cache.cc (non_null_ref::adjust_range): New. | |
20173 | (ranger_cache::range_of_def): Call adjust_range. | |
20174 | (ranger_cache::entry_range): Same. | |
20175 | * gimple-range-cache.h (non_null_ref::adjust_range): New. | |
20176 | * gimple-range.cc (gimple_ranger::range_of_expr): Call | |
20177 | adjust_range. | |
20178 | (gimple_ranger::range_on_entry): Same. | |
20179 | ||
20180 | 2021-07-15 Tamar Christina <tamar.christina@arm.com> | |
20181 | ||
20182 | Revert: | |
20183 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20184 | ||
20185 | * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements. | |
20186 | ||
20187 | 2021-07-15 Tamar Christina <tamar.christina@arm.com> | |
20188 | ||
20189 | Revert: | |
20190 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20191 | ||
20192 | * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... | |
20193 | (sdot_prod, udot_prod): ...These. | |
20194 | * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove. | |
20195 | (aarch64_<sur>dot<vsi2qi>): Rename to... | |
20196 | (<sur>dot_prod<vsi2qi>): ...This. | |
20197 | * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): | |
20198 | Update builtins. | |
20199 | ||
20200 | 2021-07-15 Jakub Jelinek <jakub@redhat.com> | |
20201 | ||
20202 | PR middle-end/101437 | |
20203 | * gimplify.c (gimplify_expr): Throw away volatile reads from empty | |
20204 | types even if they have non-BLKmode TYPE_MODE. | |
20205 | ||
20206 | 2021-07-15 Richard Biener <rguenther@suse.de> | |
20207 | ||
20208 | PR driver/101383 | |
20209 | * gcc.c (process_command): Process -gtoggle like process_options | |
20210 | would after parsing options. | |
20211 | ||
20212 | 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> | |
20213 | ||
20214 | * cfgexpand.c (expand_asm_loc): Adjust. | |
20215 | (expand_asm_stmt): Likewise. | |
20216 | * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise. | |
20217 | * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. | |
20218 | * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. | |
20219 | * config/avr/avr.c (avr_md_asm_adjust): Likewise. | |
20220 | * config/cris/cris.c (cris_md_asm_adjust): Likewise. | |
20221 | * config/i386/i386.c (ix86_md_asm_adjust): Likewise. | |
20222 | * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. | |
20223 | * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. | |
20224 | * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. | |
20225 | * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. | |
20226 | * config/s390/s390.c (s390_md_asm_adjust): Likewise. | |
20227 | * config/vax/vax.c (vax_md_asm_adjust): Likewise. | |
20228 | * config/visium/visium.c (visium_md_asm_adjust): Likewise. | |
20229 | * doc/tm.texi: Regenerate. | |
20230 | * target.def: Add location argument to md_asm_adjust. | |
20231 | ||
20232 | 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> | |
20233 | ||
20234 | * tree-diagnostic.c (diagnostic_report_current_function): Use the | |
20235 | diagnostic's location, not input_location. | |
20236 | ||
20237 | 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> | |
20238 | ||
20239 | * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to | |
20240 | diagnostics. | |
20241 | (expand_asm_stmt): Likewise. | |
20242 | ||
20243 | 2021-07-14 Peter Bergner <bergner@linux.ibm.com> | |
20244 | ||
20245 | * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower | |
20246 | addressed memory rtx, if any. | |
20247 | (rs6000_split_multireg_move): Fix code formatting. | |
20248 | Handle MMA build built-ins with operands in adjacent memory locations. | |
20249 | ||
20250 | 2021-07-14 Peter Bergner <bergner@linux.ibm.com> | |
20251 | ||
20252 | * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later | |
20253 | in the file. | |
20254 | ||
20255 | 2021-07-14 Jason Merrill <jason@redhat.com> | |
20256 | ||
20257 | * sel-sched-ir.h (get_all_loop_exits): Use auto_vec. | |
20258 | ||
20259 | 2021-07-14 Jason Merrill <jason@redhat.com> | |
20260 | ||
20261 | * doc/invoke.texi: -fdelete-dead-exceptions is on by default for | |
20262 | C++. | |
20263 | ||
20264 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20265 | ||
20266 | * tree-vect-patterns.c (vect_recog_dot_prod_pattern): | |
20267 | Remove erroneous line. | |
20268 | ||
20269 | 2021-07-14 Andrew MacLeod <amacleod@redhat.com> | |
20270 | ||
20271 | * params.opt (param_evrp_mode): Change default. | |
20272 | ||
20273 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20274 | ||
20275 | * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... | |
20276 | (sdot_prod, udot_prod): ...These. | |
20277 | * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove. | |
20278 | (aarch64_<sur>dot<vsi2qi>): Rename to... | |
20279 | (<sur>dot_prod<vsi2qi>): ...This. | |
20280 | * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): | |
20281 | Update builtins. | |
20282 | ||
20283 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20284 | ||
20285 | * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements. | |
20286 | ||
20287 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20288 | ||
20289 | * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document. | |
20290 | ||
20291 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20292 | ||
20293 | * config/arm/neon.md (usdot_prod<vsi2qi>): New. | |
20294 | ||
20295 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20296 | ||
20297 | * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to... | |
20298 | (usdot_prod<vsi2qi>): ... This. | |
20299 | * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to... | |
20300 | (usdot_prod): ...This. | |
20301 | * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise. | |
20302 | * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>): | |
20303 | Rename to... | |
20304 | (@<sur>dot_prod<vsi2qi>): ...This. | |
20305 | * config/aarch64/aarch64-sve-builtins-base.cc | |
20306 | (svusdot_impl::expand): Use it. | |
20307 | ||
20308 | 2021-07-14 Tamar Christina <tamar.christina@arm.com> | |
20309 | ||
20310 | * optabs.def (usdot_prod_optab): New. | |
20311 | * doc/md.texi: Document it and clarify other dot prod optabs. | |
20312 | * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign. | |
20313 | * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab. | |
20314 | * optabs.c (expand_widen_pattern_expr): Likewise. | |
20315 | * tree-cfg.c (verify_gimple_assign_ternary): Likewise. | |
20316 | * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind. | |
20317 | * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional | |
20318 | optab subtype. | |
20319 | (vect_widened_op_tree): Optionally ignore | |
20320 | mismatch types. | |
20321 | (vect_recog_dot_prod_pattern): Support usdot_prod_optab. | |
20322 | ||
20323 | 2021-07-14 H.J. Lu <hjl.tools@gmail.com> | |
20324 | ||
20325 | PR target/101395 | |
20326 | * config/i386/driver-i386.c (host_detect_local_cpu): Check | |
20327 | "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen. | |
20328 | Enable UINTR only for 64-bit codegen. | |
20329 | * config/i386/i386-options.c | |
20330 | (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not | |
20331 | in 64-bit mode. | |
20332 | * config/i386/i386.h (ARCH_ARG): New. | |
20333 | (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and | |
20334 | "[arch|tune] 64" for 64-bit codegen. | |
20335 | ||
20336 | 2021-07-14 Richard Biener <rguenther@suse.de> | |
20337 | ||
20338 | PR tree-optimization/101445 | |
20339 | * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment | |
20340 | of the IV in the correct direction for negative stride | |
20341 | accesses. | |
20342 | ||
20343 | 2021-07-14 Jakub Jelinek <jakub@redhat.com> | |
20344 | ||
20345 | PR go/101407 | |
20346 | * godump.c (godump_str_hash): New type. | |
20347 | (godump_container::pot_dummy_types): Use string_hash instead of | |
20348 | ptr_hash in the hash_set. | |
20349 | ||
20350 | 2021-07-14 Richard Biener <rguenther@suse.de> | |
20351 | ||
20352 | * tree-vect-loop.c (vect_find_reusable_accumulator): Handle | |
20353 | vector types where the old vector type has a multiple of | |
20354 | the new vector type elements. | |
20355 | (vect_create_partial_epilog): New function, split out from... | |
20356 | (vect_create_epilog_for_reduction): ... here. | |
20357 | (vect_transform_cycle_phi): Reduce the re-used accumulator | |
20358 | to the new vector type. | |
20359 | ||
20360 | 2021-07-14 Alexandre Oliva <oliva@adacore.com> | |
20361 | ||
20362 | * tree-ssa-alias.c (attr_fnspec::verify): Fix index in | |
20363 | non-'t'-sized arg check. | |
20364 | ||
20365 | 2021-07-14 Alexandre Oliva <oliva@adacore.com> | |
20366 | ||
20367 | * tree-cfg.c (cleanup_dead_labels_eh): Update | |
20368 | post_landing_pad label upon change of landing pad block's | |
20369 | primary label. | |
20370 | (cleanup_dead_labels): Check that a removed label is not that | |
20371 | of a landing pad. | |
20372 | ||
20373 | 2021-07-13 Jonathan Wright <jonathan.wright@arm.com> | |
20374 | ||
20375 | * combine.c (combine_simplify_rtx): Add vec_select -> subreg | |
20376 | simplification. | |
20377 | * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): | |
20378 | Add Neon to general purpose register case for zero-extend | |
20379 | pattern. | |
20380 | * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r | |
20381 | case to prevent some cases opting to go through memory. | |
20382 | * cse.c (fold_rtx): Add vec_select -> subreg simplification. | |
20383 | * rtl.c (rtvec_series_p): Define predicate to determine | |
20384 | whether a vector contains a linear series of integers. | |
20385 | * rtl.h (rtvec_series_p): Define. | |
20386 | * rtlanal.c (vec_series_lowpart_p): Define predicate to | |
20387 | determine if a vector selection is equivalent to the low part | |
20388 | of the vector. | |
20389 | * rtlanal.h (vec_series_lowpart_p): Define. | |
20390 | * simplify-rtx.c (simplify_context::simplify_binary_operation_1): | |
20391 | Add vec_select -> subreg simplification. | |
20392 | ||
20393 | 2021-07-13 Paul A. Clarke <pc@us.ibm.com> | |
20394 | ||
20395 | * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128, | |
20396 | _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, | |
20397 | _mm_test_mix_ones_zeros): New. | |
20398 | ||
20399 | 2021-07-13 Roger Sayle <roger@nextmovesoftware.com> | |
20400 | Richard Biener <rguenther@suse.de> | |
20401 | ||
20402 | * gimple.c (gimple_could_trap_p_1): Make S argument a | |
20403 | "const gimple*". Preserve constness in call to | |
20404 | gimple_asm_volatile_p. | |
20405 | (gimple_could_trap_p): Make S argument a "const gimple*". | |
20406 | * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p): | |
20407 | Update function prototypes. | |
20408 | ||
20409 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20410 | ||
20411 | * tree-vectorizer.h (vect_reusable_accumulator): New structure. | |
20412 | (_loop_vec_info::main_loop_edge): New field. | |
20413 | (_loop_vec_info::skip_main_loop_edge): Likewise. | |
20414 | (_loop_vec_info::skip_this_loop_edge): Likewise. | |
20415 | (_loop_vec_info::reusable_accumulators): Likewise. | |
20416 | (_stmt_vec_info::reduc_scalar_results): Likewise. | |
20417 | (_stmt_vec_info::reused_accumulator): Likewise. | |
20418 | (vect_get_main_loop_result): Declare. | |
20419 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize | |
20420 | reduc_scalar_inputs. | |
20421 | (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs. | |
20422 | * tree-vect-loop-manip.c (vect_get_main_loop_result): New function. | |
20423 | (vect_do_peeling): Fill an epilogue loop's main_loop_edge, | |
20424 | skip_main_loop_edge and skip_this_loop_edge fields. | |
20425 | * tree-vect-loop.c (INCLUDE_ALGORITHM): Define. | |
20426 | (vect_emit_reduction_init_stmts): New function. | |
20427 | (get_initial_def_for_reduction): Use it. | |
20428 | (get_initial_defs_for_reduction): Likewise. Change the vinfo | |
20429 | parameter to a loop_vec_info. | |
20430 | (vect_create_epilog_for_reduction): Store the scalar results | |
20431 | in the reduc_info. If an epilogue loop is reusing an accumulator | |
20432 | from the main loop, and if the epilogue loop can also be skipped, | |
20433 | try to place the reduction code in the join block. Record | |
20434 | accumulators that could potentially be reused by epilogue loops. | |
20435 | (vect_transform_cycle_phi): When vectorizing epilogue loops, | |
20436 | try to reuse accumulators from the main loop. Record the initial | |
20437 | value in reduc_info for non-SLP reductions too. | |
20438 | ||
20439 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20440 | ||
20441 | * tree-vect-loop.c (get_initial_def_for_reduction): Remove | |
20442 | adjustment handling. Take the neutral value as an argument, | |
20443 | in place of the code argument. | |
20444 | (vect_transform_cycle_phi): Update accordingly. Handle the | |
20445 | initial values of cond reductions separately from code reductions. | |
20446 | Choose the adjustment here rather than in | |
20447 | get_initial_def_for_reduction. Sink the splat of vec_initial_def. | |
20448 | ||
20449 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20450 | ||
20451 | * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with... | |
20452 | (neutral_op_for_reduction): ...this, providing a more general | |
20453 | interface. | |
20454 | (vect_create_epilog_for_reduction): Update accordingly. | |
20455 | (vectorizable_reduction): Likewise. | |
20456 | (vect_transform_cycle_phi): Likewise. | |
20457 | ||
20458 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20459 | ||
20460 | * tree-vect-loop.c (get_initial_def_for_reduction): Take the | |
20461 | reduc_info instead of the original stmt_vec_info. | |
20462 | (vect_transform_cycle_phi): Update accordingly. | |
20463 | ||
20464 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20465 | ||
20466 | * tree-vect-loop.c (get_initial_defs_for_reduction): Take the | |
20467 | reduc_info as an additional parameter. | |
20468 | (vect_transform_cycle_phi): Update accordingly. | |
20469 | ||
20470 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20471 | ||
20472 | * tree-vectorizer.h: Include tree-ssa-operands.h. | |
20473 | (vect_phi_initial_value): New function. | |
20474 | * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it. | |
20475 | (get_initial_defs_for_reduction, info_for_reduction): Likewise. | |
20476 | (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. | |
20477 | (vect_transform_cycle_phi, vectorizable_induction): Likewise. | |
20478 | ||
20479 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20480 | ||
20481 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert | |
20482 | the phi results to vectype after creating them. Remove later | |
20483 | conversion code that thus becomes redundant. | |
20484 | ||
20485 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20486 | ||
20487 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace | |
20488 | the new_phis vector with a reduc_inputs vector. Combine handling | |
20489 | of reduction chains and ncopies > 1. | |
20490 | ||
20491 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20492 | ||
20493 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate | |
20494 | scalar_results to group_size elements after reducing down from | |
20495 | N*group_size elements. Construct an array_slice of the live-out | |
20496 | stmts and assert that there is one stmt per scalar result. | |
20497 | ||
20498 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20499 | ||
20500 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove | |
20501 | nested_in_vect_loop and use double_reduc everywhere. Remove dead | |
20502 | assignment to "loop". | |
20503 | ||
20504 | 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
20505 | ||
20506 | * internal-fn.c (vectorized_internal_fn_supported_p): Handle | |
20507 | vector types first. For scalar types, consider both the preferred | |
20508 | vector mode and the alternative vector modes. | |
20509 | * optabs-query.c (can_vec_mask_load_store_p): Use the same | |
20510 | structure as above, in particular using related_vector_mode | |
20511 | for modes provided by autovectorize_vector_modes. | |
20512 | ||
20513 | 2021-07-13 Jakub Jelinek <jakub@redhat.com> | |
20514 | Richard Biener <rguenther@suse.de> | |
20515 | ||
20516 | PR tree-optimization/101419 | |
20517 | * tree-pass.h (PROP_objsz): Define. | |
20518 | (make_pass_early_object_sizes): Declare. | |
20519 | * passes.def (pass_all_early_optimizations): Rename pass_object_sizes | |
20520 | there to pass_early_object_sizes, drop parameter. | |
20521 | (pass_all_optimizations): Move pass_object_sizes right after pass_ccp, | |
20522 | drop parameter, move pass_post_ipa_warn right after that. | |
20523 | * tree-object-size.c (pass_object_sizes::execute): Rename to... | |
20524 | (object_sizes_execute): ... this. Add insert_min_max_p argument. | |
20525 | (pass_data_object_sizes): Move after object_sizes_execute. | |
20526 | (pass_object_sizes): Likewise. In execute method call | |
20527 | object_sizes_execute, drop set_pass_param method and insert_min_max_p | |
20528 | non-static data member and its initializer in the ctor. | |
20529 | (pass_data_early_object_sizes, pass_early_object_sizes, | |
20530 | make_pass_early_object_sizes): New. | |
20531 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use | |
20532 | (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining. | |
20533 | ||
20534 | 2021-07-13 Kito Cheng <kito.cheng@sifive.com> | |
20535 | ||
20536 | PR target/101275 | |
20537 | * config/riscv/constraints.md ("S"): Update description and remove | |
20538 | @internal. | |
20539 | * doc/md.texi (Machine Constraints): Document the 'S' constraints | |
20540 | for RISC-V. | |
20541 | ||
20542 | 2021-07-13 Richard Biener <rguenther@suse.de> | |
20543 | ||
20544 | Revert: | |
20545 | 2021-07-12 Richard Biener <rguenther@suse.de> | |
20546 | ||
20547 | * tree-vect-slp.c (vect_slp_region): Show the number of | |
20548 | SLP graph entries in the optimization message. | |
20549 | ||
20550 | 2021-07-13 Michael Meissner <meissner@linux.ibm.com> | |
20551 | ||
20552 | * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable | |
20553 | value to to long. | |
20554 | * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change | |
20555 | return type to long. | |
20556 | * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return | |
20557 | type to long. | |
20558 | ||
20559 | 2021-07-12 Andrew MacLeod <amacleod@redhat.com> | |
20560 | ||
20561 | * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call): | |
20562 | Query relation between the 2 operands and use it. | |
20563 | ||
20564 | 2021-07-12 Sergei Trofimovich <siarheit@google.com> | |
20565 | ||
20566 | * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo. | |
20567 | ||
20568 | 2021-07-12 Uroš Bizjak <ubizjak@gmail.com> | |
20569 | ||
20570 | PR target/101424 | |
20571 | * config/i386/predicates.md (vec_setm_sse41_operand): | |
20572 | Rename from vec_setm_operand. | |
20573 | (vec_setm_avx2_operand): New predicate. | |
20574 | * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator. | |
20575 | Use vec_setm_sse41_operand as operand 2 predicate. | |
20576 | (vec_set<V_256_512:mode): New expander. | |
20577 | * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand | |
20578 | as operand 2 predicate. | |
20579 | ||
20580 | 2021-07-12 Andrew MacLeod <amacleod@redhat.com> | |
20581 | ||
20582 | PR tree-optimization/101335 | |
20583 | * range-op.cc (operator_cast::lhs_op1_relation): Delete. | |
20584 | ||
20585 | 2021-07-12 Andrew Pinski <apinski@marvell.com> | |
20586 | ||
20587 | * tree-ssa-phiopt.c (match_simplify_replacement): Move | |
20588 | insert of the sequence before the movement of the | |
20589 | statement. Check if to see if the statement is used | |
20590 | outside of the original phi to see if we should move it. | |
20591 | ||
20592 | 2021-07-12 Richard Biener <rguenther@suse.de> | |
20593 | ||
20594 | * dump-context.h (debug_dump_context::debug_dump_context): | |
20595 | Add FILE * parameter defaulted to stderr. | |
20596 | * dumpfile.c (debug_dump_context::debug_dump_context): Adjust. | |
20597 | * tree-vect-slp.c (dot_slp_tree): New functions. | |
20598 | ||
20599 | 2021-07-12 Richard Biener <rguenther@suse.de> | |
20600 | ||
20601 | PR tree-optimization/101373 | |
20602 | * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping | |
20603 | references when the BB may not return. | |
20604 | (compute_avail): Pass in the function we're working on and | |
20605 | replace cfun references with it. Externally throwing | |
20606 | const calls also possibly terminate the function. | |
20607 | (pass_pre::execute): Pass down the function we're working on. | |
20608 | * gcse.c (compute_hash_table_work): Externally throwing | |
20609 | const/pure calls also need record_last_mem_set_info. | |
20610 | * postreload-gcse.c (record_opr_changes): Looping or externally | |
20611 | throwing const/pure calls also need record_last_mem_set_info. | |
20612 | ||
20613 | 2021-07-12 Uroš Bizjak <ubizjak@gmail.com> | |
20614 | ||
20615 | * recog.c (memory_address_addr_space_p): Change the type to bool. | |
20616 | Return true/false instead of 1/0. | |
20617 | (offsettable_memref_p): Ditto. | |
20618 | (offsettable_nonstrict_memref_p): Ditto. | |
20619 | (offsettable_address_addr_space_p): Ditto. | |
20620 | Change the type of addressp indirect function to bool. | |
20621 | * recog.h (memory_address_addr_space_p): Change the type to bool. | |
20622 | (strict_memory_address_addr_space_p): Ditto. | |
20623 | (offsettable_memref_p): Ditto. | |
20624 | (offsettable_nonstrict_memref_p): Ditto. | |
20625 | (offsettable_address_addr_space_p): Ditto. | |
20626 | * reload.c (maybe_memory_address_addr_space_p): Ditto. | |
20627 | (strict_memory_address_addr_space_p): Change the type to bool. | |
20628 | Return true/false instead of 1/0. | |
20629 | (maybe_memory_address_addr_space_p): Change the type to bool. | |
20630 | ||
20631 | 2021-07-12 Richard Biener <rguenther@suse.de> | |
20632 | ||
20633 | * tree-vect-slp.c (vect_slp_region): Show the number of | |
20634 | SLP graph entries in the optimization message. | |
20635 | ||
20636 | 2021-07-12 Richard Biener <rguenther@suse.de> | |
20637 | ||
20638 | PR tree-optimization/101394 | |
20639 | * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting | |
20640 | copies from abnormals for a full redundancy. | |
20641 | ||
20642 | 2021-07-12 Richard Biener <rguenther@suse.de> | |
20643 | ||
20644 | PR middle-end/101423 | |
20645 | * gimple.c (gimple_could_trap_p_1): Internal function calls | |
20646 | do not trap. | |
20647 | * tree-eh.c (tree_could_trap_p): Likewise. | |
20648 | ||
20649 | 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
20650 | ||
20651 | PR target/66791 | |
20652 | * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with | |
20653 | __a * __b. | |
20654 | (vmulq_n_u32): Likewise. | |
20655 | (vmul_n_f32): Gate __a * __b on __FAST_MATH__. | |
20656 | (vmulq_n_f32): Likewise. | |
20657 | (vmul_n_f16): Likewise. | |
20658 | (vmulq_n_f16): Likewise. | |
20659 | ||
20660 | 2021-07-12 Martin Liska <mliska@suse.cz> | |
20661 | ||
20662 | PR sanitizer/101425 | |
20663 | * gcc.c (check_offload_target_name): Call | |
20664 | candidates_list_and_hint only if we have a candidate. | |
20665 | ||
20666 | 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
20667 | ||
20668 | PR target/98435 | |
20669 | * config/arm/neon.md (vec_init): Move to ... | |
20670 | * config/arm/vec-common.md (vec_init): ... here. | |
20671 | Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE. | |
20672 | ||
20673 | 2021-07-12 Roger Sayle <roger@nextmovesoftware.com> | |
20674 | ||
20675 | PR tree-optimization/101403 | |
20676 | * match.pd ((T)bswap(X)>>C): Correctly handle cases where | |
20677 | signedness of the shift is not the same as the signedness of | |
20678 | the type extension. | |
20679 | ||
20680 | 2021-07-09 Roger Sayle <roger@nextmovesoftware.com> | |
20681 | Uroš Bizjak <ubizjak@gmail.com> | |
20682 | ||
20683 | * config/i386/i386.md (*divmodsi4_const): Optimize SImode | |
20684 | divmod of a constant numerator with new define_insn_and_split. | |
20685 | ||
20686 | 2021-07-09 Iain Sandoe <iain@sandoe.co.uk> | |
20687 | ||
20688 | PR target/100152 | |
20689 | * config/i386/i386-expand.c (ix86_expand_call): If a call is | |
20690 | to a non-local-binding, or local but to a public symbol, then | |
20691 | assume that it might be indirected via the lazy symbol binder. | |
20692 | Mark R10 and R10 as clobbered in that case. | |
20693 | ||
20694 | 2021-07-09 Eric Botcazou <ebotcazou@adacore.com> | |
20695 | ||
20696 | PR target/101377 | |
20697 | * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in | |
20698 | the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined | |
20699 | and HAVE_LD_BROKEN_PE_DWARF5 is defined. | |
20700 | ||
20701 | 2021-07-09 Uroš Bizjak <ubizjak@gmail.com> | |
20702 | ||
20703 | * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the | |
20704 | log2 range of operands[3] to [1,31]. | |
20705 | (*udivmodsi4_pow2_zext_2): Ditto. Correct insn RTX pattern. | |
20706 | ||
20707 | 2021-07-09 Sergei Trofimovich <siarheit@google.com> | |
20708 | ||
20709 | * doc/md.texi: Don't split @smallexample in multiple @groups. | |
20710 | ||
20711 | 2021-07-09 Sergei Trofimovich <siarheit@google.com> | |
20712 | ||
20713 | * doc/md.texi: Add missing 'see' word. | |
20714 | ||
20715 | 2021-07-09 Andrew Pinski <apinski@marvell.com> | |
20716 | ||
20717 | * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments | |
20718 | to take sequence and gimple_match_op. Accept the case where | |
20719 | op is a SSA_NAME and one statement in the sequence. | |
20720 | Also allow constants. | |
20721 | (gimple_simplify_phiopt): Always pass a sequence to resimplify. | |
20722 | Update call to phiopt_early_allow. Discard the sequence if not | |
20723 | used. | |
20724 | ||
20725 | 2021-07-09 Xi Ruoyao <xry111@mengyan1223.wang> | |
20726 | ||
20727 | PR target/100760 | |
20728 | PR target/100761 | |
20729 | PR target/100762 | |
20730 | * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P | |
20731 | instead of ISA_HAS_MSA. | |
20732 | (mips_expand_vec_unpack): Likewise. | |
20733 | (mips_expand_vector_init): Likewise. | |
20734 | ||
20735 | 2021-07-09 Kewen Lin <linkw@linux.ibm.com> | |
20736 | ||
20737 | * config/rs6000/vsx.md (mods_<mode>): Rename to... | |
20738 | (mod<mode>3): ... this. | |
20739 | (modu_<mode>): Rename to... | |
20740 | (umod<mode>3): ... this. | |
20741 | * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI, | |
20742 | MODU_V4SI): Adjust. | |
20743 | ||
20744 | 2021-07-08 Jeff Law <jeffreyalaw@gmail.com> | |
20745 | ||
20746 | * config/h8300/shiftrotate.md (variable shifts): Expose condition | |
20747 | code handling for the test before the loop. | |
20748 | ||
20749 | 2021-07-08 Martin Jambor <mjambor@suse.cz> | |
20750 | ||
20751 | PR ipa/101066 | |
20752 | * ipa-sra.c (class isra_call_summary): New member | |
20753 | m_before_any_store, initialize it in the constructor. | |
20754 | (isra_call_summary::dump): Dump the new field. | |
20755 | (ipa_sra_call_summaries::duplicate): Copy it. | |
20756 | (process_scan_results): Set it. | |
20757 | (isra_write_edge_summary): Stream it. | |
20758 | (isra_read_edge_summary): Likewise. | |
20759 | (param_splitting_across_edge): Only override | |
20760 | safe_to_import_accesses if m_before_any_store is set. | |
20761 | ||
20762 | 2021-07-08 Martin Sebor <msebor@redhat.com> | |
20763 | ||
20764 | PR bootstrap/101374 | |
20765 | * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): | |
20766 | Use Object Size Type 0 instead of 1. | |
20767 | ||
20768 | 2021-07-08 Richard Sandiford <richard.sandiford@arm.com> | |
20769 | ||
20770 | * tree-vect-loop.c (vectorizable_reduction): Remove always-true | |
20771 | if condition. | |
20772 | ||
20773 | 2021-07-08 Richard Sandiford <richard.sandiford@arm.com> | |
20774 | ||
20775 | * match.pd: Simplify an extend-operate-truncate sequence involving | |
20776 | a POLY_INT_CST. | |
20777 | ||
20778 | 2021-07-08 Roger Sayle <roger@nextmovesoftware.com> | |
20779 | Richard Biener <rguenther@suse.de> | |
20780 | ||
20781 | PR tree-optimization/40210 | |
20782 | * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as | |
20783 | (x>>C3)&C2 when possible. Simplify bswap(x)>>C1 as ((T)x)>>C2 | |
20784 | when possible. Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255. | |
20785 | ||
20786 | 2021-07-08 Uroš Bizjak <ubizjak@gmail.com> | |
20787 | ||
20788 | PR target/100637 | |
20789 | * config/i386/i386-expand.c (ix86_expand_sse_unpack): | |
20790 | Handle V4QI mode. | |
20791 | * config/i386/mmx.md (V_32): New mode iterator. | |
20792 | (mov<V_32:mode>): Use V_32 mode iterator. | |
20793 | (*mov<V_32:mode>_internal): Ditto. | |
20794 | (*push<V_32:mode>2_rex64): Ditto. | |
20795 | (*push<V_32:mode>2): Ditto. | |
20796 | (movmisalign<V_32:mode>): Ditto. | |
20797 | (mmx_<any_shiftrt:insn>v1si3): New insn pattern. | |
20798 | (sse4_1_<any_extend:code>v2qiv2hi2): Ditto. | |
20799 | (vec_unpacks_lo_v4qi): New expander. | |
20800 | (vec_unpacks_hi_v4qi): Ditto. | |
20801 | (vec_unpacku_lo_v4qi): Ditto. | |
20802 | (vec_unpacku_hi_v4qi): Ditto. | |
20803 | * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode. | |
20804 | (VALID_INT_MODE_P): Ditto. | |
20805 | ||
20806 | 2021-07-08 Michael Meissner <meissner@linux.ibm.com> | |
20807 | ||
20808 | PR target/100809 | |
20809 | * config/rs6000/rs6000.md (udivti3): New insn. | |
20810 | (divti3): New insn. | |
20811 | (umodti3): New insn. | |
20812 | (modti3): New insn. | |
20813 | ||
20814 | 2021-07-07 Martin Sebor <msebor@redhat.com> | |
20815 | ||
20816 | PR tree-optimization/100137 | |
20817 | PR tree-optimization/99121 | |
20818 | PR tree-optimization/97027 | |
20819 | * builtins.c (access_ref::access_ref): Also set offmax. | |
20820 | (access_ref::offset_in_range): Define new function. | |
20821 | (access_ref::add_offset): Set offmax. | |
20822 | (access_ref::inform_access): Handle access_none. | |
20823 | (handle_mem_ref): Clear ostype. | |
20824 | (compute_objsize_r): Handle ASSERT_EXPR. | |
20825 | * builtins.h (struct access_ref): Add offmax member. | |
20826 | * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use | |
20827 | compute_objsize() and simplify. | |
20828 | ||
20829 | 2021-07-07 Peter Bergner <bergner@linux.ibm.com> | |
20830 | ||
20831 | * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP | |
20832 | and VSX_BUILTIN_STXVP. | |
20833 | ||
20834 | 2021-07-07 Martin Sebor <msebor@redhat.com> | |
20835 | ||
20836 | PR target/101363 | |
20837 | * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove | |
20838 | a stray %K from error_at() missed in r12-2088. | |
20839 | ||
20840 | 2021-07-07 Richard Biener <rguenther@suse.de> | |
20841 | ||
20842 | PR tree-optimization/99728 | |
20843 | * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record | |
20844 | aggregate copies. | |
20845 | (mem_refs_may_alias_p): Add assert we handled aggregate | |
20846 | copies elsewhere. | |
20847 | (sm_seq_valid_bb): Give up when running into aggregate copies. | |
20848 | (ref_indep_loop_p): Handle aggregate copies as never | |
20849 | being invariant themselves but allow other refs to be | |
20850 | disambiguated against them. | |
20851 | (can_sm_ref_p): Do not try to apply store-motion to aggregate | |
20852 | copies. | |
20853 | ||
20854 | 2021-07-06 Indu Bhagat <indu.bhagat@oracle.com> | |
20855 | ||
20856 | PR debug/101283 | |
20857 | * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get | |
20858 | number of bits. | |
20859 | ||
20860 | 2021-07-06 Martin Sebor <msebor@redhat.com> | |
20861 | ||
20862 | * gimple-pretty-print.c (percent_G_format): Remove. | |
20863 | * tree-diagnostic.c (default_tree_printer): Remove calls. | |
20864 | * tree-pretty-print.c (percent_K_format): Remove. | |
20865 | * tree-pretty-print.h (percent_K_format): Remove. | |
20866 | ||
20867 | 2021-07-06 Martin Sebor <msebor@redhat.com> | |
20868 | ||
20869 | * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin): | |
20870 | Remove %K and use error_at. | |
20871 | (aarch64_expand_fcmla_builtin): Same. | |
20872 | (aarch64_expand_builtin_tme): Same. | |
20873 | (aarch64_expand_builtin_memtag): Same. | |
20874 | * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same. | |
20875 | (arm_expand_builtin): Same. | |
20876 | * config/arm/arm.c (bounds_check): Same. | |
20877 | ||
20878 | 2021-07-06 Martin Sebor <msebor@redhat.com> | |
20879 | ||
20880 | * builtins.c (warn_string_no_nul): Remove %G. | |
20881 | (maybe_warn_for_bound): Same. | |
20882 | (warn_for_access): Same. | |
20883 | (check_access): Same. | |
20884 | (check_strncat_sizes): Same. | |
20885 | (expand_builtin_strncat): Same. | |
20886 | (expand_builtin_strncmp): Same. | |
20887 | (expand_builtin): Same. | |
20888 | (expand_builtin_object_size): Same. | |
20889 | (warn_dealloc_offset): Same. | |
20890 | (maybe_emit_free_warning): Same. | |
20891 | * calls.c (maybe_warn_alloc_args_overflow): Same. | |
20892 | (maybe_warn_nonstring_arg): Same. | |
20893 | (maybe_warn_rdwr_sizes): Same. | |
20894 | * expr.c (expand_expr_real_1): Remove %K. | |
20895 | * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G. | |
20896 | (gimple_fold_builtin_strncat): Same. | |
20897 | * gimple-ssa-sprintf.c (format_directive): Same. | |
20898 | (handle_printf_call): Same. | |
20899 | * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same. | |
20900 | * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same. | |
20901 | (maybe_diag_access_bounds): Same. Call gimple_location. | |
20902 | (check_bounds_or_overlap): Same. | |
20903 | * trans-mem.c (ipa_tm_scan_irr_block): Remove %K. Simplify. | |
20904 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G. | |
20905 | * tree-ssa-strlen.c (maybe_warn_overflow): Same. | |
20906 | (maybe_diag_stxncpy_trunc): Same. | |
20907 | (handle_builtin_stxncpy_strncat): Same. | |
20908 | (maybe_warn_pointless_strcmp): Same. | |
20909 | * tree-ssa-uninit.c (maybe_warn_operand): Same. | |
20910 | ||
20911 | 2021-07-06 Uroš Bizjak <ubizjak@gmail.com> | |
20912 | ||
20913 | PR target/97194 | |
20914 | * config/i386/predicates.md (vec_setm_operand): Enable | |
20915 | register_operand for TARGET_SSE4_1. | |
20916 | * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand | |
20917 | as operand 2 predicate. Call ix86_expand_vector_set_var | |
20918 | for non-constant index operand. | |
20919 | (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate. | |
20920 | Call ix86_expand_vector_set_var for non-constant index operand. | |
20921 | ||
20922 | 2021-07-06 Jeff Law <jeffreyalaw@gmail.com> | |
20923 | ||
20924 | * config/h8300/jumpcall.md (*branch): When possible, generate | |
20925 | the comparison in CCZN mode. | |
20926 | * config/h8300/predicates.md (simple_memory_operand): Reject all | |
20927 | auto-increment addressing modes. | |
20928 | ||
20929 | 2021-07-06 Iain Sandoe <iain@sandoe.co.uk> | |
20930 | ||
20931 | PR bootstrap/100246 | |
20932 | * config/i386/i386.h (struct stringop_algs): Define a CTOR for | |
20933 | this type. | |
20934 | ||
20935 | 2021-07-06 Richard Biener <rguenther@suse.de> | |
20936 | ||
20937 | * doc/md.texi (vec_fmaddsub<mode>4): Document. | |
20938 | (vec_fmsubadd<mode>4): Likewise. | |
20939 | * optabs.def (vec_fmaddsub$a4): Add. | |
20940 | (vec_fmsubadd$a4): Likewise. | |
20941 | * internal-fn.def (IFN_VEC_FMADDSUB): Add. | |
20942 | (IFN_VEC_FMSUBADD): Likewise. | |
20943 | * tree-vect-slp-patterns.c (addsub_pattern::recognize): | |
20944 | Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD. | |
20945 | (addsub_pattern::build): Likewise. | |
20946 | * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB | |
20947 | and CFN_VEC_FMSUBADD are not transparent for permutes. | |
20948 | * config/i386/sse.md (vec_fmaddsub<mode>4): New expander. | |
20949 | (vec_fmsubadd<mode>4): Likewise. | |
20950 | ||
20951 | 2021-07-06 Richard Biener <rguenther@suse.de> | |
20952 | ||
20953 | * doc/invoke.texi (fmove-loop-stores): Document. | |
20954 | * common.opt (fmove-loop-stores): New option. | |
20955 | * opts.c (default_options_table): Enable -fmove-loop-stores | |
20956 | at -O1 but not -Og. | |
20957 | * tree-ssa-loop-im.c (pass_lim::execute): Pass | |
20958 | flag_move_loop_stores instead of true to | |
20959 | loop_invariant_motion_in_fun. | |
20960 | ||
20961 | 2021-07-06 Iain Sandoe <iain@sandoe.co.uk> | |
20962 | ||
20963 | * doc/install.texi: Document --with-dsymutil. | |
20964 | ||
20965 | 2021-07-06 Andrew Pinski <apinski@marvell.com> | |
20966 | ||
20967 | PR tree-optimization/101256 | |
20968 | * dbgcnt.def (phiopt_edge_range): New counter. | |
20969 | * tree-ssa-phiopt.c (replace_phi_edge_with_variable): | |
20970 | Check to make sure the new name is defined in the same | |
20971 | bb as the conditional before duplicating range info. | |
20972 | Also add debug counter. | |
20973 | ||
20974 | 2021-07-06 Kewen Lin <linkw@linux.ibm.com> | |
20975 | ||
20976 | PR rtl-optimization/100328 | |
20977 | * config/i386/i386-options.c (ix86_option_override_internal): | |
20978 | Set param_ira_consider_dup_in_all_alts to 0. | |
20979 | ||
20980 | 2021-07-06 Kewen Lin <linkw@linux.ibm.com> | |
20981 | ||
20982 | PR rtl-optimization/100328 | |
20983 | * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new | |
20984 | parameter. | |
20985 | * ira.c (ira_get_dup_out_num): Adjust as parameter | |
20986 | param_ira_consider_dup_in_all_alts. | |
20987 | * params.opt (ira-consider-dup-in-all-alts): New. | |
20988 | * ira-conflicts.c (process_regs_for_copy): Add one parameter | |
20989 | single_input_op_has_cstr_p. | |
20990 | (get_freq_for_shuffle_copy): New function. | |
20991 | (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p. | |
20992 | * ira-int.h (ira_get_dup_out_num): Add one bool parameter. | |
20993 | ||
20994 | 2021-07-05 Jeff Law <jeffreyalaw@gmail.com> | |
20995 | ||
20996 | * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to | |
20997 | generate condition code aware RTL directly. | |
20998 | ||
20999 | 2021-07-05 Andrew Pinski <apinski@marvell.com> | |
21000 | ||
21001 | PR tree-optimization/101039 | |
21002 | * match.pd (A CMP 0 ? A : -A): New patterns. | |
21003 | * tree-ssa-phiopt.c (abs_replacement): Delete function. | |
21004 | (tree_ssa_phiopt_worker): Don't call abs_replacement. | |
21005 | Update comment about abs_replacement. | |
21006 | ||
21007 | 2021-07-05 Andrew Pinski <apinski@marvell.com> | |
21008 | ||
21009 | * tree-ssa-phiopt.c (gimple_simplify_phiopt): | |
21010 | If "A ? B : C" fails to simplify, try "(!A) ? C : B". | |
21011 | ||
21012 | 2021-07-05 Andrew Pinski <apinski@marvell.com> | |
21013 | ||
21014 | * tree-ssa-phiopt.c (match_simplify_replacement): | |
21015 | Add early_p argument. Call gimple_simplify_phiopt | |
21016 | instead of gimple_simplify. | |
21017 | (tree_ssa_phiopt_worker): Update call to | |
21018 | match_simplify_replacement and allow unconditionally. | |
21019 | (phiopt_early_allow): New function. | |
21020 | (gimple_simplify_phiopt): New function. | |
21021 | ||
21022 | 2021-07-05 Andrew Pinski <apinski@marvell.com> | |
21023 | ||
21024 | PR middle-end/101237 | |
21025 | * fold-const.c (negate_expr_p): Remove call to element_mode | |
21026 | and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS, | |
21027 | HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS. | |
21028 | (fold_negate_expr_1): Likewise. | |
21029 | (const_unop): Likewise. | |
21030 | (fold_cond_expr_with_comparison): Likewise. | |
21031 | (fold_binary_loc): Likewise. | |
21032 | (fold_ternary_loc): Likewise. | |
21033 | (tree_call_nonnegative_warnv_p): Likewise. | |
21034 | * match.pd (-(A + B) -> (-B) - A): Likewise. | |
21035 | ||
21036 | 2021-07-05 Iain Sandoe <iain@sandoe.co.uk> | |
21037 | ||
21038 | * configure.ac: Handle --with-dsymutil in the same way as we | |
21039 | do for the assembler and linker. (DEFAULT_DSYMUTIL): New. | |
21040 | Extract the type and version for the dsymutil configured or | |
21041 | found by the default searches. | |
21042 | * config.in: Regenerated. | |
21043 | * configure: Regenerated. | |
21044 | * collect2.c (do_dsymutil): Handle locating dsymutil in the | |
21045 | same way as for the assembler and linker. | |
21046 | * config/darwin.h (DSYMUTIL): Delete. | |
21047 | * gcc.c: Report a configured dsymutil correctly. | |
21048 | * exec-tool.in: Allow for dsymutil. | |
21049 | ||
21050 | 2021-07-05 Uroš Bizjak <ubizjak@gmail.com> | |
21051 | ||
21052 | * config/i386/i386-expand.c (ix86_split_mmx_punpck): | |
21053 | Handle V4QI and V2HI modes. | |
21054 | (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1. | |
21055 | Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes. | |
21056 | (expand_vec_perm_pshufb): Rewrite to use switch statemets. | |
21057 | Handle 4-byte dual operands with TARGET_XOP and single operands | |
21058 | with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and | |
21059 | mmx_pshufbv4qi3 for TARGET_SSSE3. | |
21060 | (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1. | |
21061 | (expand_vec_perm_interleave2): Allow 4-byte vector modes. | |
21062 | (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3. | |
21063 | (expand_vec_perm_even_odd_1): Handle V4QI mode. | |
21064 | (expand_vec_perm_broadcast_1): Handle V4QI mode. | |
21065 | (ix86_vectorize_vec_perm_const): Handle V4QI mode. | |
21066 | * config/i386/mmx.md (mmx_ppermv32): New insn pattern. | |
21067 | (mmx_pshufbv4qi3): Ditto. | |
21068 | (*mmx_pblendw32): Ditto. | |
21069 | (*mmx_pblendw64): Rename from *mmx_pblendw. | |
21070 | (mmx_punpckhbw_low): New insn_and_split pattern. | |
21071 | (mmx_punpcklbw_low): Ditto. | |
21072 | ||
21073 | 2021-07-05 Richard Biener <rguenther@suse.de> | |
21074 | ||
21075 | * tree-vect-loop-manip.c (vect_loop_versioning): Do not | |
21076 | set LOOP_C_INFINITE on the vectorized loop. | |
21077 | ||
21078 | 2021-07-05 Richard Biener <rguenther@suse.de> | |
21079 | ||
21080 | PR middle-end/101291 | |
21081 | * cfgloopmanip.c (loop_version): Set the loop copy of the | |
21082 | versioned loop to the new loop. | |
21083 | ||
21084 | 2021-07-04 Iain Sandoe <iain@sandoe.co.uk> | |
21085 | ||
21086 | PR target/100269 | |
21087 | * config.gcc: Ensure that Darwin biarch definitions are | |
21088 | added before i386.h. | |
21089 | * config/i386/darwin.h (TARGET_64BIT): Remove. | |
21090 | (PR80556_WORKAROUND): New. | |
21091 | (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND. | |
21092 | (DARWIN_SUBARCH_SPEC): New. | |
21093 | * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT, | |
21094 | TARGET_BI_ARCH, PR80556_WORKAROUND): New. | |
21095 | (REAL_LIBGCC_SPEC): Remove. | |
21096 | * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT, | |
21097 | TARGET_BI_ARCH, PR80556_WORKAROUND): New. | |
21098 | (REAL_LIBGCC_SPEC): Remove. | |
21099 | ||
21100 | 2021-07-03 H.J. Lu <hjl.tools@gmail.com> | |
21101 | ||
21102 | PR middle-end/101294 | |
21103 | * expr.c (store_constructor): Don't use vec_duplicate on vector. | |
21104 | ||
21105 | 2021-07-02 Martin Sebor <msebor@redhat.com> | |
21106 | ||
21107 | PR middle-end/98871 | |
21108 | PR middle-end/98512 | |
21109 | * diagnostic.c (get_any_inlining_info): New. | |
21110 | (update_effective_level_from_pragmas): Handle inlining context. | |
21111 | (diagnostic_enabled): Same. | |
21112 | (diagnostic_report_diagnostic): Same. | |
21113 | * diagnostic.h (struct diagnostic_info): Add ctor. | |
21114 | (struct diagnostic_context): Add new member. | |
21115 | * tree-diagnostic.c (set_inlining_locations): New. | |
21116 | (tree_diagnostics_defaults): Set new callback pointer. | |
21117 | ||
21118 | 2021-07-02 Peter Bergner <bergner@linux.ibm.com> | |
21119 | ||
21120 | * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST): | |
21121 | New macros. | |
21122 | (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins. | |
21123 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand | |
21124 | lxvp and stxvp built-ins. | |
21125 | (mma_init_builtins): Handle lxvp and stxvp built-ins. | |
21126 | (builtin_function_type): Likewise. | |
21127 | * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document. | |
21128 | ||
21129 | 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> | |
21130 | ||
21131 | * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept | |
21132 | additional argument for the code. | |
21133 | * config/h8300/h8300.c (compute_a_shift_cc): Accept additional | |
21134 | argument for the code. Just return if the ZN bits are useful or | |
21135 | not rather than the old style CC_* enums. | |
21136 | * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before | |
21137 | more generic shiftqi patterns. | |
21138 | (shifthi_noscratch, shiftsi_noscratch): Similarly. | |
21139 | (shiftqi_noscratch_set_flags): New pattern. | |
21140 | (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise. | |
21141 | ||
21142 | 2021-07-02 Andrew MacLeod <amacleod@redhat.com> | |
21143 | ||
21144 | PR tree-optimization/101223 | |
21145 | * range-op.cc (build_lt): Add -1 for signed values. | |
21146 | (built_gt): Subtract -1 for signed values. | |
21147 | ||
21148 | 2021-07-02 David Faust <david.faust@oracle.com> | |
21149 | ||
21150 | * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT. | |
21151 | (btf_asm_type): Likewise. | |
21152 | ||
21153 | 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> | |
21154 | ||
21155 | * config/h8300/h8300-protos.h (output_a_shift): Make first argument | |
21156 | an array of rtx rather than a pointer to rtx. Add code argument. | |
21157 | (compute_a_shift_length): Similarly. | |
21158 | * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the | |
21159 | shift itself isn't an operand. Create dummy operand[0] to carry | |
21160 | a mode and pass a suitable rtx code to compute_a_shift_length. | |
21161 | (get_shift_alg): Adjust operand number of clobber in output templates. | |
21162 | (output_a_shift): Make first argument an array of rtx rather than | |
21163 | a pointer to rtx. Add code argument for the type of shift. | |
21164 | Adjust now that the shift itself is no longer an operand. | |
21165 | (compute_a_shift_length): Similarly. | |
21166 | * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an | |
21167 | iterator rather than nshift_operator. | |
21168 | (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise. | |
21169 | (shiftqi_clobber_flags): Adjust to API changes in output_a_shift | |
21170 | and compute_a_shift_length. | |
21171 | (shiftqi_noscratch_clobber_flags): Likewise. | |
21172 | (shifthi_noscratch_clobber_flags): Likewise. | |
21173 | (shiftsi_noscratch_clobber_flags): Likewise. | |
21174 | ||
21175 | 2021-07-02 Iain Sandoe <iain@sandoe.co.uk> | |
21176 | ||
21177 | PR debug/101283 | |
21178 | * config/darwin.h (DSYMUTIL_SPEC): Do not try to run | |
21179 | dsymutil for BTF/CTF. | |
21180 | ||
21181 | 2021-07-02 Iain Sandoe <iain@sandoe.co.uk> | |
21182 | ||
21183 | PR debug/101283 | |
21184 | * config/darwin.h (CTF_INFO_SECTION_NAME): Update the | |
21185 | segment to include BTF. | |
21186 | (BTF_INFO_SECTION_NAME): New. | |
21187 | ||
21188 | 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> | |
21189 | ||
21190 | * config/m32r/m32r-protos.h (call_operand): Adjust return type. | |
21191 | (small_data_operand, memreg_operand, small_insn_p): Likewise. | |
21192 | * config/m32r/m32r.c (call_operand): Adjust return type. | |
21193 | (small_data_operand, memreg_operand): Likewise. | |
21194 | ||
21195 | 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> | |
21196 | ||
21197 | * config/frv/frv-protos.h (integer_register_operand): Adjust return | |
21198 | type. | |
21199 | (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise. | |
21200 | (fpr_or_int6_operand, gpr_or_int_operand); Likewise. | |
21201 | (gpr_or_int12_operand, gpr_or_int10_operand); Likewise. | |
21202 | (move_source_operand, move_destination_operand): Likewise. | |
21203 | (condexec_source_operand, condexec_dest_operand): Likewise. | |
21204 | (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise. | |
21205 | (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise. | |
21206 | (fcr_operand, icr_operand, cr_operand, call_operand): Likewise. | |
21207 | (fpr_operand, even_reg_operand, odd_reg_operand): Likewise. | |
21208 | (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise. | |
21209 | (even_fpr_operand, odd_fpr_operand): Likewise. | |
21210 | (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise. | |
21211 | (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise. | |
21212 | (uint4_operand, uint1_operand, int_2word_operand): Likewise | |
21213 | (upper_int16_operand, uint16_operand, symbolic_operand): Likewise. | |
21214 | (relational_operator, float_relational_operator): Likewise. | |
21215 | (ccr_eqne_operator, minmax_operator): Likewise. | |
21216 | (condexec_si_binary_operator, condexec_si_media_operator): Likewise. | |
21217 | (condexec_si_divide_operator, condexec_si_unary_operator): Likewise. | |
21218 | (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise. | |
21219 | (intop_compare_operator, acc_operand, even_acc_operand): Likewise. | |
21220 | (quad_acc_operand, accg_operand): Likewise. | |
21221 | ||
21222 | 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> | |
21223 | ||
21224 | * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change | |
21225 | return type to a bool. | |
21226 | (nonimmediate_nonstack_operand): Likewise. | |
21227 | (xstormy16_splittable_below100_operand): Likewise. | |
21228 | * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix | |
21229 | return type. | |
21230 | (xstormy16_splittable_below100_operand): Likewise. | |
21231 | ||
21232 | 2021-07-02 Richard Biener <rguenther@suse.de> | |
21233 | ||
21234 | PR tree-optimization/101293 | |
21235 | * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases | |
21236 | with combined offsets. | |
21237 | (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were | |
21238 | combined with the rest of the offset. | |
21239 | ||
21240 | 2021-07-02 Eric Botcazou <ebotcazou@adacore.com> | |
21241 | ||
21242 | * config/i386/i386.c (asm_preferred_eh_data_format): Always use the | |
21243 | PIC encodings for PE-COFF targets. | |
21244 | ||
21245 | 2021-07-02 Jakub Jelinek <jakub@redhat.com> | |
21246 | ||
21247 | PR target/101286 | |
21248 | * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant): | |
21249 | Return nullptr for TImode inner mode. | |
21250 | ||
21251 | 2021-07-02 Richard Biener <rguenther@suse.de> | |
21252 | ||
21253 | PR tree-optimization/101280 | |
21254 | PR tree-optimization/101173 | |
21255 | * gimple-loop-interchange.cc | |
21256 | (tree_loop_interchange::valid_data_dependences): Properly | |
21257 | guard all dependence checks with DDR_REVERSED_P or its | |
21258 | inverse. | |
21259 | ||
21260 | 2021-07-02 Hongyu Wang <hongyu.wang@intel.com> | |
21261 | ||
21262 | * config/i386/i386-expand.c (ix86_expand_builtin): | |
21263 | Add branch to clear odata when ZF is set for asedecenc_expand | |
21264 | and wideaesdecenc_expand. | |
21265 | ||
21266 | 2021-07-02 Eugene Rozenfeld <erozen@microsoft.com> | |
21267 | ||
21268 | * config/i386/gcc-auto-profile: regenerate | |
21269 | ||
21270 | 2021-07-02 liuhongt <hongtao.liu@intel.com> | |
21271 | ||
21272 | * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to .. | |
21273 | (trunc<mode><pmov_dst_4_lower>2): this. | |
21274 | ||
21275 | 2021-07-01 David Malcolm <dmalcolm@redhat.com> | |
21276 | ||
21277 | * diagnostic.h (diagnostic_context::m_file_cache): New field. | |
21278 | * input.c (class fcache): Rename to... | |
21279 | (class file_cache_slot): ...this, making most members private and | |
21280 | prefixing fields with "m_". | |
21281 | (file_cache_slot::get_file_path): New accessor. | |
21282 | (file_cache_slot::get_use_count): New accessor. | |
21283 | (file_cache_slot::missing_trailing_newline_p): New accessor. | |
21284 | (file_cache_slot::inc_use_count): New. | |
21285 | (fcache_buffer_size): Move to... | |
21286 | (file_cache_slot::buffer_size): ...here. | |
21287 | (fcache_line_record_size): Move to... | |
21288 | (file_cache_slot::line_record_size): ...here. | |
21289 | (fcache_tab): Delete, in favor of global_dc->m_file_cache. | |
21290 | (fcache_tab_size): Move to file_cache::num_file_slots. | |
21291 | (diagnostic_file_cache_init): Update for move of fcache_tab | |
21292 | to global_dc->m_file_cache. | |
21293 | (diagnostic_file_cache_fini): Likewise. | |
21294 | (lookup_file_in_cache_tab): Convert to... | |
21295 | (file_cache::lookup_file): ...this. | |
21296 | (diagnostics_file_cache_forcibly_evict_file): Update for move of | |
21297 | fcache_tab to global_dc->m_file_cache, moving most of | |
21298 | implementation to... | |
21299 | (file_cache::forcibly_evict_file): ...this new function and... | |
21300 | (file_cache_slot::evict): ...this new function. | |
21301 | (evicted_cache_tab_entry): Convert to... | |
21302 | (file_cache::evicted_cache_tab_entry): ...this. | |
21303 | (add_file_to_cache_tab): Convert to... | |
21304 | (file_cache::add_file): ...this, moving bulk of implementation | |
21305 | to... | |
21306 | (file_cache_slot::create): ..this new function. | |
21307 | (file_cache::file_cache): New. | |
21308 | (file_cache::~file_cache): New. | |
21309 | (lookup_or_add_file_to_cache_tab): Convert to... | |
21310 | (file_cache::lookup_or_add_file): ..this new function. | |
21311 | (fcache::fcache): Rename to... | |
21312 | (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes | |
21313 | to fields. | |
21314 | (fcache::~fcache): Rename to... | |
21315 | (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes | |
21316 | to fields. | |
21317 | (needs_read): Convert to... | |
21318 | (file_cache_slot::needs_read_p): ...this. | |
21319 | (needs_grow): Convert to... | |
21320 | (file_cache_slot::needs_grow_p): ...this. | |
21321 | (maybe_grow): Convert to... | |
21322 | (file_cache_slot::maybe_grow): ...this. | |
21323 | (read_data): Convert to... | |
21324 | (file_cache_slot::read_data): ...this. | |
21325 | (maybe_read_data): Convert to... | |
21326 | (file_cache_slot::maybe_read_data): ...this. | |
21327 | (get_next_line): Convert to... | |
21328 | (file_cache_slot::get_next_line): ...this. | |
21329 | (goto_next_line): Convert to... | |
21330 | (file_cache_slot::goto_next_line): ...this. | |
21331 | (read_line_num): Convert to... | |
21332 | (file_cache_slot::read_line_num): ...this. | |
21333 | (location_get_source_line): Update for moving of globals to | |
21334 | global_dc->m_file_cache. | |
21335 | (location_missing_trailing_newline): Likewise. | |
21336 | * input.h (class file_cache_slot): New forward decl. | |
21337 | (class file_cache): New. | |
21338 | ||
21339 | 2021-07-01 Michael Meissner <meissner@linux.ibm.com> | |
21340 | ||
21341 | * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE | |
21342 | 128-bit floating point conditional move support. | |
21343 | (have_compare_and_set_mask): Add IEEE 128-bit floating point | |
21344 | types. | |
21345 | * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn. | |
21346 | (mov<mode>cc_p10, IEEE128 iterator): New insn. | |
21347 | (mov<mode>cc_invert_p10, IEEE128 iterator): New insn. | |
21348 | (fpmask<mode>, IEEE128 iterator): New insn. | |
21349 | (xxsel<mode>, IEEE128 iterator): New insn. | |
21350 | ||
21351 | 2021-07-01 Iain Sandoe <iain@sandoe.co.uk> | |
21352 | ||
21353 | PR debug/101283 | |
21354 | * config/darwin.h (CTF_INFO_SECTION_NAME): New. | |
21355 | ||
21356 | 2021-07-01 H.J. Lu <hjl.tools@gmail.com> | |
21357 | ||
21358 | * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): | |
21359 | Make it global. | |
21360 | * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate): | |
21361 | New prototype. | |
21362 | * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator. | |
21363 | (vec_duplicate<mode>): New expander. | |
21364 | ||
21365 | 2021-07-01 H.J. Lu <hjl.tools@gmail.com> | |
21366 | ||
21367 | PR target/100865 | |
21368 | * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): | |
21369 | New prototype. | |
21370 | (ix86_byte_broadcast): New function. | |
21371 | (ix86_convert_const_wide_int_to_broadcast): Likewise. | |
21372 | (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode | |
21373 | size is 16 bytes or bigger. | |
21374 | (ix86_broadcast_from_integer_constant): New function. | |
21375 | (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR | |
21376 | to broadcast if mode size is 16 bytes or bigger. | |
21377 | * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New | |
21378 | prototype. | |
21379 | * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function. | |
21380 | ||
21381 | 2021-07-01 Uroš Bizjak <ubizjak@gmail.com> | |
21382 | ||
21383 | * config/i386/predicates.md (ix86_endbr_immediate_operand): | |
21384 | Return true/false instead of 1/0. | |
21385 | (movq_parallel): Ditto. | |
21386 | ||
21387 | 2021-07-01 Uroš Bizjak <ubizjak@gmail.com> | |
21388 | ||
21389 | * recog.c (general_operand): Return true/false instead of 1/0. | |
21390 | (register_operand): Ditto. | |
21391 | (immediate_operand): Ditto. | |
21392 | (const_int_operand): Ditto. | |
21393 | (const_scalar_int_operand): Ditto. | |
21394 | (const_double_operand): Ditto. | |
21395 | (push_operand): Ditto. | |
21396 | (pop_operand): Ditto. | |
21397 | (memory_operand): Ditto. | |
21398 | (indirect_operand): Ditto. | |
21399 | ||
21400 | 2021-07-01 Uroš Bizjak <ubizjak@gmail.com> | |
21401 | ||
21402 | * genpreds.c (write_predicate_subfunction): | |
21403 | Change the type of written subfunction to bool. | |
21404 | (write_one_predicate_function): | |
21405 | Change the type of written function to bool. | |
21406 | (write_tm_preds_h): Ditto. | |
21407 | * recog.h (*insn_operand_predicate_fn): Change the type to bool. | |
21408 | * recog.c (general_operand): Change the type to bool. | |
21409 | (address_operand): Ditto. | |
21410 | (register_operand): Ditto. | |
21411 | (pmode_register_operand): Ditto. | |
21412 | (scratch_operand): Ditto. | |
21413 | (immediate_operand): Ditto. | |
21414 | (const_int_operand): Ditto. | |
21415 | (const_scalar_int_operand): Ditto. | |
21416 | (const_double_operand): Ditto. | |
21417 | (nonimmediate_operand): Ditto. | |
21418 | (nonmemory_operand): Ditto. | |
21419 | (push_operand): Ditto. | |
21420 | (pop_operand): Ditto. | |
21421 | (memory_operand): Ditto. | |
21422 | (indirect_operand): Ditto. | |
21423 | (ordered_comparison_operator): Ditto. | |
21424 | (comparison_operator): Ditto. | |
21425 | * config/i386/i386-expand.c (ix86_expand_sse_cmp): | |
21426 | Change the type of indirect predicate function to bool. | |
21427 | * config/rs6000/rs6000.c (easy_vector_constant): | |
21428 | Change the type to bool. | |
21429 | * config/mips/mips-protos.h (m16_based_address_p): | |
21430 | Change the type of operand 3 to bool. | |
21431 | ||
21432 | 2021-07-01 Richard Biener <rguenther@suse.de> | |
21433 | ||
21434 | PR tree-optimization/101280 | |
21435 | PR tree-optimization/101173 | |
21436 | * gimple-loop-interchange.cc | |
21437 | (tree_loop_interchange::valid_data_dependences): Revert | |
21438 | previous change and instead correctly handle DDR_REVERSED_P | |
21439 | dependence. | |
21440 | ||
21441 | 2021-07-01 Richard Biener <rguenther@suse.de> | |
21442 | ||
21443 | PR tree-optimization/101278 | |
21444 | * tree-ssa-dse.c (dse_classify_store): First check for | |
21445 | uses, then ignore stmt for chaining purposes. | |
21446 | ||
21447 | 2021-07-01 Richard Biener <rguenther@suse.de> | |
21448 | ||
21449 | PR tree-optimization/100778 | |
21450 | * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping | |
21451 | vectorized ops ahead of their scalar BB. | |
21452 | ||
21453 | 2021-07-01 Uroš Bizjak <ubizjak@gmail.com> | |
21454 | ||
21455 | PR target/101044 | |
21456 | * config/i386/i386.md (*nabs<dwi>2_doubleword): | |
21457 | New insn_and_split pattern. | |
21458 | (*nabs<dwi>2_1): Ditto. | |
21459 | * config/i386/i386-features.c | |
21460 | (general_scalar_chain::compute_convert_gain): | |
21461 | Handle (NEG (ABS (...))) RTX. Rewrite src code | |
21462 | scanner as switch statement. | |
21463 | (general_scalar_chain::convert_insn): | |
21464 | Handle (NEG (ABS (...))) RTX. | |
21465 | (general_scalar_to_vector_candidate_p): | |
21466 | Detect (NEG (ABS (...))) RTX. Reorder case statements | |
21467 | for (AND (NOT (...) ...)) fallthrough. | |
21468 | ||
21469 | 2021-07-01 Richard Biener <rguenther@suse.de> | |
21470 | ||
21471 | PR tree-optimization/101178 | |
21472 | * tree-vect-slp.c (slpg_vertex::materialize): Remove. | |
21473 | (slpg::perm_in): Add. | |
21474 | (slpg::get_perm_in): Remove. | |
21475 | (slpg::get_perm_materialized): Add. | |
21476 | (vect_optimize_slp): Handle VEC_PERM nodes more optimally | |
21477 | during permute propagation and materialization. | |
21478 | ||
21479 | 2021-07-01 Jakub Jelinek <jakub@redhat.com> | |
21480 | ||
21481 | PR debug/101266 | |
21482 | * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR. | |
21483 | ||
21484 | 2021-07-01 Jakub Jelinek <jakub@redhat.com> | |
21485 | ||
21486 | PR middle-end/94366 | |
21487 | * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to | |
21488 | is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type, | |
21489 | use boolean_type_node instead of integer_type_node as NE_EXPR type. | |
21490 | (lower_reduction_clauses): Likewise. | |
21491 | ||
21492 | 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com> | |
21493 | ||
21494 | * config/gcn/gcn.c: Include dwarf2.h. | |
21495 | (gcn_addr_space_debug): New function. | |
21496 | (TARGET_ADDR_SPACE_DEBUG): New hook. | |
21497 | ||
21498 | 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com> | |
21499 | ||
21500 | * common/config/gcn/gcn-common.c | |
21501 | (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3. | |
21502 | * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer | |
21503 | when emitting CFI. | |
21504 | (gcn_expand_prologue): Prefer the frame pointer when emitting CFI. | |
21505 | (gcn_frame_pointer_rqd): New function. | |
21506 | (TARGET_FRAME_POINTER_REQUIRED): New hook. | |
21507 | ||
21508 | 2021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com> | |
21509 | ||
21510 | * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for | |
21511 | prologue register saves. | |
21512 | (gcn_debug_unwind_info): Use UI_DWARF2. | |
21513 | (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC. | |
21514 | (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span. | |
21515 | * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define. | |
21516 | (DWARF_LINK_REGISTER): New define. | |
21517 | (FIRST_PSEUDO_REGISTER): Increment. | |
21518 | (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER. | |
21519 | (CALL_USED_REGISTERS): Likewise. | |
21520 | (REGISTER_NAMES): Likewise. | |
21521 | ||
21522 | 2021-06-30 Richard Biener <rguenther@suse.de> | |
21523 | ||
21524 | PR tree-optimization/101267 | |
21525 | * tree-vect-stmts.c (vect_check_scalar_mask): Adjust | |
21526 | API and use SLP compatible interface of vect_is_simple_use. | |
21527 | Reject not vectorized SLP defs for callers that do not support | |
21528 | that. | |
21529 | (vect_check_store_rhs): Handle masked stores and pass down | |
21530 | the appropriate operator index. | |
21531 | (vectorizable_call): Adjust. | |
21532 | (vectorizable_store): Likewise. | |
21533 | (vectorizable_load): Likewise. Handle SLP pecularity of | |
21534 | masked loads. | |
21535 | (vect_is_simple_use): Remove special-casing of masked stores. | |
21536 | ||
21537 | 2021-06-30 Tobias Burnus <tobias@codesourcery.com> | |
21538 | ||
21539 | * common.opt (foffload): Remove help as Driver only. | |
21540 | * gcc.c (display_help): Add -foffload. | |
21541 | ||
21542 | 2021-06-30 Tobias Burnus <tobias@codesourcery.com> | |
21543 | ||
21544 | * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC. | |
21545 | (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into | |
21546 | a candidate list; better inform no offload target is configured | |
21547 | and fix hint extraction when passed target is not '\0' at [len]. | |
21548 | * common.opt (foffload): Add tailing '.'. | |
21549 | (foffload-options): Likewise; fix flag name in the help string. | |
21550 | ||
21551 | 2021-06-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
21552 | ||
21553 | PR target/66791 | |
21554 | * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32. | |
21555 | (vcage_f32): Gate comparison on __FAST_MATH__. | |
21556 | (vcageq_f32): Likewise. | |
21557 | (vcale_f32): Likewise. | |
21558 | (vcaleq_f32): Likewise. | |
21559 | (vcagt_f32): Likewise. | |
21560 | (vcagtq_f32): Likewise. | |
21561 | (vcalt_f32): Likewise. | |
21562 | (vcaltq_f32): Likewise. | |
21563 | (vcage_f16): Likewise. | |
21564 | (vcageq_f16): Likewise. | |
21565 | (vcale_f16): Likewise. | |
21566 | (vcaleq_f16): Likewise. | |
21567 | (vcagt_f16): Likewise. | |
21568 | (vcagtq_f16): Likewise. | |
21569 | (vcalt_f16): Likewise. | |
21570 | (vcaltq_f16): Likewise. | |
21571 | ||
21572 | 2021-06-30 Richard Biener <rguenther@suse.de> | |
21573 | ||
21574 | PR tree-optimization/101264 | |
21575 | * tree-vect-slp.c (vect_optimize_slp): Propagate the | |
21576 | computed perm_in to all "any" permute successors | |
21577 | we cannot de-duplicate immediately. | |
21578 | ||
21579 | 2021-06-30 liuhongt <hongtao.liu@intel.com> | |
21580 | ||
21581 | PR target/101248 | |
21582 | * config/i386/sse.md | |
21583 | (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): | |
21584 | Refined to .. | |
21585 | (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>): | |
21586 | this. | |
21587 | (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined. | |
21588 | * config/i386/subst.md (maskz_scalar): New define_subst. | |
21589 | (maskz_scalar_name): New subst_attr. | |
21590 | (maskz_scalar_op5): Ditto. | |
21591 | (round_saeonly_maskz_scalar_op5): Ditto. | |
21592 | (round_saeonly_maskz_scalar_operand5): Ditto. | |
21593 | ||
21594 | 2021-06-30 David Edelsohn <dje.gcc@gmail.com> | |
21595 | ||
21596 | * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): | |
21597 | Increase code CSECT alignment to at least 32 bytes. | |
21598 | * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte | |
21599 | alignment designation. | |
21600 | ||
21601 | 2021-06-29 Sergei Trofimovich <siarheit@google.com> | |
21602 | ||
21603 | * doc/generic.texi: Fix s/net yet/not yet/ typo. | |
21604 | ||
21605 | 2021-06-29 Andrew MacLeod <amacleod@redhat.com> | |
21606 | ||
21607 | PR tree-optimization/101254 | |
21608 | * range-op.cc (operator_minus::op1_op2_relation_effect): Check for | |
21609 | wrapping/non-wrapping when setting the result range. | |
21610 | ||
21611 | 2021-06-29 Andrew MacLeod <amacleod@redhat.com> | |
21612 | ||
21613 | * value-query.cc (gimple_range_global): Allow phis. | |
21614 | ||
21615 | 2021-06-29 Andrew MacLeod <amacleod@redhat.com> | |
21616 | ||
21617 | * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt. | |
21618 | (simplify_using_ranges::op_with_boolean_value_range_p): Add a | |
21619 | statement for location context. | |
21620 | (check_for_binary_op_overflow): Ditto. | |
21621 | (simplify_using_ranges::get_vr_for_comparison): Ditto. | |
21622 | (simplify_using_ranges::compare_name_with_value): Ditto. | |
21623 | (simplify_using_ranges::compare_names): Ditto. | |
21624 | (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto. | |
21625 | (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto. | |
21626 | (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto. | |
21627 | (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto. | |
21628 | (simplify_using_ranges::two_valued_val_range_p): Ditto. | |
21629 | (simplify_using_ranges::simplify): Ditto. | |
21630 | * vr-values.h: Adjust prototypes. | |
21631 | ||
21632 | 2021-06-29 Uroš Bizjak <ubizjak@gmail.com> | |
21633 | ||
21634 | PR target/95046 | |
21635 | * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern. | |
21636 | ||
21637 | 2021-06-29 Julian Brown <julian@codesourcery.com> | |
21638 | ||
21639 | * config/gcn/gcn.c (gcn_init_libfuncs): New function. | |
21640 | (TARGET_INIT_LIBFUNCS): Define target hook using above function. | |
21641 | * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4 | |
21642 | otherwise. | |
21643 | (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions. | |
21644 | (MAX_FIXED_MODE_SIZE): Change to 128. | |
21645 | ||
21646 | 2021-06-29 Julian Brown <julian@codesourcery.com> | |
21647 | ||
21648 | * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant. | |
21649 | (s_mnemonic): Add clrsb. | |
21650 | (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode. | |
21651 | (clrsb<mode>2): Add expander for SImode/DImode. | |
21652 | ||
21653 | 2021-06-29 Julian Brown <julian@codesourcery.com> | |
21654 | ||
21655 | * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm, | |
21656 | muldi3): Add patterns. | |
21657 | ||
21658 | 2021-06-29 Julian Brown <julian@codesourcery.com> | |
21659 | ||
21660 | * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander. | |
21661 | (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns. | |
21662 | ||
21663 | 2021-06-29 Julian Brown <julian@codesourcery.com> | |
21664 | ||
21665 | * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC. | |
21666 | ||
21667 | 2021-06-29 Joseph Myers <joseph@codesourcery.com> | |
21668 | ||
21669 | * btfout.c, ctfout.c: Include "memmodel.h". | |
21670 | ||
21671 | 2021-06-29 Tobias Burnus <tobias@codesourcery.com> | |
21672 | ||
21673 | * gcc.c (check_offload_target_name): Cast len argument to | |
21674 | %q.*s to 'int'; avoid -Wstringop-truncation warning. | |
21675 | ||
21676 | 2021-06-29 Richard Biener <rguenther@suse.de> | |
21677 | ||
21678 | * tree-vect-slp.c (vect_optimize_slp): Forward propagate | |
21679 | to "any" permute nodes and relax "any" permute proapgation | |
21680 | during iterative backward propagation. | |
21681 | ||
21682 | 2021-06-29 Tobias Burnus <tobias@codesourcery.com> | |
21683 | ||
21684 | PR other/67300 | |
21685 | * common.opt (-foffload=): Update description. | |
21686 | (-foffload-options=): New. | |
21687 | * doc/invoke.texi (C Language Options): Document | |
21688 | -foffload and -foffload-options. | |
21689 | * gcc.c (check_offload_target_name): New, split off from | |
21690 | handle_foffload_option. | |
21691 | (check_foffload_target_names): New. | |
21692 | (handle_foffload_option): Handle -foffload=default. | |
21693 | (driver_handle_option): Update for -foffload-options. | |
21694 | * lto-opts.c (lto_write_options): Use -foffload-options | |
21695 | instead of -foffload. | |
21696 | * lto-wrapper.c (merge_and_complain, append_offload_options): | |
21697 | Likewise. | |
21698 | * opts.c (common_handle_option): Likewise. | |
21699 | ||
21700 | 2021-06-29 Tobias Burnus <tobias@codesourcery.com> | |
21701 | ||
21702 | * doc/invoke.texi (C Language Options): Sort options | |
21703 | alphabetically in optlist and also the description itself. | |
21704 | Remove leftover -fallow-single-precision from and add missing | |
21705 | -fgnu-tm to the optlist. | |
21706 | ||
21707 | 2021-06-29 Richard Biener <rguenther@suse.de> | |
21708 | ||
21709 | * tree-vect-slp.c (slpg_vertex::visited): Remove. | |
21710 | (vect_slp_perms_eq): Handle -1 permutes. | |
21711 | (vect_optimize_slp): Rewrite permute propagation. | |
21712 | ||
21713 | 2021-06-29 Jakub Jelinek <jakub@redhat.com> | |
21714 | ||
21715 | PR c++/101210 | |
21716 | * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't | |
21717 | perform the optimization in GENERIC when sanitizing and x has a | |
21718 | reference type. | |
21719 | ||
21720 | 2021-06-29 Richard Biener <rguenther@suse.de> | |
21721 | ||
21722 | PR tree-optimization/101242 | |
21723 | * tree-vect-slp.c (vect_slp_build_vertices): Force-add | |
21724 | PHIs with not represented initial values as leafs. | |
21725 | ||
21726 | 2021-06-29 Jan-Benedict Glaw <jbglaw@getslash.de> | |
21727 | ||
21728 | * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning. | |
21729 | * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove | |
21730 | "register" keyword. | |
21731 | (pdp11_initial_elimination_offset) Remove unused variable. | |
21732 | (pdp11_cmp_length) Ditto. | |
21733 | (pdp11_insn_cost): Ditto, and fix signedness warning. | |
21734 | ||
21735 | 2021-06-29 David Edelsohn <dje.gcc@gmail.com> | |
21736 | ||
21737 | * btfout.c: Include tm_p.h. | |
21738 | * ctfout.c: Same. | |
21739 | ||
21740 | 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com> | |
21741 | ||
21742 | * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as | |
21743 | frame related. | |
21744 | (bpf_expand_epilogue): Likewise. | |
21745 | * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0. | |
21746 | Do not define DBX_DEBUGGING_INFO. | |
21747 | ||
21748 | 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com> | |
21749 | ||
21750 | * doc/invoke.texi: Document the CTF and BTF debug info options. | |
21751 | ||
21752 | 2021-06-28 Indu Bhagat <indu.bhagat@oracle.com> | |
21753 | David Faust <david.faust@oracle.com> | |
21754 | Jose E. Marchesi <jose.marchesi@oracle.com> | |
21755 | Weimin Pan <weimin.pan@oracle.com> | |
21756 | ||
21757 | * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to | |
21758 | GTFILES. Add new object files. | |
21759 | * common.opt: Add CTF and BTF debug info options. | |
21760 | * btfout.c: New file. | |
21761 | * ctfc.c: Likewise. | |
21762 | * ctfc.h: Likewise. | |
21763 | * ctfout.c: Likewise. | |
21764 | * dwarf2ctf.c: Likewise. | |
21765 | * dwarf2ctf.h: Likewise. | |
21766 | * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and | |
21767 | BTF_DEBUG. | |
21768 | * dwarf2out.c (dwarf2out_source_line): Likewise. | |
21769 | (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to | |
21770 | be generated. | |
21771 | (debug_format_do_cu): New function. | |
21772 | (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for | |
21773 | them if requested. | |
21774 | Include dwarf2ctf.c. | |
21775 | * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug | |
21776 | formats. | |
21777 | * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG. | |
21778 | (CTF_DEBUG): New bitmask. | |
21779 | (BTF_DEBUG): Likewise. | |
21780 | (enum ctf_debug_info_levels): New enum. | |
21781 | * gengtype.c (open_base_files): Handle ctfc.h. | |
21782 | (main): Handle uint32_t type. | |
21783 | * flags.h (btf_debuginfo_p): New definition. | |
21784 | (dwarf_based_debuginfo_p): Likewise. | |
21785 | * opts.c (debug_type_names): Add entries for CTF and BTF. | |
21786 | (btf_debuginfo_p): New function. | |
21787 | (dwarf_based_debuginfo_p): Likewise. | |
21788 | (common_handle_option): Handle -gctfN and -gbtf options. | |
21789 | (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate. | |
21790 | * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if | |
21791 | frontend is not C. | |
21792 | ||
21793 | 2021-06-28 Jose E. Marchesi <jose.marchesi@oracle.com> | |
21794 | ||
21795 | * dwarf2out.c (AT_class): Function is no longer static. | |
21796 | (AT_int): Likewise. | |
21797 | (AT_unsigned): Likewise. | |
21798 | (AT_loc): Likewise. | |
21799 | (get_AT): Likewise. | |
21800 | (get_AT_string): Likewise. | |
21801 | (get_AT_flag): Likewise. | |
21802 | (get_AT_unsigned): Likewise. | |
21803 | (get_AT_ref): Likewise. | |
21804 | (new_die_raw): Likewise. | |
21805 | (lookup_decl_die): Likewise. | |
21806 | (base_type_die): Likewise. | |
21807 | (add_name_attribute): Likewise. | |
21808 | (add_AT_int): Likewise. | |
21809 | (add_AT_unsigned): Likewise. | |
21810 | (add_AT_loc): Likewise. | |
21811 | (dw_get_die_tag): New function. | |
21812 | (dw_get_die_child): Likewise. | |
21813 | (dw_get_die_sib): Likewise. | |
21814 | (struct dwarf_file_data): Move from here to dwarf2out.h | |
21815 | (struct dw_attr_struct): Likewise. | |
21816 | * dwarf2out.h: Analogous changes. | |
21817 | ||
21818 | 2021-06-28 Martin Jambor <mjambor@suse.cz> | |
21819 | ||
21820 | PR ipa/93385 | |
21821 | * ipa-param-manipulation.h (class ipa_param_body_adjustments): New | |
21822 | members m_dead_stmts and m_dead_ssas. | |
21823 | * ipa-param-manipulation.c | |
21824 | (ipa_param_body_adjustments::mark_dead_statements): New function. | |
21825 | (ipa_param_body_adjustments::common_initialization): Call it on | |
21826 | all removed but not split parameters. | |
21827 | (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize | |
21828 | new mwmbers. | |
21829 | (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that | |
21830 | are dead. | |
21831 | * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset | |
21832 | dead debug statements. | |
21833 | (copy_phis_for_bb): Do not copy dead PHI nodes. | |
21834 | ||
21835 | 2021-06-28 Martin Jambor <mjambor@suse.cz> | |
21836 | ||
21837 | PR ipa/93385 | |
21838 | * symtab-clones.h (clone_info): Removed member param_adjustments. | |
21839 | * ipa-param-manipulation.h: Adjust initial comment to reflect how we | |
21840 | deal with pass-through splits now. | |
21841 | (ipa_param_performed_split): Removed. | |
21842 | (ipa_param_adjustments::modify_call): Adjusted parameters. | |
21843 | (class ipa_param_body_adjustments): Adjusted parameters of | |
21844 | register_replacement, modify_gimple_stmt and modify_call_stmt. | |
21845 | (ipa_verify_edge_has_no_modifications): Declare. | |
21846 | (ipa_edge_modifications_finalize): Declare. | |
21847 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove | |
21848 | performed_splits processing, pas only edge to padjs->modify_call, | |
21849 | check that call arguments were not modified if they should not have | |
21850 | been. | |
21851 | * cgraphclones.c (cgraph_node::create_clone): Do not copy performed | |
21852 | splits. | |
21853 | * ipa-param-manipulation.c (struct pass_through_split_map): New type. | |
21854 | (ipa_edge_modification_info): Likewise. | |
21855 | (ipa_edge_modification_sum): Likewise. | |
21856 | (ipa_edge_modifications): New edge summary. | |
21857 | (ipa_verify_edge_has_no_modifications): New function. | |
21858 | (transitive_split_p): Removed. | |
21859 | (transitive_split_map): Likewise. | |
21860 | (init_transitive_splits): Likewise. | |
21861 | (ipa_param_adjustments::modify_call): Adjusted to use the new edge | |
21862 | summary instead of performed_splits. | |
21863 | (ipa_param_body_adjustments::register_replacement): Drop dummy | |
21864 | parameter, set base_index of the created ipa_param_body_replacement. | |
21865 | (phi_arg_will_live_p): New function. | |
21866 | (ipa_param_body_adjustments::common_initialization): Do not create | |
21867 | IPA_SRA dummy decls. | |
21868 | (simple_tree_swap_info): Removed. | |
21869 | (remap_split_decl_to_dummy): Likewise. | |
21870 | (record_argument_state_1): New function. | |
21871 | (record_argument_state): Likewise. | |
21872 | (ipa_param_body_adjustments::modify_call_stmt): New parameter | |
21873 | orig_stmt. Do not work with dummy decls, save necessary info about | |
21874 | changes to ipa_edge_modifications. | |
21875 | (ipa_param_body_adjustments::modify_gimple_stmt): New parameter | |
21876 | orig_stmt, pass it to modify_call_stmt. | |
21877 | (ipa_param_body_adjustments::modify_cfun_body): Adjust call to | |
21878 | modify_gimple_stmt. | |
21879 | (ipa_edge_modifications_finalize): New function. | |
21880 | * tree-inline.c (remap_gimple_stmt): Pass original statement to | |
21881 | modify_gimple_stmt. | |
21882 | (copy_phis_for_bb): Do not copy dead PHI nodes. | |
21883 | (expand_call_inline): Do not remap performed_splits. | |
21884 | (update_clone_info): Likewise. | |
21885 | * toplev.c: Include ipa-param-manipulation.h. | |
21886 | (toplev::finalize): Call ipa_edge_modifications_finalize. | |
21887 | ||
21888 | 2021-06-28 Andrew Pinski <apinski@marvell.com> | |
21889 | ||
21890 | * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range | |
21891 | info if we're the only things setting the target PHI. | |
21892 | (value_replacement): Don't duplicate range here. | |
21893 | (minmax_replacement): Likewise. | |
21894 | ||
21895 | 2021-06-28 Richard Biener <rguenther@suse.de> | |
21896 | ||
21897 | PR tree-optimization/101229 | |
21898 | * gimple-walk.c (gimple_walk_op): Handle PHIs. | |
21899 | ||
21900 | 2021-06-28 Martin Liska <mliska@suse.cz> | |
21901 | ||
21902 | * config/v850/v850.c (construct_dispose_instruction): Allocate | |
21903 | a bigger buffer. | |
21904 | (construct_prepare_instruction): Likewise. | |
21905 | ||
21906 | 2021-06-28 Martin Liska <mliska@suse.cz> | |
21907 | ||
21908 | * config/v850/v850.c (v850_option_override): Build default | |
21909 | target node. | |
21910 | (v850_can_inline_p): New. Allow MASK_PROLOG_FUNCTION to be | |
21911 | ignored for inlining. | |
21912 | (TARGET_CAN_INLINE_P): New. | |
21913 | ||
21914 | 2021-06-28 Richard Biener <rguenther@suse.de> | |
21915 | ||
21916 | PR tree-optimization/101207 | |
21917 | * tree-vect-slp.c (vect_optimize_slp): Do BB reduction | |
21918 | permute eliding for load permutations properly. | |
21919 | ||
21920 | 2021-06-28 Richard Biener <rguenther@suse.de> | |
21921 | ||
21922 | PR tree-optimization/101173 | |
21923 | * gimple-loop-interchange.cc | |
21924 | (tree_loop_interchange::valid_data_dependences): Disallow outer | |
21925 | loop dependence distance of zero. | |
21926 | ||
21927 | 2021-06-28 liuhongt <hongtao.liu@intel.com> | |
21928 | ||
21929 | PR target/100648 | |
21930 | * config/i386/sse.md (*avx_cmp<mode>3_lt): New | |
21931 | define_insn_and_split. | |
21932 | (*avx_cmp<mode>3_ltint): Ditto. | |
21933 | (*avx2_pcmp<mode>3_3): Ditto. | |
21934 | (*avx2_pcmp<mode>3_4): Ditto. | |
21935 | (*avx2_pcmp<mode>3_5): Ditto. | |
21936 | ||
21937 | 2021-06-28 liuhongt <hongtao.liu@intel.com> | |
21938 | ||
21939 | * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256, | |
21940 | IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256, | |
21941 | IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS, | |
21942 | IX86_BUILTIN_PBLENDVB128): Replace icode with | |
21943 | CODE_FOR_nothing. | |
21944 | * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv | |
21945 | builtins. | |
21946 | * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not): | |
21947 | New pre_reload splitter. | |
21948 | ||
21949 | 2021-06-27 Andrew Pinski <apinski@marvell.com> | |
21950 | ||
21951 | PR middle-end/101230 | |
21952 | * fold-const.c (fold_ternary_loc): Check | |
21953 | the return value of invert_tree_comparison. | |
21954 | ||
21955 | 2021-06-27 David Edelsohn <dje.gcc@gmail.com> | |
21956 | ||
21957 | * config.gcc: Add SPDX License Identifier. | |
21958 | (powerpc-ibm-aix789): Default to aix73.h. | |
21959 | (powerpc-ibm-aix7.2.*.*): New stanza. | |
21960 | * config/rs6000/aix72.h: Add SPDX License Identifier. | |
21961 | * config/rs6000/aix73.h: New file. | |
21962 | ||
21963 | 2021-06-26 Jason Merrill <jason@redhat.com> | |
21964 | ||
21965 | * except.c: #include "dwarf2.h" instead of "dwarf2out.h". | |
21966 | ||
21967 | 2021-06-26 Andrew Pinski <apinski@marvell.com> | |
21968 | ||
21969 | * genmatch.c (lower_cond): Copy for_subst_vec | |
21970 | for the simplify also. | |
21971 | (lower): Swap the order for lower_for and lower_cond. | |
21972 | ||
21973 | 2021-06-26 Andrew Pinski <apinski@marvell.com> | |
21974 | ||
21975 | * tree-ssa-phiopt.c (match_simplify_replacement): Reset | |
21976 | flow senatitive info on the moved ssa set. | |
21977 | ||
21978 | 2021-06-26 Andrew Pinski <apinski@marvell.com> | |
21979 | ||
21980 | * fold-const.c (fold_cond_expr_with_comparison): | |
21981 | Exand arg0 into comp_code, arg00, and arg01. | |
21982 | (fold_ternary_loc): Use invert_tree_comparison | |
21983 | instead of fold_invert_truthvalue for the case | |
21984 | where we have A CMP B ? C : A. | |
21985 | ||
21986 | 2021-06-25 Martin Sebor <msebor@redhat.com> | |
21987 | ||
21988 | PR middle-end/101216 | |
21989 | * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant. | |
21990 | ||
21991 | 2021-06-25 Jeff Law <jeffreyalaw@gmail.com> | |
21992 | ||
21993 | * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT. | |
21994 | ||
21995 | 2021-06-25 Richard Biener <rguenther@suse.de> | |
21996 | ||
21997 | PR tree-optimization/101202 | |
21998 | * tree-vect-slp.c (vect_optimize_slp): Explicitely handle | |
21999 | failed nodes. | |
22000 | ||
22001 | 2021-06-25 Richard Biener <rguenther@suse.de> | |
22002 | ||
22003 | * tree-vect-slp-patterns.c (addsub_pattern::build): Copy | |
22004 | STMT_VINFO_REDUC_DEF from the original representative. | |
22005 | ||
22006 | 2021-06-25 Martin Sebor <msebor@redhat.com> | |
22007 | ||
22008 | * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING, | |
22009 | gimple_no_warning_p and gimple_set_no_warning with | |
22010 | warning_suppressed_p, and suppress_warning. | |
22011 | (c_strlen): Same. | |
22012 | (maybe_warn_for_bound): Same. | |
22013 | (warn_for_access): Same. | |
22014 | (check_access): Same. | |
22015 | (expand_builtin_strncmp): Same. | |
22016 | (fold_builtin_varargs): Same. | |
22017 | * calls.c (maybe_warn_nonstring_arg): Same. | |
22018 | (maybe_warn_rdwr_sizes): Same. | |
22019 | * cfgexpand.c (expand_call_stmt): Same. | |
22020 | * cgraphunit.c (check_global_declaration): Same. | |
22021 | * fold-const.c (fold_undefer_overflow_warnings): Same. | |
22022 | (fold_truth_not_expr): Same. | |
22023 | (fold_unary_loc): Same. | |
22024 | (fold_checksum_tree): Same. | |
22025 | * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same. | |
22026 | (array_bounds_checker::check_mem_ref): Same. | |
22027 | (array_bounds_checker::check_addr_expr): Same. | |
22028 | (array_bounds_checker::check_array_bounds): Same. | |
22029 | * gimple-expr.c (copy_var_decl): Same. | |
22030 | * gimple-fold.c (gimple_fold_builtin_strcpy): Same. | |
22031 | (gimple_fold_builtin_strncat): Same. | |
22032 | (gimple_fold_builtin_stxcpy_chk): Same. | |
22033 | (gimple_fold_builtin_stpcpy): Same. | |
22034 | (gimple_fold_builtin_sprintf): Same. | |
22035 | (fold_stmt_1): Same. | |
22036 | * gimple-ssa-isolate-paths.c (diag_returned_locals): Same. | |
22037 | * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same. | |
22038 | * gimple-ssa-sprintf.c (handle_printf_call): Same. | |
22039 | * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same. | |
22040 | * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same. | |
22041 | * gimple-ssa-warn-restrict.h: Adjust declarations. | |
22042 | (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING, | |
22043 | gimple_no_warning_p and gimple_set_no_warning with | |
22044 | warning_suppressed_p, and suppress_warning. | |
22045 | (check_call): Same. | |
22046 | (check_bounds_or_overlap): Same. | |
22047 | * gimple.c (gimple_build_call_from_tree): Same. | |
22048 | * gimplify.c (gimplify_return_expr): Same. | |
22049 | (gimplify_cond_expr): Same. | |
22050 | (gimplify_modify_expr_complex_part): Same. | |
22051 | (gimplify_modify_expr): Same. | |
22052 | (gimple_push_cleanup): Same. | |
22053 | (gimplify_expr): Same. | |
22054 | * omp-expand.c (expand_omp_for_generic): Same. | |
22055 | (expand_omp_taskloop_for_outer): Same. | |
22056 | * omp-low.c (lower_rec_input_clauses): Same. | |
22057 | (lower_lastprivate_clauses): Same. | |
22058 | (lower_send_clauses): Same. | |
22059 | (lower_omp_target): Same. | |
22060 | * tree-cfg.c (pass_warn_function_return::execute): Same. | |
22061 | * tree-complex.c (create_one_component_var): Same. | |
22062 | * tree-inline.c (remap_gimple_op_r): Same. | |
22063 | (copy_tree_body_r): Same. | |
22064 | (declare_return_variable): Same. | |
22065 | (expand_call_inline): Same. | |
22066 | * tree-nested.c (lookup_field_for_decl): Same. | |
22067 | * tree-sra.c (create_access_replacement): Same. | |
22068 | (generate_subtree_copies): Same. | |
22069 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. | |
22070 | * tree-ssa-forwprop.c (combine_cond_expr_cond): Same. | |
22071 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Same. | |
22072 | * tree-ssa-loop-im.c (execute_sm): Same. | |
22073 | * tree-ssa-phiopt.c (cond_store_replacement): Same. | |
22074 | * tree-ssa-strlen.c (maybe_warn_overflow): Same. | |
22075 | (handle_builtin_strcpy): Same. | |
22076 | (maybe_diag_stxncpy_trunc): Same. | |
22077 | (handle_builtin_stxncpy_strncat): Same. | |
22078 | (handle_builtin_strcat): Same. | |
22079 | * tree-ssa-uninit.c (get_no_uninit_warning): Same. | |
22080 | (set_no_uninit_warning): Same. | |
22081 | (uninit_undefined_value_p): Same. | |
22082 | (warn_uninit): Same. | |
22083 | (maybe_warn_operand): Same. | |
22084 | * tree-vrp.c (compare_values_warnv): Same. | |
22085 | * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same. | |
22086 | (test_for_singularity): Same. | |
22087 | * gimple.h (warning_suppressed_p): New function. | |
22088 | (suppress_warning): Same. | |
22089 | (copy_no_warning): Same. | |
22090 | (gimple_set_block): Call gimple_set_location. | |
22091 | (gimple_set_location): Call copy_warning. | |
22092 | ||
22093 | 2021-06-25 Martin Sebor <msebor@redhat.com> | |
22094 | ||
22095 | * tree.h (warning_suppressed_at, copy_warning, | |
22096 | warning_suppressed_p, suppress_warning): New functions. | |
22097 | ||
22098 | 2021-06-25 Martin Sebor <msebor@redhat.com> | |
22099 | ||
22100 | * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o. | |
22101 | * gengtype.c (open_base_files): Add diagnostic-spec.h. | |
22102 | * diagnostic-spec.c: New file. | |
22103 | * diagnostic-spec.h: New file. | |
22104 | * tree.h (no_warning, all_warnings, suppress_warning_at): New | |
22105 | declarations. | |
22106 | * warning-control.cc: New file. | |
22107 | ||
22108 | 2021-06-25 liuhongt <hongtao.liu@intel.com> | |
22109 | ||
22110 | PR target/101185 | |
22111 | * config/i386/i386.c (x86_order_regs_for_local_alloc): | |
22112 | Revert r12-1669. | |
22113 | ||
22114 | 2021-06-24 Andrew MacLeod <amacleod@redhat.com> | |
22115 | ||
22116 | PR tree-optimization/101189 | |
22117 | * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass | |
22118 | LHS range of condition to postfold routine. | |
22119 | (fold_using_range::postfold_gcond_edges): Only process the TRUE or | |
22120 | FALSE edge if the LHS range supports it being taken. | |
22121 | * gimple-range-fold.h (postfold_gcond_edges): Add range parameter. | |
22122 | ||
22123 | 2021-06-24 Andrew MacLeod <amacleod@redhat.com> | |
22124 | ||
22125 | * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks. | |
22126 | (relation_oracle::find_relation_block): Check correct bitmap. | |
22127 | (relation_oracle::dump): Do not dump NULL blocks. | |
22128 | ||
22129 | 2021-06-24 Andrew MacLeod <amacleod@redhat.com> | |
22130 | ||
22131 | * gimple-range-cache.cc (ranger_cache::propagate_cache): Call | |
22132 | range_on_edge instead of manually calculating. | |
22133 | ||
22134 | 2021-06-24 Andrew MacLeod <amacleod@redhat.com> | |
22135 | ||
22136 | * range-op.cc: Fix comment. | |
22137 | ||
22138 | 2021-06-24 Uroš Bizjak <ubizjak@gmail.com> | |
22139 | ||
22140 | PR target/89021 | |
22141 | * config/i386/i386-expand.c (ix86_expand_sse_unpack): | |
22142 | Handle V8QI and V4HI modes. | |
22143 | * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2): | |
22144 | New insn pattern. | |
22145 | (sse4_1_<any_extend:code>v4qiv4hi2): Ditto. | |
22146 | (mmxpackmode): New mode attribute. | |
22147 | (vec_pack_trunc_<mmxpackmode:mode>): New expander. | |
22148 | (mmxunpackmode): New mode attribute. | |
22149 | (vec_unpacks_lo_<mmxunpackmode:mode>): New expander. | |
22150 | (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto. | |
22151 | (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto. | |
22152 | (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto. | |
22153 | * config/i386/i386.md (extsuffix): Move from ... | |
22154 | * config/i386/sse.md: ... here. | |
22155 | ||
22156 | 2021-06-24 Eric Botcazou <ebotcazou@adacore.com> | |
22157 | ||
22158 | * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here.. | |
22159 | (dwarf2out_finish): ...instead of here. | |
22160 | ||
22161 | 2021-06-24 Eric Botcazou <ebotcazou@adacore.com> | |
22162 | ||
22163 | * configure.ac (--gdwarf-5 option): Use objdump instead of readelf. | |
22164 | (working --gdwarf-4/--gdwarf-5 for all sources): Likewise. | |
22165 | (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows. | |
22166 | * configure: Regenerate. | |
22167 | ||
22168 | 2021-06-24 Richard Biener <rguenther@suse.de> | |
22169 | ||
22170 | * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3, | |
22171 | vec_addsubv8sf3, vec_addsubv4sf3): Merge into ... | |
22172 | (vec_addsub<mode>3): ... using a new addsub_cst mode attribute. | |
22173 | ||
22174 | 2021-06-24 Richard Biener <rguenther@suse.de> | |
22175 | ||
22176 | * config/i386/sse.md (avx_addsubv4df3): Rename to | |
22177 | vec_addsubv4df3. | |
22178 | (avx_addsubv8sf3): Rename to vec_addsubv8sf3. | |
22179 | (sse3_addsubv2df3): Rename to vec_addsubv2df3. | |
22180 | (sse3_addsubv4sf3): Rename to vec_addsubv4sf3. | |
22181 | * config/i386/i386-builtin.def: Adjust. | |
22182 | * internal-fn.def (VEC_ADDSUB): New internal optab fn. | |
22183 | * optabs.def (vec_addsub_optab): New optab. | |
22184 | * tree-vect-slp-patterns.c (class addsub_pattern): New. | |
22185 | (slp_patterns): Add addsub_pattern. | |
22186 | * tree-vect-slp.c (vect_optimize_slp): Disable propagation | |
22187 | across CFN_VEC_ADDSUB. | |
22188 | * tree-vectorizer.h (vect_pattern::vect_pattern): Make | |
22189 | m_ops optional. | |
22190 | * doc/md.texi (vec_addsub<mode>3): Document. | |
22191 | ||
22192 | 2021-06-24 Jakub Jelinek <jakub@redhat.com> | |
22193 | ||
22194 | PR middle-end/101170 | |
22195 | * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs | |
22196 | where regno + subreg_regno_offset wraps around use 0 as starting | |
22197 | regno. | |
22198 | ||
22199 | 2021-06-24 Jakub Jelinek <jakub@redhat.com> | |
22200 | ||
22201 | PR middle-end/101172 | |
22202 | * stor-layout.c (finish_bitfield_representative): If nextf has | |
22203 | error_mark_node type, set repr type to error_mark_node too. | |
22204 | ||
22205 | 2021-06-24 Ilya Leoshkevich <iii@linux.ibm.com> | |
22206 | ||
22207 | * config/s390/s390.c (s390_function_profiler): Ignore labelno | |
22208 | parameter. | |
22209 | * config/s390/s390.h (NO_PROFILE_COUNTERS): Define. | |
22210 | ||
22211 | 2021-06-24 Richard Biener <rguenther@suse.de> | |
22212 | ||
22213 | * tree-vect-slp.c (vect_optimize_slp): Do not propagate | |
22214 | across operations that have different semantics on different | |
22215 | lanes. | |
22216 | ||
22217 | 2021-06-24 Jakub Jelinek <jakub@redhat.com> | |
22218 | ||
22219 | * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP. | |
22220 | * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses | |
22221 | with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification | |
22222 | of non-decl OMP_CLAUSE_DECL. For OMP_CLAUSE_IN_REDUCTION on | |
22223 | OMP_TARGET user outer_ctx instead of ctx for placeholders and | |
22224 | initializer/combiner gimplification. | |
22225 | * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION | |
22226 | on target constructs. | |
22227 | (lower_rec_input_clauses): Likewise. | |
22228 | (lower_omp_target): Likewise. | |
22229 | * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause | |
22230 | on target if in_reduction is present. | |
22231 | ||
22232 | 2021-06-24 Kewen Lin <linkw@linux.ibm.com> | |
22233 | ||
22234 | * tree-predcom.c (class pcom_worker): New class. | |
22235 | (release_chain): Renamed to... | |
22236 | (pcom_worker::release_chain): ...this. | |
22237 | (release_chains): Renamed to... | |
22238 | (pcom_worker::release_chains): ...this. | |
22239 | (aff_combination_dr_offset): Renamed to... | |
22240 | (pcom_worker::aff_combination_dr_offset): ...this. | |
22241 | (determine_offset): Renamed to... | |
22242 | (pcom_worker::determine_offset): ...this. | |
22243 | (class comp_ptrs): New class. | |
22244 | (split_data_refs_to_components): Renamed to... | |
22245 | (pcom_worker::split_data_refs_to_components): ...this, | |
22246 | and update with class comp_ptrs. | |
22247 | (suitable_component_p): Renamed to... | |
22248 | (pcom_worker::suitable_component_p): ...this. | |
22249 | (filter_suitable_components): Renamed to... | |
22250 | (pcom_worker::filter_suitable_components): ...this. | |
22251 | (valid_initializer_p): Renamed to... | |
22252 | (pcom_worker::valid_initializer_p): ...this. | |
22253 | (find_looparound_phi): Renamed to... | |
22254 | (pcom_worker::find_looparound_phi): ...this. | |
22255 | (add_looparound_copies): Renamed to... | |
22256 | (pcom_worker::add_looparound_copies): ...this. | |
22257 | (determine_roots_comp): Renamed to... | |
22258 | (pcom_worker::determine_roots_comp): ...this. | |
22259 | (determine_roots): Renamed to... | |
22260 | (pcom_worker::determine_roots): ...this. | |
22261 | (single_nonlooparound_use): Renamed to... | |
22262 | (pcom_worker::single_nonlooparound_use): ...this. | |
22263 | (remove_stmt): Renamed to... | |
22264 | (pcom_worker::remove_stmt): ...this. | |
22265 | (execute_pred_commoning_chain): Renamed to... | |
22266 | (pcom_worker::execute_pred_commoning_chain): ...this. | |
22267 | (execute_pred_commoning): Renamed to... | |
22268 | (pcom_worker::execute_pred_commoning): ...this. | |
22269 | (struct epcc_data): New member worker. | |
22270 | (execute_pred_commoning_cbck): Call execute_pred_commoning | |
22271 | with pcom_worker pointer. | |
22272 | (find_use_stmt): Renamed to... | |
22273 | (pcom_worker::find_use_stmt): ...this. | |
22274 | (find_associative_operation_root): Renamed to... | |
22275 | (pcom_worker::find_associative_operation_root): ...this. | |
22276 | (find_common_use_stmt): Renamed to... | |
22277 | (pcom_worker::find_common_use_stmt): ...this. | |
22278 | (combinable_refs_p): Renamed to... | |
22279 | (pcom_worker::combinable_refs_p): ...this. | |
22280 | (reassociate_to_the_same_stmt): Renamed to... | |
22281 | (pcom_worker::reassociate_to_the_same_stmt): ...this. | |
22282 | (stmt_combining_refs): Renamed to... | |
22283 | (pcom_worker::stmt_combining_refs): ...this. | |
22284 | (combine_chains): Renamed to... | |
22285 | (pcom_worker::combine_chains): ...this. | |
22286 | (try_combine_chains): Renamed to... | |
22287 | (pcom_worker::try_combine_chains): ...this. | |
22288 | (prepare_initializers_chain): Renamed to... | |
22289 | (pcom_worker::prepare_initializers_chain): ...this. | |
22290 | (prepare_initializers): Renamed to... | |
22291 | (pcom_worker::prepare_initializers): ...this. | |
22292 | (prepare_finalizers_chain): Renamed to... | |
22293 | (pcom_worker::prepare_finalizers_chain): ...this. | |
22294 | (prepare_finalizers): Renamed to... | |
22295 | (pcom_worker::prepare_finalizers): ...this. | |
22296 | (tree_predictive_commoning_loop): Renamed to... | |
22297 | (pcom_worker::tree_predictive_commoning_loop): ...this, adjust | |
22298 | some calls and remove some cleanup code. | |
22299 | (tree_predictive_commoning): Adjusted to use pcom_worker instance. | |
22300 | (static variable looparound_phis): Remove. | |
22301 | (static variable name_expansions): Remove. | |
22302 | ||
22303 | 2021-06-24 Richard Biener <rguenther@suse.de> | |
22304 | ||
22305 | * tree-vect-slp.c (slpg_vertex): New struct. | |
22306 | (vect_slp_build_vertices): Adjust. | |
22307 | (vect_optimize_slp): Likewise. Maintain an outgoing permute | |
22308 | and a materialized one. | |
22309 | ||
22310 | 2021-06-24 Richard Biener <rguenther@suse.de> | |
22311 | ||
22312 | PR tree-optimization/101105 | |
22313 | * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): | |
22314 | Only ignore steps when they are equal or scalar order is preserved. | |
22315 | ||
22316 | 2021-06-24 liuhongt <hongtao.liu@intel.com> | |
22317 | ||
22318 | PR target/98434 | |
22319 | * config/i386/i386-expand.c (ix86_expand_vec_interleave): | |
22320 | Adjust comments for ix86_expand_vecop_qihi2. | |
22321 | (ix86_expand_vecmul_qihi): Renamed to .. | |
22322 | (ix86_expand_vecop_qihi2): Adjust function prototype to | |
22323 | support shift operation, add static to definition. | |
22324 | (ix86_expand_vec_shift_qihi_constant): Add static to definition. | |
22325 | (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and | |
22326 | ix86_expand_vec_shift_qihi_constant. | |
22327 | * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted. | |
22328 | (ix86_expand_vec_shift_qihi_constant): Deleted. | |
22329 | * config/i386/sse.md (VI12_256_512_AVX512VL): New mode | |
22330 | iterator. | |
22331 | (mulv8qi3): Call ix86_expand_vecop_qihi directly, add | |
22332 | condition TARGET_64BIT. | |
22333 | (mul<mode>3): Ditto. | |
22334 | (<insn><mode>3): Ditto. | |
22335 | (vlshr<mode>3): Extend to support avx512 vlshr. | |
22336 | (v<insn><mode>3): New expander for | |
22337 | vashr/vlshr/vashl. | |
22338 | (v<insn>v8qi3): Ditto. | |
22339 | (vashrv8hi3<mask_name>): Renamed to .. | |
22340 | (vashr<mode>3): And extend to support V16QImode for avx512. | |
22341 | (vashrv16qi3): Deleted. | |
22342 | (vashrv2di3<mask_name>): Extend expander to support avx512 | |
22343 | instruction. | |
22344 | ||
22345 | 2021-06-23 Dimitar Dimitrov <dimitar@dinux.eu> | |
22346 | ||
22347 | * doc/lto.texi (Design Overview): Update that slim objects are | |
22348 | the default. | |
22349 | ||
22350 | 2021-06-23 Aaron Sawdey <acsawdey@linux.ibm.com> | |
22351 | ||
22352 | * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out | |
22353 | of OTHER_POWER10_MASKS so it will not be enabled by default. | |
22354 | ||
22355 | 2021-06-23 Richard Biener <rguenther@suse.de> | |
22356 | Martin Jambor <mjambor@suse.cz> | |
22357 | ||
22358 | * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the | |
22359 | param replacement unconditionally. Adjust comment. | |
22360 | ||
22361 | 2021-06-23 Andrew MacLeod <amacleod@redhat.com> | |
22362 | ||
22363 | * Makefile.in (OBJS): Add gimple-range-fold.o | |
22364 | * gimple-range-fold.cc: New. | |
22365 | * gimple-range-fold.h: New. | |
22366 | * gimple-range-gori.cc (gimple_range_calc_op1): Move to here. | |
22367 | (gimple_range_calc_op2): Ditto. | |
22368 | * gimple-range-gori.h: Move prototypes to here. | |
22369 | * gimple-range.cc: Adjust include files. | |
22370 | (fur_source:fur_source): Relocate to gimple-range-fold.cc. | |
22371 | (fur_source::get_operand): Ditto. | |
22372 | (fur_source::get_phi_operand): Ditto. | |
22373 | (fur_source::query_relation): Ditto. | |
22374 | (fur_source::register_relation): Ditto. | |
22375 | (class fur_edge): Ditto. | |
22376 | (fur_edge::fur_edge): Ditto. | |
22377 | (fur_edge::get_operand): Ditto. | |
22378 | (fur_edge::get_phi_operand): Ditto. | |
22379 | (fur_stmt::fur_stmt): Ditto. | |
22380 | (fur_stmt::get_operand): Ditto. | |
22381 | (fur_stmt::get_phi_operand): Ditto. | |
22382 | (fur_stmt::query_relation): Ditto. | |
22383 | (class fur_depend): Relocate to gimple-range-fold.h. | |
22384 | (fur_depend::fur_depend): Relocate to gimple-range-fold.cc. | |
22385 | (fur_depend::register_relation): Ditto. | |
22386 | (fur_depend::register_relation): Ditto. | |
22387 | (class fur_list): Ditto. | |
22388 | (fur_list::fur_list): Ditto. | |
22389 | (fur_list::get_operand): Ditto. | |
22390 | (fur_list::get_phi_operand): Ditto. | |
22391 | (fold_range): Ditto. | |
22392 | (adjust_pointer_diff_expr): Ditto. | |
22393 | (gimple_range_adjustment): Ditto. | |
22394 | (gimple_range_base_of_assignment): Ditto. | |
22395 | (gimple_range_operand1): Ditto. | |
22396 | (gimple_range_operand2): Ditto. | |
22397 | (gimple_range_calc_op1): Relocate to gimple-range-gori.cc. | |
22398 | (gimple_range_calc_op2): Ditto. | |
22399 | (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc. | |
22400 | (fold_using_range::range_of_range_op): Ditto. | |
22401 | (fold_using_range::range_of_address): Ditto. | |
22402 | (fold_using_range::range_of_phi): Ditto. | |
22403 | (fold_using_range::range_of_call): Ditto. | |
22404 | (fold_using_range::range_of_builtin_ubsan_call): Ditto. | |
22405 | (fold_using_range::range_of_builtin_call): Ditto. | |
22406 | (fold_using_range::range_of_cond_expr): Ditto. | |
22407 | (fold_using_range::range_of_ssa_name_with_loop_info): Ditto. | |
22408 | (fold_using_range::relation_fold_and_or): Ditto. | |
22409 | (fold_using_range::postfold_gcond_edges): Ditto. | |
22410 | * gimple-range.h: Add gimple-range-fold.h to include files. Change | |
22411 | GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H. | |
22412 | (gimple_range_handler): Relocate to gimple-range-fold.h. | |
22413 | (gimple_range_ssa_p): Ditto. | |
22414 | (range_compatible_p): Ditto. | |
22415 | (class fur_source): Ditto. | |
22416 | (class fur_stmt): Ditto. | |
22417 | (class fold_using_range): Ditto. | |
22418 | (gimple_range_calc_op1): Relocate to gimple-range-gori.h | |
22419 | (gimple_range_calc_op2): Ditto. | |
22420 | ||
22421 | 2021-06-23 Andrew MacLeod <amacleod@redhat.com> | |
22422 | ||
22423 | PR tree-optimization/101148 | |
22424 | PR tree-optimization/101014 | |
22425 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust. | |
22426 | (ranger_cache::~ranger_cache): Adjust. | |
22427 | (ranger_cache::block_range): Check if propagation disallowed. | |
22428 | (ranger_cache::propagate_cache): Disallow propagation if new value | |
22429 | can't be stored properly. | |
22430 | * gimple-range-cache.h (ranger_cache::m_propfail): New member. | |
22431 | ||
22432 | 2021-06-23 Andrew MacLeod <amacleod@redhat.com> | |
22433 | ||
22434 | * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype. | |
22435 | (sbr_vector::set_bb_range): Return true. | |
22436 | (class sbr_sparse_bitmap): Adjust. | |
22437 | (sbr_sparse_bitmap::set_bb_range): Return value. | |
22438 | (block_range_cache::set_bb_range): Return value. | |
22439 | (ranger_cache::propagate_cache): Use return value to print msg. | |
22440 | * gimple-range-cache.h (class block_range_cache): Adjust. | |
22441 | ||
22442 | 2021-06-23 Andrew MacLeod <amacleod@redhat.com> | |
22443 | ||
22444 | * gimple-range.cc (dump_bb): Use range_on_edge from the cache. | |
22445 | ||
22446 | 2021-06-23 Jeff Law <jeffreyalaw@gmail.com> | |
22447 | ||
22448 | * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn> | |
22449 | so this pattern can be used for test/compare removal. Pass | |
22450 | current insn to compute_logical_op_length and output_logical_op. | |
22451 | * config/h8300/h8300.c (compute_logical_op_cc): Remove. | |
22452 | (h8300_and_costs): Add argument to compute_logical_op_length. | |
22453 | (output_logical_op): Add new argument. Use it to determine if the | |
22454 | condition codes are used and adjust the output accordingly. | |
22455 | (compute_logical_op_length): Add new argument and update length | |
22456 | computations when condition codes are used. | |
22457 | * config/h8300/h8300-protos.h (compute_logical_op_length): Update | |
22458 | prototype. | |
22459 | (output_logical_op): Likewise. | |
22460 | ||
22461 | 2021-06-23 Uroš Bizjak <ubizjak@gmail.com> | |
22462 | ||
22463 | PR target/89021 | |
22464 | * config/i386/i386-expand.c (expand_vec_perm_pshufb): | |
22465 | Handle 64bit modes for TARGET_XOP. Use indirect gen_* functions. | |
22466 | * config/i386/mmx.md (mmx_ppermv64): New insn pattern. | |
22467 | * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ... | |
22468 | * config/i386/sse.md (unspec): ... here. | |
22469 | ||
22470 | 2021-06-23 Martin Liska <mliska@suse.cz> | |
22471 | ||
22472 | PR target/98636 | |
22473 | * optc-save-gen.awk: Put back arm_fp16_format to | |
22474 | checked_options. | |
22475 | ||
22476 | 2021-06-23 Uroš Bizjak <ubizjak@gmail.com> | |
22477 | ||
22478 | PR target/101175 | |
22479 | * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX. | |
22480 | (bsr): Ditto. | |
22481 | (*bsrhi): Remove. | |
22482 | (clz<mode>2): Update RTX pattern for additions. | |
22483 | ||
22484 | 2021-06-23 Jakub Jelinek <jakub@redhat.com> | |
22485 | ||
22486 | PR middle-end/101167 | |
22487 | * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs | |
22488 | and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set. | |
22489 | ||
22490 | 2021-06-22 Sergei Trofimovich <siarheit@google.com> | |
22491 | ||
22492 | * doc/rtl.texi: drop unbalanced parenthesis. | |
22493 | ||
22494 | 2021-06-22 Richard Biener <rguenther@suse.de> | |
22495 | ||
22496 | PR middle-end/101156 | |
22497 | * gimplify.c (gimplify_expr): Remove premature incorrect | |
22498 | optimization. | |
22499 | ||
22500 | 2021-06-22 Jakub Jelinek <jakub@redhat.com> | |
22501 | ||
22502 | PR tree-optimization/101159 | |
22503 | * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some | |
22504 | comment typos. | |
22505 | ||
22506 | 2021-06-22 Jakub Jelinek <jakub@redhat.com> | |
22507 | ||
22508 | PR middle-end/101160 | |
22509 | * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type | |
22510 | clear crtl->return_rtx instead of keeping it referencing a pseudo. | |
22511 | ||
22512 | 2021-06-22 Jakub Jelinek <jakub@redhat.com> | |
22513 | Andrew Pinski <apinski@marvell.com> | |
22514 | ||
22515 | PR tree-optimization/101162 | |
22516 | * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer | |
22517 | types. | |
22518 | ||
22519 | 2021-06-22 Andrew MacLeod <amacleod@redhat.com> | |
22520 | ||
22521 | * range-op.cc (range_relational_tests): New. | |
22522 | (range_op_tests): Call range_relational_tests. | |
22523 | ||
22524 | 2021-06-22 Andrew MacLeod <amacleod@redhat.com> | |
22525 | ||
22526 | * range-op.cc (operator_cast::lhs_op1_relation): New. | |
22527 | (operator_identity::lhs_op1_relation): Mew. | |
22528 | ||
22529 | 2021-06-22 Andrew MacLeod <amacleod@redhat.com> | |
22530 | ||
22531 | * range-op.cc (operator_minus::op1_op2_relation_effect): New. | |
22532 | ||
22533 | 2021-06-22 Andrew MacLeod <amacleod@redhat.com> | |
22534 | ||
22535 | * range-op.cc (operator_plus::lhs_op1_relation): New. | |
22536 | (operator_plus::lhs_op2_relation): New. | |
22537 | ||
22538 | 2021-06-22 Andrew MacLeod <amacleod@redhat.com> | |
22539 | ||
22540 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a | |
22541 | relation_oracle if dominators exist. | |
22542 | (ranger_cache::~ranger_cache): Dispose of oracle. | |
22543 | (ranger_cache::dump_bb): Dump oracle. | |
22544 | * gimple-range.cc (fur_source::fur_source): New. | |
22545 | (fur_source::get_operand): Use mmeber query. | |
22546 | (fur_source::get_phi_operand): Use member_query. | |
22547 | (fur_source::query_relation): New. | |
22548 | (fur_source::register_dependency): Delete. | |
22549 | (fur_source::register_relation): New. | |
22550 | (fur_edge::fur_edge): Adjust. | |
22551 | (fur_edge::get_phi_operand): Fix comment. | |
22552 | (fur_edge::query): Delete. | |
22553 | (fur_stmt::fur_stmt): Adjust. | |
22554 | (fur_stmt::query): Delete. | |
22555 | (fur_depend::fur_depend): Adjust. | |
22556 | (fur_depend::register_relation): New. | |
22557 | (fur_depend::register_relation): New. | |
22558 | (fur_list::fur_list): Adjust. | |
22559 | (fur_list::get_operand): Use member query. | |
22560 | (fold_using_range::range_of_range_op): Process and query relations. | |
22561 | (fold_using_range::range_of_address): Adjust dependency call. | |
22562 | (fold_using_range::range_of_phi): Ditto. | |
22563 | (gimple_ranger::gimple_ranger): New. Use ranger_ache oracle. | |
22564 | (fold_using_range::relation_fold_and_or): New. | |
22565 | (fold_using_range::postfold_gcond_edges): New. | |
22566 | * gimple-range.h (class gimple_ranger): Adjust. | |
22567 | (class fur_source): Adjust members. | |
22568 | (class fur_stmt): Ditto. | |
22569 | (class fold_using_range): Ditto. | |
22570 | ||
22571 | 2021-06-22 Andrew MacLeod <amacleod@redhat.com> | |
22572 | ||
22573 | * range-op.cc (range_operator::wi_fold): Apply relation effect. | |
22574 | (range_operator::fold_range): Adjust and apply relation effect. | |
22575 | (*::fold_range): Add relation parameters. | |
22576 | (*::op1_range): Ditto. | |
22577 | (*::op2_range): Ditto. | |
22578 | (range_operator::lhs_op1_relation): New. | |
22579 | (range_operator::lhs_op2_relation): New. | |
22580 | (range_operator::op1_op2_relation): New. | |
22581 | (range_operator::op1_op2_relation_effect): New. | |
22582 | (relop_early_resolve): New. | |
22583 | (operator_equal::op1_op2_relation): New. | |
22584 | (operator_equal::fold_range): Call relop_early_resolve. | |
22585 | (operator_not_equal::op1_op2_relation): New. | |
22586 | (operator_not_equal::fold_range): Call relop_early_resolve. | |
22587 | (operator_lt::op1_op2_relation): New. | |
22588 | (operator_lt::fold_range): Call relop_early_resolve. | |
22589 | (operator_le::op1_op2_relation): New. | |
22590 | (operator_le::fold_range): Call relop_early_resolve. | |
22591 | (operator_gt::op1_op2_relation): New. | |
22592 | (operator_gt::fold_range): Call relop_early_resolve. | |
22593 | (operator_ge::op1_op2_relation): New. | |
22594 | (operator_ge::fold_range): Call relop_early_resolve. | |
22595 | * range-op.h (class range_operator): Adjust parameters and methods. | |
22596 | ||
22597 | 2021-06-22 Andrew MacLeod <amacleod@redhat.com> | |
22598 | ||
22599 | * Makefile.in (OBJS): Add value-relation.o. | |
22600 | * gimple-range.h: Adjust include files. | |
22601 | * tree-data-ref.c: Adjust include file order. | |
22602 | * value-query.cc (range_query::get_value_range): Default to no oracle. | |
22603 | (range_query::query_relation): New. | |
22604 | (range_query::query_relation): New. | |
22605 | * value-query.h (class range_query): Adjust. | |
22606 | * value-relation.cc: New. | |
22607 | * value-relation.h: New. | |
22608 | ||
22609 | 2021-06-22 Richard Biener <rguenther@suse.de> | |
22610 | ||
22611 | PR tree-optimization/101151 | |
22612 | * tree-ssa-sink.c (statement_sink_location): Expand irreducible | |
22613 | region check. | |
22614 | ||
22615 | 2021-06-22 Jojo R <rjiejie@linux.alibaba.com> | |
22616 | ||
22617 | * config/riscv/riscv.c (thead_c906_tune_info): New. | |
22618 | (riscv_tune_info_table): Use new tune. | |
22619 | ||
22620 | 2021-06-22 Richard Biener <rguenther@suse.de> | |
22621 | ||
22622 | PR tree-optimization/101158 | |
22623 | * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand | |
22624 | checking after checking for matching operation. | |
22625 | ||
22626 | 2021-06-22 Richard Biener <rguenther@suse.de> | |
22627 | ||
22628 | PR tree-optimization/101159 | |
22629 | * tree-vect-patterns.c (vect_recog_popcount_pattern): Add | |
22630 | missing NULL vectype check. | |
22631 | ||
22632 | 2021-06-22 Richard Biener <rguenther@suse.de> | |
22633 | ||
22634 | PR tree-optimization/101154 | |
22635 | * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access. | |
22636 | ||
22637 | 2021-06-22 Jakub Jelinek <jakub@redhat.com> | |
22638 | ||
22639 | PR target/11877 | |
22640 | * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare. | |
22641 | * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable. | |
22642 | * config/i386/i386.c (ix86_expand_prologue): Clear it. | |
22643 | * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx): | |
22644 | Remove "" from match_operand. Emit new insns using emit_move_insn and | |
22645 | set ix86_last_zero_store_uid to INSN_UID of the last store. | |
22646 | Add peephole2s for 1/2/4 stores of const0_rtx following previous | |
22647 | successful peep2s. | |
22648 | ||
22649 | 2021-06-22 Martin Liska <mliska@suse.cz> | |
22650 | ||
22651 | * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format | |
22652 | was changed. | |
22653 | ||
22654 | 2021-06-22 Martin Liska <mliska@suse.cz> | |
22655 | ||
22656 | * gcov-io.h: Remove padding entries. | |
22657 | ||
22658 | 2021-06-22 liuhongt <hongtao.liu@intel.com> | |
22659 | ||
22660 | PR tree-optimization/97770 | |
22661 | * tree-vect-patterns.c (vect_recog_popcount_pattern): | |
22662 | New. | |
22663 | (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern. | |
22664 | ||
22665 | 2021-06-22 liuhongt <hongtao.liu@intel.com> | |
22666 | ||
22667 | PR target/100267 | |
22668 | * config/i386/i386-builtin.def (BDESC): Adjust builtin name. | |
22669 | * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to .. | |
22670 | (expand<mode>_mask): this .. | |
22671 | (*expand<mode>_mask): New pre_reload splitter to transform | |
22672 | v{,p}expand* to vmov* when mask is zero, all ones, or has all | |
22673 | ones in it's lower part, otherwise still generate | |
22674 | v{,p}expand*. | |
22675 | ||
22676 | 2021-06-22 liuhongt <hongtao.liu@intel.com> | |
22677 | ||
22678 | PR target/100310 | |
22679 | * config/i386/i386-expand.c | |
22680 | (ix86_expand_special_args_builtin): Keep constm1_operand only | |
22681 | if it satisfies insn's operand predicate. | |
22682 | ||
22683 | 2021-06-21 Jason Merrill <jason@redhat.com> | |
22684 | ||
22685 | PR target/88529 | |
22686 | * df-scan.c (df_ref_record): Check that regno < endregno. | |
22687 | * function.c (assign_parms, expand_function_end): Do nothing with a | |
22688 | TYPE_EMPTY_P result. | |
22689 | ||
22690 | 2021-06-21 Richard Biener <rguenther@suse.de> | |
22691 | ||
22692 | PR tree-optimization/101120 | |
22693 | * tree-vect-data-refs.c (bump_vector_ptr): Fold the | |
22694 | built increment. | |
22695 | * tree-vect-slp.c (vect_transform_slp_perm_load): Add | |
22696 | DR chain DCE capability. | |
22697 | * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust. | |
22698 | * tree-vect-stmts.c (vectorizable_load): Remove unused | |
22699 | loads in the DR chain for SLP. | |
22700 | ||
22701 | 2021-06-21 Jakub Jelinek <jakub@redhat.com> | |
22702 | ||
22703 | PR inline-asm/100785 | |
22704 | * gimplify.c (gimplify_asm_expr): Don't diagnose errors if | |
22705 | output or input operands were already error_mark_node. | |
22706 | * cfgexpand.c (expand_asm_stmt): If errors are emitted, | |
22707 | remove all inputs, outputs and clobbers from the asm and | |
22708 | set template to "". | |
22709 | ||
22710 | 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
22711 | ||
22712 | * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b. | |
22713 | (vceq_s16): Likewise. | |
22714 | (vceq_s32): Likewise. | |
22715 | (vceq_u8): Likewise. | |
22716 | (vceq_u16): Likewise. | |
22717 | (vceq_u32): Likewise. | |
22718 | (vceq_p8): Likewise. | |
22719 | (vceqq_s8): Likewise. | |
22720 | (vceqq_s16): Likewise. | |
22721 | (vceqq_s32): Likewise. | |
22722 | (vceqq_u8): Likewise. | |
22723 | (vceqq_u16): Likewise. | |
22724 | (vceqq_u32): Likewise. | |
22725 | (vceqq_p8): Likewise. | |
22726 | (vceq_f32): Gate __a == __b on __FAST_MATH__. | |
22727 | (vceqq_f32): Likewise. | |
22728 | (vceq_f16): Likewise. | |
22729 | (vceqq_f16): Likewise. | |
22730 | ||
22731 | 2021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> | |
22732 | ||
22733 | PR target/97906 | |
22734 | * config/arm/iterators.md (NEON_VACMP): Remove. | |
22735 | * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE | |
22736 | iterator. | |
22737 | (neon_vca<cmp_op><mode>_insn): Likewise. | |
22738 | (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of | |
22739 | NEON_VACMP. | |
22740 | ||
22741 | 2021-06-21 Richard Biener <rguenther@suse.de> | |
22742 | ||
22743 | PR tree-optimization/101121 | |
22744 | * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally | |
22745 | when we just lack a stmt with the desired op when doing permutation. | |
22746 | (vect_build_slp_tree): When caching a failed SLP build attempt | |
22747 | assert that at least one lane is marked as not matching. | |
22748 | ||
22749 | 2021-06-21 liuhongt <hongtao.liu@intel.com> | |
22750 | ||
22751 | PR target/101142 | |
22752 | * config/i386/i386.md: (*anddi_1): Disparage slightly the mask | |
22753 | register alternative. | |
22754 | (*and<mode>_1): Ditto. | |
22755 | (*andqi_1): Ditto. | |
22756 | (*andn<mode>_1): Ditto. | |
22757 | (*<code><mode>_1): Ditto. | |
22758 | (*<code>qi_1): Ditto. | |
22759 | (*one_cmpl<mode>2_1): Ditto. | |
22760 | (*one_cmplsi2_1_zext): Ditto. | |
22761 | (*one_cmplqi2_1): Ditto. | |
22762 | * config/i386/i386.c (x86_order_regs_for_local_alloc): Change | |
22763 | the order of mask registers to be before general registers. | |
22764 | ||
22765 | 2021-06-21 Roger Sayle <roger@nextmovesoftware.com> | |
22766 | ||
22767 | PR target/11877 | |
22768 | * config/i386/i386.md: New define_peephole2s to shrink writing | |
22769 | 1, 2 or 4 consecutive zeros to memory when optimizing for size. | |
22770 | ||
22771 | 2021-06-18 Jeff Law <jeffreyalaw@gmail.com> | |
22772 | ||
22773 | * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF. | |
22774 | * config/h8300/logical.md (<code><mode>3 logcial expander): Generate | |
22775 | more efficient code when the source can be trivially simplified. | |
22776 | ||
22777 | 2021-06-18 Andrew MacLeod <amacleod@redhat.com> | |
22778 | ||
22779 | * gimple-range-cache.cc (ranger_cache::range_of_def): Calculate | |
22780 | a range if global is not available. | |
22781 | (ranger_cache::entry_range): Fallback to range_of_def. | |
22782 | * gimple-range-cache.h (range_of_def): Adjust prototype. | |
22783 | ||
22784 | 2021-06-18 Andrew MacLeod <amacleod@redhat.com> | |
22785 | ||
22786 | PR tree-optimization/101014 | |
22787 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor | |
22788 | value list. | |
22789 | (ranger_cache::~ranger_cache): Ditto. | |
22790 | (ranger_cache::enable_new_values): Delete. | |
22791 | (ranger_cache::push_poor_value): Delete. | |
22792 | (ranger_cache::range_of_def): Remove poor value processing. | |
22793 | (ranger_cache::entry_range): Ditto. | |
22794 | (ranger_cache::fill_block_cache): Ditto. | |
22795 | * gimple-range-cache.h (class ranger_cache): Remove poor value members. | |
22796 | * gimple-range.cc (gimple_ranger::range_of_expr): Remove call. | |
22797 | * gimple-range.h (class gimple_ranger): Adjust. | |
22798 | ||
22799 | 2021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
22800 | ||
22801 | PR target/100856 | |
22802 | * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function | |
22803 | derived from arm_canon_arch. | |
22804 | (arm_canon_arch_option): Call it. | |
22805 | (arm_canon_arch_multilib_option): New function. | |
22806 | * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup. | |
22807 | * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype. | |
22808 | (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro. | |
22809 | (MULTILIB_ARCH_CANONICAL_SPECS): New macro. | |
22810 | (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS. | |
22811 | * config/arm/arm.opt (mlibarch): New option. | |
22812 | * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use | |
22813 | of march on RHS with mlibarch. | |
22814 | ||
22815 | 2021-06-18 Marcel Vollweiler <marcel@codesourcery.com> | |
22816 | ||
22817 | * config.in: Regenerate. | |
22818 | * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler | |
22819 | functions. | |
22820 | * configure: Regenerate. | |
22821 | * configure.ac: Fix for global_load assembler functions. | |
22822 | ||
22823 | 2021-06-18 Richard Biener <rguenther@suse.de> | |
22824 | ||
22825 | PR tree-optimization/101112 | |
22826 | * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition | |
22827 | to lookup a pattern stmt def. | |
22828 | ||
22829 | 2021-06-18 Jakub Jelinek <jakub@redhat.com> | |
22830 | ||
22831 | PR middle-end/101062 | |
22832 | * stor-layout.c (finish_bitfield_layout): Don't add bitfield | |
22833 | representatives in QUAL_UNION_TYPE. | |
22834 | ||
22835 | 2021-06-18 Andrew Pinski <apinski@marvell.com> | |
22836 | ||
22837 | * tree-ssa-phiopt.c (replace_phi_edge_with_variable): | |
22838 | Add counting of how many times it is done. | |
22839 | (factor_out_conditional_conversion): Likewise. | |
22840 | (match_simplify_replacement): Likewise. | |
22841 | (value_replacement): Likewise. | |
22842 | (spaceship_replacement): Likewise. | |
22843 | (cond_store_replacement): Likewise. | |
22844 | (cond_if_else_store_replacement_1): Likewise. | |
22845 | (hoist_adjacent_loads): Likewise. | |
22846 | ||
22847 | 2021-06-18 Andrew Pinski <apinski@marvell.com> | |
22848 | ||
22849 | * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset | |
22850 | types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR. | |
22851 | (verify_gimple_assign_binary): Reject point and offset types on | |
22852 | MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR, | |
22853 | FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR, | |
22854 | FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR. | |
22855 | ||
22856 | 2021-06-18 Michael Meissner <meissner@linux.ibm.com> | |
22857 | ||
22858 | * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA | |
22859 | 3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions. | |
22860 | * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator): | |
22861 | New insns. | |
22862 | ||
22863 | 2021-06-17 Aaron Sawdey <acsawdey@linux.ibm.com> | |
22864 | ||
22865 | * config/rs6000/genfusion.pl (gen_logical_addsubf): Add | |
22866 | earlyclobber to alts 0/1. | |
22867 | (gen_addadd): Add earlyclobber to alts 0/1. | |
22868 | * config/rs6000/fusion.md: Regenerate file. | |
22869 | ||
22870 | 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> | |
22871 | ||
22872 | * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec. | |
22873 | ||
22874 | 2021-06-17 Andrew MacLeod <amacleod@redhat.com> | |
22875 | ||
22876 | * gimple-range-cache.cc: Comment cleanups. | |
22877 | * gimple-range-gori.cc: Comment cleanups. | |
22878 | * gimple-range.cc: Comment/spacing cleanups | |
22879 | * value-range.h: Comment cleanups. | |
22880 | ||
22881 | 2021-06-17 H.J. Lu <hjl.tools@gmail.com> | |
22882 | ||
22883 | PR target/100704 | |
22884 | * calls.c (expand_call): Replace PUSH_ARGS with | |
22885 | targetm.calls.push_argument (0). | |
22886 | (emit_library_call_value_1): Likewise. | |
22887 | * defaults.h (PUSH_ARGS): Removed. | |
22888 | (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with | |
22889 | targetm.calls.push_argument (0). | |
22890 | * expr.c (block_move_libcall_safe_for_call_parm): Likewise. | |
22891 | (emit_push_insn): Pass the number bytes to push to | |
22892 | targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0. | |
22893 | * hooks.c (hook_bool_uint_true): New. | |
22894 | * hooks.h (hook_bool_uint_true): Likewise. | |
22895 | * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with | |
22896 | targetm.calls.push_argument (0). | |
22897 | * target.def (push_argument): Add a targetm.calls hook. | |
22898 | * targhooks.c (default_push_argument): New. | |
22899 | * targhooks.h (default_push_argument): Likewise. | |
22900 | * config/bpf/bpf.h (PUSH_ARGS): Removed. | |
22901 | * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New. | |
22902 | * config/cr16/cr16.h (PUSH_ARGS): Removed. | |
22903 | * config/i386/i386.c (ix86_push_argument): New. | |
22904 | (TARGET_PUSH_ARGUMENT): Likewise. | |
22905 | * config/i386/i386.h (PUSH_ARGS): Removed. | |
22906 | * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New. | |
22907 | * config/m32c/m32c.h (PUSH_ARGS): Removed. | |
22908 | * config/nios2/nios2.h (PUSH_ARGS): Likewise. | |
22909 | * config/pru/pru.h (PUSH_ARGS): Likewise. | |
22910 | * doc/tm.texi.in: Remove PUSH_ARGS documentation. Add | |
22911 | TARGET_PUSH_ARGUMENT hook. | |
22912 | * doc/tm.texi: Regenerated. | |
22913 | ||
22914 | 2021-06-17 Uroš Bizjak <ubizjak@gmail.com> | |
22915 | ||
22916 | PR target/97194 | |
22917 | * config/i386/i386-expand.c (expand_vector_set_var): | |
22918 | Handle V2FS mode remapping. Pass TARGET_MMX_WITH_SSE to | |
22919 | ix86_expand_vector_init_duplicate. | |
22920 | (ix86_expand_vector_init_duplicate): Emit insv_1 for | |
22921 | QImode for !TARGET_PARTIAL_REG_STALL. | |
22922 | * config/i386/predicates.md (vec_setm_mmx_operand): New predicate. | |
22923 | * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand | |
22924 | as operand 2 predicate. Call ix86_expand_vector_set_var | |
22925 | for non-constant index operand. | |
22926 | (vec_setv2si): Ditto. | |
22927 | (vec_setv4hi): Ditto. | |
22928 | (vec_setv8qi): ditto. | |
22929 | ||
22930 | 2021-06-17 Aldy Hernandez <aldyh@redhat.com> | |
22931 | ||
22932 | PR tree-optimization/100790 | |
22933 | * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz | |
22934 | code. | |
22935 | ||
22936 | 2021-06-17 Martin Liska <mliska@suse.cz> | |
22937 | ||
22938 | * doc/invoke.texi: Use consistently -O1 instead of -O. | |
22939 | ||
22940 | 2021-06-17 Martin Liska <mliska@suse.cz> | |
22941 | ||
22942 | * gcov-io.h: Update documentation entry about string format. | |
22943 | ||
22944 | 2021-06-17 Marius Hillenbrand <mhillen@linux.ibm.com> | |
22945 | ||
22946 | PR target/100871 | |
22947 | * config/s390/vecintrin.h (vec_doublee): Fix to use | |
22948 | __builtin_s390_vflls. | |
22949 | (vec_floate): Fix to use __builtin_s390_vflrd. | |
22950 | ||
22951 | 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> | |
22952 | ||
22953 | * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>. | |
22954 | * dominance.h (get_dominated_to_depth): Likewise. | |
22955 | (get_all_dominated_blocks): Likewise. | |
22956 | * cfgcleanup.c (delete_unreachable_blocks): Adjust. | |
22957 | * gcse.c (hoist_code): Likewise. | |
22958 | * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise. | |
22959 | * tree-parloops.c (oacc_entry_exit_ok): Likewise. | |
22960 | * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. | |
22961 | * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise. | |
22962 | ||
22963 | 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> | |
22964 | ||
22965 | * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>. | |
22966 | * dominance.h (get_dominated_by_region): Likewise. | |
22967 | * tree-cfg.c (gimple_duplicate_sese_region): Adjust. | |
22968 | (gimple_duplicate_sese_tail): Likewise. | |
22969 | (move_sese_region_to_fn): Likewise. | |
22970 | ||
22971 | 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> | |
22972 | ||
22973 | * dominance.c (get_dominated_by): Return auto_vec<basic_block>. | |
22974 | * dominance.h (get_dominated_by): Likewise. | |
22975 | * auto-profile.c (afdo_find_equiv_class): Adjust. | |
22976 | * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise. | |
22977 | * loop-unroll.c (unroll_loop_runtime_iterations): Likewise. | |
22978 | * tree-cfg.c (test_linear_chain): Likewise. | |
22979 | (test_diamond): Likewise. | |
22980 | ||
22981 | 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> | |
22982 | ||
22983 | * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>. | |
22984 | * cfgloopanal.c (get_loop_hot_path): Likewise. | |
22985 | * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise. | |
22986 | ||
22987 | 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> | |
22988 | ||
22989 | * cgraph.c (cgraph_node::collect_callers): Return | |
22990 | auto_vec<cgraph_edge *>. | |
22991 | * cgraph.h (cgraph_node::collect_callers): Likewise. | |
22992 | * ipa-cp.c (create_specialized_node): Adjust. | |
22993 | (decide_about_value): Likewise. | |
22994 | (decide_whether_version_node): Likewise. | |
22995 | * ipa-sra.c (process_isra_node_results): Likewise. | |
22996 | ||
22997 | 2021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> | |
22998 | ||
22999 | * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec. | |
23000 | (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy | |
23001 | constructor. | |
23002 | (auto_vec<T, 0>::operator=): Define move assignment and delete copy | |
23003 | assignment. | |
23004 | ||
23005 | 2021-06-17 Aldy Hernandez <aldyh@redhat.com> | |
23006 | ||
23007 | * gimple-range.cc (debug_seed_ranger): New. | |
23008 | (dump_ranger): New. | |
23009 | (debug_ranger): New. | |
23010 | ||
23011 | 2021-06-17 Richard Biener <rguenther@suse.de> | |
23012 | ||
23013 | PR tree-optimization/54400 | |
23014 | * tree-vectorizer.h (enum slp_instance_kind): Add | |
23015 | slp_inst_kind_bb_reduc. | |
23016 | (reduction_fn_for_scalar_code): Declare. | |
23017 | * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence): | |
23018 | Check SLP_INSTANCE_KIND instead of looking at the | |
23019 | representative. | |
23020 | (vect_slp_analyze_instance_alignment): Likewise. | |
23021 | * tree-vect-loop.c (reduction_fn_for_scalar_code): Export. | |
23022 | * tree-vect-slp.c (vect_slp_linearize_chain): Split out | |
23023 | chain linearization from vect_build_slp_tree_2 and generalize | |
23024 | for the use of BB reduction vectorization. | |
23025 | (vect_build_slp_tree_2): Adjust accordingly. | |
23026 | (vect_optimize_slp): Elide permutes at the root of BB reduction | |
23027 | instances. | |
23028 | (vectorizable_bb_reduc_epilogue): New function. | |
23029 | (vect_slp_prune_covered_roots): Likewise. | |
23030 | (vect_slp_analyze_operations): Use them. | |
23031 | (vect_slp_check_for_constructors): Recognize associatable | |
23032 | chains for BB reduction vectorization. | |
23033 | (vectorize_slp_instance_root_stmt): Generate code for the | |
23034 | BB reduction epilogue. | |
23035 | ||
23036 | 2021-06-17 Andrew MacLeod <amacleod@redhat.com> | |
23037 | ||
23038 | * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with | |
23039 | may_recompute_p. | |
23040 | (gori_compute::may_recompute_p): New. | |
23041 | (gori_compute::outgoing_edge_range_p): Perform recomputations. | |
23042 | * gimple-range-gori.h (class gori_compute): Add prototype. | |
23043 | ||
23044 | 2021-06-17 Andrew MacLeod <amacleod@redhat.com> | |
23045 | ||
23046 | * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return | |
23047 | true when a range can be calculated. | |
23048 | * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p. | |
23049 | ||
23050 | 2021-06-16 Martin Sebor <msebor@redhat.com> | |
23051 | ||
23052 | * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete): | |
23053 | Correct documented defaults. | |
23054 | ||
23055 | 2021-06-16 Andrew MacLeod <amacleod@redhat.com> | |
23056 | ||
23057 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize | |
23058 | m_new_value_p directly. | |
23059 | ||
23060 | 2021-06-16 Uroš Bizjak <ubizjak@gmail.com> | |
23061 | ||
23062 | PR target/89021 | |
23063 | * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv): | |
23064 | Handle 64bit modes for TARGET_SSE4_1. | |
23065 | (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3. | |
23066 | (expand_vec_perm_even_odd_pack): Handle V4HI mode. | |
23067 | (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via | |
23068 | expand_vec_perm_pshufb2 for TARGET_SSSE3 and via | |
23069 | expand_vec_perm_even_odd_pack for TARGET_SSE4_1. | |
23070 | * config/i386/mmx.md (mmx_packusdw): New insn pattern. | |
23071 | ||
23072 | 2021-06-16 Jonathan Wright <jonathan.wright@arm.com> | |
23073 | ||
23074 | * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>): | |
23075 | Change to an expander that emits the correct instruction | |
23076 | depending on endianness. | |
23077 | (aarch64_<sur><addsub>hn<mode>_insn_le): Define. | |
23078 | (aarch64_<sur><addsub>hn<mode>_insn_be): Define. | |
23079 | ||
23080 | 2021-06-16 Jonathan Wright <jonathan.wright@arm.com> | |
23081 | ||
23082 | * config/aarch64/aarch64-simd-builtins.def: Split generator | |
23083 | for aarch64_<su>qmovn builtins into scalar and vector | |
23084 | variants. | |
23085 | * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le): | |
23086 | Define. | |
23087 | (aarch64_<su>qmovn<mode>_insn_be): Define. | |
23088 | (aarch64_<su>qmovn<mode>): Split into scalar and vector | |
23089 | variants. Change vector variant to an expander that emits the | |
23090 | correct instruction depending on endianness. | |
23091 | ||
23092 | 2021-06-16 Jonathan Wright <jonathan.wright@arm.com> | |
23093 | ||
23094 | * config/aarch64/aarch64-simd-builtins.def: Split generator | |
23095 | for aarch64_sqmovun builtins into scalar and vector variants. | |
23096 | * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>): | |
23097 | Split into scalar and vector variants. Change vector variant | |
23098 | to an expander that emits the correct instruction depending | |
23099 | on endianness. | |
23100 | (aarch64_sqmovun<mode>_insn_le): Define. | |
23101 | (aarch64_sqmovun<mode>_insn_be): Define. | |
23102 | ||
23103 | 2021-06-16 Jonathan Wright <jonathan.wright@arm.com> | |
23104 | ||
23105 | * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): | |
23106 | Define - modeling zero-high-half semantics. | |
23107 | (aarch64_xtn<mode>): Change to an expander that emits the | |
23108 | appropriate instruction depending on endianness. | |
23109 | (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half | |
23110 | semantics. | |
23111 | (aarch64_xtn2<mode>_le): Rename to... | |
23112 | (aarch64_xtn2<mode>_insn_le): This. | |
23113 | (aarch64_xtn2<mode>_be): Rename to... | |
23114 | (aarch64_xtn2<mode>_insn_be): This. | |
23115 | (vec_pack_trunc_<mode>): Emit truncation instruction instead | |
23116 | of aarch64_xtn. | |
23117 | * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode | |
23118 | attribute iterator. | |
23119 | ||
23120 | 2021-06-16 Martin Jambor <mjambor@suse.cz> | |
23121 | ||
23122 | PR tree-optimization/100453 | |
23123 | * tree-sra.c (create_access): Disqualify any const candidates | |
23124 | which are written to. | |
23125 | (sra_modify_expr): Do not store sub-replacements back to a const base. | |
23126 | (handle_unscalarized_data_in_subtree): Likewise. | |
23127 | (sra_modify_assign): Likewise. Earlier, use TREE_READONLy test | |
23128 | instead of constant_decl_p. | |
23129 | ||
23130 | 2021-06-16 Jakub Jelinek <jakub@redhat.com> | |
23131 | ||
23132 | PR middle-end/101062 | |
23133 | * stor-layout.c (finish_bitfield_representative): For fields in unions | |
23134 | assume nextf is always NULL. | |
23135 | (finish_bitfield_layout): Compute bit field representatives also in | |
23136 | unions, but handle it as if each bitfield was the only field in the | |
23137 | aggregate. | |
23138 | ||
23139 | 2021-06-16 Richard Biener <rguenther@suse.de> | |
23140 | ||
23141 | PR tree-optimization/101088 | |
23142 | * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for | |
23143 | supported refs on edges. Do not assert same ref but | |
23144 | different kind stores are unsuported but mark them so. | |
23145 | (hoist_memory_references): Only look for supported refs | |
23146 | on exits. | |
23147 | ||
23148 | 2021-06-16 Roger Sayle <roger@nextmovesoftware.com> | |
23149 | ||
23150 | PR rtl-optimization/46235 | |
23151 | * config/i386/i386.md: New define_split for bt followed by cmov. | |
23152 | (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc. | |
23153 | (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc. | |
23154 | (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed | |
23155 | by setnc with zero extension. | |
23156 | ||
23157 | 2021-06-16 Richard Biener <rguenther@suse.de> | |
23158 | ||
23159 | PR tree-optimization/101083 | |
23160 | * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get | |
23161 | vectype as argument. | |
23162 | (vect_build_slp_tree_2): Adjust. | |
23163 | ||
23164 | 2021-06-15 Martin Sebor <msebor@redhat.com> | |
23165 | ||
23166 | PR middle-end/100876 | |
23167 | * builtins.c: (gimple_call_return_array): Account for size_t | |
23168 | mangling as either unsigned int or unsigned long | |
23169 | ||
23170 | 2021-06-15 Jeff Law <jeffreyalaw@gmail.com> | |
23171 | ||
23172 | * compare-elim.c (try_eliminate_compare): Run DCE to clean things | |
23173 | up before eliminating comparisons. | |
23174 | ||
23175 | 2021-06-15 Aldy Hernandez <aldyh@redhat.com> | |
23176 | ||
23177 | * range-op.cc (operator_bitwise_or::wi_fold): Make sure | |
23178 | nonzero|X is nonzero. | |
23179 | (range_op_bitwise_and_tests): Add tests for above. | |
23180 | ||
23181 | 2021-06-15 Carl Love <cel@us.ibm.com> | |
23182 | ||
23183 | PR target/101022 | |
23184 | * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the | |
23185 | enum definition. | |
23186 | (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2 | |
23187 | definitions. | |
23188 | ||
23189 | 2021-06-15 Tobias Burnus <tobias@codesourcery.com> | |
23190 | ||
23191 | PR fortran/92568 | |
23192 | * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET. | |
23193 | (struct gimplify_omp_ctx): Extend defaultmap array by one. | |
23194 | (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET]. | |
23195 | (omp_notice_variable): Update type classification for Fortran. | |
23196 | (gimplify_scan_omp_clauses): Update calls for new argument; handle | |
23197 | GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY. | |
23198 | * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument. | |
23199 | * langhooks.c (lhd_omp_scalar_p): Likewise. | |
23200 | (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New. | |
23201 | (LANG_HOOKS_DECLS): Add them. | |
23202 | * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update | |
23203 | omp_scalar_p pointer type to include the new bool argument. | |
23204 | ||
23205 | 2021-06-15 David Malcolm <dmalcolm@redhat.com> | |
23206 | ||
23207 | * doc/analyzer.texi | |
23208 | (Special Functions for Debugging the Analyzer): Add | |
23209 | __analyzer_dump_capacity. | |
23210 | ||
23211 | 2021-06-15 Jakub Jelinek <jakub@redhat.com> | |
23212 | ||
23213 | PR target/101046 | |
23214 | * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR, | |
23215 | case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode. | |
23216 | ||
23217 | 2021-06-15 Richard Biener <rguenther@suse.de> | |
23218 | ||
23219 | * cfgloopanal.c (mark_irreducible_loops): Use a dominance | |
23220 | check to identify loop latches. | |
23221 | * cfgloop.c (verify_loop_structure): Likewise. | |
23222 | * loop-init.c (apply_loop_flags): Allow marked irreducible | |
23223 | regions even with multiple latches. | |
23224 | * predict.c (rebuild_frequencies): Simplify. | |
23225 | ||
23226 | 2021-06-15 Richard Biener <rguenther@suse.de> | |
23227 | ||
23228 | * tree-ssa-threadupdate.c | |
23229 | (jump_thread_path_registry::mark_threaded_blocks): Assert we | |
23230 | have marked irreducible regions. | |
23231 | ||
23232 | 2021-06-14 Martin Sebor <msebor@redhat.com> | |
23233 | ||
23234 | PR c++/100876 | |
23235 | * builtins.c (gimple_call_return_array): Check for attribute fn spec. | |
23236 | Handle calls to placement new. | |
23237 | (ndecl_dealloc_argno): Avoid placement delete. | |
23238 | ||
23239 | 2021-06-14 Peter Bergner <bergner@linux.ibm.com> | |
23240 | ||
23241 | PR target/100777 | |
23242 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use | |
23243 | create_tmp_reg_or_ssa_name(). | |
23244 | ||
23245 | 2021-06-14 Andrew MacLeod <amacleod@redhat.com> | |
23246 | ||
23247 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust. | |
23248 | (ranger_cache::enable_new_values): Set to specified value and | |
23249 | return the old value. | |
23250 | (ranger_cache::disable_new_values): Delete. | |
23251 | (ranger_cache::fill_block_cache): Disable non 1st order derived | |
23252 | poor values. | |
23253 | * gimple-range-cache.h (ranger_cache): Adjust prototypes. | |
23254 | * gimple-range.cc (gimple_ranger::range_of_expr): Adjust. | |
23255 | ||
23256 | 2021-06-14 Uroš Bizjak <ubizjak@gmail.com> | |
23257 | ||
23258 | PR target/101058 | |
23259 | * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): | |
23260 | Return true early when testing with V2HImode. | |
23261 | * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1. | |
23262 | ||
23263 | 2021-06-14 Christophe Lyon <christophe.lyon@linaro.org> | |
23264 | ||
23265 | * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern. | |
23266 | (mve_vec_unpack<US>_hi_<mode>): New pattern. | |
23267 | (@mve_vec_pack_trunc_lo_<mode>): New pattern. | |
23268 | (mve_vmovntq_<supf><mode>): Prefix with '@'. | |
23269 | * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to | |
23270 | vec-common.md. | |
23271 | (vec_unpack<US>_lo_<mode>): Likewise. | |
23272 | (vec_pack_trunc_<mode>): Rename to | |
23273 | neon_quad_vec_pack_trunc_<mode>. | |
23274 | * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New | |
23275 | pattern. | |
23276 | (vec_unpack<US>_lo_<mode>): New. | |
23277 | (vec_pack_trunc_<mode>): New. | |
23278 | ||
23279 | 2021-06-14 Richard Biener <rguenther@suse.de> | |
23280 | ||
23281 | PR tree-optimization/100934 | |
23282 | * tree-ssa-dom.c (pass_dominator::execute): Properly | |
23283 | mark irreducible regions. | |
23284 | ||
23285 | 2021-06-14 Martin Liska <mliska@suse.cz> | |
23286 | ||
23287 | * doc/invoke.texi: Put r{...} on the same line as @item. | |
23288 | ||
23289 | 2021-06-14 Martin Liska <mliska@suse.cz> | |
23290 | ||
23291 | * doc/invoke.texi: Add missing newline. | |
23292 | ||
23293 | 2021-06-14 Martin Liska <mliska@suse.cz> | |
23294 | ||
23295 | * doc/invoke.texi: Remove '+' charasters. | |
23296 | ||
23297 | 2021-06-14 Claudiu Zissulescu <claziss@synopsys.com> | |
23298 | ||
23299 | * config.gcc (arc): Add support for with_cpu option. | |
23300 | * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu. | |
23301 | ||
23302 | 2021-06-14 Richard Biener <rguenther@suse.de> | |
23303 | ||
23304 | PR tree-optimization/101031 | |
23305 | * tree-ssa-strlen.c (maybe_invalidate): Increment max_size | |
23306 | instead of size when accounting for a possibly string | |
23307 | terminating nul. | |
23308 | ||
23309 | 2021-06-14 Martin Liska <mliska@suse.cz> | |
23310 | ||
23311 | * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[]. | |
23312 | ||
23313 | 2021-06-14 Aldy Hernandez <aldyh@redhat.com> | |
23314 | ||
23315 | * value-query.cc (gimple_range_global): Call get_range_global | |
23316 | if called after inlining. | |
23317 | ||
23318 | 2021-06-13 Uroš Bizjak <ubizjak@gmail.com> | |
23319 | ||
23320 | PR target/101021 | |
23321 | * config/i386/i386-expand.c (expand_vec_perm_pshufb): | |
23322 | Emit constant permutation insn directly from here. | |
23323 | ||
23324 | 2021-06-13 Trevor Saunders <tbsaunde@tbsaunde.org> | |
23325 | ||
23326 | * attribs.c (find_attribute_namespace): Iterate over vec<> with | |
23327 | range based for. | |
23328 | * auto-profile.c (afdo_find_equiv_class): Likewise. | |
23329 | * gcc.c (do_specs_vec): Likewise. | |
23330 | (do_spec_1): Likewise. | |
23331 | (driver::set_up_specs): Likewise. | |
23332 | * gimple-loop-jam.c (any_access_function_variant_p): Likewise. | |
23333 | * gimple-ssa-store-merging.c (compatible_load_p): Likewise. | |
23334 | (imm_store_chain_info::try_coalesce_bswap): Likewise. | |
23335 | (imm_store_chain_info::coalesce_immediate_stores): Likewise. | |
23336 | (get_location_for_stmts): Likewise. | |
23337 | * graphite-poly.c (print_iteration_domains): Likewise. | |
23338 | (free_poly_bb): Likewise. | |
23339 | (remove_gbbs_in_scop): Likewise. | |
23340 | (free_scop): Likewise. | |
23341 | (dump_gbb_cases): Likewise. | |
23342 | (dump_gbb_conditions): Likewise. | |
23343 | (print_pdrs): Likewise. | |
23344 | (print_scop): Likewise. | |
23345 | * ifcvt.c (cond_move_process_if_block): Likewise. | |
23346 | * lower-subreg.c (decompose_multiword_subregs): Likewise. | |
23347 | * regcprop.c (pass_cprop_hardreg::execute): Likewise. | |
23348 | * sanopt.c (sanitize_rewrite_addressable_params): Likewise. | |
23349 | * sel-sched-dump.c (dump_insn_vector): Likewise. | |
23350 | * store-motion.c (store_ops_ok): Likewise. | |
23351 | (store_killed_in_insn): Likewise. | |
23352 | * timevar.c (timer::named_items::print): Likewise. | |
23353 | * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise. | |
23354 | (cleanup_tree_cfg_noloop): Likewise. | |
23355 | * tree-data-ref.c (dump_data_references): Likewise. | |
23356 | (print_dir_vectors): Likewise. | |
23357 | (print_dist_vectors): Likewise. | |
23358 | (dump_data_dependence_relations): Likewise. | |
23359 | (dump_dist_dir_vectors): Likewise. | |
23360 | (dump_ddrs): Likewise. | |
23361 | (create_runtime_alias_checks): Likewise. | |
23362 | (free_subscripts): Likewise. | |
23363 | (save_dist_v): Likewise. | |
23364 | (save_dir_v): Likewise. | |
23365 | (invariant_access_functions): Likewise. | |
23366 | (same_access_functions): Likewise. | |
23367 | (access_functions_are_affine_or_constant_p): Likewise. | |
23368 | (find_data_references_in_stmt): Likewise. | |
23369 | (graphite_find_data_references_in_stmt): Likewise. | |
23370 | (free_dependence_relations): Likewise. | |
23371 | (free_data_refs): Likewise. | |
23372 | * tree-inline.c (copy_debug_stmts): Likewise. | |
23373 | * tree-into-ssa.c (dump_currdefs): Likewise. | |
23374 | (rewrite_update_phi_arguments): Likewise. | |
23375 | * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise. | |
23376 | * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): | |
23377 | Likewise. | |
23378 | (vect_slp_analyze_node_dependences): Likewise. | |
23379 | (vect_slp_analyze_instance_dependence): Likewise. | |
23380 | (vect_record_base_alignments): Likewise. | |
23381 | (vect_get_peeling_costs_all_drs): Likewise. | |
23382 | (vect_peeling_supportable): Likewise. | |
23383 | * tree-vectorizer.c (vec_info::~vec_info): Likewise. | |
23384 | (vec_info::free_stmt_vec_infos): Likewise. | |
23385 | ||
23386 | 2021-06-13 Jeff Law <jeffreyalaw@gmail.com> | |
23387 | ||
23388 | * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern. | |
23389 | (andqi3_1<cczn>): Removed. | |
23390 | (<ors>qi3_1): Do not split for IOR/XOR a single bit. | |
23391 | (H8/SX bit logicals): Split out from other patterns. | |
23392 | * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from | |
23393 | mulqihi3_const_clobber_flags. | |
23394 | (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly | |
23395 | ||
23396 | 2021-06-13 H.J. Lu <hjl.tools@gmail.com> | |
23397 | ||
23398 | PR target/101023 | |
23399 | * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used | |
23400 | to true if red zone is used. | |
23401 | (ix86_output_indirect_jmp): Replace ix86_red_zone_size with | |
23402 | ix86_red_zone_used. | |
23403 | * config/i386/i386.h (machine_function): Add red_zone_used. | |
23404 | (ix86_red_zone_size): Removed. | |
23405 | (ix86_red_zone_used): New. | |
23406 | * config/i386/i386.md (peephole2 patterns): Replace | |
23407 | ix86_red_zone_size with ix86_red_zone_used. | |
23408 | ||
23409 | 2021-06-12 Jason Merrill <jason@redhat.com> | |
23410 | ||
23411 | * doc/extend.texi (unused variable attribute): Applies to | |
23412 | structure fields as well. | |
23413 | ||
23414 | 2021-06-12 Eugene Rozenfeld <erozen@microsoft.com> | |
23415 | ||
23416 | * auto-profile.c (read_profile): fix a typo in an error string | |
23417 | ||
23418 | 2021-06-11 Thomas Schwinge <thomas@codesourcery.com> | |
23419 | ||
23420 | * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true' | |
23421 | default argument. | |
23422 | * tree-pretty-print.c (dump_omp_clauses): Update. | |
23423 | (dump_generic_node) <OMP_CLAUSE>: Use it. | |
23424 | ||
23425 | 2021-06-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
23426 | ||
23427 | PR target/101016 | |
23428 | * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0, | |
23429 | int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for | |
23430 | the polymorphic variants matching code. | |
23431 | (__arm_vld1q_z): Likewise. | |
23432 | (__arm_vld2q): Likewise. | |
23433 | (__arm_vld4q): Likewise. | |
23434 | (__arm_vldrbq_gather_offset): Likewise. | |
23435 | (__arm_vldrbq_gather_offset_z): Likewise. | |
23436 | ||
23437 | 2021-06-11 Roger Sayle <roger@nextmovesoftware.com> | |
23438 | ||
23439 | PR tree-optimization/96392 | |
23440 | * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype. | |
23441 | ||
23442 | 2021-06-11 Roger Sayle <roger@nextmovesoftware.com> | |
23443 | ||
23444 | PR tree-optimization/96392 | |
23445 | * fold-const.c (fold_real_zero_addition_p): Take both arguments | |
23446 | of the addition or subtraction, not just the zero. Use this | |
23447 | other argument in tests for signaling NaNs and signed zeros. | |
23448 | (tree_expr_maybe_real_minus_zero_p): New predicate. | |
23449 | * fold-const.h (fold_real_zero_addition_p): Update prototype. | |
23450 | (tree_expr_maybe_real_minus_zero_p): New function prototype. | |
23451 | * match.pd: Update calls to fold_real_zero_addition_p. | |
23452 | Replace HONOR_NANS with tree_expr_maybe_nan_p. | |
23453 | Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p. | |
23454 | Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p. | |
23455 | * tree-ssa-reassoc.c (eliminate_using_constants): Update | |
23456 | call to fold_real_zero_addition_p. | |
23457 | ||
23458 | 2021-06-11 Richard Biener <rguenther@suse.de> | |
23459 | ||
23460 | PR tree-optimization/101025 | |
23461 | * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process | |
23462 | all refs that require dependence checking. | |
23463 | ||
23464 | 2021-06-11 Richard Biener <rguenther@suse.de> | |
23465 | ||
23466 | PR tree-optimization/101028 | |
23467 | * tree-vect-slp.c (vect_build_slp_tree_2): When SLP | |
23468 | reassoc discovery fails fatally, mark appropriate lanes | |
23469 | in matches[] so. | |
23470 | ||
23471 | 2021-06-11 Richard Biener <rguenther@suse.de> | |
23472 | ||
23473 | PR tree-optimization/101026 | |
23474 | * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we | |
23475 | have a representative for the associated chain nodes. | |
23476 | ||
23477 | 2021-06-11 Jakub Jelinek <jakub@redhat.com> | |
23478 | ||
23479 | PR rtl-optimization/101008 | |
23480 | * simplify-rtx.c (relational_result): New function. | |
23481 | (simplify_logical_relational_operation, | |
23482 | simplify_relational_operation): Use it. | |
23483 | ||
23484 | 2021-06-11 Jakub Jelinek <jakub@redhat.com> | |
23485 | ||
23486 | PR target/101007 | |
23487 | * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2. | |
23488 | ||
23489 | 2021-06-11 Uroš Bizjak <ubizjak@gmail.com> | |
23490 | ||
23491 | PR target/101021 | |
23492 | * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return | |
23493 | false if the permutation can be implemented with constant | |
23494 | permutation instruction in wider mode. | |
23495 | (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb. | |
23496 | Handle V8QImode and V4HImode. | |
23497 | ||
23498 | 2021-06-11 Martin Liska <mliska@suse.cz> | |
23499 | ||
23500 | PR gcov-profile/100788 | |
23501 | * common.opt: Add new option. | |
23502 | * coverage.c (coverage_begin_function): Emit warning instead on | |
23503 | the internal compiler error. | |
23504 | * doc/invoke.texi: Document the option. | |
23505 | * toplev.c (process_options): Enable it by default. | |
23506 | ||
23507 | 2021-06-11 Richard Biener <rguenther@suse.de> | |
23508 | ||
23509 | PR middle-end/101009 | |
23510 | * tree-data-ref.c (build_classic_dist_vector_1): Make sure | |
23511 | to set *init_b to true when we encounter a constant equal | |
23512 | index pair. | |
23513 | (compute_affine_dependence): Also dump the actual DR_REF. | |
23514 | ||
23515 | 2021-06-10 Aldy Hernandez <aldyh@redhat.com> | |
23516 | ||
23517 | PR tree-optimization/100984 | |
23518 | * gimple-ssa-evrp.c (ssa_equiv_stack): Use auto_vec for | |
23519 | replacements table. | |
23520 | (ssa_equiv_stack::~ssa_equiv_stack): Remove. | |
23521 | ||
23522 | 2021-06-11 Kewen Lin <linkw@linux.ibm.com> | |
23523 | ||
23524 | * config/rs6000/rs6000.md | |
23525 | (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New | |
23526 | define_insn_and_split. | |
23527 | ||
23528 | 2021-06-11 Richard Biener <rguenther@suse.de> | |
23529 | ||
23530 | * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort | |
23531 | to sort operands of the associative chain. | |
23532 | ||
23533 | 2021-06-11 Richard Biener <rguenther@suse.de> | |
23534 | ||
23535 | * system.h (gcc_stablesort_r): Declare. | |
23536 | * sort.cc (gcc_sort_r): Support stable sort. | |
23537 | (gcc_stablesort_r): Define. | |
23538 | * vec.h (vec<>::stablesort): Add. | |
23539 | ||
23540 | 2021-06-10 Uroš Bizjak <ubizjak@gmail.com> | |
23541 | ||
23542 | PR target/89021 | |
23543 | * config/i386/i386-expand.c (ix86_split_mmx_punpck): | |
23544 | Handle V2SF mode. Emit SHUFPS to fixup unpack-high for V2SF mode. | |
23545 | (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1. | |
23546 | (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3. | |
23547 | (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1. | |
23548 | (expand_vec_perm_interleave2): Handle 64bit modes. | |
23549 | (expand_vec_perm_even_odd_pack): Handle V8QI mode. | |
23550 | (expand_vec_perm_even_odd_1): Ditto. | |
23551 | (ix86_vectorize_vec_perm_const): Ditto. | |
23552 | * config/i386/i386.md (UNSPEC_PSHUFB): Move from ... | |
23553 | * config/i386/sse.md: ... here. | |
23554 | * config/i386/mmx.md (*vec_interleave_lowv2sf): | |
23555 | New insn_and_split pattern. | |
23556 | (*vec_interleave_highv2sf): Ditto. | |
23557 | (mmx_pshufbv8qi3): New insn pattern. | |
23558 | (*mmx_pblendw): Ditto. | |
23559 | ||
23560 | 2021-06-10 Peter Bergner <bergner@linux.ibm.com> | |
23561 | ||
23562 | * config/rs6000/rs6000-builtin.def (build_pair): New built-in. | |
23563 | (build_acc): Likewise. | |
23564 | * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble | |
23565 | source operands in little-endian mode. | |
23566 | (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR. | |
23567 | (mma_init_builtins): Likewise. | |
23568 | * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness | |
23569 | ordering for the MMA assemble and build source operands. | |
23570 | * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair): | |
23571 | Document. | |
23572 | (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove | |
23573 | documentation. | |
23574 | ||
23575 | 2021-06-10 Jeff Law <jeffreyalaw@gmail.com> | |
23576 | ||
23577 | * config/h8300/h8300.c (select_cc_mode): Handle MEM. Use | |
23578 | REG_P. | |
23579 | * config/h8300/extensions.md: Replace _clobber_flags patterns | |
23580 | with <cczn>. | |
23581 | ||
23582 | 2021-06-10 Robin Dapp <rdapp@linux.ibm.com> | |
23583 | ||
23584 | * config/s390/vector.md (vcond_mask_<mode><mode>): Change to | |
23585 | (vcond_mask_<mode><tointvec>): this. | |
23586 | ||
23587 | 2021-06-10 Andrew Stubbs <ams@codesourcery.com> | |
23588 | Thomas Schwinge <thomas@codesourcery.com> | |
23589 | ||
23590 | * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into... | |
23591 | (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these. | |
23592 | * gimple.h (enum gf_mask): Split | |
23593 | 'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into | |
23594 | 'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and | |
23595 | 'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'. | |
23596 | (is_gimple_omp_oacc): Update. | |
23597 | * gimple-pretty-print.c (dump_gimple_omp_target): Likewise. | |
23598 | * gimplify.c (gimplify_omp_target_update): Likewise. | |
23599 | * omp-expand.c (expand_omp_target, build_omp_regions_1) | |
23600 | (omp_make_gimple_edges): Likewise. | |
23601 | * omp-low.c (check_omp_nesting_restrictions, lower_omp_target): | |
23602 | Likewise. | |
23603 | ||
23604 | 2021-06-10 Aldy Hernandez <aldyh@redhat.com> | |
23605 | ||
23606 | * value-query.cc (value_query::value_on_edge): Rename name to | |
23607 | expr. | |
23608 | (range_query::range_on_edge): Same. | |
23609 | (range_query::value_of_expr): Same. | |
23610 | (range_query::value_on_edge): Same. | |
23611 | * value-query.h (class value_query): Same. | |
23612 | (class range_query): Same. | |
23613 | ||
23614 | 2021-06-10 Richard Biener <rguenther@suse.de> | |
23615 | ||
23616 | PR tree-optimization/101003 | |
23617 | * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately | |
23618 | use the pattern stmt defs when linearizing a chain. | |
23619 | ||
23620 | 2021-06-10 Jakub Jelinek <jakub@redhat.com> | |
23621 | ||
23622 | PR debug/100852 | |
23623 | * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use | |
23624 | prev_nonnote_nondebug_insn instead of prev_nonnote_insn. | |
23625 | ||
23626 | 2021-06-10 Clement Chigot <clement.chigot@atos.net> | |
23627 | ||
23628 | * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive. | |
23629 | * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. | |
23630 | ||
23631 | 2021-06-09 Andrew Pinski <apinski@marvell.com> | |
23632 | ||
23633 | PR tree-optimization/100925 | |
23634 | * match.pd (a ? CST1 : CST2): Limit transformations | |
23635 | that would produce a negative to integeral types only. | |
23636 | Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also. | |
23637 | ||
23638 | 2021-06-09 Jeff Law <jeffreyalaw@gmail.com> | |
23639 | ||
23640 | Revert: | |
23641 | 2021-06-09 Jeff Law <jeffreyalaw@gmail.com> | |
23642 | ||
23643 | * doc/tm.texi: Correctly update. | |
23644 | ||
23645 | 2021-06-09 Jeff Law <jeffreyalaw@gmail.com> | |
23646 | ||
23647 | * doc/tm.texi: Correctly update. | |
23648 | ||
23649 | 2021-06-09 H.J. Lu <hjl.tools@gmail.com> | |
23650 | ||
23651 | PR other/100735 | |
23652 | * doc/tm.texi.in (Trampolines): Add a missing blank line. | |
23653 | ||
23654 | 2021-06-09 Paul Eggert <eggert@cs.ucla.edu> | |
23655 | ||
23656 | PR other/100735 | |
23657 | * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines | |
23658 | and -ftrampolines work only with Ada. | |
23659 | * doc/tm.texi.in (Trampolines): Likewise. | |
23660 | * doc/tm.texi: Regenerated. | |
23661 | ||
23662 | 2021-06-09 Carl Love <cel@us.ibm.com> | |
23663 | ||
23664 | * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq): | |
23665 | Add define for new builtins. | |
23666 | * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand. | |
23667 | * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL): Add | |
23668 | overloaded builtin definitions. | |
23669 | (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D, | |
23670 | VSIGNEXTSD2Q): Add builtin expansions. | |
23671 | (SIGNEXT): Add P10 overload definition. | |
23672 | * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL, | |
23673 | P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions. | |
23674 | * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn. | |
23675 | (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>, | |
23676 | vsignextend_si_v2di)[VIlong]: Add define_expand. | |
23677 | Make define_insn vsx_sign_extend_si_v2di visible. | |
23678 | * doc/extend.texi: Add documentation for the vec_signexti, | |
23679 | vec_signextll builtins and vec_signextq. | |
23680 | ||
23681 | 2021-06-09 Carl Love <cel@us.ibm.com> | |
23682 | ||
23683 | * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf, | |
23684 | __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw, | |
23685 | __floattikf_sw, __floatuntikf_sw respectively. | |
23686 | * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2, | |
23687 | fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add | |
23688 | define_insn for mode IEEE 128. | |
23689 | ||
23690 | 2021-06-09 Carl Love <cel@us.ibm.com> | |
23691 | ||
23692 | * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq): | |
23693 | Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI. | |
23694 | * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md. | |
23695 | (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI. | |
23696 | (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI. | |
23697 | * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update | |
23698 | uses of VSX_TI to VEC_TI. | |
23699 | ||
23700 | 2021-06-09 Carl Love <cel@us.ibm.com> | |
23701 | ||
23702 | * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns. | |
23703 | ||
23704 | 2021-06-09 Carl Love <cel@us.ibm.com> | |
23705 | ||
23706 | * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new | |
23707 | builtins. | |
23708 | * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD, | |
23709 | UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs. | |
23710 | (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud, | |
23711 | altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq, | |
23712 | altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm, | |
23713 | altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq, | |
23714 | altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New | |
23715 | define_insn. | |
23716 | (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di, | |
23717 | vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi, | |
23718 | altivec_vrlqnm): New define_expands. | |
23719 | * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P, | |
23720 | VCMPGTUT_P): Add macro expansions. | |
23721 | (BU_P10V_AV_P): Add builtin predicate definition. | |
23722 | (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI, | |
23723 | CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P, | |
23724 | VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ, | |
23725 | VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI, | |
23726 | MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions. | |
23727 | (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions. | |
23728 | * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT, | |
23729 | P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI, | |
23730 | P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST, | |
23731 | P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI, | |
23732 | P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI, | |
23733 | P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD, | |
23734 | P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD, | |
23735 | P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS, | |
23736 | P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI, | |
23737 | P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ, | |
23738 | P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ, | |
23739 | P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P, | |
23740 | P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P, | |
23741 | P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET, | |
23742 | P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P, | |
23743 | P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI, | |
23744 | P10V_BUILTIN_MODU_V1TI): | |
23745 | New overloaded definitions. | |
23746 | (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT, | |
23747 | P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI, | |
23748 | P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT, | |
23749 | P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI, | |
23750 | P10V_BUILTIN_CMPLE_U1TI]: New case statements. | |
23751 | (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]: | |
23752 | New assignments. | |
23753 | (altivec_init_builtins): New E_V1TImode case statement. | |
23754 | (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD, | |
23755 | P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI, | |
23756 | P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI, | |
23757 | P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements. | |
23758 | * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode, | |
23759 | E_V1TImode]: New case statements. | |
23760 | * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum | |
23761 | value RS6000_BTI_bool_V1TI. | |
23762 | * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti, | |
23763 | vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti, | |
23764 | vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p, | |
23765 | vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3, | |
23766 | vlshrv1ti3, vashrv1ti3): New define_expands. | |
23767 | * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ, | |
23768 | UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ, | |
23769 | UNSPEC_VSX_MODUQ): New unspecs. | |
23770 | (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti, | |
23771 | vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New | |
23772 | define_insns. | |
23773 | (vcmpnet): New define_expand. | |
23774 | * doc/extend.texi: Add documentation for the new builtins vec_rl, | |
23775 | vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo, | |
23776 | vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt, | |
23777 | vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt, | |
23778 | vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt, | |
23779 | vec_any_ge, vec_any_le. | |
23780 | ||
23781 | 2021-06-09 Carl Love <cel@us.ibm.com> | |
23782 | ||
23783 | * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix | |
23784 | bug in argument generation. | |
23785 | ||
23786 | 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org> | |
23787 | ||
23788 | * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S. | |
23789 | (VCLZQ): Remove. | |
23790 | * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix, | |
23791 | remove <supf> iterator. | |
23792 | (mve_vclzq_u<mode>): New. | |
23793 | * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>. | |
23794 | (neon_vclz<mode): Move to ... | |
23795 | * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove. | |
23796 | * config/arm/vec-common.md: ... here. Add support for MVE. | |
23797 | ||
23798 | 2021-06-09 Christophe Lyon <christophe.lyon@linaro.org> | |
23799 | ||
23800 | * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'. | |
23801 | (@mve_vrhaddq_<supf><mode): Likewise. | |
23802 | * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise. | |
23803 | * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor) | |
23804 | (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns. | |
23805 | ||
23806 | 2021-06-09 imba-tjd <109224573@qq.com> | |
23807 | ||
23808 | * doc/invoke.texi: Fix typo. | |
23809 | ||
23810 | 2021-06-09 Roger Sayle <roger@nextmovesoftware.com> | |
23811 | ||
23812 | PR middle-end/53267 | |
23813 | * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]: | |
23814 | Support evaluation of fmod/fmodf/fmodl at compile-time. | |
23815 | ||
23816 | 2021-06-09 Richard Biener <rguenther@suse.de> | |
23817 | ||
23818 | PR tree-optimization/100981 | |
23819 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
23820 | gimple_get_lhs to also handle calls. | |
23821 | * tree-vect-slp-patterns.c (complex_pattern::build): Transfer | |
23822 | reduction info. | |
23823 | ||
23824 | 2021-06-09 Richard Biener <rguenther@suse.de> | |
23825 | ||
23826 | PR tree-optimization/97832 | |
23827 | * tree-vectorizer.h (_slp_tree::failed): New. | |
23828 | * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize | |
23829 | failed member. | |
23830 | (_slp_tree::~_slp_tree): Free failed. | |
23831 | (vect_build_slp_tree): Retain failed nodes and record | |
23832 | matches in them, copying that back out when running | |
23833 | into a cached fail. Dump start and end of discovery. | |
23834 | (dt_sort_cmp): New. | |
23835 | (vect_build_slp_tree_2): Handle associatable chains | |
23836 | together doing more aggressive operand swapping. | |
23837 | ||
23838 | 2021-06-09 H.J. Lu <hjl.tools@gmail.com> | |
23839 | ||
23840 | PR target/100896 | |
23841 | * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and | |
23842 | GNU targets. | |
23843 | * doc/install.texi: Require glibc 2.1 and binutils 2.12 for | |
23844 | Linux and GNU targets. | |
23845 | ||
23846 | 2021-06-09 Richard Biener <rguenther@suse.de> | |
23847 | ||
23848 | * tree-vect-stmts.c (vect_is_simple_use): Always get dt | |
23849 | from the stmt. | |
23850 | ||
23851 | 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com> | |
23852 | ||
23853 | * config/arc/arc.md (loop_end): Change it to | |
23854 | define_insn_and_split. | |
23855 | ||
23856 | 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com> | |
23857 | ||
23858 | * config/arc/arc.md (maddhisi4): Use VMAC2H instruction. | |
23859 | (machi): New pattern. | |
23860 | (umaddhisi4): Use VMAC2HU instruction. | |
23861 | (umachi): New pattern. | |
23862 | ||
23863 | 2021-06-09 Claudiu Zissulescu <claziss@synopsys.com> | |
23864 | ||
23865 | * config/arc/arc-protos.h (arc_split_move_p): New prototype. | |
23866 | * config/arc/arc.c (arc_split_move_p): New function. | |
23867 | (arc_split_move): Clean up. | |
23868 | * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p. | |
23869 | (movdf_insn): Likewise. | |
23870 | * config/arc/simdext.md (mov<VWH>_insn): Likewise. | |
23871 | ||
23872 | 2021-06-09 Uroš Bizjak <ubizjak@gmail.com> | |
23873 | ||
23874 | PR target/100936 | |
23875 | * config/i386/i386.c (print_operand_address_as): Rename "no_rip" | |
23876 | argument to "raw". Do not emit segment overrides when "raw" is true. | |
23877 | ||
23878 | 2021-06-09 Martin Liska <mliska@suse.cz> | |
23879 | ||
23880 | * doc/gcov.texi: Create a proper JSON files. | |
23881 | * doc/invoke.texi: Remove dots in order to make it a valid | |
23882 | JSON object. | |
23883 | ||
23884 | 2021-06-09 Xionghu Luo <luoxhu@linux.ibm.com> | |
23885 | ||
23886 | * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New. | |
23887 | (insn_is_load_p): Use pattern_is_rotate64. | |
23888 | (insn_is_swap_p): Likewise. | |
23889 | (quad_aligned_load_p): Likewise. | |
23890 | (const_load_sequence_p): Likewise. | |
23891 | (replace_swapped_aligned_load): Likewise. | |
23892 | (recombine_lvx_pattern): Likewise. | |
23893 | (recombine_stvx_pattern): Likewise. | |
23894 | ||
23895 | 2021-06-09 Andrew MacLeod <amacleod@redhat.com> | |
23896 | ||
23897 | * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a | |
23898 | fur_stmt source record. | |
23899 | * gimple-range.cc (fur_source::get_operand): Generic range query. | |
23900 | (fur_source::get_phi_operand): New. | |
23901 | (fur_source::register_dependency): New. | |
23902 | (fur_source::query): New. | |
23903 | (class fur_edge): New. Edge source for operands. | |
23904 | (fur_edge::fur_edge): New. | |
23905 | (fur_edge::get_operand): New. | |
23906 | (fur_edge::get_phi_operand): New. | |
23907 | (fur_edge::query): New. | |
23908 | (fur_stmt::fur_stmt): New. | |
23909 | (fur_stmt::get_operand): New. | |
23910 | (fur_stmt::get_phi_operand): New. | |
23911 | (fur_stmt::query): New. | |
23912 | (class fur_depend): New. Statement source and process dependencies. | |
23913 | (fur_depend::fur_depend): New. | |
23914 | (fur_depend::register_dependency): New. | |
23915 | (class fur_list): New. List source for operands. | |
23916 | (fur_list::fur_list): New. | |
23917 | (fur_list::get_operand): New. | |
23918 | (fur_list::get_phi_operand): New. | |
23919 | (fold_range): New. Instantiate appropriate fur_source class and fold. | |
23920 | (fold_using_range::range_of_range_op): Use new API. | |
23921 | (fold_using_range::range_of_address): Ditto. | |
23922 | (fold_using_range::range_of_phi): Ditto. | |
23923 | (imple_ranger::fold_range_internal): Use fur_depend class. | |
23924 | (fold_using_range::range_of_ssa_name_with_loop_info): Use new API. | |
23925 | * gimple-range.h (class fur_source): Now a base class. | |
23926 | (class fur_stmt): New. | |
23927 | (fold_range): New prototypes. | |
23928 | (fur_source::fur_source): Delete. | |
23929 | ||
23930 | 2021-06-08 Andrew Pinski <apinski@marvell.com> | |
23931 | ||
23932 | PR tree-optimization/25290 | |
23933 | * tree-ssa-phiopt.c (xor_replacement): Delete. | |
23934 | (tree_ssa_phiopt_worker): Delete use of xor_replacement. | |
23935 | (match_simplify_replacement): Allow one cheap preparation | |
23936 | statement that can be moved to before the if. | |
23937 | ||
23938 | 2021-06-08 Pat Haugen <pthaugen@linux.ibm.com> | |
23939 | ||
23940 | * config/rs6000/power10.md (power10-fused-load, power10-fused-store, | |
23941 | power10-fused_alu, power10-fused-vec, power10-fused-branch): New. | |
23942 | ||
23943 | 2021-06-08 Jeff Law <jeffreyalaw@gmail.com> | |
23944 | ||
23945 | * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split. | |
23946 | Create length attribute on define_insn_and_split. Only split for cases which we | |
23947 | know will use AND. | |
23948 | (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags. Only handle AND here and | |
23949 | fix length computation. | |
23950 | (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator. | |
23951 | ||
23952 | 2021-06-08 Richard Biener <rguenther@suse.de> | |
23953 | ||
23954 | PR tree-optimization/100923 | |
23955 | * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to | |
23956 | the operand vector to be valueized. | |
23957 | (valueize_refs): Likewise. | |
23958 | (valueize_shared_reference_ops_from_ref): Adjust. | |
23959 | (valueize_shared_reference_ops_from_call): Likewise. | |
23960 | (vn_reference_lookup_3): Likewise. | |
23961 | (vn_reference_lookup_pieces): Likewise. Re-valueize | |
23962 | with honoring availability when we are about to create | |
23963 | the ao_ref and valueized before. | |
23964 | (vn_reference_lookup): Likewise. | |
23965 | (vn_reference_insert_pieces): Adjust. | |
23966 | ||
23967 | 2021-06-08 Richard Biener <rguenther@suse.de> | |
23968 | ||
23969 | * tree-vectorizer.h (_slp_instance::root_stmt): Change to... | |
23970 | (_slp_instance::root_stmts): ... a vector. | |
23971 | (SLP_INSTANCE_ROOT_STMT): Rename to ... | |
23972 | (SLP_INSTANCE_ROOT_STMTS): ... this. | |
23973 | (slp_root::root): Change to... | |
23974 | (slp_root::roots): ... a vector. | |
23975 | (slp_root::slp_root): Adjust. | |
23976 | * tree-vect-slp.c (_slp_instance::location): Adjust. | |
23977 | (vect_free_slp_instance): Release the root stmt vector. | |
23978 | (vect_build_slp_instance): Adjust. | |
23979 | (vect_analyze_slp): Likewise. | |
23980 | (_bb_vec_info::~_bb_vec_info): Likewise. | |
23981 | (vect_slp_analyze_operations): Likewise. | |
23982 | (vect_bb_vectorization_profitable_p): Likewise. Adjust | |
23983 | costs for the root stmt. | |
23984 | (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs | |
23985 | as root stmts. | |
23986 | (vect_slp_analyze_bb_1): Simplify by marking all root stmts | |
23987 | as pure_slp. | |
23988 | (vectorize_slp_instance_root_stmt): Adjust. | |
23989 | (vect_schedule_slp): Likewise. | |
23990 | ||
23991 | 2021-06-08 Aldy Hernandez <aldyh@redhat.com> | |
23992 | ||
23993 | * gimple-ssa-evrp.c (class ssa_equiv_stack): New. | |
23994 | (ssa_equiv_stack::ssa_equiv_stack): New. | |
23995 | (ssa_equiv_stack::~ssa_equiv_stack): New. | |
23996 | (ssa_equiv_stack::enter): New. | |
23997 | (ssa_equiv_stack::leave): New. | |
23998 | (ssa_equiv_stack::push_replacement): New. | |
23999 | (ssa_equiv_stack::get_replacement): New. | |
24000 | (is_pointer_ssa): New. | |
24001 | (class pointer_equiv_analyzer): New. | |
24002 | (pointer_equiv_analyzer::pointer_equiv_analyzer): New. | |
24003 | (pointer_equiv_analyzer::~pointer_equiv_analyzer): New. | |
24004 | (pointer_equiv_analyzer::set_global_equiv): New. | |
24005 | (pointer_equiv_analyzer::set_cond_equiv): New. | |
24006 | (pointer_equiv_analyzer::get_equiv): New. | |
24007 | (pointer_equiv_analyzer::enter): New. | |
24008 | (pointer_equiv_analyzer::leave): New. | |
24009 | (pointer_equiv_analyzer::get_equiv_expr): New. | |
24010 | (pta_valueize): New. | |
24011 | (pointer_equiv_analyzer::visit_stmt): New. | |
24012 | (pointer_equiv_analyzer::visit_edge): New. | |
24013 | (hybrid_folder::value_of_expr): Call PTA. | |
24014 | (hybrid_folder::value_on_edge): Same. | |
24015 | (hybrid_folder::pre_fold_bb): New. | |
24016 | (hybrid_folder::post_fold_bb): New. | |
24017 | (hybrid_folder::pre_fold_stmt): New. | |
24018 | (rvrp_folder::pre_fold_bb): New. | |
24019 | (rvrp_folder::post_fold_bb): New. | |
24020 | (rvrp_folder::pre_fold_stmt): New. | |
24021 | (rvrp_folder::value_of_expr): Call PTA. | |
24022 | (rvrp_folder::value_on_edge): Same. | |
24023 | ||
24024 | 2021-06-08 Jakub Jelinek <jakub@redhat.com> | |
24025 | ||
24026 | PR c++/100957 | |
24027 | * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't | |
24028 | check TREE_CODE if OMP_CLAUSE_DECL is NULL. | |
24029 | ||
24030 | 2021-06-08 Richard Biener <rguenther@suse.de> | |
24031 | ||
24032 | PR middle-end/100951 | |
24033 | * tree-vect-generic.c (expand_vector_piecewise): Build a | |
24034 | VECTOR_CST if all elements are constant. | |
24035 | (expand_vector_condition): Likewise. | |
24036 | (lower_vec_perm): Likewise. | |
24037 | (expand_vector_conversion): Likewise. | |
24038 | ||
24039 | 2021-06-08 Martin Liska <mliska@suse.cz> | |
24040 | ||
24041 | * doc/invoke.texi: Document new param evrp-sparse-threshold. | |
24042 | ||
24043 | 2021-06-08 Martin Liska <mliska@suse.cz> | |
24044 | ||
24045 | * genautomata.c (create_automata): Fix typo. | |
24046 | ||
24047 | 2021-06-08 Kewen Lin <linkw@linux.ibm.com> | |
24048 | ||
24049 | PR tree-optimization/100794 | |
24050 | * tree-predcom.c (tree_predictive_commoning_loop): Add parameter | |
24051 | allow_unroll_p and only allow unrolling when it's true. | |
24052 | (tree_predictive_commoning): Add parameter allow_unroll_p and | |
24053 | adjust for it. | |
24054 | (run_tree_predictive_commoning): Likewise. | |
24055 | (pass_predcom::gate): Check flag_tree_loop_vectorize and | |
24056 | global_options_set.x_flag_predictive_commoning. | |
24057 | (pass_predcom::execute): Adjust for allow_unroll_p. | |
24058 | ||
24059 | 2021-06-08 Kewen Lin <linkw@linux.ibm.com> | |
24060 | ||
24061 | * tree-predcom.c (execute_pred_commoning): Remove update_ssa call. | |
24062 | (tree_predictive_commoning_loop): Factor some cleanup stuffs into | |
24063 | lambda function cleanup, remove scev_reset call, and adjust return | |
24064 | value. | |
24065 | (tree_predictive_commoning): Adjust for different changed values, | |
24066 | only set flag TODO_update_ssa_only_virtuals if changed. | |
24067 | (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals | |
24068 | from todo_flags_finish. | |
24069 | ||
24070 | 2021-06-07 Andrew MacLeod <amacleod@redhat.com> | |
24071 | ||
24072 | * gimple-range-cache.cc (class sbr_sparse_bitmap): New. | |
24073 | (sbr_sparse_bitmap::sbr_sparse_bitmap): New. | |
24074 | (sbr_sparse_bitmap::bitmap_set_quad): New. | |
24075 | (sbr_sparse_bitmap::bitmap_get_quad): New. | |
24076 | (sbr_sparse_bitmap::set_bb_range): New. | |
24077 | (sbr_sparse_bitmap::get_bb_range): New. | |
24078 | (sbr_sparse_bitmap::bb_range_p): New. | |
24079 | (block_range_cache::block_range_cache): initialize bitmap obstack. | |
24080 | (block_range_cache::~block_range_cache): Destruct obstack. | |
24081 | (block_range_cache::set_bb_range): Decide when to utilze the | |
24082 | sparse on entry cache. | |
24083 | * gimple-range-cache.h (block_range_cache): Add bitmap obstack. | |
24084 | * params.opt (-param=evrp-sparse-threshold): New. | |
24085 | ||
24086 | 2021-06-07 Andrew MacLeod <amacleod@redhat.com> | |
24087 | ||
24088 | * bitmap.c (bitmap_set_aligned_chunk): New. | |
24089 | (bitmap_get_aligned_chunk): New. | |
24090 | (test_aligned_chunk): New. | |
24091 | (bitmap_c_tests): Call test_aligned_chunk. | |
24092 | * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New. | |
24093 | ||
24094 | 2021-06-07 Uroš Bizjak <ubizjak@gmail.com> | |
24095 | ||
24096 | PR target/100637 | |
24097 | * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): | |
24098 | Handle V4QI mode. | |
24099 | (ix86_expand_vector_init_one_nonzero): Ditto. | |
24100 | (ix86_expand_vector_init_one_var): Ditto. | |
24101 | (ix86_expand_vector_init_general): Ditto. | |
24102 | * config/i386/mmx.md (vec_initv4qiqi): New expander. | |
24103 | ||
24104 | 2021-06-07 Jeff Law <jeffreyalaw@gmail.com> | |
24105 | ||
24106 | * config/h8300/movepush.md: Change most _clobber_flags | |
24107 | patterns to instead use <cczn> subst. | |
24108 | (movsi_cczn): New pattern with usable CC cases split out. | |
24109 | (movsi_h8sx_cczn): Likewise. | |
24110 | ||
24111 | 2021-06-07 Martin Liska <mliska@suse.cz> | |
24112 | ||
24113 | * common/common-target.def: Split long lines and replace them | |
24114 | with '\n\'. | |
24115 | * target.def: Likewise. | |
24116 | * doc/tm.texi: Re-generated. | |
24117 | ||
24118 | 2021-06-07 Jakub Jelinek <jakub@redhat.com> | |
24119 | ||
24120 | PR target/100887 | |
24121 | * fold-const.c (fold_read_from_vector): Return NULL if trying to | |
24122 | read from a CONSTRUCTOR with vector type elements. | |
24123 | ||
24124 | 2021-06-07 Jakub Jelinek <jakub@redhat.com> | |
24125 | ||
24126 | PR middle-end/100898 | |
24127 | * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy | |
24128 | should copy any arguments. Don't call gimple_call_num_args | |
24129 | on id->call_stmt or call_stmt more than once. | |
24130 | ||
24131 | 2021-06-07 liuhongt <hongtao.liu@intel.com> | |
24132 | ||
24133 | PR target/100885 | |
24134 | * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine | |
24135 | constraints. | |
24136 | (<insn>v4siv4di2): Delete constraints for define_expand. | |
24137 | ||
24138 | 2021-06-07 liuhongt <hongtao.liu@intel.com> | |
24139 | ||
24140 | PR target/82735 | |
24141 | * config/i386/i386-expand.c (ix86_expand_builtin): Remove | |
24142 | assignment of cfun->machine->has_explicit_vzeroupper. | |
24143 | * config/i386/i386-features.c | |
24144 | (ix86_add_reg_usage_to_vzerouppers): Delete. | |
24145 | (ix86_add_reg_usage_to_vzeroupper): Ditto. | |
24146 | (rest_of_handle_insert_vzeroupper): Remove | |
24147 | ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end | |
24148 | of the function. | |
24149 | (gate): Remove cfun->machine->has_explicit_vzeroupper. | |
24150 | * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper): | |
24151 | Declared. | |
24152 | * config/i386/i386.c (ix86_insn_callee_abi): New function. | |
24153 | (ix86_initialize_callee_abi): Ditto. | |
24154 | (ix86_expand_avx_vzeroupper): Ditto. | |
24155 | (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper | |
24156 | ABI. | |
24157 | (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi. | |
24158 | (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper | |
24159 | directly. | |
24160 | * config/i386/i386.h (struct GTY(()) machine_function): Delete | |
24161 | has_explicit_vzeroupper. | |
24162 | * config/i386/i386.md (enum unspec): New member | |
24163 | UNSPEC_CALLEE_ABI. | |
24164 | (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New | |
24165 | define_constants for insn callee abi index. | |
24166 | * config/i386/predicates.md (vzeroupper_pattern): Adjust. | |
24167 | * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted. | |
24168 | (avx_vzeroupper): Call ix86_expand_avx_vzeroupper. | |
24169 | (*avx_vzeroupper): Rename to .. | |
24170 | (avx_vzeroupper_callee_abi): .. this, and adjust pattern as | |
24171 | call_insn which has a special vzeroupper ABI. | |
24172 | (*avx_vzeroupper_1): Deleted. | |
24173 | ||
24174 | 2021-06-07 liuhongt <hongtao.liu@intel.com> | |
24175 | ||
24176 | PR target/82735 | |
24177 | * df-scan.c (df_get_call_refs): When call_insn is a fake call, | |
24178 | it won't use stack pointer reg. | |
24179 | * final.c (leaf_function_p): When call_insn is a fake call, it | |
24180 | won't affect caller as a leaf function. | |
24181 | * reg-stack.c (callee_clobbers_any_stack_reg): New. | |
24182 | (subst_stack_regs): When call_insn doesn't clobber any stack | |
24183 | reg, don't clear the arguments. | |
24184 | * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is | |
24185 | a insn. | |
24186 | * shrink-wrap.c (requires_stack_frame_p): No need for stack | |
24187 | frame for a fake call. | |
24188 | * rtl.h (FAKE_CALL_P): New macro. | |
24189 | ||
24190 | 2021-06-06 Eric Botcazou <ebotcazou@adacore.com> | |
24191 | ||
24192 | * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename | |
24193 | to... | |
24194 | (sparc_order_regs_for_local_alloc): ...this. | |
24195 | (sparc_leaf_reg_remap): Declare. | |
24196 | * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust. | |
24197 | (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap. | |
24198 | * config/sparc/sparc.c (leaf_reg_remap): Delete. | |
24199 | (order_regs_for_local_alloc): Rename to... | |
24200 | (sparc_order_regs_for_local_alloc): ...this. | |
24201 | (sparc_leaf_reg_remap): New function. | |
24202 | (sparc_conditional_register_usage): Do not modify leaf_reg_remap. | |
24203 | ||
24204 | 2021-06-06 David Edelsohn <dje.gcc@gmail.com> | |
24205 | ||
24206 | * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common): | |
24207 | Use assemble_name to output BSS section name. | |
24208 | ||
24209 | 2021-06-06 Uroš Bizjak <ubizjak@gmail.com> | |
24210 | ||
24211 | * config/i386/constraints.md (Bs): | |
24212 | Remove boolean operators from match_test RTX. | |
24213 | (Bw): Ditto. | |
24214 | (L): Ditto. | |
24215 | (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX. | |
24216 | (Wz): Ditto. | |
24217 | ||
24218 | 2021-06-06 Martin Liska <mliska@suse.cz> | |
24219 | ||
24220 | * doc/extend.texi: Add missing @headitem. | |
24221 | * doc/invoke.texi: Likewise. | |
24222 | * doc/objc.texi: Likewise. | |
24223 | ||
24224 | 2021-06-06 Martin Liska <mliska@suse.cz> | |
24225 | ||
24226 | * genhooks.c (emit_findices): Remove unused function. | |
24227 | (emit_documentation): Do not call emit_findices | |
24228 | and do not search for @Fcode directives. | |
24229 | ||
24230 | 2021-06-06 Martin Liska <mliska@suse.cz> | |
24231 | ||
24232 | * doc/invoke.texi: Remove extra character. | |
24233 | ||
24234 | 2021-06-05 Kewen Lin <linkw@linux.ibm.com> | |
24235 | ||
24236 | * config/sh/sh.md (doloop_end_split): Fix empty split condition. | |
24237 | ||
24238 | 2021-06-05 Kewen Lin <linkw@linux.ibm.com> | |
24239 | ||
24240 | * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3, | |
24241 | *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero, | |
24242 | *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero, | |
24243 | *minus_minus_snedi<W:mode>_zero): Fix empty split condition. | |
24244 | ||
24245 | 2021-06-05 Kewen Lin <linkw@linux.ibm.com> | |
24246 | ||
24247 | * config/or1k/or1k.md (*movdi): Fix empty split condition. | |
24248 | ||
24249 | 2021-06-05 Kewen Lin <linkw@linux.ibm.com> | |
24250 | ||
24251 | * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty | |
24252 | split condition. | |
24253 | ||
24254 | 2021-06-05 Kewen Lin <linkw@linux.ibm.com> | |
24255 | ||
24256 | * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec, | |
24257 | *zero_extendsidi2): Fix empty split condition. | |
24258 | ||
24259 | 2021-06-05 Jeff Law <jeffreyalaw@gmail.com> | |
24260 | ||
24261 | * config/h8300/addsub.md: Fix split condition in define_insn_and_split | |
24262 | patterns. | |
24263 | * config/h8300/bitfield.md: Likewise. | |
24264 | * config/h8300/combiner.md: Likewise. | |
24265 | * config/h8300/divmod.md: Likewise. | |
24266 | * config/h8300/extensions.md: Likewise. | |
24267 | * config/h8300/jumpcall.md: Likewise. | |
24268 | * config/h8300/movepush.md: Likewise. | |
24269 | * config/h8300/multiply.md: Likewise. | |
24270 | * config/h8300/other.md: Likewise. | |
24271 | * config/h8300/shiftrotate.md: Likewise. | |
24272 | * config/h8300/logical.md: Likewise. Fix split pattern to use | |
24273 | code iterator that somehow slipped through. | |
24274 | ||
24275 | 2021-06-04 Tobias Burnus <tobias@codesourcery.com> | |
24276 | ||
24277 | PR middle-end/100905 | |
24278 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
24279 | convert_local_omp_clauses): Handle OMP_CLAUSE_BIND. | |
24280 | ||
24281 | 2021-06-04 Martin Sebor <msebor@redhat.com> | |
24282 | ||
24283 | PR middle-end/100732 | |
24284 | * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls | |
24285 | with either source or destination argument of invalid type. | |
24286 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking | |
24287 | calls with arguments of invalid type. | |
24288 | ||
24289 | 2021-06-04 Martin Sebor <msebor@redhat.com> | |
24290 | ||
24291 | * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected | |
24292 | order. | |
24293 | (attr_access::vla_bounds): Also handle VLA bounds. | |
24294 | ||
24295 | 2021-06-04 Uroš Bizjak <ubizjak@gmail.com> | |
24296 | ||
24297 | * config/i386/predicates.md (GOT_memory_operand): | |
24298 | Implement using match_code RTXes. | |
24299 | (GOT32_symbol_operand): Ditto. | |
24300 | ||
24301 | 2021-06-04 Uroš Bizjak <ubizjak@gmail.com> | |
24302 | ||
24303 | PR target/100637 | |
24304 | * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): | |
24305 | Handle V2HI mode. | |
24306 | (ix86_expand_vector_init_general): Ditto. | |
24307 | Use SImode instead of word_mode for logic operations | |
24308 | when GET_MODE_SIZE (mode) < UNITS_PER_WORD. | |
24309 | (expand_vec_perm_even_odd_1): Assert that V2HI mode should be | |
24310 | implemented by expand_vec_perm_1. | |
24311 | (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes | |
24312 | should be implemented using standard shuffle patterns. | |
24313 | (ix86_vectorize_vec_perm_const): Handle V2HImode. Add V4HI and | |
24314 | V2HI modes to modes, implementable with shuffle for one operand. | |
24315 | * config/i386/mmx.md (*punpckwd): New insn_and_split pattern. | |
24316 | (*pshufw_1): New insn pattern. | |
24317 | (*vec_dupv2hi): Ditto. | |
24318 | (vec_initv2hihi): New expander. | |
24319 | ||
24320 | 2021-06-04 Kewen Lin <linkw@linux.ibm.com> | |
24321 | ||
24322 | * config/arm/vfp.md (no_literal_pool_df_immediate, | |
24323 | no_literal_pool_sf_immediate): Fix empty split condition. | |
24324 | ||
24325 | 2021-06-04 Kewen Lin <linkw@linux.ibm.com> | |
24326 | ||
24327 | * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext, | |
24328 | *tls_dynamic_gnu2_combine_32): Fix empty split condition. | |
24329 | * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt, | |
24330 | *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt, | |
24331 | *<sse4_1_avx2>_pblendvb_lt): Likewise. | |
24332 | ||
24333 | 2021-06-04 Jakub Jelinek <jakub@redhat.com> | |
24334 | ||
24335 | PR target/100887 | |
24336 | * config/i386/i386-expand.c (ix86_expand_vector_init): Handle | |
24337 | concatenation from half-sized modes with TImode elements. | |
24338 | ||
24339 | 2021-06-04 Claudiu Zissulescu <claziss@synopsys.com> | |
24340 | ||
24341 | * config/arc/arc.c (arc_override_options): Disable millicode | |
24342 | thunks when RF16 is on. | |
24343 | ||
24344 | 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org> | |
24345 | ||
24346 | * config/rs6000/rs6000.h (PROMOTE_MODE): Remove. | |
24347 | ||
24348 | 2021-06-04 Haochen Gui <guihaoc@gcc.gnu.org> | |
24349 | ||
24350 | * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): | |
24351 | Replace PROMOTE_MODE marco with its content. | |
24352 | ||
24353 | 2021-06-03 Kewen Lin <linkw@linux.ibm.com> | |
24354 | ||
24355 | * config/cris/cris.md (*addi_reload): Fix empty split condition. | |
24356 | ||
24357 | 2021-06-03 Jim Wilson <jimw@sifive.com> | |
24358 | ||
24359 | * config.gcc (riscv*-*-*): If --with-riscv-attribute not used, | |
24360 | turn it on for all riscv targets. | |
24361 | ||
24362 | 2021-06-03 Uroš Bizjak <ubizjak@gmail.com> | |
24363 | ||
24364 | PR target/100637 | |
24365 | * config/i386/i386-expand.c (ix86_expand_vector_set): | |
24366 | Handle V2HI and V4QI modes. | |
24367 | (ix86_expand_vector_extract): Ditto. | |
24368 | * config/i386/mmx.md (*pinsrw): New insn pattern. | |
24369 | (*pinsrb): Ditto. | |
24370 | (*pextrw): Ditto. | |
24371 | (*pextrw_zext): Ditto. | |
24372 | (*pextrb): Ditto. | |
24373 | (*pextrb_zext): Ditto. | |
24374 | (vec_setv2hi): New expander. | |
24375 | (vec_extractv2hihi): Ditto. | |
24376 | (vec_setv4qi): Ditto. | |
24377 | (vec_extractv4qiqi): Ditto. | |
24378 | (vec_setv8qi): Enable only for TARGET_SSE4_1. | |
24379 | (vec_extractv8qiqi): Ditto. | |
24380 | ||
24381 | 2021-06-03 Aaron Sawdey <acsawdey@linux.ibm.com> | |
24382 | ||
24383 | * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input | |
24384 | order to subf instruction. | |
24385 | * config/rs6000/fusion.md: Regenerate. | |
24386 | ||
24387 | 2021-06-03 Aldy Hernandez <aldyh@redhat.com> | |
24388 | ||
24389 | * calls.c (get_size_range): Use range_of_expr instead of | |
24390 | determine_value_range. | |
24391 | * tree-affine.c (expr_to_aff_combination): Same. | |
24392 | * tree-data-ref.c (split_constant_offset): Same. | |
24393 | * tree-vrp.c (determine_value_range_1): Remove. | |
24394 | (determine_value_range): Remove. | |
24395 | * tree-vrp.h (determine_value_range): Remove. | |
24396 | ||
24397 | 2021-06-03 Aldy Hernandez <aldyh@redhat.com> | |
24398 | ||
24399 | * function-tests.c (test_ranges): Call gimple_range_tests. | |
24400 | * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt | |
24401 | to get_tree_range. | |
24402 | * gimple-range.cc (fur_source::get_operand): Do not call | |
24403 | get_tree_range or gimple_range_global. | |
24404 | get_tree_range. | |
24405 | (get_tree_range): Move to value-query.cc. | |
24406 | Call get_arith_expr_range. | |
24407 | (gimple_ranger::range_of_expr): Add argument to get_tree_range. | |
24408 | Include gimple-range-tests.cc. | |
24409 | * gimple-range.h (fold_range): Add argument. | |
24410 | (get_tree_range): Remove. | |
24411 | * selftest.h (gimple_range_tests): New. | |
24412 | * value-query.cc (global_range_query::range_of_expr): Add | |
24413 | stmt argument. | |
24414 | (range_query::get_tree_range): Move from gimple-range.cc. | |
24415 | * value-query.h (class range_query): Add get_tree_range and | |
24416 | get_arith_expr_range. Make fur_source a friend. | |
24417 | * vr-values.c (vr_values::range_of_expr): Pass stmt to | |
24418 | get_tree_range. | |
24419 | * gimple-range-tests.cc: New file. | |
24420 | ||
24421 | 2021-06-03 Aldy Hernandez <aldyh@redhat.com> | |
24422 | ||
24423 | * gimple-range.cc (gimple_ranger::export_global_ranges): Call | |
24424 | update_global_range. | |
24425 | * value-query.cc (update_global_range): New. | |
24426 | * value-query.h (update_global_range): New. | |
24427 | ||
24428 | 2021-06-03 David Malcolm <dmalcolm@redhat.com> | |
24429 | ||
24430 | * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject | |
24431 | printing the same location twice if there are fix-it hints, | |
24432 | multiple locations, or a label. | |
24433 | ||
24434 | 2021-06-03 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
24435 | ||
24436 | * tree-vect-loop.c (vect_transform_loop): Use main loop's various' | |
24437 | thresholds to narrow the upper bound on epilogue iterations. | |
24438 | ||
24439 | 2021-06-03 Christophe Lyon <christophe.lyon@linaro.org> | |
24440 | ||
24441 | * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec. | |
24442 | (mve_vabsq_s<mode>): Likewise. | |
24443 | * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2. | |
24444 | * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete. | |
24445 | * config/arm/vec-common.md (neg<mode>2): Rename to | |
24446 | <absneg_str><mode>2. | |
24447 | ||
24448 | 2021-06-03 Claudiu Zissulescu <claziss@synopsys.com> | |
24449 | ||
24450 | * common/config/arc/arc-common.c (arc_option_optimization_table): | |
24451 | Remove malign-call. | |
24452 | * config/arc/arc.c (arc_unalign_branch_p): Remove unused function. | |
24453 | * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro. | |
24454 | (INDEX_REG_CLASS): Only refer to GENERAL_REGS. | |
24455 | * config/arc/arc.md (abssi2_mixed): Remove pattern. | |
24456 | * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete. | |
24457 | (malign-call): Likewise. | |
24458 | (mmixed-code): Likewise. | |
24459 | * doc/invoke.texi (ARC): Update doc. | |
24460 | ||
24461 | 2021-06-03 Martin Liska <mliska@suse.cz> | |
24462 | ||
24463 | * common.opt: Use proper Enum values. | |
24464 | * opts.c (COVERAGE_SANITIZER_OPT): Remove. | |
24465 | (parse_sanitizer_options): Handle only sanitizer_opts. | |
24466 | (common_handle_option): Just assign value. | |
24467 | ||
24468 | 2021-06-03 Eric Botcazou <ebotcazou@adacore.com> | |
24469 | ||
24470 | PR ipa/99122 | |
24471 | * tree-inline.c (inline_forbidden_p): Remove test on return type. | |
24472 | ||
24473 | 2021-06-03 Eric Botcazou <ebotcazou@adacore.com> | |
24474 | ||
24475 | * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate | |
24476 | DW_OP_GNU_variable_value referencing an existing DIE at file scope. | |
24477 | (type_byte_size): Inline into... | |
24478 | (add_byte_size_attribute): ...this and call add_scalar_info. | |
24479 | ||
24480 | 2021-06-03 Eric Botcazou <ebotcazou@adacore.com> | |
24481 | ||
24482 | * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo. | |
24483 | (typed_binop_from_tree): New function. | |
24484 | (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type, | |
24485 | turn a divide by a power of 2 into a shift. | |
24486 | <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the | |
24487 | size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a | |
24488 | typed divide by calling typed_binop_from_tree. | |
24489 | ||
24490 | 2021-06-03 Eric Botcazou <ebotcazou@adacore.com> | |
24491 | ||
24492 | * dwarf2out.c (scompare_loc_descriptor): Fix head comment. | |
24493 | (is_handled_procedure_type): Likewise. | |
24494 | (struct loc_descr_context): Add strict_signedness field. | |
24495 | (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type, | |
24496 | DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret. | |
24497 | (resolve_args_picking): Minor tweak. | |
24498 | (function_to_dwarf_procedure): Initialize strict_signedness field. | |
24499 | (type_byte_size): Likewise. | |
24500 | (field_byte_offset): Likewise. | |
24501 | (gen_descr_array_type_die): Likewise. | |
24502 | (gen_variant_part): Likewise. | |
24503 | (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness | |
24504 | to true when a context is present before evaluating the arguments. | |
24505 | <COND_EXPR>: Do not generate a useless comparison with zero. | |
24506 | When dereferencing an address, if strict_signedness is true and the | |
24507 | type is small and signed, use DW_OP_deref_type to do the dereference | |
24508 | and then DW_OP_convert to convert back to the generic type. | |
24509 | ||
24510 | 2021-06-03 Jakub Jelinek <jakub@redhat.com> | |
24511 | ||
24512 | PR c++/100859 | |
24513 | * tree-inline.c (copy_tree_body_r): Handle iterators on | |
24514 | OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND. | |
24515 | ||
24516 | 2021-06-03 Kewen Lin <linkw@linux.ibm.com> | |
24517 | ||
24518 | * config/arc/arc.md (*bbit_di): Remove. | |
24519 | ||
24520 | 2021-06-02 Christoph Muellner <cmuellner@gcc.gnu.org> | |
24521 | ||
24522 | PR rtl-optimization/100264 | |
24523 | * ree.c (get_sub_rtx): Ignore SET expressions without register | |
24524 | destinations and remove assertion, as it is not valid anymore | |
24525 | with this new behaviour. | |
24526 | (merge_def_and_ext): Eliminate destination check for register | |
24527 | as such SET expressions can't occur anymore. | |
24528 | (combine_reaching_defs): Likewise. | |
24529 | ||
24530 | 2021-06-02 Jakub Jelinek <jakub@redhat.com> | |
24531 | ||
24532 | PR target/100841 | |
24533 | * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid | |
24534 | -Wtype-limits warnings. | |
24535 | (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition | |
24536 | in operands to avoid -Wsign-compare warnings. | |
24537 | ||
24538 | 2021-06-02 Pat Haugen <pthaugen@linux.ibm.com> | |
24539 | ||
24540 | * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use | |
24541 | gen_frame_store. | |
24542 | ||
24543 | 2021-06-02 Vineet Gupta <vgupta@synopsys.com> | |
24544 | ||
24545 | * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux. | |
24546 | ||
24547 | 2021-06-02 Ilya Leoshkevich <iii@linux.ibm.com> | |
24548 | ||
24549 | * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single | |
24550 | constraint. | |
24551 | * config/s390/subst.md(cconly_subst): Use a single constraint | |
24552 | in (match_scratch). | |
24553 | ||
24554 | 2021-06-02 Martin Liska <mliska@suse.cz> | |
24555 | ||
24556 | * ipa-icf.h: Use auto_vec for memory_access_types. | |
24557 | ||
24558 | 2021-06-02 Jeff Law <jeffreyalaw@gmail.com> | |
24559 | ||
24560 | * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused | |
24561 | argument from prototype. | |
24562 | (output_logical_op): Add rtx_code argument. | |
24563 | (compute_logical_op_length): Likewise. | |
24564 | * config/h8300/h8300.c (h8300_and_costs): Pass additional argument | |
24565 | to compute_a_shift_length. | |
24566 | (output_logical_op); New argument with the rtx code rather than | |
24567 | extracting it from an operand. Handle QImode too. | |
24568 | (compute_logical_op_length): Similary. | |
24569 | (compute_a_shift_length): Drop unused argument. | |
24570 | * config/h8300/h8300.md (logicals): New code iterator. | |
24571 | * config/h8300/logical.md (<code><mode>3 expander): Combine | |
24572 | the "and" expander with the "ior"/"xor" expander. | |
24573 | (bclr<mode>msx): Combine the QI/HI mode patterns. | |
24574 | (<logical><mode>3 insns): Use code iterator rather than match_operator. | |
24575 | Handle QImode as well. Update call to output_logical_op and | |
24576 | compute_logical_op_length to pass in rtx_code | |
24577 | Fix split condition on all define_insn_and_split patterns. | |
24578 | (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering | |
24579 | the flags and setting ZN via existing define_subst. | |
24580 | * config/h8300/shiftrotate.md: Drop unused argument from | |
24581 | calls to compute_a_shift_length. | |
24582 | Signed-off-by: Jeff Law <jeffreyalaw@gmail.com> | |
24583 | ||
24584 | 2021-06-01 Andrew Pinski <apinski@marvell.com> | |
24585 | ||
24586 | PR tree-optimization/25290 | |
24587 | * tree-ssa-phiopt.c (match_simplify_replacement): | |
24588 | New function. | |
24589 | (tree_ssa_phiopt_worker): Use match_simplify_replacement. | |
24590 | (two_value_replacement): Change the comment about | |
24591 | conditional_replacement. | |
24592 | (conditional_replacement): Delete. | |
24593 | ||
24594 | 2021-06-01 Andrew Pinski <apinski@marvell.com> | |
24595 | ||
24596 | PR tree-optimization/95481 | |
24597 | * tree-tailcall.c (find_tail_calls): Handle empty typed | |
24598 | return decls. | |
24599 | ||
24600 | 2021-06-01 Andrew Pinski <apinski@marvell.com> | |
24601 | ||
24602 | * gimplify.c (zero_sized_field_decl): Delete | |
24603 | (zero_sized_type): Delete | |
24604 | (gimplify_init_ctor_eval): Use is_empty_type instead | |
24605 | of zero_sized_field_decl. | |
24606 | (gimplify_modify_expr): Use is_empty_type instead of | |
24607 | zero_sized_type. | |
24608 | ||
24609 | 2021-06-01 Jason Merrill <jason@redhat.com> | |
24610 | ||
24611 | PR c++/91859 | |
24612 | * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment. | |
24613 | ||
24614 | 2021-06-01 Jason Merrill <jason@redhat.com> | |
24615 | ||
24616 | PR c++/94492 | |
24617 | * diagnostic.h (warning_enabled_at): Declare. | |
24618 | * diagnostic.c (diagnostic_enabled): Factor out from... | |
24619 | (diagnostic_report_diagnostic): ...here. | |
24620 | (warning_enabled_at): New. | |
24621 | ||
24622 | 2021-06-01 Aldy Hernandez <aldyh@redhat.com> | |
24623 | ||
24624 | * gimple-ssa-evrp.c: Enable exporting of global ranges. | |
24625 | ||
24626 | 2021-06-01 Martin Liska <mliska@suse.cz> | |
24627 | ||
24628 | PR other/100826 | |
24629 | * doc/invoke.texi: Mention that -fgcse-after-reload | |
24630 | is enabled with -O3. | |
24631 | ||
24632 | 2021-06-01 liuhongt <hongtao.liu@intel.com> | |
24633 | ||
24634 | PR tree-optimization/98365 | |
24635 | * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function. | |
24636 | (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction. | |
24637 | (convert_scalar_cond_reduction): Ditto. | |
24638 | (predicate_scalar_phi): Ditto. | |
24639 | ||
24640 | 2021-06-01 Andrew MacLeod <amacleod@redhat.com> | |
24641 | ||
24642 | PR tree-optimization/100781 | |
24643 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new | |
24644 | value calculation by default. | |
24645 | (ranger_cache::enable_new_values): New. | |
24646 | (ranger_cache::disable_new_values): New. | |
24647 | (ranger_cache::push_poor_value): Check if new values are allowed. | |
24648 | * gimple-range-cache.h (class ranger_cache): New member/methods. | |
24649 | * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug | |
24650 | statement, and disable/renable new value calculation. | |
24651 | ||
24652 | 2021-06-01 Andrew MacLeod <amacleod@redhat.com> | |
24653 | ||
24654 | * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete. | |
24655 | (ranger_cache::range_of_def): New. | |
24656 | (ranger_cache::entry_range): New. | |
24657 | (ranger_cache::exit_range): New. | |
24658 | (ranger_cache::range_of_expr): Adjust. | |
24659 | (ranger_cache::range_on_edge): Adjust. | |
24660 | (ranger_cache::propagate_cache): Call exit_range directly. | |
24661 | * gimple-range-cache.h (class ranger_cache): Adjust. | |
24662 | ||
24663 | 2021-06-01 Andrew MacLeod <amacleod@redhat.com> | |
24664 | ||
24665 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for | |
24666 | gori_compute being a member rather than base class. | |
24667 | dervied call to member call. | |
24668 | (ranger_cache::dump): No longer dump gori_map. | |
24669 | (ranger_cache::dump_bb): New. | |
24670 | (ranger_cache::get_non_stale_global_range): Adjust for gori_compute | |
24671 | being a member rather than base class. | |
24672 | (ranger_cache::set_global_range): Ditto. | |
24673 | (ranger_cache::ssa_range_in_bb): Ditto. | |
24674 | (ranger_cache::range_of_expr): New. | |
24675 | (ranger_cache::range_on_edge): New. | |
24676 | (ranger_cache::block_range): Adjust for gori_computes. Debug changes. | |
24677 | (ranger_cache::propagate_cache): Adjust debugging output. | |
24678 | (ranger_cache::fill_block_cache): Adjust for gori_computes. Debug | |
24679 | output changes. | |
24680 | * gimple-range-cache.h (class ranger_cache): Make gori_compute a | |
24681 | member, and inherit from range_query instead. | |
24682 | (ranger_cache::dump_bb): New. split from dump. | |
24683 | * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete. | |
24684 | (gori_compute::expr_range_at_stmt): Delete. | |
24685 | (gori_compute::compute_name_range_op): Delete. | |
24686 | (gori_compute::compute_operand_range_switch): Add fur_source. | |
24687 | (gori_compute::compute_operand_range): Add fur_source param, inline | |
24688 | old compute_name_range_op and optimize_logical_operands. | |
24689 | (struct tf_range): Delete. | |
24690 | (gori_compute::logical_combine): Adjust | |
24691 | (gori_compute::optimize_logical_operands): Delete. | |
24692 | (gori_compute::compute_logical_operands_in_chain): Delete. | |
24693 | (gori_compute::compute_logical_operands): Adjust. | |
24694 | (gori_compute::compute_operand1_range): Adjust to fur_source. | |
24695 | (gori_compute::compute_operand2_range): Ditto. | |
24696 | (gori_compute::compute_operand1_and_operand2_range): Ditto. | |
24697 | (gori_compute::outgoing_edge_range_p): Add range_query parameter, | |
24698 | and adjust to fur_source. | |
24699 | * gimple-range-gori.h (class gori_compute): Simplify and adjust to | |
24700 | range_query and fur_source. | |
24701 | * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge | |
24702 | from the ranger_cache.. | |
24703 | (gimple_ranger::fold_range_internal): Adjust to base class change of | |
24704 | ranger_cache. | |
24705 | (gimple_ranger::dump_bb): Adjust dump. | |
24706 | * gimple-range.h (gimple_ranger):export gori computes object. | |
24707 | ||
24708 | 2021-06-01 Andrew MacLeod <amacleod@redhat.com> | |
24709 | ||
24710 | PR tree-optimization/100774 | |
24711 | * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range): | |
24712 | Constant values are also not stale. | |
24713 | (ranger_cache::set_global_range): Range invariant values should also | |
24714 | have the correct timestamp. | |
24715 | ||
24716 | 2021-05-31 Martin Liska <mliska@suse.cz> | |
24717 | ||
24718 | * tree-streamer-in.c (unpack_ts_function_decl_value_fields): | |
24719 | Unpack FUNCTION_DECL_DECL_TYPE. | |
24720 | * tree-streamer-out.c (pack_ts_function_decl_value_fields): | |
24721 | Stream FUNCTION_DECL_DECL_TYPE instead of | |
24722 | DECL_IS_OPERATOR_NEW_P. | |
24723 | * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE | |
24724 | macro. | |
24725 | (DECL_IS_OPERATOR_NEW_P): Likewise. | |
24726 | (DECL_IS_OPERATOR_DELETE_P): Likewise. | |
24727 | (DECL_LAMBDA_FUNCTION_P): Likewise. | |
24728 | ||
24729 | 2021-05-31 Richard Biener <rguenther@suse.de> | |
24730 | ||
24731 | PR c++/88601 | |
24732 | * internal-fn.c (expand_SHUFFLEVECTOR): Define. | |
24733 | * internal-fn.def (SHUFFLEVECTOR): New. | |
24734 | * internal-fn.h (expand_SHUFFLEVECTOR): Declare. | |
24735 | * doc/extend.texi: Document __builtin_shufflevector. | |
24736 | ||
24737 | 2021-05-31 Peter Bergner <bergner@linux.ibm.com> | |
24738 | ||
24739 | PR target/99842 | |
24740 | * config/rs6000/predicates.md(mma_assemble_input_operand): Allow | |
24741 | indexed form addresses. | |
24742 | ||
24743 | 2021-05-29 Jeff Law <jlaw@tachyum.com> | |
24744 | ||
24745 | * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused | |
24746 | parameter. Call callers fixed. | |
24747 | (push): Likewise. | |
24748 | (output_plussi): Add FALLTHRU markers. | |
24749 | (h8300_shift_needs_scratch_p): Add gcc_unreachable marker. | |
24750 | ||
24751 | 2021-05-29 Jakub Jelinek <jakub@redhat.com> | |
24752 | ||
24753 | PR middle-end/99928 | |
24754 | * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd | |
24755 | combined with parallel, make sure to add shared clause to | |
24756 | parallel for explicit linear clause. | |
24757 | ||
24758 | 2021-05-29 Aldy Hernandez <aldyh@redhat.com> | |
24759 | ||
24760 | PR tree-optimization/100787 | |
24761 | * gimple-ssa-evrp.c: Disable exporting of global ranges. | |
24762 | ||
24763 | 2021-05-28 Jason Merrill <jason@redhat.com> | |
24764 | ||
24765 | * tree-iterator.h (struct tree_stmt_iterator): Add operator++, | |
24766 | operator--, operator*, operator==, and operator!=. | |
24767 | (class tsi_range): New. | |
24768 | ||
24769 | 2021-05-28 Richard Biener <rguenther@suse.de> | |
24770 | ||
24771 | PR tree-optimization/100778 | |
24772 | * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly | |
24773 | trapping ops in different BBs. | |
24774 | ||
24775 | 2021-05-28 Richard Biener <rguenther@suse.de> | |
24776 | ||
24777 | PR ipa/100791 | |
24778 | * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack | |
24779 | copy fntype from original call. | |
24780 | ||
24781 | 2021-05-28 Martin Liska <mliska@suse.cz> | |
24782 | ||
24783 | PR gcov-profile/100751 | |
24784 | * doc/gcov.texi: Revert partially a hunk that was wrong. | |
24785 | ||
24786 | 2021-05-28 Cooper Qu <cooper.qu@linux.alibaba.com> | |
24787 | ||
24788 | * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi): | |
24789 | Defined. | |
24790 | (HAVE_sync_compare_and_swaphi): Likewise. | |
24791 | (HAVE_sync_compare_and_swapsi): Likewise. | |
24792 | ||
24793 | 2021-05-28 Jakub Jelinek <jakub@redhat.com> | |
24794 | ||
24795 | PR middle-end/99928 | |
24796 | * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define. | |
24797 | ||
24798 | 2021-05-28 Tobias Burnus <tobias@codesourcery.com> | |
24799 | ||
24800 | * gimplify.c (gimplify_omp_affinity): New. | |
24801 | (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards. | |
24802 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY. | |
24803 | * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY. | |
24804 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause. | |
24805 | (walk_tree_1): Handle OMP_CLAUSE_AFFINITY. | |
24806 | ||
24807 | 2021-05-28 Joern Rennecke <joern.rennecke@riscy-ip.com> | |
24808 | Richard Biener <rguenther@suse.de> | |
24809 | ||
24810 | * match.pd <popcount & / + pattern matching>: | |
24811 | When generating popcount directly fails, try doing it in two halves. | |
24812 | ||
24813 | 2021-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
24814 | ||
24815 | * Makefile.in (generated_files): Add gimple-match.c and | |
24816 | generic-match.c | |
24817 | ||
24818 | 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com> | |
24819 | ||
24820 | * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP. | |
24821 | ||
24822 | 2021-05-28 Joern Rennecke <joern.rennecke@embecosm.com> | |
24823 | ||
24824 | * gensupport.c (alter_constraints): Add MATCH_SCRATCH case. | |
24825 | ||
24826 | 2021-05-28 Kewen Lin <linkw@linux.ibm.com> | |
24827 | ||
24828 | PR tree-optimization/99398 | |
24829 | * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases | |
24830 | where the fed operands are CTOR/CST and propagated through | |
24831 | VIEW_CONVERT_EXPR. Call vec_perm_indices::new_shrunk_vector. | |
24832 | * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New | |
24833 | function. | |
24834 | * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New | |
24835 | declare. | |
24836 | ||
24837 | 2021-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
24838 | ||
24839 | * config/i386/mmx.md (addv2sf3): Do not call | |
24840 | ix86_fixup_binary_operands_no_copy. | |
24841 | (subv2sf3): Ditto. | |
24842 | (mulv2sf3): Ditto. | |
24843 | (<smaxmin:code>v2sf3): Ditto. | |
24844 | (<plusminus:insn><MMXMODEI:mode>3): Ditto. | |
24845 | (<plusminus:insn><VI_32:mode>3): Remove expander. | |
24846 | (<plusminus:insn><VI_32:mode>3): Rename from | |
24847 | "*<plusminus:insn><VI_32:mode>3". | |
24848 | (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy. | |
24849 | (mulv2hi3): Remove expander. | |
24850 | (mulv2hi3): Rename from *mulv2hi3. | |
24851 | (<s>mulv2hi3_highpart): Remove expander. | |
24852 | (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart. | |
24853 | (<smaxmin:code><MMXMODE14:mode>3): Rename from | |
24854 | "*mmx_<smaxmin:code><MMXMODE14:mode>3". | |
24855 | (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander. | |
24856 | (SMAXMIN_MMXMODEI): Remove mode iterator. | |
24857 | (<smaxmin:code>v4hi3): New expander. | |
24858 | (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3. | |
24859 | (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3. | |
24860 | (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander. | |
24861 | (SMAXMIN_VI_32): Remove mode iterator. | |
24862 | (<umaxmin:code><MMXMODE24:mode>3): Rename from | |
24863 | "*mmx_<umaxmin:code><MMXMODE24:mode>3". | |
24864 | (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander. | |
24865 | (UMAXMIN_MMXMODEI): Remove mode iterator. | |
24866 | (<umaxmin:code>v8qi3): New expander. | |
24867 | (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3. | |
24868 | (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3. | |
24869 | (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander. | |
24870 | (UMAXMIN_VI_32): Remove mode iterator. | |
24871 | (<any_shift:insn>v2hi3): Remove expander. | |
24872 | (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3. | |
24873 | (<any_logic:code><MMXMODEI:mode>3): Do not call | |
24874 | ix86_fixup_binary_operands_no_copy. | |
24875 | (<any_logic:code><VI_32:mode>3): Remove expander. | |
24876 | (<any_logic:code><VI_32:mode>3): Rename from | |
24877 | "*<any_logic:code><VI_32:mode>3". | |
24878 | (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy. | |
24879 | * config/i386/sse.md (div<VF2:mode>3): Do not call | |
24880 | ix86_fixup_binary_operands_no_copy. | |
24881 | (div<VF1:mode>3): Ditto. | |
24882 | (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto. | |
24883 | (smulhrsv4hi3): Ditto. | |
24884 | (smulhrsv2hi3): Ditto. | |
24885 | ||
24886 | 2021-05-27 Martin Sebor <msebor@redhat.com> | |
24887 | ||
24888 | * ggc.h (gt_ggc_mx): Add overloads for all integers. | |
24889 | (gt_pch_nx): Same. | |
24890 | * hash-map.h (class hash_map): Add pch_nx_helper overloads for all | |
24891 | integers. | |
24892 | (hash_map::operator==): New function. | |
24893 | ||
24894 | 2021-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
24895 | ||
24896 | PR target/100637 | |
24897 | * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): | |
24898 | For TARGET_XOP bypass SSE comparisons for all supported vector modes. | |
24899 | * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern. | |
24900 | (*xop_maskcmp<VI_32:mode>3): Ditto. | |
24901 | (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto. | |
24902 | (*xop_maskcmp_uns<VI_32:mode>3): Ditto. | |
24903 | ||
24904 | 2021-05-27 Richard Earnshaw <rearnsha@arm.com> | |
24905 | ||
24906 | PR target/100767 | |
24907 | * config/arm/arm.c (arm_configure_build_target): Remove parameter | |
24908 | opts_set, directly check opts parameters for being non-null. | |
24909 | (arm_option_restore): Update call to arm_configure_build_target. | |
24910 | (arm_option_override): Likewise. | |
24911 | (arm_can_inline_p): Likewise. | |
24912 | (arm_valid_target_attribute_tree): Likewise. | |
24913 | * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. | |
24914 | * config/arm/arm-protos.h (arm_configure_build_target): Adjust | |
24915 | prototype. | |
24916 | ||
24917 | 2021-05-27 Aldy Hernandez <aldyh@redhat.com> | |
24918 | ||
24919 | * vr-values.c (simplify_conversion_using_ranges): Use | |
24920 | get_range_query instead of get_global_range_query. | |
24921 | ||
24922 | 2021-05-27 Aldy Hernandez <aldyh@redhat.com> | |
24923 | ||
24924 | * gimple-range.cc (get_range_global): Move to value-query.cc. | |
24925 | (gimple_range_global): Same. | |
24926 | (get_global_range_query): Same. | |
24927 | (global_range_query::range_of_expr): Same. | |
24928 | * gimple-range.h (class global_range_query): Move to | |
24929 | value-query.h. | |
24930 | (gimple_range_global): Same. | |
24931 | * tree-ssanames.c (get_range_info): Move to value-query.cc. | |
24932 | (get_ptr_nonnull): Same. | |
24933 | * tree-ssanames.h (get_range_info): Remove. | |
24934 | (get_ptr_nonnull): Remove. | |
24935 | * value-query.cc (get_ssa_name_range_info): Move from | |
24936 | tree-ssanames.c. | |
24937 | (get_ssa_name_ptr_info_nonnull): Same. | |
24938 | (get_range_global): Move from gimple-range.cc. | |
24939 | (gimple_range_global): Same. | |
24940 | (get_global_range_query): Same. | |
24941 | (global_range_query::range_of_expr): Same. | |
24942 | * value-query.h (class global_range_query): Move from | |
24943 | gimple-range.h. | |
24944 | (gimple_range_global): Same. | |
24945 | ||
24946 | 2021-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
24947 | ||
24948 | PR target/100637 | |
24949 | * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern. | |
24950 | (uavgv2hi3_ceil): Ditto. | |
24951 | ||
24952 | 2021-05-26 Eric Botcazou <ebotcazou@adacore.com> | |
24953 | ||
24954 | PR c/100653 | |
24955 | * doc/extend.texi (scalar_storage_order): Rephrase slightly. | |
24956 | ||
24957 | 2021-05-26 Aldy Hernandez <aldyh@redhat.com> | |
24958 | ||
24959 | * tree-ssanames.c (get_range_info): Merge both copies of | |
24960 | get_range_info into one that works with irange. | |
24961 | * tree-ssanames.h (get_range_info): Remove version that works on | |
24962 | wide_ints. | |
24963 | ||
24964 | 2021-05-26 Aldy Hernandez <aldyh@redhat.com> | |
24965 | ||
24966 | * builtins.c (check_nul_terminated_array): Convert to get_range_query. | |
24967 | (expand_builtin_strnlen): Same. | |
24968 | (determine_block_size): Same. | |
24969 | * fold-const.c (expr_not_equal_to): Same. | |
24970 | * gimple-fold.c (size_must_be_zero_p): Same. | |
24971 | * gimple-match-head.c: Include gimple-range.h. | |
24972 | * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query. | |
24973 | * gimple-ssa-warn-restrict.c | |
24974 | (builtin_memref::extend_offset_range): Same. | |
24975 | * graphite-sese-to-poly.c (add_param_constraints): Same. | |
24976 | * internal-fn.c (get_min_precision): Same. | |
24977 | * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same. | |
24978 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same. | |
24979 | * match.pd: Same. | |
24980 | * tree-data-ref.c (split_constant_offset): Same. | |
24981 | (dr_step_indicator): Same. | |
24982 | * tree-dfa.c (get_ref_base_and_extent): Same. | |
24983 | * tree-scalar-evolution.c (iv_can_overflow_p): Same. | |
24984 | * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same. | |
24985 | (determine_value_range): Same. | |
24986 | (record_nonwrapping_iv): Same. | |
24987 | (infer_loop_bounds_from_signedness): Same. | |
24988 | (scev_var_range_cant_overflow): Same. | |
24989 | * tree-ssa-phiopt.c (two_value_replacement): Same. | |
24990 | * tree-ssa-pre.c (insert_into_preds_of_block): Same. | |
24991 | * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same. | |
24992 | * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same. | |
24993 | (get_range): Same. | |
24994 | (dump_strlen_info): Same. | |
24995 | (set_strlen_range): Same. | |
24996 | (maybe_diag_stxncpy_trunc): Same. | |
24997 | (get_len_or_size): Same. | |
24998 | (handle_integral_assign): Same. | |
24999 | * tree-ssa-structalias.c (find_what_p_points_to): Same. | |
25000 | * tree-ssa-uninit.c (find_var_cmp_const): Same. | |
25001 | * tree-switch-conversion.c (bit_test_cluster::emit): Same. | |
25002 | * tree-vect-patterns.c (vect_get_range_info): Same. | |
25003 | (vect_recog_divmod_pattern): Same. | |
25004 | * tree-vrp.c (intersect_range_with_nonzero_bits): Same. | |
25005 | (register_edge_assert_for_2): Same. | |
25006 | (determine_value_range_1): Same. | |
25007 | * tree.c (get_range_pos_neg): Same. | |
25008 | * vr-values.c (vr_values::get_lattice_entry): Same. | |
25009 | (vr_values::update_value_range): Same. | |
25010 | (simplify_conversion_using_ranges): Same. | |
25011 | ||
25012 | 2021-05-26 Aldy Hernandez <aldyh@redhat.com> | |
25013 | ||
25014 | * gimple-ssa-warn-alloca.c (alloca_call_type): Use | |
25015 | get_range_query instead of query argument. | |
25016 | (pass_walloca::execute): Enable and disable global ranger. | |
25017 | ||
25018 | 2021-05-26 Aldy Hernandez <aldyh@redhat.com> | |
25019 | ||
25020 | * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call | |
25021 | enable_ranger. | |
25022 | (rvrp_folder::~rvrp_folder): Call disable_ranger. | |
25023 | (hybrid_folder::hybrid_folder): Call enable_ranger. | |
25024 | (hybrid_folder::~hybrid_folder): Call disable_ranger. | |
25025 | ||
25026 | 2021-05-26 Aldy Hernandez <aldyh@redhat.com> | |
25027 | ||
25028 | * function.c (allocate_struct_function): Set cfun->x_range_query. | |
25029 | * function.h (struct function): Declare x_range_query. | |
25030 | (get_range_query): New. | |
25031 | (get_global_range_query): New. | |
25032 | * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache): | |
25033 | Remove call to safe_grow_cleared. | |
25034 | * gimple-range.cc (get_range_global): New. | |
25035 | (gimple_range_global): Move from gimple-range.h. | |
25036 | (get_global_range_query): New. | |
25037 | (global_range_query::range_of_expr): New. | |
25038 | (enable_ranger): New. | |
25039 | (disable_ranger): New. | |
25040 | * gimple-range.h (gimple_range_global): Move to gimple-range.cc. | |
25041 | (class global_range_query): New. | |
25042 | (enable_ranger): New. | |
25043 | (disable_ranger): New. | |
25044 | * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename | |
25045 | dump_all_value_ranges to dump. | |
25046 | * tree-vrp.c (vrp_prop::finalize): Same. | |
25047 | * value-query.cc (range_query::dump): New. | |
25048 | * value-query.h (range_query::dump): New. | |
25049 | * vr-values.c (vr_values::dump_all_value_ranges): Rename to... | |
25050 | (vr_values::dump): ...this. | |
25051 | * vr-values.h (class vr_values): Rename dump_all_value_ranges to | |
25052 | dump and make virtual. | |
25053 | ||
25054 | 2021-05-26 Uroš Bizjak <ubizjak@gmail.com> | |
25055 | ||
25056 | * config/i386/i386.c (ix86_autovectorize_vector_modes): | |
25057 | Add V4QImode and V16QImode for TARGET_SSE2. | |
25058 | * doc/sourcebuild.texi (Vector-specific attributes): | |
25059 | Add vect64 and vect32 description. | |
25060 | ||
25061 | 2021-05-26 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
25062 | ||
25063 | * gimple-range-gori.cc (range_def_chain::register_dependency): | |
25064 | Resize m_def_chain when needed. | |
25065 | ||
25066 | 2021-05-26 Christophe Lyon <christophe.lyon@linaro.org> | |
25067 | ||
25068 | * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'. | |
25069 | * config/arm/neon.md (reduc_plus_scal_<mode>): Move to .. | |
25070 | * config/arm/vec-common.md: .. here. Add support for MVE. | |
25071 | ||
25072 | 2021-05-26 Jakub Jelinek <jakub@redhat.com> | |
25073 | ||
25074 | * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove | |
25075 | register keywords. | |
25076 | * config/microblaze/microblaze.c (microblaze_legitimize_address, | |
25077 | call_internal1, | |
25078 | microblaze_option_override, print_operand): Likewise. | |
25079 | * config/microblaze/microblaze.md (call_internal_plt, | |
25080 | call_value_intern_plt, call_value_intern): Likewise. | |
25081 | * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise. | |
25082 | * config/iq2000/iq2000.md (call_internal1, call_value_internal1, | |
25083 | call_value_multiple_internal1): Likewise. | |
25084 | * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise. | |
25085 | ||
25086 | 2021-05-26 Jan-Benedict Glaw <jbglaw@lug-owl.de> | |
25087 | ||
25088 | * config/arc/arc.c (arc_address_cost, arc_print_operand_address, | |
25089 | arc_ccfsm_advance, symbolic_reference_mentioned_p, | |
25090 | arc_raw_symbolic_reference_mentioned_p): Remove register | |
25091 | keyword. | |
25092 | ||
25093 | 2021-05-26 Jakub Jelinek <jakub@redhat.com> | |
25094 | ||
25095 | PR libgomp/100573 | |
25096 | * omp-low.c: Include omp-offload.h. | |
25097 | (create_omp_child_function): If current_function_decl has | |
25098 | "omp declare target" attribute and is_gimple_omp_offloaded, | |
25099 | remove that attribute from the copy of attribute list and | |
25100 | add "omp target entrypoint" attribute instead. | |
25101 | (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.* | |
25102 | variables for offloading if in omp_maybe_offloaded_ctx. | |
25103 | * omp-offload.c (pass_omp_target_link::execute): Nullify second | |
25104 | argument to GOMP_target_data_ext in offloaded code. | |
25105 | ||
25106 | 2021-05-26 Geng Qi <gengqi@linux.alibaba.com> | |
25107 | ||
25108 | * config/csky/csky.c (csky_can_change_mode_class): Delete. | |
25109 | For csky, HF/SF mode use the low bits of VREGS. | |
25110 | ||
25111 | 2021-05-26 Eric Botcazou <ebotcazou@adacore.com> | |
25112 | ||
25113 | * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a | |
25114 | DECL which is a reference for OMP. | |
25115 | ||
25116 | 2021-05-26 Martin Liska <mliska@suse.cz> | |
25117 | ||
25118 | PR gcov-profile/100751 | |
25119 | * doc/gcov.texi: Document that __gcov_dump can be called just | |
25120 | once and that __gcov_reset resets run-time counters. | |
25121 | ||
25122 | 2021-05-26 Martin Liska <mliska@suse.cz> | |
25123 | ||
25124 | * doc/install.texi: Port relevant part from install-old.texi | |
25125 | and re-generate list of CPUs and systems. | |
25126 | ||
25127 | 2021-05-26 Martin Liska <mliska@suse.cz> | |
25128 | ||
25129 | * Makefile.in: Remove it. | |
25130 | * doc/include/fdl.texi: Update next/previous chapters. | |
25131 | * doc/install.texi: Likewise. | |
25132 | * doc/install-old.texi: Removed. | |
25133 | ||
25134 | 2021-05-26 Geng Qi <gengqi@linux.alibaba.com> | |
25135 | ||
25136 | * config/csky/csky.c (ck810_legitimate_index_p): Support | |
25137 | "base + index" with DF mode. | |
25138 | * config/csky/constraints.md ("Y"): New constraint for memory operands | |
25139 | without index register. | |
25140 | * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m" | |
25141 | when mov between memory and general registers, and lower their priority. | |
25142 | * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise. | |
25143 | ||
25144 | 2021-05-26 Geng Qi <gengqi@linux.alibaba.com> | |
25145 | ||
25146 | * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete. | |
25147 | ||
25148 | 2021-05-26 Geng Qi <gengqi@linux.alibaba.com> | |
25149 | ||
25150 | * config/csky/csky.md (untyped_call): Emit clobber for return | |
25151 | registers to mark them used. | |
25152 | ||
25153 | 2021-05-26 Geng Qi <gengqi@linux.alibaba.com> | |
25154 | ||
25155 | * config/csky/csky.md (cskyv2_sextend_ldbs): New. | |
25156 | ||
25157 | 2021-05-26 Andrew Pinski <apinski@marvell.com> | |
25158 | ||
25159 | * match.pd (x < 0 ? ~y : y): New patterns. | |
25160 | ||
25161 | 2021-05-26 Andrew Pinski <apinski@marvell.com> | |
25162 | ||
25163 | * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0, | |
25164 | A?POW2:0 and A?0:POW2. | |
25165 | ||
25166 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25167 | ||
25168 | * gimple-range-gori.cc (class logical_stmt_cache): Delete | |
25169 | (logical_stmt_cache::logical_stmt_cache ): Delete. | |
25170 | (logical_stmt_cache::~logical_stmt_cache): Delete. | |
25171 | (logical_stmt_cache::cache_entry::dump): Delete. | |
25172 | (logical_stmt_cache::get_range): Delete. | |
25173 | (logical_stmt_cache::cached_name ): Delete. | |
25174 | (logical_stmt_cache::same_cached_name): Delete. | |
25175 | (logical_stmt_cache::cacheable_p): Delete. | |
25176 | (logical_stmt_cache::slot_diagnostics ): Delete. | |
25177 | (logical_stmt_cache::dump): Delete. | |
25178 | (gori_compute_cache::gori_compute_cache): Delete. | |
25179 | (gori_compute_cache::~gori_compute_cache): Delete. | |
25180 | (gori_compute_cache::compute_operand_range): Delete. | |
25181 | (gori_compute_cache::cache_stmt): Delete. | |
25182 | * gimple-range-gori.h (gori_compute::compute_operand_range): Remove | |
25183 | virtual. | |
25184 | (class gori_compute_cache): Delete. | |
25185 | ||
25186 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25187 | ||
25188 | * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori | |
25189 | intead of m_cache. | |
25190 | (fold_using_range::range_of_address): Adjust. | |
25191 | (fold_using_range::range_of_phi): Adjust. | |
25192 | * gimple-range.h (class fur_source): Adjust. | |
25193 | (fur_source::fur_source): Adjust. | |
25194 | ||
25195 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25196 | ||
25197 | * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename | |
25198 | from expr_range_in_bb and adjust. | |
25199 | (gori_compute::compute_name_range_op): Adjust. | |
25200 | (gori_compute::optimize_logical_operands): Adjust. | |
25201 | (gori_compute::compute_logical_operands_in_chain): Adjust. | |
25202 | (gori_compute::compute_operand1_range): Adjust. | |
25203 | (gori_compute::compute_operand2_range): Adjust. | |
25204 | (ori_compute_cache::cache_stmt): Adjust. | |
25205 | * gimple-range-gori.h (gori_compute): Rename prototype. | |
25206 | ||
25207 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25208 | ||
25209 | * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be | |
25210 | checked only after range_of_stmt, not range_on_entry. | |
25211 | (gimple_ranger::range_on_entry): Check for non-null in any | |
25212 | predecessor block, if it is not already non-null. | |
25213 | (gimple_ranger::range_on_exit): DOnt check for non-null after | |
25214 | range on entry call. | |
25215 | (gimple_ranger::dump_bb): New. Split from dump. | |
25216 | (gimple_ranger::dump): Adjust. | |
25217 | * gimple-range.h (class gimple_ranger): Adjust. | |
25218 | ||
25219 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25220 | ||
25221 | * gimple-range-cache.cc (struct range_timestamp): Delete. | |
25222 | (class temporal_cache): Adjust. | |
25223 | (temporal_cache::get_timestamp): Delete. | |
25224 | (temporal_cache::set_dependency): Delete. | |
25225 | (temporal_cache::temporal_value): Adjust. | |
25226 | (temporal_cache::current_p): Take dependencies as params. | |
25227 | (temporal_cache::set_timestamp): Adjust. | |
25228 | (temporal_cache::set_always_current): Adjust. | |
25229 | (ranger_cache::get_non_stale_global_range): Adjust. | |
25230 | (ranger_cache::register_dependency): Delete. | |
25231 | * gimple-range-cache.h (class range_cache): Adjust. | |
25232 | ||
25233 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25234 | ||
25235 | * gimple-range-gori.cc (range_def_chain::range_def_chain): init | |
25236 | bitmap obstack. | |
25237 | (range_def_chain::~range_def_chain): Dispose of obstack rather than | |
25238 | each individual bitmap. | |
25239 | (range_def_chain::set_import): New. | |
25240 | (range_def_chain::get_imports): New. | |
25241 | (range_def_chain::chain_import_p): New. | |
25242 | (range_def_chain::register_dependency): Rename from build_def_chain | |
25243 | and set imports. | |
25244 | (range_def_chain::def_chain_in_bitmap_p): New. | |
25245 | (range_def_chain::add_def_chain_to_bitmap): New. | |
25246 | (range_def_chain::has_def_chain): Just check first depenedence. | |
25247 | (range_def_chain::get_def_chain): Process imports, use generic | |
25248 | register_dependency routine. | |
25249 | (range_def_chain::dump): New. | |
25250 | (gori_map::gori_map): Allocate import list. | |
25251 | (gori_map::~gori_map): Release imports. | |
25252 | (gori_map::exports): Check for past allocated block size. | |
25253 | (gori_map::imports): New. | |
25254 | (gori_map::def_chain_in_export_p): Delete. | |
25255 | (gori_map::is_import_p): New. | |
25256 | (gori_map::maybe_add_gori): Handle imports. | |
25257 | (gori_map::dump): Adjust output, add imports. | |
25258 | (gori_compute::has_edge_range_p): Remove def_chain_in_export call. | |
25259 | (gori_export_iterator::gori_export_iterator): New. | |
25260 | (gori_export_iterator::next): New. | |
25261 | (gori_export_iterator::get_name): New. | |
25262 | * gimple-range-gori.h (range_def_chain): Add imports and direct | |
25263 | dependecies via struct rdc. | |
25264 | (range_def_chain::depend1): New. | |
25265 | (range_def_chain::depend2): New. | |
25266 | (class gori_map): Adjust. | |
25267 | (FOR_EACH_GORI_IMPORT_NAME): New. | |
25268 | (FOR_EACH_GORI_EXPORT_NAME): New. | |
25269 | (class gori_export_iterator): New. | |
25270 | ||
25271 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25272 | ||
25273 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Move initial | |
25274 | export cache filling to here. | |
25275 | * gimple-range-gori.cc (gori_compute::gori_compute) : From Here. | |
25276 | ||
25277 | 2021-05-25 Andrew MacLeod <amacleod@redhat.com> | |
25278 | ||
25279 | * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h. | |
25280 | (gori_map): Move to gimple-range-gori.h. | |
25281 | (gori_compute::gori_compute): Adjust. | |
25282 | (gori_compute::~gori_compute): Delete. | |
25283 | (gori_compute::compute_operand_range_switch): Adjust. | |
25284 | (gori_compute::compute_operand_range): Adjust. | |
25285 | (gori_compute::compute_logical_operands): Adjust. | |
25286 | (gori_compute::has_edge_range_p ): Adjust. | |
25287 | (gori_compute::set_range_invariant): Delete. | |
25288 | (gori_compute::dump): Adjust. | |
25289 | (gori_compute::outgoing_edge_range_p): Adjust. | |
25290 | * gimple-range-gori.h (class range_def_chain): Relocate here. | |
25291 | (class gori_map): Relocate here. | |
25292 | (class gori_compute): Inherit from gori_map, and adjust. | |
25293 | ||
25294 | 2021-05-25 Aldy Hernandez <aldyh@redhat.com> | |
25295 | ||
25296 | * value-range.cc (range_tests_legacy): Use | |
25297 | build_nonstandard_integer_type instead of int and short. | |
25298 | ||
25299 | 2021-05-25 Eric Botcazou <ebotcazou@adacore.com> | |
25300 | ||
25301 | * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL | |
25302 | when really creating an initialization statement for it. | |
25303 | ||
25304 | 2021-05-25 Eric Botcazou <ebotcazou@adacore.com> | |
25305 | ||
25306 | * tree-inline.c (setup_one_parameter): Fix thinko in new condition. | |
25307 | ||
25308 | 2021-05-25 Kito Cheng <kito.cheng@sifive.com> | |
25309 | ||
25310 | * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax. | |
25311 | ||
25312 | 2021-05-25 Martin Liska <mliska@suse.cz> | |
25313 | ||
25314 | PR tree-optimization/92860 | |
25315 | PR target/99592 | |
25316 | * optc-save-gen.awk: Remove exceptions. | |
25317 | ||
25318 | 2021-05-25 Martin Liska <mliska@suse.cz> | |
25319 | ||
25320 | * asan.h (sanitize_coverage_p): New function. | |
25321 | * doc/extend.texi: Document it. | |
25322 | * fold-const.c (fold_range_test): Use sanitize_flags_p | |
25323 | instead of flag_sanitize_coverage. | |
25324 | (fold_truth_andor): Likewise. | |
25325 | * sancov.c: Likewise. | |
25326 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. | |
25327 | * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle | |
25328 | -fsanitize-coverage when inlining. | |
25329 | ||
25330 | 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com> | |
25331 | ||
25332 | * config/csky/csky-modes.def : Fix copyright. | |
25333 | ||
25334 | 2021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com> | |
25335 | ||
25336 | * config/csky/csky-modes.def : Amend copyright. | |
25337 | * config/csky/csky_insn_fpuv2.md : Likewise. | |
25338 | * config/csky/csky_insn_fpuv3.md : Likewise. | |
25339 | ||
25340 | 2021-05-25 Richard Biener <rguenther@suse.de> | |
25341 | ||
25342 | PR middle-end/100727 | |
25343 | * calls.c (initialize_argument_information): Explicitely test | |
25344 | for WITH_SIZE_EXPR. | |
25345 | * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR. | |
25346 | ||
25347 | 2021-05-25 Geng Qi <gengqi@linux.alibaba.com> | |
25348 | ||
25349 | * config/csky/csky.h (FRAME_POINTER_REGNUM): Use | |
25350 | HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of | |
25351 | the signle definition. The signle definition may not work well | |
25352 | at simplify_subreg_regno(). | |
25353 | (HARD_FRAME_POINTER_REGNUM): New. | |
25354 | (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM. | |
25355 | * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate, | |
25356 | csky_initial_elimination_offset, csky_expand_prologue, | |
25357 | csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM. | |
25358 | ||
25359 | 2021-05-25 Geng Qi <gengqi@linux.alibaba.com> | |
25360 | ||
25361 | * config/csky/csky.c (csky_option_override): | |
25362 | Init csky_arch_isa_features[] in advance, so TARGET_DSP | |
25363 | and TARGET_DIV can be set well. | |
25364 | ||
25365 | 2021-05-25 Geng Qi <gengqi@linux.alibaba.com> | |
25366 | ||
25367 | * config/csky/constraints.md ("l", "h"): Delete. | |
25368 | * config/csky/csky.h (reg_class, REG_CLASS_NAMES, | |
25369 | REG_CLASS_CONTENTS): Delete LO_REGS and HI_REGS. | |
25370 | * config/csky/csky.c (regno_reg_classm, | |
25371 | csky_secondary_reload, csky_register_move_cost): | |
25372 | Use HILO_REGS instead of LO_REGS and HI_REGS. | |
25373 | ||
25374 | 2021-05-25 Geng Qi <gengqi@linux.alibaba.com> | |
25375 | ||
25376 | * config/csky/constraints.md ("W"): New constriant for mem operand | |
25377 | with base reg, index register. | |
25378 | ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to | |
25379 | "csky_valid_mem_constraint_operand" to deal with both "Q" and "W" | |
25380 | constraint. | |
25381 | ("Dv"): New constraint for const double value that can be used at | |
25382 | fmovi instruction. | |
25383 | * config/csky/csky-modes.def (HFmode): New mode. | |
25384 | * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename | |
25385 | to "csky_valid_mem_constraint_operand" and support new constraint | |
25386 | "W". | |
25387 | (csky_get_movedouble_length): New. | |
25388 | (fpuv3_output_move): New. | |
25389 | (fpuv3_const_double): New. | |
25390 | * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3. | |
25391 | (decompose_csky_address): Refine. | |
25392 | (csky_print_operand): New "CONST_DOUBLE" operand. | |
25393 | (csky_output_move): Support fpv3 instructions. | |
25394 | (csky_get_movedouble_length): New. | |
25395 | (fpuv3_output_move): New. | |
25396 | (fpuv3_const_double): New. | |
25397 | (csky_emit_compare): Cover float comparsion. | |
25398 | (csky_emit_compare_float): Refine. | |
25399 | (csky_vaild_fpuv2_mem_operand): Rename to | |
25400 | "csky_valid_mem_constraint_operand" and support new constraint "W". | |
25401 | (ck860_rtx_costs): New. | |
25402 | (csky_rtx_costs): Add the cost calculation of CK860. | |
25403 | (regno_reg_class): New vregs for fpuv3. | |
25404 | (csky_dbx_regno): Likewise. | |
25405 | (csky_cpu_cpp_builtins): New builtin macro for fpuv3. | |
25406 | (csky_conditional_register_usage): Suporrot fpuv3. | |
25407 | (csky_dwarf_register_span): Suporrot fpuv3. | |
25408 | (csky_init_builtins, csky_mangle_type): Support "__fp16" type. | |
25409 | (ck810_legitimate_index_p): Support fp16. | |
25410 | * config/csky/csky.h (TARGET_TLS): ADD CK860. | |
25411 | (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3. | |
25412 | (TARGET_SINGLE_FPU): Support fpuv3. | |
25413 | (TARGET_SUPPORT_FPV3): New. | |
25414 | (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers. | |
25415 | (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES, | |
25416 | REG_CLASS_CONTENTS): Support fpuv3. | |
25417 | * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine. | |
25418 | (csky_movsf_fpv2): Likewise. | |
25419 | (ck801_movsf): Likewise. | |
25420 | (csky_movsf): Likewise. | |
25421 | (movdf): Likewise. | |
25422 | (csky_movdf_fpv2): Likewise. | |
25423 | (ck801_movdf): Likewise. | |
25424 | (csky_movdf): Likewise. | |
25425 | (movsicc): Refine. Use "comparison_operatior" instead of | |
25426 | "ordered_comparison_operatior". | |
25427 | (addsicc): Likewise. | |
25428 | (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant. | |
25429 | (call_value_internal_vh): New. | |
25430 | * config/csky/csky_cores.def (CK860): New arch and cpu. | |
25431 | (fpv3_hf): New. | |
25432 | (fpv3_hsf): New. | |
25433 | (fpv3_sdf): New. | |
25434 | (fpv3): New. | |
25435 | * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns | |
25436 | into emit-patterns and match-patterns, remain the emit-patterns here, | |
25437 | and move the match-patterns to csky_insn_fpuv2.md or | |
25438 | csky_insn_fpuv3.md. | |
25439 | * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions. | |
25440 | * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3 | |
25441 | isntructions. | |
25442 | * config/csky/csky_isa.def (fcr): New. | |
25443 | (fpv3_hi): New. | |
25444 | (fpv3_hf): New. | |
25445 | (fpv3_sf): New. | |
25446 | (fpv3_df): New. | |
25447 | (CK860): New definition for ck860. | |
25448 | * config/csky/csky_tables.opt (ck860): New processors ck860, | |
25449 | ck860f. And new arch ck860. | |
25450 | (fpv3_hf): New. | |
25451 | (fpv3_hsf): New. | |
25452 | (fpv3_hdf): New. | |
25453 | (fpv3): New. | |
25454 | * config/csky/predicates.md (csky_float_comparsion_operator): Delete | |
25455 | "geu", "gtu", "leu", "ltu", which will never appear at float comparison. | |
25456 | * config/csky/t-csky-elf: Support 860. | |
25457 | * config/csky/t-csky-linux: Likewise. | |
25458 | * doc/md.texi: Add "Q" and "W" constraints for C-SKY. | |
25459 | ||
25460 | 2021-05-24 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25461 | ||
25462 | * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to | |
25463 | add generation of logical-add and add-logical fusion pairs. | |
25464 | * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask | |
25465 | and powerpc mask. | |
25466 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on | |
25467 | logical-add and add-logical fusion by default. | |
25468 | * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and | |
25469 | -mpower10-fusion-add-logical options. | |
25470 | * config/rs6000/fusion.md: Regenerate file. | |
25471 | ||
25472 | 2021-05-24 Aldy Hernandez <aldyh@redhat.com> | |
25473 | ||
25474 | * value-range.cc (irange::legacy_equal_p): Check type when | |
25475 | comparing VR_VARYING types. | |
25476 | (range_tests_legacy): Test comparing VARYING ranges of different | |
25477 | sizes. | |
25478 | ||
25479 | 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com> | |
25480 | ||
25481 | * config/aarch64/aarch64.c (neoversen1_tunings): | |
25482 | Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. | |
25483 | ||
25484 | 2021-05-24 Wilco Dijkstra <wdijkstr@arm.com> | |
25485 | ||
25486 | * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for | |
25487 | extern weak symbols. Limit symbol offsets for non-GOT symbols with | |
25488 | PIC/PIE. | |
25489 | ||
25490 | 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org> | |
25491 | ||
25492 | * config/arm/neon.md (vec_load_lanesxi<mode>) | |
25493 | (vec_store_lanexoi<mode>): Move ... | |
25494 | * config/arm/vec-common.md: here. | |
25495 | ||
25496 | 2021-05-24 Christophe Lyon <christophe.lyon@linaro.org> | |
25497 | ||
25498 | * config/arm/neon.md (vec_load_lanesoi<mode>) | |
25499 | (vec_store_lanesoi<mode>): Move ... | |
25500 | * config/arm/vec-common.md: here. | |
25501 | ||
25502 | 2021-05-24 liuhongt <hongtao.liu@intel.com> | |
25503 | ||
25504 | PR target/100660 | |
25505 | * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing | |
25506 | stmt with GIMPLE_NOP when lhs doesn't exist. | |
25507 | ||
25508 | 2021-05-23 Uroš Bizjak <ubizjak@gmail.com> | |
25509 | ||
25510 | PR target/100722 | |
25511 | * config/i386/mmx.md (*push<VI_32:mode>2_rex64): | |
25512 | New instruction pattern. | |
25513 | (*push<VI_32:mode>2): Ditto. | |
25514 | (push splitter for SSE registers): New splitter. | |
25515 | ||
25516 | 2021-05-23 Andrew Pinski <apinski@marvell.com> | |
25517 | ||
25518 | * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types. | |
25519 | ||
25520 | 2021-05-22 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25521 | ||
25522 | * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types. | |
25523 | * config/rs6000/fusion.md: Regenerate file. | |
25524 | ||
25525 | 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25526 | ||
25527 | * config/rs6000/genfusion.pl (gen_addadd): New function. | |
25528 | * config/rs6000/fusion.md: Regenerate file. | |
25529 | * config/rs6000/rs6000-cpus.def: Add | |
25530 | OPTION_MASK_P10_FUSION_2ADD to masks. | |
25531 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
25532 | Handle default value of OPTION_MASK_P10_FUSION_2ADD. | |
25533 | * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add. | |
25534 | ||
25535 | 2021-05-21 Jakub Jelinek <jakub@redhat.com> | |
25536 | ||
25537 | PR middle-end/99928 | |
25538 | * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define. | |
25539 | * gimplify.c (enum gimplify_omp_var_data): Fix up | |
25540 | GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT. | |
25541 | (omp_lastprivate_for_combined_outer_constructs): If combined target | |
25542 | has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to | |
25543 | GOVD_MAP | GOVD_SEEN. | |
25544 | (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for | |
25545 | firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT. | |
25546 | (gimplify_adjust_omp_clauses): For firstprivate clauses with | |
25547 | OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and | |
25548 | OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and | |
25549 | let it be replaced by implicit map clause. | |
25550 | ||
25551 | 2021-05-21 Jakub Jelinek <jakub@redhat.com> | |
25552 | ||
25553 | PR middle-end/99928 | |
25554 | * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New | |
25555 | function. | |
25556 | (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it. | |
25557 | (gimplify_omp_for): Likewise. | |
25558 | ||
25559 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25560 | ||
25561 | PR middle-end/90115 | |
25562 | * omp-low.c (oacc_privatization_candidate_p): Reject 'static', | |
25563 | 'external' in blocks. | |
25564 | ||
25565 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25566 | ||
25567 | PR middle-end/90115 | |
25568 | * flag-types.h (enum openacc_privatization): New. | |
25569 | * params.opt (-param=openacc-privatization): New. | |
25570 | * doc/invoke.texi (openacc-privatization): Document it. | |
25571 | * omp-general.h (get_openacc_privatization_dump_flags): New | |
25572 | function. | |
25573 | * omp-low.c (oacc_privatization_candidate_p): Add diagnostics. | |
25574 | * omp-offload.c (execute_oacc_device_lower) | |
25575 | <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics. | |
25576 | * target.def (goacc.adjust_private_decl): Add 'location_t' | |
25577 | parameter. | |
25578 | * doc/tm.texi: Regenerate. | |
25579 | * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust. | |
25580 | * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise. | |
25581 | * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl): | |
25582 | Likewise. Preserve it for... | |
25583 | (nvptx_goacc_expand_var_decl): ... use here. | |
25584 | ||
25585 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25586 | ||
25587 | * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__' | |
25588 | DejaGnu selector. | |
25589 | ||
25590 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25591 | ||
25592 | PR middle-end/90115 | |
25593 | * omp-low.c (oacc_privatization_candidate_p): New function. | |
25594 | (oacc_privatization_scan_clause_chain) | |
25595 | (oacc_privatization_scan_decl_chain): Use it. Also | |
25596 | 'gcc_checking_assert' that we're not seeing duplicates. | |
25597 | ||
25598 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25599 | ||
25600 | PR middle-end/90115 | |
25601 | * omp-offload.c (execute_oacc_device_lower): Skip processing if no | |
25602 | work to be done. | |
25603 | ||
25604 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25605 | ||
25606 | PR middle-end/90115 | |
25607 | * omp-offload.c (execute_oacc_device_lower): Explain. | |
25608 | ||
25609 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25610 | ||
25611 | PR middle-end/90115 | |
25612 | * omp-offload.c (execute_oacc_device_lower) | |
25613 | <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1' | |
25614 | case, too. | |
25615 | * internal-fn.c (expand_UNIQUE): Don't expect | |
25616 | 'IFN_UNIQUE_OACC_PRIVATE'. | |
25617 | ||
25618 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25619 | ||
25620 | PR middle-end/90115 | |
25621 | * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses. | |
25622 | ||
25623 | 2021-05-21 Thomas Schwinge <thomas@codesourcery.com> | |
25624 | ||
25625 | PR middle-end/90115 | |
25626 | * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl) | |
25627 | (nvptx_goacc_expand_var_decl): Tighten. | |
25628 | ||
25629 | 2021-05-21 Julian Brown <julian@codesourcery.com> | |
25630 | Chung-Lin Tang <cltang@codesourcery.com> | |
25631 | Thomas Schwinge <thomas@codesourcery.com> | |
25632 | ||
25633 | PR middle-end/90115 | |
25634 | * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL) | |
25635 | (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks. | |
25636 | * doc/tm.texi: Regenerate. | |
25637 | * expr.c (expand_expr_real_1): Expand decls using the | |
25638 | expand_var_decl OpenACC hook if defined. | |
25639 | * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE. | |
25640 | * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE. | |
25641 | * omp-low.c (omp_context): Add oacc_privatization_candidates | |
25642 | field. | |
25643 | (lower_oacc_reductions): Add PRIVATE_MARKER parameter. Insert | |
25644 | before fork. | |
25645 | (lower_oacc_head_tail): Add PRIVATE_MARKER parameter. Modify | |
25646 | private marker's gimple call arguments, and pass it to | |
25647 | lower_oacc_reductions. | |
25648 | (oacc_privatization_scan_clause_chain) | |
25649 | (oacc_privatization_scan_decl_chain, lower_oacc_private_marker): | |
25650 | New functions. | |
25651 | (lower_omp_for, lower_omp_target, lower_omp_1): Use these. | |
25652 | * omp-offload.c (convert.h): Include. | |
25653 | (oacc_loop_xform_head_tail): Treat private-variable markers like | |
25654 | fork/join when transforming head/tail sequences. | |
25655 | (struct var_decl_rewrite_info): Add struct. | |
25656 | (oacc_rewrite_var_decl, is_sync_builtin_call): New functions. | |
25657 | (execute_oacc_device_lower): Support rewriting gang-private | |
25658 | variables using target hook, and fix up addr_expr and var_decl | |
25659 | nodes afterwards. | |
25660 | * target.def (adjust_private_decl, expand_var_decl): New hooks. | |
25661 | * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl): | |
25662 | Rename to... | |
25663 | (gcn_goacc_adjust_private_decl): ...this. | |
25664 | * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl): | |
25665 | Rename to... | |
25666 | (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter. | |
25667 | * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename | |
25668 | definition using gcn_goacc_adjust_gangprivate_decl... | |
25669 | (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using | |
25670 | gcn_goacc_adjust_private_decl. | |
25671 | * config/nvptx/nvptx.c (tree-pretty-print.h): Include. | |
25672 | (gang_private_shared_size): New global variable. | |
25673 | (gang_private_shared_align): Likewise. | |
25674 | (gang_private_shared_sym): Likewise. | |
25675 | (gang_private_shared_hmap): Likewise. | |
25676 | (nvptx_option_override): Initialize these. | |
25677 | (nvptx_file_end): Output gang_private_shared_sym. | |
25678 | (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl): | |
25679 | New functions. | |
25680 | (nvptx_set_current_function): Clear gang_private_shared_hmap. | |
25681 | (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook. | |
25682 | (TARGET_GOACC_EXPAND_VAR_DECL): Likewise. | |
25683 | ||
25684 | 2021-05-21 H.J. Lu <hjl.tools@gmail.com> | |
25685 | ||
25686 | * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed. | |
25687 | ||
25688 | 2021-05-21 Richard Biener <rguenther@suse.de> | |
25689 | H.J. Lu <hjl.tools@gmail.com> | |
25690 | ||
25691 | PR middle-end/90773 | |
25692 | * expr.c (expand_constructor): Elide expand_constructor if | |
25693 | move by pieces is preferred. | |
25694 | ||
25695 | 2021-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
25696 | ||
25697 | * config/aarch64/aarch64-builtins.c (aarch64_call_properties): | |
25698 | Take a flag and mode value as arguments. | |
25699 | (aarch64_modifies_global_state_p): Likewise. | |
25700 | (aarch64_reads_global_state_p): Likewise. | |
25701 | (aarch64_could_trap_p): Likewise. | |
25702 | (aarch64_get_attributes): Likewise. | |
25703 | (aarch64_init_simd_builtins): Adjust callsite of above. | |
25704 | (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get | |
25705 | function attributes to apply to builtins. | |
25706 | (aarch64_init_crc32_builtins): Likewise. | |
25707 | (aarch64_init_builtin_rsqrt): Likewise. | |
25708 | ||
25709 | 2021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25710 | ||
25711 | * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion. | |
25712 | * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types. | |
25713 | (gen_2logical): Use new fusion types. | |
25714 | * config/rs6000/fusion.md: Regenerate. | |
25715 | ||
25716 | 2021-05-21 Uroš Bizjak <ubizjak@gmail.com> | |
25717 | ||
25718 | PR target/100637 | |
25719 | * config/i386/i386-expand.c (ix86_expand_sse_movcc): | |
25720 | Handle V4QI and V2HI modes. | |
25721 | (ix86_expand_sse_movcc): Ditto. | |
25722 | * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3): | |
25723 | New instruction pattern. | |
25724 | (*eq<VI_32:mode>3): Ditto. | |
25725 | (*gt<VI_32:mode>3): Ditto. | |
25726 | (*xop_pcmov_<VI_32:mode>): Ditto. | |
25727 | (mmx_pblendvb32): Ditto. | |
25728 | (mmx_pblendvb64): Rename from mmx_pblendvb. | |
25729 | (vec_cmp<VI_32:mode><VI_32:mode>): New expander. | |
25730 | (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto. | |
25731 | (vcond<VI_32:mode><VI_32:mode>): Ditto. | |
25732 | (vcondu<VI_32:mode><VI_32:mode>): Ditto. | |
25733 | (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto. | |
25734 | ||
25735 | 2021-05-21 Jakub Jelinek <jakub@redhat.com> | |
25736 | ||
25737 | PR tree-optimization/94589 | |
25738 | * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and | |
25739 | rhs2, treat x <= 4 equivalently to x < 5 etc. In cmp1 and cmp2 (if | |
25740 | not the same as cmp3) treat <= the same as < and >= the same as >. | |
25741 | Don't require that cond2_phi_edge is true edge, instead take | |
25742 | false/true edges into account based on cmp1/cmp2 comparison kinds. | |
25743 | ||
25744 | 2021-05-21 Uroš Bizjak <ubizjak@gmail.com> | |
25745 | ||
25746 | PR target/100637 | |
25747 | * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator. | |
25748 | (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander | |
25749 | from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3 | |
25750 | using SMAXMIN_MMXMODEI mode iterator. | |
25751 | (*<smaxmin:code>v4qi3): New insn pattern. | |
25752 | (*<smaxmin:code>v2hi3): Ditto. | |
25753 | (SMAXMIN_VI_32): New mode iterator. | |
25754 | (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander. | |
25755 | (UMAXMIN_MMXMODEI): New mode iterator. | |
25756 | (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander | |
25757 | from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3 | |
25758 | using UMAXMIN_MMXMODEI mode iterator. | |
25759 | (*<umaxmin:code>v4qi3): New insn pattern. | |
25760 | (*<umaxmin:code>v2hi3): Ditto. | |
25761 | (UMAXMIN_VI_32): New mode iterator. | |
25762 | (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander. | |
25763 | (abs<VI_32:mode>2): New insn pattern. | |
25764 | (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ... | |
25765 | * config/i386/sse.md: ... here. | |
25766 | ||
25767 | 2021-05-20 Clement Chigot <clement.chigot@atos.net> | |
25768 | David Edelsohn <dje.gcc@gmail.com> | |
25769 | ||
25770 | * collect2.c (scan_prog_file): Issue non-fatal warning for | |
25771 | non-COFF files. | |
25772 | ||
25773 | 2021-05-20 Jonathan Wakely <jwakely@redhat.com> | |
25774 | ||
25775 | * doc/invoke.texi (-Wno-c++11-extensions) | |
25776 | (-Wno-c++14-extensions, -Wno-c++17-extensions) | |
25777 | (-Wno-c++20-extensions, -Wno-c++23-extensions): Document | |
25778 | new options. | |
25779 | ||
25780 | 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com> | |
25781 | ||
25782 | * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p. | |
25783 | * config/darwin.c (darwin_override_options): Likewise. | |
25784 | * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise. | |
25785 | * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise. | |
25786 | (DWARF2_FRAME_REG_OUT): Likewise. | |
25787 | * config/mips/mips.c (mips_output_filename): Likewise. | |
25788 | * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): | |
25789 | Likewise. | |
25790 | (rs6000_dbx_register_number): Likewise. | |
25791 | * dbxout.c: Include flags.h. | |
25792 | * dwarf2cfi.c (cfi_label_required_p): Likewise. | |
25793 | (dwarf2out_do_frame): Likewise. | |
25794 | * except.c: Include flags.h. | |
25795 | * final.c (dwarf2_debug_info_emitted_p): Likewise. | |
25796 | (final_scan_insn_1): Likewise. | |
25797 | * flags.h (dwarf_debuginfo_p): New function declaration. | |
25798 | * opts.c (dwarf_debuginfo_p): New function definition. | |
25799 | * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p. | |
25800 | * toplev.c (process_options): Likewise. | |
25801 | ||
25802 | 2021-05-20 Indu Bhagat <indu.bhagat@oracle.com> | |
25803 | ||
25804 | * common.opt: Change type to support bitmasks. | |
25805 | * flag-types.h (enum debug_info_type): Rename enumerator constants. | |
25806 | (NO_DEBUG): New bitmask. | |
25807 | (DBX_DEBUG): Likewise. | |
25808 | (DWARF2_DEBUG): Likewise. | |
25809 | (XCOFF_DEBUG): Likewise. | |
25810 | (VMS_DEBUG): Likewise. | |
25811 | (VMS_AND_DWARF2_DEBUG): Likewise. | |
25812 | * flags.h (debug_set_to_format): New function declaration. | |
25813 | (debug_set_count): Likewise. | |
25814 | (debug_set_names): Likewise. | |
25815 | * opts.c (debug_type_masks): Array of bitmasks for debug formats. | |
25816 | (debug_set_to_format): New function definition. | |
25817 | (debug_set_count): Likewise. | |
25818 | (debug_set_names): Likewise. | |
25819 | (set_debug_level): Update access to debug_type_names. | |
25820 | * toplev.c: Likewise. | |
25821 | ||
25822 | 2021-05-20 Martin Sebor <msebor@redhat.com> | |
25823 | ||
25824 | PR middle-end/100684 | |
25825 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda. | |
25826 | ||
25827 | 2021-05-20 Uroš Bizjak <ubizjak@gmail.com> | |
25828 | ||
25829 | PR target/100701 | |
25830 | * config/i386/i386.md (isa): Remove x64_bmi. | |
25831 | (enabled): Remove x64_bmi. | |
25832 | * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3): | |
25833 | Remove general register alternative. | |
25834 | (*andnot<VI_32:mode>3): Ditto. | |
25835 | (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto. | |
25836 | (*<any_logic:code><VI_32:mode>3): Ditto. | |
25837 | ||
25838 | 2021-05-20 Kewen Lin <linkw@linux.ibm.com> | |
25839 | ||
25840 | * config/arm/arm.c: Include head files tree-vectorizer.h and | |
25841 | cfgloop.h. | |
25842 | ||
25843 | 2021-05-20 Uroš Bizjak <ubizjak@gmail.com> | |
25844 | ||
25845 | PR target/100637 | |
25846 | * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes. | |
25847 | (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint. | |
25848 | (<s>mulv4hi3_highpart): New expander. | |
25849 | (*<s>mulv2hi3_highpart): New insn pattern. | |
25850 | (<s>mulv2hi3_higpart): New expander. | |
25851 | (*<any_shift:insn>v2hi3): New insn pattern. | |
25852 | (<any_shift:insn>v2hi3): New expander. | |
25853 | * config/i386/sse.md (smulhrsv2hi3): New expander. | |
25854 | (*smulhrsv2hi3): New insn pattern. | |
25855 | ||
25856 | 2021-05-20 Kewen Lin <linkw@linux.ibm.com> | |
25857 | ||
25858 | * doc/invoke.texi (vect-inner-loop-cost-factor): Document new | |
25859 | parameter. | |
25860 | * params.opt (vect-inner-loop-cost-factor): New. | |
25861 | * targhooks.c (default_add_stmt_cost): Replace hardcoded factor | |
25862 | 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file | |
25863 | tree-vectorizer.h and its required ones. | |
25864 | * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace | |
25865 | hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR. | |
25866 | * config/arm/arm.c (arm_add_stmt_cost): Likewise. | |
25867 | * config/i386/i386.c (ix86_add_stmt_cost): Likewise. | |
25868 | * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise. | |
25869 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): | |
25870 | Likewise. | |
25871 | (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor. | |
25872 | * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor. | |
25873 | (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro. | |
25874 | ||
25875 | 2021-05-20 Christophe Lyon <christophe.lyon@linaro.org> | |
25876 | Torbjörn Svensson <torbjorn.svensson@st.com> | |
25877 | ||
25878 | PR c/42579 | |
25879 | * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__. | |
25880 | ||
25881 | 2021-05-20 Jakub Jelinek <jakub@redhat.com> | |
25882 | ||
25883 | PR middle-end/99928 | |
25884 | * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For | |
25885 | explicit linear clause when combined with target, make it map(tofrom:) | |
25886 | instead of no clause or firstprivate. | |
25887 | ||
25888 | 2021-05-20 Jakub Jelinek <jakub@redhat.com> | |
25889 | ||
25890 | PR tree-optimization/94589 | |
25891 | * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence | |
25892 | of integral conversions. | |
25893 | ||
25894 | 2021-05-19 Andrew MacLeod <amacleod@redhat.com> | |
25895 | ||
25896 | * gimple-range.cc (fur_source::get_operand): New. | |
25897 | (gimple_range_fold): Delete. | |
25898 | (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt. | |
25899 | (fold_using_range::range_of_range_op): Move from gimple_ranger. | |
25900 | (fold_using_range::range_of_address): Ditto. | |
25901 | (fold_using_range::range_of_phi): Ditto. | |
25902 | (fold_using_range::range_of_call): Ditto. | |
25903 | (fold_using_range::range_of_builtin_ubsan_call): Move from | |
25904 | range_of_builtin_ubsan_call. | |
25905 | (fold_using_range::range_of_builtin_call): Move from | |
25906 | range_of_builtin_call. | |
25907 | (gimple_ranger::range_of_builtin_call): Delete. | |
25908 | (fold_using_range::range_of_cond_expr): Move from gimple_ranger. | |
25909 | (gimple_ranger::fold_range_internal): New. | |
25910 | (gimple_ranger::range_of_stmt): Use new fold_using_range API. | |
25911 | (fold_using_range::range_of_ssa_name_with_loop_info): Move from | |
25912 | gimple_ranger. Improve ranges of SSA_NAMES when possible. | |
25913 | * gimple-range.h (gimple_ranger): Remove various range_of routines. | |
25914 | (class fur_source): New. | |
25915 | (class fold_using_range): New. | |
25916 | (fur_source::fur_source): New. | |
25917 | (fold_range): New. | |
25918 | * vr-values.c (vr_values::extract_range_basic): Use fold_using_range | |
25919 | instead of range_of_builtin_call. | |
25920 | ||
25921 | 2021-05-19 Jonathan Wakely <jwakely@redhat.com> | |
25922 | ||
25923 | * doc/cpp.texi (Common Predefined Macros): Update documentation | |
25924 | for the __GXX_EXPERIMENTAL_CXX0X__ macro. | |
25925 | ||
25926 | 2021-05-19 Alex Coplan <alex.coplan@arm.com> | |
25927 | ||
25928 | PR target/100333 | |
25929 | * config/arm/arm.md (nonsecure_call_internal): Always ensure | |
25930 | callee's address is in a register. | |
25931 | ||
25932 | 2021-05-19 Geng Qi <gengqi@linux.alibaba.com> | |
25933 | ||
25934 | * common/config/riscv/riscv-common.c | |
25935 | (riscv_subset_list::parsing_subset_version): Properly parse the letter | |
25936 | 'p' in '-march'. | |
25937 | (riscv_subset_list::parse_std_ext, | |
25938 | riscv_subset_list::parse_multiletter_ext): To handle errors generated | |
25939 | in riscv_subset_list::parsing_subset_version. | |
25940 | ||
25941 | 2021-05-19 Jonathan Wright <jonathan.wright@arm.com> | |
25942 | ||
25943 | * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q" | |
25944 | type attribute in patterns generating XTN(2). | |
25945 | ||
25946 | 2021-05-19 Jonathan Wright <jonathan.wright@arm.com> | |
25947 | ||
25948 | * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>): | |
25949 | Remove as duplicate of... | |
25950 | (aarch64_xtn<mode>): This. | |
25951 | (aarch64_xtn2<mode>_le): Move position in file. | |
25952 | (aarch64_xtn2<mode>_be): Move position in file. | |
25953 | (aarch64_xtn2<mode>): Move position in file. | |
25954 | (vec_pack_trunc_<mode>): Define as an expander. | |
25955 | ||
25956 | 2021-05-19 Jonathan Wright <jonathan.wright@arm.com> | |
25957 | ||
25958 | * config/aarch64/aarch64-simd-builtins.def: Split builtin | |
25959 | generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into | |
25960 | separate scalar and vector generators. | |
25961 | * config/aarch64/aarch64-simd.md | |
25962 | (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and | |
25963 | split into... | |
25964 | (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and... | |
25965 | (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This. | |
25966 | * config/aarch64/iterators.md: Define SD_HSDI iterator. | |
25967 | ||
25968 | 2021-05-19 Jonathn Wright <jonathan.wright@arm.com> | |
25969 | ||
25970 | * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead | |
25971 | of UNSPEC_SQXTUN2. | |
25972 | * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2. | |
25973 | ||
25974 | 2021-05-19 Jonathan Wright <jonathan.wright@arm.com> | |
25975 | ||
25976 | * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>): | |
25977 | Implement as an expand emitting a big/little endian | |
25978 | instruction pattern. | |
25979 | (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define. | |
25980 | (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define. | |
25981 | ||
25982 | 2021-05-19 Jonathan Wright <jonathan.wright@arm.com> | |
25983 | ||
25984 | * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>): | |
25985 | Implement as an expand emitting a big/little endian | |
25986 | instruction pattern. | |
25987 | (aarch64_<sur><addsub>hn2<mode>_insn_le): Define. | |
25988 | (aarch64_<sur><addsub>hn2<mode>_insn_be): Define. | |
25989 | * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and | |
25990 | UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator. | |
25991 | ||
25992 | 2021-05-19 Richard Biener <rguenther@suse.de> | |
25993 | ||
25994 | PR middle-end/100672 | |
25995 | * fold-const.c (fold_negate_expr_1): Use element_precision. | |
25996 | (negate_expr_p): Likewise. | |
25997 | ||
25998 | 2021-05-19 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25999 | ||
26000 | * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator. | |
26001 | (pred_load): New int attribute. | |
26002 | * config/aarch64/aarch64-sve.md | |
26003 | (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use | |
26004 | SVE_PRED_LOAD enum iterator and corresponding pred_load attribute. | |
26005 | * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to | |
26006 | code_for_aarch64_load. | |
26007 | ||
26008 | 2021-05-19 Richard Biener <rguenther@suse.de> | |
26009 | ||
26010 | * cfgexpand.c (discover_nonconstant_array_refs_r): Make | |
26011 | sure TARGET_MEM_REF bases are expanded as memory. | |
26012 | * tree-ssa-operands.c (operands_scanner::get_tmr_operands): | |
26013 | Do not mark TARGET_MEM_REF bases addressable. | |
26014 | * tree-ssa.c (non_rewritable_mem_ref_base): Handle | |
26015 | TARGET_MEM_REF bases as never rewritable. | |
26016 | * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not | |
26017 | walk TARGET_MEM_REF bases as address-takens. | |
26018 | * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF. | |
26019 | ||
26020 | 2021-05-19 Richard Biener <rguenther@suse.de> | |
26021 | ||
26022 | * builtins.c (get_object_alignment_1): Strip outer | |
26023 | WITH_SIZE_EXPR. | |
26024 | * tree-dfa.c (get_ref_base_and_extent): Handle outer | |
26025 | WITH_SIZE_EXPR for size processing and process the | |
26026 | containing ref. | |
26027 | * tree-ssa-alias.c (ao_ref_base_alias_set): Strip | |
26028 | outer WITH_SIZE_EXPR. | |
26029 | (ao_ref_base_alias_ptr_type): Likewise. | |
26030 | (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref | |
26031 | and handle that accordingly, stripping it for the | |
26032 | core alias workers. | |
26033 | * tree.c (get_base_address): Handle WITH_SIZE_EXPR by | |
26034 | looking through it instead of returning NULL. | |
26035 | ||
26036 | 2021-05-19 Jakub Jelinek <jakub@redhat.com> | |
26037 | ||
26038 | PR middle-end/100576 | |
26039 | * builtins.c (check_read_access): Convert bound to size_type_node if | |
26040 | non-NULL. | |
26041 | ||
26042 | 2021-05-19 Richard Biener <rguenther@suse.de> | |
26043 | ||
26044 | * tree-cfg.c (verify_types_in_gimple_min_lval): Inline... | |
26045 | (verify_types_in_gimple_reference): ... here. Sanitize. | |
26046 | (verify_gimple_call): Verify references in LHS and arguments. | |
26047 | (verify_gimple_assign_single): Reject WITH_SIZE_EXPR. | |
26048 | ||
26049 | 2021-05-19 Uroš Bizjak <ubizjak@gmail.com> | |
26050 | ||
26051 | * config/i386/i386.h (VALID_INT_MODE_P): | |
26052 | Add V8QI, V4HI and V2SI modes for TARGET_64BIT. | |
26053 | * config/i386/i386.md (isa): Add x64_bmi. | |
26054 | (enabled): Handle x64_bmi. | |
26055 | * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3): | |
26056 | Add alternative using 64bit general registers. | |
26057 | (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto. | |
26058 | ||
26059 | 2021-05-19 Jakub Jelinek <jakub@redhat.com> | |
26060 | ||
26061 | PR middle-end/99928 | |
26062 | * tree.h (OMP_MASTER_COMBINED): Define. | |
26063 | * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate | |
26064 | handling for outer combined/composite constructs to a loop. | |
26065 | Handle lastprivate on combined target. | |
26066 | (gimplify_expr): Formatting fix. | |
26067 | ||
26068 | 2021-05-19 Xionghu Luo <luoxhu@linux.ibm.com> | |
26069 | ||
26070 | * passes.def: Add sink_code pass before store_merging. | |
26071 | * tree-ssa-sink.c (pass_sink_code:clone): New. | |
26072 | ||
26073 | 2021-05-18 Bill Schmidt <wschmidt@linux.ibm.com> | |
26074 | ||
26075 | * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to | |
26076 | rs6000_special_adjust_field_align_p. | |
26077 | * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. | |
26078 | * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary): | |
26079 | Remove ABI warning. | |
26080 | (rs6000_function_arg): Likewise. | |
26081 | * config/rs6000/rs6000-protos.h | |
26082 | (rs6000_special_adjust_field_align_p): Remove prototype. | |
26083 | * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): | |
26084 | Remove. | |
26085 | * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to | |
26086 | rs6000_special_adjust_field_align_p. | |
26087 | ||
26088 | 2021-05-18 Uroš Bizjak <ubizjak@gmail.com> | |
26089 | ||
26090 | PR target/100637 | |
26091 | * config/i386/i386.h (VALID_SSE2_REG_MODE): | |
26092 | Add V4QI and V2HI modes. | |
26093 | (VALID_INT_MODE_P): Ditto. | |
26094 | * config/i386/mmx.md (VI_32): New mode iterator. | |
26095 | (mmxvecsize): Handle V4QI and V2HI. | |
26096 | (Yv_Yw): Ditto. | |
26097 | (mov<VI_32:mode>): New expander. | |
26098 | (*mov<mode>_internal): New insn pattern. | |
26099 | (movmisalign<VI_32:mode>): New expander. | |
26100 | (neg<VI_32:mode>): New expander. | |
26101 | (<plusminus:insn><VI_32:mode>3): New expander. | |
26102 | (*<plusminus:insn><VI_32:mode>3): New insn pattern. | |
26103 | (mulv2hi3): New expander. | |
26104 | (*mulv2hi3): New insn pattern. | |
26105 | (one_cmpl<VI_32:mode>2): New expander. | |
26106 | (*andnot<VI_32:mode>3): New insn pattern. | |
26107 | (<any_logic:code><VI_32:mode>3): New expander. | |
26108 | (*<any_logic:code><VI_32:mode>3): New insn pattern. | |
26109 | ||
26110 | 2021-05-18 Uroš Bizjak <ubizjak@gmail.com> | |
26111 | ||
26112 | * config/i386/sse.md (<any_extend:insn>v4qiv4di2): | |
26113 | Fix a mode mismatch with operand 1. | |
26114 | ||
26115 | 2021-05-18 Uroš Bizjak <ubizjak@gmail.com> | |
26116 | ||
26117 | PR target/100626 | |
26118 | * config/i386/i386-expand.c (split_double_mode): Return | |
26119 | temporary register when simplify_gen_subreg fails with | |
26120 | the high half od the paradoxical subreg. | |
26121 | ||
26122 | 2021-05-18 Richard Biener <rguenther@suse.de> | |
26123 | ||
26124 | * cfgexpand.c (expand_one_var): Pass in forced_stack_var | |
26125 | and honor it when expanding. | |
26126 | (expand_used_vars_for_block): Pass through forced_stack_var. | |
26127 | (expand_used_vars): Likewise. | |
26128 | (discover_nonconstant_array_refs_r): Set bits in | |
26129 | forced_stack_vars instead of marking vars TREE_ADDRESSABLE. | |
26130 | (avoid_type_punning_on_regs): Likewise. | |
26131 | (discover_nonconstant_array_refs): Likewise. | |
26132 | (pass_expand::execute): Create and pass down forced_stack_var | |
26133 | bitmap. For parameters and returns temporarily set | |
26134 | TREE_ADDRESSABLE when expand_function_start. | |
26135 | ||
26136 | 2021-05-18 Thomas Schwinge <thomas@codesourcery.com> | |
26137 | ||
26138 | * doc/sourcebuild.texi: Document 'dg-note'. | |
26139 | ||
26140 | 2021-05-18 Tobias Burnus <tobias@codesourcery.com> | |
26141 | ||
26142 | PR other/100598 | |
26143 | * configure: Regenerate. | |
26144 | * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@). | |
26145 | ||
26146 | 2021-05-18 Thomas Schwinge <thomas@codesourcery.com> | |
26147 | ||
26148 | * gimple.h (is_gimple_omp_oacc): Tighten. | |
26149 | * omp-low.c (check_omp_nesting_restrictions): Adjust. | |
26150 | ||
26151 | 2021-05-18 Richard Biener <rguenther@suse.de> | |
26152 | ||
26153 | * tree-ssa-operands.c (mark_address_taken): Simplify. | |
26154 | ||
26155 | 2021-05-18 Martin Liska <mliska@suse.cz> | |
26156 | ||
26157 | * config/gcn/mkoffload.c (STR): Redefine. | |
26158 | * config/i386/intelmic-mkoffload.c (STR): Likewise. | |
26159 | * config/nvptx/mkoffload.c (STR): Likewise. | |
26160 | ||
26161 | 2021-05-18 Martin Liska <mliska@suse.cz> | |
26162 | ||
26163 | * common/config/aarch64/aarch64-common.c (aarch64_parse_extension): | |
26164 | Use startswith function instead of strncmp. | |
26165 | * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. | |
26166 | * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise. | |
26167 | * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise. | |
26168 | * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise. | |
26169 | * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise. | |
26170 | * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. | |
26171 | * config/arm/arm.c (arm_file_start): Likewise. | |
26172 | (arm_valid_target_attribute_rec): Likewise. | |
26173 | (thumb1_md_asm_adjust): Likewise. | |
26174 | * config/arm/driver-arm.c (host_detect_local_cpu): Likewise. | |
26175 | * config/avr/avr.c (STR_PREFIX_P): Likewise. | |
26176 | (avr_set_current_function): Likewise. | |
26177 | (avr_handle_addr_attribute): Likewise. | |
26178 | (avr_asm_output_aligned_decl_common): Likewise. | |
26179 | (avr_asm_named_section): Likewise. | |
26180 | (avr_section_type_flags): Likewise. | |
26181 | (avr_asm_select_section): Likewise. | |
26182 | * config/c6x/c6x.c (c6x_in_small_data_p): Likewise. | |
26183 | (c6x_section_type_flags): Likewise. | |
26184 | * config/darwin-c.c (darwin_cfstring_ref_p): Likewise. | |
26185 | (darwin_objc_declare_unresolved_class_reference): Likewise. | |
26186 | (darwin_objc_declare_class_definition): Likewise. | |
26187 | * config/darwin.c (indirect_data): Likewise. | |
26188 | (darwin_encode_section_info): Likewise. | |
26189 | (darwin_objc2_section): Likewise. | |
26190 | (darwin_objc1_section): Likewise. | |
26191 | (machopic_select_section): Likewise. | |
26192 | (darwin_globalize_label): Likewise. | |
26193 | (darwin_label_is_anonymous_local_objc_name): Likewise. | |
26194 | (darwin_asm_named_section): Likewise. | |
26195 | (darwin_asm_output_dwarf_offset): Likewise. | |
26196 | * config/frv/frv.c (frv_string_begins_with): Likewise. | |
26197 | (frv_in_small_data_p): Likewise. | |
26198 | * config/gcn/mkoffload.c (STR): Likewise. | |
26199 | (main): Likewise. | |
26200 | * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise. | |
26201 | * config/i386/i386-options.c (ix86_option_override_internal): Likewise. | |
26202 | * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise. | |
26203 | (ix86_md_asm_adjust): Likewise. | |
26204 | * config/i386/intelmic-mkoffload.c (STR): Likewise. | |
26205 | * config/i386/winnt.c (i386_pe_asm_named_section): Likewise. | |
26206 | (i386_pe_file_end): Likewise. | |
26207 | * config/ia64/ia64.c (ia64_in_small_data_p): Likewise. | |
26208 | (ia64_section_type_flags): Likewise. | |
26209 | * config/mips/driver-native.c (host_detect_local_cpu): Likewise. | |
26210 | * config/mips/mips.c (mips_handle_interrupt_attr): Likewise. | |
26211 | (mips16_stub_function_p): Likewise. | |
26212 | (mips_function_rodata_section): Likewise. | |
26213 | * config/msp430/msp430.c (msp430_mcu_name): Likewise. | |
26214 | (msp430_function_section): Likewise. | |
26215 | (msp430_section_type_flags): Likewise. | |
26216 | (msp430_expand_helper): Likewise. | |
26217 | * config/nios2/nios2.c (nios2_small_section_name_p): Likewise. | |
26218 | (nios2_valid_target_attribute_rec): Likewise. | |
26219 | * config/nvptx/mkoffload.c (process): Likewise. | |
26220 | (STR): Likewise. | |
26221 | * config/pa/som.h: Likewise. | |
26222 | * config/pdp11/pdp11.c (pdp11_output_ident): Likewise. | |
26223 | * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise. | |
26224 | * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise. | |
26225 | (rs6000_inner_target_options): Likewise. | |
26226 | * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise. | |
26227 | * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise. | |
26228 | * config/vax/vax.c (vax_output_int_move): Likewise. | |
26229 | * config/vms/vms-ld.c (startswith): Likewise. | |
26230 | (process_args): Likewise. | |
26231 | (main): Likewise. | |
26232 | * config/vms/vms.c: Likewise. | |
26233 | ||
26234 | 2021-05-18 Jakub Jelinek <jakub@redhat.com> | |
26235 | ||
26236 | PR rtl-optimization/100590 | |
26237 | * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if | |
26238 | they are NONJUMP_INSN_P. | |
26239 | ||
26240 | 2021-05-18 Jakub Jelinek <jakub@redhat.com> | |
26241 | ||
26242 | PR c++/100580 | |
26243 | * function.c (push_dummy_function): Set DECL_ARTIFICIAL and | |
26244 | DECL_ASSEMBLER_NAME on the fn_decl. | |
26245 | ||
26246 | 2021-05-18 Jakub Jelinek <jakub@redhat.com> | |
26247 | ||
26248 | PR tree-optimization/94589 | |
26249 | * tree-ssa-phiopt.c (spaceship_replacement): Pattern match | |
26250 | phi result used in (res & ~1) == 0 comparison as res >= 0 as | |
26251 | res == 2 would be UB with -ffinite-math-only. | |
26252 | ||
26253 | 2021-05-18 Martin Liska <mliska@suse.cz> | |
26254 | ||
26255 | * Makefile.in: genversion.o should depend on DATESTAMP. | |
26256 | ||
26257 | 2021-05-18 Claudiu Zissulescu <claziss@synopsys.com> | |
26258 | ||
26259 | * config/arc/simdext.md (negv2si2): Remove round bracket. | |
26260 | ||
26261 | 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com> | |
26262 | ||
26263 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define | |
26264 | _Bool as macro expanding to _Bool. | |
26265 | ||
26266 | 2021-05-18 Andreas Krebbel <krebbel@linux.ibm.com> | |
26267 | ||
26268 | PR c++/100281 | |
26269 | * tree.c (build_reference_type_for_mode) | |
26270 | (build_pointer_type_for_mode): Pick pointer mode if MODE argument | |
26271 | is VOIDmode. | |
26272 | (build_reference_type, build_pointer_type): Invoke | |
26273 | build_*_type_for_mode with VOIDmode. | |
26274 | ||
26275 | 2021-05-17 Andrew MacLeod <amacleod@redhat.com> | |
26276 | ||
26277 | PR tree-optimization/100512 | |
26278 | * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const | |
26279 | and non-zero pointer ranges as invariant. | |
26280 | * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer | |
26281 | processing from here. | |
26282 | ||
26283 | 2021-05-17 Tom de Vries <tdevries@suse.de> | |
26284 | ||
26285 | PR target/100497 | |
26286 | * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare | |
26287 | * config/nvptx/nvptx.c (nvptx_output_barrier) | |
26288 | (nvptx_output_atomic_insn): New function. | |
26289 | (nvptx_print_operand): Add support for 'B'. | |
26290 | * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic | |
26291 | insns. | |
26292 | ||
26293 | 2021-05-17 Aldy Hernandez <aldyh@redhat.com> | |
26294 | ||
26295 | PR tree-optimization/100349 | |
26296 | * vr-values.c (bounds_of_var_in_loop): Bail if scev returns | |
26297 | NULL. | |
26298 | ||
26299 | 2021-05-17 Tamar Christina <tamar.christina@arm.com> | |
26300 | ||
26301 | * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New. | |
26302 | (host_detect_local_cpu): Use it. | |
26303 | ||
26304 | 2021-05-17 Martin Liska <mliska@suse.cz> | |
26305 | ||
26306 | * doc/invoke.texi: Add 2 missing dots. | |
26307 | ||
26308 | 2021-05-17 Marius Hillenbrand <mhillen@linux.ibm.com> | |
26309 | ||
26310 | PR bootstrap/100552 | |
26311 | * configure.ac: Replace pattern substitution with call to sed. | |
26312 | * configure: Regenerate. | |
26313 | ||
26314 | 2021-05-17 Richard Biener <rguenther@suse.de> | |
26315 | ||
26316 | PR middle-end/100582 | |
26317 | * tree.c (array_at_struct_end_p): Get to the base of the | |
26318 | reference before looking for the underlying decl. | |
26319 | ||
26320 | 2021-05-17 Joern Rennecke <joern.rennecke@embecosm.com> | |
26321 | ||
26322 | * genoutput.c (validate_insn_alternatives) Make "wrong number of | |
26323 | alternatives" message more specific, and remove assumption on where | |
26324 | the problem is. | |
26325 | ||
26326 | 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org> | |
26327 | ||
26328 | * config/arm/iterators.md (V16): New iterator. | |
26329 | (VH_cvtto): New iterator. | |
26330 | (v_cmp_result): Added V4HF and V8HF support. | |
26331 | * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH. | |
26332 | (vcond<mode><mode>): Likewise. | |
26333 | (vcond_mask_<mode><v_cmp_result>): Likewise. | |
26334 | (vcond<VH_cvtto><mode>): New expander. | |
26335 | ||
26336 | 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org> | |
26337 | ||
26338 | * config/arm/arm-protos.h (arm_expand_vector_compare): Update | |
26339 | prototype. | |
26340 | * config/arm/arm.c (arm_expand_vector_compare): Add support for | |
26341 | MVE. | |
26342 | (arm_expand_vcond): Likewise. | |
26343 | * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S, | |
26344 | VCMPEQQ_N_S, VCMPNEQ_N_S. | |
26345 | (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove. | |
26346 | * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix. | |
26347 | (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise. | |
26348 | (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise. | |
26349 | (@mve_vpselq_<supf><mode>): Likewise. | |
26350 | (@mve_vpselq_f<mode>"): Likewise. | |
26351 | * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE | |
26352 | and move to vec-common.md. | |
26353 | (vec_cmpu<mode><mode>): Likewise. | |
26354 | (vcond<mode><mode>): Likewise. | |
26355 | (vcond<V_cvtto><mode>): Likewise. | |
26356 | (vcondu<mode><v_cmp_result>): Likewise. | |
26357 | (vcond_mask_<mode><v_cmp_result>): Likewise. | |
26358 | * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S) | |
26359 | (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U) | |
26360 | (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S) | |
26361 | (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U) | |
26362 | (VCMPHIQ_N_U, VCMPHIQ_U): Remove. | |
26363 | * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved | |
26364 | from neon.md. | |
26365 | (vec_cmpu<mode><mode>): Likewise. | |
26366 | (vcond<mode><mode>): Likewise. | |
26367 | (vcond<V_cvtto><mode>): Likewise. | |
26368 | (vcondu<mode><v_cmp_result>): Likewise. | |
26369 | (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math | |
26370 | condition. | |
26371 | ||
26372 | 2021-05-17 liuhongt <hongtao.liu@intel.com> | |
26373 | ||
26374 | PR target/100549 | |
26375 | * config/i386/i386.c (ix86_gimple_fold_builtin): Use | |
26376 | gsi_insert_seq_before instead. | |
26377 | ||
26378 | 2021-05-17 Christophe Lyon <christophe.lyon@linaro.org> | |
26379 | ||
26380 | * doc/sourcebuild.texi (arm_qbit_ok): Rename into... | |
26381 | (arm_sat_ok): ...this. | |
26382 | ||
26383 | 2021-05-17 Martin Liska <mliska@suse.cz> | |
26384 | ||
26385 | * lto-wrapper.c (merge_flto_options): Factor out a new function. | |
26386 | (merge_and_complain): Use it. | |
26387 | (run_gcc): Merge also linker command line -flto=foo argument | |
26388 | with IL files. | |
26389 | ||
26390 | 2021-05-16 Christophe Lyon <christophe.lyon@linaro.org> | |
26391 | ||
26392 | * config/arm/arm.h (CPP_SPEC): Remove error message about | |
26393 | -mlittle-endian/-mbig-endian conflict. | |
26394 | ||
26395 | 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com> | |
26396 | ||
26397 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define | |
26398 | __ROP_PROTECT__ if -mrop-protect is selected. | |
26399 | ||
26400 | 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com> | |
26401 | ||
26402 | * config/rs6000/rs6000-internal.h (rs6000_stack): Add | |
26403 | rop_hash_save_offset and rop_hash_size. | |
26404 | * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute | |
26405 | rop_hash_size and rop_hash_save_offset. | |
26406 | (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size. | |
26407 | (rs6000_emit_prologue): Emit hashst[p] in prologue. | |
26408 | (rs6000_emit_epilogue): Emit hashchk[p] in epilogue. | |
26409 | * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and | |
26410 | UNSPEC_HASHCHK. | |
26411 | (hashst): New define_insn. | |
26412 | (hashchk): Likewise. | |
26413 | ||
26414 | 2021-05-15 Bill Schmidt <wschmidt@linux.ibm.com> | |
26415 | ||
26416 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
26417 | Disable shrink wrap when inserting ROP-protect instructions. | |
26418 | * config/rs6000/rs6000.opt (mrop-protect): New option. | |
26419 | (mprivileged): Likewise. | |
26420 | * doc/invoke.texi: Document mrop-protect and mprivileged. | |
26421 | ||
26422 | 2021-05-15 Hans-Peter Nilsson <hp@axis.com> | |
26423 | ||
26424 | * reorg.c (fill_slots_from_thread): Reinstate code typoed out in | |
26425 | "Remove CC0". | |
26426 | ||
26427 | 2021-05-15 Martin Jambor <mjambor@suse.cz> | |
26428 | ||
26429 | Revert: | |
26430 | 2021-05-13 Martin Jambor <mjambor@suse.cz> | |
26431 | ||
26432 | PR tree-optimization/100453 | |
26433 | * tree-sra.c (sra_modify_assign): All const base accesses do not | |
26434 | need refreshing, not just those from decl_pool. | |
26435 | (sra_modify_assign): Do not refresh into a const base decl. | |
26436 | ||
26437 | 2021-05-15 Jakub Jelinek <jakub@redhat.com> | |
26438 | ||
26439 | PR rtl-optimization/100342 | |
26440 | * regcprop.c (copy_value): When copying a source reg in a wider | |
26441 | mode than it has recorded for the value, adjust recorded destination | |
26442 | mode too or punt if !REG_CAN_CHANGE_MODE_P. | |
26443 | ||
26444 | 2021-05-14 Jason Merrill <jason@redhat.com> | |
26445 | ||
26446 | * intl.h: Add comments. | |
26447 | ||
26448 | 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
26449 | ||
26450 | * config/aarch64/aarch64-simd.md | |
26451 | (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into... | |
26452 | (aarch64_sqdmlsl2_lane<mode>_internal): ... This... | |
26453 | (aarch64_sqdmlal2_lane<mode>_internal): ... And this. | |
26454 | (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ... | |
26455 | (aarch64_sqdmlsl2_laneq<mode>_internal): ... This... | |
26456 | (aarch64_sqdmlal2_laneq<mode>_internal): ... And this. | |
26457 | (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into... | |
26458 | (aarch64_sqdmlsl2_n<mode>_internal): ... This... | |
26459 | (aarch64_sqdmlal2_n<mode>_internal): ... And this. | |
26460 | ||
26461 | 2021-05-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
26462 | ||
26463 | PR target/66791 | |
26464 | * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's | |
26465 | boolean logic equivalent. | |
26466 | (vtst_s16): Likewise. | |
26467 | (vtst_s32): Likewise. | |
26468 | (vtst_u8): Likewise. | |
26469 | (vtst_u16): Likewise. | |
26470 | (vtst_u32): Likewise. | |
26471 | (vtst_p8): Likewise. | |
26472 | (vtst_p16): Likewise. | |
26473 | (vtstq_s8): Likewise. | |
26474 | (vtstq_s16): Likewise. | |
26475 | (vtstq_s32): Likewise. | |
26476 | (vtstq_u8): Likewise. | |
26477 | (vtstq_u16): Likewise. | |
26478 | (vtstq_u32): Likewise. | |
26479 | (vtstq_p8): Likewise. | |
26480 | (vtstq_p16): Likewise. | |
26481 | * config/arm/arm_neon_builtins.def: Remove entry for vtst. | |
26482 | * config/arm/neon.md (neon_vtst<mode>): Remove pattern. | |
26483 | ||
26484 | 2021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
26485 | ||
26486 | * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into... | |
26487 | (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This. | |
26488 | (aarch64_sqdmlsl2<mode>): Delete. | |
26489 | (aarch64_sqdmlal2_lane<mode>): Merge this... | |
26490 | (aarch64_sqdmlsl2_lane<mode>): ... And this... | |
26491 | (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this. | |
26492 | (aarch64_sqdmlal2_laneq<mode>): Merge this... | |
26493 | (aarch64_sqdmlsl2_laneq<mode>): ... And this... | |
26494 | (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this. | |
26495 | (aarch64_sqdmlal2_n<mode>): Merge this... | |
26496 | (aarch64_sqdmlsl2_n<mode>): ... And this... | |
26497 | (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this. | |
26498 | ||
26499 | 2021-05-13 Martin Sebor <msebor@redhat.com> | |
26500 | ||
26501 | PR middle-end/100574 | |
26502 | * builtins.c (access_ref::get_ref): Improve detection of PHIs with | |
26503 | all null arguments. | |
26504 | ||
26505 | 2021-05-13 Martin Sebor <msebor@redhat.com> | |
26506 | ||
26507 | PR tree-optimization/93100 | |
26508 | PR middle-end/98583 | |
26509 | * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that | |
26510 | don't modify referenced objects. | |
26511 | ||
26512 | 2021-05-13 Martin Jambor <mjambor@suse.cz> | |
26513 | ||
26514 | PR tree-optimization/100453 | |
26515 | * tree-sra.c (sra_modify_assign): All const base accesses do not | |
26516 | need refreshing, not just those from decl_pool. | |
26517 | (sra_modify_assign): Do not refresh into a const base decl. | |
26518 | ||
26519 | 2021-05-13 Martin Liska <mliska@suse.cz> | |
26520 | ||
26521 | * tree-ssa-dom.c: Remove m_simplifier. | |
26522 | ||
26523 | 2021-05-13 Richard Earnshaw <rearnsha@arm.com> | |
26524 | ||
26525 | PR target/100563 | |
26526 | * config/arm/arm.c (arm_canonicalize_comparison): Correctly | |
26527 | canonicalize DImode inequality comparisons against the | |
26528 | maximum integral value. | |
26529 | ||
26530 | 2021-05-13 Jakub Jelinek <jakub@redhat.com> | |
26531 | ||
26532 | PR tree-optimization/98856 | |
26533 | * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument. | |
26534 | Expect V2DI and V4DI arithmetic right shifts to be emulated. | |
26535 | (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost | |
26536 | caller. | |
26537 | * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave, | |
26538 | expand_vec_perm_2perm_pblendv): New functions. | |
26539 | (ix86_expand_vec_perm_const_1): Use them. | |
26540 | * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ... | |
26541 | (<mask_codefor>ashr<mode>3<mask_name>): ... this. | |
26542 | (ashr<mode>3): New define_expand with VI248_AVX512BW iterator. | |
26543 | (ashrv4di3): New define_expand. | |
26544 | (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP | |
26545 | and !TARGET_AVX512VL expansion. | |
26546 | ||
26547 | 2021-05-13 Uroš Bizjak <ubizjak@gmail.com> | |
26548 | ||
26549 | PR target/100581 | |
26550 | * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode | |
26551 | sizes < 16 to a register when constructing vpcmov pattern. | |
26552 | * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode. | |
26553 | ||
26554 | 2021-05-13 Martin Liska <mliska@suse.cz> | |
26555 | ||
26556 | * gcov-io.c (gcov_write_block): Remove. | |
26557 | (gcov_write_words): Likewise. | |
26558 | (gcov_read_words): Re-implement using gcov_read_bytes. | |
26559 | (gcov_allocate): Remove. | |
26560 | (GCOV_BLOCK_SIZE): Likewise. | |
26561 | (struct gcov_var): Remove most of the fields. | |
26562 | (gcov_position): Implement with ftell. | |
26563 | (gcov_rewrite): Remove setting of start and offset fields. | |
26564 | (from_file): Re-format. | |
26565 | (gcov_open): Remove setbuf call. It should not be needed. | |
26566 | (gcov_close): Remove internal buffer handling. | |
26567 | (gcov_magic): Use __builtin_bswap32. | |
26568 | (gcov_write_counter): Use directly gcov_write_unsigned. | |
26569 | (gcov_write_string): Use direct fwrite and do not round | |
26570 | to 4 bytes. | |
26571 | (gcov_seek): Use directly fseek. | |
26572 | (gcov_write_tag): Use gcov_write_unsigned directly. | |
26573 | (gcov_write_length): Likewise. | |
26574 | (gcov_write_tag_length): Likewise. | |
26575 | (gcov_read_bytes): Use directly fread. | |
26576 | (gcov_read_unsigned): Use gcov_read_words. | |
26577 | (gcov_read_counter): Likewise. | |
26578 | (gcov_read_string): Use gcov_read_bytes. | |
26579 | * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect | |
26580 | that size is not in bytes, but words (4B). | |
26581 | (GCOV_TAG_FUNCTION_LENGTH): Likewise. | |
26582 | (GCOV_TAG_ARCS_LENGTH): Likewise. | |
26583 | (GCOV_TAG_ARCS_NUM): Likewise. | |
26584 | (GCOV_TAG_COUNTER_LENGTH): Likewise. | |
26585 | (GCOV_TAG_COUNTER_NUM): Likewise. | |
26586 | (GCOV_TAG_SUMMARY_LENGTH): Likewise. | |
26587 | ||
26588 | 2021-05-13 liuhongt <hongtao.liu@intel.com> | |
26589 | ||
26590 | PR target/94680 | |
26591 | * config/i386/sse.md (ssedoublevecmode): Add attribute for | |
26592 | V64QI/V32HI/V16SI/V4DI. | |
26593 | (ssehalfvecmode): Add attribute for V2DI/V2DF. | |
26594 | (*vec_concatv4si_0): Extend to VI124_128. | |
26595 | (*vec_concat<mode>_0): New pre-reload splitter. | |
26596 | * config/i386/predicates.md (movq_parallel): New predicate. | |
26597 | ||
26598 | 2021-05-13 Alexandre Oliva <oliva@adacore.com> | |
26599 | ||
26600 | * targhooks.c (default_zero_call_used_regs): Retry using | |
26601 | successfully-zeroed registers as sources. | |
26602 | ||
26603 | 2021-05-12 Tobias Burnus <tobias@codesourcery.com> | |
26604 | ||
26605 | * omp-low.c (finish_taskreg_scan): Use the proper detach decl. | |
26606 | ||
26607 | 2021-05-12 Aldy Hernandez <aldyh@redhat.com> | |
26608 | ||
26609 | PR c/100521 | |
26610 | * gimple-range.cc (range_of_builtin_call): Skip out on | |
26611 | processing __builtin_clz when varying. | |
26612 | ||
26613 | 2021-05-12 Tom de Vries <tdevries@suse.de> | |
26614 | ||
26615 | PR target/96005 | |
26616 | * config/nvptx/nvptx-opts.h (enum ptx_version): New enum. | |
26617 | * config/nvptx/nvptx.c (nvptx_file_start): Print .version according | |
26618 | to ptx_version_option. | |
26619 | * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define. | |
26620 | * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>") | |
26621 | (define_insn "nvptx_vote_ballot"): Use sync variant for | |
26622 | TARGET_PTX_6_3. | |
26623 | * config/nvptx/nvptx.opt (ptx_version): Add enum. | |
26624 | (mptx): Add option. | |
26625 | * doc/invoke.texi (Nvidia PTX Options): Add mptx item. | |
26626 | ||
26627 | 2021-05-12 Richard Biener <rguenther@suse.de> | |
26628 | ||
26629 | PR tree-optimization/100566 | |
26630 | * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle | |
26631 | allow_back for all edge queries. | |
26632 | ||
26633 | 2021-05-12 liuhongt <hongtao.liu@intel.com> | |
26634 | ||
26635 | PR target/99908 | |
26636 | * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add | |
26637 | splitters for pblendvb of NOT mask register. | |
26638 | ||
26639 | 2021-05-12 Richard Biener <rguenther@suse.de> | |
26640 | ||
26641 | PR tree-optimization/100519 | |
26642 | * tree-ssa-reassoc.c (can_associate_p): Split into... | |
26643 | (can_associate_op_p): ... this | |
26644 | (can_associate_type_p): ... and this. | |
26645 | (is_reassociable_op): Call can_associate_op_p. | |
26646 | (break_up_subtract_bb): Call the appropriate predicates. | |
26647 | (reassociate_bb): Likewise. | |
26648 | ||
26649 | 2021-05-12 Martin Liska <mliska@suse.cz> | |
26650 | ||
26651 | * lto-wrapper.c (merge_and_complain): Merge -flto=arg options. | |
26652 | (run_gcc): Use -flto argument detection for merged | |
26653 | fdecoded_options. | |
26654 | ||
26655 | 2021-05-12 Martin Liska <mliska@suse.cz> | |
26656 | ||
26657 | * lto-wrapper.c (print_lto_docs_link): New function. | |
26658 | (run_gcc): Print warning about missing job server detection | |
26659 | after we know NR of partitions. Do the same for -flto{,=1}. | |
26660 | * opts.c (get_option_html_page): Support -flto option. | |
26661 | ||
26662 | 2021-05-12 Martin Liska <mliska@suse.cz> | |
26663 | ||
26664 | * lto-wrapper.c (get_options_from_collect_gcc_options): Change | |
26665 | return type. | |
26666 | (append_option): Remove. | |
26667 | (find_option): Rework to use the vector type. | |
26668 | (remove_option): Remove. | |
26669 | (merge_and_complain): Use vectors for cl_decoded_option data | |
26670 | type arguments. | |
26671 | (append_compiler_options): Likewise. | |
26672 | (append_diag_options): Likewise. | |
26673 | (append_linker_options): Likewise. | |
26674 | (append_offload_options): Likewise. | |
26675 | (compile_offload_image): Likewise. | |
26676 | (compile_images_for_offload_targets): Likewise. | |
26677 | (find_and_merge_options): Likewise. | |
26678 | (run_gcc): Likewise. | |
26679 | ||
26680 | 2021-05-12 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
26681 | ||
26682 | PR debug/100515 | |
26683 | * dwarf2out.c (dwarf2out_finish): Set | |
26684 | have_multiple_function_sections with multi-range text_section. | |
26685 | ||
26686 | 2021-05-12 Martin Liska <mliska@suse.cz> | |
26687 | ||
26688 | PR bootstrap/100560 | |
26689 | * Makefile.in: Remove version.h from linker command line. | |
26690 | ||
26691 | 2021-05-12 Richard Biener <rguenther@suse.de> | |
26692 | ||
26693 | PR middle-end/100547 | |
26694 | * rtl.h (rtvec_alloc): Make argument size_t. | |
26695 | * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX. | |
26696 | ||
26697 | 2021-05-12 Jakub Jelinek <jakub@redhat.com> | |
26698 | ||
26699 | PR middle-end/100508 | |
26700 | * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector | |
26701 | type, don't reuse DECL_RTL if it has different mode, instead force | |
26702 | creation of a new DEBUG_EXPR. | |
26703 | ||
26704 | 2021-05-12 Jakub Jelinek <jakub@redhat.com> | |
26705 | Marc Glisse <marc.glisse@inria.fr> | |
26706 | ||
26707 | PR tree-optimization/94589 | |
26708 | * match.pd ((X & Y) == X -> (X & ~Y) == 0, | |
26709 | (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications. | |
26710 | ||
26711 | 2021-05-12 Uroš Bizjak <ubizjak@gmail.com> | |
26712 | ||
26713 | PR target/98218 | |
26714 | * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode. | |
26715 | * config/i386/mmx.md (MMXMODE124): New mode iterator. | |
26716 | (V2FI): Ditto. | |
26717 | (mmxintvecmode): New mode attribute. | |
26718 | (mmxintvecmodelower): Ditto. | |
26719 | (*mmx_maskcmpv2sf3_comm): New insn pattern. | |
26720 | (*mmx_maskcmpv2sf3): Ditto. | |
26721 | (vec_cmpv2sfv2si): New expander. | |
26722 | (vcond<V2FI:mode>v2si): Ditto. | |
26723 | (mmx_vlendvps): New insn pattern. | |
26724 | (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode. | |
26725 | (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto. | |
26726 | (vcond_mask_<mode><mmxintvecmodelower>): Ditto. | |
26727 | ||
26728 | 2021-05-11 Martin Sebor <msebor@redhat.com> | |
26729 | ||
26730 | PR middle-end/21433 | |
26731 | * expr.c (expand_expr_real_1): Replace unreachable code with an assert. | |
26732 | ||
26733 | 2021-05-11 Richard Biener <rguenther@suse.de> | |
26734 | ||
26735 | * gimple-fold.c (gimple_fold_call): Do not call | |
26736 | maybe_fold_reference on call arguments or the static chain. | |
26737 | (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM | |
26738 | inputs. | |
26739 | ||
26740 | 2021-05-11 Martin Liska <mliska@suse.cz> | |
26741 | ||
26742 | * builtins.def (DEF_HSAIL_BUILTIN): Remove. | |
26743 | (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. | |
26744 | (DEF_HSAIL_SAT_BUILTIN): Likewise. | |
26745 | (DEF_HSAIL_INTR_BUILTIN): Likewise. | |
26746 | (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. | |
26747 | * doc/frontends.texi: Remove BRIG. | |
26748 | * doc/install.texi: Likewise. | |
26749 | * doc/invoke.texi: Likewise. | |
26750 | * doc/standards.texi: Likewise. | |
26751 | * brig-builtins.def: Removed. | |
26752 | * brig/ChangeLog: Removed. | |
26753 | * brig/Make-lang.in: Removed. | |
26754 | * brig/brig-builtins.h: Removed. | |
26755 | * brig/brig-c.h: Removed. | |
26756 | * brig/brig-lang.c: Removed. | |
26757 | * brig/brigfrontend/brig-arg-block-handler.cc: Removed. | |
26758 | * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed. | |
26759 | * brig/brigfrontend/brig-basic-inst-handler.cc: Removed. | |
26760 | * brig/brigfrontend/brig-branch-inst-handler.cc: Removed. | |
26761 | * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed. | |
26762 | * brig/brigfrontend/brig-code-entry-handler.cc: Removed. | |
26763 | * brig/brigfrontend/brig-code-entry-handler.h: Removed. | |
26764 | * brig/brigfrontend/brig-comment-handler.cc: Removed. | |
26765 | * brig/brigfrontend/brig-control-handler.cc: Removed. | |
26766 | * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed. | |
26767 | * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed. | |
26768 | * brig/brigfrontend/brig-fbarrier-handler.cc: Removed. | |
26769 | * brig/brigfrontend/brig-function-handler.cc: Removed. | |
26770 | * brig/brigfrontend/brig-function.cc: Removed. | |
26771 | * brig/brigfrontend/brig-function.h: Removed. | |
26772 | * brig/brigfrontend/brig-inst-mod-handler.cc: Removed. | |
26773 | * brig/brigfrontend/brig-label-handler.cc: Removed. | |
26774 | * brig/brigfrontend/brig-lane-inst-handler.cc: Removed. | |
26775 | * brig/brigfrontend/brig-machine.c: Removed. | |
26776 | * brig/brigfrontend/brig-machine.h: Removed. | |
26777 | * brig/brigfrontend/brig-mem-inst-handler.cc: Removed. | |
26778 | * brig/brigfrontend/brig-module-handler.cc: Removed. | |
26779 | * brig/brigfrontend/brig-queue-inst-handler.cc: Removed. | |
26780 | * brig/brigfrontend/brig-seg-inst-handler.cc: Removed. | |
26781 | * brig/brigfrontend/brig-signal-inst-handler.cc: Removed. | |
26782 | * brig/brigfrontend/brig-to-generic.cc: Removed. | |
26783 | * brig/brigfrontend/brig-to-generic.h: Removed. | |
26784 | * brig/brigfrontend/brig-util.cc: Removed. | |
26785 | * brig/brigfrontend/brig-util.h: Removed. | |
26786 | * brig/brigfrontend/brig-variable-handler.cc: Removed. | |
26787 | * brig/brigfrontend/hsa-brig-format.h: Removed. | |
26788 | * brig/brigfrontend/phsa.h: Removed. | |
26789 | * brig/brigspec.c: Removed. | |
26790 | * brig/config-lang.in: Removed. | |
26791 | * brig/gccbrig.texi: Removed. | |
26792 | * brig/lang-specs.h: Removed. | |
26793 | * brig/lang.opt: Removed. | |
26794 | ||
26795 | 2021-05-11 Richard Biener <rguenther@suse.de> | |
26796 | ||
26797 | PR ipa/100513 | |
26798 | * ipa-param-manipulation.c | |
26799 | (ipa_param_body_adjustments::modify_call_stmt): Avoid | |
26800 | altering SSA_NAME_DEF_STMT by adjusting the calls LHS | |
26801 | via gimple_call_lhs_ptr. | |
26802 | ||
26803 | 2021-05-11 Alex Coplan <alex.coplan@arm.com> | |
26804 | ||
26805 | PR target/99725 | |
26806 | * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): | |
26807 | Avoid emitting CFA adjusts on the sp if we have the fp. | |
26808 | ||
26809 | 2021-05-11 Richard Sandiford <richard.sandiford@arm.com> | |
26810 | ||
26811 | * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete. | |
26812 | (VMULD): New iterator. | |
26813 | (VCOND): Handle V4HF and V8HF. | |
26814 | (VCONQ): Fix entry for V2SF. | |
26815 | * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD | |
26816 | instead of VMUL. Use a 64-bit vector mode for the indexed operand. | |
26817 | (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with... | |
26818 | (mul_laneq<mode>3): ...this define_insn. Use VMUL instead of VDQSF. | |
26819 | Use a 128-bit vector mode for the indexed operand. Use stype for | |
26820 | the scheduling type. | |
26821 | ||
26822 | 2021-05-11 Richard Biener <rguenther@suse.de> | |
26823 | ||
26824 | * gimple-fold.c (maybe_fold_reference): Only return | |
26825 | is_gimple_min_invariant values. | |
26826 | ||
26827 | 2021-05-11 Richard Biener <rguenther@suse.de> | |
26828 | ||
26829 | PR middle-end/100509 | |
26830 | * gimple-fold.c (fold_gimple_assign): Only call | |
26831 | get_symbol_constant_value on register type symbols. | |
26832 | ||
26833 | 2021-05-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26834 | Joe Ramsay <joe.ramsay@arm.com> | |
26835 | ||
26836 | PR target/100419 | |
26837 | * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments. | |
26838 | (__arm_vcmpneq): Remove duplicate definition. | |
26839 | (__arm_vstrwq_scatter_offset_p): Likewise. | |
26840 | (__arm_vmaxq_x): Likewise. | |
26841 | (__arm_vmlsdavaq): Likewise. | |
26842 | (__arm_vmlsdavaxq): Likewise. | |
26843 | (__arm_vmlsdavq_p): Likewise. | |
26844 | (__arm_vmlsdavxq_p): Likewise. | |
26845 | (__arm_vrmlaldavhaq): Likewise. | |
26846 | (__arm_vstrbq_p): Likewise. | |
26847 | (__arm_vstrbq_scatter_offset): Likewise. | |
26848 | (__arm_vstrbq_scatter_offset_p): Likewise. | |
26849 | (__arm_vstrdq_scatter_offset): Likewise. | |
26850 | (__arm_vstrdq_scatter_offset_p): Likewise. | |
26851 | (__arm_vstrdq_scatter_shifted_offset): Likewise. | |
26852 | (__arm_vstrdq_scatter_shifted_offset_p): Likewise. | |
26853 | ||
26854 | 2021-05-11 Jakub Jelinek <jakub@redhat.com> | |
26855 | ||
26856 | PR middle-end/100471 | |
26857 | * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data | |
26858 | is 0, bypass the reduction loop including | |
26859 | GOMP_taskgroup_reduction_unregister call. | |
26860 | ||
26861 | 2021-05-11 Kewen Lin <linkw@linux.ibm.com> | |
26862 | ||
26863 | * config/rs6000/rs6000.c (struct rs6000_cost_data): New member | |
26864 | costing_for_scalar. | |
26865 | (rs6000_density_test): Early return if costing_for_scalar is true. | |
26866 | (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data. | |
26867 | ||
26868 | 2021-05-11 Kewen Lin <linkw@linux.ibm.com> | |
26869 | ||
26870 | * doc/tm.texi: Regenerated. | |
26871 | * target.def (init_cost): Add new parameter costing_for_scalar. | |
26872 | * targhooks.c (default_init_cost): Adjust for new parameter. | |
26873 | * targhooks.h (default_init_cost): Likewise. | |
26874 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. | |
26875 | (vect_compute_single_scalar_iteration_cost): Likewise. | |
26876 | (vect_analyze_loop_2): Likewise. | |
26877 | * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. | |
26878 | (vect_bb_vectorization_profitable_p): Likewise. | |
26879 | * tree-vectorizer.h (init_cost): Likewise. | |
26880 | * config/aarch64/aarch64.c (aarch64_init_cost): Likewise. | |
26881 | * config/i386/i386.c (ix86_init_cost): Likewise. | |
26882 | * config/rs6000/rs6000.c (rs6000_init_cost): Likewise. | |
26883 | ||
26884 | 2021-05-11 Kewen Lin <linkw@linux.ibm.com> | |
26885 | ||
26886 | * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to | |
26887 | vect_nonmem and moved into... | |
26888 | (struct rs6000_cost_data): ...here. | |
26889 | (rs6000_init_cost): Use vect_nonmem of cost_data instead. | |
26890 | (rs6000_add_stmt_cost): Likewise. | |
26891 | (rs6000_finish_cost): Likewise. | |
26892 | ||
26893 | 2021-05-10 Eric Botcazou <ebotcazou@adacore.com> | |
26894 | ||
26895 | * range-op.cc (get_bool_state): Adjust head comment. | |
26896 | (operator_not_equal::op1_range): Fix comment. | |
26897 | (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable. | |
26898 | ||
26899 | 2021-05-10 Martin Sebor <msebor@redhat.com> | |
26900 | ||
26901 | PR middle-end/100425 | |
26902 | PR middle-end/100510 | |
26903 | * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename... | |
26904 | (pass_walloca::xlimit_certain_p): ...to this. | |
26905 | (pass_walloca::gate): Execute for any kind of handled warning. | |
26906 | (pass_walloca::execute): Avoid issuing "maybe" and "unbounded" | |
26907 | warnings when xlimit_certain_p is set. | |
26908 | ||
26909 | 2021-05-10 Pat Haugen <pthaugen@linux.ibm.com> | |
26910 | ||
26911 | * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class): | |
26912 | Return ALTIVEC_REGS if that is best_class. | |
26913 | (rs6000_compute_pressure_classes): Add ALTIVEC_REGS. | |
26914 | ||
26915 | 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org> | |
26916 | ||
26917 | * config/arm/arm.h (CPP_SPEC): Remove error message about | |
26918 | -mfloat-abi. | |
26919 | ||
26920 | 2021-05-10 Martin Jambor <mjambor@suse.cz> | |
26921 | ||
26922 | * ipa-prop.h (IPA_NODE_REF): Removed. | |
26923 | (IPA_NODE_REF_GET_CREATE): Likewise. | |
26924 | (IPA_EDGE_REF): Likewise. | |
26925 | (IPA_EDGE_REF_GET_CREATE): Likewise. | |
26926 | (IS_VALID_JUMP_FUNC_INDEX): Likewise. | |
26927 | * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct | |
26928 | use of ipa_node_params_sum. | |
26929 | (ipcp_versionable_function_p): Likewise. | |
26930 | (push_node_to_stack): Likewise. | |
26931 | (pop_node_from_stack): Likewise. | |
26932 | (set_single_call_flag): Replaced two IPA_NODE_REF with one single | |
26933 | direct use of ipa_node_params_sum. | |
26934 | (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of | |
26935 | ipa_node_params_sum. | |
26936 | (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of | |
26937 | ipa_edge_args_sum. | |
26938 | (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct | |
26939 | use of ipa_node_params_sum. | |
26940 | (self_recursively_generated_p): Likewise. | |
26941 | (propagate_scalar_across_jump_function): Likewise. | |
26942 | (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a | |
26943 | direct use of ipa_edge_args_sum, moved the lookup after the early | |
26944 | exit. Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum. | |
26945 | (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with | |
26946 | direct uses of ipa_node_params_sum. | |
26947 | (propagate_vr_across_jump_function): Likewise. | |
26948 | (propagate_aggregate_lattice): Likewise. | |
26949 | (propagate_aggs_across_jump_function): Likewise. | |
26950 | (propagate_constants_across_call): Likewise, also replaced | |
26951 | IPA_EDGE_REF with a direct use of ipa_edge_args_sum. | |
26952 | (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use | |
26953 | of ipa_node_params_sum. | |
26954 | (estimate_local_effects): Likewise. | |
26955 | (add_all_node_vals_to_toposort): Likewise. | |
26956 | (propagate_constants_topo): Likewise. | |
26957 | (ipcp_propagate_stage): Likewise. | |
26958 | (ipcp_discover_new_direct_edges): Likewise. | |
26959 | (calls_same_node_or_its_all_contexts_clone_p): Likewise. | |
26960 | (cgraph_edge_brings_value_p): Likewise (in both overloaded functions). | |
26961 | (get_info_about_necessary_edges): Likewise. | |
26962 | (want_remove_some_param_p): Likewise. | |
26963 | (create_specialized_node): Likewise. | |
26964 | (self_recursive_pass_through_p): Likewise. | |
26965 | (self_recursive_agg_pass_through_p): Likewise. | |
26966 | (find_more_scalar_values_for_callers_subset): Likewise and also | |
26967 | replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one | |
26968 | case replacing two of those with a single query. | |
26969 | (find_more_contexts_for_caller_subset): Likewise for the | |
26970 | ipa_polymorphic_call_context overload. | |
26971 | (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct | |
26972 | use of ipa_edge_args_sum. Replaced IPA_NODE_REF with direct uses of | |
26973 | ipa_node_params_sum. | |
26974 | (find_aggregate_values_for_callers_subset): Likewise, also reusing | |
26975 | results of ipa_edge_args_sum->get. | |
26976 | (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with | |
26977 | direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a | |
26978 | direct use of ipa_edge_args_sum. | |
26979 | (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node | |
26980 | summary query after the early exit and reused the result later. | |
26981 | (decide_about_value): Replaced IPA_NODE_REF with a direct use of | |
26982 | ipa_node_params_sum. | |
26983 | (decide_whether_version_node): Likewise. Removed re-querying for | |
26984 | summaries after cloning. | |
26985 | (spread_undeadness): Replaced IPA_NODE_REF with a direct use of | |
26986 | ipa_node_params_sum. | |
26987 | (has_undead_caller_from_outside_scc_p): Likewise, reusing results of | |
26988 | some queries. | |
26989 | (identify_dead_nodes): Likewise. | |
26990 | (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of | |
26991 | ipa_node_params_sum. | |
26992 | (ipcp_store_vr_results): Likewise. | |
26993 | * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise. | |
26994 | (ipa_fn_summary_t::duplicate): Likewise. | |
26995 | (analyze_function_body): Likewise. | |
26996 | (estimate_calls_size_and_time): Likewise. | |
26997 | (ipa_cached_call_context::duplicate_from): Likewise. | |
26998 | (ipa_call_context::equal_to): Likewise. | |
26999 | (remap_edge_params): Likewise. | |
27000 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
27001 | (inline_read_section): Likewise. | |
27002 | * ipa-icf.c (sem_function::param_used_p): Likewise. | |
27003 | * ipa-modref.c (compute_parm_map): Likewise. | |
27004 | (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of | |
27005 | ipa_edge_args_sum. | |
27006 | (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of | |
27007 | ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of | |
27008 | ipa_edge_args_sum. | |
27009 | * ipa-profile.c (check_argument_count): Likewise. | |
27010 | * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE | |
27011 | with a direct use of ipa_node_params_sum. | |
27012 | (ipa_initialize_node_params): Likewise. | |
27013 | (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a | |
27014 | direct use of ipa_edge_args_sum and reused the query result. | |
27015 | (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a | |
27016 | direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a | |
27017 | direct use of ipa_edge_args_sum. | |
27018 | (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of | |
27019 | ipa_node_params_sum and reused the result of the query. | |
27020 | (ipa_analyze_node): Likewise. | |
27021 | (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use | |
27022 | of ipa_node_params_sum. | |
27023 | (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with | |
27024 | direct uses of ipa_edge_args_sum. | |
27025 | (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with | |
27026 | direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a | |
27027 | direct use of ipa_edge_args_sum. Removed superficial re-querying the | |
27028 | top edge summary. | |
27029 | (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of | |
27030 | ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of | |
27031 | ipa_edge_args_sum. | |
27032 | (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a | |
27033 | direct use of ipa_edge_args_sum. | |
27034 | (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct | |
27035 | use of ipa_node_params_sum. | |
27036 | (ipa_print_node_params): Likewise. | |
27037 | (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with | |
27038 | direct uses of ipa_edge_args_sum. | |
27039 | (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of | |
27040 | ipa_edge_args_sum. | |
27041 | (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of | |
27042 | ipa_node_params_sum. | |
27043 | (ipa_prop_write_jump_functions): Likewise. Move variable node to the | |
27044 | scopes where it is used. | |
27045 | ||
27046 | 2021-05-10 Uroš Bizjak <ubizjak@gmail.com> | |
27047 | ||
27048 | * config/i386/i386-expand.c (ix86_expand_sse_movcc) | |
27049 | <case E_V2SImode>: Force op_true to register. | |
27050 | ||
27051 | 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org> | |
27052 | ||
27053 | * config/arm/iterators.md (MVE_FP_COMPARISONS): New. | |
27054 | * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>) | |
27055 | (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f* | |
27056 | patterns. | |
27057 | (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>) | |
27058 | (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>) | |
27059 | (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>) | |
27060 | (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>) | |
27061 | (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>) | |
27062 | (mve_vcmpneq_n_f<mode>): Remove. | |
27063 | * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F) | |
27064 | (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F) | |
27065 | (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove. | |
27066 | ||
27067 | 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org> | |
27068 | ||
27069 | * config/arm/iterators.md (MVE_COMPARISONS): New. | |
27070 | (mve_cmp_op): New. | |
27071 | (mve_cmp_type): New. | |
27072 | * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all | |
27073 | mve_vcmp patterns. | |
27074 | (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>) | |
27075 | (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>) | |
27076 | (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>) | |
27077 | (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>) | |
27078 | (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>) | |
27079 | (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>) | |
27080 | (mve_vcmpneq_n_<mode>): Remove. | |
27081 | ||
27082 | 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org> | |
27083 | ||
27084 | * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix. | |
27085 | * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix. | |
27086 | * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern | |
27087 | names. | |
27088 | ||
27089 | 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org> | |
27090 | ||
27091 | * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove. | |
27092 | (vcmpneq_n_u): Likewise. | |
27093 | (vcmpeqq_u,): Likewise. | |
27094 | (vcmpeqq_n_u): Likewise. | |
27095 | * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U, | |
27096 | VCMPEQQ_N_U and VCMPNEQ_N_U. | |
27097 | * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration. | |
27098 | (mve_vcmpeqq_n): Likewise. | |
27099 | (mve_vcmpeqq): Likewise. | |
27100 | (mve_vcmpneq_n): Likewise. | |
27101 | ||
27102 | 2021-05-10 Christophe Lyon <christophe.lyon@linaro.org> | |
27103 | ||
27104 | * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call | |
27105 | the 's' version of the builtin. | |
27106 | ||
27107 | 2021-05-10 Richard Biener <rguenther@suse.de> | |
27108 | ||
27109 | PR tree-optimization/100492 | |
27110 | * tree-loop-distribution.c (find_seed_stmts_for_distribution): | |
27111 | Find nothing when the loop contains an irreducible region. | |
27112 | ||
27113 | 2021-05-10 Richard Biener <rguenther@suse.de> | |
27114 | ||
27115 | PR middle-end/100464 | |
27116 | PR c++/100468 | |
27117 | * gimple-fold.c (canonicalize_constructor_val): Do not set | |
27118 | TREE_ADDRESSABLE. | |
27119 | ||
27120 | 2021-05-10 Richard Biener <rguenther@suse.de> | |
27121 | ||
27122 | PR tree-optimization/100434 | |
27123 | * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle | |
27124 | call LHS. | |
27125 | (dse_optimize_stmt): Handle call LHS by dropping the | |
27126 | LHS or the whole call if it doesn't have other | |
27127 | side-effects. | |
27128 | (pass_dse::execute): Adjust. | |
27129 | ||
27130 | 2021-05-10 Martin Liska <mliska@suse.cz> | |
27131 | ||
27132 | * Makefile.in: Add missing genversion rule. | |
27133 | ||
27134 | 2021-05-10 Alex Coplan <alex.coplan@arm.com> | |
27135 | ||
27136 | PR target/99960 | |
27137 | * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use | |
27138 | vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores. | |
27139 | ||
27140 | 2021-05-10 Martin Liska <mliska@suse.cz> | |
27141 | ||
27142 | * builtins.c (is_builtin_name): Use startswith | |
27143 | function instead of strncmp. | |
27144 | * collect2.c (main): Likewise. | |
27145 | (has_lto_section): Likewise. | |
27146 | (scan_libraries): Likewise. | |
27147 | * coverage.c (coverage_checksum_string): Likewise. | |
27148 | (coverage_init): Likewise. | |
27149 | * dwarf2out.c (is_cxx): Likewise. | |
27150 | (gen_compile_unit_die): Likewise. | |
27151 | * gcc-ar.c (main): Likewise. | |
27152 | * gcc.c (init_spec): Likewise. | |
27153 | (read_specs): Likewise. | |
27154 | (execute): Likewise. | |
27155 | (check_live_switch): Likewise. | |
27156 | * genattrtab.c (write_attr_case): Likewise. | |
27157 | (IS_ATTR_GROUP): Likewise. | |
27158 | * gencfn-macros.c (main): Likewise. | |
27159 | * gengtype.c (type_for_name): Likewise. | |
27160 | (gen_rtx_next): Likewise. | |
27161 | (get_file_langdir): Likewise. | |
27162 | (write_local): Likewise. | |
27163 | * genmatch.c (get_operator): Likewise. | |
27164 | (get_operand_type): Likewise. | |
27165 | (expr::gen_transform): Likewise. | |
27166 | * genoutput.c (validate_optab_operands): Likewise. | |
27167 | * incpath.c (add_sysroot_to_chain): Likewise. | |
27168 | * langhooks.c (lang_GNU_C): Likewise. | |
27169 | (lang_GNU_CXX): Likewise. | |
27170 | (lang_GNU_Fortran): Likewise. | |
27171 | (lang_GNU_OBJC): Likewise. | |
27172 | * lto-wrapper.c (run_gcc): Likewise. | |
27173 | * omp-general.c (omp_max_simt_vf): Likewise. | |
27174 | * omp-low.c (omp_runtime_api_call): Likewise. | |
27175 | * opts-common.c (parse_options_from_collect_gcc_options): Likewise. | |
27176 | * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise. | |
27177 | * real.c (real_from_string): Likewise. | |
27178 | * selftest.c (assert_str_startswith): Likewise. | |
27179 | * timevar.c (timer::validate_phases): Likewise. | |
27180 | * tree.c (get_file_function_name): Likewise. | |
27181 | * ubsan.c (ubsan_use_new_style_p): Likewise. | |
27182 | * varasm.c (default_function_rodata_section): Likewise. | |
27183 | (incorporeal_function_p): Likewise. | |
27184 | (default_section_type_flags): Likewise. | |
27185 | * system.h (startswith): Define startswith. | |
27186 | ||
27187 | 2021-05-10 Martin Liska <mliska@suse.cz> | |
27188 | ||
27189 | * bitmap.h (class auto_bitmap): Remove | |
27190 | __cplusplus >= 201103. | |
27191 | * config/aarch64/aarch64.c: Likewise. | |
27192 | * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info): | |
27193 | Likewise. | |
27194 | * sbitmap.h: Likewise. | |
27195 | ||
27196 | 2021-05-10 Martin Liska <mliska@suse.cz> | |
27197 | ||
27198 | * Makefile.in: Rename gcov-iov to genversion and depend | |
27199 | on version.h (instead of gcov-iov.h). | |
27200 | * gcov-io.h: Include version.h instread of gcov-iov.h. | |
27201 | * gengtype-state.c (read_state_version): Likewise. | |
27202 | * gcov-iov.c: Moved to... | |
27203 | * genversion.c: ...here. | |
27204 | * lto-streamer.h (LTO_major_version): Define it with | |
27205 | GCC_major_version. | |
27206 | * version.c: Removed. | |
27207 | * version.h: Removed. | |
27208 | ||
27209 | 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com> | |
27210 | ||
27211 | * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define. | |
27212 | * config/arc/simdext.md (VCT): Add predicates for iterator | |
27213 | elements. | |
27214 | (EMUVEC): Define. | |
27215 | (voptab): Likewise. | |
27216 | (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate. | |
27217 | (<voptab>v2si3): New patterns. | |
27218 | (neg): Likewise. | |
27219 | (reduc_plus_scal_v4hi): Likewise. | |
27220 | (reduc_plus_scal_v2si): Likewise. | |
27221 | (vec_duplicatev2si): Likewise. | |
27222 | (vec_duplicatev4hi): Likewise. | |
27223 | ||
27224 | 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com> | |
27225 | ||
27226 | * config/arc/simdext.md: Format and cleanup file. | |
27227 | ||
27228 | 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com> | |
27229 | ||
27230 | * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access | |
27231 | only when munaligned-access option is on. | |
27232 | (movmisalign<mode>): Likewise. | |
27233 | ||
27234 | 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com> | |
27235 | ||
27236 | * common/config/arc/arc-common.c (arc_handle_option): Remove dot | |
27237 | from string. | |
27238 | * config/arc/arc.c (arc_reorg): Remove underscore from string. | |
27239 | ||
27240 | 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com> | |
27241 | ||
27242 | * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. | |
27243 | (CTZ_DEFINED_VALUE_AT_ZERO): Likewise. | |
27244 | * config/arc/arc.md (clrsbsi2): Cleanup pattern. | |
27245 | (norm_f): Likewise. | |
27246 | (ffs): Likewise. | |
27247 | (ffs_f): Likewise. | |
27248 | (clzsi2): Use fls instruction when available. | |
27249 | (arc_clzsi2): Likewise. | |
27250 | ||
27251 | 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com> | |
27252 | ||
27253 | * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27. | |
27254 | ||
27255 | 2021-05-10 Claudiu Zissulescu <claziss@synopsys.com> | |
27256 | ||
27257 | * doc/extend.texi (__builtin_arc_sr): Swap arguments. | |
27258 | ||
27259 | 2021-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
27260 | ||
27261 | PR middle-end/100467 | |
27262 | * toplev.c (compile_file): Call insn_locations_init before | |
27263 | targetm.asm_out.code_end. | |
27264 | ||
27265 | 2021-05-07 Andrew Stubbs <ams@codesourcery.com> | |
27266 | ||
27267 | Revert: | |
27268 | 2021-05-07 Andrew Stubbs <ams@codesourcery.com> | |
27269 | ||
27270 | * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode. | |
27271 | ||
27272 | 2021-05-07 Jakub Jelinek <jakub@redhat.com> | |
27273 | Andrew Stubbs <amd@codesourcery.com> | |
27274 | ||
27275 | PR target/100418 | |
27276 | * builtins.c (try_store_by_multiple_pieces): Use force_operand for | |
27277 | emit_move_insn operands. | |
27278 | ||
27279 | 2021-05-07 Eric Botcazou <ebotcazou@adacore.com> | |
27280 | ||
27281 | * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current | |
27282 | location for the outgoing edges of an empty block. | |
27283 | * dwarf2out.c (add_subscript_info): Retrieve the bounds and index | |
27284 | type by means of the get_array_descr_info langhook, if it is set and | |
27285 | returns true. Remove obsolete code dealing with unnamed subtypes. | |
27286 | ||
27287 | 2021-05-07 Andrew MacLeod <amacleod@redhat.com> | |
27288 | ||
27289 | * gimple-range-cache.cc (ssa_block_ranges): Virtualize. | |
27290 | (sbr_vector): Renamed from ssa_block_cache. | |
27291 | (sbr_vector::sbr_vector): Allocate from obstack abd initialize. | |
27292 | (ssa_block_ranges::~ssa_block_ranges): Remove. | |
27293 | (sbr_vector::set_bb_range): Use varying and undefined cached values. | |
27294 | (ssa_block_ranges::set_bb_varying): Remove. | |
27295 | (sbr_vector::get_bb_range): Adjust assert. | |
27296 | (sbr_vector::bb_range_p): Adjust assert. | |
27297 | (~block_range_cache): No freeing loop required. | |
27298 | (block_range_cache::get_block_ranges): Remove. | |
27299 | (block_range_cache::set_bb_range): Inline get_block_ranges. | |
27300 | (block_range_cache::set_bb_varying): Remove. | |
27301 | * gimple-range-cache.h (set_bb_varying): Remove prototype. | |
27302 | * value-range.h (irange_allocator::get_memory): New. | |
27303 | ||
27304 | 2021-05-07 Andrew MacLeod <amacleod@redhat.com> | |
27305 | ||
27306 | * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search | |
27307 | dominator tree is available and requested. | |
27308 | (ranger_cache::ssa_range_in_bb): Don't search dom tree here. | |
27309 | (ranger_cache::fill_block_cache): Don't search dom tree here either. | |
27310 | * gimple-range-cache.h (non_null_deref_p): Add dom_search param. | |
27311 | ||
27312 | 2021-05-07 Andrew MacLeod <amacleod@redhat.com> | |
27313 | ||
27314 | * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with | |
27315 | only PHI nodes better. | |
27316 | ||
27317 | 2021-05-07 Andrew MacLeod <amacleod@redhat.com> | |
27318 | ||
27319 | * gimple-range-edge.h (gimple_outgoing_range): Rename from | |
27320 | outgoing_range. | |
27321 | (gcond_edge_range): Export prototype. | |
27322 | * gimple-range-edge.cc (gcond_edge_range): New. | |
27323 | (gimple_outgoing_range::edge_range_p): Use gcond_edge_range. | |
27324 | * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range. | |
27325 | ||
27326 | 2021-05-07 Andrew MacLeod <amacleod@redhat.com> | |
27327 | ||
27328 | * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute | |
27329 | default range into a temp and allocate only what is needed. | |
27330 | ||
27331 | 2021-05-07 Andrew MacLeod <amacleod@redhat.com> | |
27332 | ||
27333 | * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED. | |
27334 | ||
27335 | 2021-05-07 Andrew MacLeod <amacleod@redhat.com> | |
27336 | ||
27337 | * gimple-range.h (gimple_range_global): Pick up parameter initial | |
27338 | values, and use-before defined locals are UNDEFINED. | |
27339 | ||
27340 | 2021-05-07 Eric Botcazou <ebotcazou@adacore.com> | |
27341 | ||
27342 | * doc/extend.texi (scalar_storage_order): Mention effect on pointer | |
27343 | and vector fields. | |
27344 | * tree.h (reverse_storage_order_for_component_p): Return false if | |
27345 | the type is a pointer. | |
27346 | ||
27347 | 2021-05-07 Andrew Stubbs <ams@codesourcery.com> | |
27348 | ||
27349 | * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode. | |
27350 | ||
27351 | 2021-05-07 Uroš Bizjak <ubizjak@gmail.com> | |
27352 | ||
27353 | PR target/98218 | |
27354 | * config/i386/i386-expand.c (ix86_expand_sse_movcc): | |
27355 | Handle V8QI, V4HI and V2SI modes. | |
27356 | * config/i386/mmx.md (mmx_pblendvb): New insn pattern. | |
27357 | * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ... | |
27358 | * config/i386/i386.md (unspec): ... here. | |
27359 | ||
27360 | 2021-05-07 Tobias Burnus <tobias@codesourcery.com> | |
27361 | Tom de Vries <tdevries@suse.de> | |
27362 | ||
27363 | * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if | |
27364 | a truth_value_p reduction variable is nonintegral. | |
27365 | ||
27366 | 2021-05-07 Uroš Bizjak <ubizjak@gmail.com> | |
27367 | ||
27368 | PR target/100445 | |
27369 | * config/i386/i386-expand.c (ix86_use_mask_cmp_p): | |
27370 | Return false for mode sizes < 16. | |
27371 | ||
27372 | 2021-05-07 Jakub Jelinek <jakub@redhat.com> | |
27373 | ||
27374 | PR target/100445 | |
27375 | * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn. | |
27376 | ||
27377 | 2021-05-06 Martin Jambor <mjambor@suse.cz> | |
27378 | ||
27379 | * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even | |
27380 | when there is no function summary. | |
27381 | (ipa_sra_summarize_function): produce edge summaries even when | |
27382 | bailing out early. | |
27383 | ||
27384 | 2021-05-06 Tom Tromey <tom@tromey.com> | |
27385 | ||
27386 | * godump.c (string_hash_eq): Remove. | |
27387 | (go_finish): Use htab_eq_string. | |
27388 | ||
27389 | 2021-05-06 Tom Tromey <tom@tromey.com> | |
27390 | ||
27391 | * gengtype-state.c (read_state): Use htab_eq_string. | |
27392 | (string_eq): Remove. | |
27393 | ||
27394 | 2021-05-06 Tom Tromey <tom@tromey.com> | |
27395 | ||
27396 | * gensupport.c (htab_eq_string): Remove. | |
27397 | ||
27398 | 2021-05-06 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
27399 | ||
27400 | PR ipa/97937 | |
27401 | * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer. | |
27402 | * dwarf2out.h (dw_fde_node::ignored_debug): New data item. | |
27403 | * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy | |
27404 | set_ignored_loc callbacks. | |
27405 | * debug.c (do_nothing_debug_hooks): Likewise. | |
27406 | * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. | |
27407 | * dwarf2out.c (text_section_used, cold_text_section_used): Remove. | |
27408 | (in_text_section_p, last_text_label, last_cold_label, | |
27409 | switch_text_ranges, switch_cold_ranges): New data items. | |
27410 | (dwarf2out_note_section_used): Remove. | |
27411 | (dwarf2out_begin_prologue): Set fde->ignored_debug and | |
27412 | in_text_section_p. | |
27413 | (mark_ignored_debug_section): New helper function. | |
27414 | (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call | |
27415 | mark_ignored_debug_section. | |
27416 | (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc. | |
27417 | (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc. | |
27418 | (size_of_aranges): Adjust formula for multi-part text ranges size. | |
27419 | (output_aranges): Output multi-part text ranges. | |
27420 | (dwarf2out_set_ignored_loc): New callback function. | |
27421 | (dwarf2out_finish): Output multi-part text ranges. | |
27422 | (dwarf2out_c_finalize): Clear new data items. | |
27423 | * final.c (final_start_function_1): Call set_ignored_loc callback. | |
27424 | (final_scan_insn_1): Likewise. | |
27425 | * ggc-page.c (gt_ggc_mx): New helper function. | |
27426 | * stringpool.c (gt_pch_nx): Likewise. | |
27427 | ||
27428 | 2021-05-06 Richard Biener <rguenther@suse.de> | |
27429 | ||
27430 | * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove. | |
27431 | (TV_TREE_SSA_REWRITE_BLOCKS): Likewise. | |
27432 | (TV_TREE_INTO_SSA): New. | |
27433 | * tree-into-ssa.c (insert_phi_nodes): Do not account separately. | |
27434 | (rewrite_blocks): Likewise. | |
27435 | (pass_data_build_ssa): Account to TV_TREE_INTO_SSA. | |
27436 | ||
27437 | 2021-05-06 Jakub Jelinek <jakub@redhat.com> | |
27438 | ||
27439 | * tree-ssa-phiopt.c (value_replacement, minmax_replacement, | |
27440 | abs_replacement, xor_replacement, | |
27441 | cond_removal_in_popcount_clz_ctz_pattern, | |
27442 | replace_phi_edge_with_variable): Change type of phi argument from | |
27443 | gimple * to gphi *. | |
27444 | ||
27445 | 2021-05-06 Richard Biener <rguenther@suse.de> | |
27446 | ||
27447 | * tree-ssa-loop-split.c (split_loop): Delay updating SSA form. | |
27448 | Output an opt-info message. | |
27449 | (do_split_loop_on_cond): Likewise. | |
27450 | (tree_ssa_split_loops): Update SSA form here. | |
27451 | ||
27452 | 2021-05-06 Richard Biener <rguenther@suse.de> | |
27453 | ||
27454 | * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE | |
27455 | return variable removal. | |
27456 | ||
27457 | 2021-05-06 Marius Hillenbrand <mhillen@linux.ibm.com> | |
27458 | ||
27459 | * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros. | |
27460 | (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64) | |
27461 | (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate | |
27462 | operand. | |
27463 | * config/s390/s390.c (s390_const_operand_ok): Remove unused | |
27464 | values. | |
27465 | ||
27466 | 2021-05-06 Jakub Jelinek <jakub@redhat.com> | |
27467 | ||
27468 | PR tree-optimization/94589 | |
27469 | * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call | |
27470 | spaceship_replacement. | |
27471 | (cond_only_block_p, spaceship_replacement): New functions. | |
27472 | ||
27473 | 2021-05-06 Richard Biener <rguenther@suse.de> | |
27474 | ||
27475 | PR ipa/100373 | |
27476 | * tree-emutls.c (gen_emutls_addr): Pass in whether we're | |
27477 | dealing with a debug use and only query existing addresses | |
27478 | if so. | |
27479 | (lower_emutls_1): Avoid splitting out addresses for debug | |
27480 | stmts, reset the debug stmt when we fail to find existing | |
27481 | lowered addresses. | |
27482 | (lower_emutls_phi_arg): Set wi.stmt. | |
27483 | ||
27484 | 2021-05-06 Christoph Muellner <cmuellner@gcc.gnu.org> | |
27485 | ||
27486 | PR target/100266 | |
27487 | * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper. | |
27488 | * config/riscv/riscv.md (cbranch<mode>4): Generate helpers. | |
27489 | (stack_protect_test): Use cbranch helper. | |
27490 | ||
27491 | 2021-05-05 Eric Botcazou <ebotcazou@adacore.com> | |
27492 | ||
27493 | PR target/100402 | |
27494 | * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, | |
27495 | always return the establisher frame for __builtin_frame_address (0). | |
27496 | ||
27497 | 2021-05-05 Ivan Sorokin <vanyacpp@gmail.com> | |
27498 | ||
27499 | PR target/91400 | |
27500 | * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New. | |
27501 | (ix86_cpu_model_var): Likewise. | |
27502 | (ix86_cpu_features2_type_node): Likewise. | |
27503 | (ix86_cpu_features2_var): Likewise. | |
27504 | (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with | |
27505 | their types. | |
27506 | ||
27507 | 2021-05-05 Martin Sebor <msebor@redhat.com> | |
27508 | ||
27509 | * passes.def (pass_warn_printf): Run after SSA. | |
27510 | ||
27511 | 2021-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
27512 | ||
27513 | * config/arm/neon.md (neon_vtst_combine<mode>): New pattern. | |
27514 | * config/arm/predicates.md (minus_one_operand): New predicate. | |
27515 | ||
27516 | 2021-05-05 Jeff Law <jlaw@tachyum.com> | |
27517 | ||
27518 | * config/avr/avr.md: Remove references to CC_STATUS_INIT. | |
27519 | ||
27520 | 2021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
27521 | ||
27522 | PR rtl-optimization/100263 | |
27523 | * postreload.c (move2add_valid_value_p): Ensure register can | |
27524 | change mode. | |
27525 | ||
27526 | 2021-05-05 Eric Botcazou <ebotcazou@adacore.com> | |
27527 | ||
27528 | PR rtl-optimization/100411 | |
27529 | * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue | |
27530 | and beginning of function markers. | |
27531 | ||
27532 | 2021-05-05 Jeff Law <jlaw@tachyum.com> | |
27533 | ||
27534 | * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove. | |
27535 | * config/cr16/cr16.c (notice_update_cc): Remove. | |
27536 | * config/cr16/cr16-protos.h (notice_update_cc): Remove. | |
27537 | ||
27538 | 2021-05-05 Uroš Bizjak <ubizjak@gmail.com> | |
27539 | ||
27540 | PR target/98218 | |
27541 | * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): | |
27542 | Handle V8QI, V4HI and V2SI modes. | |
27543 | * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode. | |
27544 | (ix86_build_signbit_mask): Ditto. | |
27545 | * config/i386/mmx.md (MMXMODE14): New mode iterator. | |
27546 | (<smaxmin:code><MMXMODE14:mode>3): New expander. | |
27547 | (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern. | |
27548 | (<umaxmin:code><MMXMODE24:mode>3): New expander. | |
27549 | (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern. | |
27550 | (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander. | |
27551 | (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto. | |
27552 | (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto. | |
27553 | (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto. | |
27554 | (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto. | |
27555 | ||
27556 | 2021-05-05 Eric Botcazou <ebotcazou@adacore.com> | |
27557 | ||
27558 | * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do | |
27559 | not expand the VALUE_EXPR of variables put in the non-local frame. | |
27560 | * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not | |
27561 | to be ignored for debug info, ensure its variable offsets are not. | |
27562 | ||
27563 | 2021-05-05 Richard Biener <rguenther@suse.de> | |
27564 | ||
27565 | PR tree-optimization/79333 | |
27566 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): | |
27567 | Fold stmt following SSA edges. | |
27568 | ||
27569 | 2021-05-05 Richard Biener <rguenther@suse.de> | |
27570 | ||
27571 | PR middle-end/100394 | |
27572 | * calls.c (expand_call): Preserve possibly throwing calls. | |
27573 | * cfgexpand.c (expand_call_stmt): When a call can throw signal | |
27574 | RTL expansion there are side-effects. | |
27575 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify, | |
27576 | mark all possibly throwing stmts necessary unless we can elide | |
27577 | dead EH. | |
27578 | * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless | |
27579 | -fdelete-dead-exceptions. | |
27580 | * tree.h (DECL_PURE_P): Add note about exceptions. | |
27581 | ||
27582 | 2021-05-05 Alexandre Oliva <oliva@adacore.com> | |
27583 | ||
27584 | * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it | |
27585 | unconditional. | |
27586 | ||
27587 | 2021-05-04 David Edelsohn <dje.gcc@gmail.com> | |
27588 | ||
27589 | * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use | |
27590 | get_fnname_from_decl for name of thunk. | |
27591 | * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name | |
27592 | and ASM_OUTPUT_LABEL. | |
27593 | (rs6000_xcoff_declare_function_name): Use assemble_name and | |
27594 | ASM_OUTPUT_LABEL. | |
27595 | (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL. | |
27596 | (rs6000_xcoff_encode_section_info): Don't add mapping class | |
27597 | for aliases. Always add [DS] mapping class to primary | |
27598 | FUNCTION_DECL. | |
27599 | (rs6000_asm_weaken_decl): Don't explicitly add [DS]. | |
27600 | ||
27601 | 2021-05-04 Martin Sebor <msebor@redhat.com> | |
27602 | ||
27603 | PR middle-end/100307 | |
27604 | * builtins.c (compute_objsize_r): Clear base0 for pointers. | |
27605 | ||
27606 | 2021-05-04 Jeff Law <jlaw@tachyum.com> | |
27607 | ||
27608 | * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove. | |
27609 | ||
27610 | 2021-05-04 Segher Boessenkool <segher@kernel.crashing.org> | |
27611 | ||
27612 | * caller-save.c: Remove CC0. | |
27613 | * cfgcleanup.c: Remove CC0. | |
27614 | * cfgrtl.c: Remove CC0. | |
27615 | * combine.c: Remove CC0. | |
27616 | * compare-elim.c: Remove CC0. | |
27617 | * conditions.h: Remove CC0. | |
27618 | * config/h8300/h8300.h: Remove CC0. | |
27619 | * config/h8300/h8300-protos.h: Remove CC0. | |
27620 | * config/h8300/peepholes.md: Remove CC0. | |
27621 | * config/i386/x86-tune-sched.c: Remove CC0. | |
27622 | * config/m68k/m68k.c: Remove CC0. | |
27623 | * config/rl78/rl78.c: Remove CC0. | |
27624 | * config/sparc/sparc.c: Remove CC0. | |
27625 | * config/xtensa/xtensa.c: Remove CC0. | |
27626 | (gen_conditional_move): Use pc_rtx instead of cc0_rtx in a piece of | |
27627 | RTL where that is used as a placeholder only. | |
27628 | * cprop.c: Remove CC0. | |
27629 | * cse.c: Remove CC0. | |
27630 | * cselib.c: Remove CC0. | |
27631 | * df-problems.c: Remove CC0. | |
27632 | * df-scan.c: Remove CC0. | |
27633 | * doc/md.texi: Remove CC0. Adjust an example. | |
27634 | * doc/rtl.texi: Remove CC0. Adjust an example. | |
27635 | * doc/tm.texi: Regenerate. | |
27636 | * doc/tm.texi.in: Remove CC0. | |
27637 | * emit-rtl.c: Remove CC0. | |
27638 | * final.c: Remove CC0. | |
27639 | * fwprop.c: Remove CC0. | |
27640 | * gcse-common.c: Remove CC0. | |
27641 | * gcse.c: Remove CC0. | |
27642 | * genattrtab.c: Remove CC0. | |
27643 | * genconfig.c: Remove CC0. | |
27644 | * genemit.c: Remove CC0. | |
27645 | * genextract.c: Remove CC0. | |
27646 | * gengenrtl.c: Remove CC0. | |
27647 | * genrecog.c: Remove CC0. | |
27648 | * haifa-sched.c: Remove CC0. | |
27649 | * ifcvt.c: Remove CC0. | |
27650 | * ira-costs.c: Remove CC0. | |
27651 | * ira.c: Remove CC0. | |
27652 | * jump.c: Remove CC0. | |
27653 | * loop-invariant.c: Remove CC0. | |
27654 | * lra-constraints.c: Remove CC0. | |
27655 | * lra-eliminations.c: Remove CC0. | |
27656 | * optabs.c: Remove CC0. | |
27657 | * postreload-gcse.c: Remove CC0. | |
27658 | * postreload.c: Remove CC0. | |
27659 | * print-rtl.c: Remove CC0. | |
27660 | * read-rtl-function.c: Remove CC0. | |
27661 | * reg-notes.def: Remove CC0. | |
27662 | * reg-stack.c: Remove CC0. | |
27663 | * reginfo.c: Remove CC0. | |
27664 | * regrename.c: Remove CC0. | |
27665 | * reload.c: Remove CC0. | |
27666 | * reload1.c: Remove CC0. | |
27667 | * reorg.c: Remove CC0. | |
27668 | * resource.c: Remove CC0. | |
27669 | * rtl.c: Remove CC0. | |
27670 | * rtl.def: Remove CC0. | |
27671 | * rtl.h: Remove CC0. | |
27672 | * rtlanal.c: Remove CC0. | |
27673 | * sched-deps.c: Remove CC0. | |
27674 | * sched-rgn.c: Remove CC0. | |
27675 | * shrink-wrap.c: Remove CC0. | |
27676 | * simplify-rtx.c: Remove CC0. | |
27677 | * system.h: Remove CC0. Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT, | |
27678 | CC_STATUS_MDEP, and CC_STATUS. | |
27679 | * target.def: Remove CC0. | |
27680 | * valtrack.c: Remove CC0. | |
27681 | * var-tracking.c: Remove CC0. | |
27682 | ||
27683 | 2021-05-04 Richard Biener <rguenther@suse.de> | |
27684 | ||
27685 | PR tree-optimization/100414 | |
27686 | * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance | |
27687 | info here. | |
27688 | (tree_ssa_phiopt_worker): But unconditionally here. | |
27689 | ||
27690 | 2021-05-04 Tobias Burnus <tobias@codesourcery.com> | |
27691 | ||
27692 | * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle | |
27693 | && and || with floating-point and complex arguments. | |
27694 | ||
27695 | 2021-05-04 Eric Botcazou <ebotcazou@adacore.com> | |
27696 | ||
27697 | * tree-inline.c (insert_debug_decl_map): Delete. | |
27698 | (copy_debug_stmt): Minor tweak. | |
27699 | (setup_one_parameter): Do not use a variable if the value is either | |
27700 | a read-only DECL or a non-addressable local variable in the caller. | |
27701 | In this case, insert the debug-only variable in the map manually. | |
27702 | (expand_call_inline): Do not generate a CLOBBER for these values. | |
27703 | * tree-inline.h (debug_map): Minor tweak. | |
27704 | ||
27705 | 2021-05-04 Eric Botcazou <ebotcazou@adacore.com> | |
27706 | ||
27707 | * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy. | |
27708 | * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up. | |
27709 | ||
27710 | 2021-05-04 Richard Biener <rguenther@suse.de> | |
27711 | ||
27712 | PR tree-optimization/100329 | |
27713 | * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate | |
27714 | asm goto defs. | |
27715 | (insert_stmt_after): Assert we're not running into asm goto. | |
27716 | ||
27717 | 2021-05-04 Richard Biener <rguenther@suse.de> | |
27718 | ||
27719 | PR tree-optimization/100398 | |
27720 | * tree-ssa-dse.c (pass_dse::execute): Preserve control | |
27721 | altering stmts. | |
27722 | ||
27723 | 2021-05-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
27724 | ||
27725 | * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype. | |
27726 | ||
27727 | 2021-05-04 Alexandre Oliva <oliva@adacore.com> | |
27728 | ||
27729 | * builtins.c (try_store_by_multiple_pieces): New. | |
27730 | (expand_builtin_memset_args): Use it. If target_char_cast | |
27731 | fails, proceed as for non-constant val. Pass len's ctz to... | |
27732 | * expr.c (clear_storage_hints): ... this. Try store by | |
27733 | multiple pieces after setmem. | |
27734 | (clear_storage): Adjust. | |
27735 | * expr.h (clear_storage_hints): Likewise. | |
27736 | (try_store_by_multiple_pieces): Declare. | |
27737 | * passes.def: Replace the last copy_prop with ccp. | |
27738 | ||
27739 | 2021-05-03 Tom de Vries <tdevries@suse.de> | |
27740 | ||
27741 | PR target/100321 | |
27742 | * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined | |
27743 | reduction. | |
27744 | ||
27745 | 2021-05-03 Richard Biener <rguenther@suse.de> | |
27746 | ||
27747 | * tree-ssa-dse.c (dse_classify_store): Track two PHI defs. | |
27748 | ||
27749 | 2021-05-03 Richard Biener <rguenther@suse.de> | |
27750 | ||
27751 | * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h. | |
27752 | (dse_dom_walker): Remove. | |
27753 | (dse_dom_walker::dse_optimize_stmt): Rename... | |
27754 | (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap. | |
27755 | (dse_dom_walker::before_dom_children): Inline ... | |
27756 | (pass_dse::execute): ... here. Perform a reverse program | |
27757 | order walk. | |
27758 | ||
27759 | 2021-05-03 H.J. Lu <hjl.tools@gmail.com> | |
27760 | ||
27761 | PR bootstrap/99703 | |
27762 | * configure: Regenerated. | |
27763 | ||
27764 | 2021-05-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
27765 | ||
27766 | PR target/100217 | |
27767 | * config/s390/s390.c (s390_hard_fp_reg_p): New function. | |
27768 | (s390_md_asm_adjust): Handle hard registers. | |
27769 | ||
27770 | 2021-05-03 Jakub Jelinek <jakub@redhat.com> | |
27771 | ||
27772 | PR tree-optimization/100382 | |
27773 | * tree-ssa-dse.c: Include tree-eh.h. | |
27774 | (dse_dom_walker::before_dom_children): Don't remove stmts if | |
27775 | stmt_unremovable_because_of_non_call_eh_p is true. | |
27776 | ||
27777 | 2021-05-02 David Edelsohn <dje.gcc@gmail.com> | |
27778 | ||
27779 | * varasm.c (compute_reloc_for_var): Split out from... | |
27780 | (get_variable_section): Use it. | |
27781 | * output.h (compute_reloc_for_var): Declare. | |
27782 | * config/rs6000/rs6000-protos.h | |
27783 | (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to | |
27784 | unsigned int. | |
27785 | * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix): | |
27786 | Don't append storage mapping class to symbol. | |
27787 | (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes. | |
27788 | Don't convert TLS BSS to common. | |
27789 | (rs6000_xcoff_unique_section): Don't fall back to select_secton. | |
27790 | (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is | |
27791 | bss_initializer. | |
27792 | (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage | |
27793 | mapping class. | |
27794 | (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int. | |
27795 | If align is 0 from TLS class, use the same rules as varasm.c | |
27796 | If not common, switch to BSS section manually. | |
27797 | If common, emit appropriate comm or lcomm directive. | |
27798 | (rs6000_xcoff_encode_section_info): Add logic to append all | |
27799 | storage mapping classes. | |
27800 | (rs6000_asm_weaken_decl): Adjust for qualname symbols. | |
27801 | * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use | |
27802 | rs6000_xcoff_asm_output_aligned_decl_common. | |
27803 | (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use | |
27804 | rs6000_xcoff_asm_output_aligned_decl_common. | |
27805 | (ASM_OUTPUT_TLS_COMMON): Use | |
27806 | rs6000_xcoff_asm_output_aligned_decl_common. | |
27807 | ||
27808 | 2021-05-02 Jakub Jelinek <jakub@redhat.com> | |
27809 | ||
27810 | PR target/100375 | |
27811 | * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0 | |
27812 | as first argument of pseudo_node_t constructors. | |
27813 | ||
27814 | 2021-05-02 Jakub Jelinek <jakub@redhat.com> | |
27815 | ||
27816 | PR target/100336 | |
27817 | * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def. | |
27818 | ||
27819 | 2021-05-01 Aldy Hernandez <aldyh@redhat.com> | |
27820 | ||
27821 | * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove. | |
27822 | (gt_pch_nx (int_range<1> *&)): New. | |
27823 | (gt_ggc_mx (int_range<1> *&)): New. | |
27824 | * value-range.h (class irange): Add GTY support for | |
27825 | the base class. | |
27826 | ||
27827 | 2021-05-01 Geng Qi <gengqi@linux.alibaba.com> | |
27828 | ||
27829 | * doc/options.texi (Negative): Change either or to both and. | |
27830 | ||
27831 | 2021-04-30 Jonathan Wright <jonathan.wright@arm.com> | |
27832 | ||
27833 | * config/aarch64/aarch64-simd-builtins.def: Add | |
27834 | float_ml[as][q]_laneq builtin generator macros. | |
27835 | * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define. | |
27836 | (aarch64_float_mla_laneq<mode>): Define. | |
27837 | (aarch64_float_mls_laneq<mode>): Define. | |
27838 | * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin | |
27839 | instead of GCC vector extensions. | |
27840 | (vmlaq_laneq_f32): Likewise. | |
27841 | (vmls_laneq_f32): Likewise. | |
27842 | (vmlsq_laneq_f32): Likewise. | |
27843 | ||
27844 | 2021-04-30 Jonathan Wright <jonathan.wright@arm.com> | |
27845 | ||
27846 | * config/aarch64/aarch64-simd-builtins.def: Add | |
27847 | float_ml[as]_lane builtin generator macros. | |
27848 | * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>): | |
27849 | Rename to... | |
27850 | (mul_lane<mode>3): This, and re-order arguments. | |
27851 | (aarch64_float_mla_lane<mode>): Define. | |
27852 | (aarch64_float_mls_lane<mode>): Define. | |
27853 | * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin | |
27854 | instead of GCC vector extensions. | |
27855 | (vmlaq_lane_f32): Likewise. | |
27856 | (vmls_lane_f32): Likewise. | |
27857 | (vmlsq_lane_f32): Likewise. | |
27858 | ||
27859 | 2021-04-30 Jonathan Wright <jonathan.wright@arm.com> | |
27860 | ||
27861 | * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as] | |
27862 | builtin generator macros. | |
27863 | * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>): | |
27864 | Define. | |
27865 | (aarch64_float_mls<mode>): Define. | |
27866 | * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin | |
27867 | instead of relying on GCC vector extensions. | |
27868 | (vmla_f64): Likewise. | |
27869 | (vmlaq_f32): Likewise. | |
27870 | (vmlaq_f64): Likewise. | |
27871 | (vmls_f32): Likewise. | |
27872 | (vmls_f64): Likewise. | |
27873 | (vmlsq_f32): Likewise. | |
27874 | (vmlsq_f64): Likewise. | |
27875 | * config/aarch64/iterators.md: Define VDQF_DF mode iterator. | |
27876 | ||
27877 | 2021-04-30 Jonathan Wright <jonathan.wright@arm.com> | |
27878 | ||
27879 | * config/aarch64/aarch64-simd-builtins.def: Add | |
27880 | float_ml[as]_n_builtin generator macros. | |
27881 | * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>): | |
27882 | Rename to... | |
27883 | (mul_n<mode>3): This, and re-order arguments. | |
27884 | (aarch64_float_mla_n<mode>): Define. | |
27885 | (aarch64_float_mls_n<mode>): Define. | |
27886 | * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin | |
27887 | instead of inline asm. | |
27888 | (vmlaq_n_f32): Likewise. | |
27889 | (vmls_n_f32): Likewise. | |
27890 | (vmlsq_n_f32): Likewise. | |
27891 | ||
27892 | 2021-04-30 Jonathan Wright <joanthan.wright@arm.com> | |
27893 | ||
27894 | * config/aarch64/aarch64-simd-builtins.def: Add pmull[2] | |
27895 | builtin generator macros. | |
27896 | * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define. | |
27897 | (aarch64_pmull_hiv16qi_insn): Define. | |
27898 | (aarch64_pmull_hiv16qi): Define. | |
27899 | * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin | |
27900 | instead of inline asm. | |
27901 | (vmull_p8): Likewise. | |
27902 | ||
27903 | 2021-04-30 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> | |
27904 | ||
27905 | * config/avr/avr.md: Adjust peepholes to match and | |
27906 | generate parallels with clobber of REG_CC. | |
27907 | (mov<mode>_insn): Rename to mov<mode>_insn_split. | |
27908 | (*mov<mode>_insn): Rename to mov<mode>_insn. | |
27909 | ||
27910 | 2021-04-30 David Edelsohn <dje.gcc@gmail.com> | |
27911 | ||
27912 | * varasm.c (use_blocks_for_decl_p): Don't use section anchors | |
27913 | for VAR_DECLs if -fdata-sections enabled. | |
27914 | ||
27915 | 2021-04-30 Michael Meissner <meissner@linux.ibm.com> | |
27916 | ||
27917 | PR bootstrap/100327 | |
27918 | * config/rs6000/rs6000.c | |
27919 | (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. | |
27920 | (rs6000_libgcc_floating_mode_supported_p): New target hook. | |
27921 | ||
27922 | 2021-04-30 Aldy Hernandez <aldyh@redhat.com> | |
27923 | ||
27924 | * tree-ssa-threadbackward.c (class thread_jumps): Split out code | |
27925 | from here... | |
27926 | (class back_threader_registry): ...to here... | |
27927 | (class back_threader_profitability): ...and here... | |
27928 | (thread_jumps::thread_through_all_blocks): Remove argument. | |
27929 | (back_threader_registry::back_threader_registry): New. | |
27930 | (back_threader_registry::~back_threader_registry): New. | |
27931 | (back_threader_registry::thread_through_all_blocks): New. | |
27932 | (thread_jumps::profitable_jump_thread_path): Move from here... | |
27933 | (back_threader_profitability::profitable_path_p): ...to here. | |
27934 | (thread_jumps::find_taken_edge): New. | |
27935 | (thread_jumps::convert_and_register_current_path): Move... | |
27936 | (back_threader_registry::register_path): ...to here. | |
27937 | (thread_jumps::register_jump_thread_path_if_profitable): Move... | |
27938 | (thread_jumps::maybe_register_path): ...to here. | |
27939 | (thread_jumps::handle_phi): Call find_taken_edge and | |
27940 | maybe_register_path. | |
27941 | (thread_jumps::handle_assignment): Same. | |
27942 | (thread_jumps::fsm_find_control_statement_thread_paths): Remove | |
27943 | tree argument to handle_phi and handle_assignment. | |
27944 | (thread_jumps::find_jump_threads_backwards): Set m_name. Remove | |
27945 | set of m_speed_p and m_max_threaded_paths. | |
27946 | (pass_thread_jumps::execute): Remove second argument from | |
27947 | find_jump_threads_backwards. | |
27948 | (pass_early_thread_jumps::execute): Same. | |
27949 | ||
27950 | 2021-04-30 Aldy Hernandez <aldyh@redhat.com> | |
27951 | ||
27952 | * tree-ssa-dom.c (class dom_jump_threader_simplifier): New. | |
27953 | (class dom_opt_dom_walker): Initialize some class variables. | |
27954 | (pass_dominator::execute): Pass evrp_range_analyzer and | |
27955 | dom_jump_threader_simplifier to dom_opt_dom_walker. | |
27956 | Adjust for some functions moving into classes. | |
27957 | (simplify_stmt_for_jump_threading): Adjust and move to... | |
27958 | (jump_threader_simplifier::simplify): ...here. | |
27959 | (dom_opt_dom_walker::before_dom_children): Adjust for | |
27960 | m_evrp_range_analyzer. | |
27961 | (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack. | |
27962 | (test_for_singularity): Place in dom_opt_dom_walker class. | |
27963 | (dom_opt_dom_walker::optimize_stmt): The argument | |
27964 | evrp_range_analyzer is now a class field. | |
27965 | * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry. | |
27966 | (thread_jumps::thread_through_all_blocks): New. | |
27967 | (thread_jumps::convert_and_register_current_path): Use m_registry. | |
27968 | (pass_thread_jumps::execute): Adjust for thread_through_all_blocks | |
27969 | being in the threader class. | |
27970 | (pass_early_thread_jumps::execute): Same. | |
27971 | * tree-ssa-threadedge.c (threadedge_initialize_values): Move... | |
27972 | (jump_threader::jump_threader): ...here. | |
27973 | (threadedge_finalize_values): Move... | |
27974 | (jump_threader::~jump_threader): ...here. | |
27975 | (jump_threader::remove_jump_threads_including): New. | |
27976 | (jump_threader::thread_through_all_blocks): New. | |
27977 | (record_temporary_equivalences_from_phis): Move... | |
27978 | (jump_threader::record_temporary_equivalences_from_phis): ...here. | |
27979 | (record_temporary_equivalences_from_stmts_at_dest): Move... | |
27980 | (jump_threader::record_temporary_equivalences_from_stmts_at_dest): | |
27981 | Here... | |
27982 | (simplify_control_stmt_condition_1): Move to jump_threader class. | |
27983 | (simplify_control_stmt_condition): Move... | |
27984 | (jump_threader::simplify_control_stmt_condition): ...here. | |
27985 | (thread_around_empty_blocks): Move... | |
27986 | (jump_threader::thread_around_empty_blocks): ...here. | |
27987 | (thread_through_normal_block): Move... | |
27988 | (jump_threader::thread_through_normal_block): ...here. | |
27989 | (thread_across_edge): Move... | |
27990 | (jump_threader::thread_across_edge): ...here. | |
27991 | (thread_outgoing_edges): Move... | |
27992 | (jump_threader::thread_outgoing_edges): ...here. | |
27993 | * tree-ssa-threadedge.h: Move externally facing functings... | |
27994 | (class jump_threader): ...here... | |
27995 | (class jump_threader_simplifier): ...and here. | |
27996 | * tree-ssa-threadupdate.c (struct redirection_data): Remove comment. | |
27997 | (jump_thread_path_allocator::jump_thread_path_allocator): New. | |
27998 | (jump_thread_path_allocator::~jump_thread_path_allocator): New. | |
27999 | (jump_thread_path_allocator::allocate_thread_edge): New. | |
28000 | (jump_thread_path_allocator::allocate_thread_path): New. | |
28001 | (jump_thread_path_registry::jump_thread_path_registry): New. | |
28002 | (jump_thread_path_registry::~jump_thread_path_registry): New. | |
28003 | (jump_thread_path_registry::allocate_thread_edge): New. | |
28004 | (jump_thread_path_registry::allocate_thread_path): New. | |
28005 | (dump_jump_thread_path): Make extern. | |
28006 | (debug (const vec<jump_thread_edge *> &path)): New. | |
28007 | (struct removed_edges): Move to tree-ssa-threadupdate.h. | |
28008 | (struct thread_stats_d): Remove. | |
28009 | (remove_ctrl_stmt_and_useless_edges): Make static. | |
28010 | (lookup_redirection_data): Move... | |
28011 | (jump_thread_path_registry::lookup_redirection_data): ...here. | |
28012 | (ssa_redirect_edges): Make static. | |
28013 | (thread_block_1): Move... | |
28014 | (jump_thread_path_registry::thread_block_1): ...here. | |
28015 | (thread_block): Move... | |
28016 | (jump_thread_path_registry::thread_block): ...here. | |
28017 | (thread_through_loop_header): Move... | |
28018 | (jump_thread_path_registry::thread_through_loop_header): ...here. | |
28019 | (mark_threaded_blocks): Move... | |
28020 | (jump_thread_path_registry::mark_threaded_blocks): ...here. | |
28021 | (debug_path): Move... | |
28022 | (jump_thread_path_registry::debug_path): ...here. | |
28023 | (debug_all_paths): Move... | |
28024 | (jump_thread_path_registry::dump): ..here. | |
28025 | (rewire_first_differing_edge): Move... | |
28026 | (jump_thread_path_registry::rewire_first_differing_edge): ...here. | |
28027 | (adjust_paths_after_duplication): Move... | |
28028 | (jump_thread_path_registry::adjust_paths_after_duplication): ...here. | |
28029 | (duplicate_thread_path): Move... | |
28030 | (jump_thread_path_registry::duplicate_thread_path): ..here. | |
28031 | (remove_jump_threads_including): Move... | |
28032 | (jump_thread_path_registry::remove_jump_threads_including): ...here. | |
28033 | (thread_through_all_blocks): Move to... | |
28034 | (jump_thread_path_registry::thread_through_all_blocks): ...here. | |
28035 | (delete_jump_thread_path): Remove. | |
28036 | (register_jump_thread): Move... | |
28037 | (jump_thread_path_registry::register_jump_thread): ...here. | |
28038 | * tree-ssa-threadupdate.h: Move externally facing functions... | |
28039 | (class jump_thread_path_allocator): ...here... | |
28040 | (class jump_thread_path_registry): ...and here. | |
28041 | (thread_through_all_blocks): Remove. | |
28042 | (struct removed_edges): New. | |
28043 | (register_jump_thread): Remove. | |
28044 | (remove_jump_threads_including): Remove. | |
28045 | (delete_jump_thread_path): Remove. | |
28046 | (remove_ctrl_stmt_and_useless_edges): Remove. | |
28047 | (free_dom_edge_info): New prototype. | |
28048 | * tree-vrp.c: Remove x_vr_values hack. | |
28049 | (class vrp_jump_threader_simplifier): New. | |
28050 | (vrp_jump_threader_simplifier::simplify): New. | |
28051 | (vrp_jump_threader::vrp_jump_threader): Adjust method signature. | |
28052 | Remove m_dummy_cond. | |
28053 | Instantiate m_simplifier and m_threader. | |
28054 | (vrp_jump_threader::thread_through_all_blocks): New. | |
28055 | (vrp_jump_threader::simplify_stmt): Remove. | |
28056 | (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond. | |
28057 | Remove x_vr_values hack. | |
28058 | (execute_vrp): Adjust for thread_through_all_blocks being in a | |
28059 | class. | |
28060 | ||
28061 | 2021-04-30 Christophe Lyon <christophe.lyon@linaro.org> | |
28062 | ||
28063 | * genflags.c (gen_insn): Print failed expansion string. | |
28064 | ||
28065 | 2021-04-30 H.J. Lu <hjl.tools@gmail.com> | |
28066 | ||
28067 | * expr.c (alignment_for_piecewise_move): Call mode_for_size | |
28068 | without limit to MAX_FIXED_MODE_SIZE. | |
28069 | ||
28070 | 2021-04-30 H.J. Lu <hjl.tools@gmail.com> | |
28071 | ||
28072 | PR middle-end/90773 | |
28073 | * builtins.c (builtin_memset_gen_str): Don't use return from | |
28074 | simplify_gen_subreg. | |
28075 | ||
28076 | 2021-04-30 Uroš Bizjak <ubizjak@gmail.com> | |
28077 | ||
28078 | PR target/98060 | |
28079 | * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern. | |
28080 | (*addsi3_carry_zext_0r): Ditto. | |
28081 | (*sub<mode>3_carry_0): Ditto. | |
28082 | (*subsi3_carry_zext_0r): Ditto. | |
28083 | * config/i386/predicates.md (ix86_carry_flag_unset_operator): | |
28084 | New predicate. | |
28085 | * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>: | |
28086 | Also consider ix86_carry_flag_unset_operator to calculate | |
28087 | the cost of adc/sbb insn. | |
28088 | ||
28089 | 2021-04-30 Roman Zhuykov <zhroma@ispras.ru> | |
28090 | ||
28091 | PR rtl-optimization/100225 | |
28092 | PR rtl-optimization/84878 | |
28093 | * modulo-sched.c (sms_schedule): Use note_stores to skip loops | |
28094 | where we have an instruction which touches (writes) any hard | |
28095 | register from df->regular_block_artificial_uses set. | |
28096 | Allow not-single-set instruction only right before basic block | |
28097 | tail. | |
28098 | ||
28099 | 2021-04-30 Geng Qi <gengqi@linux.alibaba.com> | |
28100 | ||
28101 | * config/riscv/riscv.opt (march=,mabi=): Negative itself. | |
28102 | ||
28103 | 2021-04-30 LevyHsu <admin@levyhsu.com> | |
28104 | ||
28105 | * config/riscv/riscv.c (riscv_min_arithmetic_precision): New. | |
28106 | * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New. | |
28107 | * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New. | |
28108 | (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New. | |
28109 | ||
28110 | 2021-04-29 Alexandre Oliva <oliva@adacore.com> | |
28111 | ||
28112 | * config.gcc: Merged x86 and x86_64 cpu_type-setting cases. | |
28113 | ||
28114 | 2021-04-29 Alexandre Oliva <oliva@adacore.com> | |
28115 | ||
28116 | * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to... | |
28117 | (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this. Enclose in do/while(0). | |
28118 | * config/i386/i386.c: Adjust. | |
28119 | * config/i386/i386.md: Adjust. | |
28120 | * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop. | |
28121 | * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28122 | * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28123 | * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28124 | * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28125 | * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28126 | * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28127 | * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28128 | * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28129 | * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
28130 | (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. | |
28131 | ||
28132 | 2021-04-29 Uroš Bizjak <ubizjak@gmail.com> | |
28133 | ||
28134 | * config/i386/i386-expand.c (ix86_expand_int_compare): | |
28135 | Swap operands of GTU and LEU comparison to emit carry flag comparison. | |
28136 | * config/i386/i386.md (*add<mode>3_carry_0): Change insn | |
28137 | predicate to allow more combine opportunities with memory operands. | |
28138 | (*sub<mode>3_carry_0): Ditto. | |
28139 | ||
28140 | 2021-04-29 Richard Sandiford <richard.sandiford@arm.com> | |
28141 | ||
28142 | PR rtl-optimization/100303 | |
28143 | * rtl-ssa/accesses.cc (function_info::make_use_available): Take a | |
28144 | boolean that indicates whether the use will only be used in | |
28145 | debug instructions. Treat it in the same way that existing | |
28146 | cross-EBB debug references would be handled if so. | |
28147 | (function_info::make_uses_available): Likewise. | |
28148 | * rtl-ssa/functions.h (function_info::make_uses_available): Update | |
28149 | prototype accordingly. | |
28150 | (function_info::make_uses_available): Likewise. | |
28151 | * fwprop.c (try_fwprop_subst): Update call accordingly. | |
28152 | ||
28153 | 2021-04-29 Jeff Law <jlaw@tachyum.com> | |
28154 | ||
28155 | * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside | |
28156 | of RTX_CODE guard. | |
28157 | ||
28158 | 2021-04-29 Uroš Bizjak <ubizjak@gmail.com> | |
28159 | Richard Biener <rguenther@suse.de> | |
28160 | ||
28161 | PR target/100312 | |
28162 | * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD) | |
28163 | (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256) | |
28164 | (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD) | |
28165 | (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256) | |
28166 | (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS | |
28167 | to PURE_ARGS category. | |
28168 | * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): | |
28169 | Handle PURE_ARGS category. | |
28170 | * config/i386/i386-expand.c (ix86_expand_builtin): Ditto. | |
28171 | ||
28172 | 2021-04-29 Eric Botcazou <ebotcazou@adacore.com> | |
28173 | ||
28174 | * configure.ac: Check for the presence of sys/locking.h header and | |
28175 | for whether _LK_LOCK is supported by _locking. | |
28176 | * configure: Regenerate. | |
28177 | * config.in: Likewise. | |
28178 | * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK. | |
28179 | * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING. | |
28180 | * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H. | |
28181 | ||
28182 | 2021-04-29 Uroš Bizjak <ubizjak@gmail.com> | |
28183 | ||
28184 | * config/i386/predicates.md (fcmov_comparison_operator): | |
28185 | Do not check for trivial FP comparison operator. | |
28186 | <case GEU, case LTU>: Allow CCGZmode. | |
28187 | <case GTU, case LEU>: Do not allow CCCmode. | |
28188 | (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode. | |
28189 | (ix86_carry_flag_operator): Match only LTU and UNLT code. | |
28190 | Do not check for trivial FP comparison operator. Allow CCGZmode. | |
28191 | ||
28192 | 2021-04-29 Tom de Vries <tdevries@suse.de> | |
28193 | ||
28194 | * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of | |
28195 | fd->loop.step by either step or orig_step. | |
28196 | ||
28197 | 2021-04-29 Eric Botcazou <ebotcazou@adacore.com> | |
28198 | ||
28199 | * config/sparc/sparc.c (gen_load_pcrel_sym): Delete. | |
28200 | (load_got_register): Do the PIC dance here. | |
28201 | (sparc_legitimize_tls_address): Simplify. | |
28202 | (sparc_emit_probe_stack_range): Likewise. | |
28203 | (sparc32_initialize_trampoline): Likewise. | |
28204 | (sparc64_initialize_trampoline): Likewise. | |
28205 | * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker. | |
28206 | (probe_stack_range<P:mode>): Likewise. | |
28207 | (flush<P:mode>): Likewise. | |
28208 | (tgd_hi22<P:mode>): Likewise. | |
28209 | (tgd_lo10<P:mode>): Likewise. | |
28210 | (tgd_add<P:mode>): Likewise. | |
28211 | (tgd_call<P:mode>): Likewise. | |
28212 | (tldm_hi22<P:mode>): Likewise. | |
28213 | (tldm_lo10<P:mode>): Likewise. | |
28214 | (tldm_add<P:mode>): Likewise. | |
28215 | (tldm_call<P:mode>): Likewise. | |
28216 | (tldo_hix22<P:mode>): Likewise. | |
28217 | (tldo_lox10<P:mode>): Likewise. | |
28218 | (tldo_add<P:mode>): Likewise. | |
28219 | (tie_hi22<P:mode>): Likewise. | |
28220 | (tie_lo10<P:mode>): Likewise. | |
28221 | (tie_add<P:mode>): Likewise. | |
28222 | (tle_hix22<P:mode>): Likewise. | |
28223 | (tle_lox10<P:mode>): Likewise. | |
28224 | (stack_protect_setsi): Rename to... | |
28225 | (stack_protect_set32): ...this. | |
28226 | (stack_protect_setdi): Rename to... | |
28227 | (stack_protect_set64): ...this. | |
28228 | (stack_protect_set): Adjust calls to above. | |
28229 | (stack_protect_testsi): Rename to... | |
28230 | (stack_protect_test32): ...this. | |
28231 | (stack_protect_testdi): Rename to... | |
28232 | (stack_protect_test64): ...this. | |
28233 | (stack_protect_test): Adjust calls to above. | |
28234 | ||
28235 | 2021-04-29 H.J. Lu <hjl.tools@gmail.com> | |
28236 | ||
28237 | PR middle-end/90773 | |
28238 | * builtins.c (builtin_memcpy_read_str): Add a dummy argument. | |
28239 | (builtin_strncpy_read_str): Likewise. | |
28240 | (builtin_memset_read_str): Add an argument for the previous RTL | |
28241 | information and generate the new RTL from the previous RTL info. | |
28242 | (builtin_memset_gen_str): Likewise. | |
28243 | * builtins.h (builtin_strncpy_read_str): Update the prototype. | |
28244 | (builtin_memset_read_str): Likewise. | |
28245 | * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p() | |
28246 | returns true, round up size and alignment to the widest integer | |
28247 | mode for maximum size. | |
28248 | (pieces_addr::adjust): Add a pointer to by_pieces_prev argument | |
28249 | and pass it to m_constfn. | |
28250 | (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces. | |
28251 | (op_by_pieces_d::op_by_pieces_d): Add a bool argument to | |
28252 | initialize m_push. Initialize m_overlap_op_by_pieces with | |
28253 | targetm.overlap_op_by_pieces_p (). | |
28254 | (op_by_pieces_d::run): Pass the previous RTL information to | |
28255 | pieces_addr::adjust and generate overlapping operations if | |
28256 | m_overlap_op_by_pieces is true. | |
28257 | (PUSHG_P): New. | |
28258 | (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d | |
28259 | change. | |
28260 | (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d | |
28261 | change. | |
28262 | (can_store_by_pieces): Use by_pieces_constfn on constfun. | |
28263 | (store_by_pieces): Use by_pieces_constfn on constfun. Updated | |
28264 | for op_by_pieces_d change. | |
28265 | (clear_by_pieces_1): Add a dummy argument. | |
28266 | (clear_by_pieces): Updated for op_by_pieces_d change. | |
28267 | (compare_by_pieces_d::compare_by_pieces_d): Likewise. | |
28268 | (string_cst_read_str): Add a dummy argument. | |
28269 | * expr.h (by_pieces_constfn): Add a dummy argument. | |
28270 | (by_pieces_prev): New. | |
28271 | * target.def (overlap_op_by_pieces_p): New target hook. | |
28272 | * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New. | |
28273 | * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P. | |
28274 | * doc/tm.texi: Regenerated. | |
28275 | ||
28276 | 2021-04-29 Richard Biener <rguenther@suse.de> | |
28277 | ||
28278 | PR tree-optimization/100253 | |
28279 | * tree-vect-stmts.c (vectorizable_load): Do not assume | |
28280 | element alignment when DR_MISALIGNMENT is -1. | |
28281 | (vectorizable_store): Likewise. | |
28282 | ||
28283 | 2021-04-29 Jakub Jelinek <jakub@redhat.com> | |
28284 | ||
28285 | PR target/100302 | |
28286 | * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use | |
28287 | absu_hwi instead of abs_hwi. | |
28288 | ||
28289 | 2021-04-29 Richard Biener <rguenther@suse.de> | |
28290 | ||
28291 | PR middle-end/38474 | |
28292 | * tree-ssa-structalias.c (add_graph_edge): Avoid direct | |
28293 | forwarding when indirect forwarding through ESCAPED | |
28294 | alread happens. | |
28295 | ||
28296 | 2021-04-29 Tom de Vries <tdevries@suse.de> | |
28297 | ||
28298 | PR target/100232 | |
28299 | * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC) | |
28300 | (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED) | |
28301 | (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY) | |
28302 | (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to. | |
28303 | ||
28304 | 2021-04-29 Richard Biener <rguenther@suse.de> | |
28305 | ||
28306 | PR tree-optimization/99912 | |
28307 | * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New. | |
28308 | (dse_dom_walker::todo): Likewise. | |
28309 | (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the | |
28310 | caller. | |
28311 | (dse_dom_walker::before_dom_children): Remove trivially | |
28312 | dead SSA defs and schedule CFG cleanup if we removed all | |
28313 | PHIs in a block. | |
28314 | (pass_dse::execute): Get TODO as computed by the DOM walker | |
28315 | and return it. Wipe dominator info earlier. | |
28316 | ||
28317 | 2021-04-29 Richard Biener <rguenther@suse.de> | |
28318 | ||
28319 | PR ipa/100308 | |
28320 | * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children): | |
28321 | Track blocks to cleanup EH in new m_need_eh_cleanup. | |
28322 | (ipcp_modif_dom_walker::cleanup_eh): New. | |
28323 | (ipcp_transform_function): Release dominator info before | |
28324 | doing EH cleanup. | |
28325 | ||
28326 | 2021-04-29 Martin Sebor <msebor@redhat.com> | |
28327 | ||
28328 | PR middle-end/100250 | |
28329 | * attribs.c (attr_access::array_as_string): Avoid dereferencing | |
28330 | a pointer when it's null. | |
28331 | ||
28332 | 2021-04-29 Martin Sebor <msebor@redhat.com> | |
28333 | ||
28334 | * Makefile.in (OBJS): Add ipa-free-lang-data.o. | |
28335 | * ipa-free-lang-data.cc: New file. | |
28336 | * tree.c: Move pass free_lang_data to file above. | |
28337 | (build_array_type_1): Declare extern. | |
28338 | * tree.h (build_array_type_1): Declare. | |
28339 | ||
28340 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28341 | ||
28342 | * config/aarch64/aarch64-simd-builtins.def: Modify comment to | |
28343 | make consistent with updated RTL pattern. | |
28344 | * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>): | |
28345 | Implement using ss_truncate and us_truncate rather than | |
28346 | unspecs. | |
28347 | * config/aarch64/iterators.md: Remove redundant unspecs and | |
28348 | iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively. | |
28349 | ||
28350 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28351 | ||
28352 | * config/aarch64/arm_acle.h (__attribute__): Make intrinsic | |
28353 | attributes consistent with those defined in arm_neon.h. | |
28354 | ||
28355 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28356 | ||
28357 | * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic | |
28358 | attributes consistent with those defined in arm_neon.h. | |
28359 | ||
28360 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28361 | ||
28362 | * config/aarch64/aarch64-simd-builtins.def: Add | |
28363 | float_trunc_rodd builtin generator macros. | |
28364 | * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df): | |
28365 | Define. | |
28366 | (aarch64_float_trunc_rodd_lo_v2sf): Define. | |
28367 | (aarch64_float_trunc_rodd_hi_v4sf_le): Define. | |
28368 | (aarch64_float_trunc_rodd_hi_v4sf_be): Define. | |
28369 | (aarch64_float_trunc_rodd_hi_v4sf): Define. | |
28370 | * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin | |
28371 | instead of inline asm. | |
28372 | (vcvtx_high_f32_f64): Likewise. | |
28373 | (vcvtxd_f32_f64): Likewise. | |
28374 | * config/aarch64/iterators.md: Add FCVTXN unspec. | |
28375 | ||
28376 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28377 | ||
28378 | * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin | |
28379 | generator macros. | |
28380 | * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>): | |
28381 | Define. | |
28382 | * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin | |
28383 | instead of inline asm. | |
28384 | (vqtbx1_u8): Likewise. | |
28385 | (vqtbx1_p8): Likewise. | |
28386 | (vqtbx1q_s8): Likewise. | |
28387 | (vqtbx1q_u8): Likewise. | |
28388 | (vqtbx1q_p8): Likewise. | |
28389 | (vtbx2_s8): Likewise. | |
28390 | (vtbx2_u8): Likewise. | |
28391 | (vtbx2_p8): Likewise. | |
28392 | ||
28393 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28394 | ||
28395 | * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin | |
28396 | generator macros. | |
28397 | * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin | |
28398 | instead of inline asm. | |
28399 | (vqtbl1_s8): Likewise. | |
28400 | (vqtbl1_u8): Likewise. | |
28401 | (vqtbl1q_p8): Likewise. | |
28402 | (vqtbl1q_s8): Likewise. | |
28403 | (vqtbl1q_u8): Likewise. | |
28404 | (vtbl1_s8): Likewise. | |
28405 | (vtbl1_u8): Likewise. | |
28406 | (vtbl1_p8): Likewise. | |
28407 | (vtbl2_s8): Likewise. | |
28408 | (vtbl2_u8): Likewise. | |
28409 | (vtbl2_p8): Likewise. | |
28410 | ||
28411 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28412 | ||
28413 | * config/aarch64/aarch64-simd-builtins.def: Add polynomial | |
28414 | ssri_n buitin generator macro. | |
28415 | * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin | |
28416 | instead of inline asm. | |
28417 | (vsri_n_p16): Likewise. | |
28418 | (vsri_n_p64): Likewise. | |
28419 | (vsriq_n_p8): Likewise. | |
28420 | (vsriq_n_p16): Likewise. | |
28421 | (vsriq_n_p64): Likewise. | |
28422 | ||
28423 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28424 | ||
28425 | * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode | |
28426 | iterator for polynomial ssli_n builtin generator macro. | |
28427 | * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin | |
28428 | instead of inline asm. | |
28429 | (vsli_n_p16): Likewise. | |
28430 | (vsliq_n_p8): Likewise. | |
28431 | (vsliq_n_p16): Likewise. | |
28432 | * config/aarch64/iterators.md: Define VALLP mode iterator. | |
28433 | ||
28434 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28435 | ||
28436 | * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L | |
28437 | iterator to generate [su]adalp RTL builtins. | |
28438 | * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in | |
28439 | [su]adalp RTL pattern. | |
28440 | * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin | |
28441 | instead of inline asm. | |
28442 | (vpadal_u32): Likewise. | |
28443 | ||
28444 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28445 | ||
28446 | * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp | |
28447 | builtin generator macros. | |
28448 | * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>): | |
28449 | Define. | |
28450 | * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin | |
28451 | instead of inline asm. | |
28452 | (vpaddl_s16): Likewise. | |
28453 | (vpaddl_s32): Likewise. | |
28454 | (vpaddl_u8): Likewise. | |
28455 | (vpaddl_u16): Likewise. | |
28456 | (vpaddl_u32): Likewise. | |
28457 | (vpaddlq_s8): Likewise. | |
28458 | (vpaddlq_s16): Likewise. | |
28459 | (vpaddlq_s32): Likewise. | |
28460 | (vpaddlq_u8): Likewise. | |
28461 | (vpaddlq_u16): Likewise. | |
28462 | (vpaddlq_u32): Liwewise. | |
28463 | * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with | |
28464 | appropriate attributes. | |
28465 | ||
28466 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28467 | ||
28468 | * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator | |
28469 | for aarch64_addp<mode> builtin macro generator. | |
28470 | * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in | |
28471 | aarch64_addp<mode> RTL pattern. | |
28472 | * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin | |
28473 | instead of inline asm. | |
28474 | (vpaddq_s16): Likewise. | |
28475 | (vpaddq_s32): Likewise. | |
28476 | (vpaddq_s64): Likewise. | |
28477 | (vpaddq_u8): Likewise. | |
28478 | (vpaddq_u16): Likewise. | |
28479 | (vpaddq_u32): Likewise. | |
28480 | (vpaddq_u64): Likewise. | |
28481 | ||
28482 | 2021-04-28 Jonathan Wright <jonathan.wright@arm.com> | |
28483 | ||
28484 | * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n | |
28485 | builtin generator macros. | |
28486 | * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>): | |
28487 | Define. | |
28488 | * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin | |
28489 | instead of inline asm. | |
28490 | (vqdmulh_n_s32): Likewise. | |
28491 | (vqdmulhq_n_s16): Likewise. | |
28492 | (vqdmulhq_n_s32): Likewise. | |
28493 | (vqrdmulh_n_s16): Likewise. | |
28494 | (vqrdmulh_n_s32): Likewise. | |
28495 | (vqrdmulhq_n_s16): Likewise. | |
28496 | (vqrdmulhq_n_s32): Likewise. | |
28497 | ||
28498 | 2021-04-28 Tobias Burnus <tobias@codesourcery.com> | |
28499 | ||
28500 | * doc/install.texi (--enable-offload-defaulted): Document. | |
28501 | ||
28502 | 2021-04-28 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> | |
28503 | ||
28504 | * config/avr/avr-dimode.md: Turn existing patterns into | |
28505 | define_insn_and_split style patterns where the splitter | |
28506 | adds a clobber of the condition code register. Drop "cc" | |
28507 | attribute. Add new patterns to match output of | |
28508 | the splitters. | |
28509 | * config/avr/avr-fixed.md: Likewise. | |
28510 | * config/avr/avr.c (cc_reg_rtx): New. | |
28511 | (avr_parallel_insn_from_insns): Adjust insn count | |
28512 | for removal of set of cc0. | |
28513 | (avr_is_casesi_sequence): Likewise. | |
28514 | (avr_casei_sequence_check_operands): Likewise. | |
28515 | (avr_optimize_casesi): Likewise. Also insert | |
28516 | new insns after jump_insn. | |
28517 | (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust | |
28518 | for removal of set of cc0. | |
28519 | (avr_init_expanders): Initialize cc_reg_rtx. | |
28520 | (avr_regno_reg_class): Handle REG_CC. | |
28521 | (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE. | |
28522 | (avr_notice_update_cc): Remove function. | |
28523 | (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE. | |
28524 | (compare_condition): Adjust for PARALLEL with | |
28525 | REG_CC clobber. | |
28526 | (out_shift_with_cnt): Likewise. | |
28527 | (ashlhi3_out): Likewise. | |
28528 | (ashrhi3_out): Likewise. | |
28529 | (lshrhi3_out): Likewise. | |
28530 | (avr_class_max_nregs): Return single reg for REG_CC. | |
28531 | (avr_compare_pattern): Check for REG_CC instead | |
28532 | of cc0_rtx. | |
28533 | (avr_reorg_remove_redundant_compare): Likewise. | |
28534 | (avr_reorg):Adjust for PARALLEL with REG_CC clobber. | |
28535 | (avr_hard_regno_nregs): Return single reg for REG_CC. | |
28536 | (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC. | |
28537 | (avr_md_asm_adjust): Clobber REG_CC. | |
28538 | (TARGET_HARD_REGNO_NREGS): Define. | |
28539 | (TARGET_CLASS_MAX_NREGS): Define. | |
28540 | (TARGET_MD_ASM_ADJUST): Define. | |
28541 | * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust | |
28542 | for REG_CC. | |
28543 | (enum reg_class): Add CC_REG class. | |
28544 | (NOTICE_UPDATE_CC): Remove. | |
28545 | (CC_OVERFLOW_UNUSABLE): Remove. | |
28546 | (CC_NO_CARRY): Remove. | |
28547 | * config/avr/avr.md: Turn existing patterns into | |
28548 | define_insn_and_split style patterns where the splitter | |
28549 | adds a clobber of the condition code register. Drop "cc" | |
28550 | attribute. Add new patterns to match output of | |
28551 | the splitters. | |
28552 | (sez): Remove unused pattern. | |
28553 | ||
28554 | 2021-04-28 Richard Earnshaw <rearnsha@arm.com> | |
28555 | ||
28556 | PR target/100311 | |
28557 | * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be | |
28558 | used in HImode. | |
28559 | ||
28560 | 2021-04-28 Richard Sandiford <richard.sandiford@arm.com> | |
28561 | ||
28562 | PR target/100305 | |
28563 | * config/aarch64/constraints.md (Utq): Require the address to | |
28564 | be valid for both the element mode and for V2DImode. | |
28565 | ||
28566 | 2021-04-28 Jakub Jelinek <jakub@redhat.com> | |
28567 | Tobias Burnus <tobias@codesourcery.com> | |
28568 | ||
28569 | * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted. | |
28570 | * gcc.c (process_command): New variable. | |
28571 | (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED, | |
28572 | set it if -foffload is defaulted. | |
28573 | * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define. | |
28574 | (compile_offload_image): If OFFLOAD_DEFAULTED and | |
28575 | OFFLOAD_TARGET_DEFAULT is in the environment, don't fail | |
28576 | if corresponding mkoffload can't be found. | |
28577 | (compile_images_for_offload_targets): Likewise. Free and clear | |
28578 | offload_names if no valid offload is found. | |
28579 | * config.in: Regenerate. | |
28580 | * configure: Regenerate. | |
28581 | ||
28582 | 2021-04-28 Richard Biener <rguenther@suse.de> | |
28583 | ||
28584 | PR tree-optimization/100292 | |
28585 | * tree-vect-generic.c (expand_vector_condition): Do not fold | |
28586 | the comparisons. | |
28587 | ||
28588 | 2021-04-27 David Edelsohn <dje.gcc@gmail.com> | |
28589 | ||
28590 | * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New. | |
28591 | * config/rs6000/aix64.opt (m64): New. | |
28592 | (m32): New. | |
28593 | ||
28594 | 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk> | |
28595 | ||
28596 | * config/vax/vax.c (print_operand_address, vax_address_cost_1) | |
28597 | (index_term_p): Handle ASHIFT too. | |
28598 | ||
28599 | 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk> | |
28600 | ||
28601 | * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3. | |
28602 | (sync_lock_test_and_set<mode>): Adjust accordingly. | |
28603 | (sync_lock_release<mode>): Likewise. | |
28604 | ||
28605 | 2021-04-27 Maciej W. Rozycki <macro@orcam.me.uk> | |
28606 | ||
28607 | * config/vax/vax-protos.h (adjacent_operands_p): Remove | |
28608 | prototype. | |
28609 | * config/vax/vax.c (adjacent_operands_p): Remove. | |
28610 | ||
28611 | 2021-04-27 Maciej W. Rozycki <macro@linux-mips.org> | |
28612 | ||
28613 | * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall | |
28614 | through to the non-conditional execution case if getting the | |
28615 | condition for conditional execution has failed. | |
28616 | ||
28617 | 2021-04-27 Richard Sandiford <richard.sandiford@arm.com> | |
28618 | ||
28619 | PR middle-end/100284 | |
28620 | * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test. | |
28621 | * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather | |
28622 | than asserting on it. | |
28623 | ||
28624 | 2021-04-27 David Edelsohn <dje.gcc@gmail.com> | |
28625 | ||
28626 | * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect | |
28627 | with TARGET_AIX_OS. | |
28628 | ||
28629 | 2021-04-27 David Edelsohn <dje.gcc@gmail.com> | |
28630 | ||
28631 | PR target/94177 | |
28632 | * calls.c (precompute_register_parameters): Additionally test | |
28633 | targetm.precompute_tls_p to pre-compute argument. | |
28634 | * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define. | |
28635 | * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New. | |
28636 | * target.def (precompute_tls_p): New. | |
28637 | * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation. | |
28638 | * doc/tm.texi: Regenerated. | |
28639 | ||
28640 | 2021-04-27 Jakub Jelinek <jakub@redhat.com> | |
28641 | ||
28642 | PR target/100200 | |
28643 | * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL | |
28644 | back to HOST_WIDE_INT. | |
28645 | ||
28646 | 2021-04-27 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
28647 | ||
28648 | PR target/100106 | |
28649 | * simplify-rtx.c (simplify_context::simplify_subreg): Check the | |
28650 | memory alignment for the outer mode. | |
28651 | ||
28652 | 2021-04-27 H.J. Lu <hjl.tools@gmail.com> | |
28653 | ||
28654 | PR middle-end/90773 | |
28655 | * expr.c (op_by_pieces_d::get_usable_mode): New member function. | |
28656 | (op_by_pieces_d::run): Cange a while loop to a do-while loop. | |
28657 | ||
28658 | 2021-04-27 Alex Coplan <alex.coplan@arm.com> | |
28659 | ||
28660 | PR target/99977 | |
28661 | * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen | |
28662 | with negative immediates: ensure we expand cbranchsi4_scratch | |
28663 | correctly and ensure we satisfy its constraints. | |
28664 | * config/arm/sync.md | |
28665 | (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't | |
28666 | attempt to tie two output operands together with constraints; | |
28667 | collapse two alternatives. | |
28668 | (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise. | |
28669 | * config/arm/thumb1.md (cbranchsi4_neg_late): New. | |
28670 | ||
28671 | 2021-04-27 Jakub Jelinek <jakub@redhat.com> | |
28672 | ||
28673 | PR target/100200 | |
28674 | * config/aarch64/predicates.md (aarch64_sub_immediate, | |
28675 | aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL. | |
28676 | * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise. | |
28677 | * config/aarch64/aarch64.c (aarch64_print_operand, | |
28678 | aarch64_split_atomic_op, aarch64_expand_subvti): Likewise. | |
28679 | ||
28680 | 2021-04-27 Jakub Jelinek <jakub@redhat.com> | |
28681 | ||
28682 | PR tree-optimization/100239 | |
28683 | * tree-vect-generic.c (lower_vec_perm): Don't accept constant | |
28684 | permutations with all indices from the first zero element as vec_shl. | |
28685 | ||
28686 | 2021-04-27 Jakub Jelinek <jakub@redhat.com> | |
28687 | ||
28688 | PR rtl-optimization/100254 | |
28689 | * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on | |
28690 | last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns. | |
28691 | ||
28692 | 2021-04-27 Richard Biener <rguenther@suse.de> | |
28693 | ||
28694 | PR tree-optimization/99912 | |
28695 | * passes.def: Add comment about new TODO_remove_unused_locals. | |
28696 | * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals | |
28697 | at start. | |
28698 | ||
28699 | 2021-04-27 Richard Biener <rguenther@suse.de> | |
28700 | ||
28701 | PR tree-optimization/99912 | |
28702 | * passes.def (pass_all_optimizations): Add pass_dse before | |
28703 | the first pass_dce, move the first pass_dse before the | |
28704 | pass_dce following pass_pre. | |
28705 | ||
28706 | 2021-04-27 Jakub Jelinek <jakub@redhat.com> | |
28707 | ||
28708 | PR tree-optimization/95527 | |
28709 | * generic-match-head.c: Include tm.h. | |
28710 | * gimple-match-head.c: Include tm.h. | |
28711 | * match.pd (CLZ == INTEGER_CST): Don't use | |
28712 | #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO | |
28713 | if clz == CFN_CLZ. Add missing val declaration. | |
28714 | (CTZ cmp CST): New simplifications. | |
28715 | ||
28716 | 2021-04-27 Jakub Jelinek <jakub@redhat.com> | |
28717 | ||
28718 | PR tree-optimization/96696 | |
28719 | * expr.c (expand_expr_divmod): New function. | |
28720 | (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and | |
28721 | divisions. Formatting fixes. | |
28722 | <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is | |
28723 | cheaper. | |
28724 | ||
28725 | 2021-04-27 Martin Jambor <mjambor@suse.cz> | |
28726 | ||
28727 | PR ipa/99951 | |
28728 | * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): | |
28729 | If removing a call statement LHS SSA name, release it. | |
28730 | ||
28731 | 2021-04-27 Richard Earnshaw <rearnsha@arm.com> | |
28732 | ||
28733 | PR target/100236 | |
28734 | * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM | |
28735 | is valid before including it in the mask. | |
28736 | ||
28737 | 2021-04-27 Richard Sandiford <richard.sandiford@arm.com> | |
28738 | ||
28739 | PR target/100270 | |
28740 | * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle | |
28741 | SVE attributes. | |
28742 | ||
28743 | 2021-04-27 Richard Biener <rguenther@suse.de> | |
28744 | ||
28745 | PR tree-optimization/100051 | |
28746 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add | |
28747 | disambiguator based on access size vs. decl size. | |
28748 | ||
28749 | 2021-04-27 Richard Biener <rguenther@suse.de> | |
28750 | ||
28751 | PR tree-optimization/100278 | |
28752 | * tree-ssa-pre.c (compute_avail): Give up when we cannot | |
28753 | adjust TBAA beacuse of mismatching bases. | |
28754 | ||
28755 | 2021-04-27 Jakub Jelinek <jakub@redhat.com> | |
28756 | ||
28757 | PR target/99405 | |
28758 | * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1): | |
28759 | For any_rotate define_insn_split and following splitters, use | |
28760 | SWI iterator instead of SWI48. | |
28761 | ||
28762 | 2021-04-27 Richard Biener <rguenther@suse.de> | |
28763 | ||
28764 | PR tree-optimization/99776 | |
28765 | * match.pd (bit_field_ref (ctor)): Relax element extract | |
28766 | type compatibility checks. | |
28767 | ||
28768 | 2021-04-27 Cui,Lili <lili.cui@intel.com> | |
28769 | ||
28770 | * common/config/i386/i386-common.c (processor_names): | |
28771 | Sync processor_names with processor_type. | |
28772 | * config/i386/i386-options.c (processor_cost_table): | |
28773 | Sync processor_cost_table with processor_type. | |
28774 | ||
28775 | 2021-04-26 Aldy Hernandez <aldyh@redhat.com> | |
28776 | ||
28777 | * value-range.cc (irange::irange_set_1bit_anti_range): Add assert. | |
28778 | (irange::set): Call irange_set_1bit_anti_range for handling all | |
28779 | 1-bit ranges. Fall through on ~[MIN,MAX]. | |
28780 | ||
28781 | 2021-04-26 Aldy Hernandez <aldyh@redhat.com> | |
28782 | ||
28783 | * value-range.cc (irange::legacy_num_pairs): Remove. | |
28784 | (irange::invert): Change gcc_assert to gcc_checking_assert. | |
28785 | * value-range.h (irange::num_pairs): Adjust for a cached | |
28786 | num_pairs(). Also, rename all gcc_assert's to | |
28787 | gcc_checking_assert's. | |
28788 | ||
28789 | 2021-04-26 Aldy Hernandez <aldyh@redhat.com> | |
28790 | ||
28791 | * value-range.cc (irange::operator=): Set m_kind. | |
28792 | (irange::copy_to_legacy): Handle varying and undefined sources | |
28793 | as a legacy copy since they can be easily copied. | |
28794 | (irange::irange_set): Set m_kind. | |
28795 | (irange::irange_set_anti_range): Same. | |
28796 | (irange::set): Rename normalize_min_max to normalize_kind. | |
28797 | (irange::verify_range): Adjust for multi-ranges having the | |
28798 | m_kind field set. | |
28799 | (irange::irange_union): Set m_kind. | |
28800 | (irange::irange_intersect): Same. | |
28801 | (irange::invert): Same. | |
28802 | * value-range.h (irange::kind): Always return m_kind. | |
28803 | (irange::varying_p): Rename to... | |
28804 | (irange::varying_comptaible_p): ...this. | |
28805 | (irange::undefined_p): Only look at m_kind. | |
28806 | (irange::irange): Always set VR_UNDEFINED if applicable. | |
28807 | (irange::set_undefined): Always set VR_UNDEFINED. | |
28808 | (irange::set_varying): Always set m_kind to VR_VARYING. | |
28809 | (irange::normalize_min_max): Rename to... | |
28810 | (irange::normalize_kind): ...this. | |
28811 | ||
28812 | 2021-04-26 Aldy Hernandez <aldyh@redhat.com> | |
28813 | ||
28814 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info): | |
28815 | Adjust for constant_p including varying_p. | |
28816 | * tree-vrp.c (vrp_prop::finalize): Same. | |
28817 | (determine_value_range): Same. | |
28818 | * vr-values.c (vr_values::range_of_expr): Same. | |
28819 | * value-range.cc (irange::symbolic_p): Do not check varying_p. | |
28820 | (irange::constant_p): Same. | |
28821 | ||
28822 | 2021-04-26 Aldy Hernandez <aldyh@redhat.com> | |
28823 | ||
28824 | * value-range.cc (irange::legacy_lower_bound): Replace | |
28825 | !undefined_p check with num_ranges > 0. | |
28826 | (irange::legacy_upper_bound): Same. | |
28827 | * value-range.h (irange::type): Same. | |
28828 | (irange::lower_bound): Same. | |
28829 | (irange::upper_bound): Same. | |
28830 | ||
28831 | 2021-04-26 Richard Biener <rguenther@suse.de> | |
28832 | ||
28833 | PR tree-optimization/99956 | |
28834 | * gimple-loop-interchange.cc (compute_access_stride): | |
28835 | Try instantiating the access in a shallower loop nest | |
28836 | if instantiating failed. | |
28837 | (compute_access_strides): Pass adjustable loop_nest | |
28838 | to compute_access_stride. | |
28839 | ||
28840 | 2021-04-26 Christophe Lyon <christophe.lyon@linaro.org> | |
28841 | ||
28842 | * doc/sourcebuild.texi (arm_cmse_hw): Document. | |
28843 | ||
28844 | 2021-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
28845 | ||
28846 | * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF. | |
28847 | ||
28848 | 2021-04-26 Thomas Schwinge <thomas@codesourcery.com> | |
28849 | Nathan Sidwell <nathan@codesourcery.com> | |
28850 | Tom de Vries <vries@codesourcery.com> | |
28851 | Julian Brown <julian@codesourcery.com> | |
28852 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
28853 | ||
28854 | * omp-offload.c (oacc_validate_dims): Implement | |
28855 | '-Wopenacc-parallelism'. | |
28856 | * doc/invoke.texi (-Wopenacc-parallelism): Document. | |
28857 | ||
28858 | 2021-04-26 Richard Biener <rguenther@suse.de> | |
28859 | ||
28860 | * tree-cfg.h (gimplify_build1): Remove. | |
28861 | (gimplify_build2): Likewise. | |
28862 | (gimplify_build3): Likewise. | |
28863 | * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c. | |
28864 | (gimplify_build2): Likewise. | |
28865 | (gimplify_build3): Likewise. | |
28866 | * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c. | |
28867 | Modernize. | |
28868 | (gimplify_build2): Likewise. | |
28869 | (gimplify_build3): Likewise. | |
28870 | (tree_vec_extract): Use resimplify with following SSA edges. | |
28871 | (expand_vector_parallel): Avoid passing NULL size/bitpos | |
28872 | to tree_vec_extract. | |
28873 | * expr.c (store_constructor): Deal with zero-element CTORs. | |
28874 | * match.pd (bit_field_ref <vector CTOR>): Make sure to | |
28875 | produce vector constants when possible. | |
28876 | ||
28877 | 2021-04-26 Richard Biener <rguenther@suse.de> | |
28878 | ||
28879 | * tree-complex.c: Include gimple-fold.h. | |
28880 | (expand_complex_addition): Use gimple_build. | |
28881 | (expand_complex_multiplication_components): Likewise. | |
28882 | (expand_complex_multiplication): Likewise. | |
28883 | (expand_complex_div_straight): Likewise. | |
28884 | (expand_complex_div_wide): Likewise. | |
28885 | (expand_complex_division): Likewise. | |
28886 | (expand_complex_conjugate): Likewise. | |
28887 | (expand_complex_comparison): Likewise. | |
28888 | ||
28889 | 2021-04-26 Richard Biener <rguenther@suse.de> | |
28890 | ||
28891 | * tree-ssa-phiopt.c (two_value_replacement): Remove use | |
28892 | of legacy gimplify_buildN API. | |
28893 | ||
28894 | 2021-04-26 Richard Biener <rguenther@suse.de> | |
28895 | ||
28896 | PR tree-optimization/99473 | |
28897 | * tree-ssa-phiopt.c (cond_store_replacement): Handle all | |
28898 | stores. | |
28899 | ||
28900 | 2021-04-26 Richard Biener <rguenther@suse.de> | |
28901 | ||
28902 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): | |
28903 | Use replace_call_with_value. | |
28904 | ||
28905 | 2021-04-26 Richard Biener <rguenther@suse.de> | |
28906 | ||
28907 | * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove. | |
28908 | (update_gimple_call): Likewise. | |
28909 | (update_call_from_tree): Likewise. | |
28910 | * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove. | |
28911 | (valid_gimple_call_p): Likewise. | |
28912 | (move_ssa_defining_stmt_for_defs): Likewise. | |
28913 | (finish_update_gimple_call): Likewise. | |
28914 | (update_gimple_call): Likewise. | |
28915 | (update_call_from_tree): Likewise. | |
28916 | (propagate_tree_value_into_stmt): Use replace_call_with_value. | |
28917 | * gimple-fold.h (update_gimple_call): Declare. | |
28918 | * gimple-fold.c (valid_gimple_rhs_p): Move here from | |
28919 | tree-ssa-propagate.c. | |
28920 | (update_gimple_call): Likewise. | |
28921 | (valid_gimple_call_p): Likewise. | |
28922 | (finish_update_gimple_call): Likewise, and simplify. | |
28923 | (gimplify_and_update_call_from_tree): Implement | |
28924 | update_call_from_tree functionality, avoid excessive | |
28925 | push/pop_gimplify_context. | |
28926 | (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree. | |
28927 | (gimple_fold_call): Likewise. | |
28928 | * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise. | |
28929 | * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise. | |
28930 | (pass_fold_builtins::execute): Likewise. | |
28931 | (optimize_stack_restore): Use replace_call_with_value. | |
28932 | * tree-cfg.c (fold_loop_internal_call): Likewise. | |
28933 | * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use | |
28934 | only gimplify_and_update_call_from_tree. | |
28935 | * tree-ssa-strlen.c (handle_builtin_strlen): Likewise. | |
28936 | (handle_builtin_strchr): Likewise. | |
28937 | * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h. | |
28938 | ||
28939 | 2021-04-26 Jakub Jelinek <jakub@redhat.com> | |
28940 | ||
28941 | PR debug/100255 | |
28942 | * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block, | |
28943 | vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove | |
28944 | register keywords. | |
28945 | ||
28946 | 2021-04-25 liuhongt <hongtao.liu@intel.com> | |
28947 | ||
28948 | PR target/98911 | |
28949 | * config/i386/i386-builtin.def (BDESC): Change the icode of | |
28950 | the following builtins to CODE_FOR_nothing. | |
28951 | * config/i386/i386.c (ix86_gimple_fold_builtin): Fold | |
28952 | IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128, | |
28953 | IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ, | |
28954 | IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, | |
28955 | IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, | |
28956 | IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128, | |
28957 | IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ, | |
28958 | IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, | |
28959 | IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256. | |
28960 | * config/i386/sse.md (avx2_eq<mode>3): Deleted. | |
28961 | (sse2_eq<mode>3): Ditto. | |
28962 | (sse4_1_eqv2di3): Ditto. | |
28963 | (sse2_gt<mode>3): Rename to .. | |
28964 | (*sse2_gt<mode>3): .. this. | |
28965 | ||
28966 | 2021-04-24 Iain Sandoe <iain@sandoe.co.uk> | |
28967 | ||
28968 | Revert: | |
28969 | 2021-04-24 Iain Sandoe <iain@sandoe.co.uk> | |
28970 | ||
28971 | PR target/100152 | |
28972 | * config/darwin.c (darwin_binds_local_p): Assume that any | |
28973 | public symbol might be interposed for PIC code. Update function | |
28974 | header comment to reflect current Darwin capability. | |
28975 | ||
28976 | 2021-04-24 Iain Sandoe <iain@sandoe.co.uk> | |
28977 | ||
28978 | PR target/100152 | |
28979 | * config/darwin.c (darwin_binds_local_p): Assume that any | |
28980 | public symbol might be interposed for PIC code. Update function | |
28981 | header comment to reflect current Darwin capability. | |
28982 | ||
28983 | 2021-04-24 Richard Sandiford <richard.sandiford@arm.com> | |
28984 | ||
28985 | * doc/sourcebuild.texi: Document no-opts and any-opts target | |
28986 | selectors. | |
28987 | ||
28988 | 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com> | |
28989 | ||
28990 | * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm. | |
28991 | ||
28992 | 2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com> | |
28993 | ||
28994 | * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64. | |
28995 | ||
28996 | 2021-04-23 Uroš Bizjak <ubizjak@gmail.com> | |
28997 | ||
28998 | PR target/100041 | |
28999 | * config/i386/i386-options.c (ix86_option_override_internal): | |
29000 | Error out when -m96bit-long-double is used with 64bit targets. | |
29001 | * config/i386/i386.md (*pushxf_rounded): Remove pattern. | |
29002 | ||
29003 | 2021-04-23 Martin Liska <mliska@suse.cz> | |
29004 | ||
29005 | * lto-wrapper.c: Remove FIXME about usage of | |
29006 | hardware_concurrency. The function is not on par with | |
29007 | what we have now. | |
29008 | ||
29009 | 2021-04-23 Uroš Bizjak <ubizjak@gmail.com> | |
29010 | ||
29011 | PR target/100182 | |
29012 | * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): | |
29013 | Copy operand 3 to operand 4. Use sse_reg_operand | |
29014 | as operand 3 predicate. | |
29015 | (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto. | |
29016 | (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. | |
29017 | (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. | |
29018 | (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): | |
29019 | Copy operand 1 to operand 0. | |
29020 | (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto. | |
29021 | (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. | |
29022 | (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto. | |
29023 | ||
29024 | 2021-04-23 Alex Coplan <alex.coplan@arm.com> | |
29025 | ||
29026 | PR rtl-optimization/100230 | |
29027 | * early-remat.c (early_remat::sort_candidates): Use delete[] | |
29028 | instead of delete for array allocated with new[]. | |
29029 | ||
29030 | 2021-04-23 Richard Biener <rguenther@suse.de> | |
29031 | ||
29032 | * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing. | |
29033 | (capture_info::capture_info): Likewise. | |
29034 | (capture_info::walk_match): Likewise. | |
29035 | (expr::gen_transform): Likewise. | |
29036 | (dt_simplify::gen_1): Likewise. | |
29037 | * gimple-match-head.c (maybe_resimplify_conditional_op): | |
29038 | Remove VEC_COND_EXPR special-casing. | |
29039 | (gimple_simplify): Likewise. | |
29040 | * gimple.c (gimple_could_trap_p_1): Adjust. | |
29041 | * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR | |
29042 | to participate in PRE. | |
29043 | ||
29044 | 2021-04-23 Richard Biener <rguenther@suse.de> | |
29045 | ||
29046 | * cfganal.c (connect_infinite_loops_to_exit): First call | |
29047 | add_noreturn_fake_exit_edges. | |
29048 | * ipa-sra.c (process_scan_results): Do not call the now redundant | |
29049 | add_noreturn_fake_exit_edges. | |
29050 | * predict.c (tree_estimate_probability): Likewise. | |
29051 | (rebuild_frequencies): Likewise. | |
29052 | * store-motion.c (one_store_motion_pass): Likewise. | |
29053 | ||
29054 | 2021-04-23 Richard Biener <rguenther@suse.de> | |
29055 | ||
29056 | PR tree-optimization/100222 | |
29057 | * predict.c (pass_profile::execute): Remove redundant call to | |
29058 | mark_irreducible_loops. | |
29059 | (report_predictor_hitrates): Likewise. | |
29060 | ||
29061 | 2021-04-23 Richard Biener <rguenther@suse.de> | |
29062 | ||
29063 | * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid | |
29064 | valid_gimple_rhs_p by instead gimplifying to one. | |
29065 | ||
29066 | 2021-04-23 Richard Biener <rguenther@suse.de> | |
29067 | ||
29068 | PR tree-optimization/99971 | |
29069 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): | |
29070 | Always use TBAA for loads. | |
29071 | ||
29072 | 2021-04-23 liuhongt <hongtao.liu@intel.com> | |
29073 | ||
29074 | PR target/100093 | |
29075 | * config/i386/i386-options.c (ix86_option_override_internal): | |
29076 | Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags | |
29077 | when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled | |
29078 | by target attribute. | |
29079 | ||
29080 | 2021-04-23 David Edelsohn <dje.gcc@gmail.com> | |
29081 | ||
29082 | * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to | |
29083 | DWARF2_DEBUG. | |
29084 | * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same. | |
29085 | ||
29086 | 2021-04-22 David Edelsohn <dje.gcc@gmail.com> | |
29087 | ||
29088 | * config.gcc (powerpc-ibm-aix6.*): Remove. | |
29089 | * config/rs6000/aix61.h: Delete. | |
29090 | ||
29091 | 2021-04-22 Martin Liska <mliska@suse.cz> | |
29092 | ||
29093 | PR testsuite/100159 | |
29094 | PR testsuite/100192 | |
29095 | * builtins.c (expand_builtin): Fix typos and missing comments. | |
29096 | * dwarf2out.c (gen_subprogram_die): Likewise. | |
29097 | (gen_struct_or_union_type_die): Likewise. | |
29098 | ||
29099 | 2021-04-22 Uroš Bizjak <ubizjak@gmail.com> | |
29100 | ||
29101 | PR target/100119 | |
29102 | * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse): | |
29103 | Remove the sign with FE_DOWNWARD, where x - x = -0.0. | |
29104 | ||
29105 | 2021-04-21 Iain Sandoe <iain@sandoe.co.uk> | |
29106 | ||
29107 | * config/i386/darwin.h (TARGET_64BIT): Remove definition | |
29108 | based on TARGET_ISA_64BIT. | |
29109 | (TARGET_64BIT_P): Remove definition based on | |
29110 | TARGET_ISA_64BIT_P(). | |
29111 | ||
29112 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29113 | ||
29114 | Revert: | |
29115 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29116 | ||
29117 | * lto-wrapper.c (cpuset_popcount): Remove. | |
29118 | (init_num_threads): Remove and use hardware_concurrency. | |
29119 | ||
29120 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29121 | ||
29122 | PR jit/98615 | |
29123 | * main.c (main): Call toplev::finalize in CHECKING_P mode. | |
29124 | * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL | |
29125 | when incremental LTO linking happens. | |
29126 | ||
29127 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29128 | ||
29129 | * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the | |
29130 | makeserver cannot be detected, then use -flto=N fallback. | |
29131 | ||
29132 | 2021-04-21 Richard Sandiford <richard.sandiford@arm.com> | |
29133 | ||
29134 | * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling, | |
29135 | default to yes for aarch64-linux-gnu. | |
29136 | * configure: Regenerate. | |
29137 | ||
29138 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29139 | ||
29140 | * lto-wrapper.c (cpuset_popcount): Remove. | |
29141 | (init_num_threads): Remove and use hardware_concurrency. | |
29142 | ||
29143 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29144 | ||
29145 | * config/i386/i386.c: Remove superfluous || TARGET_MACHO | |
29146 | which remains to be '(... || 0)' and clang complains about it. | |
29147 | * dwarf2out.c (AT_vms_delta): Declare conditionally. | |
29148 | (add_AT_vms_delta): Likewise. | |
29149 | * tree.c (fld_simplified_type): Use rather more common pattern | |
29150 | for disabling of something (#if 0). | |
29151 | (get_tree_code_name): Likewise. | |
29152 | (verify_type_variant): Likewise. | |
29153 | ||
29154 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29155 | ||
29156 | * config/i386/i386-expand.c (decide_alignment): Use newly named | |
29157 | macro TARGET_CPU_P. | |
29158 | * config/i386/i386.c (ix86_decompose_address): Likewise. | |
29159 | (ix86_address_cost): Likewise. | |
29160 | (ix86_lea_outperforms): Likewise. | |
29161 | (ix86_avoid_lea_for_addr): Likewise. | |
29162 | (ix86_add_stmt_cost): Likewise. | |
29163 | * config/i386/i386.h (TARGET_*): Remove. | |
29164 | (TARGET_CPU_P): New macro. | |
29165 | * config/i386/i386.md: Use newly named macro TARGET_CPU_P. | |
29166 | * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise. | |
29167 | (swap_top_of_ready_list): Likewise. | |
29168 | (ix86_atom_sched_reorder): Likewise. | |
29169 | * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise. | |
29170 | * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise. | |
29171 | ||
29172 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29173 | ||
29174 | * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P): | |
29175 | Define. | |
29176 | (SET_TARGET_NO_SAHF): Likewise. | |
29177 | (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise. | |
29178 | (SET_TARGET_PREFETCH_SSE): Likewise. | |
29179 | (TARGET_EXPLICIT_NO_TUNE_P): Likewise. | |
29180 | (SET_TARGET_NO_TUNE): Likewise. | |
29181 | (TARGET_EXPLICIT_NO_80387_P): Likewise. | |
29182 | (SET_TARGET_NO_80387): Likewise. | |
29183 | (DEF_PTA): New. | |
29184 | * config/i386/i386.h (TARGET_*): Remove. | |
29185 | * opth-gen.awk: Generate new used macros. | |
29186 | ||
29187 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29188 | ||
29189 | * config/i386/i386.h (PTA_*): Remove. | |
29190 | (enum pta_flag): New. | |
29191 | (DEF_PTA): Generate PTA_* values from i386-isa.def. | |
29192 | * config/i386/i386-isa.def: New file. | |
29193 | ||
29194 | 2021-04-21 Alex Coplan <alex.coplan@arm.com> | |
29195 | ||
29196 | PR target/99988 | |
29197 | * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New. | |
29198 | (rest_of_insert_bti): Avoid inserting duplicate bti j insns for | |
29199 | jump table targets. | |
29200 | ||
29201 | 2021-04-21 H.J. Lu <hjl.tools@gmail.com> | |
29202 | ||
29203 | * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and | |
29204 | x86_64-*-* targets. | |
29205 | * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET): | |
29206 | New. | |
29207 | (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise. | |
29208 | (ix86_handle_option): Handle -mmwait. | |
29209 | * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): | |
29210 | Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on | |
29211 | __builtin_ia32_monitor and __builtin_ia32_mwait. | |
29212 | * config/i386/i386-options.c (isa2_opts): Add -mmwait. | |
29213 | (ix86_valid_target_attribute_inner_p): Likewise. | |
29214 | (ix86_option_override_internal): Enable mwait/monitor | |
29215 | instructions for -msse3. | |
29216 | * config/i386/i386.h (TARGET_MWAIT): New. | |
29217 | (TARGET_MWAIT_P): Likewise. | |
29218 | * config/i386/i386.opt: Add -mmwait. | |
29219 | * config/i386/mwaitintrin.h: New file. | |
29220 | * config/i386/pmmintrin.h: Include <mwaitintrin.h>. | |
29221 | * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with | |
29222 | TARGET_MWAIT. | |
29223 | (@sse3_monitor_<mode>): Likewise. | |
29224 | * config/i386/x86gprintrin.h: Include <mwaitintrin.h>. | |
29225 | * doc/extend.texi: Document mwait target attribute. | |
29226 | * doc/invoke.texi: Document -mmwait. | |
29227 | ||
29228 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29229 | ||
29230 | * config/i386/i386-options.c (DEF_ENUM): Remove it. | |
29231 | * config/i386/i386-opts.h (DEF_ENUM): Likewise. | |
29232 | * config/i386/stringop.def (DEF_ENUM): Likewise. | |
29233 | ||
29234 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29235 | ||
29236 | * tree-cfg.c (gimple_verify_flow_info): Use qD instead | |
29237 | of print_generic_expr. | |
29238 | ||
29239 | 2021-04-21 Jakub Jelinek <jakub@redhat.com> | |
29240 | ||
29241 | PR rtl-optimization/100148 | |
29242 | * cprop.c (constprop_register): Use next_nondebug_insn instead of | |
29243 | NEXT_INSN. | |
29244 | ||
29245 | 2021-04-21 Martin Liska <mliska@suse.cz> | |
29246 | ||
29247 | PR ipa/98815 | |
29248 | * cgraphunit.c (cgraph_node::analyze): Remove duplicate | |
29249 | free_dominance_info calls. | |
29250 | ||
29251 | 2021-04-21 Richard Biener <rguenther@suse.de> | |
29252 | ||
29253 | * gimple-fold.c (maybe_fold_reference): Remove is_lhs | |
29254 | parameter (and assume it to be false). | |
29255 | (fold_gimple_assign): Adjust, remove all callers of | |
29256 | maybe_fold_reference calling it with is_lhs true. | |
29257 | (gimple_fold_call): Likewise. | |
29258 | (fold_stmt_1): Likewise. | |
29259 | ||
29260 | 2021-04-21 Richard Biener <rguenther@suse.de> | |
29261 | ||
29262 | * fold-const.c (pedantic_non_lvalue_loc): Remove. | |
29263 | (fold_binary_loc): Adjust. | |
29264 | (fold_ternary_loc): Likewise. | |
29265 | ||
29266 | 2021-04-21 Richard Sandiford <richard.sandiford@arm.com> | |
29267 | ||
29268 | PR middle-end/100130 | |
29269 | * varasm.c (get_block_for_decl): Make sure that any use of the | |
29270 | retain attribute matches the section's retain flag. | |
29271 | (switch_to_section): Check for retain mismatches even when | |
29272 | changing sections, but do not warn if the given decl is the | |
29273 | section's named.decl. | |
29274 | (output_object_block): Pass the first decl in the block (if any) | |
29275 | to switch_to_section. | |
29276 | ||
29277 | 2021-04-20 H.J. Lu <hjl.tools@gmail.com> | |
29278 | ||
29279 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
29280 | __CRC32__ for -mcrc32. | |
29281 | * config/i386/i386-options.c (ix86_option_override_internal): | |
29282 | Enable crc32 instruction for -msse4.2. | |
29283 | * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2 | |
29284 | check. | |
29285 | (sse4_2_crc32di): Likewise. | |
29286 | * config/i386/ia32intrin.h: Use crc32 target option for CRC32 | |
29287 | intrinsics. | |
29288 | ||
29289 | 2021-04-20 Segher Boessenkool <segher@kernel.crashing.org> | |
29290 | ||
29291 | PR target/100108 | |
29292 | * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider | |
29293 | OPTION_MASK_ISEL. | |
29294 | ||
29295 | 2021-04-20 Martin Liska <mliska@suse.cz> | |
29296 | ||
29297 | * doc/invoke.texi: Fix typo. | |
29298 | * params.opt: Likewise. | |
29299 | ||
29300 | 2021-04-20 Martin Liska <mliska@suse.cz> | |
29301 | ||
29302 | * doc/invoke.texi: Document new param. | |
29303 | ||
29304 | 2021-04-19 Andrew MacLeod <amacleod@redhat.com> | |
29305 | ||
29306 | PR tree-optimization/100081 | |
29307 | * gimple-range-cache.h (ranger_cache): Inherit from gori_compute | |
29308 | rather than gori_compute_cache. | |
29309 | * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file. | |
29310 | (range_def_chain::m_logical_depth): New member. | |
29311 | (range_def_chain::range_def_chain): Initialize m_logical_depth. | |
29312 | (range_def_chain::get_def_chain): Don't build defchains through more | |
29313 | than LOGICAL_LIMIT logical expressions. | |
29314 | * params.opt (param_ranger_logical_depth): New. | |
29315 | ||
29316 | 2021-04-19 Richard Earnshaw <rearnsha@arm.com> | |
29317 | ||
29318 | PR target/100067 | |
29319 | * config/arm/arm.c (arm_configure_build_target): Do not strip | |
29320 | extended FPU/SIMD feature bits from the target ISA when -mfpu | |
29321 | is specified (partial revert of r11-8168). | |
29322 | ||
29323 | 2021-04-19 Thomas Schwinge <thomas@codesourcery.com> | |
29324 | ||
29325 | * params.opt (-param=openacc-kernels=): Add. | |
29326 | * omp-oacc-kernels-decompose.cc | |
29327 | (pass_omp_oacc_kernels_decompose::gate): Use it. | |
29328 | * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move... | |
29329 | (--param): ... here, 'openacc-kernels'. | |
29330 | ||
29331 | 2021-04-19 Martin Liska <mliska@suse.cz> | |
29332 | ||
29333 | PR c/100143 | |
29334 | * gengtype.c (finish_root_table): Align function arguments | |
29335 | in between declaration and definition. | |
29336 | ||
29337 | 2021-04-19 Eric Botcazou <ebotcazou@adacore.com> | |
29338 | ||
29339 | * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with | |
29340 | frames larger than the SEH maximum frame size. | |
29341 | ||
29342 | 2021-04-18 Segher Boessenkool <segher@kernel.crashing.org> | |
29343 | ||
29344 | PR rtl-optimization/99927 | |
29345 | * combine.c (distribute_notes) [REG_UNUSED]: If the register already | |
29346 | is dead, just drop it. | |
29347 | ||
29348 | 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org> | |
29349 | ||
29350 | PR d/99914 | |
29351 | * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define. | |
29352 | * doc/tm.texi: Regenerate. | |
29353 | * doc/tm.texi.in (D language and ABI): Add @hook for | |
29354 | TARGET_D_TEMPLATES_ALWAYS_COMDAT. | |
29355 | ||
29356 | 2021-04-17 Iain Buclaw <ibuclaw@gdcproject.org> | |
29357 | ||
29358 | * config/darwin-d.c (darwin_d_handle_target_object_format): New | |
29359 | function. | |
29360 | (darwin_d_register_target_info): New function. | |
29361 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29362 | * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New | |
29363 | function. | |
29364 | (dragonfly_d_register_target_info): New function. | |
29365 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29366 | * config/freebsd-d.c (freebsd_d_handle_target_object_format): New | |
29367 | function. | |
29368 | (freebsd_d_register_target_info): New function. | |
29369 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29370 | * config/glibc-d.c (glibc_d_handle_target_object_format): New | |
29371 | function. | |
29372 | (glibc_d_register_target_info): New function. | |
29373 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29374 | * config/i386/i386-d.c (ix86_d_handle_target_object_format): New | |
29375 | function. | |
29376 | (ix86_d_register_target_info): Add ix86_d_handle_target_object_format | |
29377 | as handler for objectFormat key. | |
29378 | * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New | |
29379 | function. | |
29380 | (winnt_d_register_target_info): New function. | |
29381 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29382 | * config/netbsd-d.c (netbsd_d_handle_target_object_format): New | |
29383 | function. | |
29384 | (netbsd_d_register_target_info): New function. | |
29385 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29386 | * config/openbsd-d.c (openbsd_d_handle_target_object_format): New | |
29387 | function. | |
29388 | (openbsd_d_register_target_info): New function. | |
29389 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29390 | * config/pa/pa-d.c (pa_d_handle_target_object_format): New function. | |
29391 | (pa_d_register_target_info): Add pa_d_handle_target_object_format as | |
29392 | handler for objectFormat key. | |
29393 | * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New | |
29394 | function. | |
29395 | (rs6000_d_register_target_info): Add | |
29396 | rs6000_d_handle_target_object_format as handler for objectFormat key. | |
29397 | * config/sol2-d.c (solaris_d_handle_target_object_format): New | |
29398 | function. | |
29399 | (solaris_d_register_target_info): New function. | |
29400 | (TARGET_D_REGISTER_OS_TARGET_INFO): Define. | |
29401 | ||
29402 | 2021-04-16 Jakub Jelinek <jakub@redhat.com> | |
29403 | ||
29404 | PR target/91710 | |
29405 | * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change | |
29406 | abi_break argument from bool * to unsigned *, store there the pre-GCC 9 | |
29407 | alignment. | |
29408 | (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers. | |
29409 | (aarch64_function_arg_regno_p): Likewise. Only emit -Wpsabi note if | |
29410 | the old and new alignment after applying MIN/MAX to it is different. | |
29411 | ||
29412 | 2021-04-16 Tamar Christina <tamar.christina@arm.com> | |
29413 | ||
29414 | PR target/100048 | |
29415 | * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New. | |
29416 | * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new | |
29417 | TRN optab. | |
29418 | * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New. | |
29419 | ||
29420 | 2021-04-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
29421 | ||
29422 | * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise | |
29423 | this section and its subsections. | |
29424 | ||
29425 | 2021-04-16 Jakub Jelinek <jakub@redhat.com> | |
29426 | ||
29427 | PR target/100075 | |
29428 | * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New | |
29429 | define_insn patterns. | |
29430 | ||
29431 | 2021-04-16 Richard Sandiford <richard.sandiford@arm.com> | |
29432 | ||
29433 | PR rtl-optimization/98689 | |
29434 | * reg-notes.def (UNTYPED_CALL): New note. | |
29435 | * combine.c (distribute_notes): Handle it. | |
29436 | * emit-rtl.c (try_split): Likewise. | |
29437 | * rtlanal.c (rtx_properties::try_to_add_insn): Likewise. Assume | |
29438 | that calls with the note implicitly set all return value registers. | |
29439 | * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL | |
29440 | to untyped_calls. | |
29441 | ||
29442 | 2021-04-16 Richard Sandiford <richard.sandiford@arm.com> | |
29443 | ||
29444 | PR rtl-optimization/99596 | |
29445 | * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global | |
29446 | register accesses for const calls. Assume that pure functions | |
29447 | can only read from global registers. Ignore cases in which | |
29448 | the stack pointer has been marked global. | |
29449 | ||
29450 | 2021-04-16 Jakub Jelinek <jakub@redhat.com> | |
29451 | ||
29452 | PR target/99767 | |
29453 | * tree-vect-loop.c (vect_transform_loop): Don't remove just | |
29454 | dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace | |
29455 | them by their last argument. | |
29456 | ||
29457 | 2021-04-15 Martin Liska <mliska@suse.cz> | |
29458 | ||
29459 | * doc/invoke.texi: Other params don't use it, remove it. | |
29460 | ||
29461 | 2021-04-15 Richard Biener <rguenther@suse.de> | |
29462 | ||
29463 | * gimple-builder.h: Add deprecation note. | |
29464 | ||
29465 | 2021-04-15 Richard Sandiford <richard.sandiford@arm.com> | |
29466 | ||
29467 | PR c++/98852 | |
29468 | * attribs.h (restrict_type_identity_attributes_to): Declare. | |
29469 | * attribs.c (restrict_type_identity_attributes_to): New function. | |
29470 | ||
29471 | 2021-04-15 Richard Sandiford <richard.sandiford@arm.com> | |
29472 | ||
29473 | PR c/98852 | |
29474 | * attribs.h (affects_type_identity_attributes): Declare. | |
29475 | * attribs.c (remove_attributes_matching): New function. | |
29476 | (affects_type_identity_attributes): Likewise. | |
29477 | ||
29478 | 2021-04-15 Jakub Jelinek <jakub@redhat.com> | |
29479 | ||
29480 | PR target/100056 | |
29481 | * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3): | |
29482 | Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with | |
29483 | ZERO_EXTEND, SIGN_EXTEND or AND. | |
29484 | ||
29485 | 2021-04-14 Richard Sandiford <richard.sandiford@arm.com> | |
29486 | ||
29487 | PR rtl-optimization/99929 | |
29488 | * rtl.h (same_vector_encodings_p): New function. | |
29489 | * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding. | |
29490 | * cselib.c (rtx_equal_for_cselib_1): Likewise. | |
29491 | * jump.c (rtx_renumbered_equal_p): Likewise. | |
29492 | * lra-constraints.c (operands_match_p): Likewise. | |
29493 | * reload.c (operands_match_p): Likewise. | |
29494 | * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise. | |
29495 | ||
29496 | 2021-04-14 Richard Sandiford <richard.sandiford@arm.com> | |
29497 | ||
29498 | * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print | |
29499 | more information about variable-length CONST_VECTORs. | |
29500 | ||
29501 | 2021-04-14 Vladimir N. Makarov <vmakarov@redhat.com> | |
29502 | ||
29503 | PR rtl-optimization/100066 | |
29504 | * lra-constraints.c (split_reg): Check paradoxical_subreg_p for | |
29505 | ordered modes when choosing splitting mode for hard reg. | |
29506 | ||
29507 | 2021-04-14 Richard Sandiford <richard.sandiford@arm.com> | |
29508 | ||
29509 | PR target/99246 | |
29510 | * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel): | |
29511 | New function. | |
29512 | (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2. | |
29513 | ||
29514 | 2021-04-14 Andreas Krebbel <krebbel@linux.ibm.com> | |
29515 | ||
29516 | * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros | |
29517 | for mask operand types. | |
29518 | (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64) | |
29519 | (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate | |
29520 | operand. | |
29521 | (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the | |
29522 | immediate operand. | |
29523 | * config/s390/s390.c (s390_const_operand_ok): Check the new | |
29524 | operand types and generate a list of valid values. | |
29525 | ||
29526 | 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> | |
29527 | ||
29528 | * doc/tm.texi: Regenerate. | |
29529 | * doc/tm.texi.in (D language and ABI): Add @hook for | |
29530 | TARGET_D_REGISTER_OS_TARGET_INFO. | |
29531 | ||
29532 | 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> | |
29533 | ||
29534 | * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New | |
29535 | function. | |
29536 | (aarch64_d_register_target_info): New function. | |
29537 | * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info): | |
29538 | Declare. | |
29539 | * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO): | |
29540 | Define. | |
29541 | * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function. | |
29542 | (arm_d_register_target_info): New function. | |
29543 | * config/arm/arm-protos.h (arm_d_register_target_info): Declare. | |
29544 | * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29545 | * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function. | |
29546 | (ix86_d_register_target_info): New function. | |
29547 | * config/i386/i386-protos.h (ix86_d_register_target_info): Declare. | |
29548 | * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29549 | * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function. | |
29550 | (mips_d_register_target_info): New function. | |
29551 | * config/mips/mips-protos.h (mips_d_register_target_info): Declare. | |
29552 | * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29553 | * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function. | |
29554 | (pa_d_register_target_info): New function. | |
29555 | * config/pa/pa-protos.h (pa_d_register_target_info): Declare. | |
29556 | * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29557 | * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New | |
29558 | function. | |
29559 | (riscv_d_register_target_info): New function. | |
29560 | * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare. | |
29561 | * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29562 | * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New | |
29563 | function. | |
29564 | (rs6000_d_register_target_info): New function. | |
29565 | * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info): | |
29566 | Declare. | |
29567 | * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29568 | * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function. | |
29569 | (s390_d_register_target_info): New function. | |
29570 | * config/s390/s390-protos.h (s390_d_register_target_info): Declare. | |
29571 | * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29572 | * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New | |
29573 | function. | |
29574 | (sparc_d_register_target_info): New function. | |
29575 | * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare. | |
29576 | * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. | |
29577 | * doc/tm.texi: Regenerate. | |
29578 | * doc/tm.texi.in (D language and ABI): Add @hook for | |
29579 | TARGET_D_REGISTER_CPU_TARGET_INFO. | |
29580 | ||
29581 | 2021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> | |
29582 | ||
29583 | * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function. | |
29584 | * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare. | |
29585 | * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define. | |
29586 | * doc/tm.texi: Regenerate. | |
29587 | * doc/tm.texi.in (D language and ABI): Add @hook for | |
29588 | TARGET_D_HAS_STDCALL_CONVENTION. | |
29589 | ||
29590 | 2021-04-14 Richard Biener <rguenther@suse.de> | |
29591 | ||
29592 | * tree-cfg.c (verify_gimple_assign_ternary): Verify that | |
29593 | VEC_COND_EXPRs have a gimple_val condition. | |
29594 | * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR | |
29595 | can no longer have a GENERIC condition. | |
29596 | ||
29597 | 2021-04-14 Richard Earnshaw <rearnsha@arm.com> | |
29598 | ||
29599 | PR target/100067 | |
29600 | * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits | |
29601 | from the isa_delta when -mfpu has been used. | |
29602 | (arm_options_perform_arch_sanity_checks): It's the architecture that | |
29603 | lacks an FPU not the processor. | |
29604 | ||
29605 | 2021-04-13 Richard Biener <rguenther@suse.de> | |
29606 | ||
29607 | PR tree-optimization/100053 | |
29608 | * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do | |
29609 | not use optimistic dominance queries for backedges to validate | |
29610 | predicated values. | |
29611 | (dominated_by_p_w_unex): Add parameter to ignore executable | |
29612 | state on backedges. | |
29613 | (rpo_elim::eliminate_avail): Adjust. | |
29614 | ||
29615 | 2021-04-13 Jakub Jelinek <jakub@redhat.com> | |
29616 | ||
29617 | PR target/100028 | |
29618 | * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr, | |
29619 | *aarch64_bfxilsi_extrdi): New define_insn patterns. | |
29620 | ||
29621 | 2021-04-13 Jakub Jelinek <jakub@redhat.com> | |
29622 | ||
29623 | PR target/99648 | |
29624 | * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P | |
29625 | outermode, return NULL if the result doesn't encode back to the | |
29626 | original byte sequence. | |
29627 | (simplify_gen_subreg): Don't create SUBREGs from constants to | |
29628 | MODE_COMPOSITE_P outermode. | |
29629 | ||
29630 | 2021-04-12 Jakub Jelinek <jakub@redhat.com> | |
29631 | ||
29632 | PR rtl-optimization/99905 | |
29633 | * combine.c (expand_compound_operation): If pos + len > modewidth, | |
29634 | perform the right shift by pos in inner_mode and then convert to mode, | |
29635 | instead of trying to simplify a shift of rtx with inner_mode by pos | |
29636 | as if it was a shift in mode. | |
29637 | ||
29638 | 2021-04-12 Jakub Jelinek <jakub@redhat.com> | |
29639 | ||
29640 | PR debug/99830 | |
29641 | * combine.c (simplify_and_const_int_1): Don't optimize varop | |
29642 | away if it has side-effects. | |
29643 | ||
29644 | 2021-04-12 Martin Liska <mliska@suse.cz> | |
29645 | ||
29646 | * doc/extend.texi: Escape @smallexample content. | |
29647 | ||
29648 | 2021-04-12 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
29649 | ||
29650 | * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add | |
29651 | alternative in order to load a DFP zero. | |
29652 | ||
29653 | 2021-04-12 Martin Liska <mliska@suse.cz> | |
29654 | ||
29655 | * doc/extend.texi: Be more precise in documentation | |
29656 | of symver attribute. | |
29657 | ||
29658 | 2021-04-12 Martin Liska <mliska@suse.cz> | |
29659 | ||
29660 | PR sanitizer/99877 | |
29661 | * gimplify.c (gimplify_expr): Right now, we unpoison all | |
29662 | variables before a goto <dest>. We should not do it if we are | |
29663 | in a omp context. | |
29664 | ||
29665 | 2021-04-12 Cui,Lili <lili.cui@intel.com> | |
29666 | ||
29667 | * common/config/i386/cpuinfo.h (get_intel_cpu): Handle | |
29668 | rocketlake. | |
29669 | * common/config/i386/i386-common.c (processor_names): Add | |
29670 | rocketlake. | |
29671 | (processor_alias_table): Add rocketlake. | |
29672 | * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add | |
29673 | INTEL_COREI7_ROCKETLAKE. | |
29674 | * config.gcc: Add -march=rocketlake. | |
29675 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
29676 | rocketlake. | |
29677 | * config/i386/i386-options.c (m_ROCKETLAKE) : Define. | |
29678 | (processor_cost_table): Add rocketlake cost. | |
29679 | * config/i386/i386.h (ix86_size_cost) : Define | |
29680 | TARGET_ROCKETLAKE. | |
29681 | (processor_type) : Add PROCESSOR_ROCKETLAKE. | |
29682 | (PTA_ROCKETLAKE): Ditto. | |
29683 | * doc/extend.texi: Add rocketlake. | |
29684 | * doc/invoke.texi: Add rocketlake. | |
29685 | ||
29686 | 2021-04-12 Cui,Lili <lili.cui@intel.com> | |
29687 | ||
29688 | * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list. | |
29689 | * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE. | |
29690 | * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model. | |
29691 | * doc/invoke.texi: Change alderlake ISA list. | |
29692 | ||
29693 | 2021-04-11 Hafiz Abid Qadeer <abidh@codesourcery.com> | |
29694 | ||
29695 | PR middle-end/98088 | |
29696 | * omp-expand.c (expand_oacc_collapse_init): Update condition in | |
29697 | a gcc_assert. | |
29698 | ||
29699 | 2021-04-10 H.J. Lu <hjl.tools@gmail.com> | |
29700 | ||
29701 | PR target/99744 | |
29702 | * config/i386/serializeintrin.h (_serialize): Defined as macro. | |
29703 | ||
29704 | 2021-04-10 Jakub Jelinek <jakub@redhat.com> | |
29705 | ||
29706 | PR lto/99849 | |
29707 | * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than | |
29708 | just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs. | |
29709 | ||
29710 | 2021-04-10 Jakub Jelinek <jakub@redhat.com> | |
29711 | ||
29712 | PR middle-end/99989 | |
29713 | * gimple-ssa-warn-alloca.c | |
29714 | (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to | |
29715 | 0 with integer precision unconditionally. | |
29716 | ||
29717 | 2021-04-10 Jakub Jelinek <jakub@redhat.com> | |
29718 | ||
29719 | PR rtl-optimization/98601 | |
29720 | * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size | |
29721 | not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT | |
29722 | unaligned_mems handle VOIDmode like BLKmode. | |
29723 | ||
29724 | 2021-04-10 Jan Hubicka <hubicka@ucw.cz> | |
29725 | ||
29726 | PR lto/99857 | |
29727 | * tree.c (free_lang_data_in_decl): Do not release body of | |
29728 | declare_variant_alt. | |
29729 | ||
29730 | 2021-04-09 Richard Sandiford <richard.sandiford@arm.com> | |
29731 | ||
29732 | * config/aarch64/aarch64.c (aarch64_option_restore): If the | |
29733 | architecture was specified explicitly and the tuning wasn't, | |
29734 | tune for the architecture rather than the configured default CPU. | |
29735 | ||
29736 | 2021-04-09 Richard Sandiford <richard.sandiford@arm.com> | |
29737 | ||
29738 | * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30 | |
29739 | as the temporary register. | |
29740 | ||
29741 | 2021-04-09 Martin Liska <mliska@suse.cz> | |
29742 | ||
29743 | * doc/extend.texi: Move non-target attributes on the top level. | |
29744 | ||
29745 | 2021-04-09 Martin Liska <mliska@suse.cz> | |
29746 | ||
29747 | * doc/invoke.texi: Document minimum and maximum value of the | |
29748 | argument for both supported compression algorithms. | |
29749 | ||
29750 | 2021-04-08 David Edelsohn <dje.gcc@gmail.com> | |
29751 | ||
29752 | * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select | |
29753 | TLS BSS before TLS data. | |
29754 | * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm. | |
29755 | ||
29756 | 2021-04-08 Richard Sandiford <richard.sandiford@arm.com> | |
29757 | ||
29758 | * doc/sourcebuild.texi (stdint_types_mbig_endian): Document. | |
29759 | ||
29760 | 2021-04-08 Richard Sandiford <richard.sandiford@arm.com> | |
29761 | ||
29762 | * match.pd: Extend vec_cond folds to handle shifts. | |
29763 | ||
29764 | 2021-04-08 Maciej W. Rozycki <macro@orcam.me.uk> | |
29765 | ||
29766 | * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's | |
29767 | peephole. | |
29768 | ||
29769 | 2021-04-08 Alex Coplan <alex.coplan@arm.com> | |
29770 | ||
29771 | PR target/99647 | |
29772 | * config/arm/iterators.md (MVE_vecs): New. | |
29773 | (V_elem): Also handle V2DF. | |
29774 | * config/arm/mve.md (*mve_mov<mode>): Rename to ... | |
29775 | (*mve_vdup<mode>): ... this. Remove second alternative since | |
29776 | vec_duplicate of const_int is not canonical RTL, and we don't | |
29777 | want to match symbol_refs. | |
29778 | (*mve_vec_duplicate<mode>): Delete (pattern is redundant). | |
29779 | ||
29780 | 2021-04-08 Xionghu Luo <luoxhu@linux.ibm.com> | |
29781 | ||
29782 | * fold-const.c (fold_single_bit_test): Fix typo. | |
29783 | * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single | |
29784 | instead. | |
29785 | ||
29786 | 2021-04-07 Richard Sandiford <richard.sandiford@arm.com> | |
29787 | ||
29788 | PR tree-optimization/97513 | |
29789 | * tree-vect-slp.c (vect_add_slp_permutation): New function, | |
29790 | split out from... | |
29791 | (vectorizable_slp_permutation): ...here. Detect cases in which | |
29792 | all VEC_PERM_EXPRs are guaranteed to have the same stepped | |
29793 | permute vector and only generate one permute vector for that case. | |
29794 | Extend that case to handle variable-length vectors. | |
29795 | ||
29796 | 2021-04-07 Richard Sandiford <richard.sandiford@arm.com> | |
29797 | ||
29798 | PR tree-optimization/99873 | |
29799 | * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function. | |
29800 | (vect_build_slp_instance): Don't split store groups that could | |
29801 | use IFN_STORE_LANES. | |
29802 | ||
29803 | 2021-04-07 Jakub Jelinek <jakub@redhat.com> | |
29804 | ||
29805 | PR target/99872 | |
29806 | * varasm.c (output_constant_pool_contents): Don't strip name encoding | |
29807 | from XSTR (desc->sym, 0) or from label before passing those to | |
29808 | ASM_OUTPUT_DEF. | |
29809 | ||
29810 | 2021-04-07 Richard Biener <rguenther@suse.de> | |
29811 | ||
29812 | PR tree-optimization/99954 | |
29813 | * tree-loop-distribution.c: Include tree-affine.h. | |
29814 | (generate_memcpy_builtin): Try using tree-affine to prove | |
29815 | non-overlap. | |
29816 | (loop_distribution::classify_builtin_ldst): Always classify | |
29817 | as PKIND_MEMMOVE. | |
29818 | ||
29819 | 2021-04-07 Richard Biener <rguenther@suse.de> | |
29820 | ||
29821 | PR tree-optimization/99947 | |
29822 | * tree-vect-loop.c (vectorizable_induction): Pre-allocate | |
29823 | steps vector to avoid pushing elements from the reallocated | |
29824 | vector. | |
29825 | ||
29826 | 2021-04-07 Richard Biener <rguenther@suse.de> | |
29827 | ||
29828 | * tree-ssa-sccvn.h (print_vn_reference_ops): Declare. | |
29829 | * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand | |
29830 | printing... | |
29831 | * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new | |
29832 | function. | |
29833 | (debug_vn_reference_ops): New. | |
29834 | ||
29835 | 2021-04-07 Bin Cheng <bin.cheng@linux.alibaba.com> | |
29836 | ||
29837 | PR tree-optimization/98736 | |
29838 | * tree-loop-distribution.c | |
29839 | * (loop_distribution::bb_top_order_init): | |
29840 | Compute RPO with programing order preserved by calling function | |
29841 | rev_post_order_and_mark_dfs_back_seme. | |
29842 | ||
29843 | 2021-04-06 Vladimir N. Makarov <vmakarov@redhat.com> | |
29844 | ||
29845 | PR target/99781 | |
29846 | * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p. | |
29847 | * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New | |
29848 | functions. | |
29849 | (process_bb_lives): Don't update biggest mode of hard reg for | |
29850 | implicit in multi-register group. Use the new functions for | |
29851 | updating dead_set and unused_set by register notes. | |
29852 | ||
29853 | 2021-04-06 Xianmiao Qu <xianmiao_qu@c-sky.com> | |
29854 | ||
29855 | * config/csky/csky_pipeline_ck802.md : Use insn reservation name | |
29856 | instead of *. | |
29857 | ||
29858 | 2021-04-06 H.J. Lu <hjl.tools@gmail.com> | |
29859 | ||
29860 | * config/i386/x86-tune-costs.h (skylake_memcpy): Updated. | |
29861 | (skylake_memset): Likewise. | |
29862 | (skylake_cost): Change CLEAR_RATIO to 17. | |
29863 | * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): | |
29864 | Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER, | |
29865 | m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512. | |
29866 | ||
29867 | 2021-04-06 Richard Biener <rguenther@suse.de> | |
29868 | ||
29869 | PR tree-optimization/99880 | |
29870 | * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only | |
29871 | set vectorized defs of relevant PHIs. | |
29872 | ||
29873 | 2021-04-06 Richard Biener <rguenther@suse.de> | |
29874 | ||
29875 | PR tree-optimization/99924 | |
29876 | * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark | |
29877 | nodes w/o scalar stmts as visited. | |
29878 | ||
29879 | 2021-04-06 Alex Coplan <alex.coplan@arm.com> | |
29880 | ||
29881 | PR target/99748 | |
29882 | * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base | |
29883 | PCS for [su]fix_optab. | |
29884 | ||
29885 | 2021-04-03 Iain Sandoe <iain@sandoe.co.uk> | |
29886 | ||
29887 | * config/darwin.c (machopic_legitimize_pic_address): Check | |
29888 | that the current pic register is one of the hard reg set | |
29889 | before setting liveness. | |
29890 | ||
29891 | 2021-04-03 Iain Sandoe <iain@sandoe.co.uk> | |
29892 | ||
29893 | * config/darwin.c (machopic_legitimize_pic_address): Fix | |
29894 | whitespace, remove unused code. | |
29895 | ||
29896 | 2021-04-03 Jakub Jelinek <jakub@redhat.com> | |
29897 | ||
29898 | PR tree-optimization/99882 | |
29899 | * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with | |
29900 | pointer type. | |
29901 | ||
29902 | 2021-04-03 Jakub Jelinek <jakub@redhat.com> | |
29903 | ||
29904 | PR rtl-optimization/99863 | |
29905 | * dse.c (replace_read): Drop regs_live argument. Instead of | |
29906 | regs_live, use store_insn->fixed_regs_live if non-NULL, | |
29907 | otherwise punt if insns sequence clobbers or sets any hard | |
29908 | registers. | |
29909 | ||
29910 | 2021-04-03 Jakub Jelinek <jakub@redhat.com> | |
29911 | ||
29912 | PR testsuite/98125 | |
29913 | * targhooks.h (default_print_patchable_function_entry_1): Declare. | |
29914 | * targhooks.c (default_print_patchable_function_entry_1): New function, | |
29915 | copied from default_print_patchable_function_entry with an added flags | |
29916 | argument. | |
29917 | (default_print_patchable_function_entry): Rewritten into a small | |
29918 | wrapper around default_print_patchable_function_entry_1. | |
29919 | * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): | |
29920 | Redefine. | |
29921 | (rs6000_print_patchable_function_entry): New function. | |
29922 | ||
29923 | 2021-04-02 Eric Botcazou <ebotcazou@adacore.com> | |
29924 | ||
29925 | * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak. | |
29926 | ||
29927 | 2021-04-01 Jason Merrill <jason@redhat.com> | |
29928 | ||
29929 | PR c++/98481 | |
29930 | * common.opt: Document v15 and v16. | |
29931 | ||
29932 | 2021-04-01 Richard Biener <rguenther@suse.de> | |
29933 | ||
29934 | PR tree-optimization/99863 | |
29935 | * gimplify.c (gimplify_init_constructor): Recompute vector | |
29936 | constructor flags. | |
29937 | ||
29938 | 2021-04-01 Jakub Jelinek <jakub@redhat.com> | |
29939 | ||
29940 | * doc/extend.texi (symver attribute): Fix up syntax errors | |
29941 | in the examples. | |
29942 | ||
29943 | 2021-04-01 Jakub Jelinek <jakub@redhat.com> | |
29944 | ||
29945 | PR tree-optimization/96573 | |
29946 | * gimple-ssa-store-merging.c (init_symbolic_number): Handle | |
29947 | also pointer types. | |
29948 | ||
29949 | 2021-04-01 Richard Biener <rguenther@suse.de> | |
29950 | ||
29951 | PR tree-optimization/99856 | |
29952 | * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote | |
29953 | precision to vector element precision. | |
29954 | ||
29955 | 2021-04-01 Martin Jambor <mjambor@suse.cz> | |
29956 | ||
29957 | PR tree-optimization/97009 | |
29958 | * tree-sra.c (access_or_its_child_written): New function. | |
29959 | (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write | |
29960 | test. | |
29961 | ||
29962 | 2021-03-31 Jan Hubicka <hubicka@ucw.cz> | |
29963 | ||
29964 | PR ipa/98265 | |
29965 | * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL. | |
29966 | ||
29967 | 2021-03-31 Pat Haugen <pthaugen@linux.ibm.com> | |
29968 | ||
29969 | PR target/99133 | |
29970 | * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst, | |
29971 | xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst, | |
29972 | xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed. | |
29973 | * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>, | |
29974 | mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>, | |
29975 | mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>): | |
29976 | Likewise. | |
29977 | * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test. | |
29978 | * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New. | |
29979 | (define_attr "prefixed"): Update initializer. | |
29980 | ||
29981 | 2021-03-31 Jakub Jelinek <jakub@redhat.com> | |
29982 | ||
29983 | PR debug/99490 | |
29984 | * dwarf2out.c (debug_ranges_dwo_section): New variable. | |
29985 | (DW_RANGES_IDX_SKELETON): Define. | |
29986 | (struct dw_ranges): Add begin_entry and end_entry members. | |
29987 | (DEBUG_DWO_RNGLISTS_SECTION): Define. | |
29988 | (add_ranges_num): Adjust r initializer for addition of *_entry | |
29989 | members. | |
29990 | (add_ranges_by_labels): For -gsplit-dwarf and force_direct, | |
29991 | set idx to DW_RANGES_IDX_SKELETON. | |
29992 | (use_distinct_base_address_for_range): New function. | |
29993 | (index_rnglists): Don't set r->idx if it is equal to | |
29994 | DW_RANGES_IDX_SKELETON. Initialize r->begin_entry and | |
29995 | r->end_entry for -gsplit-dwarf if those will be needed by | |
29996 | output_rnglists. | |
29997 | (output_rnglists): Add DWO argument. If true, switch to | |
29998 | debug_ranges_dwo_section rather than debug_ranges_section. | |
29999 | Adjust l1/l2 label indexes. Only output the offset table when | |
30000 | dwo is true and don't include in there the skeleton range | |
30001 | entry if present. For -gsplit-dwarf, skip ranges that belong | |
30002 | to the other rnglists section. Change return type from void | |
30003 | to bool and return true if there are any range entries for | |
30004 | the other section. For dwarf_split_debug_info use | |
30005 | DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx | |
30006 | entries instead of DW_RLE_start_end, DW_RLE_start_length and | |
30007 | DW_RLE_base_address. Use use_distinct_base_address_for_range. | |
30008 | (init_sections_and_labels): Initialize debug_ranges_dwo_section | |
30009 | if -gsplit-dwarf and DWARF >= 5. Adjust ranges_section_label | |
30010 | and range_base_label indexes. | |
30011 | (dwarf2out_finish): Call index_rnglists earlier before finalizing | |
30012 | .debug_addr. Never emit DW_AT_rnglists_base attribute. For | |
30013 | -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice | |
30014 | with different dwo arguments. | |
30015 | (dwarf2out_c_finalize): Clear debug_ranges_dwo_section. | |
30016 | ||
30017 | 2021-03-31 Richard Sandiford <richard.sandiford@arm.com> | |
30018 | ||
30019 | PR tree-optimization/98268 | |
30020 | * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call | |
30021 | recompute_tree_invariant_for_addr_expr after successfully | |
30022 | folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR. | |
30023 | ||
30024 | 2021-03-31 Richard Sandiford <richard.sandiford@arm.com> | |
30025 | ||
30026 | PR tree-optimization/99726 | |
30027 | * tree-data-ref.c (create_intersect_range_checks_index): Bail | |
30028 | out if there is more than one access function SCEV for the loop | |
30029 | being versioned. | |
30030 | ||
30031 | 2021-03-31 Richard Sandiford <richard.sandiford@arm.com> | |
30032 | ||
30033 | PR rtl-optimization/97141 | |
30034 | PR rtl-optimization/98726 | |
30035 | * emit-rtl.c (valid_for_const_vector_p): Return true for | |
30036 | CONST_POLY_INT_P. | |
30037 | * rtx-vector-builder.h (rtx_vector_builder::step): Return a | |
30038 | poly_wide_int instead of a wide_int. | |
30039 | (rtx_vector_builder::apply_set): Take a poly_wide_int instead | |
30040 | of a wide_int. | |
30041 | * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise. | |
30042 | * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return | |
30043 | false for CONST_VECTORs that cannot be forced to memory. | |
30044 | * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR | |
30045 | is too complex to force to memory, build it up from individual | |
30046 | elements instead. | |
30047 | ||
30048 | 2021-03-31 Jan Hubicka <jh@suse.cz> | |
30049 | ||
30050 | PR lto/99447 | |
30051 | * cgraph.c (cgraph_node::release_body): Fix overactive check. | |
30052 | ||
30053 | 2021-03-31 Christophe Lyon <christophe.lyon@linaro.org> | |
30054 | ||
30055 | PR target/99786 | |
30056 | * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect | |
30057 | for V4HI and V2SI. | |
30058 | ||
30059 | 2021-03-31 H.J. Lu <hjl.tools@gmail.com> | |
30060 | ||
30061 | * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep): | |
30062 | For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode | |
30063 | to SImode. | |
30064 | (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use | |
30065 | "rep movsb/stosb" only for known sizes. | |
30066 | * config/i386/i386-options.c (processor_cost_table): Use Ice | |
30067 | Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire | |
30068 | Rapids and Alder Lake. | |
30069 | * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New. | |
30070 | * config/i386/x86-tune-costs.h (icelake_memcpy): New. | |
30071 | (icelake_memset): Likewise. | |
30072 | (icelake_cost): Likewise. | |
30073 | * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): | |
30074 | New. | |
30075 | ||
30076 | 2021-03-31 Richard Sandiford <richard.sandiford@arm.com> | |
30077 | ||
30078 | PR target/98119 | |
30079 | * config/aarch64/aarch64.c | |
30080 | (aarch64_vectorize_preferred_vector_alignment): Query the size | |
30081 | of the provided SVE vector; do not assume that all SVE vectors | |
30082 | have the same size. | |
30083 | ||
30084 | 2021-03-31 Jan Hubicka <jh@suse.cz> | |
30085 | ||
30086 | PR lto/99447 | |
30087 | * cgraph.c (cgraph_node::release_body): Remove all callers and | |
30088 | references. | |
30089 | * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here. | |
30090 | * cgraphunit.c (cgraph_node::expand): And here. | |
30091 | ||
30092 | 2021-03-31 Martin Liska <mliska@suse.cz> | |
30093 | ||
30094 | * ipa-modref.c (analyze_ssa_name_flags): Fix coding style | |
30095 | and one negated condition. | |
30096 | ||
30097 | 2021-03-31 Jakub Jelinek <jakub@redhat.com> | |
30098 | Richard Sandiford <richard.sandiford@arm.com> | |
30099 | ||
30100 | PR target/99813 | |
30101 | * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav | |
30102 | constraints on operands[2] and similarly 0 and rk constraints | |
30103 | on operands[1] corresponding to that. | |
30104 | ||
30105 | 2021-03-31 Jakub Jelinek <jakub@redhat.com> | |
30106 | ||
30107 | PR bootstrap/98860 | |
30108 | * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF | |
30109 | linker doesn't support DWARF sections new in DWARF5. | |
30110 | * config/i386/i386-options.c (ix86_option_override_internal): Default | |
30111 | to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF | |
30112 | targets. | |
30113 | * config.in: Regenerated. | |
30114 | * configure: Regenerated. | |
30115 | ||
30116 | 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30117 | ||
30118 | PR target/99820 | |
30119 | * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for | |
30120 | available issue_info before using it. | |
30121 | ||
30122 | 2021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30123 | ||
30124 | PR target/99822 | |
30125 | * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero | |
30126 | in operand 1. | |
30127 | ||
30128 | 2021-03-30 Xionghu Luo <luoxhu@linux.ibm.com> | |
30129 | ||
30130 | PR target/99718 | |
30131 | * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ... | |
30132 | (altivec_lvsl_reg_<mode>): ... this. | |
30133 | (altivec_lvsr_reg): Change to ... | |
30134 | (altivec_lvsr_reg_<mode>): ... this. | |
30135 | * config/rs6000/predicates.md (vec_set_index_operand): New. | |
30136 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
30137 | Enable 32bit variable vec_insert for all TARGET_VSX. | |
30138 | * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): | |
30139 | Enable 32bit variable vec_insert for p9 and above. | |
30140 | (rs6000_expand_vector_set_var_p8): Rename to ... | |
30141 | (rs6000_expand_vector_set_var_p7): ... this. | |
30142 | (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert | |
30143 | position. | |
30144 | * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand. | |
30145 | * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and | |
30146 | gen_altivec_lvsr_reg_di. | |
30147 | ||
30148 | 2021-03-30 H.J. Lu <hjl.tools@gmail.com> | |
30149 | ||
30150 | PR target/99744 | |
30151 | * config/i386/ia32intrin.h (__rdtsc): Defined as macro. | |
30152 | (__rdtscp): Likewise. | |
30153 | ||
30154 | 2021-03-30 Tamar Christina <tamar.christina@arm.com> | |
30155 | ||
30156 | PR tree-optimization/99825 | |
30157 | * tree-vect-slp-patterns.c (vect_check_evenodd_blend): | |
30158 | Reject non-mult 2 lanes. | |
30159 | ||
30160 | 2021-03-30 Richard Earnshaw <rearnsha@arm.com> | |
30161 | ||
30162 | PR target/99773 | |
30163 | * config/arm/arm.c (arm_file_start): Fix emission of | |
30164 | Tag_ABI_VFP_args attribute. | |
30165 | ||
30166 | 2021-03-30 Richard Biener <rguenther@suse.de> | |
30167 | ||
30168 | PR tree-optimization/99824 | |
30169 | * stor-layout.c (set_min_and_max_values_for_integral_type): | |
30170 | Assert the precision is within the bounds of | |
30171 | WIDE_INT_MAX_PRECISION. | |
30172 | * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use | |
30173 | the outermost component ref only to lower the access size | |
30174 | and initialize that from the access type. | |
30175 | ||
30176 | 2021-03-30 Richard Sandiford <richard.sandiford@arm.com> | |
30177 | ||
30178 | PR target/98136 | |
30179 | * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction | |
30180 | CONST_INTs to aarch64_expand_mov_immediate when called after RA. | |
30181 | ||
30182 | 2021-03-30 Mihailo Stojanovic <mihailo.stojanovic@typhoon-hil.com> | |
30183 | ||
30184 | * config/aarch64/aarch64.md | |
30185 | (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch" | |
30186 | attribute to disambiguate between SIMD and FP variants of the | |
30187 | instruction. | |
30188 | ||
30189 | 2021-03-29 Jan Hubicka <hubicka@ucw.cz> | |
30190 | ||
30191 | * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref. | |
30192 | (analyze_ssa_name_flags): Fix typo in comment. | |
30193 | ||
30194 | 2021-03-29 Alex Coplan <alex.coplan@arm.com> | |
30195 | ||
30196 | PR target/99216 | |
30197 | * config/aarch64/aarch64-sve-builtins.cc | |
30198 | (function_builder::add_function): Add placeholder_p argument, use | |
30199 | placeholder decls if this is set. | |
30200 | (function_builder::add_unique_function): Instead of conditionally adding | |
30201 | direct overloads, unconditionally add either a direct overload or a | |
30202 | placeholder. | |
30203 | (function_builder::add_overloaded_function): Set placeholder_p if we're | |
30204 | using C++ overloads. Use the obstack for string storage instead | |
30205 | of relying on the tree nodes. | |
30206 | (function_builder::add_overloaded_functions): Don't return early for | |
30207 | m_direct_overloads: we need to add placeholders. | |
30208 | * config/aarch64/aarch64-sve-builtins.h | |
30209 | (function_builder::add_function): Add placeholder_p argument. | |
30210 | ||
30211 | 2021-03-29 Richard Biener <rguenther@suse.de> | |
30212 | ||
30213 | PR tree-optimization/99807 | |
30214 | * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move | |
30215 | assert below VEC_PERM handling. | |
30216 | ||
30217 | 2021-03-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30218 | ||
30219 | PR target/99037 | |
30220 | * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use | |
30221 | aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern | |
30222 | matching const_int 0. | |
30223 | (move_lo_quad_internal_be_<mode>): Likewise. | |
30224 | (move_lo_quad_<mode>): Update for the above. | |
30225 | * config/aarch64/iterators.md (VQ_2E): Delete. | |
30226 | ||
30227 | 2021-03-29 Jakub Jelinek <jakub@redhat.com> | |
30228 | ||
30229 | PR tree-optimization/99777 | |
30230 | * fold-const.c (extract_muldiv_1): For conversions, punt on casts from | |
30231 | types other than scalar integral types. | |
30232 | ||
30233 | 2021-03-28 David Edelsohn <dje.gcc@gmail.com> | |
30234 | ||
30235 | * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add | |
30236 | XCOFF TLS reloc decorations. | |
30237 | ||
30238 | 2021-03-28 Gerald Pfeifer <gerald@pfeifer.com> | |
30239 | ||
30240 | * doc/analyzer.texi (Analyzer Internals): Update link to | |
30241 | "A Memory Model for Static Analysis of C Programs". | |
30242 | ||
30243 | 2021-03-26 David Edelsohn <dje.gcc@gmail.com> | |
30244 | ||
30245 | * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function. | |
30246 | * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align): | |
30247 | Declare. | |
30248 | * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New. | |
30249 | (rs6000_special_round_type_align): Recursively check innermost first | |
30250 | field. | |
30251 | ||
30252 | 2021-03-26 Jakub Jelinek <jakub@redhat.com> | |
30253 | ||
30254 | PR debug/99334 | |
30255 | * dwarf2out.h (struct dw_fde_node): Add rule18 member. | |
30256 | * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp) | |
30257 | assignment with drap_reg active, queue reg save for hfp with offset 0 | |
30258 | and flush queued reg saves. When handling a push with rule18, | |
30259 | defer queueing reg save for hfp and just assert the offset is 0. | |
30260 | (scan_trace): Assert that fde->rule18 is false. | |
30261 | ||
30262 | 2021-03-26 Vladimir Makarov <vmakarov@redhat.com> | |
30263 | ||
30264 | PR target/99766 | |
30265 | * ira-costs.c (record_reg_classes): Put case with | |
30266 | CT_RELAXED_MEMORY adjacent to one with CT_MEMORY. | |
30267 | * ira.c (ira_setup_alts): Ditto. | |
30268 | * lra-constraints.c (process_alt_operands): Ditto. | |
30269 | * recog.c (asm_operand_ok): Ditto. | |
30270 | * reload.c (find_reloads): Ditto. | |
30271 | ||
30272 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30273 | ||
30274 | * config/aarch64/aarch64-protos.h | |
30275 | (cpu_addrcost_table::post_modify_ld3_st3): New member variable. | |
30276 | (cpu_addrcost_table::post_modify_ld4_st4): Likewise. | |
30277 | * config/aarch64/aarch64.c (generic_addrcost_table): Update | |
30278 | accordingly, using the same costs as for post_modify. | |
30279 | (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise. | |
30280 | (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table): | |
30281 | (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise. | |
30282 | (a64fx_addrcost_table): Likewise. | |
30283 | (neoversev1_addrcost_table): New. | |
30284 | (neoversev1_tunings): Use neoversev1_addrcost_table. | |
30285 | (aarch64_address_cost): Use the new post_modify costs for CImode | |
30286 | and XImode. | |
30287 | ||
30288 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30289 | ||
30290 | * config/aarch64/aarch64.opt | |
30291 | (-param=aarch64-loop-vect-issue-rate-niters=): New parameter. | |
30292 | * doc/invoke.texi: Document it. | |
30293 | * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info) | |
30294 | (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info) | |
30295 | (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info) | |
30296 | (aarch64_vec_issue_info): New structures. | |
30297 | (cpu_vector_cost): Write comments above the variables rather | |
30298 | than to the side. | |
30299 | (cpu_vector_cost::issue_info): New member variable. | |
30300 | * config/aarch64/aarch64.c: Include gimple-pretty-print.h | |
30301 | and tree-ssa-loop-niter.h. | |
30302 | (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost) | |
30303 | (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost) | |
30304 | (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost) | |
30305 | (thunderx3t110_vector_cost): Initialize issue_info to null. | |
30306 | (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info) | |
30307 | (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures. | |
30308 | (neoversev1_vector_cost): Use them. | |
30309 | (aarch64_vec_op_count, aarch64_sve_op_count): New structures. | |
30310 | (aarch64_vector_costs::saw_sve_only_op): New member variable. | |
30311 | (aarch64_vector_costs::num_vector_iterations): Likewise. | |
30312 | (aarch64_vector_costs::scalar_ops): Likewise. | |
30313 | (aarch64_vector_costs::advsimd_ops): Likewise. | |
30314 | (aarch64_vector_costs::sve_ops): Likewise. | |
30315 | (aarch64_vector_costs::seen_loads): Likewise. | |
30316 | (aarch64_simd_vec_costs_for_flags): New function. | |
30317 | (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations. | |
30318 | Count the number of predicate operations required by SVE WHILE | |
30319 | instructions. | |
30320 | (aarch64_comparison_type, aarch64_multiply_add_p): New functions. | |
30321 | (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise. | |
30322 | (aarch64_count_ops): Likewise. | |
30323 | (aarch64_add_stmt_cost): Record whether see an SVE operation | |
30324 | that cannot currently be implementing using Advanced SIMD. | |
30325 | Record issue information about the scalar, Advanced SIMD | |
30326 | and (where relevant) SVE versions of a loop. | |
30327 | (aarch64_vec_op_count::dump): New function. | |
30328 | (aarch64_sve_op_count::dump): Likewise. | |
30329 | (aarch64_estimate_min_cycles_per_iter): Likewise. | |
30330 | (aarch64_adjust_body_cost): If issue information is available, | |
30331 | try to compare the issue rates of the various loop implementations | |
30332 | and increase or decrease the vector body cost accordingly. | |
30333 | ||
30334 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30335 | ||
30336 | * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype): | |
30337 | Assume a zero cost for induction phis. | |
30338 | ||
30339 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30340 | ||
30341 | * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New | |
30342 | function. | |
30343 | (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and | |
30344 | vector comparisons. | |
30345 | ||
30346 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30347 | ||
30348 | * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype): | |
30349 | New function. | |
30350 | (aarch64_add_stmt_cost): Call it. | |
30351 | ||
30352 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30353 | ||
30354 | * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput): | |
30355 | New tuning parameter. | |
30356 | * config/aarch64/aarch64.c (neoversev1_tunings): Use it. | |
30357 | (aarch64_estimated_sve_vq): New function. | |
30358 | (aarch64_vector_costs::analyzed_vinfo): New member variable. | |
30359 | (aarch64_vector_costs::is_loop): Likewise. | |
30360 | (aarch64_vector_costs::unrolled_advsimd_niters): Likewise. | |
30361 | (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise. | |
30362 | (aarch64_record_potential_advsimd_unrolling): New function. | |
30363 | (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise. | |
30364 | (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or | |
30365 | aarch64_analyze_bb_vinfo on the first use of a costs structure. | |
30366 | Detect whether we're vectorizing a loop for SVE that might be | |
30367 | completely unrolled if it used Advanced SIMD instead. | |
30368 | (aarch64_adjust_body_cost_for_latency): New function. | |
30369 | (aarch64_finish_cost): Call it. | |
30370 | ||
30371 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30372 | ||
30373 | * config/aarch64/aarch64.c (aarch64_vector_costs): New structure. | |
30374 | (aarch64_init_cost): New function. | |
30375 | (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of | |
30376 | the default unsigned[3]. | |
30377 | (aarch64_finish_cost, aarch64_destroy_cost_data): New functions. | |
30378 | (TARGET_VECTORIZE_INIT_COST): Override. | |
30379 | (TARGET_VECTORIZE_FINISH_COST): Likewise. | |
30380 | (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. | |
30381 | ||
30382 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30383 | ||
30384 | * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost) | |
30385 | (neoversev1_sve_vector_cost): New cost structures. | |
30386 | (neoversev1_vector_cost): Likewise. | |
30387 | (neoversev1_tunings): Use them. Enable use_new_vector_costs. | |
30388 | ||
30389 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30390 | ||
30391 | * config/aarch64/aarch64-protos.h | |
30392 | (sve_vec_cost::scatter_store_elt_cost): New member variable. | |
30393 | * config/aarch64/aarch64.c (generic_sve_vector_cost): Update | |
30394 | accordingly, taking the cost from the cost of a scalar_store. | |
30395 | (a64fx_sve_vector_cost): Likewise. | |
30396 | (aarch64_detect_vector_stmt_subtype): Detect scatter stores. | |
30397 | ||
30398 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30399 | ||
30400 | * config/aarch64/aarch64-protos.h | |
30401 | (simd_vec_cost::store_elt_extra_cost): New member variable. | |
30402 | * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update | |
30403 | accordingly, using the vec_to_scalar cost for the new field. | |
30404 | (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. | |
30405 | (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. | |
30406 | (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. | |
30407 | (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) | |
30408 | (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) | |
30409 | (thunderx3t110_advsimd_vector_cost): Likewise. | |
30410 | (aarch64_detect_vector_stmt_subtype): Detect single-element stores. | |
30411 | ||
30412 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30413 | ||
30414 | * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost) | |
30415 | (simd_vec_cost::ld3_st3_permute_cost): New member variables. | |
30416 | (simd_vec_cost::ld4_st4_permute_cost): Likewise. | |
30417 | * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update | |
30418 | accordingly, using zero for the new costs. | |
30419 | (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. | |
30420 | (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. | |
30421 | (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. | |
30422 | (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) | |
30423 | (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) | |
30424 | (thunderx3t110_advsimd_vector_cost): Likewise. | |
30425 | (aarch64_ld234_st234_vectors): New function. | |
30426 | (aarch64_adjust_stmt_cost): Likewise. | |
30427 | (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using | |
30428 | the new vector costs. | |
30429 | ||
30430 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30431 | ||
30432 | * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a | |
30433 | derived class of simd_vec_cost. Add information about CLAST[AB] | |
30434 | and FADDA instructions. | |
30435 | * config/aarch64/aarch64.c (generic_sve_vector_cost): Update | |
30436 | accordingly, using the vec_to_scalar costs for the new fields. | |
30437 | (a64fx_sve_vector_cost): Likewise. | |
30438 | (aarch64_reduc_type): New function. | |
30439 | (aarch64_sve_in_loop_reduction_latency): Likewise. | |
30440 | (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter. | |
30441 | Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions | |
30442 | that occur in the loop body. | |
30443 | (aarch64_add_stmt_cost): Update call accordingly. | |
30444 | ||
30445 | 2021-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
30446 | ||
30447 | * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs): | |
30448 | New tuning flag. | |
30449 | * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments | |
30450 | above the fields rather than to the right. | |
30451 | (simd_vec_cost::reduc_i8_cost): New member variable. | |
30452 | (simd_vec_cost::reduc_i16_cost): Likewise. | |
30453 | (simd_vec_cost::reduc_i32_cost): Likewise. | |
30454 | (simd_vec_cost::reduc_i64_cost): Likewise. | |
30455 | (simd_vec_cost::reduc_f16_cost): Likewise. | |
30456 | (simd_vec_cost::reduc_f32_cost): Likewise. | |
30457 | (simd_vec_cost::reduc_f64_cost): Likewise. | |
30458 | * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update | |
30459 | accordingly, using the vec_to_scalar_cost for the new fields. | |
30460 | (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. | |
30461 | (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. | |
30462 | (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. | |
30463 | (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) | |
30464 | (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) | |
30465 | (thunderx3t110_advsimd_vector_cost): Likewise. | |
30466 | (aarch64_use_new_vector_costs_p): New function. | |
30467 | (aarch64_simd_vec_costs): New function, split out from... | |
30468 | (aarch64_builtin_vectorization_cost): ...here. | |
30469 | (aarch64_is_reduction): New function. | |
30470 | (aarch64_detect_vector_stmt_subtype): Likewise. | |
30471 | (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if | |
30472 | using the new vector costs. | |
30473 | ||
30474 | 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
30475 | ||
30476 | PR ipa/99466 | |
30477 | * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak | |
30478 | TLS declarations as public. | |
30479 | ||
30480 | 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
30481 | ||
30482 | * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define. | |
30483 | * config/arm/arm-d.c (IN_TARGET_CODE): Likewise. | |
30484 | * config/i386/i386-d.c (IN_TARGET_CODE): Likewise. | |
30485 | * config/mips/mips-d.c (IN_TARGET_CODE): Likewise. | |
30486 | * config/pa/pa-d.c (IN_TARGET_CODE): Likewise. | |
30487 | * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise. | |
30488 | * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise. | |
30489 | * config/s390/s390-d.c (IN_TARGET_CODE): Likewise. | |
30490 | * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise. | |
30491 | ||
30492 | 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
30493 | ||
30494 | PR d/91595 | |
30495 | * config.gcc (*-*-cygwin*): Add winnt-d.o | |
30496 | (*-*-mingw*): Likewise. | |
30497 | * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro. | |
30498 | * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise. | |
30499 | * config/i386/t-cygming: Add winnt-d.o. | |
30500 | * config/i386/winnt-d.c: New file. | |
30501 | ||
30502 | 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
30503 | ||
30504 | * config/freebsd-d.c: Include memmodel.h. | |
30505 | ||
30506 | 2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
30507 | ||
30508 | PR d/99691 | |
30509 | * config.gcc (*-*-openbsd*): Add openbsd-d.o. | |
30510 | * config/t-openbsd: Add openbsd-d.o. | |
30511 | * config/openbsd-d.c: New file. | |
30512 | ||
30513 | 2021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
30514 | ||
30515 | PR tree-optimization/96974 | |
30516 | * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert | |
30517 | with graceful exit. | |
30518 | ||
30519 | 2021-03-25 H.J. Lu <hjl.tools@gmail.com> | |
30520 | ||
30521 | Revert: | |
30522 | 2021-03-25 H.J. Lu <hjl.tools@gmail.com> | |
30523 | ||
30524 | PR target/98209 | |
30525 | PR target/99744 | |
30526 | * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for | |
30527 | always_inline in system headers. | |
30528 | ||
30529 | 2021-03-25 Kewen Lin <linkw@linux.ibm.com> | |
30530 | ||
30531 | * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost. | |
30532 | ||
30533 | 2021-03-25 Jakub Jelinek <jakub@redhat.com> | |
30534 | ||
30535 | PR c++/99565 | |
30536 | * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD. | |
30537 | * fold-const.c (operand_compare::operand_equal_p): Don't compare | |
30538 | field offsets if OEP_ADDRESS_OF_SAME_FIELD. | |
30539 | ||
30540 | 2021-03-25 H.J. Lu <hjl.tools@gmail.com> | |
30541 | ||
30542 | PR target/98209 | |
30543 | PR target/99744 | |
30544 | * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for | |
30545 | always_inline in system headers. | |
30546 | ||
30547 | 2021-03-25 Richard Biener <rguenther@suse.de> | |
30548 | ||
30549 | PR tree-optimization/99746 | |
30550 | * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark | |
30551 | the scalar stmt as patterned. Instead set up required things | |
30552 | manually. | |
30553 | ||
30554 | 2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com> | |
30555 | ||
30556 | * config/rs6000/rs6000.c (power8_costs): Change l2 cache | |
30557 | from 256 to 512. | |
30558 | ||
30559 | 2021-03-24 Martin Liska <mliska@suse.cz> | |
30560 | ||
30561 | PR target/99753 | |
30562 | * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one | |
30563 | error. | |
30564 | * config/i386/i386-options.c (ix86_option_override_internal): | |
30565 | Add run-time assert. | |
30566 | ||
30567 | 2021-03-24 Martin Jambor <mjambor@suse.cz> | |
30568 | ||
30569 | PR ipa/99122 | |
30570 | * ipa-cp.c (initialize_node_lattices): Mark as bottom all | |
30571 | parameters with unknown type. | |
30572 | (ipacp_value_safe_for_type): New function. | |
30573 | (propagate_vals_across_arith_jfunc): Verify that the constant type | |
30574 | can be used for a type of the formal parameter. | |
30575 | (propagate_vals_across_ancestor): Likewise. | |
30576 | (propagate_scalar_across_jump_function): Likewise. Pass the type | |
30577 | also to propagate_vals_across_ancestor. | |
30578 | ||
30579 | 2021-03-24 Christophe Lyon <christophe.lyon@linaro.org> | |
30580 | ||
30581 | PR target/99727 | |
30582 | * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux | |
30583 | constraint. | |
30584 | (movmisalign<mode>_mve_load): Likewise. | |
30585 | ||
30586 | 2021-03-24 Jakub Jelinek <jakub@redhat.com> | |
30587 | ||
30588 | PR target/99724 | |
30589 | * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2, | |
30590 | movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT. | |
30591 | ||
30592 | 2021-03-24 Alexandre Oliva <oliva@adacore.com> | |
30593 | ||
30594 | * doc/sourcebuild.texi (sysconf): New effective target. | |
30595 | ||
30596 | 2021-03-24 Alexandre Oliva <oliva@adacore.com> | |
30597 | ||
30598 | * config/i386/predicates.md (reg_or_const_vec_operand): New. | |
30599 | * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for | |
30600 | the now *-prefixed insn_and_split, turn the splitter const vec | |
30601 | into an input for the insn, making it an ignored immediate for | |
30602 | non-split cases, and loaded into the scratch register | |
30603 | otherwise. | |
30604 | ||
30605 | 2021-03-23 Vladimir N. Makarov <vmakarov@redhat.com> | |
30606 | ||
30607 | PR target/99581 | |
30608 | * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty): | |
30609 | Use define_relaxed_memory_constraint for them. | |
30610 | ||
30611 | 2021-03-23 Iain Sandoe <iain@sandoe.co.uk> | |
30612 | ||
30613 | PR target/99733 | |
30614 | * config/host-darwin.c (darwin_gt_pch_use_address): Add a | |
30615 | colon to the diagnostic message. | |
30616 | ||
30617 | 2021-03-23 Ilya Leoshkevich <iii@linux.ibm.com> | |
30618 | ||
30619 | * fwprop.c (fwprop_propagation::fwprop_propagation): Look at | |
30620 | set_info's uses. | |
30621 | (try_fwprop_subst_note): Use set_info instead of insn_info. | |
30622 | (try_fwprop_subst_pattern): Likewise. | |
30623 | (try_fwprop_subst_notes): Likewise. | |
30624 | (try_fwprop_subst): Likewise. | |
30625 | (forward_propagate_subreg): Likewise. | |
30626 | (forward_propagate_and_simplify): Likewise. | |
30627 | (forward_propagate_into): Likewise. | |
30628 | * rtl-ssa/accesses.h (set_info::single_nondebug_use) New | |
30629 | method. | |
30630 | (set_info::single_nondebug_insn_use): Likewise. | |
30631 | (set_info::single_phi_use): Likewise. | |
30632 | * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New | |
30633 | method. | |
30634 | (set_info::single_nondebug_insn_use): Likewise. | |
30635 | (set_info::single_phi_use): Likewise. | |
30636 | ||
30637 | 2021-03-23 Christophe Lyon <christophe.lyon@linaro.org> | |
30638 | ||
30639 | * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document. | |
30640 | ||
30641 | 2021-03-23 Jakub Jelinek <jakub@redhat.com> | |
30642 | ||
30643 | PR target/99540 | |
30644 | * config/aarch64/aarch64.c (aarch64_add_offset): Tell | |
30645 | expand_mult to perform an unsigned rather than a signed | |
30646 | multiplication. | |
30647 | ||
30648 | 2021-03-23 H.J. Lu <hjl.tools@gmail.com> | |
30649 | ||
30650 | PR target/99704 | |
30651 | * config/i386/cpuid.h (__cpuid): Add __volatile__. | |
30652 | (__cpuid_count): Likewise. | |
30653 | ||
30654 | 2021-03-23 Richard Biener <rguenther@suse.de> | |
30655 | ||
30656 | PR tree-optimization/99721 | |
30657 | * tree-vect-slp.c (vect_slp_analyze_node_operations): | |
30658 | Make sure we can schedule the node. | |
30659 | ||
30660 | 2021-03-23 Marcus Comstedt <marcus@mc.pp.se> | |
30661 | ||
30662 | * config/riscv/riscv.c (riscv_subword): Take endianness into | |
30663 | account when calculating the byte offset. | |
30664 | ||
30665 | 2021-03-23 Marcus Comstedt <marcus@mc.pp.se> | |
30666 | ||
30667 | * config/riscv/predicates.md (subreg_lowpart_operator): New predicate | |
30668 | * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2) | |
30669 | (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask) | |
30670 | (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1) | |
30671 | (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use | |
30672 | new predicate "subreg_lowpart_operator" | |
30673 | ||
30674 | 2021-03-23 Marcus Comstedt <marcus@mc.pp.se> | |
30675 | ||
30676 | * config/riscv/riscv.c (riscv_swap_instruction): New function | |
30677 | to byteswap an SImode rtx containing an instruction. | |
30678 | (riscv_trampoline_init): Byteswap the generated instructions | |
30679 | when needed. | |
30680 | ||
30681 | 2021-03-23 Marcus Comstedt <marcus@mc.pp.se> | |
30682 | ||
30683 | * common/config/riscv/riscv-common.c | |
30684 | (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness. | |
30685 | * config.gcc (riscv32be-*, riscv64be-*): Set | |
30686 | TARGET_BIG_ENDIAN_DEFAULT to 1. | |
30687 | * config/riscv/elf.h (LINK_SPEC): Change -melf* value | |
30688 | depending on default endianness. | |
30689 | * config/riscv/freebsd.h (LINK_SPEC): Likewise. | |
30690 | * config/riscv/linux.h (LINK_SPEC): Likewise. | |
30691 | * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set | |
30692 | default endianness. | |
30693 | * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro. | |
30694 | ||
30695 | 2021-03-23 Marcus Comstedt <marcus@mc.pp.se> | |
30696 | ||
30697 | * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag. | |
30698 | * config/riscv/freebsd.h (LINK_SPEC): Likewise. | |
30699 | * config/riscv/linux.h (LINK_SPEC): Likewise. | |
30700 | * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and | |
30701 | -mlittle-endian. | |
30702 | (BYTES_BIG_ENDIAN): Handle big endian. | |
30703 | (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN. | |
30704 | * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New | |
30705 | options. | |
30706 | * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document. | |
30707 | ||
30708 | 2021-03-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
30709 | ||
30710 | * regcprop.c (find_oldest_value_reg): Ask target whether | |
30711 | different mode is fine for replacement register. | |
30712 | ||
30713 | 2021-03-23 Aldy Hernandez <aldyh@redhat.com> | |
30714 | ||
30715 | PR tree-optimization/99296 | |
30716 | * value-range.cc (irange::irange_set_1bit_anti_range): New. | |
30717 | (irange::irange_set_anti_range): Call irange_set_1bit_anti_range | |
30718 | * value-range.h (irange::irange_set_1bit_anti_range): New. | |
30719 | ||
30720 | 2021-03-22 Vladimir N. Makarov <vmakarov@redhat.com> | |
30721 | ||
30722 | PR target/99581 | |
30723 | * config/aarch64/constraints.md (UtQ): Use | |
30724 | define_relaxed_memory_constraint for it. | |
30725 | * doc/md.texi (define_relaxed_memory_constraint): Describe it. | |
30726 | * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. | |
30727 | * genpreds.c (constraint_data): Add bitfield is_relaxed_memory. | |
30728 | (have_relaxed_memory_constraints): New static var. | |
30729 | (relaxed_memory_start, relaxed_memory_end): Ditto. | |
30730 | (add_constraint): Add arg is_relaxed_memory. Check name for | |
30731 | relaxed memory. Set up is_relaxed_memory in constraint_data and | |
30732 | have_relaxed_memory_constraints. Adjust calls. | |
30733 | (choose_enum_order): Process relaxed memory. | |
30734 | (write_tm_preds_h): Ditto. | |
30735 | (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. | |
30736 | * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. | |
30737 | * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY. | |
30738 | * ira-lives.c (single_reg_class): Use | |
30739 | insn_extra_relaxed_memory_constraint. | |
30740 | * ira.c (ira_setup_alts): CT_RELAXED_MEMORY. | |
30741 | * lra-constraints.c (valid_address_p): Use | |
30742 | insn_extra_relaxed_memory_constraint instead of other memory | |
30743 | constraints. | |
30744 | (process_alt_operands): Process CT_RELAXED_MEMORY. | |
30745 | (curr_insn_transform): Use insn_extra_relaxed_memory_constraint. | |
30746 | * recog.c (asm_operand_ok, preprocess_constraints): Process | |
30747 | CT_RELAXED_MEMORY. | |
30748 | * reload.c (find_reloads): Ditto. | |
30749 | * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New. | |
30750 | * stmt.c (parse_input_constraint): Use | |
30751 | insn_extra_relaxed_memory_constraint. | |
30752 | ||
30753 | 2021-03-22 Segher Boessenkool <segher@kernel.crashing.org> | |
30754 | ||
30755 | PR target/97926 | |
30756 | * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if | |
30757 | there are no NaNs. | |
30758 | ||
30759 | 2021-03-22 Alex Coplan <alex.coplan@arm.com> | |
30760 | ||
30761 | PR target/97252 | |
30762 | * config/arm/arm-protos.h (neon_make_constant): Add generate | |
30763 | argument to guard emitting insns, default to true. | |
30764 | * config/arm/arm.c (arm_legitimate_constant_p_1): Reject | |
30765 | CONST_VECTORs which neon_make_constant can't handle. | |
30766 | (neon_vdup_constant): Add generate argument, avoid emitting | |
30767 | insns if it's not set. | |
30768 | (neon_make_constant): Plumb new generate argument through. | |
30769 | * config/arm/constraints.md (Ui): New. Use it... | |
30770 | * config/arm/mve.md (*mve_mov<mode>): ... here. | |
30771 | * config/arm/vec-common.md (movv8hf): Use neon_make_constant to | |
30772 | synthesize constants. | |
30773 | ||
30774 | 2021-03-22 Richard Biener <rguenther@suse.de> | |
30775 | ||
30776 | * debug.h: Add deprecation warning. | |
30777 | ||
30778 | 2021-03-22 Richard Biener <rguenther@suse.de> | |
30779 | ||
30780 | PR tree-optimization/99694 | |
30781 | * tree-ssa-sccvn.c (visit_phi): Ignore edges with the | |
30782 | PHI result. | |
30783 | ||
30784 | 2021-03-22 Kito Cheng <kito.cheng@sifive.com> | |
30785 | ||
30786 | PR target/99702 | |
30787 | * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value | |
30788 | after type checking. | |
30789 | ||
30790 | 2021-03-22 Jakub Jelinek <jakub@redhat.com> | |
30791 | ||
30792 | PR debug/99562 | |
30793 | PR debug/66728 | |
30794 | * dwarf2out.c (get_full_len): Use get_precision rather than | |
30795 | min_precision. | |
30796 | (add_const_value_attribute): Make sure add_AT_wide argument has | |
30797 | precision prec rather than some very wide one. | |
30798 | ||
30799 | 2021-03-22 Kewen Lin <linkw@linux.ibm.com> | |
30800 | ||
30801 | * config/rs6000/rs6000.md (*rotldi3_insert_sf, | |
30802 | *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax, | |
30803 | floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx, | |
30804 | floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal, | |
30805 | *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx, | |
30806 | fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx, | |
30807 | *round32<mode>2_fprs, *roundu32<mode>2_fprs, | |
30808 | *fix_trunc<mode>si2_internal): Fix empty split condition. | |
30809 | * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>, | |
30810 | vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf, | |
30811 | *vsx_reduc_<VEC_reduc_name>_v2df_scalar, | |
30812 | *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise. | |
30813 | ||
30814 | 2021-03-22 Xionghu Luo <luoxhu@linux.ibm.com> | |
30815 | ||
30816 | PR target/98914 | |
30817 | * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): | |
30818 | Convert idx to DImode. | |
30819 | (rs6000_expand_vector_set_var_p8): Likewise. | |
30820 | ||
30821 | 2021-03-21 Jakub Jelinek <jakub@redhat.com> | |
30822 | ||
30823 | PR debug/99388 | |
30824 | * dwarf2out.c (insert_float): Change return type from void to | |
30825 | unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size. | |
30826 | (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): | |
30827 | Adjust callers. | |
30828 | ||
30829 | 2021-03-20 H.J. Lu <hjl.tools@gmail.com> | |
30830 | ||
30831 | PR target/99679 | |
30832 | * config/i386/i386.c (construct_container): Check cfun != NULL | |
30833 | before accessing silent_p. | |
30834 | ||
30835 | 2021-03-20 Ahamed Husni <ahamedhusni73@gmail.com> | |
30836 | ||
30837 | * asan.c: Fix typos in comments. | |
30838 | ||
30839 | 2021-03-20 Vladimir N. Makarov <vmakarov@redhat.com> | |
30840 | ||
30841 | PR rtl-optimization/99680 | |
30842 | * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers. | |
30843 | (process_address_1): Check empty constraint before using | |
30844 | CONSTRAINT_LEN. | |
30845 | ||
30846 | 2021-03-19 Pat Haugen <pthaugen@linux.ibm.com> | |
30847 | ||
30848 | * config/rs6000/rs6000.c (power10_cost): New. | |
30849 | (rs6000_option_override_internal): Set Power10 costs. | |
30850 | (rs6000_issue_rate): Set Power10 issue rate. | |
30851 | * config/rs6000/power10.md: Rewrite for Power10. | |
30852 | ||
30853 | 2021-03-19 Vladimir N. Makarov <vmakarov@redhat.com> | |
30854 | ||
30855 | PR target/99663 | |
30856 | * lra-constraints.c (process_address_1): Don't use unknown | |
30857 | constraint for address constraint. | |
30858 | ||
30859 | 2021-03-19 Iain Sandoe <iain@sandoe.co.uk> | |
30860 | ||
30861 | PR target/99661 | |
30862 | * config.gcc (powerpc-*-darwin8): Delete the reference to | |
30863 | the now removed darwin8.h. | |
30864 | ||
30865 | 2021-03-19 Olivier Hainque <hainque@adacore.com> | |
30866 | ||
30867 | PR target/99660 | |
30868 | * config/vxworksae.h (VX_CPU_PREFIX): Define. | |
30869 | ||
30870 | 2021-03-19 John David Anglin <danglin@gcc.gnu.org> | |
30871 | ||
30872 | * config/pa/pa.c (import_milli): Use memcpy instead of strncpy. | |
30873 | ||
30874 | 2021-03-19 Tamar Christina <tamar.christina@arm.com> | |
30875 | ||
30876 | PR tree-optimization/99656 | |
30877 | * tree-vect-slp-patterns.c (linear_loads_p, | |
30878 | complex_add_pattern::matches, is_eq_or_top, | |
30879 | vect_validate_multiplication, complex_mul_pattern::matches, | |
30880 | complex_fms_pattern::matches): Remove complex_perm_kinds_t. | |
30881 | * tree-vectorizer.h: (complex_load_perm_t): Removed. | |
30882 | (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of | |
30883 | complex_load_perm_t. | |
30884 | ||
30885 | 2021-03-19 H.J. Lu <hjl.tools@gmail.com> | |
30886 | ||
30887 | PR target/99652 | |
30888 | * config/i386/i386-options.c (ix86_init_machine_status): Set | |
30889 | silent_p to true. | |
30890 | * config/i386/i386.c (init_cumulative_args): Set silent_p to | |
30891 | false. | |
30892 | (construct_container): Return early for return and argument | |
30893 | errors if silent_p is true. | |
30894 | * config/i386/i386.h (machine_function): Add silent_p. | |
30895 | ||
30896 | 2021-03-19 Jakub Jelinek <jakub@redhat.com> | |
30897 | ||
30898 | PR target/99593 | |
30899 | * config/arm/constraints.md (Ds): New constraint. | |
30900 | * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds | |
30901 | constraint instead of w,Dm. | |
30902 | ||
30903 | 2021-03-19 Andrew Stubbs <ams@codesourcery.com> | |
30904 | ||
30905 | * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes | |
30906 | in error message. | |
30907 | ||
30908 | 2021-03-19 Eric Botcazou <ebotcazou@adacore.com> | |
30909 | ||
30910 | PR middle-end/99641 | |
30911 | * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an | |
30912 | array type, do the computation of the current position in sizetype. | |
30913 | ||
30914 | 2021-03-18 Vladimir N. Makarov <vmakarov@redhat.com> | |
30915 | ||
30916 | PR target/99422 | |
30917 | * lra-constraints.c (process_address_1): Use lookup_constraint | |
30918 | only for a single constraint. | |
30919 | ||
30920 | 2021-03-18 Martin Sebor <msebor@redhat.com> | |
30921 | ||
30922 | PR middle-end/99502 | |
30923 | * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename... | |
30924 | (inbounds_memaccess_p): ...to this. Check the ending offset of | |
30925 | the accessed member. | |
30926 | ||
30927 | 2021-03-18 Andrew Stubbs <ams@codesourcery.com> | |
30928 | ||
30929 | * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and | |
30930 | %> quote markers to error messages. | |
30931 | (gcn_goacc_validate_dims): Likewise. | |
30932 | (gcn_conditional_register_usage): Remove exclaimation mark from error | |
30933 | message. | |
30934 | (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized. | |
30935 | ||
30936 | 2021-03-18 Jan Hubicka <hubicka@ucw.cz> | |
30937 | ||
30938 | * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of | |
30939 | integer divides1. | |
30940 | ||
30941 | 2021-03-18 Sinan Lin <sinan@isrc.iscas.ac.cn> | |
30942 | Kito Cheng <kito.cheng@sifive.com> | |
30943 | ||
30944 | * config/riscv/riscv.c (riscv_block_move_straight): Change type | |
30945 | to unsigned HOST_WIDE_INT for parameter and local variable with | |
30946 | HOST_WIDE_INT type. | |
30947 | (riscv_adjust_block_mem): Ditto. | |
30948 | (riscv_block_move_loop): Ditto. | |
30949 | (riscv_expand_block_move): Ditto. | |
30950 | ||
30951 | 2021-03-18 Nick Clifton <nickc@redhat.com> | |
30952 | ||
30953 | * config/v850/v850.c (construct_restore_jr): Increase static | |
30954 | buffer size. | |
30955 | (construct_save_jarl): Likewise. | |
30956 | * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define. | |
30957 | ||
30958 | 2021-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30959 | ||
30960 | * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define. | |
30961 | (aarch64_override_options_internal): Use it. | |
30962 | (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to | |
30963 | tune_flags. | |
30964 | ||
30965 | 2021-03-17 Sandra Loosemore <sandra@codesourcery.com> | |
30966 | ||
30967 | * config/nios2/nios2.c (nios2_custom_check_insns): Clean up | |
30968 | error message format issues. | |
30969 | (nios2_option_override): Likewise. | |
30970 | (nios2_expand_fpu_builtin): Likewise. | |
30971 | (nios2_init_custom_builtins): Adjust to avoid bogus strncpy | |
30972 | truncation warning. | |
30973 | (nios2_expand_custom_builtin): More error message format fixes. | |
30974 | (nios2_expand_rdwrctl_builtin): Likewise. | |
30975 | (nios2_expand_rdprs_builtin): Likewise. | |
30976 | (nios2_expand_eni_builtin): Likewise. | |
30977 | (nios2_expand_builtin): Likewise. | |
30978 | (nios2_register_custom_code): Likewise. | |
30979 | (nios2_valid_target_attribute_rec): Likewise. | |
30980 | (nios2_add_insn_asm): Fix uninitialized variable warning. | |
30981 | ||
30982 | 2021-03-17 Jan Hubicka <jh@suse.cz> | |
30983 | ||
30984 | * config/i386/x86-tune-costs.h (struct processor_costs): Update costs | |
30985 | of gather to match reality. | |
30986 | * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3. | |
30987 | ||
30988 | 2021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30989 | ||
30990 | * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ | |
30991 | to compare against CC_REG rather than NE. | |
30992 | ||
30993 | 2021-03-17 H.J. Lu <hjl.tools@gmail.com> | |
30994 | ||
30995 | PR target/99504 | |
30996 | * config/i386/i386.c (ix86_force_load_from_GOT_p): Support | |
30997 | inline assembly statements. | |
30998 | (ix86_print_operand): Update 'P' handling for -fno-plt. | |
30999 | ||
31000 | 2021-03-17 Tamar Christina <tamar.christina@arm.com> | |
31001 | ||
31002 | PR target/99542 | |
31003 | * config/aarch64/aarch64.c | |
31004 | (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var. | |
31005 | ||
31006 | 2021-03-16 Segher Boessenkool <segher@kernel.crashing.org> | |
31007 | ||
31008 | PR target/98092 | |
31009 | * config/rs6000/predicates.md (branch_comparison_operator): Allow | |
31010 | ordered and unordered for CCFPmode, if flag_finite_math_only. | |
31011 | ||
31012 | 2021-03-16 Jakub Jelinek <jakub@redhat.com> | |
31013 | ||
31014 | PR target/99600 | |
31015 | * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT | |
31016 | rather than ASHIFT. | |
31017 | * config/i386/i386.md (mult by 1248 into ashift): New splitter. | |
31018 | ||
31019 | 2021-03-16 Martin Liska <mliska@suse.cz> | |
31020 | ||
31021 | PR target/99592 | |
31022 | * optc-save-gen.awk: Add flag_ipa_ra to exceptions for | |
31023 | cl_optimization_compare function. | |
31024 | ||
31025 | 2021-03-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
31026 | ||
31027 | * config/s390/s390.c (f_constraint_p): Treat "fv" constraints | |
31028 | as "v". | |
31029 | ||
31030 | 2021-03-16 Jakub Jelinek <jakub@redhat.com> | |
31031 | ||
31032 | PR target/99563 | |
31033 | * config/i386/i386.h (struct machine_function): Add | |
31034 | has_explicit_vzeroupper bitfield. | |
31035 | * config/i386/i386-expand.c (ix86_expand_builtin): Set | |
31036 | cfun->machine->has_explicit_vzeroupper when expanding | |
31037 | IX86_BUILTIN_VZEROUPPER. | |
31038 | * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper): | |
31039 | Do the mode switching only when TARGET_VZEROUPPER, expensive | |
31040 | optimizations turned on and not optimizing for size. | |
31041 | (pass_insert_vzeroupper::gate): Enable even when | |
31042 | cfun->machine->has_explicit_vzeroupper is set. | |
31043 | ||
31044 | 2021-03-16 Jakub Jelinek <jakub@redhat.com> | |
31045 | ||
31046 | PR target/99542 | |
31047 | * config/aarch64/aarch64.c | |
31048 | (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function | |
31049 | definition, walk TYPE_ARG_TYPES list if non-NULL for argument types | |
31050 | instead of DECL_ARGUMENTS. Ignore types for uniform arguments. | |
31051 | ||
31052 | 2021-03-15 Richard Biener <rguenther@suse.de> | |
31053 | ||
31054 | PR tree-optimization/98834 | |
31055 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing | |
31056 | subsetting by truncating the access size. | |
31057 | ||
31058 | 2021-03-15 Jan Hubicka <hubicka@ucw.cz> | |
31059 | ||
31060 | * config/i386/i386-options.c (processor_cost_table): Add znver3_cost. | |
31061 | * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy | |
31062 | of znver2_cost. | |
31063 | ||
31064 | 2021-03-15 Martin Liska <mliska@suse.cz> | |
31065 | ||
31066 | * spellcheck.c: Add missing comma in initialization. | |
31067 | ||
31068 | 2021-03-14 Uroš Bizjak <ubizjak@gmail.com> | |
31069 | ||
31070 | * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with | |
31071 | alternative 2 and alternative 1 with alternative 3 using | |
31072 | YW register constraint. | |
31073 | (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives | |
31074 | using YW register constraint. | |
31075 | (*vec_extractv16qi_zext): Ditto. | |
31076 | (*vec_extractv4si): Merge alternatives 4 and 5 | |
31077 | using Yw register constraint. | |
31078 | (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3. | |
31079 | ||
31080 | 2021-03-13 Martin Sebor <msebor@redhat.com> | |
31081 | ||
31082 | PR tree-optimization/99489 | |
31083 | * builtins.c (gimple_call_alloc_size): Fail gracefully when argument | |
31084 | is not a call statement. | |
31085 | ||
31086 | 2021-03-13 Jakub Jelinek <jakub@redhat.com> | |
31087 | ||
31088 | PR tree-optimization/99544 | |
31089 | * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify | |
31090 | if for vector types multiplication can't be done in type's mode. | |
31091 | ||
31092 | 2021-03-12 Eric Botcazou <ebotcazou@adacore.com> | |
31093 | ||
31094 | PR target/99422 | |
31095 | * config/sparc/constraints.md (w): Rename to... | |
31096 | (W): ... this and ditch previous implementation. | |
31097 | * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m. | |
31098 | (*movdf_insn_sp64): Likewise. | |
31099 | (*mov<VM64:mode>_insn_sp64): Likewise. | |
31100 | * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace | |
31101 | w with W. | |
31102 | (atomic_compare_and_swap_leon3_1): Likewise. | |
31103 | (*atomic_compare_and_swapdi_v8plus): Likewise. | |
31104 | * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on | |
31105 | architecture and add missing address validity check during LRA. | |
31106 | ||
31107 | 2021-03-12 Tobias Burnus <tobias@codesourcery.com> | |
31108 | ||
31109 | PR fortran/98858 | |
31110 | * gimplify.c (omp_add_variable): Handle NULL_TREE as size | |
31111 | occuring for assumed-size arrays in use_device_{ptr,addr}. | |
31112 | ||
31113 | 2021-03-12 Jakub Jelinek <jakub@redhat.com> | |
31114 | ||
31115 | PR target/99321 | |
31116 | * config/i386/constraints.md (YW): New internal constraint. | |
31117 | * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases. | |
31118 | (*<sse2_avx2>_<insn><mode>3<mask_name>, | |
31119 | *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2, | |
31120 | *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in | |
31121 | constraints. | |
31122 | (<sse2_avx2>_psadbw): Use YW instead of v in constraints. | |
31123 | (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3, | |
31124 | avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives | |
31125 | into one, use Yw instead of former x,v. | |
31126 | (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of | |
31127 | the last alternative. | |
31128 | (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>, | |
31129 | <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>, | |
31130 | *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>, | |
31131 | <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives | |
31132 | into one, use <v_Yw> instead of former x,v. | |
31133 | (avx2_interleave_highv32qi<mask_name>, | |
31134 | vec_interleave_highv16qi<mask_name>): Use Yw instead of v in | |
31135 | constraints. Add && <mask_avx512bw_condition> to condition. | |
31136 | (avx2_interleave_lowv32qi<mask_name>, | |
31137 | vec_interleave_lowv16qi<mask_name>, | |
31138 | avx2_interleave_highv16hi<mask_name>, | |
31139 | vec_interleave_highv8hi<mask_name>, | |
31140 | avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>, | |
31141 | avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>, | |
31142 | avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>, | |
31143 | avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>, | |
31144 | *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use | |
31145 | Yw instead of v in constraints. | |
31146 | * config/i386/mmx.md (Yv_Yw): New define_mode_attr. | |
31147 | (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw> | |
31148 | instead of Yv in constraints. | |
31149 | (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart, | |
31150 | *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3, | |
31151 | *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw, | |
31152 | mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd, | |
31153 | *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in | |
31154 | constraints. | |
31155 | (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb, | |
31156 | *mmx_pextrb_zext): Use YW instead of Yv in constraints. | |
31157 | (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints. | |
31158 | (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into | |
31159 | two, one with just x, another isa avx512vl with v. | |
31160 | ||
31161 | 2021-03-12 Martin Liska <mliska@suse.cz> | |
31162 | ||
31163 | * doc/invoke.texi: Add missing param documentation. | |
31164 | ||
31165 | 2021-03-11 David Malcolm <dmalcolm@redhat.com> | |
31166 | ||
31167 | PR analyzer/96374 | |
31168 | * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and | |
31169 | analyzer/trimmed-graph.o. | |
31170 | * doc/analyzer.texi (Analyzer Paths): Rewrite description of | |
31171 | feasibility checking to reflect new implementation. | |
31172 | * doc/invoke.texi (-fdump-analyzer-feasibility): Document new | |
31173 | option. | |
31174 | * shortest-paths.h (shortest_paths::get_shortest_distance): New. | |
31175 | ||
31176 | 2021-03-11 David Malcolm <dmalcolm@redhat.com> | |
31177 | ||
31178 | * digraph.cc (selftest::test_shortest_paths): Update | |
31179 | shortest_paths init for new param. Add test of | |
31180 | SPS_TO_GIVEN_TARGET. | |
31181 | * shortest-paths.h (enum shortest_path_sense): New. | |
31182 | (shortest_paths::shortest_paths): Add "sense" param. | |
31183 | Update for renamings. Generalize to use "sense" param. | |
31184 | (shortest_paths::get_shortest_path): Rename param. | |
31185 | (shortest_paths::m_sense): New field. | |
31186 | (shortest_paths::m_prev): Rename... | |
31187 | (shortest_paths::m_best_edge): ...to this. | |
31188 | (shortest_paths::get_shortest_path): Update for renamings. | |
31189 | Conditionalize flipping of path on sense of traversal. | |
31190 | ||
31191 | 2021-03-11 David Malcolm <dmalcolm@redhat.com> | |
31192 | ||
31193 | * digraph.cc (selftest::test_shortest_paths): Add test coverage | |
31194 | for paths from B and C. | |
31195 | * shortest-paths.h (shortest_paths::shortest_paths): Handle | |
31196 | unreachable nodes, rather than asserting. | |
31197 | ||
31198 | 2021-03-11 David Edelsohn <dje.gcc@gmail.com> | |
31199 | ||
31200 | PR target/99094 | |
31201 | * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create | |
31202 | xcoff_tbss_section_name. | |
31203 | * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm. | |
31204 | * xcoffout.c (xcoff_tbss_section_name): Delete. | |
31205 | * xcoffout.h (xcoff_tbss_section_name): Delete. | |
31206 | ||
31207 | 2021-03-11 Richard Biener <rguenther@suse.de> | |
31208 | ||
31209 | PR tree-optimization/99523 | |
31210 | * tree-cfg.c (dump_function_to_file): Dump SSA names | |
31211 | w/o identifier to the decls section as well, not only those | |
31212 | without a VAR_DECL. | |
31213 | ||
31214 | 2021-03-11 Jakub Jelinek <jakub@redhat.com> | |
31215 | ||
31216 | PR ipa/99517 | |
31217 | * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal | |
31218 | function calls with lhs fail if the lhs don't have compatible types. | |
31219 | ||
31220 | 2021-03-11 Hans-Peter Nilsson <hp@axis.com> | |
31221 | ||
31222 | * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define. | |
31223 | Change FRAME_POINTER_REGNUM to correspond to a new faked | |
31224 | register faked_fp, part of GENNONACR_REGS like faked_ap. | |
31225 | (CRIS_FAKED_REGS_CONTENTS): New helper macro. | |
31226 | (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS): | |
31227 | (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P) | |
31228 | (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly. | |
31229 | * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked | |
31230 | register. | |
31231 | (CRIS_REAL_FP_REGNUM): New constant. | |
31232 | * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check | |
31233 | for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. | |
31234 | (cris_initial_elimination_offset): Handle elimination changes | |
31235 | to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM | |
31236 | and add one from FRAME_POINTER_REGNUM to | |
31237 | HARD_FRAME_POINTER_REGNUM. | |
31238 | (cris_expand_prologue, cris_expand_epilogue): Emit code for | |
31239 | hard_frame_pointer_rtx instead of frame_pointer_rtx. | |
31240 | ||
31241 | 2021-03-10 David Edelsohn <dje.gcc@gmail.com> | |
31242 | ||
31243 | PR target/99492 | |
31244 | * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode. | |
31245 | * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same. | |
31246 | ||
31247 | 2021-03-10 Vladimir N. Makarov <vmakarov@redhat.com> | |
31248 | ||
31249 | PR target/99422 | |
31250 | * lra-constraints.c (process_address_1): Don't check unknown | |
31251 | constraint, use X for empty constraint. | |
31252 | ||
31253 | 2021-03-10 Alex Coplan <alex.coplan@arm.com> | |
31254 | ||
31255 | * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate): | |
31256 | Fix typo in comment describing "is_ha" argument. | |
31257 | ||
31258 | 2021-03-10 John David Anglin <danglin@gcc.gnu.org> | |
31259 | ||
31260 | * doc/sourcebuild.texi: Document LRA target selector. | |
31261 | ||
31262 | 2021-03-10 David Malcolm <dmalcolm@redhat.com> | |
31263 | ||
31264 | * doc/ux.texi: Add subsection contrasting interactive versus | |
31265 | batch usage of GCC. | |
31266 | ||
31267 | 2021-03-10 Joel Hutton <joel.hutton@arm.com> | |
31268 | ||
31269 | PR target/99102 | |
31270 | * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask | |
31271 | check condition. | |
31272 | (vectorizable_load): Fix gather load mask check condition. | |
31273 | ||
31274 | 2021-03-10 Richard Biener <rguenther@suse.de> | |
31275 | ||
31276 | PR tree-optimization/99510 | |
31277 | * tree.c (check_aligned_type): Check that the candidate | |
31278 | has TYPE_USER_ALIGN set instead of matching with the | |
31279 | original type. | |
31280 | ||
31281 | 2021-03-10 Eric Botcazou <ebotcazou@adacore.com> | |
31282 | ||
31283 | * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for | |
31284 | float and vector integer modes only if the mode is not larger. | |
31285 | ||
31286 | 2021-03-10 Hans-Peter Nilsson <hp@axis.com> | |
31287 | ||
31288 | * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define. | |
31289 | ||
31290 | 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com> | |
31291 | ||
31292 | * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital | |
31293 | constraints > 9. | |
31294 | * ira-lives.c (single_reg_class): Ditto. | |
31295 | ||
31296 | 2021-03-09 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
31297 | ||
31298 | * config.gcc (aarch64-*-rtems*): Include general rtems.h after | |
31299 | the architecture-specific rtems.h. | |
31300 | (aarch64-*-rtems*): Likewise. | |
31301 | (arm*-*-rtems*): Likewise. | |
31302 | (epiphany-*-rtems*): Likewise. | |
31303 | (riscv*-*-rtems*): Likewise. | |
31304 | ||
31305 | 2021-03-09 Jakub Jelinek <jakub@redhat.com> | |
31306 | ||
31307 | PR tree-optimization/99305 | |
31308 | * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p | |
31309 | before integer_all_onesp instead of vice versa. | |
31310 | ||
31311 | 2021-03-09 Richard Earnshaw <rearnsha@arm.com> | |
31312 | ||
31313 | * common/config/arm/arm-common.c (arm_config_default): Change type | |
31314 | of 'i' to unsigned. | |
31315 | ||
31316 | 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com> | |
31317 | ||
31318 | PR target/99454 | |
31319 | * lra-constraints.c (process_address_1): Process constraint 'g' | |
31320 | separately and digital constraints containing more one digit. | |
31321 | ||
31322 | 2021-03-09 Nick Clifton <nickc@redhat.com> | |
31323 | ||
31324 | * config/rx/rx.h (DBX_DEBUGGING_INFO): Define. | |
31325 | (DWARF"_DEBUGGING_INFO): Define. | |
31326 | ||
31327 | 2021-03-09 Eric Botcazou <ebotcazou@adacore.com> | |
31328 | ||
31329 | PR c++/90448 | |
31330 | * calls.c (initialize_argument_information): When the argument | |
31331 | is passed by reference, do not make a copy in a thunk only if | |
31332 | the argument is already in memory. Remove redundant test for | |
31333 | the case of callee copy. | |
31334 | ||
31335 | 2021-03-09 Vladimir N. Makarov <vmakarov@redhat.com> | |
31336 | ||
31337 | PR target/99454 | |
31338 | * lra-constraints.c (process_address_1): Process 0..9 constraints | |
31339 | in process_address_1. | |
31340 | ||
31341 | 2021-03-09 Andreas Krebbel <krebbel@linux.ibm.com> | |
31342 | ||
31343 | * config/s390/s390.c (struct s390_processor processor_table): | |
31344 | Binutils name string must not be empty. | |
31345 | ||
31346 | 2021-03-09 Claudiu Zissulescu <claziss@synopsys.com> | |
31347 | ||
31348 | * config/arc/arc.c (arc_attr_type): Remove function. | |
31349 | ||
31350 | 2021-03-09 Martin Liska <mliska@suse.cz> | |
31351 | ||
31352 | PR target/99464 | |
31353 | * config/i386/i386-options.c (ix86_option_override_internal): | |
31354 | Set isa_flags for OPTS argument and not for the global | |
31355 | global_options. | |
31356 | ||
31357 | 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com> | |
31358 | ||
31359 | * config/rs6000/predicates.md (ds_form_mem_operand): Check | |
31360 | in correct code. | |
31361 | ||
31362 | 2021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com> | |
31363 | ||
31364 | PR target/99070 | |
31365 | * config/rs6000/predicates.md (ds_form_mem_operand) New | |
31366 | predicate. | |
31367 | * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use | |
31368 | ds_form_mem_operand in ld/lwa patterns. | |
31369 | * config/rs6000/fusion.md: Regenerate file. | |
31370 | ||
31371 | 2021-03-08 Martin Sebor <msebor@redhat.com> | |
31372 | ||
31373 | PR middle-end/98266 | |
31374 | * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function. | |
31375 | (array_bounds_checker::check_array_bounds): Call it. | |
31376 | ||
31377 | 2021-03-08 Martin Sebor <msebor@redhat.com> | |
31378 | ||
31379 | PR middle-end/97631 | |
31380 | * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem. | |
31381 | (handle_builtin_stxncpy_strncat): Rename locals. Determine | |
31382 | destination size from allocation calls. Issue a more appropriate | |
31383 | kind of warning. | |
31384 | (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow. | |
31385 | (handle_builtin_memset): Same. | |
31386 | ||
31387 | 2021-03-08 Peter Bergner <bergner@linux.ibm.com> | |
31388 | ||
31389 | PR target/98959 | |
31390 | * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert | |
31391 | to ensure we do not have an Altivec style address. | |
31392 | * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed | |
31393 | an Altivec style address. | |
31394 | (*vsx_le_perm_store_<mode>): Likewise. | |
31395 | (splitters after *vsx_le_perm_store_<mode>): Likewise. | |
31396 | (vsx_load_<mode>): Disable special expander if passed an Altivec | |
31397 | style address. | |
31398 | (vsx_store_<mode>): Likewise. | |
31399 | ||
31400 | 2021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31401 | ||
31402 | PR target/99437 | |
31403 | * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define. | |
31404 | (aarch64_simd_shift_imm_vec_hi): Likewise. | |
31405 | (aarch64_simd_shift_imm_vec_si): Likewise. | |
31406 | (aarch64_simd_shift_imm_vec_di): Likewise. | |
31407 | * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use | |
31408 | predicate from above. | |
31409 | (aarch64_shrn<mode>_insn_be): Likewise. | |
31410 | (aarch64_rshrn<mode>_insn_le): Likewise. | |
31411 | (aarch64_rshrn<mode>_insn_be): Likewise. | |
31412 | (aarch64_shrn2<mode>_insn_le): Likewise. | |
31413 | (aarch64_shrn2<mode>_insn_be): Likewise. | |
31414 | (aarch64_rshrn2<mode>_insn_le): Likewise. | |
31415 | (aarch64_rshrn2<mode>_insn_be): Likewise. | |
31416 | ||
31417 | 2021-03-08 Vladimir N. Makarov <vmakarov@redhat.com> | |
31418 | ||
31419 | PR target/99422 | |
31420 | * lra-constraints.c (skip_contraint_modifiers): New function. | |
31421 | (process_address_1): Use it before lookup_constraint call. | |
31422 | ||
31423 | 2021-03-08 Martin Liska <mliska@suse.cz> | |
31424 | ||
31425 | PR target/99463 | |
31426 | * config/i386/i386-options.c (ix86_option_override_internal): | |
31427 | Enable UINTR and HRESET for -march that supports it. | |
31428 | ||
31429 | 2021-03-08 Ilya Leoshkevich <iii@linux.ibm.com> | |
31430 | ||
31431 | * config/s390/s390.c (f_constraint_p): New function. | |
31432 | (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST. | |
31433 | (TARGET_MD_ASM_ADJUST): Likewise. | |
31434 | ||
31435 | 2021-03-08 Tobias Burnus <tobias@codesourcery.com> | |
31436 | ||
31437 | PR fortran/97927 | |
31438 | * tree-nested.c (convert_local_reference_stmt): Avoid calling | |
31439 | lookup_field_for_decl for Fortran module (= namespace context). | |
31440 | ||
31441 | 2021-03-08 Andreas Krebbel <krebbel@linux.ibm.com> | |
31442 | ||
31443 | * config/s390/s390.c (s390_expand_vec_compare): Implement <0 | |
31444 | comparison with arithmetic right shift. | |
31445 | (s390_expand_vcond): No need for a force_reg anymore. | |
31446 | s390_vec_compare will do it. | |
31447 | * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also | |
31448 | immediate operands. | |
31449 | ||
31450 | 2021-03-07 Jakub Jelinek <jakub@redhat.com> | |
31451 | ||
31452 | PR target/99321 | |
31453 | * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE | |
31454 | but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description | |
31455 | and comment. | |
31456 | * config/i386/sse.md (v_Yw): New define_mode_attr. | |
31457 | (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3, | |
31458 | *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v | |
31459 | in constraints. | |
31460 | * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of | |
31461 | xYw in constraints. | |
31462 | ||
31463 | 2021-03-06 Julian Brown <julian@codesourcery.com> | |
31464 | ||
31465 | * tree-pretty-print.c (dump_generic_node): Emit non-generic | |
31466 | address space info for aggregates. | |
31467 | ||
31468 | 2021-03-06 Hans-Peter Nilsson <hp@axis.com> | |
31469 | ||
31470 | * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define. | |
31471 | ||
31472 | 2021-03-05 Jakub Jelinek <jakub@redhat.com> | |
31473 | ||
31474 | PR middle-end/99322 | |
31475 | * tree-cfg.c (bb_to_omp_idx): New variable. | |
31476 | (execute_build_cfg): Release the bb_to_omp_idx vector after | |
31477 | cleanup_tree_cfg returns. | |
31478 | (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust | |
31479 | for bb_to_omp_idx being a vec<int> instead of pointer to array | |
31480 | of ints. | |
31481 | (make_edges): Remove bb_to_omp_idx local variable, don't pass | |
31482 | it to handle_abnormal_edges, adjust for bb_to_omp_idx being a | |
31483 | vec<int> instead of pointer to array of ints and don't free/release | |
31484 | it at the end. | |
31485 | (remove_bb): When removing a bb and placing forced label somewhere | |
31486 | else, ensure it is put into the same OpenMP region during cfg | |
31487 | pass if possible or to entry successor as fallback. Unregister | |
31488 | bb from bb_to_omp_idx. | |
31489 | ||
31490 | 2021-03-05 Vladimir N. Makarov <vmakarov@redhat.com> | |
31491 | ||
31492 | PR target/99378 | |
31493 | * lra-constraints.c (process_address_1): Skip decomposing address | |
31494 | for asm insn operand with unknown constraint. | |
31495 | ||
31496 | 2021-03-05 Martin Jambor <mjambor@suse.cz> | |
31497 | ||
31498 | PR ipa/98078 | |
31499 | * cgraph.c (cgraph_edge::set_call_stmt): Do not update all | |
31500 | corresponding speculative edges if we are about to resolve | |
31501 | sepculation. Make edge direct (and so resolve speculations) before | |
31502 | removing it from call_site_hash. | |
31503 | (cgraph_edge::make_direct): Relax the initial assert to allow calling | |
31504 | the function on speculative direct edges. | |
31505 | ||
31506 | 2021-03-05 Eric Botcazou <ebotcazou@adacore.com> | |
31507 | ||
31508 | PR rtl-optimization/99376 | |
31509 | * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number | |
31510 | of low-order zero bits is too large, set the result to 0 directly. | |
31511 | ||
31512 | 2021-03-04 Jakub Jelinek <jakub@redhat.com> | |
31513 | ||
31514 | PR middle-end/93235 | |
31515 | * expmed.c (store_bit_field_using_insv): Return false of xop0 is a | |
31516 | SUBREG and a SUBREG to op_mode can't be created. | |
31517 | ||
31518 | 2021-03-04 Alex Coplan <alex.coplan@arm.com> | |
31519 | ||
31520 | PR target/99381 | |
31521 | * config/aarch64/aarch64-sve-builtins.cc | |
31522 | (function_resolver::require_vector_type): Handle error_mark_node. | |
31523 | ||
31524 | 2021-03-04 Ilya Leoshkevich <iii@linux.ibm.com> | |
31525 | ||
31526 | * cfgexpand.c (expand_asm_loc): Pass new parameter. | |
31527 | (expand_asm_stmt): Likewise. | |
31528 | * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new | |
31529 | parameter. | |
31530 | * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. | |
31531 | * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. | |
31532 | * config/cris/cris.c (cris_md_asm_adjust): Likewise. | |
31533 | * config/i386/i386.c (ix86_md_asm_adjust): Likewise. | |
31534 | * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. | |
31535 | * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. | |
31536 | * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. | |
31537 | * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. | |
31538 | * config/vax/vax.c (vax_md_asm_adjust): Likewise. | |
31539 | * config/visium/visium.c (visium_md_asm_adjust): Likewise. | |
31540 | * doc/tm.texi (md_asm_adjust): Likewise. | |
31541 | * target.def (md_asm_adjust): Likewise. | |
31542 | ||
31543 | 2021-03-04 Richard Biener <rguenther@suse.de> | |
31544 | ||
31545 | PR middle-end/97855 | |
31546 | * tree-pretty-print.c: Poison pp_printf. | |
31547 | (dump_decl_name): Avoid use of pp_printf. | |
31548 | (dump_block_node): Likewise. | |
31549 | (dump_generic_node): Likewise. | |
31550 | ||
31551 | 2021-03-04 Martin Sebor <msebor@redhat.com> | |
31552 | ||
31553 | PR middle-end/96963 | |
31554 | PR middle-end/94655 | |
31555 | * builtins.c (handle_array_ref): New helper. | |
31556 | (handle_mem_ref): New helper. | |
31557 | (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling | |
31558 | into new helper functions. Correct a workaround for vectorized | |
31559 | assignments. | |
31560 | ||
31561 | 2021-03-03 Pat Haugen <pthaugen@linux.ibm.com> | |
31562 | ||
31563 | * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1, | |
31564 | floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>, | |
31565 | dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, | |
31566 | *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size | |
31567 | attribute for Power10. | |
31568 | * config/rs6000/mma.md (*movoo): Likewise. | |
31569 | * config/rs6000/rs6000.md (define_attr "size"): Add 256. | |
31570 | (define_mode_attr bits): Add DD/TD modes. | |
31571 | * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti, | |
31572 | store_conditionalpti): Update size attribute for Power10. | |
31573 | ||
31574 | 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
31575 | ||
31576 | PR bootstrap/92002 | |
31577 | * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for | |
31578 | -Wuninitialized, -Wmaybe-uninitialized. | |
31579 | (wide-int.o-warn): Likewise. | |
31580 | ||
31581 | 2021-03-03 Richard Earnshaw <rearnsha@arm.com> | |
31582 | ||
31583 | * common/config/arm/arm-common.c: Include configargs.h. | |
31584 | (arm_config_default): New function. | |
31585 | (arm_target_mode): Renamed from arm_target_thumb_only. Handle | |
31586 | processors that do not support Thumb. Take into account the | |
31587 | --with-mode configuration setting for selecting the default. | |
31588 | * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'. | |
31589 | (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change. | |
31590 | ||
31591 | 2021-03-03 Martin Liska <mliska@suse.cz> | |
31592 | ||
31593 | PR gcov-profile/97461 | |
31594 | * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove. | |
31595 | ||
31596 | 2021-03-03 Eric Botcazou <ebotcazou@adacore.com> | |
31597 | ||
31598 | PR target/99234 | |
31599 | * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, | |
31600 | point back the hard frame pointer to its default location when the | |
31601 | frame is larger than SEH_MAX_FRAME_SIZE. | |
31602 | ||
31603 | 2021-03-03 Jakub Jelinek <jakub@redhat.com> | |
31604 | ||
31605 | PR target/99321 | |
31606 | * config/i386/predicates.md (logic_operator): New define_predicate. | |
31607 | * config/i386/i386.md (mov + mem using comm arith peephole2): | |
31608 | Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled | |
31609 | and the inner mode is [QH]Imode. | |
31610 | ||
31611 | 2021-03-03 Jakub Jelinek <jakub@redhat.com> | |
31612 | ||
31613 | PR debug/99090 | |
31614 | * dwarf2out.c (dw_loc_list_struct): Add end_entry member. | |
31615 | (new_loc_list): Clear end_entry. | |
31616 | (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf | |
31617 | if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment | |
31618 | typo. | |
31619 | (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128, | |
31620 | initialize also end_entry. | |
31621 | ||
31622 | 2021-03-03 Jakub Jelinek <jakub@redhat.com> | |
31623 | ||
31624 | PR target/99085 | |
31625 | * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold | |
31626 | partitions, if in non-layout mode after reorder_blocks also move | |
31627 | affected blocks to ensure a single partition transition. | |
31628 | ||
31629 | 2021-03-03 Jason Merrill <jason@redhat.com> | |
31630 | ||
31631 | PR c++/96078 | |
31632 | * cgraphunit.c (process_function_and_variable_attributes): Don't | |
31633 | warn about flatten on an alias if the target also has it. | |
31634 | * cgraph.h (symtab_node::get_alias_target_tree): New. | |
31635 | ||
31636 | 2021-03-02 David Edelsohn <dje.gcc@gmail.com> | |
31637 | ||
31638 | * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend | |
31639 | period to symbol name. | |
31640 | (tls_get_addr_internal<mode>): Same. | |
31641 | ||
31642 | 2021-03-02 David Malcolm <dmalcolm@redhat.com> | |
31643 | ||
31644 | PR c/99323 | |
31645 | * diagnostic-show-locus.c | |
31646 | (selftest::test_one_liner_many_fixits_2): Fix accidental usage of | |
31647 | column 0. | |
31648 | ||
31649 | 2021-03-02 Martin Sebor <msebor@redhat.com> | |
31650 | ||
31651 | PR middle-end/99276 | |
31652 | * builtins.c (warn_for_access): Remove stray warning text. | |
31653 | ||
31654 | 2021-03-02 Martin Sebor <msebor@redhat.com> | |
31655 | ||
31656 | PR middle-end/99295 | |
31657 | * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing | |
31658 | property. | |
31659 | ||
31660 | 2021-03-02 Jakub Jelinek <jakub@redhat.com> | |
31661 | ||
31662 | PR debug/99319 | |
31663 | * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with | |
31664 | -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use | |
31665 | DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle | |
31666 | DW_MACRO_define_strx and DW_MACRO_undef_strx. | |
31667 | (save_macinfo_strings): Use DW_MACRO_*_str* even with | |
31668 | -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and | |
31669 | DW_MACRO_undef_strx. | |
31670 | ||
31671 | 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31672 | ||
31673 | * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New | |
31674 | builtin signature. | |
31675 | (BT_FN_V8HI_V8HI_UINT): Likewise. | |
31676 | (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise. | |
31677 | * config/s390/s390-builtins.def (B_NNPA): New macro definition. | |
31678 | (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf): | |
31679 | New builtin definitions. | |
31680 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump | |
31681 | vector extension version. | |
31682 | * config/s390/s390.c (s390_expand_builtin): Check if builtins are | |
31683 | available with current -march level. | |
31684 | * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI) | |
31685 | (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI) | |
31686 | (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants. | |
31687 | * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro. | |
31688 | (vec_extend_to_fp32_lo): Likewise. | |
31689 | (vec_round_from_fp32): Likewise. | |
31690 | (vec_convert_to_fp16): Likewise. | |
31691 | (vec_convert_from_fp16): Likewise. | |
31692 | * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern. | |
31693 | (vclfnls_v8hi): Likewise. | |
31694 | (vcrnfs_v8hi): Likewise. | |
31695 | (vcfn_v8hi): Likewise. | |
31696 | (vcnf_v8hi): Likewise. | |
31697 | ||
31698 | 2021-03-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31699 | ||
31700 | * common/config/s390/s390-common.c (processor_flags_table): New entry. | |
31701 | * config.gcc: Enable arch14 for --with-arch and --with-tune. | |
31702 | * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick | |
31703 | arch14 for unknown CPU models. | |
31704 | * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14. | |
31705 | * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14. | |
31706 | (s390_get_sched_attrmask): Likewise. | |
31707 | (s390_get_unit_mask): Likewise. | |
31708 | * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14. | |
31709 | (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA) | |
31710 | (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA) | |
31711 | (TARGET_NNPA_P): New macro definitions. | |
31712 | * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa. | |
31713 | * config/s390/s390.opt: Add PROCESSOR_ARCH14. | |
31714 | ||
31715 | 2021-03-02 Jakub Jelinek <jakub@redhat.com> | |
31716 | ||
31717 | PR middle-end/95757 | |
31718 | * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around | |
31719 | condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and | |
31720 | != 1 comparisons if name is lhs of a comparison. | |
31721 | ||
31722 | 2021-03-01 Iain Sandoe <iain@sandoe.co.uk> | |
31723 | ||
31724 | PR target/44107 | |
31725 | PR target/48097 | |
31726 | * config/darwin-protos.h (darwin_should_restore_cfa_state): New. | |
31727 | * config/darwin.c (darwin_should_restore_cfa_state): New. | |
31728 | * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New. | |
31729 | * doc/tm.texi: Regenerated. | |
31730 | * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE. | |
31731 | * dwarf2cfi.c (connect_traces): If the target requests, restore | |
31732 | the CFA expression after a DW_CFA_restore. | |
31733 | * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook. | |
31734 | ||
31735 | 2021-03-01 Martin Liska <mliska@suse.cz> | |
31736 | ||
31737 | PR target/99313 | |
31738 | * optc-save-gen.awk: Add 4 more exceptions. | |
31739 | ||
31740 | 2021-03-01 Nathan Sidwell <nathan@acm.org> | |
31741 | ||
31742 | PR c++/99294 | |
31743 | * tree.h (TYPE_ALIGN_RAW): New accessor. | |
31744 | (TYPE_ALIGN): Use it. | |
31745 | ||
31746 | 2021-03-01 Jan Hubicka <jh@suse.cz> | |
31747 | ||
31748 | PR ipa/98338 | |
31749 | * ipa-fnsummary.c (compute_fn_summary): Fix sanity check. | |
31750 | ||
31751 | 2021-03-01 Eric Botcazou <ebotcazou@adacore.com> | |
31752 | ||
31753 | PR target/99234 | |
31754 | * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, | |
31755 | point the hard frame pointer to the SSE register save area instead | |
31756 | of the general register save area. Perform only minimal adjustment | |
31757 | for small frames if it is initially not correctly aligned. | |
31758 | (ix86_expand_prologue): Remove early saves for a SEH target. | |
31759 | * config/i386/winnt.c (struct seh_frame_state): Document constraint. | |
31760 | ||
31761 | 2021-02-28 Jakub Jelinek <jakub@redhat.com> | |
31762 | ||
31763 | PR c/99304 | |
31764 | * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment | |
31765 | typo - referneced -> referenced. | |
31766 | * tree.c (component_ref_size): Fix comment typo - | |
31767 | refernce -> reference. | |
31768 | * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo - | |
31769 | traling -> trailing. | |
31770 | (aliasing_component_refs_p): Fix comment typos - | |
31771 | refernce -> reference and refernece -> reference and | |
31772 | traling -> trailing. | |
31773 | (nonoverlapping_refs_since_match_p): Fix comment typo - | |
31774 | referneces -> references. | |
31775 | * doc/invoke.texi (--param modref-max-bases): Fix a typo - | |
31776 | referneces -> references. | |
31777 | ||
31778 | 2021-02-27 Iain Sandoe <iain@sandoe.co.uk> | |
31779 | ||
31780 | * config/host-darwin.c (darwin_gt_pch_use_address): Modify | |
31781 | diagnostic message to avoid use of a contraction and format | |
31782 | warning. | |
31783 | ||
31784 | 2021-02-27 Jakub Jelinek <jakub@redhat.com> | |
31785 | ||
31786 | PR other/99288 | |
31787 | * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of | |
31788 | HOST_WIDE_INT_PRINT_UNSIGNED in warning format string. | |
31789 | * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of | |
31790 | HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment | |
31791 | typos. | |
31792 | ||
31793 | 2021-02-26 Richard Biener <rguenther@suse.de> | |
31794 | ||
31795 | PR middle-end/99281 | |
31796 | * expr.c (store_field): For calls with return-slot optimization | |
31797 | and addressable return type expand the store directly. | |
31798 | ||
31799 | 2021-02-26 Richard Biener <rguenther@suse.de> | |
31800 | ||
31801 | PR c/99275 | |
31802 | * builtins.c (warn_string_no_nul): Fix diagnostic formatting. | |
31803 | ||
31804 | 2021-02-26 Peter Bergner <bergner@linux.ibm.com> | |
31805 | ||
31806 | PR target/99279 | |
31807 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert | |
31808 | with an "if" test. | |
31809 | ||
31810 | 2021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com> | |
31811 | ||
31812 | * config.gcc: Add rs6000-pcrel-opt.o. | |
31813 | * config/rs6000/rs6000-pcrel-opt.c: New file. | |
31814 | * config/rs6000/pcrel-opt.md: New file. | |
31815 | * config/rs6000/predicates.md: Add d_form_memory predicate. | |
31816 | * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT. | |
31817 | * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt. | |
31818 | * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(), | |
31819 | pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(), | |
31820 | and make_pass_pcrel_opt(). | |
31821 | * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global. | |
31822 | (rs6000_option_override_internal): Add pcrel-opt. | |
31823 | (rs6000_delegitimize_address): Support pcrel-opt. | |
31824 | (rs6000_opt_masks): Add pcrel-opt. | |
31825 | (pcrel_opt_valid_mem_p): New function. | |
31826 | (reg_to_non_prefixed): Make global. | |
31827 | (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn. | |
31828 | (output_pcrel_opt_reloc): New function. | |
31829 | * config/rs6000/rs6000.md (loads_extern_addr): New attr. | |
31830 | (pcrel_extern_addr): Set loads_extern_addr. | |
31831 | Add include for pcrel-opt.md. | |
31832 | * config/rs6000/rs6000.opt: Add -mpcrel-opt. | |
31833 | * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and | |
31834 | pcrel-opt.md. | |
31835 | ||
31836 | 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com> | |
31837 | ||
31838 | PR target/98996 | |
31839 | * config/mips/mips.c (mips_expand_ext_as_unaligned_load): | |
31840 | If TARGET_64BIT and dest is SUBREG, we check the width, if it | |
31841 | equal to SImode, we use SImode operation, just like what we are | |
31842 | doing for REG one. | |
31843 | ||
31844 | 2021-02-26 Marek Polacek <polacek@redhat.com> | |
31845 | ||
31846 | * builtins.c (warn_for_access): Fix typos. | |
31847 | ||
31848 | 2021-02-25 Iain Sandoe <iain@sandoe.co.uk> | |
31849 | ||
31850 | * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#' | |
31851 | mark in front of the immediate quantity. | |
31852 | (<optab>_rolsi3_uxtw): Likewise. | |
31853 | ||
31854 | 2021-02-25 Richard Earnshaw <rearnsha@arm.com> | |
31855 | ||
31856 | PR target/99271 | |
31857 | * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern. | |
31858 | (nonsecure_call_value_reg_thumb2_fpcxt): Likewise. | |
31859 | (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee | |
31860 | address and disable when the FPCXT is not available. | |
31861 | (nonsecure_call_value_reg_thumb2): Likewise. | |
31862 | ||
31863 | 2021-02-25 Nathan Sidwell <nathan@acm.org> | |
31864 | ||
31865 | PR c++/99166 | |
31866 | * doc/invoke.texi (flang-info-module-cmi): Renamed option. | |
31867 | ||
31868 | 2021-02-25 Tamar Christina <tamar.christina@arm.com> | |
31869 | ||
31870 | * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes. | |
31871 | ||
31872 | 2021-02-25 Richard Biener <rguenther@suse.de> | |
31873 | ||
31874 | PR tree-optimization/99253 | |
31875 | * tree-vect-loop.c (check_reduction_path): First compute | |
31876 | code, then verify out-of-loop uses. | |
31877 | ||
31878 | 2021-02-25 Jakub Jelinek <jakub@redhat.com> | |
31879 | ||
31880 | PR target/95798 | |
31881 | * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert. | |
31882 | ||
31883 | 2021-02-25 Jakub Jelinek <jakub@redhat.com> | |
31884 | ||
31885 | PR tree-optimization/80635 | |
31886 | * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle | |
31887 | VIEW_CONVERT_EXPR if modes are the same, innerop is integral and | |
31888 | has mode precision. | |
31889 | ||
31890 | 2021-02-25 Richard Biener <rguenther@suse.de> | |
31891 | ||
31892 | * tree-vect-slp.c (optimize_load_redistribution_1): Delay | |
31893 | load_map population. | |
31894 | (vect_match_slp_patterns_2): Revert part of last change. | |
31895 | (vect_analyze_slp): Do not interleave optimize_load_redistribution | |
31896 | with pattern detection but do it afterwards. Dump the | |
31897 | whole SLP graph after pattern recognition and load | |
31898 | redistribution optimization finished. | |
31899 | ||
31900 | 2021-02-24 Jakub Jelinek <jakub@redhat.com> | |
31901 | ||
31902 | PR fortran/99226 | |
31903 | * omp-low.c (struct omp_context): Add teams_nested_p and | |
31904 | nonteams_nested_p members. | |
31905 | (scan_omp_target): Diagnose teams nested inside of target with other | |
31906 | directives strictly nested inside of the same target. | |
31907 | (check_omp_nesting_restrictions): Set ctx->teams_nested_p or | |
31908 | ctx->nonteams_nested_p as needed. | |
31909 | ||
31910 | 2021-02-24 Vladimir N. Makarov <vmakarov@redhat.com> | |
31911 | ||
31912 | PR inline-asm/99123 | |
31913 | * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address. | |
31914 | ||
31915 | 2021-02-24 Hans-Peter Nilsson <hp@axis.com> | |
31916 | ||
31917 | * config/cris/cris.c (cris_expand_prologue): Set | |
31918 | current_function_static_stack_size, if flag_stack_usage_info. | |
31919 | ||
31920 | 2021-02-24 Pat Haugen <pthaugen@linux.ibm.com> | |
31921 | ||
31922 | * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename. | |
31923 | (rs6000_final_prescan_insn): Adjust. | |
31924 | (rs6000_asm_output_opcode): Likewise. | |
31925 | ||
31926 | 2021-02-24 Martin Sebor <msebor@redhat.com> | |
31927 | ||
31928 | PR middle-end/97172 | |
31929 | * attribs.c (attr_access::free_lang_data): Clear attribute arg spec | |
31930 | from function arguments. | |
31931 | ||
31932 | 2021-02-24 Tamar Christina <tamar.christina@arm.com> | |
31933 | ||
31934 | PR tree-optimization/99220 | |
31935 | * tree-vect-slp.c (optimize_load_redistribution_1): Remove | |
31936 | node from cache when it's about to be deleted. | |
31937 | ||
31938 | 2021-02-24 Jakub Jelinek <jakub@redhat.com> | |
31939 | ||
31940 | PR tree-optimization/99225 | |
31941 | * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0 | |
31942 | to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of | |
31943 | build_int_cst (..., 1). Formatting fixes. | |
31944 | ||
31945 | 2021-02-24 Tamar Christina <tamar.christina@arm.com> | |
31946 | ||
31947 | PR tree-optimization/99149 | |
31948 | * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the | |
31949 | buffer. | |
31950 | (vect_slp_reset_pattern): Remove. | |
31951 | (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern. | |
31952 | (complex_mul_pattern::build, complex_fma_pattern::build, | |
31953 | complex_fms_pattern::build): Fix ref counts. | |
31954 | * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy | |
31955 | when node is being deleted. | |
31956 | (vect_match_slp_patterns_2): Correct result of cache hit on patterns. | |
31957 | (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed | |
31958 | stores. | |
31959 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value. | |
31960 | ||
31961 | 2021-02-24 Matthias Klose <doko@ubuntu.com> | |
31962 | ||
31963 | Revert: | |
31964 | 2020-12-07 Matthias Klose <doko@ubuntu.com> | |
31965 | ||
31966 | * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING | |
31967 | and ENABLE_RTL_FLAG_CHECKING. | |
31968 | ||
31969 | 2021-02-24 Richard Biener <rguenther@suse.de> | |
31970 | ||
31971 | PR c/99224 | |
31972 | * builtins.c (fold_builtin_next_arg): Avoid NULL arg. | |
31973 | ||
31974 | 2021-02-23 Peter Bergner <bergner@linux.ibm.com> | |
31975 | ||
31976 | * config/rs6000/mma.md (mma_assemble_pair): Rename from this... | |
31977 | (vsx_assemble_pair): ...to this. | |
31978 | (*mma_assemble_pair): Rename from this... | |
31979 | (*vsx_assemble_pair): ...to this. | |
31980 | (mma_disassemble_pair): Rename from this... | |
31981 | (vsx_disassemble_pair): ...to this. | |
31982 | (*mma_disassemble_pair): Rename from this... | |
31983 | (*vsx_disassemble_pair): ...to this. | |
31984 | * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3, | |
31985 | BU_COMPAT): New macros. | |
31986 | (mma_assemble_pair): Rename from this... | |
31987 | (vsx_assemble_pair): ...to this. | |
31988 | (mma_disassemble_pair): Rename from this... | |
31989 | (vsx_disassemble_pair): ...to this. | |
31990 | (mma_assemble_pair): New compatibility built-in. | |
31991 | (mma_disassemble_pair): Likewise. | |
31992 | * config/rs6000/rs6000-call.c (struct builtin_compatibility): New. | |
31993 | (RS6000_BUILTIN_COMPAT): Define. | |
31994 | (bdesc_compat): New. | |
31995 | (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL. | |
31996 | (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR | |
31997 | and VSX_BUILTIN_ASSEMBLE_PAIR. | |
31998 | (rs6000_init_builtins): Register compatibility built-ins. | |
31999 | (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR, | |
32000 | VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and | |
32001 | VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL. | |
32002 | * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this... | |
32003 | (__builtin_vsx_assemble_pair): ...to this. | |
32004 | (__builtin_mma_disassemble_pair): Rename from this... | |
32005 | (__builtin_vsx_disassemble_pair): ...to this. | |
32006 | ||
32007 | 2021-02-23 Martin Liska <mliska@suse.cz> | |
32008 | ||
32009 | PR sanitizer/99168 | |
32010 | * ipa-icf.c (sem_variable::merge): Do not merge 2 variables | |
32011 | with different alignment. That leads to an invalid red zone | |
32012 | size allocated in runtime. | |
32013 | ||
32014 | 2021-02-23 Jakub Jelinek <jakub@redhat.com> | |
32015 | ||
32016 | PR tree-optimization/99204 | |
32017 | * fold-const.c (fold_read_from_constant_string): Check that | |
32018 | tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST. | |
32019 | ||
32020 | 2021-02-23 Segher Boessenkool <segher@kernel.crashing.org> | |
32021 | Kewen Lin <linkw@gcc.gnu.org> | |
32022 | ||
32023 | * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to... | |
32024 | (rotl<mode>3_insert_3): ...this. | |
32025 | (plus_ior_xor): New code_iterator. | |
32026 | (define_split for GPR rl*imi): New splitter. | |
32027 | * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3 | |
32028 | for integer merging. | |
32029 | ||
32030 | 2021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32031 | ||
32032 | * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants): | |
32033 | Define. | |
32034 | * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates | |
32035 | into a register when the above is enabled. | |
32036 | * config/aarch64/aarch64.c (neoversev1_tunings): | |
32037 | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS. | |
32038 | (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS. | |
32039 | ||
32040 | 2021-02-22 Hans-Peter Nilsson <hp@axis.com> | |
32041 | ||
32042 | * config/cris/cris.c (cris_print_operand) <'T'>: Change | |
32043 | valid operand from is now an addi mult-value to shift-value. | |
32044 | * config/cris/cris.md (*addi): Change expression of scaled | |
32045 | operand from mult to ashift. | |
32046 | * config/cris/cris.md (*addi_reload): New insn_and_split. | |
32047 | ||
32048 | 2021-02-22 John David Anglin <danglin@gcc.gnu.org> | |
32049 | ||
32050 | PR target/85074 | |
32051 | * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as | |
32052 | hook_bool_const_tree_hwi_hwi_const_tree_true. | |
32053 | (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset. | |
32054 | ||
32055 | 2021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
32056 | ||
32057 | PR rtl-optimization/98791 | |
32058 | * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies | |
32059 | for unordered modes. | |
32060 | ||
32061 | 2021-02-22 Martin Liska <mliska@suse.cz> | |
32062 | ||
32063 | * tree-inline.c (inline_forbidden_p): Set | |
32064 | inline_forbidden_reason. | |
32065 | ||
32066 | 2021-02-22 Richard Biener <rguenther@suse.de> | |
32067 | ||
32068 | * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump | |
32069 | costed subgraph. | |
32070 | ||
32071 | 2021-02-22 Richard Biener <rguenther@suse.de> | |
32072 | ||
32073 | PR tree-optimization/99165 | |
32074 | * gimple-ssa-store-merging.c (pass_store_merging::process_store): | |
32075 | Accumulate changed to ret. | |
32076 | ||
32077 | 2021-02-21 Uros Bizjak <ubizjak@gmail.com> | |
32078 | ||
32079 | Revert: | |
32080 | 2020-12-09 Uroš Bizjak <ubizjak@gmail.com> | |
32081 | ||
32082 | * config/i386/i386.h (REG_ALLOC_ORDER): Remove | |
32083 | ||
32084 | 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com> | |
32085 | ||
32086 | PR target/99134 | |
32087 | * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New | |
32088 | pattern. | |
32089 | (trunctf<DFP_ALL:mode>2): Likewise. | |
32090 | (trunctdtf2_vr): Likewise. | |
32091 | (trunctdtf2): Likewise. | |
32092 | (extend<DFP_ALL:mode>tf2_vr): Likewise. | |
32093 | (extend<DFP_ALL:mode>tf2): Likewise. | |
32094 | (extendtftd2_vr): Likewise. | |
32095 | (extendtftd2): Likewise. | |
32096 | ||
32097 | 2021-02-20 Ilya Leoshkevich <iii@linux.ibm.com> | |
32098 | ||
32099 | * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf, | |
32100 | add memory alternative. | |
32101 | (tf_to_fprx2): New pattern. | |
32102 | ||
32103 | 2021-02-19 Martin Sebor <msebor@redhat.com> | |
32104 | ||
32105 | PR c/97172 | |
32106 | * attribs.c (init_attr_rdwr_indices): Guard vblist use. | |
32107 | (attr_access::free_lang_data): Remove a spurious test. | |
32108 | ||
32109 | 2021-02-19 Nathan Sidwell <nathan@acm.org> | |
32110 | ||
32111 | * doc/invoke.texi (flang-info-module-read): Document. | |
32112 | ||
32113 | 2021-02-19 Martin Liska <mliska@suse.cz> | |
32114 | ||
32115 | PR translation/99167 | |
32116 | * params.opt: Fix typo. | |
32117 | ||
32118 | 2021-02-19 Richard Biener <rguenther@suse.de> | |
32119 | ||
32120 | PR middle-end/99122 | |
32121 | * tree-inline.c (inline_forbidden_p): Do not inline functions | |
32122 | with VLA arguments or return value. | |
32123 | ||
32124 | 2021-02-19 Jakub Jelinek <jakub@redhat.com> | |
32125 | ||
32126 | PR target/98998 | |
32127 | * config/arm/arm.md (*stack_protect_combined_set_insn, | |
32128 | *stack_protect_combined_test_insn): If force_const_mem result | |
32129 | is not valid general operand, force its address into the destination | |
32130 | register first. | |
32131 | ||
32132 | 2021-02-19 Jakub Jelinek <jakub@redhat.com> | |
32133 | ||
32134 | PR ipa/99034 | |
32135 | * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing | |
32136 | pad or non-local label, put FORCED_LABELs from bb b after that label | |
32137 | rather than before it. | |
32138 | ||
32139 | 2021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
32140 | ||
32141 | PR target/98657 | |
32142 | * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use | |
32143 | expand_vector_broadcast' to emit the vec_duplicate operand. | |
32144 | ||
32145 | 2021-02-18 Vladimir N. Makarov <vmakarov@redhat.com> | |
32146 | ||
32147 | PR rtl-optimization/96264 | |
32148 | * lra-remat.c (reg_overlap_for_remat_p): Check also output insn | |
32149 | hard regs. | |
32150 | ||
32151 | 2021-02-18 H.J. Lu <hjl.tools@gmail.com> | |
32152 | ||
32153 | PR target/99113 | |
32154 | * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with | |
32155 | looking up the retain attribute. | |
32156 | (resolve_unique_section): Likewise. | |
32157 | (get_variable_section): Likewise. | |
32158 | (switch_to_section): Likewise. Warn when a symbol without the | |
32159 | retain attribute and a symbol with the retain attribute are | |
32160 | placed in the section with the same name, instead of the used | |
32161 | attribute. | |
32162 | * doc/extend.texi: Document the "retain" attribute. | |
32163 | ||
32164 | 2021-02-18 Nathan Sidwell <nathan@acm.org> | |
32165 | ||
32166 | PR c++/99023 | |
32167 | * doc/invoke.texi (flang-info-include-translate): Document header | |
32168 | lookup behaviour. | |
32169 | ||
32170 | 2021-02-18 Richard Biener <rguenther@suse.de> | |
32171 | ||
32172 | PR middle-end/99122 | |
32173 | * ipa-fnsummary.c (analyze_function_body): Set | |
32174 | CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls. | |
32175 | * tree-inline.c (insert_init_debug_bind): Pass NULL for | |
32176 | error_mark_node values. | |
32177 | (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR | |
32178 | values. | |
32179 | (setup_one_parameter): Delay force_value_to_type until when | |
32180 | it's needed. | |
32181 | ||
32182 | 2021-02-18 Hans-Peter Nilsson <hp@axis.com> | |
32183 | ||
32184 | PR tree-optimization/99142 | |
32185 | * match.pd (clz cmp 0): Gate replacement on single_use of clz result. | |
32186 | ||
32187 | 2021-02-18 Jakub Jelinek <jakub@redhat.com> | |
32188 | ||
32189 | * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (), | |
32190 | wide_int_bitmask::wide_int_bitmask (uint64_t), | |
32191 | wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t), | |
32192 | wide_int_bitmask::operator ~ () const, | |
32193 | wide_int_bitmask::operator | (wide_int_bitmask) const, | |
32194 | wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr | |
32195 | instead of inline. | |
32196 | * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM, | |
32197 | PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4, | |
32198 | PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF, | |
32199 | PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2, | |
32200 | PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM, | |
32201 | PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED, | |
32202 | PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER, | |
32203 | PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1, | |
32204 | PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW, | |
32205 | PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX, | |
32206 | PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS, | |
32207 | PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, | |
32208 | PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID, | |
32209 | PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE, | |
32210 | PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD, | |
32211 | PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8, | |
32212 | PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI, | |
32213 | PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4, | |
32214 | PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE, | |
32215 | PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512, | |
32216 | PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT, | |
32217 | PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE, | |
32218 | PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS, | |
32219 | PTA_TREMONT, PTA_KNM): Use constexpr instead of const. | |
32220 | ||
32221 | 2021-02-18 Jakub Jelinek <jakub@redhat.com> | |
32222 | ||
32223 | PR middle-end/99109 | |
32224 | * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ... | |
32225 | (build_printable_array_type): ... this. Add nelts argument. For | |
32226 | overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If | |
32227 | nelts, call build_array_type_nelts. | |
32228 | (array_bounds_checker::check_mem_ref): Use build_printable_array_type | |
32229 | instead of build_zero_elt_array_type and build_array_type_nelts. | |
32230 | ||
32231 | 2021-02-18 Jakub Jelinek <jakub@redhat.com> | |
32232 | ||
32233 | PR target/99104 | |
32234 | * config/i386/i386.c (distance_non_agu_define): Don't call | |
32235 | extract_insn_cached here. | |
32236 | (ix86_lea_outperforms): Save and restore recog_data around call | |
32237 | to distance_non_agu_define and distance_agu_use. | |
32238 | (ix86_ok_to_clobber_flags): Remove. | |
32239 | (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags. | |
32240 | (ix86_avoid_lea_for_addr): Likewise. Adjust function comment. | |
32241 | * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split | |
32242 | into define_insn. Move the splitting to define_peephole2 and | |
32243 | check there using peep2_regno_dead_p if FLAGS_REG is dead. | |
32244 | ||
32245 | 2021-02-17 Julian Brown <julian@codesourcery.com> | |
32246 | ||
32247 | * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH | |
32248 | for non-decls. | |
32249 | ||
32250 | 2021-02-17 Xi Ruoyao <xry111@mengyan1223.wang> | |
32251 | ||
32252 | PR target/98491 | |
32253 | * config/mips/mips.c (mips_symbol_insns): Do not use | |
32254 | MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE. | |
32255 | ||
32256 | 2021-02-16 Vladimir N. Makarov <vmakarov@redhat.com> | |
32257 | ||
32258 | PR inline-asm/98096 | |
32259 | * stmt.c (resolve_operand_name_1): Take inout operands into account | |
32260 | for access to labels by names. | |
32261 | * doc/extend.texi: Describe counting operands for accessing labels. | |
32262 | ||
32263 | 2021-02-16 Richard Biener <rguenther@suse.de> | |
32264 | ||
32265 | PR tree-optimization/38474 | |
32266 | * tree-ssa-structalias.c (variable_info::address_taken): New. | |
32267 | (new_var_info): Initialize address_taken. | |
32268 | (process_constraint): Set address_taken. | |
32269 | (solve_constraints): Use the new address_taken flag rather | |
32270 | than is_reg_var for sorting variables. | |
32271 | (dump_constraint): Dump the variable number if the name | |
32272 | is just NULL. | |
32273 | ||
32274 | 2021-02-16 Jakub Jelinek <jakub@redhat.com> | |
32275 | ||
32276 | PR target/99100 | |
32277 | * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1 | |
32278 | multiply by 4096 and for inbranch by 8192. | |
32279 | * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F, | |
32280 | return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'. | |
32281 | ||
32282 | 2021-02-15 Maya Rashish <coypu@sdf.org> | |
32283 | ||
32284 | * config/aarch64/aarch64.c (aarch64_init_builtins): | |
32285 | Call SUBTARGET_INIT_BUILTINS. | |
32286 | ||
32287 | 2021-02-15 Peter Bergner <bergner@linux.ibm.com> | |
32288 | ||
32289 | PR rtl-optimization/98872 | |
32290 | * init-regs.c (initialize_uninitialized_regs): Skip initialization | |
32291 | if CONST0_RTX is NULL. | |
32292 | ||
32293 | 2021-02-15 Richard Sandiford <richard.sandiford@arm.com> | |
32294 | ||
32295 | PR rtl-optimization/98863 | |
32296 | * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete. | |
32297 | (function_info::build_info): Turn into a declaration, moving the | |
32298 | definition to internals.h. | |
32299 | (function_info::bb_walker): Declare. | |
32300 | (function_info::create_reg_use): Likewise. | |
32301 | (function_info::calculate_potential_phi_regs): Take a build_info | |
32302 | parameter. | |
32303 | (function_info::place_phis, function_info::create_ebbs): Declare. | |
32304 | (function_info::calculate_ebb_live_in_for_debug): Likewise. | |
32305 | (function_info::populate_backedge_phis): Delete. | |
32306 | (function_info::start_block, function_info::end_block): Declare. | |
32307 | (function_info::populate_phi_inputs): Delete. | |
32308 | (function_info::m_potential_phi_regs): Move information to build_info. | |
32309 | * rtl-ssa/internals.h: New file. | |
32310 | (function_info::bb_phi_info): New class. | |
32311 | (function_info::build_info): Moved from functions.h. | |
32312 | Add a constructor and destructor. | |
32313 | (function_info::build_info::ebb_use): Delete. | |
32314 | (function_info::build_info::ebb_def): Likewise. | |
32315 | (function_info::build_info::bb_live_out): Likewise. | |
32316 | (function_info::build_info::tmp_ebb_live_in_for_debug): New variable. | |
32317 | (function_info::build_info::potential_phi_regs): Likewise. | |
32318 | (function_info::build_info::potential_phi_regs_for_debug): Likewise. | |
32319 | (function_info::build_info::ebb_def_regs): Likewise. | |
32320 | (function_info::build_info::bb_phis): Likewise. | |
32321 | (function_info::build_info::bb_mem_live_out): Likewise. | |
32322 | (function_info::build_info::bb_to_rpo): Likewise. | |
32323 | (function_info::build_info::def_stack): Likewise. | |
32324 | (function_info::build_info::old_def_stack_limit): Likewise. | |
32325 | * rtl-ssa/internals.inl (function_info::build_info::record_reg_def): | |
32326 | Remove the regno argument. Push the previous definition onto the | |
32327 | definition stack where necessary. | |
32328 | * rtl-ssa/accesses.cc: Include internals.h. | |
32329 | * rtl-ssa/changes.cc: Likewise. | |
32330 | * rtl-ssa/blocks.cc: Likewise. | |
32331 | (function_info::build_info::build_info): Define. | |
32332 | (function_info::build_info::~build_info): Likewise. | |
32333 | (function_info::bb_walker): New class. | |
32334 | (function_info::bb_walker::bb_walker): Define. | |
32335 | (function_info::add_live_out_use): Convert a logarithmic-complexity | |
32336 | test into a linear one. Allow the same definition to be passed | |
32337 | multiple times. | |
32338 | (function_info::calculate_potential_phi_regs): Moved from | |
32339 | functions.cc. Take a build_info parameter and store the | |
32340 | information there instead. | |
32341 | (function_info::place_phis): New function. | |
32342 | (function_info::add_entry_block_defs): Update call to record_reg_def. | |
32343 | (function_info::calculate_ebb_live_in_for_debug): New function. | |
32344 | (function_info::add_phi_nodes): Use bb_phis to decide which | |
32345 | registers need phi nodes and initialize ebb_def_regs accordingly. | |
32346 | Do not add degenerate phis here. | |
32347 | (function_info::add_artificial_accesses): Use create_reg_use. | |
32348 | Assert that all definitions are listed in the DF LR sets. | |
32349 | Update call to record_reg_def. | |
32350 | (function_info::record_block_live_out): Record live-out register | |
32351 | values in the phis of successor blocks. Use the live-out set | |
32352 | when processing the last block in an EBB, instead of always | |
32353 | using the live-in sets of successor blocks. AND the live sets | |
32354 | with the set of registers that have been defined in the EBB, | |
32355 | rather than with all potential phi registers. Cope correctly | |
32356 | with branches back to the start of the current EBB. | |
32357 | (function_info::start_block): New function. | |
32358 | (function_info::end_block): Likewise. | |
32359 | (function_info::populate_phi_inputs): Likewise. | |
32360 | (function_info::create_ebbs): Likewise. | |
32361 | (function_info::process_all_blocks): Rewrite into a multi-phase | |
32362 | process. | |
32363 | * rtl-ssa/functions.cc: Include internals.h. | |
32364 | (function_info::calculate_potential_phi_regs): Move to blocks.cc. | |
32365 | (function_info::init_function_data): Remove caller. | |
32366 | * rtl-ssa/insns.cc: Include internals.h | |
32367 | (function_info::create_reg_use): New function. Lazily any | |
32368 | degenerate phis needed by the linear RPO view. | |
32369 | (function_info::record_use): Use create_reg_use. When processing | |
32370 | debug uses, use potential_phi_regs and test it before checking | |
32371 | whether the register is live on entry to the current EBB. Lazily | |
32372 | calculate ebb_live_in_for_debug. | |
32373 | (function_info::record_call_clobbers): Update call to record_reg_def. | |
32374 | (function_info::record_def): Likewise. | |
32375 | ||
32376 | 2021-02-15 Martin Liska <mliska@suse.cz> | |
32377 | ||
32378 | * toplev.c (init_asm_output): Free output of | |
32379 | gen_command_line_string function. | |
32380 | (process_options): Likewise. | |
32381 | ||
32382 | 2021-02-15 Martin Liska <mliska@suse.cz> | |
32383 | ||
32384 | * params.opt: Add 2 missing Param keywords. | |
32385 | ||
32386 | 2021-02-15 Eric Botcazou <ebotcazou@adacore.com> | |
32387 | ||
32388 | * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast. | |
32389 | ||
32390 | 2021-02-15 Jakub Jelinek <jakub@redhat.com> | |
32391 | ||
32392 | PR tree-optimization/99079 | |
32393 | * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove | |
32394 | useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead | |
32395 | require both type and TREE_TYPE (@1) to be integral types and either | |
32396 | type having smaller or equal precision, or TREE_TYPE (@1) being | |
32397 | unsigned type, or type being signed type. If TREE_TYPE (@1) | |
32398 | doesn't have wrapping overflow, perform the subtraction of one in | |
32399 | unsigned type. | |
32400 | ||
32401 | 2021-02-14 Jan Hubicka <hubicka@ucw.cz> | |
32402 | Richard Biener <rguether@suse.de> | |
32403 | ||
32404 | PR ipa/97346 | |
32405 | * ipa-reference.c (ipa_init): Only conditinally initialize | |
32406 | reference_vars_to_consider. | |
32407 | (propagate): Conditionally deninitialize reference_vars_to_consider. | |
32408 | (ipa_reference_write_optimization_summary): Sanity check that | |
32409 | reference_vars_to_consider is not allocated. | |
32410 | ||
32411 | 2021-02-13 Levy Hsu <admin@levyhsu.com> | |
32412 | ||
32413 | PR target/97417 | |
32414 | * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add | |
32415 | extend parameter to get_si_mem_base_reg declaration. | |
32416 | (get_si_mem_base_reg): Add extend parameter. Set it. | |
32417 | (analyze): Pass extend arg to get_si_mem_base_reg. | |
32418 | (transform): Likewise. Use it when rewriting mems. | |
32419 | * config/riscv/riscv.c (riscv_legitimize_move): Check for subword | |
32420 | loads and emit sign/zero extending load followed by subreg move. | |
32421 | ||
32422 | 2021-02-13 Jim Wilson <jimw@sifive.com> | |
32423 | ||
32424 | PR target/97417 | |
32425 | * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early | |
32426 | exit when !reload_completed. Only perform check for compressed reg | |
32427 | if reload_completed. | |
32428 | (riscv_rtx_costs): In MEM case, when optimizing for size and | |
32429 | shorten memrefs, if not compressible, then increase cost. | |
32430 | ||
32431 | 2021-02-13 Jakub Jelinek <jakub@redhat.com> | |
32432 | ||
32433 | PR rtl-optimization/98439 | |
32434 | * recog.c (pass_split_before_regstack::gate): Enable even when | |
32435 | pass_split_before_sched2 is enabled if -fselective-scheduling2 is | |
32436 | on. | |
32437 | ||
32438 | 2021-02-13 Jakub Jelinek <jakub@redhat.com> | |
32439 | ||
32440 | PR target/96166 | |
32441 | * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for | |
32442 | swap of V2SImode elements in memory into DImode memory rotate by 32. | |
32443 | ||
32444 | 2021-02-12 Martin Sebor <msebor@redhat.com> | |
32445 | ||
32446 | * tree-pretty-print.c (print_generic_expr_to_str): Update comment. | |
32447 | ||
32448 | 2021-02-12 Richard Sandiford <richard.sandiford@arm.com> | |
32449 | ||
32450 | * rtl-ssa/accesses.cc (function_info::make_use_available): Use | |
32451 | m_temp_obstack rather than m_obstack to allocate the temporary use. | |
32452 | ||
32453 | 2021-02-12 Richard Sandiford <richard.sandiford@arm.com> | |
32454 | ||
32455 | * df-problems.c (df_lr_bb_local_compute): Treat partial definitions | |
32456 | as read-modify operations. | |
32457 | ||
32458 | 2021-02-12 Richard Biener <rguenther@suse.de> | |
32459 | ||
32460 | PR middle-end/38474 | |
32461 | * ipa-fnsummary.c (unmodified_parm_1): Only walk when | |
32462 | fbi->aa_walk_budget is bigger than zero. Update | |
32463 | fbi->aa_walk_budget. | |
32464 | (param_change_prob): Likewise. | |
32465 | * ipa-prop.c (detect_type_change_from_memory_writes): | |
32466 | Properly account walk_aliased_vdefs. | |
32467 | (parm_preserved_before_stmt_p): Canonicalize updates. | |
32468 | (parm_ref_data_preserved_p): Likewise. | |
32469 | (parm_ref_data_pass_through_p): Likewise. | |
32470 | (determine_known_aggregate_parts): Account own alias queries. | |
32471 | ||
32472 | 2021-02-12 Martin Liska <mliska@suse.cz> | |
32473 | ||
32474 | * opts-common.c (decode_cmdline_option): Release werror_arg. | |
32475 | * opts.c (gen_producer_string): Release output of | |
32476 | gen_command_line_string. | |
32477 | ||
32478 | 2021-02-12 Richard Biener <rguenther@suse.de> | |
32479 | ||
32480 | PR tree-optimization/38474 | |
32481 | * params.opt (-param=max-store-chains-to-track=): New param. | |
32482 | (-param=max-stores-to-track=): Likewise. | |
32483 | * doc/invoke.texi (max-store-chains-to-track): Document. | |
32484 | (max-stores-to-track): Likewise. | |
32485 | * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains): | |
32486 | New. | |
32487 | (pass_store_merging::m_n_stores): Likewise. | |
32488 | (pass_store_merging::terminate_and_process_chain): Update | |
32489 | m_n_stores and m_n_chains. | |
32490 | (pass_store_merging::process_store): Likewise. Terminate | |
32491 | oldest chains if the number of stores or chains get too large. | |
32492 | (imm_store_chain_info::terminate_and_process_chain): Dump | |
32493 | chain length. | |
32494 | ||
32495 | 2021-02-11 Eric Botcazou <ebotcazou@adacore.com> | |
32496 | ||
32497 | * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to | |
32498 | the cold section, emit a nop before the directive if the previous | |
32499 | active instruction can throw. | |
32500 | ||
32501 | 2021-02-11 Peter Bergner <bergner@linux.ibm.com> | |
32502 | ||
32503 | PR target/99041 | |
32504 | * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict | |
32505 | memory addresses that are legal for quad word accesses. | |
32506 | ||
32507 | 2021-02-11 Andrea Corallo <andrea.corallo@arm.com> | |
32508 | ||
32509 | PR target/98931 | |
32510 | * config/arm/thumb2.md (*doloop_end_internal): Generate | |
32511 | alternative sequence to handle long range branches. | |
32512 | ||
32513 | 2021-02-11 Joel Hutton <joel.hutton@arm.com> | |
32514 | ||
32515 | PR tree-optimization/98772 | |
32516 | * optabs-tree.c (supportable_half_widening_operation): New function | |
32517 | to check for supportable V8QI->V8HI widening patterns. | |
32518 | * optabs-tree.h (supportable_half_widening_operation): New function. | |
32519 | * tree-vect-stmts.c (vect_create_half_widening_stmts): New function | |
32520 | to create promotion stmts for V8QI->V8HI widening patterns. | |
32521 | (vectorizable_conversion): Add case for V8QI->V8HI. | |
32522 | ||
32523 | 2021-02-11 Richard Biener <rguenther@suse.de> | |
32524 | ||
32525 | * sparseset.h (SPARSESET_ELT_BITS): Remove. | |
32526 | (SPARSESET_ELT_TYPE): Use unsigned int. | |
32527 | * fwprop.c: Do not include sparseset.h. | |
32528 | ||
32529 | 2021-02-10 Jakub Jelinek <jakub@redhat.com> | |
32530 | ||
32531 | PR c++/99035 | |
32532 | * varasm.c (declare_weak): For -fsyntax-only, allow even | |
32533 | TREE_ASM_WRITTEN function decls. | |
32534 | ||
32535 | 2021-02-10 Jakub Jelinek <jakub@redhat.com> | |
32536 | ||
32537 | PR target/99025 | |
32538 | * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2, | |
32539 | <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2, | |
32540 | <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2, | |
32541 | <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before | |
32542 | calling simplify_gen_subreg on it. | |
32543 | ||
32544 | 2021-02-10 Martin Liska <mliska@suse.cz> | |
32545 | ||
32546 | * config/nvptx/nvptx.c (nvptx_option_override): Use | |
32547 | flag_patchable_function_entry instead of the removed | |
32548 | function_entry_patch_area_size. | |
32549 | ||
32550 | 2021-02-10 Martin Liska <mliska@suse.cz> | |
32551 | ||
32552 | PR tree-optimization/99002 | |
32553 | PR tree-optimization/99026 | |
32554 | * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory | |
32555 | leak when adjacent cases are merged. | |
32556 | * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use | |
32557 | release_clusters. | |
32558 | (make_pass_lower_switch): Remove trailing whitespace. | |
32559 | * tree-switch-conversion.h (release_clusters): New. | |
32560 | ||
32561 | 2021-02-10 Richard Biener <rguenther@suse.de> | |
32562 | ||
32563 | PR rtl-optimization/99054 | |
32564 | * cfgrtl.c (rtl-optimization/99054): Return an auto_vec. | |
32565 | (fixup_partitions): Adjust. | |
32566 | (rtl_verify_edges): Likewise. | |
32567 | ||
32568 | 2021-02-10 Jakub Jelinek <jakub@redhat.com> | |
32569 | ||
32570 | PR middle-end/99007 | |
32571 | * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions, | |
32572 | temporarily disable gimplify_ctxp->into_ssa around gimplify_expr | |
32573 | calls. | |
32574 | ||
32575 | 2021-02-10 Richard Biener <rguenther@suse.de> | |
32576 | ||
32577 | PR ipa/99029 | |
32578 | * ipa-pure-const.c (propagate_malloc): Use an auto_vec<> | |
32579 | for callees. | |
32580 | ||
32581 | 2021-02-10 Richard Biener <rguenther@suse.de> | |
32582 | ||
32583 | PR tree-optimization/99024 | |
32584 | * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only | |
32585 | clear loop->aux if it is associated with the destroyed loop_vinfo. | |
32586 | ||
32587 | 2021-02-10 Martin Liska <mliska@suse.cz> | |
32588 | ||
32589 | PR tree-optimization/99002 | |
32590 | * gimple-if-to-switch.cc (find_conditions): Fix memory leak | |
32591 | in the function. | |
32592 | ||
32593 | 2021-02-10 Martin Liska <mliska@suse.cz> | |
32594 | ||
32595 | PR ipa/99003 | |
32596 | * ipa-icf.c (sem_item::add_reference): Fix memory leak when | |
32597 | a reference exists. | |
32598 | ||
32599 | 2021-02-10 Jakub Jelinek <jakub@redhat.com> | |
32600 | ||
32601 | PR debug/98755 | |
32602 | * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs | |
32603 | at class scope for DWARF5+. | |
32604 | ||
32605 | 2021-02-09 Eric Botcazou <ebotcazou@adacore.com> | |
32606 | ||
32607 | PR rtl-optimization/96015 | |
32608 | * reorg.c (skip_consecutive_labels): Minor comment tweaks. | |
32609 | (relax_delay_slots): When deleting a jump to the next active | |
32610 | instruction over a barrier, first delete the barrier if the | |
32611 | jump is the only way to reach the target label. | |
32612 | ||
32613 | 2021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
32614 | ||
32615 | * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul. | |
32616 | * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for | |
32617 | vector multiplies and vect.alu for SSRA. | |
32618 | * config/arm/aarch-common-protos.h (struct vector_cost_table): Define | |
32619 | vect.mul cost field. | |
32620 | * config/arm/aarch-cost-tables.h: Add entries for vect.mul. | |
32621 | * config/arm/arm.c: Likewise. | |
32622 | ||
32623 | 2021-02-09 Richard Biener <rguenther@suse.de> | |
32624 | ||
32625 | PR tree-optimization/98863 | |
32626 | * tree-ssa-sccvn.h (vn_avail::next_undo): Add. | |
32627 | * tree-ssa-sccvn.c (last_pushed_avail): New global. | |
32628 | (rpo_elim::eliminate_push_avail): Chain pushed avails. | |
32629 | (unwind_state::avail_top): Add. | |
32630 | (do_unwind): Rewrite unwinding of avail entries. | |
32631 | (do_rpo_vn): Initialize last_pushed_avail and | |
32632 | avail_top of the undo state. | |
32633 | ||
32634 | 2021-02-09 Jakub Jelinek <jakub@redhat.com> | |
32635 | ||
32636 | PR middle-end/99004 | |
32637 | * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from | |
32638 | const char * to char * and free those pointers after use. | |
32639 | ||
32640 | 2021-02-09 Richard Biener <rguenther@suse.de> | |
32641 | ||
32642 | PR tree-optimization/99017 | |
32643 | * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow | |
32644 | zero vector cost entries. | |
32645 | ||
32646 | 2021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
32647 | ||
32648 | PR middle-end/98974 | |
32649 | * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num | |
32650 | parameter in vectorizable_condition. | |
32651 | ||
32652 | 2021-02-08 Richard Biener <rguenther@suse.de> | |
32653 | ||
32654 | PR lto/96591 | |
32655 | * tree.c (walk_tree_1): Walk VECTOR_CST elements. | |
32656 | ||
32657 | 2021-02-08 Martin Liska <mliska@suse.cz> | |
32658 | ||
32659 | PR lto/98971 | |
32660 | * cfgexpand.c (pass_expand::execute): Parse per-function option | |
32661 | flag_patchable_function_entry and use it. | |
32662 | * common.opt: Remove function_entry_patch_area_size and | |
32663 | function_entry_patch_area_start global variables. | |
32664 | * opts.c (parse_and_check_patch_area): New function. | |
32665 | (common_handle_option): Use it. | |
32666 | * opts.h (parse_and_check_patch_area): New function. | |
32667 | * toplev.c (process_options): Parse and use | |
32668 | function_entry_patch_area_size. | |
32669 | ||
32670 | 2021-02-08 Martin Sebor <msebor@redhat.com> | |
32671 | ||
32672 | * doc/extend.texi (attribute malloc): Correct typos. | |
32673 | ||
32674 | 2021-02-05 Nathan Sidwell <nathan@acm.org> | |
32675 | ||
32676 | PR driver/98943 | |
32677 | * gcc.c (driver::maybe_run_linker): Check for input file | |
32678 | accessibility if not linking. | |
32679 | ||
32680 | 2021-02-05 Richard Biener <rguenther@suse.de> | |
32681 | ||
32682 | PR tree-optimization/98855 | |
32683 | * tree-vectorizer.h (add_stmt_cost): New overload. | |
32684 | * tree-vect-slp.c (li_cost_vec_cmp): New. | |
32685 | (vect_bb_slp_scalar_cost): Cost individual loop regions | |
32686 | separately. Account for the scalar instance root stmt. | |
32687 | ||
32688 | 2021-02-05 Tom de Vries <tdevries@suse.de> | |
32689 | ||
32690 | PR debug/98656 | |
32691 | * tree-switch-conversion.c (jump_table_cluster::emit): Add loc | |
32692 | argument. | |
32693 | (bit_test_cluster::emit): Reuse location_t for newly created | |
32694 | gswitch statement. | |
32695 | (switch_decision_tree::try_switch_expansion): Preserve | |
32696 | location_t. | |
32697 | * tree-switch-conversion.h: Change function signatures. | |
32698 | ||
32699 | 2021-02-05 Jakub Jelinek <jakub@redhat.com> | |
32700 | ||
32701 | PR target/98957 | |
32702 | * config/i386/i386-options.c (m_NONE, m_ALL): Define. | |
32703 | * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS, | |
32704 | X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U. | |
32705 | (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U. | |
32706 | ||
32707 | 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32708 | ||
32709 | * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin. | |
32710 | * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define. | |
32711 | * config/aarch64/arm_neon.h (__GET_HIGH): Delete. | |
32712 | (vget_high_f16): Reimplement using new builtin. | |
32713 | (vget_high_f32): Likewise. | |
32714 | (vget_high_f64): Likewise. | |
32715 | (vget_high_p8): Likewise. | |
32716 | (vget_high_p16): Likewise. | |
32717 | (vget_high_p64): Likewise. | |
32718 | (vget_high_s8): Likewise. | |
32719 | (vget_high_s16): Likewise. | |
32720 | (vget_high_s32): Likewise. | |
32721 | (vget_high_s64): Likewise. | |
32722 | (vget_high_u8): Likewise. | |
32723 | (vget_high_u16): Likewise. | |
32724 | (vget_high_u32): Likewise. | |
32725 | (vget_high_u64): Likewise. | |
32726 | ||
32727 | 2021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32728 | ||
32729 | * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin. | |
32730 | * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define. | |
32731 | * config/aarch64/arm_neon.h (__GET_LOW): Delete. | |
32732 | (vget_low_f16): Reimplement using new builtin. | |
32733 | (vget_low_f32): Likewise. | |
32734 | (vget_low_f64): Likewise. | |
32735 | (vget_low_p8): Likewise. | |
32736 | (vget_low_p16): Likewise. | |
32737 | (vget_low_p64): Likewise. | |
32738 | (vget_low_s8): Likewise. | |
32739 | (vget_low_s16): Likewise. | |
32740 | (vget_low_s32): Likewise. | |
32741 | (vget_low_s64): Likewise. | |
32742 | (vget_low_u8): Likewise. | |
32743 | (vget_low_u16): Likewise. | |
32744 | (vget_low_u32): Likewise. | |
32745 | (vget_low_u64): Likewise. | |
32746 | ||
32747 | 2021-02-05 Kito Cheng <kito.cheng@sifive.com> | |
32748 | ||
32749 | * gcc.c (print_multilib_info): Check all required argument is provided | |
32750 | by default arg. | |
32751 | ||
32752 | 2021-02-05 liuhongt <hongtao.liu@intel.com> | |
32753 | ||
32754 | PR target/98537 | |
32755 | * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't | |
32756 | generate integer mask comparison for 128/256-bits vector when | |
32757 | op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also | |
32758 | delete redundant !maskcmp condition. | |
32759 | (ix86_expand_int_vec_cmp): Ditto but no redundant deletion | |
32760 | here. | |
32761 | (ix86_expand_sse_movcc): Delete definition of maskcmp, add the | |
32762 | condition directly to if (maskcmp), add extra check for | |
32763 | cmpmode, it should be MODE_INT. | |
32764 | (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's | |
32765 | parameters op_true/op_false. | |
32766 | (ix86_use_mask_cmp_p): New. | |
32767 | ||
32768 | 2021-02-05 liuhongt <hongtao.liu@intel.com> | |
32769 | ||
32770 | PR target/98172 | |
32771 | * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL): | |
32772 | Remove m_GENERIC from ~list. | |
32773 | (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto. | |
32774 | ||
32775 | 2021-02-04 David Malcolm <dmalcolm@redhat.com> | |
32776 | ||
32777 | PR c/97932 | |
32778 | * diagnostic-show-locus.c (compatible_locations_p): Require | |
32779 | locations in the same macro map to be either both from the | |
32780 | macro definition, or both from the macro arguments. | |
32781 | ||
32782 | 2021-02-04 Jonathan Wright <jonathan.wright@arm.com> | |
32783 | ||
32784 | * config/aarch64/aarch64-simd-builtins.def: Add | |
32785 | [su]mull_hi_lane[q] builtin generator macros. | |
32786 | * config/aarch64/aarch64-simd.md | |
32787 | (aarch64_<su>mull_hi_lane<mode>_insn): Define. | |
32788 | (aarch64_<su>mull_hi_lane<mode>): Define. | |
32789 | (aarch64_<su>mull_hi_laneq<mode>_insn): Define. | |
32790 | (aarch64_<su>mull_hi_laneq<mode>): Define. | |
32791 | * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL | |
32792 | builtin instead of inline asm. | |
32793 | (vmull_high_lane_s32): Likewise. | |
32794 | (vmull_high_lane_u16): Likewise. | |
32795 | (vmull_high_lane_u32): Likewise. | |
32796 | (vmull_high_laneq_s16): Likewise. | |
32797 | (vmull_high_laneq_s32): Likewise. | |
32798 | (vmull_high_laneq_u16): Likewise. | |
32799 | (vmull_high_laneq_u32): Liekwise. | |
32800 | ||
32801 | 2021-02-04 Jonathan Wright <jonathan.wright@arm.com> | |
32802 | ||
32803 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n | |
32804 | builtin generator macros. | |
32805 | * config/aarch64/aarch64-simd.md | |
32806 | (aarch64_<su>mull_hi_n<mode>_insn): Define. | |
32807 | (aarch64_<su>mull_hi_n<mode>): Define. | |
32808 | * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin | |
32809 | instead of inline asm. | |
32810 | (vmull_high_n_s32): Likewise. | |
32811 | (vmull_high_n_u16): Likewise. | |
32812 | (vmull_high_n_u32): Likewise. | |
32813 | ||
32814 | 2021-02-04 Richard Biener <rguenther@suse.de> | |
32815 | ||
32816 | PR tree-optimization/98855 | |
32817 | * tree-vect-loop.c (vectorizable_phi): Do not cost | |
32818 | single-argument PHIs. | |
32819 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise. | |
32820 | * tree-vect-stmts.c (vectorizable_bswap): Also perform | |
32821 | costing for SLP operation. | |
32822 | ||
32823 | 2021-02-04 Martin Liska <mliska@suse.cz> | |
32824 | ||
32825 | * doc/extend.texi: Mention -mprefer-vector-width in target | |
32826 | attributes. | |
32827 | ||
32828 | 2021-02-03 Martin Sebor <msebor@redhat.com> | |
32829 | ||
32830 | PR tree-optimization/98937 | |
32831 | * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define. | |
32832 | Flush pointer_query cache. | |
32833 | ||
32834 | 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com> | |
32835 | ||
32836 | * config/rs6000/genfusion.pl (gen_2logical): Add missing | |
32837 | fixes based on patch review. | |
32838 | * config/rs6000/fusion.md: Regenerate file. | |
32839 | ||
32840 | 2021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com> | |
32841 | ||
32842 | * config/rs6000/t-rs6000: Comment out auto generation of | |
32843 | fusion.md for now. | |
32844 | ||
32845 | 2021-02-03 Andrew Stubbs <ams@codesourcery.com> | |
32846 | ||
32847 | * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908. | |
32848 | * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908. | |
32849 | (output_file_start): Add gfx908. | |
32850 | * config/gcn/gcn.opt (gpu_type): Add gfx908. | |
32851 | * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908. | |
32852 | (MULTILIB_DIRNAMES): Add gfx908. | |
32853 | * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define. | |
32854 | (main): Recognize gfx908. | |
32855 | * config/gcn/t-omp-device: Add gfx908. | |
32856 | ||
32857 | 2021-02-03 Jonathan Wright <jonathan.wright@arm.com> | |
32858 | ||
32859 | * config/aarch64/aarch64-simd-builtins.def: Add | |
32860 | [su]mlsl_hi_lane[q] builtin macro generators. | |
32861 | * config/aarch64/aarch64-simd.md | |
32862 | (aarch64_<su>mlsl_hi_lane<mode>_insn): Define. | |
32863 | (aarch64_<su>mlsl_hi_lane<mode>): Define. | |
32864 | (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define. | |
32865 | (aarch64_<su>mlsl_hi_laneq<mode>): Define. | |
32866 | * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL | |
32867 | builtin instead of inline asm. | |
32868 | (vmlsl_high_lane_s32): Likewise. | |
32869 | (vmlsl_high_lane_u16): Likewise. | |
32870 | (vmlsl_high_lane_u32): Likewise. | |
32871 | (vmlsl_high_laneq_s16): Likewise. | |
32872 | (vmlsl_high_laneq_s32): Likewise. | |
32873 | (vmlsl_high_laneq_u16): Likewise. | |
32874 | (vmlsl_high_laneq_u32): Likewise. | |
32875 | (vmlal_high_laneq_u32): Likewise. | |
32876 | ||
32877 | 2021-02-03 Jonathan Wright <jonathan.wright@arm.com> | |
32878 | ||
32879 | * config/aarch64/aarch64-simd-builtins.def: Add | |
32880 | [su]mlal_hi_lane[q] builtin generator macros. | |
32881 | * config/aarch64/aarch64-simd.md | |
32882 | (aarch64_<su>mlal_hi_lane<mode>_insn): Define. | |
32883 | (aarch64_<su>mlal_hi_lane<mode>): Define. | |
32884 | (aarch64_<su>mlal_hi_laneq<mode>_insn): Define. | |
32885 | (aarch64_<su>mlal_hi_laneq<mode>): Define. | |
32886 | * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL | |
32887 | builtin instead of inline asm. | |
32888 | (vmlal_high_lane_s32): Likewise. | |
32889 | (vmlal_high_lane_u16): Likewise. | |
32890 | (vmlal_high_lane_u32): Likewise. | |
32891 | (vmlal_high_laneq_s16): Likewise. | |
32892 | (vmlal_high_laneq_s32): Likewise. | |
32893 | (vmlal_high_laneq_u16): Likewise. | |
32894 | (vmlal_high_laneq_u32): Likewise. | |
32895 | ||
32896 | 2021-02-03 Jonathan Wright <jonathan.wright@arm.com> | |
32897 | ||
32898 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n | |
32899 | builtin generator macros. | |
32900 | * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn): | |
32901 | Define. | |
32902 | (aarch64_<su>mlsl_hi_n<mode>): Define. | |
32903 | * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin | |
32904 | instead of inline asm. | |
32905 | (vmlsl_high_n_s32): Likewise. | |
32906 | (vmlsl_high_n_u16): Likewise. | |
32907 | (vmlsl_high_n_u32): Likewise. | |
32908 | ||
32909 | 2021-02-03 Jonathan Wright <jonathan.wright@arm.com> | |
32910 | ||
32911 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n | |
32912 | builtin generator macros. | |
32913 | * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn): | |
32914 | Define. | |
32915 | (aarch64_<su>mlal_hi_n<mode>): Define. | |
32916 | * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin | |
32917 | instead of inline asm. | |
32918 | (vmlal_high_n_s32): Likewise. | |
32919 | (vmlal_high_n_u16): Likewise. | |
32920 | (vmlal_high_n_u32): Likewise. | |
32921 | ||
32922 | 2021-02-03 Jonathan Wright <jonathan.wright@arm.com> | |
32923 | ||
32924 | * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin | |
32925 | generator macros. | |
32926 | * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>): | |
32927 | Rename to... | |
32928 | (aarch64_<su>mlal_hi<mode>_insn): This. | |
32929 | (aarch64_<su>mlal_hi<mode>): Define. | |
32930 | * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin | |
32931 | instead of inline asm. | |
32932 | (vmlal_high_s16): Likewise. | |
32933 | (vmlal_high_s32): Likewise. | |
32934 | (vmlal_high_u8): Likewise. | |
32935 | (vmlal_high_u16): Likewise. | |
32936 | (vmlal_high_u32): Likewise. | |
32937 | ||
32938 | 2021-02-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
32939 | ||
32940 | * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data() | |
32941 | after calling alter_subreg() on a (mem). | |
32942 | ||
32943 | 2021-02-03 Martin Liska <mliska@suse.cz> | |
32944 | ||
32945 | PR lto/98912 | |
32946 | * lto-streamer-out.c (produce_lto_section): Fill up missing | |
32947 | padding. | |
32948 | * lto-streamer.h (struct lto_section): Add _padding field. | |
32949 | ||
32950 | 2021-02-03 Richard Biener <rguenther@suse.de> | |
32951 | ||
32952 | * lto-streamer.c (lto_get_section_name): Free temporary | |
32953 | buffer. | |
32954 | * tree-loop-distribution.c | |
32955 | (loop_distribution::merge_dep_scc_partitions): Free edge data. | |
32956 | ||
32957 | 2021-02-03 Jakub Jelinek <jakub@redhat.com> | |
32958 | ||
32959 | PR middle-end/97487 | |
32960 | * ifcvt.c (noce_can_force_operand): New function. | |
32961 | (noce_emit_move_insn): Use it. | |
32962 | (noce_try_sign_mask): Likewise. Formatting fix. | |
32963 | ||
32964 | 2021-02-03 Jakub Jelinek <jakub@redhat.com> | |
32965 | ||
32966 | PR middle-end/97971 | |
32967 | * lra-constraints.c (process_alt_operands): For inline asm, don't call | |
32968 | fatal_insn, but instead return false. | |
32969 | ||
32970 | 2021-02-03 Jakub Jelinek <jakub@redhat.com> | |
32971 | ||
32972 | PR tree-optimization/98287 | |
32973 | * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander | |
32974 | for V1DImode. | |
32975 | ||
32976 | 2021-02-03 Tamar Christina <tamar.christina@arm.com> | |
32977 | ||
32978 | PR tree-optimization/98928 | |
32979 | * tree-vect-loop.c (vect_analyze_loop_2): Change | |
32980 | STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN. | |
32981 | * tree-vect-slp-patterns.c (complex_pattern::build): Likewise. | |
32982 | * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New. | |
32983 | (class _stmt_vec_info): Add slp_vect_pattern_only_p. | |
32984 | ||
32985 | 2021-02-02 Richard Biener <rguenther@suse.de> | |
32986 | ||
32987 | * gimple-loop-interchange.cc (prepare_data_references): | |
32988 | Release vectors. | |
32989 | * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. | |
32990 | * tree-ssa-loop-im.c (hoist_memory_references): Likewise. | |
32991 | * tree-vect-stmts.c (vectorizable_condition): Do not | |
32992 | allocate vectors. | |
32993 | (vectorizable_comparison): Likewise. | |
32994 | ||
32995 | 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32996 | ||
32997 | * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin. | |
32998 | * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern. | |
32999 | * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin. | |
33000 | (vrsqrteq_u32): Likewise. | |
33001 | ||
33002 | 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33003 | ||
33004 | * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin. | |
33005 | * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define. | |
33006 | (aarch64_sqxtun2<mode>_be): Likewise. | |
33007 | (aarch64_sqxtun2<mode>): Likewise. | |
33008 | * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin. | |
33009 | (vqmovun_high_s32): Likewise. | |
33010 | (vqmovun_high_s64): Likewise. | |
33011 | * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define. | |
33012 | ||
33013 | 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33014 | ||
33015 | * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use | |
33016 | AUTO_FP flags. | |
33017 | (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags. | |
33018 | ||
33019 | 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33020 | ||
33021 | * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90, | |
33022 | fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, | |
33023 | fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi, | |
33024 | ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low, | |
33025 | fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low, | |
33026 | fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high, | |
33027 | fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high, | |
33028 | fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags. | |
33029 | ||
33030 | 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33031 | ||
33032 | * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define. | |
33033 | * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r, | |
33034 | ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags. | |
33035 | ||
33036 | 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33037 | ||
33038 | * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2, | |
33039 | uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags. | |
33040 | ||
33041 | 2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33042 | ||
33043 | * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount, | |
33044 | vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_, | |
33045 | vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_, | |
33046 | ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq, | |
33047 | udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr, | |
33048 | ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n, | |
33049 | ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n, | |
33050 | ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use | |
33051 | NONE builtin flags. | |
33052 | ||
33053 | 2021-02-02 Jakub Jelinek <jakub@redhat.com> | |
33054 | ||
33055 | PR tree-optimization/98848 | |
33056 | * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if | |
33057 | STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def. | |
33058 | ||
33059 | 2021-02-02 Kito Cheng <kito.cheng@sifive.com> | |
33060 | ||
33061 | PR target/98743 | |
33062 | * expr.c: Check mode before calling store_expr. | |
33063 | ||
33064 | 2021-02-02 Christophe Lyon <christophe.lyon@linaro.org> | |
33065 | ||
33066 | * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U. | |
33067 | (VORNQ): Remove. | |
33068 | * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn | |
33069 | instruction using expression ior. | |
33070 | (mve_vornq_u<mode>): New expander. | |
33071 | (mve_vornq_f<mode>): Use ior code instead of unspec. | |
33072 | * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove. | |
33073 | ||
33074 | 2021-02-02 Alexandre Oliva <oliva@adacore.com> | |
33075 | ||
33076 | * tree-nested.c (convert_nonlocal_reference_op): Move | |
33077 | current_function_decl restore after re-gimplification. | |
33078 | (convert_local_reference_op): Likewise. | |
33079 | ||
33080 | 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33081 | ||
33082 | * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2): | |
33083 | Define builtins. | |
33084 | * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): | |
33085 | Define. | |
33086 | (aarch64_rshrn<mode>_insn_be): Likewise. | |
33087 | (aarch64_rshrn<mode>): Likewise. | |
33088 | (aarch64_rshrn2<mode>_insn_le): Likewise. | |
33089 | (aarch64_rshrn2<mode>_insn_be): Likewise. | |
33090 | (aarch64_rshrn2<mode>): Likewise. | |
33091 | * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN. | |
33092 | * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement | |
33093 | using builtin. | |
33094 | (vrshrn_high_n_s32): Likewise. | |
33095 | (vrshrn_high_n_s64): Likewise. | |
33096 | (vrshrn_high_n_u16): Likewise. | |
33097 | (vrshrn_high_n_u32): Likewise. | |
33098 | (vrshrn_high_n_u64): Likewise. | |
33099 | (vrshrn_n_s16): Likewise. | |
33100 | (vrshrn_n_s32): Likewise. | |
33101 | (vrshrn_n_s64): Likewise. | |
33102 | (vrshrn_n_u16): Likewise. | |
33103 | (vrshrn_n_u32): Likewise. | |
33104 | (vrshrn_n_u64): Likewise. | |
33105 | ||
33106 | 2021-02-01 Sergei Trofimovich <siarheit@google.com> | |
33107 | ||
33108 | PR tree-optimization/98499 | |
33109 | * ipa-modref.c (analyze_ssa_name_flags): treat RVO | |
33110 | conservatively and assume all possible side-effects. | |
33111 | ||
33112 | 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33113 | ||
33114 | * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi, | |
33115 | vec_unpacku_hi_): Define builtins. | |
33116 | * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using | |
33117 | builtin. | |
33118 | (vmovl_high_s16): Likewise. | |
33119 | (vmovl_high_s32): Likewise. | |
33120 | (vmovl_high_u8): Likewise. | |
33121 | (vmovl_high_u16): Likewise. | |
33122 | (vmovl_high_u32): Likewise. | |
33123 | ||
33124 | 2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33125 | ||
33126 | * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl): | |
33127 | Define builtins. | |
33128 | * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New | |
33129 | pattern. | |
33130 | * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL, | |
33131 | UNSPEC_UABDL. | |
33132 | * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using | |
33133 | builtin. | |
33134 | (vabdl_s16): Likewise. | |
33135 | (vabdl_s32): Likewise. | |
33136 | (vabdl_u8): Likewise. | |
33137 | (vabdl_u16): Likewise. | |
33138 | (vabdl_u32): Likewise. | |
33139 | * config/aarch64/iterators.md (ABDL): New int iterator. | |
33140 | (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL. | |
33141 | ||
33142 | 2021-02-01 Martin Sebor <msebor@redhat.com> | |
33143 | ||
33144 | * tree.h (BLOCK_VARS): Add comment. | |
33145 | (BLOCK_SUBBLOCKS): Same. | |
33146 | (BLOCK_SUPERCONTEXT): Same. | |
33147 | (BLOCK_ABSTRACT_ORIGIN): Same. | |
33148 | (inlined_function_outer_scope_p): Same. | |
33149 | ||
33150 | 2021-02-01 Martin Sebor <msebor@redhat.com> | |
33151 | ||
33152 | PR middle-end/97172 | |
33153 | * attribs.c (attr_access::free_lang_data): Define new function. | |
33154 | * attribs.h (attr_access::free_lang_data): Declare new function. | |
33155 | ||
33156 | 2021-02-01 Richard Biener <rguenther@suse.de> | |
33157 | ||
33158 | * vec.h (auto_vec::auto_vec): Add memory stat parameters | |
33159 | and pass them on. | |
33160 | * bitmap.h (auto_bitmap::auto_bitmap): Likewise. | |
33161 | ||
33162 | 2021-02-01 Tamar Christina <tamar.christina@arm.com> | |
33163 | ||
33164 | * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>, | |
33165 | aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands. | |
33166 | ||
33167 | 2021-02-01 Richard Biener <rguenther@suse.de> | |
33168 | ||
33169 | PR rtl-optimization/98863 | |
33170 | * config/i386/i386-features.c (convert_scalars_to_vector): | |
33171 | Set DF_RD_PRUNE_DEAD_DEFS. | |
33172 | ||
33173 | 2021-01-31 Eric Botcazou <ebotcazou@adacore.com> | |
33174 | ||
33175 | * system.h (SIZE_MAX): Define if not already defined. | |
33176 | ||
33177 | 2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com> | |
33178 | ||
33179 | * config/rs6000/genfusion.pl (gen_2logical): New function to | |
33180 | generate patterns for logical-logical fusion. | |
33181 | * config/rs6000/fusion.md: Regenerated patterns. | |
33182 | * config/rs6000/rs6000-cpus.def: Add | |
33183 | OPTION_MASK_P10_FUSION_2LOGICAL. | |
33184 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
33185 | Enable logical-logical fusion for p10. | |
33186 | * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical. | |
33187 | ||
33188 | 2021-01-30 David Edelsohn <dje.gcc@gmail.com> | |
33189 | ||
33190 | * config/rs6000/rs6000.opt: Add periods to new AIX options. | |
33191 | ||
33192 | 2021-01-30 David Edelsohn <dje.gcc@gmail.com> | |
33193 | ||
33194 | * config/rs6000/rs6000.opt (mabi=vec-extabi): New. | |
33195 | (mabi=vec-default): New. | |
33196 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define | |
33197 | __EXTABI__ for AIX Vector extended ABI. | |
33198 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector | |
33199 | extabi info. | |
33200 | (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31 | |
33201 | are non-volatile. | |
33202 | * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default. | |
33203 | ||
33204 | 2021-01-30 Jakub Jelinek <jakub@redhat.com> | |
33205 | ||
33206 | * config/i386/i386-features.c (remove_partial_avx_dependency): Clear | |
33207 | DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans. | |
33208 | ||
33209 | 2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com> | |
33210 | ||
33211 | PR target/97701 | |
33212 | * lra-constraints.c (in_class_p): Don't narrow class only for REG | |
33213 | or MEM. | |
33214 | ||
33215 | 2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com> | |
33216 | ||
33217 | * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add | |
33218 | clauses for CODE_FOR_vsx_xvcvuxddp_scale and | |
33219 | CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code. | |
33220 | ||
33221 | 2021-01-29 Andrew MacLeod <amacleod@redhat.com> | |
33222 | ||
33223 | PR tree-optimization/98866 | |
33224 | * gimple-range-gori.h (gori_compute:set_range_invariant): New. | |
33225 | * gimple-range-gori.cc (gori_map::set_range_invariant): New. | |
33226 | (gori_map::m_maybe_invariant): Rename from all_outgoing. | |
33227 | (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant. | |
33228 | (gori_map::is_export_p): Ditto. | |
33229 | (gori_map::calculate_gori): Ditto. | |
33230 | (gori_compute::set_range_invariant): New. | |
33231 | * gimple-range.cc (gimple_ranger::range_of_stmt): Set range | |
33232 | invariant for pointers evaluating to [1, +INF]. | |
33233 | ||
33234 | 2021-01-29 Richard Biener <rguenther@suse.de> | |
33235 | ||
33236 | PR rtl-optimization/98863 | |
33237 | * config/i386/i386-features.c (remove_partial_avx_dependency): | |
33238 | Do not perform DF analysis. | |
33239 | (pass_data_remove_partial_avx_dependency): Remove | |
33240 | TODO_df_finish. | |
33241 | ||
33242 | 2021-01-29 Jonathan Wright <jonathan.wright@arm.com> | |
33243 | ||
33244 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n | |
33245 | builtin generator macros. | |
33246 | * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>): | |
33247 | Define. | |
33248 | * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin | |
33249 | instead of inline asm. | |
33250 | (vmull_n_s32): Likewise. | |
33251 | (vmull_n_u16): Likewise. | |
33252 | (vmull_n_u32): Likewise. | |
33253 | ||
33254 | 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33255 | ||
33256 | * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2): | |
33257 | Define builtins. | |
33258 | * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3): | |
33259 | Rename to... | |
33260 | (aarch64_<sur>abdl2<mode>): ... This. | |
33261 | (<sur>sadv16qi): Adjust use of above. | |
33262 | * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using | |
33263 | builtin. | |
33264 | (vabdl_high_s16): Likewise. | |
33265 | (vabdl_high_s32): Likewise. | |
33266 | (vabdl_high_u8): Likewise. | |
33267 | (vabdl_high_u16): Likewise. | |
33268 | (vabdl_high_u32): Likewise. | |
33269 | ||
33270 | 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33271 | ||
33272 | * config/aarch64/aarch64-simd-builtins.def (sabal2): Define | |
33273 | builtin. | |
33274 | (uabal2): Likewise. | |
33275 | * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New | |
33276 | pattern. | |
33277 | * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and | |
33278 | UNSPEC_UABAL2. | |
33279 | * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using | |
33280 | builtin. | |
33281 | (vabal_high_s16): Likewise. | |
33282 | (vabal_high_s32): Likewise. | |
33283 | (vabal_high_u8): Likewise. | |
33284 | (vabal_high_u16): Likewise. | |
33285 | (vabal_high_u32): Likewise. | |
33286 | * config/aarch64/iterators.md (ABAL2): New mode iterator. | |
33287 | (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2. | |
33288 | ||
33289 | 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33290 | ||
33291 | * config/aarch64/aarch64-simd-builtins.def (sabal): Define | |
33292 | builtin. | |
33293 | (uabal): Likewise. | |
33294 | * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4): | |
33295 | Rename to... | |
33296 | (aarch64_<sur>abal<mode>): ... This | |
33297 | (<sur>sadv16qi): Adust use of the above. | |
33298 | * config/aarch64/arm_neon.h (vabal_s8): Reimplement using | |
33299 | builtin. | |
33300 | (vabal_s16): Likewise. | |
33301 | (vabal_s32): Likewise. | |
33302 | (vabal_u8): Likewise. | |
33303 | (vabal_u16): Likewise. | |
33304 | (vabal_u32): Likewise. | |
33305 | ||
33306 | 2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33307 | ||
33308 | * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv): | |
33309 | Define builtins. | |
33310 | * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>): | |
33311 | Define. | |
33312 | * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using | |
33313 | builtin. | |
33314 | (vaddlv_s16): Likewise. | |
33315 | (vaddlv_u8): Likewise. | |
33316 | (vaddlv_u16): Likewise. | |
33317 | (vaddlvq_s8): Likewise. | |
33318 | (vaddlvq_s16): Likewise. | |
33319 | (vaddlvq_s32): Likewise. | |
33320 | (vaddlvq_u8): Likewise. | |
33321 | (vaddlvq_u16): Likewise. | |
33322 | (vaddlvq_u32): Likewise. | |
33323 | (vaddlv_s32): Likewise. | |
33324 | (vaddlv_u32): Likewise. | |
33325 | * config/aarch64/iterators.md (VDQV_L): New mode iterator. | |
33326 | (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV. | |
33327 | (Vwstype): New mode attribute. | |
33328 | (Vwsuf): Likewise. | |
33329 | (VWIDE_S): Likewise. | |
33330 | (USADDLV): New int iterator. | |
33331 | (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV. | |
33332 | ||
33333 | 2021-01-29 Jonathan Wright <jonathan.wright@arm.com> | |
33334 | ||
33335 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q] | |
33336 | builtin generator macros. | |
33337 | * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>): | |
33338 | Define. | |
33339 | * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin | |
33340 | instead of inline asm. | |
33341 | (vmlsl_lane_s32): Likewise. | |
33342 | (vmlsl_lane_u16): Likewise. | |
33343 | (vmlsl_lane_u32): Likewise. | |
33344 | (vmlsl_laneq_s16): Likewise. | |
33345 | (vmlsl_laneq_s32): Likewise. | |
33346 | (vmlsl_laneq_u16): Likewise. | |
33347 | (vmlsl_laneq_u32): Likewise. | |
33348 | ||
33349 | 2021-01-29 Richard Biener <rguenther@suse.de> | |
33350 | ||
33351 | * doc/invoke.texi (--param max-gcse-memory): Document unit | |
33352 | of size. | |
33353 | * gcse.c (gcse_or_cprop_is_too_expensive): Adjust. | |
33354 | * params.opt (--param max-gcse-memory): Adjust default and | |
33355 | document unit of size. | |
33356 | ||
33357 | 2021-01-29 Richard Biener <rguenther@suse.de> | |
33358 | ||
33359 | PR rtl-optimization/98863 | |
33360 | * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned | |
33361 | HOST_WIDE_INT for the memory estimate. | |
33362 | ||
33363 | 2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com> | |
33364 | Richard Biener <rguenther@suse.de> | |
33365 | ||
33366 | PR tree-optimization/97627 | |
33367 | * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): | |
33368 | Do not analyze fake edges. | |
33369 | ||
33370 | 2021-01-29 Richard Biener <rguenther@suse.de> | |
33371 | ||
33372 | PR rtl-optimization/98144 | |
33373 | * df.h (df_mir_bb_info): Add con_visited member. | |
33374 | * df-problems.c (df_mir_alloc): Initialize con_visited, | |
33375 | do not fully populate IN and OUT. | |
33376 | (df_mir_reset): Likewise. | |
33377 | (df_mir_confluence_0): Set con_visited. | |
33378 | (df_mir_confluence_n): Properly handle implicitely | |
33379 | fully populated IN and OUT as designated by con_visited | |
33380 | and update con_visited accordingly. | |
33381 | ||
33382 | 2021-01-29 Jakub Jelinek <jakub@redhat.com> | |
33383 | ||
33384 | PR target/98849 | |
33385 | * config/arm/vec-common.md (mve_vshlq_<supf><mode>, | |
33386 | vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add | |
33387 | && !TARGET_REALLY_IWMMXT to conditions. | |
33388 | ||
33389 | 2021-01-29 Jakub Jelinek <jakub@redhat.com> | |
33390 | ||
33391 | PR debug/98331 | |
33392 | * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing | |
33393 | a BARRIER. | |
33394 | ||
33395 | 2021-01-28 Marek Polacek <polacek@redhat.com> | |
33396 | ||
33397 | PR c++/94775 | |
33398 | * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in | |
33399 | the main variant, maybe reset it in its variants too. | |
33400 | * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match. | |
33401 | (check_aligned_type): Check if TYPE_USER_ALIGN match. | |
33402 | ||
33403 | 2021-01-28 Christophe Lyon <christophe.lyon@linaro.org> | |
33404 | ||
33405 | PR target/98730 | |
33406 | * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector | |
33407 | of constant zero for comparisons. | |
33408 | ||
33409 | 2021-01-28 Michael Meissner <meissner@linux.ibm.com> | |
33410 | ||
33411 | * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add | |
33412 | support for mapping built-in function names for long double | |
33413 | built-in functions if long double is IEEE 128-bit. | |
33414 | ||
33415 | 2021-01-28 Jonathan Wright <jonathan.wright@arm.com> | |
33416 | ||
33417 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n | |
33418 | builtin generator macros. | |
33419 | * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>): | |
33420 | Define. | |
33421 | * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin | |
33422 | instead of inline asm. | |
33423 | (vmlsl_n_s32): Likewise. | |
33424 | (vmlsl_n_u16): Likewise. | |
33425 | (vmlsl_n_u32): Likewise. | |
33426 | ||
33427 | 2021-01-28 Jonathan Wright <jonathan.wright@arm.com> | |
33428 | ||
33429 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n | |
33430 | builtin generator macros. | |
33431 | * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>): | |
33432 | Define. | |
33433 | * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin | |
33434 | instead of inline asm. | |
33435 | (vmlal_n_s32): Likewise. | |
33436 | (vmlal_n_u16): Likewise. | |
33437 | (vmlal_n_u32): Likewise. | |
33438 | ||
33439 | 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33440 | ||
33441 | * config/aarch64/aarch64-simd-builtins.def (shrn2): Define | |
33442 | builtin. | |
33443 | * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le): | |
33444 | Define. | |
33445 | (aarch64_shrn2<mode>_insn_be): Likewise. | |
33446 | (aarch64_shrn2<mode>): Likewise. | |
33447 | * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement | |
33448 | using builtins. | |
33449 | (vshrn_high_n_s32): Likewise. | |
33450 | (vshrn_high_n_s64): Likewise. | |
33451 | (vshrn_high_n_u16): Likewise. | |
33452 | (vshrn_high_n_u32): Likewise. | |
33453 | (vshrn_high_n_u64): Likewise. | |
33454 | ||
33455 | 2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33456 | ||
33457 | * config/aarch64/aarch64-simd-builtins.def (shrn): Define | |
33458 | builtin. | |
33459 | * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): | |
33460 | Define. | |
33461 | (aarch64_shrn<mode>_insn_be): Likewise. | |
33462 | (aarch64_shrn<mode>): Likewise. | |
33463 | * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using | |
33464 | builtins. | |
33465 | (vshrn_n_s32): Likewise. | |
33466 | (vshrn_n_s64): Likewise. | |
33467 | (vshrn_n_u16): Likewise. | |
33468 | (vshrn_n_u32): Likewise. | |
33469 | (vshrn_n_u64): Likewise. | |
33470 | * config/aarch64/iterators.md (vn_mode): New mode attribute. | |
33471 | ||
33472 | 2021-01-28 Richard Biener <rguenther@suse.de> | |
33473 | ||
33474 | PR rtl-optimization/80960 | |
33475 | * dse.c (check_mem_read_rtx): Call get_addr on the | |
33476 | offsetted address. | |
33477 | ||
33478 | 2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com> | |
33479 | David Edelsohn <dje.gcc@gmail.com> | |
33480 | ||
33481 | PR target/98799 | |
33482 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
33483 | Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT | |
33484 | when -m32. | |
33485 | * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var): | |
33486 | Delete. | |
33487 | * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the | |
33488 | wrapper call rs6000_expand_vector_set_var for cleanup. Call | |
33489 | rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8 | |
33490 | directly. | |
33491 | (rs6000_expand_vector_set_var): Delete. | |
33492 | (rs6000_expand_vector_set_var_p9): Make static. | |
33493 | (rs6000_expand_vector_set_var_p8): Make static. | |
33494 | ||
33495 | 2021-01-28 Xing GUO <higuoxing@gmail.com> | |
33496 | ||
33497 | * common/config/riscv/riscv-common.c | |
33498 | (riscv_subset_list::parsing_subset_version): Fix -march option parsing | |
33499 | when `p` extension exists. | |
33500 | ||
33501 | 2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com> | |
33502 | ||
33503 | PR rtl-optimization/97684 | |
33504 | * ira.c (ira): Call ira_set_pseudo_classes before | |
33505 | update_equiv_regs when it is necessary. | |
33506 | ||
33507 | 2021-01-27 Jakub Jelinek <jakub@redhat.com> | |
33508 | ||
33509 | PR target/98853 | |
33510 | * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use | |
33511 | %w0, %w1 and %2 instead of %0, %1 and %2. | |
33512 | ||
33513 | 2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com> | |
33514 | ||
33515 | * config/rs6000/genfusion.pl: New script to generate | |
33516 | define_insn_and_split patterns so combine can arrange fused | |
33517 | instructions next to each other. | |
33518 | * config/rs6000/fusion.md: New file, generated fused instruction | |
33519 | patterns for combine. | |
33520 | * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate. | |
33521 | (non_update_memory_operand): New predicate. | |
33522 | * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and | |
33523 | OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and | |
33524 | POWERPC_MASKS. | |
33525 | * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add | |
33526 | prototype. | |
33527 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
33528 | Automatically set OPTION_MASK_P10_FUSION and | |
33529 | OPTION_MASK_P10_FUSION_LD_CMPI if target is power10. | |
33530 | (rs600_opt_masks): Allow -mpower10-fusion | |
33531 | in function attributes. | |
33532 | (address_is_non_pfx_d_or_x): New function. | |
33533 | * config/rs6000/rs6000.h: Add MASK_P10_FUSION. | |
33534 | * config/rs6000/rs6000.md: Include fusion.md. | |
33535 | * config/rs6000/rs6000.opt: Add -mpower10-fusion | |
33536 | and -mpower10-fusion-ld-cmpi. | |
33537 | * config/rs6000/t-rs6000: Add dependencies involving fusion.md. | |
33538 | ||
33539 | 2021-01-27 Jonathan Wright <jonathan.wright@arm.com> | |
33540 | ||
33541 | * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal | |
33542 | builtin generator macros. | |
33543 | * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>): | |
33544 | Rename to... | |
33545 | (aarch64_<su>mlal<mode>): This. | |
33546 | * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin | |
33547 | instead of inline asm. | |
33548 | (vmlal_s16): Likewise. | |
33549 | (vmlal_s32): Likewise. | |
33550 | (vmlal_u8): Likewise. | |
33551 | (vmlal_u16): Likewise. | |
33552 | (vmlal_u32): Likewise. | |
33553 | ||
33554 | 2021-01-27 Richard Biener <rguenther@suse.de> | |
33555 | ||
33556 | PR tree-optimization/98854 | |
33557 | * tree-vect-slp.c (vect_build_slp_tree_2): Also build | |
33558 | PHIs from scalars when the number of CTORs matches the | |
33559 | number of children. | |
33560 | ||
33561 | 2021-01-27 Jonathan Wright <jonathan.wright@arm.com> | |
33562 | ||
33563 | * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin | |
33564 | generator macro. | |
33565 | * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>): | |
33566 | Rename to... | |
33567 | (aarch64_mls_n<mode>): This. | |
33568 | * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin | |
33569 | instead of asm. | |
33570 | (vmls_n_s32): Likewise. | |
33571 | (vmls_n_u16): Likewise. | |
33572 | (vmls_n_u32): Likewise. | |
33573 | (vmlsq_n_s16): Likewise. | |
33574 | (vmlsq_n_s32): Likewise. | |
33575 | (vmlsq_n_u16): Likewise. | |
33576 | (vmlsq_n_u32): Likewise. | |
33577 | ||
33578 | 2021-01-27 Jonathan Wright <jonathan.wright@arm.com> | |
33579 | ||
33580 | * config/aarch64/aarch64-simd-builtins.def: Add mls builtin | |
33581 | generator macro. | |
33582 | * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather | |
33583 | than asm. | |
33584 | (vmls_s16): Likewise. | |
33585 | (vmls_s32): Likewise. | |
33586 | (vmls_u8): Likewise. | |
33587 | (vmls_u16): Likewise. | |
33588 | (vmls_u32): Likewise. | |
33589 | (vmlsq_s8): Likewise. | |
33590 | (vmlsq_s16): Likewise. | |
33591 | (vmlsq_s32): Likewise. | |
33592 | (vmlsq_u8): Likewise. | |
33593 | (vmlsq_u16): Likewise. | |
33594 | (vmlsq_u32): Likewise. | |
33595 | ||
33596 | 2021-01-27 Jonathan Wright <jonathan.wright@arm.com> | |
33597 | ||
33598 | * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin | |
33599 | generator macro. | |
33600 | * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>): | |
33601 | Rename to... | |
33602 | (aarch64_mla_n<mode>): This. | |
33603 | * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin | |
33604 | instead of asm. | |
33605 | (vmla_n_s32): Likewise. | |
33606 | (vmla_n_u16): Likewise. | |
33607 | (vmla_n_u32): Likewise. | |
33608 | (vmlaq_n_s16): Likewise. | |
33609 | (vmlaq_n_s32): Likewise. | |
33610 | (vmlaq_n_u16): Likewise. | |
33611 | (vmlaq_n_u32): Likewise. | |
33612 | ||
33613 | 2021-01-27 liuhongt <hongtao.liu@intel.com> | |
33614 | ||
33615 | PR target/98833 | |
33616 | * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition. | |
33617 | (*sse2_eq<mode>3): Ditto. | |
33618 | ||
33619 | 2021-01-27 Jakub Jelinek <jakub@redhat.com> | |
33620 | ||
33621 | * tree-pass.h (PROP_trees): Rename to ... | |
33622 | (PROP_gimple): ... this. | |
33623 | * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple. | |
33624 | * passes.c (execute_function_dump, execute_function_todo, | |
33625 | execute_one_ipa_transform_pass, execute_one_pass): Likewise. | |
33626 | * varpool.c (ctor_for_folding): Likewise. | |
33627 | ||
33628 | 2021-01-27 Jakub Jelinek <jakub@redhat.com> | |
33629 | ||
33630 | PR tree-optimization/97260 | |
33631 | * varpool.c: Include tree-pass.h. | |
33632 | (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY | |
33633 | non-TREE_SIDE_EFFECTS automatic variables. | |
33634 | ||
33635 | 2021-01-26 Paul Fee <paul.f.fee@gmail.com> | |
33636 | ||
33637 | * doc/cpp.texi (__cplusplus): Document value for -std=c++23 | |
33638 | or -std=gnu++23. | |
33639 | * doc/invoke.texi: Document -std=c++23 and -std=gnu++23. | |
33640 | * dwarf2out.c (highest_c_language): Recognise C++20 and C++23. | |
33641 | (gen_compile_unit_die): Recognise C++23. | |
33642 | ||
33643 | 2021-01-26 Jakub Jelinek <jakub@redhat.com> | |
33644 | ||
33645 | PR bootstrap/98839 | |
33646 | * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int | |
33647 | in comparison. | |
33648 | ||
33649 | 2021-01-26 Jakub Jelinek <jakub@redhat.com> | |
33650 | ||
33651 | PR target/98681 | |
33652 | * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): | |
33653 | Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt) | |
33654 | and INTVAL (mask). Add && INTVAL (mask) > 0 condition. | |
33655 | ||
33656 | 2021-01-26 Richard Biener <rguenther@suse.de> | |
33657 | ||
33658 | * gimple-pretty-print.c (dump_binary_rhs): Handle | |
33659 | VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR. | |
33660 | ||
33661 | 2021-01-26 Richard Biener <rguenther@suse.de> | |
33662 | ||
33663 | PR middle-end/98726 | |
33664 | * tree.h (vector_cst_int_elt): Remove. | |
33665 | * tree.c (vector_cst_int_elt): Use poly_wide_int for computations, | |
33666 | make static. | |
33667 | ||
33668 | 2021-01-26 Andrew Stubbs <ams@codesourcery.com> | |
33669 | ||
33670 | * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions | |
33671 | for V64DFmode min/max reductions. | |
33672 | ||
33673 | 2021-01-26 Jakub Jelinek <jakub@redhat.com> | |
33674 | ||
33675 | * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large | |
33676 | as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as | |
33677 | two halves, one with x and the other with const0_rtx, ordered | |
33678 | depending on endianity. | |
33679 | ||
33680 | 2021-01-26 Alexandre Oliva <oliva@adacore.com> | |
33681 | ||
33682 | * gimplify.c (gimplify_decl_expr): Skip asan marking calls for | |
33683 | temporaries not seen in binding block, and not about to be | |
33684 | added as gimple variables. | |
33685 | ||
33686 | 2021-01-25 Martin Sebor <msebor@redhat.com> | |
33687 | ||
33688 | PR c++/98646 | |
33689 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text. | |
33690 | ||
33691 | 2021-01-25 Martin Liska <mliska@suse.cz> | |
33692 | ||
33693 | * value-prof.c (get_nth_most_common_value): Use %s instead | |
33694 | of %qs string. | |
33695 | ||
33696 | 2021-01-25 Jakub Jelinek <jakub@redhat.com> | |
33697 | ||
33698 | PR debug/98811 | |
33699 | * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if | |
33700 | readelf -wi is able to read the emitted .debug_info back. | |
33701 | * configure: Regenerated. | |
33702 | ||
33703 | 2021-01-25 Martin Liska <mliska@suse.cz> | |
33704 | ||
33705 | PR gcov-profile/98739 | |
33706 | * common.opt: Add missing sign symbol. | |
33707 | * value-prof.c (get_nth_most_common_value): Restore handling | |
33708 | of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and | |
33709 | PROFILE_REPRODUCIBILITY_MULTITHREADED. | |
33710 | ||
33711 | 2021-01-25 Richard Biener <rguenther@suse.de> | |
33712 | ||
33713 | PR middle-end/98807 | |
33714 | * tree.c (vector_element_bits): Always use precision of | |
33715 | the element type for boolean vectors. | |
33716 | ||
33717 | 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
33718 | ||
33719 | * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds. | |
33720 | (ENDFILE_SPEC): Evaluate qnolinkcmds. | |
33721 | ||
33722 | 2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
33723 | ||
33724 | * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and | |
33725 | nostartfiles handling since this is already done by | |
33726 | LINK_COMMAND_SPEC. Evaluate qnolinkcmds. | |
33727 | (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this | |
33728 | is already done by LINK_COMMAND_SPEC. | |
33729 | (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since | |
33730 | this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds | |
33731 | evaluation. | |
33732 | ||
33733 | 2021-01-25 Jakub Jelinek <jakub@redhat.com> | |
33734 | ||
33735 | PR testsuite/98771 | |
33736 | * fold-const-call.c (host_size_t_cst_p): Renamed to ... | |
33737 | (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT | |
33738 | value rather than host size_t. | |
33739 | (fold_const_call): Change type of s2 from size_t to | |
33740 | unsigned HOST_WIDE_INT. Use size_t_cst_p instead of | |
33741 | host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX) | |
33742 | instead of s2 as last argument. | |
33743 | ||
33744 | 2021-01-25 Tamar Christina <tamar.christina@arm.com> | |
33745 | ||
33746 | * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1, | |
33747 | VCMLA_OP, VCMUL_OP): New. | |
33748 | * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0. | |
33749 | * config/arm/neon.md (cmul<conj_op><mode>3): New. | |
33750 | * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ, | |
33751 | UNSPEC_VCMUL_CONJ): New. | |
33752 | * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>, | |
33753 | cml<fcmac1><conj_op><mode>4): New. | |
33754 | ||
33755 | 2021-01-23 Jakub Jelinek <jakub@redhat.com> | |
33756 | ||
33757 | PR testsuite/97301 | |
33758 | * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute. | |
33759 | ||
33760 | 2021-01-22 Jonathan Wright <jonathan.wright@arm.com> | |
33761 | ||
33762 | * config/aarch64/aarch64-simd-builtins.def: Add mla builtin | |
33763 | generator macro. | |
33764 | * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather | |
33765 | than asm. | |
33766 | (vmla_s16): Likewise. | |
33767 | (vmla_s32): Likewise. | |
33768 | (vmla_u8): Likewise. | |
33769 | (vmla_u16): Likewise. | |
33770 | (vmla_u32): Likewise. | |
33771 | (vmlaq_s8): Likewise. | |
33772 | (vmlaq_s16): Likewise. | |
33773 | (vmlaq_s32): Likewise. | |
33774 | (vmlaq_u8): Likewise. | |
33775 | (vmlaq_u16): Likewise. | |
33776 | (vmlaq_u32): Likewise. | |
33777 | ||
33778 | 2021-01-22 David Malcolm <dmalcolm@redhat.com> | |
33779 | ||
33780 | * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex | |
33781 | directive. | |
33782 | ||
33783 | 2021-01-22 Jakub Jelinek <jakub@redhat.com> | |
33784 | ||
33785 | PR debug/98796 | |
33786 | * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no | |
33787 | filenames to emit, still emit the required 0 index directory and | |
33788 | filename entries that match DW_AT_comp_dir and DW_AT_name of the | |
33789 | compilation unit. | |
33790 | ||
33791 | 2021-01-22 Marek Polacek <polacek@redhat.com> | |
33792 | ||
33793 | PR c++/98545 | |
33794 | * doc/invoke.texi: Update C++ ABI Version 15 description. | |
33795 | ||
33796 | 2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33797 | ||
33798 | PR tree-optimization/98766 | |
33799 | * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when | |
33800 | comparing against type size with param_avoid_fma_max_bits. | |
33801 | ||
33802 | 2021-01-22 Richard Biener <rguenther@suse.de> | |
33803 | ||
33804 | PR middle-end/98793 | |
33805 | * tree.c (vector_element_bits): Key single-bit bool vector on | |
33806 | integer mode rather than not vector mode. | |
33807 | ||
33808 | 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com> | |
33809 | ||
33810 | PR target/98093 | |
33811 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
33812 | Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later | |
33813 | platforms. | |
33814 | * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update | |
33815 | to call different path for P8 and P9. | |
33816 | (rs6000_expand_vector_set_var_p9): New function. | |
33817 | (rs6000_expand_vector_set_var_p8): New function. | |
33818 | ||
33819 | 2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com> | |
33820 | ||
33821 | PR target/79251 | |
33822 | PR target/98065 | |
33823 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
33824 | Ajdust variable index vec_insert from address dereference to | |
33825 | ARRAY_REF(VIEW_CONVERT_EXPR) tree expression. | |
33826 | * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var): | |
33827 | New declaration. | |
33828 | * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function. | |
33829 | ||
33830 | 2021-01-22 Martin Liska <mliska@suse.cz> | |
33831 | ||
33832 | PR gcov-profile/98739 | |
33833 | * profile.c (compute_value_histograms): Drop time profile for | |
33834 | -fprofile-reproducible=multithreaded. | |
33835 | ||
33836 | 2021-01-22 Nathan Sidwell <nathan@acm.org> | |
33837 | ||
33838 | * gcc.c (process_command): Don't check OPT_SPECIAL_input_file | |
33839 | existence here. | |
33840 | ||
33841 | 2021-01-22 Richard Biener <rguenther@suse.de> | |
33842 | ||
33843 | PR middle-end/98773 | |
33844 | * tree-data-ref.c (initalize_matrix_A): Revert previous | |
33845 | change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT. | |
33846 | ||
33847 | 2021-01-22 Jakub Jelinek <jakub@redhat.com> | |
33848 | ||
33849 | PR tree-optimization/90248 | |
33850 | * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X), | |
33851 | X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove | |
33852 | simplifications. | |
33853 | (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X), | |
33854 | X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications. | |
33855 | ||
33856 | 2021-01-22 Jakub Jelinek <jakub@redhat.com> | |
33857 | ||
33858 | PR tree-optimization/98255 | |
33859 | * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign | |
33860 | extend index - low_bound from sizetype's precision rather than index | |
33861 | precision. | |
33862 | (get_addr_base_and_unit_offset_1): Likewise. | |
33863 | * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise. | |
33864 | * gimple-fold.c (fold_const_aggregate_ref_1): Likewise. | |
33865 | ||
33866 | 2021-01-22 Richard Biener <rguenther@suse.de> | |
33867 | ||
33868 | PR tree-optimization/98786 | |
33869 | * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid | |
33870 | adding new uses of abnormals. Verify we deal with a conditional | |
33871 | conversion. | |
33872 | ||
33873 | 2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
33874 | ||
33875 | PR target/98636 | |
33876 | * optc-save-gen.awk: Add arm_fp16_format to checked_options. | |
33877 | ||
33878 | 2021-01-22 liuhongt <hongtao.liu@intel.com> | |
33879 | ||
33880 | PR target/96891 | |
33881 | PR target/98348 | |
33882 | * config/i386/sse.md (VI_128_256): New mode iterator. | |
33883 | (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3, | |
33884 | *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1, | |
33885 | *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New | |
33886 | define_insn_and_split to lower avx512 vector comparison to avx | |
33887 | version when dest is vector. | |
33888 | (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3): | |
33889 | define_insn_and_split for negating the comparison result. | |
33890 | * config/i386/predicates.md (float_vector_all_ones_operand): | |
33891 | New predicate. | |
33892 | * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use | |
33893 | general NOT operator without UNSPEC_MASKOP. | |
33894 | ||
33895 | 2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com> | |
33896 | ||
33897 | PR rtl-optimization/98777 | |
33898 | * lra-int.h (lra_pmode_pseudo): New extern. | |
33899 | * lra.c (lra_pmode_pseudo): New global. | |
33900 | (lra): Set it up. | |
33901 | * lra-eliminations.c (eliminate_regs_in_insn): Use it. | |
33902 | ||
33903 | 2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com> | |
33904 | ||
33905 | * fwprop.c (fwprop_propagation::classify_result): Allow | |
33906 | (subreg (mem)) simplifications. | |
33907 | ||
33908 | 2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33909 | ||
33910 | * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>): | |
33911 | Split into... | |
33912 | (aarch64_sqdmlal<mode>): ... This... | |
33913 | (aarch64_sqdmlsl<mode>): ... And this. | |
33914 | (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into... | |
33915 | (aarch64_sqdmlal_lane<mode>): ... This... | |
33916 | (aarch64_sqdmlsl_lane<mode>): ... And this. | |
33917 | (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into... | |
33918 | (aarch64_sqdmlsl_laneq<mode>): ... This... | |
33919 | (aarch64_sqdmlal_laneq<mode>): ... And this. | |
33920 | (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into... | |
33921 | (aarch64_sqdmlsl_n<mode>): ... This... | |
33922 | (aarch64_sqdmlal_n<mode>): ... And this. | |
33923 | (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into... | |
33924 | (aarch64_sqdmlal2<mode>_internal): ... This... | |
33925 | (aarch64_sqdmlsl2<mode>_internal): ... And this. | |
33926 | ||
33927 | 2021-01-21 Christophe Lyon <christophe.lyon@linaro.org> | |
33928 | ||
33929 | * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type. | |
33930 | ||
33931 | 2021-01-21 Andrea Corallo <andrea.corallo@arm.com> | |
33932 | ||
33933 | PR target/96372 | |
33934 | * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document. | |
33935 | ||
33936 | 2021-01-21 liuhongt <hongtao.liu@intel.com> | |
33937 | ||
33938 | PR rtl-optimization/98694 | |
33939 | * regcprop.c (copy_value): If SRC had been assigned a mode | |
33940 | narrower than the copy, we can't link DEST into the chain even | |
33941 | they have same hard_regno_nregs(i.e. HImode/SImode in i386 | |
33942 | backend). | |
33943 | ||
33944 | 2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33945 | ||
33946 | * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>): | |
33947 | Convert to define_insn_and_split. Split into simple move when moving | |
33948 | bottom element. | |
33949 | ||
33950 | 2021-01-20 Segher Boessenkool <segher@kernel.crashing.org> | |
33951 | ||
33952 | * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert. | |
33953 | Adjust comment. Simplify code. | |
33954 | ||
33955 | 2021-01-20 Jakub Jelinek <jakub@redhat.com> | |
33956 | ||
33957 | PR debug/98765 | |
33958 | * dwarf2out.c (reset_indirect_string): Also reset indirect strings | |
33959 | with DW_FORM_line_strp form. | |
33960 | (prune_unused_types_update_strings): Don't add into debug_str_hash | |
33961 | indirect strings with DW_FORM_line_strp form. | |
33962 | (adjust_name_comp_dir): New function. | |
33963 | (dwarf2out_finish): Call it on CU DIEs after resetting | |
33964 | debug_line_str_hash. | |
33965 | ||
33966 | 2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com> | |
33967 | ||
33968 | PR rtl-optimization/98722 | |
33969 | * lra-eliminations.c (eliminate_regs_in_insn): Check that target | |
33970 | has no 3-op add insn to transform insns containing two pluses. | |
33971 | ||
33972 | 2021-01-20 Richard Biener <rguenther@suse.de> | |
33973 | ||
33974 | * hwint.h (add_hwi): New function. | |
33975 | (mul_hwi): Likewise. | |
33976 | * tree-data-ref.c (initialize_matrix_A): Properly translate | |
33977 | tree constants and avoid HOST_WIDE_INT_MIN. | |
33978 | (lambda_matrix_row_add): Avoid undefined integer overflow | |
33979 | and return true on such overflow. | |
33980 | (lambda_matrix_right_hermite): Handle overflow from | |
33981 | lambda_matrix_row_add gracefully. Simplify previous fix. | |
33982 | (analyze_subscript_affine_affine): Likewise. | |
33983 | ||
33984 | 2021-01-20 Eugene Rozenfeld <erozen@microsoft.com> | |
33985 | ||
33986 | PR tree-optimization/96674 | |
33987 | * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1 | |
33988 | x >= y && y != XXX_MIN --> x > y - 1 | |
33989 | ||
33990 | 2021-01-20 Richard Sandiford <richard.sandiford@arm.com> | |
33991 | ||
33992 | PR tree-optimization/98535 | |
33993 | * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared. | |
33994 | If the high and low permutes are the same, remove the high permutes | |
33995 | from the working set and only continue with the low ones. | |
33996 | ||
33997 | 2021-01-20 Jakub Jelinek <jakub@redhat.com> | |
33998 | ||
33999 | PR tree-optimization/98721 | |
34000 | * builtins.c (access_ref::inform_access): Don't assume | |
34001 | SSA_NAME_IDENTIFIER must be non-NULL. Print messages about | |
34002 | object whenever allocfn is NULL, rather than only when DECL_P | |
34003 | is true. Use %qE instead of %qD for that. Formatting fixes. | |
34004 | ||
34005 | 2021-01-20 Richard Biener <rguenther@suse.de> | |
34006 | ||
34007 | PR tree-optimization/98758 | |
34008 | * tree-data-ref.c (int_divides_p): Use lambda_int arguments. | |
34009 | (lambda_matrix_right_hermite): Avoid undefinedness with | |
34010 | signed integer abs and multiplication. | |
34011 | (analyze_subscript_affine_affine): Use lambda_int. | |
34012 | ||
34013 | 2021-01-20 David Malcolm <dmalcolm@redhat.com> | |
34014 | ||
34015 | PR debug/98751 | |
34016 | * dwarf2out.c (output_line_info): Rename static variable | |
34017 | "generation", moving it out of the function to... | |
34018 | (output_line_info_generation): New. | |
34019 | (init_sections_and_labels): Likewise, renaming the variable to... | |
34020 | (init_sections_and_labels_generation): New. | |
34021 | (dwarf2out_c_finalize): Reset the new variables. | |
34022 | ||
34023 | 2021-01-19 Martin Sebor <msebor@redhat.com> | |
34024 | ||
34025 | PR middle-end/98664 | |
34026 | * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for | |
34027 | all functions, even if they're not declared artificial or inline. | |
34028 | * tree.c (tree_inlined_location): Use macro expansion location | |
34029 | only if scope traversal fails to expose one. | |
34030 | ||
34031 | 2021-01-19 Richard Sandiford <richard.sandiford@arm.com> | |
34032 | ||
34033 | PR rtl-optimization/92294 | |
34034 | * alias.c (compare_base_symbol_refs): Take an extra parameter | |
34035 | and add the distance between two symbols to it. Enshrine in | |
34036 | comments that -1 means "either 0 or 1, but we can't tell | |
34037 | which at compile time". | |
34038 | (memrefs_conflict_p): Update call accordingly. | |
34039 | (rtx_equal_for_memref_p): Likewise. Take the distance between symbols | |
34040 | into account. | |
34041 | ||
34042 | 2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34043 | ||
34044 | * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl, | |
34045 | sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn, | |
34046 | uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane, | |
34047 | sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n, | |
34048 | sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, | |
34049 | sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane, | |
34050 | sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq, | |
34051 | sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq, | |
34052 | sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n, | |
34053 | uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah, | |
34054 | sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq, | |
34055 | sqmovun): Use NONE flags. | |
34056 | ||
34057 | 2021-01-19 Richard Biener <rguenther@suse.de> | |
34058 | ||
34059 | PR ipa/98330 | |
34060 | * ipa-modref.c (analyze_stmt): Only record a summary for a | |
34061 | direct call. | |
34062 | ||
34063 | 2021-01-19 Richard Biener <rguenther@suse.de> | |
34064 | ||
34065 | PR middle-end/98638 | |
34066 | * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT. | |
34067 | ||
34068 | 2021-01-19 Daniel Hellstrom <daniel@gaisler.com> | |
34069 | ||
34070 | * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add | |
34071 | built-in define __FIX_LEON3FT_TN0018. | |
34072 | ||
34073 | 2021-01-19 Richard Biener <rguenther@suse.de> | |
34074 | ||
34075 | PR ipa/97673 | |
34076 | * tree-inline.c (tree_function_versioning): Set input_location | |
34077 | to UNKNOWN_LOCATION throughout the function. | |
34078 | ||
34079 | 2021-01-19 Tobias Burnus <tobias@codesourcery.com> | |
34080 | ||
34081 | PR fortran/98476 | |
34082 | * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr. | |
34083 | ||
34084 | 2021-01-19 Martin Jambor <mjambor@suse.cz> | |
34085 | ||
34086 | PR ipa/98690 | |
34087 | * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check | |
34088 | whether non-call exceptions allow removal of a statement. | |
34089 | (isra_analyze_call): Pass the appropriate function to | |
34090 | ssa_name_only_returned_p. | |
34091 | ||
34092 | 2021-01-19 Geng Qi <gengqi@linux.alibaba.com> | |
34093 | ||
34094 | * config/riscv/arch-canonicalize (longext_sort): New function for | |
34095 | sorting 'multi-letter'. | |
34096 | * config/riscv/multilib-generator: Adjusting the loop of 'alt' in | |
34097 | 'alts'. The 'arch' may not be the first of 'alts'. | |
34098 | (_expand_combination): Add underline for the 'ext' without '*'. | |
34099 | This is because, a single-letter extension can always be treated well | |
34100 | with a '_' prefix, but it cannot be separated out if it is appended | |
34101 | to a multi-letter. | |
34102 | ||
34103 | 2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com> | |
34104 | ||
34105 | PR target/97847 | |
34106 | * ira.c (ira): Skip abnormal critical edge splitting. | |
34107 | ||
34108 | 2021-01-18 Jakub Jelinek <jakub@redhat.com> | |
34109 | ||
34110 | PR tree-optimization/98727 | |
34111 | * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of | |
34112 | second .MUL_OVERFLOW operand for signed multiplication with overflow | |
34113 | checking if the second operand of multiplication is not constant. | |
34114 | ||
34115 | 2021-01-18 David Edelsohn <dje.gcc@gmail.com> | |
34116 | ||
34117 | * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX | |
34118 | defaults to version 4. | |
34119 | ||
34120 | 2021-01-18 David Malcolm <dmalcolm@redhat.com> | |
34121 | ||
34122 | * attribs.h (fndecl_dealloc_argno): New decl. | |
34123 | * builtins.c (call_dealloc_argno): Split out second half of | |
34124 | function into... | |
34125 | (fndecl_dealloc_argno): New. | |
34126 | * doc/extend.texi (Common Function Attributes): Document the | |
34127 | interaction between the analyzer and the malloc attribute. | |
34128 | * doc/invoke.texi (Static Analyzer Options): Likewise. | |
34129 | ||
34130 | 2021-01-17 David Edelsohn <dje.gcc@gmail.com> | |
34131 | ||
34132 | * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override | |
34133 | dwarf_version to 4. | |
34134 | * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
34135 | ||
34136 | 2021-01-17 Martin Jambor <mjambor@suse.cz> | |
34137 | ||
34138 | PR ipa/98222 | |
34139 | * cgraph.c (clone_of_p): Check also former_clone_of as we climb | |
34140 | the clone tree. | |
34141 | ||
34142 | 2021-01-17 Mark Wielaard <mark@klomp.org> | |
34143 | ||
34144 | * common.opt (gdwarf-): Init(5). | |
34145 | * doc/invoke.texi (-gdwarf): Document default to 5. | |
34146 | ||
34147 | 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com> | |
34148 | ||
34149 | * builtin-types.def | |
34150 | (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename | |
34151 | to... | |
34152 | (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR): | |
34153 | ...this. Add extra argument. | |
34154 | * gimplify.c (omp_default_clause): Ensure that event handle is | |
34155 | firstprivate in a task region. | |
34156 | (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH. | |
34157 | (gimplify_adjust_omp_clauses): Likewise. | |
34158 | * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to | |
34159 | BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR. | |
34160 | * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags | |
34161 | if detach clause specified. Add detach argument when generating | |
34162 | call to GOMP_task. | |
34163 | * omp-low.c (scan_sharing_clauses): Setup data environment for detach | |
34164 | clause. | |
34165 | (finish_taskreg_scan): Move field for variable containing the event | |
34166 | handle to the front of the struct. | |
34167 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix | |
34168 | ordering. | |
34169 | * tree-nested.c (convert_nonlocal_omp_clauses): Handle | |
34170 | OMP_CLAUSE_DETACH clause. | |
34171 | (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause. | |
34172 | * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH. | |
34173 | * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH. | |
34174 | Fix ordering. | |
34175 | (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix | |
34176 | ordering. | |
34177 | (walk_tree_1): Handle OMP_CLAUSE_DETACH. | |
34178 | ||
34179 | 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
34180 | ||
34181 | * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten | |
34182 | multilib directory names. Use MULTILIB_REQUIRED instead of | |
34183 | MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div | |
34184 | -mcustom-fpu-cfg=fph2 multilib. | |
34185 | ||
34186 | 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
34187 | ||
34188 | * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value. | |
34189 | (nios2_init_fpu_configs): Provide register values for new | |
34190 | -mcustom-fpu-cfg=fph2 option variant. | |
34191 | * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option | |
34192 | variant. | |
34193 | ||
34194 | 2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
34195 | ||
34196 | * config/nios2/nios2.c (nios2_custom_check_insns): Remove | |
34197 | custom instruction warnings. | |
34198 | ||
34199 | 2021-01-16 Jakub Jelinek <jakub@redhat.com> | |
34200 | ||
34201 | PR tree-optimization/96669 | |
34202 | * match.pd ((CST << x) & 1 -> x == 0): New simplification. | |
34203 | ||
34204 | 2021-01-16 Jakub Jelinek <jakub@redhat.com> | |
34205 | ||
34206 | PR tree-optimization/96271 | |
34207 | * passes.def: Pass false argument to first two pass_cd_dce | |
34208 | instances and true to last instance. Add comment that | |
34209 | last instance rewrites no longer addressed locals. | |
34210 | * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and | |
34211 | initialize it. | |
34212 | (pass_cd_dce::set_pass_param): New method. | |
34213 | (pass_cd_dce::execute): Return TODO_update_address_taken from | |
34214 | last cd_dce instance. | |
34215 | ||
34216 | 2021-01-15 Carl Love <cel@us.ibm.com> | |
34217 | ||
34218 | * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod): | |
34219 | New defines. | |
34220 | * config/rs6000/altivec.md (VIlong): Move define to file vsx.md. | |
34221 | * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI, | |
34222 | DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI, | |
34223 | DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI, | |
34224 | MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI): | |
34225 | Add builtin define. | |
34226 | (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions. | |
34227 | * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV, | |
34228 | VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH): | |
34229 | New overloaded definitions. | |
34230 | (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI, | |
34231 | P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI, | |
34232 | P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI, | |
34233 | P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI, | |
34234 | P10V_BUILTIN_MULHU_V4SI]: Add case | |
34235 | statement for builtins. | |
34236 | * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI. | |
34237 | * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md. | |
34238 | (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions. | |
34239 | (vsx_mul_v2di): Add if TARGET_POWER10 statement. | |
34240 | (vsx_udiv_v2di): Add if TARGET_POWER10 statement. | |
34241 | (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3, | |
34242 | mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3): | |
34243 | Add define_insn, mode is VIlong. | |
34244 | * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod): | |
34245 | Add builtin descriptions. | |
34246 | ||
34247 | 2021-01-15 Eric Botcazou <ebotcazou@adacore.com> | |
34248 | ||
34249 | * final.c (final_start_function_1): Reset force_source_line. | |
34250 | ||
34251 | 2021-01-15 Jakub Jelinek <jakub@redhat.com> | |
34252 | ||
34253 | PR tree-optimization/96669 | |
34254 | * match.pd (((1 << A) & 1) != 0 -> A == 0, | |
34255 | ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by | |
34256 | possibly different power of two constants and to right shift too. | |
34257 | ||
34258 | 2021-01-15 Jakub Jelinek <jakub@redhat.com> | |
34259 | ||
34260 | PR tree-optimization/96681 | |
34261 | * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification. | |
34262 | ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise. | |
34263 | ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise. | |
34264 | ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise. | |
34265 | ||
34266 | 2021-01-15 Alexandre Oliva <oliva@adacore.com> | |
34267 | ||
34268 | * opts.c (gen_command_line_string): Exclude -dumpbase-ext. | |
34269 | ||
34270 | 2021-01-15 Tamar Christina <tamar.christina@arm.com> | |
34271 | ||
34272 | * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4, | |
34273 | cmul<conj_op><mode>3): New. | |
34274 | * config/aarch64/iterators.md (UNSPEC_FCMUL, | |
34275 | UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ, | |
34276 | UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180, | |
34277 | FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1, | |
34278 | sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New. | |
34279 | (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180. | |
34280 | (rot_op): Renamed to conj_op. | |
34281 | * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4, | |
34282 | cmul<conj_op><mode>3): New. | |
34283 | * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4, | |
34284 | cmul<conj_op><mode>3): New. | |
34285 | ||
34286 | 2021-01-15 David Malcolm <dmalcolm@redhat.com> | |
34287 | ||
34288 | PR bootstrap/98696 | |
34289 | * diagnostic.c | |
34290 | (selftest::test_print_parseable_fixits_bytes_vs_display_columns): | |
34291 | Escape the tempfile name when constructing the expected output. | |
34292 | ||
34293 | 2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34294 | ||
34295 | * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>): | |
34296 | Rename to... | |
34297 | (aarch64_<su>mlsl_hi<mode>): ... This. | |
34298 | (aarch64_<su>mlsl_hi<mode>): Define. | |
34299 | (*aarch64_<su>mlsl<mode): Rename to... | |
34300 | (aarch64_<su>mlsl<mode): ... This. | |
34301 | * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl, | |
34302 | smlsl_hi, umlsl_hi): Define builtins. | |
34303 | * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16, | |
34304 | vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32, | |
34305 | vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8, | |
34306 | vmlsl_u16, vmlsl_u32): Reimplement with builtins. | |
34307 | ||
34308 | 2021-01-15 Uroš Bizjak <ubizjak@gmail.com> | |
34309 | ||
34310 | * config/i386/i386-c.c (ix86_target_macros): | |
34311 | Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition. | |
34312 | ||
34313 | 2021-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
34314 | ||
34315 | PR target/88836 | |
34316 | * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs. | |
34317 | * Makefile.in (RTL_SSA_H): New variable. | |
34318 | * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule. | |
34319 | * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare. | |
34320 | * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after | |
34321 | pass_combine. | |
34322 | * config/aarch64/aarch64-cc-fusion.cc: New file. | |
34323 | ||
34324 | 2021-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
34325 | ||
34326 | * recog.h (insn_change_watermark::~insn_change_watermark): Avoid | |
34327 | calling cancel_changes for changes that no longer exist. | |
34328 | ||
34329 | 2021-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
34330 | ||
34331 | * rtl-ssa/functions.h (function_info::ref_defs): Rename to... | |
34332 | (function_info::reg_defs): ...this. | |
34333 | * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to... | |
34334 | (function_info::reg_defs): ...this. | |
34335 | ||
34336 | 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org> | |
34337 | ||
34338 | PR target/71233 | |
34339 | * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. | |
34340 | ||
34341 | 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org> | |
34342 | ||
34343 | Revert: | |
34344 | 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org> | |
34345 | ||
34346 | PR target/71233 | |
34347 | * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. | |
34348 | ||
34349 | 2021-01-15 Richard Biener <rguenther@suse.de> | |
34350 | ||
34351 | PR tree-optimization/96376 | |
34352 | * tree-vect-stmts.c (get_load_store_type): Disregard alignment | |
34353 | for VMAT_INVARIANT. | |
34354 | ||
34355 | 2021-01-15 Martin Liska <mliska@suse.cz> | |
34356 | ||
34357 | * doc/install.texi: Document that some tests need pytest module. | |
34358 | * doc/sourcebuild.texi: Likewise. | |
34359 | ||
34360 | 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org> | |
34361 | ||
34362 | PR target/71233 | |
34363 | * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. | |
34364 | ||
34365 | 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org> | |
34366 | ||
34367 | * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry. | |
34368 | (mve_vshrq_n_u<mode>_imm): Likewise. | |
34369 | * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ... | |
34370 | * config/arm/vec-common.md: ... here. | |
34371 | ||
34372 | 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org> | |
34373 | ||
34374 | * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to | |
34375 | vec-commond.md. | |
34376 | * config/arm/neon.md (vashl<mode>3): Delete. | |
34377 | * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New. | |
34378 | (vasl<mode>3): New expander. | |
34379 | ||
34380 | 2021-01-15 Richard Biener <rguenther@suse.de> | |
34381 | ||
34382 | PR tree-optimization/98685 | |
34383 | * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling | |
34384 | of vector extern defs. | |
34385 | ||
34386 | 2021-01-14 David Malcolm <dmalcolm@redhat.com> | |
34387 | ||
34388 | PR jit/98586 | |
34389 | * diagnostic.c (diagnostic_kind_text): Break out this array | |
34390 | from... | |
34391 | (diagnostic_build_prefix): ...here. | |
34392 | (fancy_abort): Detect when diagnostic_initialize has not yet been | |
34393 | called and fall back to a minimal implementation of printing the | |
34394 | ICE, rather than segfaulting in internal_error. | |
34395 | ||
34396 | 2021-01-14 David Malcolm <dmalcolm@redhat.com> | |
34397 | ||
34398 | * diagnostic.c (diagnostic_initialize): Eliminate | |
34399 | parseable_fixits_p in favor of initializing extra_output_kind from | |
34400 | GCC_EXTRA_DIAGNOSTIC_OUTPUT. | |
34401 | (convert_column_unit): New function, split out from... | |
34402 | (diagnostic_converted_column): ...this. | |
34403 | (print_parseable_fixits): Add "column_unit" and "tabstop" params. | |
34404 | Use them to call convert_column_unit on the column values. | |
34405 | (diagnostic_report_diagnostic): Eliminate conditional on | |
34406 | parseable_fixits_p in favor of a switch statement on | |
34407 | extra_output_kind, passing the appropriate values to the new | |
34408 | params of print_parseable_fixits. | |
34409 | (selftest::test_print_parseable_fixits_none): Update for new | |
34410 | params of print_parseable_fixits. | |
34411 | (selftest::test_print_parseable_fixits_insert): Likewise. | |
34412 | (selftest::test_print_parseable_fixits_remove): Likewise. | |
34413 | (selftest::test_print_parseable_fixits_replace): Likewise. | |
34414 | (selftest::test_print_parseable_fixits_bytes_vs_display_columns): | |
34415 | New. | |
34416 | (selftest::diagnostic_c_tests): Call it. | |
34417 | * diagnostic.h (enum diagnostics_extra_output_kind): New. | |
34418 | (diagnostic_context::parseable_fixits_p): Delete field in favor | |
34419 | of... | |
34420 | (diagnostic_context::extra_output_kind): ...this new field. | |
34421 | * doc/invoke.texi (Environment Variables): Add | |
34422 | GCC_EXTRA_DIAGNOSTIC_OUTPUT. | |
34423 | * opts.c (common_handle_option): Update handling of | |
34424 | OPT_fdiagnostics_parseable_fixits for change to diagnostic_context | |
34425 | fields. | |
34426 | ||
34427 | 2021-01-14 Tamar Christina <tamar.christina@arm.com> | |
34428 | ||
34429 | * tree-vect-slp-patterns.c (class complex_operations_pattern, | |
34430 | complex_operations_pattern::matches, | |
34431 | complex_operations_pattern::recognize, | |
34432 | complex_operations_pattern::build): New. | |
34433 | (slp_patterns): Use it. | |
34434 | ||
34435 | 2021-01-14 Tamar Christina <tamar.christina@arm.com> | |
34436 | ||
34437 | * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New. | |
34438 | * optabs.def (cmls_optab, cmls_conj_optab): New. | |
34439 | * doc/md.texi: Document them. | |
34440 | * tree-vect-slp-patterns.c (class complex_fms_pattern, | |
34441 | complex_fms_pattern::matches, complex_fms_pattern::recognize, | |
34442 | complex_fms_pattern::build): New. | |
34443 | ||
34444 | 2021-01-14 Tamar Christina <tamar.christina@arm.com> | |
34445 | ||
34446 | * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New. | |
34447 | * optabs.def (cmla_optab, cmla_conj_optab): New. | |
34448 | * doc/md.texi: Document them. | |
34449 | * tree-vect-slp-patterns.c (vect_match_call_p, | |
34450 | class complex_fma_pattern, vect_slp_reset_pattern, | |
34451 | complex_fma_pattern::matches, complex_fma_pattern::recognize, | |
34452 | complex_fma_pattern::build): New. | |
34453 | ||
34454 | 2021-01-14 Tamar Christina <tamar.christina@arm.com> | |
34455 | ||
34456 | * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New. | |
34457 | * optabs.def (cmul_optab, cmul_conj_optab): New. | |
34458 | * doc/md.texi: Document them. | |
34459 | * tree-vect-slp-patterns.c (vect_match_call_complex_mla, | |
34460 | vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication, | |
34461 | vect_build_combine_node, class complex_mul_pattern, | |
34462 | complex_mul_pattern::matches, complex_mul_pattern::recognize, | |
34463 | complex_mul_pattern::build): New. | |
34464 | ||
34465 | 2021-01-14 Tamar Christina <tamar.christina@arm.com> | |
34466 | ||
34467 | * tree-vect-slp.c (optimize_load_redistribution_1): New. | |
34468 | (optimize_load_redistribution, vect_is_slp_load_node): New. | |
34469 | (vect_match_slp_patterns): Use it. | |
34470 | ||
34471 | 2021-01-14 Tamar Christina <tamar.christina@arm.com> | |
34472 | ||
34473 | * tree-vect-slp-patterns.c (complex_add_pattern::build): | |
34474 | Elide nodes. | |
34475 | ||
34476 | 2021-01-14 Thomas Schwinge <thomas@codesourcery.com> | |
34477 | ||
34478 | * config/gcn/mkoffload.c (main): Create an offload image only in | |
34479 | 64-bit configurations. | |
34480 | ||
34481 | 2021-01-14 H.J. Lu <hjl.tools@gmail.com> | |
34482 | ||
34483 | PR target/98667 | |
34484 | * config/i386/i386-options.c (ix86_option_override_internal): | |
34485 | Issue an error for -fcf-protection with CF_BRANCH when compiling | |
34486 | for 32-bit non-TARGET_CMOV targets. | |
34487 | ||
34488 | 2021-01-14 Uroš Bizjak <ubizjak@gmail.com> | |
34489 | ||
34490 | PR target/98671 | |
34491 | * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): | |
34492 | Remove declaration and initialization of shadow variable "ret". | |
34493 | (ix86_option_override_internal): Remove delcaration of | |
34494 | shadow variable "i". Redeclare shadowed variable to unsigned. | |
34495 | * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned. | |
34496 | * config/i386/i386-builtins.c (get_builtin_code_for_version): | |
34497 | Update for redeclaration. | |
34498 | * config/i386/i386.h (pta_size): Ditto. | |
34499 | ||
34500 | 2021-01-14 Richard Biener <rguenther@suse.de> | |
34501 | ||
34502 | PR tree-optimization/98674 | |
34503 | * tree-data-ref.c (base_supports_access_fn_components_p): New. | |
34504 | (initialize_data_dependence_relation): For two bases without | |
34505 | possible access fns resort to type size equality when determining | |
34506 | shape compatibility. | |
34507 | ||
34508 | 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
34509 | ||
34510 | PR target/66791 | |
34511 | * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by | |
34512 | <=, >= operators in vcle and vcge intrinsics respectively. | |
34513 | * config/arm/arm_neon_builtins.def: Remove entry for | |
34514 | vcge and vcgeu. | |
34515 | ||
34516 | 2021-01-14 Uroš Bizjak <ubizjak@gmail.com> | |
34517 | ||
34518 | PR target/98671 | |
34519 | * config/i386/i386-options.c (ix86_function_specific_save): | |
34520 | Remove redundant assignment to opts->x_ix86_branch_cost. | |
34521 | * config/i386/i386.c (ix86_prefetch_sse): | |
34522 | Rename from x86_prefetch_sse. Update all uses. | |
34523 | * config/i386/i386.h: Update for rename. | |
34524 | * config/i386/i386-options.h: Ditto. | |
34525 | ||
34526 | 2021-01-14 Jakub Jelinek <jakub@redhat.com> | |
34527 | ||
34528 | PR target/98670 | |
34529 | * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3, | |
34530 | *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3): | |
34531 | Use Bm instead of m for non-avx. Add isa attribute. | |
34532 | ||
34533 | 2021-01-14 Jakub Jelinek <jakub@redhat.com> | |
34534 | ||
34535 | PR tree-optimization/96688 | |
34536 | * match.pd (~(X >> Y) -> ~X >> Y): New simplification if | |
34537 | ~X can be simplified. | |
34538 | ||
34539 | 2021-01-14 Richard Sandiford <richard.sandiford@arm.com> | |
34540 | ||
34541 | * tree-vect-stmts.c (vect_model_load_cost): Account for unused | |
34542 | IFN_LOAD_LANES results. | |
34543 | ||
34544 | 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34545 | ||
34546 | * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>): | |
34547 | Define. | |
34548 | (aarch64_xtn<mode>): Likewise. | |
34549 | * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn): | |
34550 | Define | |
34551 | builtins. | |
34552 | * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using | |
34553 | builtin. | |
34554 | (vmovl_s16): Likewise. | |
34555 | (vmovl_s32): Likewise. | |
34556 | (vmovl_u8): Likewise. | |
34557 | (vmovl_u16): Likewise. | |
34558 | (vmovl_u32): Likewise. | |
34559 | (vmovn_s16): Likewise. | |
34560 | (vmovn_s32): Likewise. | |
34561 | (vmovn_s64): Likewise. | |
34562 | (vmovn_u16): Likewise. | |
34563 | (vmovn_u32): Likewise. | |
34564 | (vmovn_u64): Likewise. | |
34565 | ||
34566 | 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34567 | ||
34568 | * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le): | |
34569 | Define. | |
34570 | (aarch64_<su>qxtn2<mode>_be): Likewise. | |
34571 | (aarch64_<su>qxtn2<mode>): Likewise. | |
34572 | * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2): | |
34573 | Define builtins. | |
34574 | * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator. | |
34575 | (su): Handle ss_truncate and us_truncate. | |
34576 | * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using | |
34577 | builtin. | |
34578 | (vqmovn_high_s32): Likewise. | |
34579 | (vqmovn_high_s64): Likewise. | |
34580 | (vqmovn_high_u16): Likewise. | |
34581 | (vqmovn_high_u32): Likewise. | |
34582 | (vqmovn_high_u64): Likewise. | |
34583 | ||
34584 | 2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34585 | ||
34586 | * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le): | |
34587 | Define. | |
34588 | (aarch64_xtn2<mode>_be): Likewise. | |
34589 | (aarch64_xtn2<mode>): Likewise. | |
34590 | * config/aarch64/aarch64-simd-builtins.def (xtn2): Define | |
34591 | builtins. | |
34592 | * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using | |
34593 | builtins. | |
34594 | (vmovn_high_s32): Likewise. | |
34595 | (vmovn_high_s64): Likewise. | |
34596 | (vmovn_high_u16): Likewise. | |
34597 | (vmovn_high_u32): Likewise. | |
34598 | (vmovn_high_u64): Likewise. | |
34599 | ||
34600 | 2021-01-13 Stafford Horne <shorne@gmail.com> | |
34601 | ||
34602 | * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro. | |
34603 | ||
34604 | 2021-01-13 Stafford Horne <shorne@gmail.com> | |
34605 | ||
34606 | * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro. | |
34607 | ||
34608 | 2021-01-13 Stafford Horne <shorne@gmail.com> | |
34609 | ||
34610 | * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin | |
34611 | define for __or1k_hard_float__. | |
34612 | ||
34613 | 2021-01-13 Stafford Horne <shorne@gmail.com> | |
34614 | ||
34615 | * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1. | |
34616 | (PROFILE_HOOK): Define to call _mcount. | |
34617 | (FUNCTION_PROFILER): Change from abort to no-op. | |
34618 | ||
34619 | 2021-01-13 Jakub Jelinek <jakub@redhat.com> | |
34620 | ||
34621 | PR tree-optimization/96691 | |
34622 | * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C), | |
34623 | (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if | |
34624 | (~D ^ C) or (D ^ C) can be simplified. | |
34625 | ||
34626 | 2021-01-13 Richard Biener <rguenther@suse.de> | |
34627 | ||
34628 | PR tree-optimization/92645 | |
34629 | * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization | |
34630 | until after vector lowering. | |
34631 | ||
34632 | 2021-01-13 Richard Sandiford <richard.sandiford@arm.com> | |
34633 | ||
34634 | * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I | |
34635 | to SVE_I. | |
34636 | (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2) | |
34637 | (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise. | |
34638 | ||
34639 | 2021-01-13 Richard Sandiford <richard.sandiford@arm.com> | |
34640 | ||
34641 | * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I | |
34642 | to SVE_I. | |
34643 | (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2) | |
34644 | (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise. | |
34645 | ||
34646 | 2021-01-13 Richard Biener <rguenther@suse.de> | |
34647 | ||
34648 | PR tree-optimization/92645 | |
34649 | * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported | |
34650 | BIT_FIELD_REF argument. | |
34651 | (vect_build_slp_tree_2): Record the desired vector type | |
34652 | on the external vector def. | |
34653 | (vectorizable_slp_permutation): Handle required punning | |
34654 | of existing vector defs. | |
34655 | ||
34656 | 2021-01-13 Richard Sandiford <richard.sandiford@arm.com> | |
34657 | ||
34658 | * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results. | |
34659 | ||
34660 | 2021-01-13 Richard Sandiford <richard.sandiford@arm.com> | |
34661 | ||
34662 | * config/sh/sh.md (movsf_ie): Remove operands[2] test. | |
34663 | ||
34664 | 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org> | |
34665 | ||
34666 | * config.gcc [$target == *-*-gnu*]: Enable | |
34667 | 'default_gnu_indirect_function'. | |
34668 | ||
34669 | 2021-01-13 Jakub Jelinek <jakub@redhat.com> | |
34670 | ||
34671 | PR target/95905 | |
34672 | * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into | |
34673 | registers before calling targetm.vectorize.vec_perm_const, only after | |
34674 | that. | |
34675 | * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle | |
34676 | two argument permutation when one operand is zero vector and only | |
34677 | after that force operands into registers. | |
34678 | * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New | |
34679 | define_insn_and_split pattern. | |
34680 | (*avx512bw_zero_extendv32qiv32hi2_1): Likewise. | |
34681 | (*avx512f_zero_extendv16hiv16si2_1): Likewise. | |
34682 | (*avx2_zero_extendv8hiv8si2_1): Likewise. | |
34683 | (*avx512f_zero_extendv8siv8di2_1): Likewise. | |
34684 | (*avx2_zero_extendv4siv4di2_1): Likewise. | |
34685 | * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands | |
34686 | into registers. | |
34687 | * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise. | |
34688 | * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise. | |
34689 | * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise. | |
34690 | * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise. | |
34691 | * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise. | |
34692 | * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap. | |
34693 | ||
34694 | 2021-01-13 Martin Liska <mliska@suse.cz> | |
34695 | ||
34696 | PR tree-optimization/98455 | |
34697 | * gimple-if-to-switch.cc (condition_info::record_phi_mapping): | |
34698 | Record also virtual PHIs. | |
34699 | (pass_if_to_switch::execute): Return TODO_cleanup_cfg only | |
34700 | conditionally. | |
34701 | ||
34702 | 2021-01-13 Jonathan Wakely <jwakely@redhat.com> | |
34703 | ||
34704 | * doc/invoke.texi (C++ Modules): Fix typos. | |
34705 | ||
34706 | 2021-01-13 Richard Biener <rguenther@suse.de> | |
34707 | ||
34708 | PR tree-optimization/98640 | |
34709 | * tree-ssa-sccvn.c (visit_nary_op): Do not try to | |
34710 | handle plus or minus from a truncated operand to be | |
34711 | sign-extended. | |
34712 | ||
34713 | 2021-01-13 Jakub Jelinek <jakub@redhat.com> | |
34714 | ||
34715 | PR target/96938 | |
34716 | * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New | |
34717 | define_insn_and_split patterns. | |
34718 | (splitter after *btr<mode>_2): New splitter. | |
34719 | ||
34720 | 2021-01-13 Martin Liska <mliska@suse.cz> | |
34721 | ||
34722 | PR ipa/98652 | |
34723 | * cgraphunit.c (analyze_functions): Remove dead code. | |
34724 | ||
34725 | 2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com> | |
34726 | ||
34727 | * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New. | |
34728 | * config/aarch64/aarch64.c (a64fx_addrcost_table): New. | |
34729 | (a64fx_regmove_cost, a64fx_vector_cost): New. | |
34730 | (a64fx_tunings): Use the new added cost tables. | |
34731 | ||
34732 | 2021-01-13 Jakub Jelinek <jakub@redhat.com> | |
34733 | ||
34734 | PR target/95905 | |
34735 | * config/i386/predicates.md (pmovzx_parallel): New predicate. | |
34736 | * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New | |
34737 | define_insn_and_split pattern. | |
34738 | (*sse4_1_zero_extendv4hiv4si2_3): Likewise. | |
34739 | (*sse4_1_zero_extendv2siv2di2_3): Likewise. | |
34740 | ||
34741 | 2021-01-13 Julian Brown <julian@codesourcery.com> | |
34742 | ||
34743 | * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code | |
34744 | to fix v0 register. | |
34745 | ||
34746 | 2021-01-13 Julian Brown <julian@codesourcery.com> | |
34747 | ||
34748 | * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live | |
34749 | on entry to a BB. | |
34750 | ||
34751 | 2021-01-13 Julian Brown <julian@codesourcery.com> | |
34752 | ||
34753 | * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec | |
34754 | for reciprocal-approximation instructions. | |
34755 | (div<mode>3): Use fused multiply-accumulate operations for reciprocal | |
34756 | refinement and division result. | |
34757 | * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant. | |
34758 | ||
34759 | 2021-01-13 Julian Brown <julian@codesourcery.com> | |
34760 | ||
34761 | * config/gcn/gcn-valu.md (subdf): Rename to... | |
34762 | (subdf3): This. | |
34763 | ||
34764 | 2021-01-12 Martin Liska <mliska@suse.cz> | |
34765 | ||
34766 | * gcov.c (source_info::debug): Fix printf format for 32-bit hosts. | |
34767 | ||
34768 | 2021-01-12 Andrea Corallo <andrea.corallo@arm.com> | |
34769 | ||
34770 | * function-abi.h: Fix typo. | |
34771 | ||
34772 | 2021-01-12 Christophe Lyon <christophe.lyon@linaro.org> | |
34773 | ||
34774 | PR target/97875 | |
34775 | PR target/97875 | |
34776 | * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro. | |
34777 | (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise. | |
34778 | (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise. | |
34779 | (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise. | |
34780 | (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise. | |
34781 | (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise. | |
34782 | (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise. | |
34783 | (ARM_HAVE_NEON_V2DI_LDST): Likewise. | |
34784 | (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise. | |
34785 | (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise. | |
34786 | (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise. | |
34787 | (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise. | |
34788 | (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise. | |
34789 | (ARM_HAVE_V2DI_LDST): Likewise. | |
34790 | * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern. | |
34791 | (*movmisalign<mode>_mve_load): New pattern. | |
34792 | * config/arm/neon.md (movmisalign<mode>): Move to ... | |
34793 | * config/arm/vec-common.md: ... here. | |
34794 | ||
34795 | 2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com> | |
34796 | ||
34797 | PR target/97969 | |
34798 | * lra-eliminations.c (eliminate_regs_in_insn): Add transformation | |
34799 | of pattern 'plus (plus (hard reg, const), pseudo)'. | |
34800 | ||
34801 | 2021-01-12 Richard Biener <rguenther@suse.de> | |
34802 | ||
34803 | PR tree-optimization/98550 | |
34804 | * tree-vect-slp.c (vect_record_max_nunits): Check whether | |
34805 | the group size is a multiple of the vector element count. | |
34806 | (vect_build_slp_tree_1): When we need to fail because | |
34807 | the vector type choosen causes unrolling do so lazily | |
34808 | without affecting matches only at the end to guide group splitting. | |
34809 | ||
34810 | 2021-01-12 Martin Liska <mliska@suse.cz> | |
34811 | ||
34812 | PR c++/97284 | |
34813 | * optc-save-gen.awk: Compare also n_target_save vars with | |
34814 | strcmp. | |
34815 | ||
34816 | 2021-01-12 Martin Liska <mliska@suse.cz> | |
34817 | ||
34818 | * gcov.c (source_info::debug): New. | |
34819 | (print_usage): Add --debug (-D) option. | |
34820 | (process_args): Likewise. | |
34821 | (generate_results): Call src->debug after | |
34822 | accumulate_line_counts. | |
34823 | (read_graph_file): Properly assign id for EXIT_BLOCK. | |
34824 | * profile.c (branch_prob): Dump function body before it is | |
34825 | instrumented. | |
34826 | ||
34827 | 2021-01-12 Jakub Jelinek <jakub@redhat.com> | |
34828 | ||
34829 | PR tree-optimization/98629 | |
34830 | * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt | |
34831 | unless returning non-zero. | |
34832 | ||
34833 | 2021-01-12 Jakub Jelinek <jakub@redhat.com> | |
34834 | ||
34835 | PR tree-optimization/95731 | |
34836 | * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize | |
34837 | x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z. | |
34838 | (optimize_range_tests): Call optimize_range_tests_cmp_bitwise | |
34839 | only after optimize_range_tests_var_bound. | |
34840 | ||
34841 | 2021-01-12 Jakub Jelinek <jakub@redhat.com> | |
34842 | ||
34843 | * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@. | |
34844 | * configure: Regenerated. | |
34845 | ||
34846 | 2021-01-12 liuhongt <hongtao.liu@intel.com> | |
34847 | ||
34848 | PR target/98612 | |
34849 | * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS): | |
34850 | Deleted. | |
34851 | * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete | |
34852 | dead code. | |
34853 | ||
34854 | 2021-01-12 Alexandre Oliva <oliva@adacore.com> | |
34855 | ||
34856 | * ssa-iterators.h (end_imm_use_stmt_traverse): Forward | |
34857 | declare. | |
34858 | (auto_end_imm_use_stmt_traverse): New struct. | |
34859 | (FOR_EACH_IMM_USE_STMT): Use it. | |
34860 | (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove, | |
34861 | along with uses... | |
34862 | * gimple-ssa-strength-reduction.c: ... here, ... | |
34863 | * graphite-scop-detection.c: ... here, ... | |
34864 | * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ... | |
34865 | * tree-predcom.c, tree-ssa-ccp.c: ... here, ... | |
34866 | * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ... | |
34867 | * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ... | |
34868 | * tree-ssa-phiprop.c, tree-ssa.c: ... here, ... | |
34869 | * tree-vect-slp.c: ... and here, ... | |
34870 | * doc/tree-ssa.texi: ... and the example here. | |
34871 | ||
34872 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34873 | ||
34874 | * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from | |
34875 | SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X. | |
34876 | (*sdiv_pow2<mode>3): New pattern. | |
34877 | (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I. | |
34878 | Wrap the ASRD in an UNSPEC_PRED_X. | |
34879 | (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X | |
34880 | predicate with a constant PTRUE, if it isn't already. | |
34881 | (*cond_<sve_int_op><mode>_z): Replace with... | |
34882 | (*cond_<sve_int_op><mode>_any): ...this new pattern. | |
34883 | ||
34884 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34885 | ||
34886 | * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from | |
34887 | SVE_FULL_I to SVE_I. | |
34888 | (*cond_bic<mode>_any): Likewise. | |
34889 | ||
34890 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34891 | ||
34892 | * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart) | |
34893 | (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I | |
34894 | to SVE_I. | |
34895 | ||
34896 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34897 | ||
34898 | * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from | |
34899 | SVE_FULL_I to SVE_I. | |
34900 | (*aarch64_cond_<su>abd<mode>_2): Likewise. | |
34901 | (*aarch64_cond_<su>abd<mode>_any): Likewise. | |
34902 | (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X | |
34903 | for the max and min but not for the minus. | |
34904 | (*aarch64_cond_<su>abd<mode>_3): New pattern. | |
34905 | ||
34906 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34907 | ||
34908 | * config/aarch64/iterators.md (SVE_24I): New iterator. | |
34909 | * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from | |
34910 | SVE_FULL_SDI to SVE_24I. Use containers rather than elements. | |
34911 | ||
34912 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34913 | ||
34914 | * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>) | |
34915 | (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I | |
34916 | to SVE_I. | |
34917 | (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise. | |
34918 | (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise. | |
34919 | (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise. | |
34920 | (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise. | |
34921 | ||
34922 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34923 | ||
34924 | * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3) | |
34925 | (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>) | |
34926 | (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I | |
34927 | to SVE_I. | |
34928 | ||
34929 | 2021-01-11 Richard Sandiford <richard.sandiford@arm.com> | |
34930 | ||
34931 | * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3) | |
34932 | (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>) | |
34933 | (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I. | |
34934 | ||
34935 | 2021-01-11 Martin Liska <mliska@suse.cz> | |
34936 | ||
34937 | PR jit/98615 | |
34938 | * symtab-clones.h (clone_info::release): Release | |
34939 | symtab::m_clones with ggc_delete as it's a GGC memory. | |
34940 | ||
34941 | 2021-01-11 Matthias Klose <doko@ubuntu.com> | |
34942 | ||
34943 | * Makefile.in (LINK_PROGRESS): Show the link target. | |
34944 | ||
34945 | 2021-01-11 Richard Biener <rguenther@suse.de> | |
34946 | ||
34947 | PR tree-optimization/91403 | |
34948 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap | |
34949 | single-element interleaving group size at 4096 elements. | |
34950 | ||
34951 | 2021-01-11 Richard Biener <rguenther@suse.de> | |
34952 | ||
34953 | PR tree-optimization/98526 | |
34954 | * tree-vect-loop.c (vect_model_reduction_cost): Remove costing | |
34955 | of the actual reduction op for the regular case. | |
34956 | (vectorizable_reduction): Cost the stmts | |
34957 | vect_transform_reduction produces here. | |
34958 | ||
34959 | 2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com> | |
34960 | ||
34961 | * tree-ssa-forwprop.c (simplify_vector_constructor): For | |
34962 | big-endian, use UNPACK[_FLOAT]_HI. | |
34963 | ||
34964 | 2021-01-11 Tamar Christina <tamar.christina@arm.com> | |
34965 | ||
34966 | * tree-vect-slp-patterns.c (class complex_pattern, | |
34967 | class complex_add_pattern): Add parameters to matches. | |
34968 | (complex_add_pattern::build): Free memory. | |
34969 | (complex_add_pattern::matches): Move validation end of match. | |
34970 | (complex_add_pattern::recognize): Likewise. | |
34971 | ||
34972 | 2021-01-11 Tamar Christina <tamar.christina@arm.com> | |
34973 | ||
34974 | * tree-vect-slp-patterns.c (linear_loads_p): Fix externals. | |
34975 | ||
34976 | 2021-01-11 Tamar Christina <tamar.christina@arm.com> | |
34977 | ||
34978 | * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity. | |
34979 | ||
34980 | 2021-01-11 Jakub Jelinek <jakub@redhat.com> | |
34981 | ||
34982 | PR tree-optimization/95867 | |
34983 | * tree-ssa-math-opts.h: New header. | |
34984 | * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h. | |
34985 | (powi_as_mults): No longer static. Use build_one_cst instead of | |
34986 | build_real. Formatting fix. | |
34987 | * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h. | |
34988 | (attempt_builtin_powi): Handle multiplication reassociation without | |
34989 | powi_fndecl using powi_as_mults. | |
34990 | (reassociate_bb): For integral types don't require | |
34991 | -funsafe-math-optimizations to call attempt_builtin_powi. | |
34992 | ||
34993 | 2021-01-11 Jakub Jelinek <jakub@redhat.com> | |
34994 | ||
34995 | PR tree-optimization/95852 | |
34996 | * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change | |
34997 | mul_stmts parameter type to vec<gimple *> &. Before cond_stmt | |
34998 | allow in the bb any of the stmts in that vector, div_stmt and | |
34999 | up to 3 cast stmts. | |
35000 | (arith_cast_equal_p): New function. | |
35001 | (arith_overflow_check_p): Add cast_stmt argument, handle signed | |
35002 | multiply overflow checks. | |
35003 | (match_arith_overflow): Adjust caller. Handle signed multiply | |
35004 | overflow checks. | |
35005 | ||
35006 | 2021-01-11 Jakub Jelinek <jakub@redhat.com> | |
35007 | ||
35008 | PR tree-optimization/95852 | |
35009 | * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function. | |
35010 | (uaddsub_overflow_check_p): Renamed to ... | |
35011 | (arith_overflow_check_p): ... this. Handle also multiplication | |
35012 | with overflow check. | |
35013 | (match_uaddsub_overflow): Renamed to ... | |
35014 | (match_arith_overflow): ... this. Add cfg_changed argument. Handle | |
35015 | also multiplication with overflow check. Adjust function comment. | |
35016 | (math_opts_dom_walker::after_dom_children): Adjust callers. Call | |
35017 | match_arith_overflow also for MULT_EXPR. | |
35018 | ||
35019 | 2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35020 | ||
35021 | * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using | |
35022 | __builtin_convertvector. | |
35023 | (vmovl_s16): Likewise. | |
35024 | (vmovl_s32): Likewise. | |
35025 | (vmovl_u8): Likewise. | |
35026 | (vmovl_u16): Likewise. | |
35027 | (vmovl_u32): Likewise. | |
35028 | (vmovn_s16): Likewise. | |
35029 | (vmovn_s32): Likewise. | |
35030 | (vmovn_s64): Likewise. | |
35031 | (vmovn_u16): Likewise. | |
35032 | (vmovn_u32): Likewise. | |
35033 | (vmovn_u64): Likewise. | |
35034 | ||
35035 | 2021-01-11 Martin Liska <mliska@suse.cz> | |
35036 | ||
35037 | * gimple-if-to-switch.cc (struct condition_info): Use auto_var. | |
35038 | (if_chain::is_beneficial): Delete clusters | |
35039 | (find_conditions): Make second argument of conditions_in_bbs a | |
35040 | pointer so that we control over it's lifetime. | |
35041 | (pass_if_to_switch::execute): Delete them. | |
35042 | ||
35043 | 2021-01-11 Kewen Lin <linkw@linux.ibm.com> | |
35044 | ||
35045 | * ira.c (move_unallocated_pseudos): Check other_reg and skip if | |
35046 | it isn't set. | |
35047 | ||
35048 | 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org> | |
35049 | ||
35050 | * config/vax/vax.md (cc): Remove mode attribute. | |
35051 | (subst_<cc>, subst_f<cc>): Rename to... | |
35052 | (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively. | |
35053 | (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal. | |
35054 | (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise. | |
35055 | (*branch_<mode>, *branch_<mode>_reversed): Likewise. | |
35056 | ||
35057 | 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org> | |
35058 | ||
35059 | * config/vax/vax.md (subst_f<cc>): Add mode to operands and | |
35060 | `const_double_zero'. | |
35061 | ||
35062 | 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org> | |
35063 | ||
35064 | * config/pdp11/pdp11.md (PDPfp): New mode iterator. | |
35065 | (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and | |
35066 | operands. | |
35067 | ||
35068 | 2021-01-09 Maciej W. Rozycki <macro@linux-mips.org> | |
35069 | ||
35070 | * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero' | |
35071 | rtx. | |
35072 | * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode | |
35073 | with `const_double_zero'. | |
35074 | * doc/rtl.texi (Constant Expression Types): Document it. | |
35075 | ||
35076 | 2021-01-09 Jakub Jelinek <jakub@redhat.com> | |
35077 | ||
35078 | PR c++/98556 | |
35079 | * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of | |
35080 | POINTER_DIFF_EXPR to be any integral type. | |
35081 | ||
35082 | 2021-01-09 Jakub Jelinek <jakub@redhat.com> | |
35083 | ||
35084 | PR rtl-optimization/98603 | |
35085 | * function.c (instantiate_virtual_regs_in_insn): For asm goto | |
35086 | with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL | |
35087 | if any, set ASM_OPERANDS mode to VOIDmode and change | |
35088 | ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX. | |
35089 | ||
35090 | 2021-01-09 Alexandre Oliva <oliva@gnu.org> | |
35091 | ||
35092 | PR debug/97714 | |
35093 | * final.c (notice_source_line): Narrow down the condition to | |
35094 | skip a line-0 marker. | |
35095 | ||
35096 | 2021-01-08 Sergei Trofimovich <siarheit@google.com> | |
35097 | ||
35098 | * ipa-modref.c (merge_call_side_effects): Fix | |
35099 | linebreak split by reordering two print calls. | |
35100 | ||
35101 | 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com> | |
35102 | ||
35103 | * config/s390/vector.md (*tf_to_fprx2_0): Rename from | |
35104 | "*mov_tf_to_fprx2_0" for consistency, fix constraint. | |
35105 | (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for | |
35106 | consistency, fix constraint. | |
35107 | ||
35108 | 2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com> | |
35109 | ||
35110 | * config/s390/s390-c.c (s390_def_or_undef_macro): Accept | |
35111 | callables instead of mask values. | |
35112 | (struct target_flag_set_p): New predicate. | |
35113 | (s390_cpu_cpp_builtins_internal): Define or undefine | |
35114 | __LONG_DOUBLE_VX__ macro. | |
35115 | ||
35116 | 2021-01-08 H.J. Lu <hjl.tools@gmail.com> | |
35117 | ||
35118 | PR target/98482 | |
35119 | * config/i386/i386.c (x86_function_profiler): Use R10 and R11 | |
35120 | to call mcount in large model with PIC for NO_PROFILE_COUNTERS | |
35121 | targets. | |
35122 | ||
35123 | 2021-01-08 Richard Biener <rguenther@suse.de> | |
35124 | ||
35125 | * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table. | |
35126 | ||
35127 | 2021-01-08 Richard Biener <rguenther@suse.de> | |
35128 | ||
35129 | * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix. | |
35130 | (vect_build_slp_tree): On cache hit release the matched | |
35131 | scalar stmts vector. | |
35132 | * tree-vect-stmts.c (vectorizable_store): Properly free | |
35133 | vec_oprnds before possibly gathering them again. | |
35134 | ||
35135 | 2021-01-08 Richard Biener <rguenther@suse.de> | |
35136 | ||
35137 | PR tree-optimization/98544 | |
35138 | * tree-vect-slp.c (vect_optimize_slp): Always materialize | |
35139 | permutes at a permute node. | |
35140 | ||
35141 | 2021-01-08 H.J. Lu <hjl.tools@gmail.com> | |
35142 | ||
35143 | PR target/98482 | |
35144 | * config/i386/i386.c (x86_function_profiler): Use R10 to call | |
35145 | mcount in large model. Sorry for large model with PIC. | |
35146 | ||
35147 | 2021-01-08 Jakub Jelinek <jakub@redhat.com> | |
35148 | ||
35149 | PR target/98585 | |
35150 | * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg, | |
35151 | ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm, | |
35152 | ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of | |
35153 | TargetSave and initialize for variables with enum types. | |
35154 | (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=, | |
35155 | mstack-protector-guard-symbol=): Add Save. | |
35156 | * config/i386/i386-options.c (ix86_function_specific_save, | |
35157 | ix86_function_specific_restore): Don't save or restore x_ix86_cmodel, | |
35158 | x_ix86_incoming_stack_boundary_arg, x_ix86_pmode, | |
35159 | x_ix86_preferred_stack_boundary_arg, x_ix86_regparm, | |
35160 | x_ix86_veclibabi_type. | |
35161 | ||
35162 | 2021-01-08 Richard Sandiford <richard.sandiford@arm.com> | |
35163 | ||
35164 | * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from | |
35165 | SVE_FULL_I to SVE_I. | |
35166 | (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise. | |
35167 | ||
35168 | 2021-01-08 Richard Sandiford <richard.sandiford@arm.com> | |
35169 | ||
35170 | * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from | |
35171 | SVE_FULL_I to SVE_I. | |
35172 | (*cond_uxt<mode>_any): Likewise. | |
35173 | ||
35174 | 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35175 | ||
35176 | * config/aarch64/iterators.md (Vwhalf): New iterator. | |
35177 | * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3): | |
35178 | Rename to... | |
35179 | (aarch64_<sur>adalp<mode>): ... This. Make more | |
35180 | builtin-friendly. | |
35181 | (<sur>sadv16qi): Adjust callsite of the above. | |
35182 | * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New | |
35183 | builtins. | |
35184 | * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using | |
35185 | builtins. | |
35186 | (vpadal_s16): Likewise. | |
35187 | (vpadal_u8): Likewise. | |
35188 | (vpadal_u16): Likewise. | |
35189 | (vpadalq_s8): Likewise. | |
35190 | (vpadalq_s16): Likewise. | |
35191 | (vpadalq_s32): Likewise. | |
35192 | (vpadalq_u8): Likewise. | |
35193 | (vpadalq_u16): Likewise. | |
35194 | (vpadalq_u32): Likewise. | |
35195 | ||
35196 | 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35197 | ||
35198 | * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3): | |
35199 | Rename to... | |
35200 | (aarch64_<su>abd<mode>): ... This. | |
35201 | (<sur>sadv16qi): Adjust callsite of the above. | |
35202 | * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define | |
35203 | builtins. | |
35204 | * config/aarch64/arm_neon.h (vabd_s8): Reimplement using | |
35205 | builtin. | |
35206 | (vabd_s16): Likewise. | |
35207 | (vabd_s32): Likewise. | |
35208 | (vabd_u8): Likewise. | |
35209 | (vabd_u16): Likewise. | |
35210 | (vabd_u32): Likewise. | |
35211 | (vabdq_s8): Likewise. | |
35212 | (vabdq_s16): Likewise. | |
35213 | (vabdq_s32): Likewise. | |
35214 | (vabdq_u8): Likewise. | |
35215 | (vabdq_u16): Likewise. | |
35216 | (vabdq_u32): Likewise. | |
35217 | ||
35218 | 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35219 | ||
35220 | * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define | |
35221 | builtins. | |
35222 | * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin. | |
35223 | (vaba_s16): Likewise. | |
35224 | (vaba_s32): Likewise. | |
35225 | (vaba_u8): Likewise. | |
35226 | (vaba_u16): Likewise. | |
35227 | (vaba_u32): Likewise. | |
35228 | (vabaq_s8): Likewise. | |
35229 | (vabaq_s16): Likewise. | |
35230 | (vabaq_s32): Likewise. | |
35231 | (vabaq_u8): Likewise. | |
35232 | (vabaq_u16): Likewise. | |
35233 | (vabaq_u32): Likewise. | |
35234 | ||
35235 | 2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35236 | ||
35237 | * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to... | |
35238 | (aarch64_<su>aba<mode>): ... This. Handle uaba as well. | |
35239 | Change RTL pattern to match. | |
35240 | ||
35241 | 2021-01-08 Kito Cheng <kito.cheng@sifive.com> | |
35242 | ||
35243 | * common/config/riscv/riscv-common.c (riscv_current_subset_list): New. | |
35244 | * config/riscv/riscv-c.c (riscv-subset.h): New. | |
35245 | (INCLUDE_STRING): Define. | |
35246 | (riscv_cpu_cpp_builtins): Add new style architecture extension | |
35247 | test macros. | |
35248 | * config/riscv/riscv-subset.h (riscv_subset_list::begin): New. | |
35249 | (riscv_subset_list::end): New. | |
35250 | (riscv_current_subset_list): New. | |
35251 | ||
35252 | 2021-01-08 Kito Cheng <kito.cheng@sifive.com> | |
35253 | ||
35254 | * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION): | |
35255 | Move to riscv-subset.h. | |
35256 | (struct riscv_subset_t): Ditto. | |
35257 | (class riscv_subset_list): Ditto. | |
35258 | * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move | |
35259 | from riscv-common.c. | |
35260 | (struct riscv_subset_t): Ditto. | |
35261 | (class riscv_subset_list): Ditto. | |
35262 | * config/riscv/t-riscv ($(common_out_file)): Add file | |
35263 | dependency. | |
35264 | ||
35265 | 2021-01-07 Jakub Jelinek <jakub@redhat.com> | |
35266 | ||
35267 | PR target/98567 | |
35268 | * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno): | |
35269 | New define_insn patterns. | |
35270 | ||
35271 | 2021-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
35272 | ||
35273 | * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>) | |
35274 | (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I. | |
35275 | (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise. | |
35276 | ||
35277 | 2021-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
35278 | ||
35279 | PR tree-optimization/98560 | |
35280 | * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond. | |
35281 | * internal-fn.c (vec_cond_mask_direct): Get the data mode from | |
35282 | argument 1. | |
35283 | (vec_cond_direct): Likewise argument 2. | |
35284 | (vec_condu_direct, vec_condeq_direct): Delete. | |
35285 | (expand_vect_cond_optab_fn): Rename to... | |
35286 | (expand_vec_cond_optab_fn): ...this, replacing old macro. | |
35287 | (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete. | |
35288 | (expand_vect_cond_mask_optab_fn): Rename to... | |
35289 | (expand_vec_cond_mask_optab_fn): ...this, replacing old macro. | |
35290 | (direct_vec_cond_mask_optab_supported_p): Treat the optab as a | |
35291 | convert optab. | |
35292 | (direct_vec_cond_optab_supported_p): Likewise. | |
35293 | (direct_vec_condu_optab_supported_p): Delete. | |
35294 | (direct_vec_condeq_optab_supported_p): Delete. | |
35295 | * gimple-isel.cc: Include internal-fn.h. | |
35296 | (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported | |
35297 | before using it. | |
35298 | ||
35299 | 2021-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
35300 | ||
35301 | PR tree-optimization/98560 | |
35302 | * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use | |
35303 | IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK. | |
35304 | ||
35305 | 2021-01-07 Uroš Bizjak <ubizjak@gmail.com> | |
35306 | ||
35307 | * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn, | |
35308 | rotate_insn and optab code attributes. | |
35309 | Update all uses to merged code attribute. | |
35310 | * config/i386/sse.md: Update all uses to merged code attribute. | |
35311 | * config/i386/mmx.md: Update all uses to merged code attribute. | |
35312 | ||
35313 | 2021-01-07 Jakub Jelinek <jakub@redhat.com> | |
35314 | ||
35315 | PR tree-optimization/98568 | |
35316 | * gimple-ssa-store-merging.c (bswap_view_convert): New function. | |
35317 | (bswap_replace): Use it. | |
35318 | ||
35319 | 2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com> | |
35320 | ||
35321 | PR rtl-optimization/97978 | |
35322 | * lra-int.h (lra_hard_reg_split_p): New external. | |
35323 | * lra.c (lra_hard_reg_split_p): New global. | |
35324 | (lra): Set up lra_hard_reg_split_p after splitting a hard reg. | |
35325 | * lra-assigns.c (lra_assign): Don't check allocation correctness | |
35326 | after hard reg splitting. | |
35327 | ||
35328 | 2021-01-06 Martin Sebor <msebor@redhat.com> | |
35329 | ||
35330 | PR c++/98305 | |
35331 | * builtins.c (new_delete_mismatch_p): New overload. | |
35332 | (new_delete_mismatch_p (tree, tree)): Call it. | |
35333 | ||
35334 | 2021-01-06 Alexandre Oliva <oliva@adacore.com> | |
35335 | ||
35336 | * Makefile.in (T_GLIMITS_H): New. | |
35337 | (stmp-int-hdrs): Depend on it, use it. | |
35338 | * config/t-vxworks (T_GLIMITS_H): Override it. | |
35339 | (vxw-glimits.h): New. | |
35340 | ||
35341 | 2021-01-06 Richard Biener <rguenther@suse.de> | |
35342 | ||
35343 | PR tree-optimization/98513 | |
35344 | * value-range.cc (intersect_ranges): Compare the upper bounds | |
35345 | for the expected relation. | |
35346 | ||
35347 | 2021-01-06 Gerald Pfeifer <gerald@pfeifer.com> | |
35348 | ||
35349 | Revert: | |
35350 | 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com> | |
35351 | ||
35352 | * doc/standards.texi (HSAIL): Remove section. | |
35353 | ||
35354 | 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org> | |
35355 | ||
35356 | * configure: Re-generate. | |
35357 | ||
35358 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
35359 | ||
35360 | * doc/invoke.texi (-std=c++20): Adjust for the publication of | |
35361 | ISO 14882:2020 standard. | |
35362 | * doc/standards.texi: Likewise. | |
35363 | ||
35364 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
35365 | ||
35366 | PR tree-optimization/94802 | |
35367 | * expr.h (maybe_optimize_sub_cmp_0): Declare. | |
35368 | * expr.c: Include tree-pretty-print.h and flags.h. | |
35369 | (maybe_optimize_sub_cmp_0): New function. | |
35370 | (do_store_flag): Use it. | |
35371 | * cfgexpand.c (expand_gimple_cond): Likewise. | |
35372 | ||
35373 | 2021-01-05 Richard Sandiford <richard.sandiford@arm.com> | |
35374 | ||
35375 | * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents. | |
35376 | * rtlanal.c (simple_regno_set): Tweak description to clarify the | |
35377 | RMW condition. | |
35378 | ||
35379 | 2021-01-05 Richard Biener <rguenther@suse.de> | |
35380 | ||
35381 | PR tree-optimization/98516 | |
35382 | * tree-vect-slp.c (vect_optimize_slp): Permute the incoming | |
35383 | lanes when materializing on a VEC_PERM node. | |
35384 | (vectorizable_slp_permutation): Dump the permute properly. | |
35385 | ||
35386 | 2021-01-05 Richard Biener <rguenther@suse.de> | |
35387 | ||
35388 | * tree-vect-slp.c (vect_slp_region): Move debug counter | |
35389 | to cover individual subgraphs. | |
35390 | ||
35391 | 2021-01-05 Richard Biener <rguenther@suse.de> | |
35392 | ||
35393 | PR tree-optimization/98428 | |
35394 | * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject | |
35395 | vector lane extracts for loop vectorization. | |
35396 | ||
35397 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
35398 | ||
35399 | PR tree-optimization/98514 | |
35400 | * tree-ssa-reassoc.c (bb_rank): Change type from long * to | |
35401 | int64_t *. | |
35402 | (operand_rank): Change type from hash_map<tree, long> to | |
35403 | hash_map<tree, int64_t>. | |
35404 | (phi_rank): Change return type from long to int64_t. | |
35405 | (loop_carried_phi): Change block_rank variable type from long to | |
35406 | int64_t. | |
35407 | (propagate_rank): Change return type, rank parameter type and | |
35408 | op_rank variable type from long to int64_t. | |
35409 | (find_operand_rank): Change return type from long to int64_t | |
35410 | and change slot variable type from long * to int64_t *. | |
35411 | (insert_operand_rank): Change rank parameter type from long to | |
35412 | int64_t. | |
35413 | (get_rank): Change return type and rank variable type from long to | |
35414 | int64_t. Use PRId64 instead of ld to print the rank. | |
35415 | (init_reassoc): Change rank variable type from long to int64_t | |
35416 | and adjust correspondingly bb_rank and operand_rank initialization. | |
35417 | ||
35418 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
35419 | ||
35420 | PR tree-optimization/96928 | |
35421 | * tree-ssa-phiopt.c (xor_replacement): New function. | |
35422 | (tree_ssa_phiopt_worker): Call it. | |
35423 | ||
35424 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
35425 | ||
35426 | PR tree-optimization/96930 | |
35427 | * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended | |
35428 | from narrower value which has the same type as 1 << B, perform | |
35429 | the right shift on the narrower value followed by extension. | |
35430 | ||
35431 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
35432 | ||
35433 | PR tree-optimization/96239 | |
35434 | * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New | |
35435 | function. | |
35436 | (get_status_for_store_merging): Don't return BB_INVALID for blocks | |
35437 | with potential bswap optimizable CONSTRUCTORs. | |
35438 | (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap | |
35439 | if possible. | |
35440 | ||
35441 | 2021-01-05 Richard Biener <rguenther@suse.de> | |
35442 | ||
35443 | PR tree-optimization/98381 | |
35444 | * tree.c (vector_element_bits): Properly compute bool vector | |
35445 | element size. | |
35446 | * tree-vect-loop.c (vectorizable_live_operation): Properly | |
35447 | compute the last lane bit offset. | |
35448 | ||
35449 | 2021-01-05 Uroš Bizjak <ubizjak@gmail.com> | |
35450 | ||
35451 | PR target/98522 | |
35452 | * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split. | |
35453 | Clear the top 64 bytes of the input XMM register. | |
35454 | (sse_cvttps2pi): Ditto. | |
35455 | ||
35456 | 2021-01-05 Uroš Bizjak <ubizjak@gmail.com> | |
35457 | ||
35458 | PR target/98521 | |
35459 | * config/i386/xopintrin.h (_mm256_cmov_si256): New. | |
35460 | ||
35461 | 2021-01-05 H.J. Lu <hjl.tools@gmail.com> | |
35462 | ||
35463 | PR target/98495 | |
35464 | * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned | |
35465 | short first. | |
35466 | ||
35467 | 2021-01-05 Claudiu Zissulescu <claziss@synopsys.com> | |
35468 | ||
35469 | * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST. | |
35470 | (umaddsidi4_split): Likewise. | |
35471 | ||
35472 | 2021-01-05 liuhongt <hongtao.liu@intel.com> | |
35473 | ||
35474 | PR target/98461 | |
35475 | * config/i386/sse.md (*sse2_pmovskb_zexthisi): New | |
35476 | define_insn_and_split for zero_extend of subreg HI of pmovskb | |
35477 | result. | |
35478 | (*sse2_pmovskb_zexthisi): Add new combine splitters for | |
35479 | zero_extend of not of subreg HI of pmovskb result. | |
35480 | ||
35481 | 2021-01-05 Richard Sandiford <richard.sandiford@arm.com> | |
35482 | ||
35483 | PR target/97269 | |
35484 | * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs | |
35485 | nested in CONSTs. | |
35486 | * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use | |
35487 | convert_memory_address to convert symbolic immediates to ptr_mode | |
35488 | before forcing them to memory. | |
35489 | ||
35490 | 2021-01-05 Richard Sandiford <richard.sandiford@arm.com> | |
35491 | ||
35492 | PR rtl-optimization/97144 | |
35493 | * recog.c (constrain_operands): Initialize matching_operand | |
35494 | for each alternative, rather than only doing it once. | |
35495 | ||
35496 | 2021-01-05 Richard Sandiford <richard.sandiford@arm.com> | |
35497 | ||
35498 | PR rtl-optimization/98403 | |
35499 | * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain | |
35500 | why we don't remove call clobbers. | |
35501 | (function_info::apply_changes_to_insn): Don't attempt to add | |
35502 | call clobbers here. | |
35503 | ||
35504 | 2021-01-05 Richard Sandiford <richard.sandiford@arm.com> | |
35505 | ||
35506 | PR tree-optimization/98371 | |
35507 | * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function. | |
35508 | (vect_analyze_loop): If an epilogue loop appears to be cheaper | |
35509 | than the main loop, re-analyze it as a main loop before adopting | |
35510 | it as a main loop. | |
35511 | ||
35512 | 2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
35513 | ||
35514 | PR c++/98316 | |
35515 | * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL. | |
35516 | * aclocal.m4, configure: Regenerate. | |
35517 | * Makefile.in (NETLIBS): Define. | |
35518 | (BACKEND): Remove $(CODYLIB). | |
35519 | ||
35520 | 2021-01-05 Jakub Jelinek <jakub@redhat.com> | |
35521 | ||
35522 | PR rtl-optimization/98334 | |
35523 | * simplify-rtx.c (simplify_context::simplify_binary_operation_1): | |
35524 | Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y. | |
35525 | ||
35526 | 2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
35527 | ||
35528 | * tree-inline.c (expand_call_inline): Restore input_location. | |
35529 | Return result from recursive call. | |
35530 | ||
35531 | 2021-01-04 Richard Sandiford <richard.sandiford@arm.com> | |
35532 | ||
35533 | PR tree-optimization/95401 | |
35534 | * config/aarch64/aarch64-sve-builtins.cc | |
35535 | (gimple_folder::load_store_cookie): Use bits rather than bytes | |
35536 | for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE. | |
35537 | * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise. | |
35538 | * tree-vect-stmts.c (vectorizable_store): Likewise. | |
35539 | (vectorizable_load): Likewise. | |
35540 | ||
35541 | 2021-01-04 Richard Biener <rguenther@suse.de> | |
35542 | ||
35543 | PR tree-optimization/98308 | |
35544 | * tree-vect-stmts.c (vectorizable_load): Set invariant mask | |
35545 | SLP vectype. | |
35546 | ||
35547 | 2021-01-04 Jakub Jelinek <jakub@redhat.com> | |
35548 | ||
35549 | PR tree-optimization/95771 | |
35550 | * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types | |
35551 | with precision smaller than int's precision and types with precision | |
35552 | twice as large as long long. Formatting fixes. | |
35553 | ||
35554 | 2021-01-04 Richard Biener <rguenther@suse.de> | |
35555 | ||
35556 | PR tree-optimization/98464 | |
35557 | * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ... | |
35558 | (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb. | |
35559 | (process_bb): Adjust. | |
35560 | ||
35561 | 2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com> | |
35562 | ||
35563 | PR other/98437 | |
35564 | * doc/invoke.texi (-fsanitize=address): Fix wording describing | |
35565 | clash with -fsanitize=hwaddress. | |
35566 | ||
35567 | 2021-01-04 Richard Biener <rguenther@suse.de> | |
35568 | ||
35569 | PR tree-optimization/98282 | |
35570 | * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on | |
35571 | invariants as VN_NARY. | |
35572 | ||
35573 | 2021-01-04 Richard Sandiford <richard.sandiford@arm.com> | |
35574 | ||
35575 | PR target/89057 | |
35576 | * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept | |
35577 | aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns | |
35578 | to handle zero operands. | |
35579 | ||
35580 | 2021-01-04 Richard Sandiford <richard.sandiford@arm.com> | |
35581 | ||
35582 | * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function. | |
35583 | (offset_6bit_unsigned_scaled_p): Fix typo in comment. | |
35584 | (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range | |
35585 | [-32, 31]. | |
35586 | ||
35587 | 2021-01-04 Richard Biener <rguenther@suse.de> | |
35588 | ||
35589 | PR tree-optimization/98393 | |
35590 | * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches | |
35591 | when hitting the limit. | |
35592 | ||
35593 | 2021-01-04 Richard Biener <rguenther@suse.de> | |
35594 | ||
35595 | PR tree-optimization/98291 | |
35596 | * tree-vect-loop.c (vectorizable_reduction): Bypass | |
35597 | associativity check for SLP reductions with VF 1. | |
35598 | ||
35599 | 2021-01-04 Jakub Jelinek <jakub@redhat.com> | |
35600 | ||
35601 | PR tree-optimization/96782 | |
35602 | * match.pd (x == ~x -> false, x != ~x -> true): New simplifications. | |
35603 | ||
35604 | 2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
35605 | ||
35606 | * collect-utils.c (collect_execute): Check dumppfx. | |
35607 | * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix | |
35608 | to collect_execute. | |
35609 | (do_link): Add new parameter atsuffix. | |
35610 | (main): Handle -dumpdir option. Skip one argument for | |
35611 | -o, -isystem and -B options. | |
35612 | * gcc.c (make_at_file): New helper function. | |
35613 | (close_at_file): Use it. | |
35614 | ||
35615 | 2021-01-02 Iain Sandoe <iain@sandoe.co.uk> | |
35616 | ||
35617 | * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust. | |
35618 | Amend handling for LD64_VERSION fallback defaults. | |
35619 | ||
35620 | 2021-01-02 Iain Sandoe <iain@sandoe.co.uk> | |
35621 | ||
35622 | * config.gcc: Compute default version information | |
35623 | from the configured target. Likewise defaults for | |
35624 | ld64. | |
35625 | * config/darwin10.h: Removed. | |
35626 | * config/darwin12.h: Removed. | |
35627 | * config/darwin9.h: Removed. | |
35628 | * config/rs6000/darwin8.h: Removed. | |
35629 | ||
35630 | 2021-01-02 Iain Sandoe <iain@sandoe.co.uk> | |
35631 | ||
35632 | * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete. | |
35633 | ||
35634 | 2021-01-02 Iain Sandoe <iain@sandoe.co.uk> | |
35635 | ||
35636 | * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here.. | |
35637 | * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here. | |
35638 | ||
35639 | 2021-01-02 Iain Sandoe <iain@sandoe.co.uk> | |
35640 | ||
35641 | * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from | |
35642 | here... | |
35643 | * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here. | |
35644 | ||
35645 | 2021-01-02 Iain Sandoe <iain@sandoe.co.uk> | |
35646 | ||
35647 | * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec | |
35648 | for the Darwin10 unwinder stub from here ... | |
35649 | * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here. | |
35650 | ||
35651 | 2021-01-02 Iain Sandoe <iain@sandoe.co.uk> | |
35652 | ||
35653 | * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF | |
35654 | (ASM_DEBUG_SPEC):Only define if the assembler supports | |
35655 | stabs. | |
35656 | (PREFERRED_DEBUGGING_TYPE): Default to DWARF. | |
35657 | (DARWIN_PREFER_DWARF): Define. | |
35658 | * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove. | |
35659 | (DARWIN_PREFER_DWARF): Likewise | |
35660 | (DSYMUTIL_SPEC): Likewise. | |
35661 | (COLLECT_RUN_DSYMUTIL): Likewise. | |
35662 | (ASM_DEBUG_SPEC): Likewise. | |
35663 | (ASM_DEBUG_OPTION_SPEC): Likewise. | |
35664 | ||
35665 | 2021-01-02 Jan Hubicka <jh@suse.cz> | |
35666 | ||
35667 | * cfg.c (free_block): ggc_free bb. | |
35668 | ||
35669 | 2021-01-01 Jakub Jelinek <jakub@redhat.com> | |
35670 | ||
35671 | * gcc.c (process_command): Update copyright notice dates. | |
35672 | * gcov-dump.c (print_version): Ditto. | |
35673 | * gcov.c (print_version): Ditto. | |
35674 | * gcov-tool.c (print_version): Ditto. | |
35675 | * gengtype.c (create_file): Ditto. | |
35676 | * doc/cpp.texi: Bump @copying's copyright year. | |
35677 | * doc/cppinternals.texi: Ditto. | |
35678 | * doc/gcc.texi: Ditto. | |
35679 | * doc/gccint.texi: Ditto. | |
35680 | * doc/gcov.texi: Ditto. | |
35681 | * doc/install.texi: Ditto. | |
35682 | * doc/invoke.texi: Ditto. | |
35683 | ||
35684 | 2021-01-01 Jakub Jelinek <jakub@redhat.com> | |
35685 | ||
35686 | * ChangeLog-2020: Rotate ChangeLog. New file. | |
35687 | \f | |
35688 | Copyright (C) 2021 Free Software Foundation, Inc. | |
35689 | ||
35690 | Copying and distribution of this file, with or without modification, | |
35691 | are permitted in any medium without royalty provided the copyright | |
35692 | notice and this notice are preserved. |