]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
2
3 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
4 {s|u}{max|min} in QI, HI and DI modes.
5 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
6 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
7 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
8 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
9 saved in SGPRs.
10
11 2023-03-06 Richard Biener <rguenther@suse.de>
12
13 PR tree-optimization/109025
14 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
15 the inner LC PHI use is the inner loop PHI latch definition
16 before classifying an outer PHI as double reduction.
17
18 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
19
20 PR target/108429
21 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
22 generic.
23 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
24 (X86_TUNE_USE_SCATTER): Likewise.
25
26 2023-03-06 Xi Ruoyao <xry111@xry111.site>
27
28 PR target/109000
29 * config/loongarch/loongarch.h (FP_RETURN): Use
30 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
31 (UNITS_PER_FP_ARG): Likewise.
32
33 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
34
35 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
36 (pass_vsetvl::backward_demand_fusion): Ditto.
37
38 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
39 SiYu Wu <siyu@isrc.iscas.ac.cn>
40
41 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
42 instructions.
43 (riscv_sm3p1_<mode>): New.
44 (riscv_sm4ed_<mode>): New.
45 (riscv_sm4ks_<mode>): New.
46 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
47 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
48 ZKSH's built-in functions.
49
50 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
51 SiYu Wu <siyu@isrc.iscas.ac.cn>
52
53 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
54 (riscv_sha256sig1_<mode>): New.
55 (riscv_sha256sum0_<mode>): New.
56 (riscv_sha256sum1_<mode>): New.
57 (riscv_sha512sig0h): New.
58 (riscv_sha512sig0l): New.
59 (riscv_sha512sig1h): New.
60 (riscv_sha512sig1l): New.
61 (riscv_sha512sum0r): New.
62 (riscv_sha512sum1r): New.
63 (riscv_sha512sig0): New.
64 (riscv_sha512sig1): New.
65 (riscv_sha512sum0): New.
66 (riscv_sha512sum1): New.
67 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
68 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
69 built-in functions.
70 (DIRECT_BUILTIN): Add new.
71
72 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
73 SiYu Wu <siyu@isrc.iscas.ac.cn>
74
75 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
76 (DsA): New.
77 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
78 (riscv_aes32dsmi): New.
79 (riscv_aes64ds): New.
80 (riscv_aes64dsm): New.
81 (riscv_aes64im): New.
82 (riscv_aes64ks1i): New.
83 (riscv_aes64ks2): New.
84 (riscv_aes32esi): New.
85 (riscv_aes32esmi): New.
86 (riscv_aes64es): New.
87 (riscv_aes64esm): New.
88 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
89 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
90 ZKNE's built-in functions.
91
92 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
93 SiYu Wu <siyu@isrc.iscas.ac.cn>
94
95 * config/riscv/bitmanip.md: Add ZBKB's instructions.
96 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
97 * config/riscv/riscv.md: Add new type for crypto instructions.
98 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
99 description file.
100 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
101 extension's built-in function file.
102
103 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
104 SiYu Wu <siyu@isrc.iscas.ac.cn>
105
106 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
107 (RISCV_FTYPE_NAME3): New.
108 (RISCV_ATYPE_QI): New.
109 (RISCV_ATYPE_HI): New.
110 (RISCV_FTYPE_ATYPES2): New.
111 (RISCV_FTYPE_ATYPES3): New.
112 * config/riscv/riscv-ftypes.def (2): New.
113 (3): New.
114
115 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
116
117 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
118 use exact_log2().
119
120 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
121 kito-cheng <kito.cheng@sifive.com>
122
123 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
124 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
125 (riscv_register_pragmas): Add builtin function check call.
126 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
127 (check_builtin_call): New function.
128 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
129 (class vreinterpret): Ditto.
130 (class vlmul_ext): Ditto.
131 (class vlmul_trunc): Ditto.
132 (class vset): Ditto.
133 (class vget): Ditto.
134 (BASE): Ditto.
135 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
136 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
137 (vluxei16): Ditto.
138 (vluxei32): Ditto.
139 (vluxei64): Ditto.
140 (vloxei8): Ditto.
141 (vloxei16): Ditto.
142 (vloxei32): Ditto.
143 (vloxei64): Ditto.
144 (vsuxei8): Ditto.
145 (vsuxei16): Ditto.
146 (vsuxei32): Ditto.
147 (vsuxei64): Ditto.
148 (vsoxei8): Ditto.
149 (vsoxei16): Ditto.
150 (vsoxei32): Ditto.
151 (vsoxei64): Ditto.
152 (vundefined): Add new intrinsic.
153 (vreinterpret): Ditto.
154 (vlmul_ext): Ditto.
155 (vlmul_trunc): Ditto.
156 (vset): Ditto.
157 (vget): Ditto.
158 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
159 (struct narrow_alu_def): Ditto.
160 (struct reduc_alu_def): Ditto.
161 (struct vundefined_def): Ditto.
162 (struct misc_def): Ditto.
163 (struct vset_def): Ditto.
164 (struct vget_def): Ditto.
165 (SHAPE): Ditto.
166 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
167 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
168 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
169 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
170 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
171 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
172 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
173 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
174 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
175 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
176 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
177 (DEF_RVV_LMUL1_OPS): Ditto.
178 (DEF_RVV_LMUL2_OPS): Ditto.
179 (DEF_RVV_LMUL4_OPS): Ditto.
180 (vint16mf4_t): Ditto.
181 (vint16mf2_t): Ditto.
182 (vint16m1_t): Ditto.
183 (vint16m2_t): Ditto.
184 (vint16m4_t): Ditto.
185 (vint16m8_t): Ditto.
186 (vint32mf2_t): Ditto.
187 (vint32m1_t): Ditto.
188 (vint32m2_t): Ditto.
189 (vint32m4_t): Ditto.
190 (vint32m8_t): Ditto.
191 (vint64m1_t): Ditto.
192 (vint64m2_t): Ditto.
193 (vint64m4_t): Ditto.
194 (vint64m8_t): Ditto.
195 (vuint16mf4_t): Ditto.
196 (vuint16mf2_t): Ditto.
197 (vuint16m1_t): Ditto.
198 (vuint16m2_t): Ditto.
199 (vuint16m4_t): Ditto.
200 (vuint16m8_t): Ditto.
201 (vuint32mf2_t): Ditto.
202 (vuint32m1_t): Ditto.
203 (vuint32m2_t): Ditto.
204 (vuint32m4_t): Ditto.
205 (vuint32m8_t): Ditto.
206 (vuint64m1_t): Ditto.
207 (vuint64m2_t): Ditto.
208 (vuint64m4_t): Ditto.
209 (vuint64m8_t): Ditto.
210 (vint8mf4_t): Ditto.
211 (vint8mf2_t): Ditto.
212 (vint8m1_t): Ditto.
213 (vint8m2_t): Ditto.
214 (vint8m4_t): Ditto.
215 (vint8m8_t): Ditto.
216 (vuint8mf4_t): Ditto.
217 (vuint8mf2_t): Ditto.
218 (vuint8m1_t): Ditto.
219 (vuint8m2_t): Ditto.
220 (vuint8m4_t): Ditto.
221 (vuint8m8_t): Ditto.
222 (vint8mf8_t): Ditto.
223 (vuint8mf8_t): Ditto.
224 (vfloat32mf2_t): Ditto.
225 (vfloat32m1_t): Ditto.
226 (vfloat32m2_t): Ditto.
227 (vfloat32m4_t): Ditto.
228 (vfloat64m1_t): Ditto.
229 (vfloat64m2_t): Ditto.
230 (vfloat64m4_t): Ditto.
231 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
232 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
233 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
234 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
235 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
236 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
237 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
238 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
239 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
240 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
241 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
242 (DEF_RVV_LMUL1_OPS): Ditto.
243 (DEF_RVV_LMUL2_OPS): Ditto.
244 (DEF_RVV_LMUL4_OPS): Ditto.
245 (DEF_RVV_TYPE_INDEX): Ditto.
246 (required_extensions_p): Adapt for new intrinsic support/
247 (get_required_extensions): New function.
248 (check_required_extensions): Ditto.
249 (unsigned_base_type_p): Remove.
250 (rvv_arg_type_info::get_scalar_ptr_type): New function.
251 (get_mode_for_bitsize): Remove.
252 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
253 (rvv_arg_type_info::get_base_vector_type): Ditto.
254 (rvv_arg_type_info::get_function_type_index): Ditto.
255 (DEF_RVV_BASE_TYPE): New def.
256 (function_builder::apply_predication): New class.
257 (function_expander::mask_mode): Ditto.
258 (function_checker::function_checker): Ditto.
259 (function_checker::report_non_ice): Ditto.
260 (function_checker::report_out_of_range): Ditto.
261 (function_checker::require_immediate): Ditto.
262 (function_checker::require_immediate_range): Ditto.
263 (function_checker::check): Ditto.
264 (check_builtin_call): Ditto.
265 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
266 (DEF_RVV_BASE_TYPE): Ditto.
267 (DEF_RVV_TYPE_INDEX): Ditto.
268 (vbool64_t): Ditto.
269 (vbool32_t): Ditto.
270 (vbool16_t): Ditto.
271 (vbool8_t): Ditto.
272 (vbool4_t): Ditto.
273 (vbool2_t): Ditto.
274 (vbool1_t): Ditto.
275 (vuint8mf8_t): Ditto.
276 (vuint8mf4_t): Ditto.
277 (vuint8mf2_t): Ditto.
278 (vuint8m1_t): Ditto.
279 (vuint8m2_t): Ditto.
280 (vint8m4_t): Ditto.
281 (vuint8m4_t): Ditto.
282 (vint8m8_t): Ditto.
283 (vuint8m8_t): Ditto.
284 (vint16mf4_t): Ditto.
285 (vuint16mf2_t): Ditto.
286 (vuint16m1_t): Ditto.
287 (vuint16m2_t): Ditto.
288 (vuint16m4_t): Ditto.
289 (vuint16m8_t): Ditto.
290 (vint32mf2_t): Ditto.
291 (vuint32m1_t): Ditto.
292 (vuint32m2_t): Ditto.
293 (vuint32m4_t): Ditto.
294 (vuint32m8_t): Ditto.
295 (vuint64m1_t): Ditto.
296 (vuint64m2_t): Ditto.
297 (vuint64m4_t): Ditto.
298 (vuint64m8_t): Ditto.
299 (vfloat32mf2_t): Ditto.
300 (vfloat32m1_t): Ditto.
301 (vfloat32m2_t): Ditto.
302 (vfloat32m4_t): Ditto.
303 (vfloat32m8_t): Ditto.
304 (vfloat64m1_t): Ditto.
305 (vfloat64m4_t): Ditto.
306 (vector): Move it def.
307 (scalar): Ditto.
308 (mask): Ditto.
309 (signed_vector): Ditto.
310 (unsigned_vector): Ditto.
311 (unsigned_scalar): Ditto.
312 (vector_ptr): Ditto.
313 (scalar_ptr): Ditto.
314 (scalar_const_ptr): Ditto.
315 (void): Ditto.
316 (size): Ditto.
317 (ptrdiff): Ditto.
318 (unsigned_long): Ditto.
319 (long): Ditto.
320 (eew8_index): Ditto.
321 (eew16_index): Ditto.
322 (eew32_index): Ditto.
323 (eew64_index): Ditto.
324 (shift_vector): Ditto.
325 (double_trunc_vector): Ditto.
326 (quad_trunc_vector): Ditto.
327 (oct_trunc_vector): Ditto.
328 (double_trunc_scalar): Ditto.
329 (double_trunc_signed_vector): Ditto.
330 (double_trunc_unsigned_vector): Ditto.
331 (double_trunc_unsigned_scalar): Ditto.
332 (double_trunc_float_vector): Ditto.
333 (float_vector): Ditto.
334 (lmul1_vector): Ditto.
335 (widen_lmul1_vector): Ditto.
336 (eew8_interpret): Ditto.
337 (eew16_interpret): Ditto.
338 (eew32_interpret): Ditto.
339 (eew64_interpret): Ditto.
340 (vlmul_ext_x2): Ditto.
341 (vlmul_ext_x4): Ditto.
342 (vlmul_ext_x8): Ditto.
343 (vlmul_ext_x16): Ditto.
344 (vlmul_ext_x32): Ditto.
345 (vlmul_ext_x64): Ditto.
346 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
347 (struct function_type_info): New function.
348 (struct rvv_arg_type_info): Ditto.
349 (class function_checker): New class.
350 (rvv_arg_type_info::get_scalar_type): New function.
351 (rvv_arg_type_info::get_vector_type): Ditto.
352 (function_expander::ret_mode): New function.
353 (function_checker::arg_mode): Ditto.
354 (function_checker::ret_mode): Ditto.
355 * config/riscv/t-riscv: Add generator.
356 * config/riscv/vector-iterators.md: New iterators.
357 * config/riscv/vector.md (vundefined<mode>): New pattern.
358 (@vundefined<mode>): Ditto.
359 (@vreinterpret<mode>): Ditto.
360 (@vlmul_extx2<mode>): Ditto.
361 (@vlmul_extx4<mode>): Ditto.
362 (@vlmul_extx8<mode>): Ditto.
363 (@vlmul_extx16<mode>): Ditto.
364 (@vlmul_extx32<mode>): Ditto.
365 (@vlmul_extx64<mode>): Ditto.
366 (*vlmul_extx2<mode>): Ditto.
367 (*vlmul_extx4<mode>): Ditto.
368 (*vlmul_extx8<mode>): Ditto.
369 (*vlmul_extx16<mode>): Ditto.
370 (*vlmul_extx32<mode>): Ditto.
371 (*vlmul_extx64<mode>): Ditto.
372 * config/riscv/genrvv-type-indexer.cc: New file.
373
374 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
375
376 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
377 (slide1_sew64_helper): New function.
378 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
379 (get_unknown_min_value): Ditto.
380 (force_vector_length_operand): Ditto.
381 (gen_no_side_effects_vsetvl_rtx): Ditto.
382 (get_vl_x2_rtx): Ditto.
383 (slide1_sew64_helper): Ditto.
384 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
385 (class vrgather): Ditto.
386 (class vrgatherei16): Ditto.
387 (class vcompress): Ditto.
388 (BASE): Ditto.
389 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
390 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
391 (vslidedown): Ditto.
392 (vslide1up): Ditto.
393 (vslide1down): Ditto.
394 (vfslide1up): Ditto.
395 (vfslide1down): Ditto.
396 (vrgather): Ditto.
397 (vrgatherei16): Ditto.
398 (vcompress): Ditto.
399 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
400 (vint8mf8_t): Ditto.
401 (vint8mf4_t): Ditto.
402 (vint8mf2_t): Ditto.
403 (vint8m1_t): Ditto.
404 (vint8m2_t): Ditto.
405 (vint8m4_t): Ditto.
406 (vint16mf4_t): Ditto.
407 (vint16mf2_t): Ditto.
408 (vint16m1_t): Ditto.
409 (vint16m2_t): Ditto.
410 (vint16m4_t): Ditto.
411 (vint16m8_t): Ditto.
412 (vint32mf2_t): Ditto.
413 (vint32m1_t): Ditto.
414 (vint32m2_t): Ditto.
415 (vint32m4_t): Ditto.
416 (vint32m8_t): Ditto.
417 (vint64m1_t): Ditto.
418 (vint64m2_t): Ditto.
419 (vint64m4_t): Ditto.
420 (vint64m8_t): Ditto.
421 (vuint8mf8_t): Ditto.
422 (vuint8mf4_t): Ditto.
423 (vuint8mf2_t): Ditto.
424 (vuint8m1_t): Ditto.
425 (vuint8m2_t): Ditto.
426 (vuint8m4_t): Ditto.
427 (vuint16mf4_t): Ditto.
428 (vuint16mf2_t): Ditto.
429 (vuint16m1_t): Ditto.
430 (vuint16m2_t): Ditto.
431 (vuint16m4_t): Ditto.
432 (vuint16m8_t): Ditto.
433 (vuint32mf2_t): Ditto.
434 (vuint32m1_t): Ditto.
435 (vuint32m2_t): Ditto.
436 (vuint32m4_t): Ditto.
437 (vuint32m8_t): Ditto.
438 (vuint64m1_t): Ditto.
439 (vuint64m2_t): Ditto.
440 (vuint64m4_t): Ditto.
441 (vuint64m8_t): Ditto.
442 (vfloat32mf2_t): Ditto.
443 (vfloat32m1_t): Ditto.
444 (vfloat32m2_t): Ditto.
445 (vfloat32m4_t): Ditto.
446 (vfloat32m8_t): Ditto.
447 (vfloat64m1_t): Ditto.
448 (vfloat64m2_t): Ditto.
449 (vfloat64m4_t): Ditto.
450 (vfloat64m8_t): Ditto.
451 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
452 * config/riscv/riscv.md: Adjust RVV instruction types.
453 * config/riscv/vector-iterators.md (down): New iterator.
454 (=vd,vr): New attribute.
455 (UNSPEC_VSLIDE1UP): New unspec.
456 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
457 (*pred_slide<ud><mode>): Ditto.
458 (*pred_slide<ud><mode>_extended): Ditto.
459 (@pred_gather<mode>): Ditto.
460 (@pred_gather<mode>_scalar): Ditto.
461 (@pred_gatherei16<mode>): Ditto.
462 (@pred_compress<mode>): Ditto.
463
464 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
465
466 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
467
468 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
469
470 * config/riscv/constraints.md (Wb1): New constraint.
471 * config/riscv/predicates.md
472 (vector_least_significant_set_mask_operand): New predicate.
473 (vector_broadcast_mask_operand): Ditto.
474 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
475 (gen_scalar_move_mask): New function.
476 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
477 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
478 (class vmv_s): Ditto.
479 (BASE): Ditto.
480 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
481 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
482 (vmv_s): Ditto.
483 (vfmv_f): Ditto.
484 (vfmv_s): Ditto.
485 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
486 (SHAPE): Ditto.
487 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
488 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
489 (function_expander::use_exact_insn): New function.
490 (function_expander::use_contiguous_load_insn): New function.
491 (function_expander::use_contiguous_store_insn): New function.
492 (function_expander::use_ternop_insn): New function.
493 (function_expander::use_widen_ternop_insn): New function.
494 (function_expander::use_scalar_move_insn): New function.
495 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
496 * config/riscv/riscv-vector-builtins.h
497 (function_expander::add_scalar_move_mask_operand): New class.
498 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
499 (scalar_move_insn_p): Ditto.
500 (has_vsetvl_killed_avl_p): Ditto.
501 (anticipatable_occurrence_p): Ditto.
502 (insert_vsetvl): Ditto.
503 (get_vl_vtype_info): Ditto.
504 (calculate_sew): Ditto.
505 (calculate_vlmul): Ditto.
506 (incompatible_avl_p): Ditto.
507 (different_sew_p): Ditto.
508 (different_lmul_p): Ditto.
509 (different_ratio_p): Ditto.
510 (different_tail_policy_p): Ditto.
511 (different_mask_policy_p): Ditto.
512 (possible_zero_avl_p): Ditto.
513 (first_ratio_invalid_for_second_sew_p): Ditto.
514 (first_ratio_invalid_for_second_lmul_p): Ditto.
515 (second_ratio_invalid_for_first_sew_p): Ditto.
516 (second_ratio_invalid_for_first_lmul_p): Ditto.
517 (second_sew_less_than_first_sew_p): Ditto.
518 (first_sew_less_than_second_sew_p): Ditto.
519 (compare_lmul): Ditto.
520 (second_lmul_less_than_first_lmul_p): Ditto.
521 (first_lmul_less_than_second_lmul_p): Ditto.
522 (first_ratio_less_than_second_ratio_p): Ditto.
523 (second_ratio_less_than_first_ratio_p): Ditto.
524 (DEF_INCOMPATIBLE_COND): Ditto.
525 (greatest_sew): Ditto.
526 (first_sew): Ditto.
527 (second_sew): Ditto.
528 (first_vlmul): Ditto.
529 (second_vlmul): Ditto.
530 (first_ratio): Ditto.
531 (second_ratio): Ditto.
532 (vlmul_for_first_sew_second_ratio): Ditto.
533 (ratio_for_second_sew_first_vlmul): Ditto.
534 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
535 (always_unavailable): Ditto.
536 (avl_unavailable_p): Ditto.
537 (sew_unavailable_p): Ditto.
538 (lmul_unavailable_p): Ditto.
539 (ge_sew_unavailable_p): Ditto.
540 (ge_sew_lmul_unavailable_p): Ditto.
541 (ge_sew_ratio_unavailable_p): Ditto.
542 (DEF_UNAVAILABLE_COND): Ditto.
543 (same_sew_lmul_demand_p): Ditto.
544 (propagate_avl_across_demands_p): Ditto.
545 (reg_available_p): Ditto.
546 (avl_info::has_non_zero_avl): Ditto.
547 (vl_vtype_info::has_non_zero_avl): Ditto.
548 (vector_insn_info::operator>=): Refactor.
549 (vector_insn_info::parse_insn): Adjust for scalar move.
550 (vector_insn_info::demand_vl_vtype): Remove.
551 (vector_insn_info::compatible_p): New function.
552 (vector_insn_info::compatible_avl_p): Ditto.
553 (vector_insn_info::compatible_vtype_p): Ditto.
554 (vector_insn_info::available_p): Ditto.
555 (vector_insn_info::merge): Ditto.
556 (vector_insn_info::fuse_avl): Ditto.
557 (vector_insn_info::fuse_sew_lmul): Ditto.
558 (vector_insn_info::fuse_tail_policy): Ditto.
559 (vector_insn_info::fuse_mask_policy): Ditto.
560 (vector_insn_info::dump): Ditto.
561 (vector_infos_manager::release): Ditto.
562 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
563 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
564 (pass_vsetvl::hard_empty_block_p): Ditto.
565 (pass_vsetvl::backward_demand_fusion): Ditto.
566 (pass_vsetvl::forward_demand_fusion): Ditto.
567 (pass_vsetvl::refine_vsetvls): Ditto.
568 (pass_vsetvl::cleanup_vsetvls): Ditto.
569 (pass_vsetvl::commit_vsetvls): Ditto.
570 (pass_vsetvl::propagate_avl): Ditto.
571 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
572 (struct demands_pair): Ditto.
573 (struct demands_cond): Ditto.
574 (struct demands_fuse_rule): Ditto.
575 * config/riscv/vector-iterators.md: New iterator.
576 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
577 (*pred_broadcast<mode>): Ditto.
578 (*pred_broadcast<mode>_extended_scalar): Ditto.
579 (@pred_extract_first<mode>): Ditto.
580 (*pred_extract_first<mode>): Ditto.
581 (@pred_extract_first_trunc<mode>): Ditto.
582 * config/riscv/riscv-vsetvl.def: New file.
583
584 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
585
586 * config/riscv/bitmanip.md: allow 0 constant in max/min
587 pattern.
588
589 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
590
591 * config/riscv/bitmanip.md: Fix wrong index in the check.
592
593 2023-03-04 Jakub Jelinek <jakub@redhat.com>
594
595 PR middle-end/109006
596 * vec.cc (test_auto_alias): Adjust comment for removal of
597 m_vecdata.
598 * read-rtl-function.cc (function_reader::parse_block): Likewise.
599 * gdbhooks.py: Likewise.
600
601 2023-03-04 Jakub Jelinek <jakub@redhat.com>
602
603 PR testsuite/108973
604 * selftest-diagnostic.cc
605 (test_diagnostic_context::test_diagnostic_context): Set
606 caret_max_width to 80.
607
608 2023-03-03 Alexandre Oliva <oliva@adacore.com>
609
610 * gimple-ssa-warn-access.cc
611 (pass_waccess::check_dangling_stores): Skip non-stores.
612
613 2023-03-03 Alexandre Oliva <oliva@adacore.com>
614
615 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
616 after vmsr and vmrs, and lower the case of P0.
617
618 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
619
620 PR middle-end/109006
621 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
622
623 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
624
625 PR middle-end/109006
626 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
627
628 2023-03-03 Jakub Jelinek <jakub@redhat.com>
629
630 PR c/108986
631 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
632 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
633 suppressed on stmt. For [static %E] warning, print access_nelts
634 rather than access_size. Fix up comment wording.
635
636 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
637
638 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
639 arch14 instead of z16.
640
641 2023-03-03 Anthony Green <green@moxielogic.com>
642
643 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
644
645 2023-03-03 Anthony Green <green@moxielogic.com>
646
647 * config/moxie/constraints.md (A, B, W): Change
648 define_constraint to define_memory_constraint.
649
650 2023-03-03 Xi Ruoyao <xry111@xry111.site>
651
652 * toplev.cc (process_options): Fix the spelling of
653 "-fstack-clash-protection".
654
655 2023-03-03 Richard Biener <rguenther@suse.de>
656
657 PR tree-optimization/109002
658 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
659 PHI-translate ANTIC_IN.
660
661 2023-03-03 Jakub Jelinek <jakub@redhat.com>
662
663 PR tree-optimization/108988
664 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
665 size_type_node before passing it as argument to fwrite. Formatting
666 fixes.
667
668 2023-03-03 Richard Biener <rguenther@suse.de>
669
670 PR target/108738
671 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
672 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
673 * config/i386/i386-features.h (scalar_chain::max_visits): New.
674 (scalar_chain::build): Add bitmap parameter, return boolean.
675 (scalar_chain::add_insn): Likewise.
676 (scalar_chain::analyze_register_chain): Likewise.
677 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
678 Initialize max_visits.
679 (scalar_chain::analyze_register_chain): When we exhaust
680 max_visits, abort. Also abort when running into any
681 disallowed insn.
682 (scalar_chain::add_insn): Propagate abort.
683 (scalar_chain::build): Likewise. When aborting amend
684 the set of disallowed insn with the insns set.
685 (convert_scalars_to_vector): Adjust. Do not convert aborted
686 chains.
687
688 2023-03-03 Richard Biener <rguenther@suse.de>
689
690 PR debug/108772
691 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
692 generate a DIE for a function scope static.
693
694 2023-03-03 Alexandre Oliva <oliva@adacore.com>
695
696 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
697
698 2023-03-02 Jakub Jelinek <jakub@redhat.com>
699
700 PR target/108883
701 * target.h (emit_support_tinfos_callback): New typedef.
702 * targhooks.h (default_emit_support_tinfos): Declare.
703 * targhooks.cc (default_emit_support_tinfos): New function.
704 * target.def (emit_support_tinfos): New target hook.
705 * doc/tm.texi.in (emit_support_tinfos): Document it.
706 * doc/tm.texi: Regenerated.
707 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
708 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
709
710 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
711
712 * ira-costs.cc: Include print-rtl.h.
713 (record_reg_classes, scan_one_insn): Add code to print debug info.
714 (record_operand_costs): Find and use smaller cost for hard reg
715 move.
716
717 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
718 Paul-Antoine Arras <pa@codesourcery.com>
719
720 * builtins.cc (mathfn_built_in_explicit): New.
721 * config/gcn/gcn.cc: Include case-cfn-macros.h.
722 (mathfn_built_in_explicit): Add prototype.
723 (gcn_vectorize_builtin_vectorized_function): New.
724 (gcn_libc_has_function): New.
725 (TARGET_LIBC_HAS_FUNCTION): Define.
726 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
727
728 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
729
730 PR tree-optimization/108979
731 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
732 operations on invariants.
733
734 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
735
736 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
737 * config/s390/s390.cc (s390_option_override_internal): Make
738 partial vector usage the default from z13 on.
739 * config/s390/vector.md (len_load_v16qi): Add.
740 (len_store_v16qi): Add.
741
742 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
743
744 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
745 of constant 0 offset.
746
747 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
748
749 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
750 instead of long.
751 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
752
753 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
754
755 * config.gcc: add -with-{no-}msa build option.
756 * config/mips/mips.h: Likewise.
757 * doc/install.texi: Likewise.
758
759 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
760
761 PR tree-optimization/108603
762 * explow.cc (convert_memory_address_addr_space_1): Only wrap
763 the result of a recursive call in a CONST if no instructions
764 were emitted.
765
766 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
767
768 PR tree-optimization/108430
769 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
770 of inverted condition.
771
772 2023-03-02 Jakub Jelinek <jakub@redhat.com>
773
774 PR c++/108934
775 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
776 comparison copy the bytes from ptr to a temporary buffer and clearing
777 padding bits in there.
778
779 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
780
781 PR middle-end/108545
782 * gimplify.cc (struct tree_operand_hash_no_se): New.
783 (omp_index_mapping_groups_1, omp_index_mapping_groups,
784 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
785 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
786 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
787 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
788 of tree_operand_hash.
789
790 2023-03-01 LIU Hao <lh_mouse@126.com>
791
792 PR pch/14940
793 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
794 Remove the size limit `pch_VA_max_size`
795
796 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
797
798 PR middle-end/108546
799 * omp-low.cc (lower_omp_target): Remove optional handling
800 on the receiver side, i.e. inside target (data), for
801 use_device_ptr.
802
803 2023-03-01 Jakub Jelinek <jakub@redhat.com>
804
805 PR debug/108967
806 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
807 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
808
809 2023-03-01 Richard Biener <rguenther@suse.de>
810
811 PR tree-optimization/108970
812 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
813 Check we can copy the BBs.
814 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
815 check.
816 (vect_do_peeling): Streamline error handling.
817
818 2023-03-01 Richard Biener <rguenther@suse.de>
819
820 PR tree-optimization/108950
821 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
822 Check oprnd0 is defined in the loop.
823 * tree-vect-loop.cc (vectorizable_reduction): Record all
824 operands vector types, compute that of invariants and
825 properly update their SLP nodes.
826
827 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
828
829 PR target/108240
830 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
831 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
832
833 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
834
835 PR middle-end/107411
836 PR middle-end/107411
837 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
838 xasprintf.
839 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
840 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
841
842 2023-02-28 Jakub Jelinek <jakub@redhat.com>
843
844 PR sanitizer/108894
845 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
846 comparison rather than index > bound.
847 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
848 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
849 * doc/invoke.texi (-fsanitize=bounds): Document that whether
850 flexible array member-like arrays are instrumented or not depends
851 on -fstrict-flex-arrays* options of strict_flex_array attributes.
852 (-fsanitize=bounds-strict): Document that flexible array members
853 are not instrumented.
854
855 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
856
857 PR target/108922
858 Revert:
859 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
860 (fmod<mode>3): Ditto.
861 (fpremxf4_i387): Ditto.
862 (reminderxf3): Ditto.
863 (reminder<mode>3): Ditto.
864 (fprem1xf4_i387): Ditto.
865
866 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
867
868 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
869 generating FFS with mismatched operand and result modes, by using
870 an explicit SIGN_EXTEND/ZERO_EXTEND.
871 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
872 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
873
874 2023-02-27 Patrick Palka <ppalka@redhat.com>
875
876 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
877 * lra-int.h (lra_change_class): Likewise.
878 * recog.h (which_op_alt): Likewise.
879 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
880 instead of static.
881
882 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
883
884 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
885 New prototype.
886 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
887 New function.
888 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
889 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
890
891 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
892
893 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
894 (xtensa_get_config_v3): New functions.
895
896 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
897
898 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
899
900 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
901
902 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
903 the macro to 0x1000000000.
904
905 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
906
907 PR modula2/108261
908 * doc/gm2.texi (-fm2-pathname): New option documented.
909 (-fm2-pathnameI): New option documented.
910 (-fm2-prefix=): New option documented.
911 (-fruntime-modules=): Update default module list.
912
913 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
914
915 PR target/108919
916 * config/xtensa/xtensa-protos.h
917 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
918 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
919 to xtensa_expand_call.
920 (xtensa_expand_call): Emit the call and add a clobber expression
921 for the static chain to it in case of windowed ABI.
922 * config/xtensa/xtensa.md (call, call_value, sibcall)
923 (sibcall_value): Call xtensa_expand_call and complete expansion
924 right after that call.
925
926 2023-02-24 Richard Biener <rguenther@suse.de>
927
928 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
929 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
930 changing alignment of vec<T, A, vl_embed> and simplifying
931 address.
932 (vec<T, A, vl_embed>::address): Compute as this + 1.
933 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
934 vector instead of the offset of the m_vecdata member.
935 (auto_vec<T, N>::m_data): Turn storage into
936 uninitialized unsigned char.
937 (auto_vec<T, N>::auto_vec): Allow allocation of one
938 stack member. Initialize m_vec in a special way to
939 avoid later stringop overflow diagnostics.
940 * vec.cc (test_auto_alias): New.
941 (vec_cc_tests): Call it.
942
943 2023-02-24 Richard Biener <rguenther@suse.de>
944
945 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
946 take a const reference to the object, use address to
947 access data.
948 (vec<T, A, vl_embed>::contains): Use address to access data.
949 (vec<T, A, vl_embed>::operator[]): Use address instead of
950 m_vecdata to access data.
951 (vec<T, A, vl_embed>::iterate): Likewise.
952 (vec<T, A, vl_embed>::copy): Likewise.
953 (vec<T, A, vl_embed>::quick_push): Likewise.
954 (vec<T, A, vl_embed>::pop): Likewise.
955 (vec<T, A, vl_embed>::quick_insert): Likewise.
956 (vec<T, A, vl_embed>::ordered_remove): Likewise.
957 (vec<T, A, vl_embed>::unordered_remove): Likewise.
958 (vec<T, A, vl_embed>::block_remove): Likewise.
959 (vec<T, A, vl_heap>::address): Likewise.
960
961 2023-02-24 Martin Liska <mliska@suse.cz>
962
963 PR sanitizer/108834
964 * asan.cc (asan_add_global): Use proper TU name for normal
965 global variables (and aux_base_name for the artificial one).
966
967 2023-02-24 Jakub Jelinek <jakub@redhat.com>
968
969 * config/i386/i386-builtin.def: Update description of BDESC
970 and BDESC_FIRST in file comment to include mask2.
971
972 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
973
974 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
975
976 2023-02-24 Jakub Jelinek <jakub@redhat.com>
977
978 PR middle-end/108854
979 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
980 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
981 nodes and adjust their DECL_CONTEXT.
982
983 2023-02-24 Jakub Jelinek <jakub@redhat.com>
984
985 PR target/108881
986 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
987 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
988 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
989 __builtin_ia32_cvtne2ps2bf16_v8bf,
990 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
991 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
992 __builtin_ia32_cvtneps2bf16_v8sf_mask,
993 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
994 __builtin_ia32_cvtneps2bf16_v4sf_mask,
995 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
996 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
997 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
998 __builtin_ia32_dpbf16ps_v4sf_mask,
999 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
1000 OPTION_MASK_ISA_AVX512VL.
1001
1002 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
1003
1004 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
1005 Add non-compact 32-bit multilibs.
1006
1007 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
1008
1009 * config/mips/mips.md (*clo<mode>2): New pattern.
1010
1011 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
1012
1013 * config/mips/mips.h (machine_function): New variable
1014 use_hazard_barrier_return_p.
1015 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
1016 (mips_hb_return_internal): New insn pattern.
1017 * config/mips/mips.cc (mips_attribute_table): Add attribute
1018 use_hazard_barrier_return.
1019 (mips_use_hazard_barrier_return_p): New static function.
1020 (mips_function_attr_inlinable_p): Likewise.
1021 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
1022 Emit error for unsupported architecture choice.
1023 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
1024 Return false for use_hazard_barrier_return.
1025 (mips_expand_epilogue): Emit hazard barrier return.
1026 * doc/extend.texi: Document use_hazard_barrier_return.
1027
1028 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1029
1030 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
1031 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
1032 for the gcc-internal headers.
1033
1034 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1035
1036 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
1037 and $(POSTCOMPILE) instead of manual dependency listing.
1038 * config/xtensa/xtensa-dynconfig.c: Rename to ...
1039 * config/xtensa/xtensa-dynconfig.cc: ... this.
1040
1041 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
1042
1043 * doc/cfg.texi: Reorder index entries around @items.
1044 * doc/cpp.texi: Ditto.
1045 * doc/cppenv.texi: Ditto.
1046 * doc/cppopts.texi: Ditto.
1047 * doc/generic.texi: Ditto.
1048 * doc/install.texi: Ditto.
1049 * doc/extend.texi: Ditto.
1050 * doc/invoke.texi: Ditto.
1051 * doc/md.texi: Ditto.
1052 * doc/rtl.texi: Ditto.
1053 * doc/tm.texi.in: Ditto.
1054 * doc/trouble.texi: Ditto.
1055 * doc/tm.texi: Regenerate.
1056
1057 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1058
1059 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
1060 the occurrence of general-purpose register used only once and for
1061 transferring intermediate value.
1062
1063 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1064
1065 * config/xtensa/xtensa.cc (machine_function): Add new member
1066 'eliminated_callee_saved_bmp'.
1067 (xtensa_can_eliminate_callee_saved_reg_p): New function to
1068 determine whether the register can be eliminated or not.
1069 (xtensa_expand_prologue): Add invoking the above function and
1070 elimination the use of callee-saved register by using its stack
1071 slot through the stack pointer (or the frame pointer if needed)
1072 directly.
1073 (xtensa_expand_prologue): Modify to not emit register restoration
1074 insn from its stack slot if the register is already eliminated.
1075
1076 2023-02-23 Jakub Jelinek <jakub@redhat.com>
1077
1078 PR translation/108890
1079 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
1080 around fatal_error format strings.
1081
1082 2023-02-23 Richard Biener <rguenther@suse.de>
1083
1084 * tree-ssa-structalias.cc (handle_lhs_call): Do not
1085 re-create rhsc, only truncate it.
1086
1087 2023-02-23 Jakub Jelinek <jakub@redhat.com>
1088
1089 PR middle-end/106258
1090 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
1091 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
1092
1093 2023-02-23 Richard Biener <rguenther@suse.de>
1094
1095 * tree-if-conv.cc (tree_if_conversion): Properly manage
1096 memory of refs and the contained data references.
1097
1098 2023-02-23 Richard Biener <rguenther@suse.de>
1099
1100 PR tree-optimization/108888
1101 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
1102 calls to predicate.
1103 (predicate_statements): Only predicate calls with PLF_2.
1104
1105 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1106
1107 * config/xtensa/xtensa.md
1108 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
1109 Add missing "SI:" to PLUS RTXes.
1110
1111 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1112
1113 PR target/108876
1114 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
1115 Emit (use (reg:SI A0_REG)) at the end in the sibling call
1116 (i.e. the same place as (return) in the normal call).
1117
1118 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1119
1120 Revert:
1121 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
1122
1123 PR target/108876
1124 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
1125 for A0_REG.
1126 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
1127 (sibcall_value, sibcall_value_internal): Add 'use' expression
1128 for A0_REG.
1129
1130 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
1131
1132 * doc/cppdiropts.texi: Reorder @opindex commands to precede
1133 @items they relate to.
1134 * doc/cppopts.texi: Ditto.
1135 * doc/cppwarnopts.texi: Ditto.
1136 * doc/invoke.texi: Ditto.
1137 * doc/lto.texi: Ditto.
1138
1139 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
1140
1141 * internal-fn.cc (expand_MASK_CALL): New.
1142 * internal-fn.def (MASK_CALL): New.
1143 * internal-fn.h (expand_MASK_CALL): New prototype.
1144 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
1145 for mask arguments also.
1146 * tree-if-conv.cc: Include cgraph.h.
1147 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
1148 (predicate_statements): Convert functions to IFN_MASK_CALL.
1149 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
1150 IFN_MASK_CALL as a SIMD function call.
1151 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
1152 IFN_MASK_CALL as an inbranch SIMD function call.
1153 Generate the mask vector arguments.
1154
1155 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1156
1157 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
1158 (class widen_reducop): Ditto.
1159 (class freducop): Ditto.
1160 (class widen_freducop): Ditto.
1161 (BASE): Ditto.
1162 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1163 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
1164 (vredmaxu): Ditto.
1165 (vredmax): Ditto.
1166 (vredminu): Ditto.
1167 (vredmin): Ditto.
1168 (vredand): Ditto.
1169 (vredor): Ditto.
1170 (vredxor): Ditto.
1171 (vwredsum): Ditto.
1172 (vwredsumu): Ditto.
1173 (vfredusum): Ditto.
1174 (vfredosum): Ditto.
1175 (vfredmax): Ditto.
1176 (vfredmin): Ditto.
1177 (vfwredosum): Ditto.
1178 (vfwredusum): Ditto.
1179 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
1180 (SHAPE): Ditto.
1181 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1182 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
1183 (DEF_RVV_WU_OPS): Ditto.
1184 (DEF_RVV_WF_OPS): Ditto.
1185 (vint8mf8_t): Ditto.
1186 (vint8mf4_t): Ditto.
1187 (vint8mf2_t): Ditto.
1188 (vint8m1_t): Ditto.
1189 (vint8m2_t): Ditto.
1190 (vint8m4_t): Ditto.
1191 (vint8m8_t): Ditto.
1192 (vint16mf4_t): Ditto.
1193 (vint16mf2_t): Ditto.
1194 (vint16m1_t): Ditto.
1195 (vint16m2_t): Ditto.
1196 (vint16m4_t): Ditto.
1197 (vint16m8_t): Ditto.
1198 (vint32mf2_t): Ditto.
1199 (vint32m1_t): Ditto.
1200 (vint32m2_t): Ditto.
1201 (vint32m4_t): Ditto.
1202 (vint32m8_t): Ditto.
1203 (vuint8mf8_t): Ditto.
1204 (vuint8mf4_t): Ditto.
1205 (vuint8mf2_t): Ditto.
1206 (vuint8m1_t): Ditto.
1207 (vuint8m2_t): Ditto.
1208 (vuint8m4_t): Ditto.
1209 (vuint8m8_t): Ditto.
1210 (vuint16mf4_t): Ditto.
1211 (vuint16mf2_t): Ditto.
1212 (vuint16m1_t): Ditto.
1213 (vuint16m2_t): Ditto.
1214 (vuint16m4_t): Ditto.
1215 (vuint16m8_t): Ditto.
1216 (vuint32mf2_t): Ditto.
1217 (vuint32m1_t): Ditto.
1218 (vuint32m2_t): Ditto.
1219 (vuint32m4_t): Ditto.
1220 (vuint32m8_t): Ditto.
1221 (vfloat32mf2_t): Ditto.
1222 (vfloat32m1_t): Ditto.
1223 (vfloat32m2_t): Ditto.
1224 (vfloat32m4_t): Ditto.
1225 (vfloat32m8_t): Ditto.
1226 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
1227 (DEF_RVV_WU_OPS): Ditto.
1228 (DEF_RVV_WF_OPS): Ditto.
1229 (required_extensions_p): Add reduction support.
1230 (rvv_arg_type_info::get_base_vector_type): Ditto.
1231 (rvv_arg_type_info::get_tree_type): Ditto.
1232 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
1233 * config/riscv/riscv.md: Ditto.
1234 * config/riscv/vector-iterators.md (minu): Ditto.
1235 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
1236 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
1237 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
1238 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
1239 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
1240 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
1241 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
1242
1243 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1244
1245 * config/riscv/iterators.md: New iterator.
1246 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
1247 (enum ternop_type): New enum.
1248 (class vmacc): New class.
1249 (class imac): Ditto.
1250 (class vnmsac): Ditto.
1251 (enum widen_ternop_type): New enum.
1252 (class vmadd): Ditto.
1253 (class vnmsub): Ditto.
1254 (class iwmac): Ditto.
1255 (class vwmacc): Ditto.
1256 (class vwmaccu): Ditto.
1257 (class vwmaccsu): Ditto.
1258 (class vwmaccus): Ditto.
1259 (class reverse_binop): Ditto.
1260 (class vfmacc): Ditto.
1261 (class vfnmsac): Ditto.
1262 (class vfmadd): Ditto.
1263 (class vfnmsub): Ditto.
1264 (class vfnmacc): Ditto.
1265 (class vfmsac): Ditto.
1266 (class vfnmadd): Ditto.
1267 (class vfmsub): Ditto.
1268 (class vfwmacc): Ditto.
1269 (class vfwnmacc): Ditto.
1270 (class vfwmsac): Ditto.
1271 (class vfwnmsac): Ditto.
1272 (class float_misc): Ditto.
1273 (class fcmp): Ditto.
1274 (class vfclass): Ditto.
1275 (class vfcvt_x): Ditto.
1276 (class vfcvt_rtz_x): Ditto.
1277 (class vfcvt_f): Ditto.
1278 (class vfwcvt_x): Ditto.
1279 (class vfwcvt_rtz_x): Ditto.
1280 (class vfwcvt_f): Ditto.
1281 (class vfncvt_x): Ditto.
1282 (class vfncvt_rtz_x): Ditto.
1283 (class vfncvt_f): Ditto.
1284 (class vfncvt_rod_f): Ditto.
1285 (BASE): Ditto.
1286 * config/riscv/riscv-vector-builtins-bases.h:
1287 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
1288 (vsext): Ditto.
1289 (vfadd): Ditto.
1290 (vfsub): Ditto.
1291 (vfrsub): Ditto.
1292 (vfwadd): Ditto.
1293 (vfwsub): Ditto.
1294 (vfmul): Ditto.
1295 (vfdiv): Ditto.
1296 (vfrdiv): Ditto.
1297 (vfwmul): Ditto.
1298 (vfmacc): Ditto.
1299 (vfnmsac): Ditto.
1300 (vfmadd): Ditto.
1301 (vfnmsub): Ditto.
1302 (vfnmacc): Ditto.
1303 (vfmsac): Ditto.
1304 (vfnmadd): Ditto.
1305 (vfmsub): Ditto.
1306 (vfwmacc): Ditto.
1307 (vfwnmacc): Ditto.
1308 (vfwmsac): Ditto.
1309 (vfwnmsac): Ditto.
1310 (vfsqrt): Ditto.
1311 (vfrsqrt7): Ditto.
1312 (vfrec7): Ditto.
1313 (vfmin): Ditto.
1314 (vfmax): Ditto.
1315 (vfsgnj): Ditto.
1316 (vfsgnjn): Ditto.
1317 (vfsgnjx): Ditto.
1318 (vfneg): Ditto.
1319 (vfabs): Ditto.
1320 (vmfeq): Ditto.
1321 (vmfne): Ditto.
1322 (vmflt): Ditto.
1323 (vmfle): Ditto.
1324 (vmfgt): Ditto.
1325 (vmfge): Ditto.
1326 (vfclass): Ditto.
1327 (vfmerge): Ditto.
1328 (vfmv_v): Ditto.
1329 (vfcvt_x): Ditto.
1330 (vfcvt_xu): Ditto.
1331 (vfcvt_rtz_x): Ditto.
1332 (vfcvt_rtz_xu): Ditto.
1333 (vfcvt_f): Ditto.
1334 (vfwcvt_x): Ditto.
1335 (vfwcvt_xu): Ditto.
1336 (vfwcvt_rtz_x): Ditto.
1337 (vfwcvt_rtz_xu): Ditto.
1338 (vfwcvt_f): Ditto.
1339 (vfncvt_x): Ditto.
1340 (vfncvt_xu): Ditto.
1341 (vfncvt_rtz_x): Ditto.
1342 (vfncvt_rtz_xu): Ditto.
1343 (vfncvt_f): Ditto.
1344 (vfncvt_rod_f): Ditto.
1345 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
1346 (struct move_def): Ditto.
1347 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
1348 (DEF_RVV_CONVERT_I_OPS): Ditto.
1349 (DEF_RVV_CONVERT_U_OPS): Ditto.
1350 (DEF_RVV_WCONVERT_I_OPS): Ditto.
1351 (DEF_RVV_WCONVERT_U_OPS): Ditto.
1352 (DEF_RVV_WCONVERT_F_OPS): Ditto.
1353 (vfloat64m1_t): Ditto.
1354 (vfloat64m2_t): Ditto.
1355 (vfloat64m4_t): Ditto.
1356 (vfloat64m8_t): Ditto.
1357 (vint32mf2_t): Ditto.
1358 (vint32m1_t): Ditto.
1359 (vint32m2_t): Ditto.
1360 (vint32m4_t): Ditto.
1361 (vint32m8_t): Ditto.
1362 (vint64m1_t): Ditto.
1363 (vint64m2_t): Ditto.
1364 (vint64m4_t): Ditto.
1365 (vint64m8_t): Ditto.
1366 (vuint32mf2_t): Ditto.
1367 (vuint32m1_t): Ditto.
1368 (vuint32m2_t): Ditto.
1369 (vuint32m4_t): Ditto.
1370 (vuint32m8_t): Ditto.
1371 (vuint64m1_t): Ditto.
1372 (vuint64m2_t): Ditto.
1373 (vuint64m4_t): Ditto.
1374 (vuint64m8_t): Ditto.
1375 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
1376 (DEF_RVV_CONVERT_U_OPS): Ditto.
1377 (DEF_RVV_WCONVERT_I_OPS): Ditto.
1378 (DEF_RVV_WCONVERT_U_OPS): Ditto.
1379 (DEF_RVV_WCONVERT_F_OPS): Ditto.
1380 (DEF_RVV_F_OPS): Ditto.
1381 (DEF_RVV_WEXTF_OPS): Ditto.
1382 (required_extensions_p): Adjust for floating-point support.
1383 (check_required_extensions): Ditto.
1384 (unsigned_base_type_p): Ditto.
1385 (get_mode_for_bitsize): Ditto.
1386 (rvv_arg_type_info::get_base_vector_type): Ditto.
1387 (rvv_arg_type_info::get_tree_type): Ditto.
1388 * config/riscv/riscv-vector-builtins.def (v_f): New define.
1389 (f): New define.
1390 (f_v): New define.
1391 (xu_v): New define.
1392 (f_w): New define.
1393 (xu_w): New define.
1394 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
1395 (function_expander::arg_mode): New function.
1396 * config/riscv/vector-iterators.md (sof): New iterator.
1397 (vfrecp): Ditto.
1398 (copysign): Ditto.
1399 (n): Ditto.
1400 (msac): Ditto.
1401 (msub): Ditto.
1402 (fixuns_trunc): Ditto.
1403 (floatuns): Ditto.
1404 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
1405 (@pred_<optab><mode>): Ditto.
1406 (@pred_<optab><mode>_scalar): Ditto.
1407 (@pred_<optab><mode>_reverse_scalar): Ditto.
1408 (@pred_<copysign><mode>): Ditto.
1409 (@pred_<copysign><mode>_scalar): Ditto.
1410 (@pred_mul_<optab><mode>): Ditto.
1411 (pred_mul_<optab><mode>_undef_merge): Ditto.
1412 (*pred_<madd_nmsub><mode>): Ditto.
1413 (*pred_<macc_nmsac><mode>): Ditto.
1414 (*pred_mul_<optab><mode>): Ditto.
1415 (@pred_mul_<optab><mode>_scalar): Ditto.
1416 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
1417 (*pred_<madd_nmsub><mode>_scalar): Ditto.
1418 (*pred_<macc_nmsac><mode>_scalar): Ditto.
1419 (*pred_mul_<optab><mode>_scalar): Ditto.
1420 (@pred_neg_mul_<optab><mode>): Ditto.
1421 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
1422 (*pred_<nmadd_msub><mode>): Ditto.
1423 (*pred_<nmacc_msac><mode>): Ditto.
1424 (*pred_neg_mul_<optab><mode>): Ditto.
1425 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
1426 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
1427 (*pred_<nmadd_msub><mode>_scalar): Ditto.
1428 (*pred_<nmacc_msac><mode>_scalar): Ditto.
1429 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
1430 (@pred_<misc_op><mode>): Ditto.
1431 (@pred_class<mode>): Ditto.
1432 (@pred_dual_widen_<optab><mode>): Ditto.
1433 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
1434 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
1435 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
1436 (@pred_widen_mul_<optab><mode>): Ditto.
1437 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
1438 (@pred_widen_neg_mul_<optab><mode>): Ditto.
1439 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
1440 (@pred_cmp<mode>): Ditto.
1441 (*pred_cmp<mode>): Ditto.
1442 (*pred_cmp<mode>_narrow): Ditto.
1443 (@pred_cmp<mode>_scalar): Ditto.
1444 (*pred_cmp<mode>_scalar): Ditto.
1445 (*pred_cmp<mode>_scalar_narrow): Ditto.
1446 (@pred_eqne<mode>_scalar): Ditto.
1447 (*pred_eqne<mode>_scalar): Ditto.
1448 (*pred_eqne<mode>_scalar_narrow): Ditto.
1449 (@pred_merge<mode>_scalar): Ditto.
1450 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
1451 (@pred_<fix_cvt><mode>): Ditto.
1452 (@pred_<float_cvt><mode>): Ditto.
1453 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
1454 (@pred_widen_<fix_cvt><mode>): Ditto.
1455 (@pred_widen_<float_cvt><mode>): Ditto.
1456 (@pred_extend<mode>): Ditto.
1457 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
1458 (@pred_narrow_<fix_cvt><mode>): Ditto.
1459 (@pred_narrow_<float_cvt><mode>): Ditto.
1460 (@pred_trunc<mode>): Ditto.
1461 (@pred_rod_trunc<mode>): Ditto.
1462
1463 2023-02-22 Jakub Jelinek <jakub@redhat.com>
1464
1465 PR middle-end/106258
1466 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
1467 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
1468 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
1469 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
1470
1471 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
1472
1473 * common.opt (-Wcomplain-wrong-lang): New.
1474 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
1475 * opts-common.cc (prune_options): Handle it.
1476 * opts-global.cc (complain_wrong_lang): Use it.
1477
1478 2023-02-21 David Malcolm <dmalcolm@redhat.com>
1479
1480 PR analyzer/108830
1481 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
1482
1483 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
1484
1485 PR target/108876
1486 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
1487 for A0_REG.
1488 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
1489 (sibcall_value, sibcall_value_internal): Add 'use' expression
1490 for A0_REG.
1491
1492 2023-02-21 Richard Biener <rguenther@suse.de>
1493
1494 PR tree-optimization/108691
1495 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
1496 assert about calls_setjmp not becoming true when it was false.
1497
1498 2023-02-21 Richard Biener <rguenther@suse.de>
1499
1500 PR tree-optimization/108793
1501 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
1502 Use convert operands to niter_type when computing num.
1503
1504 2023-02-21 Richard Biener <rguenther@suse.de>
1505
1506 Revert:
1507 2023-02-13 Richard Biener <rguenther@suse.de>
1508
1509 PR tree-optimization/108691
1510 * tree-cfg.cc (notice_special_calls): When the CFG is built
1511 honor gimple_call_ctrl_altering_p.
1512 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
1513 temporarily if the call is not control-altering.
1514 * calls.cc (emit_call_1): Do not add REG_SETJMP if
1515 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
1516
1517 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1518
1519 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
1520 true if register A0 (return address register) when -Og is specified.
1521
1522 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
1523
1524 * config/i386/predicates.md
1525 (general_x64constmem_operand): New predicate.
1526 * config/i386/i386.md (*cmpqi_ext<mode>_1):
1527 Use nonimm_x64constmem_operand.
1528 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
1529 (*addqi_ext<mode>_1): Ditto.
1530 (*testqi_ext<mode>_1): Ditto.
1531 (*andqi_ext<mode>_1): Ditto.
1532 (*andqi_ext<mode>_1_cc): Ditto.
1533 (*<any_or:code>qi_ext<mode>_1): Ditto.
1534 (*xorqi_ext<mode>_1_cc): Ditto.
1535
1536 2023-02-20 Jakub Jelinek <jakub2redhat.com>
1537
1538 PR target/108862
1539 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
1540 gen_umadddi4_highpart{,_le}.
1541
1542 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
1543
1544 * config/riscv/riscv.md (prefetch): Use r instead of p for the
1545 address operand.
1546 (riscv_prefetchi_<mode>): Ditto.
1547
1548 2023-02-20 Richard Biener <rguenther@suse.de>
1549
1550 PR tree-optimization/108816
1551 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
1552 versioning condition split prerequesite, assert required
1553 invariant.
1554
1555 2023-02-20 Richard Biener <rguenther@suse.de>
1556
1557 PR tree-optimization/108825
1558 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
1559 loop-local verfication only verify there's no pending SSA
1560 update.
1561
1562 2023-02-20 Richard Biener <rguenther@suse.de>
1563
1564 PR tree-optimization/108819
1565 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
1566 we have an SSA name as iv_2 as expected.
1567
1568 2023-02-18 Jakub Jelinek <jakub@redhat.com>
1569
1570 PR tree-optimization/108819
1571 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
1572
1573 2023-02-18 Jakub Jelinek <jakub@redhat.com>
1574
1575 PR target/108832
1576 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
1577 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
1578 function.
1579 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
1580 with ix86_replace_reg_with_reg.
1581
1582 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1583
1584 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
1585
1586 2023-02-18 Xi Ruoyao <xry111@xry111.site>
1587
1588 * config.gcc (triplet_abi): Set its value based on $with_abi,
1589 instead of $target.
1590 (la_canonical_triplet): Set it after $triplet_abi is set
1591 correctly.
1592 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
1593 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
1594 "f64" suffix).
1595
1596 2023-02-18 Andrew Pinski <apinski@marvell.com>
1597
1598 * match.pd: Remove #if GIMPLE around the
1599 "1 - a" pattern
1600
1601 2023-02-18 Andrew Pinski <apinski@marvell.com>
1602
1603 * value-query.h (get_range_query): Return the global ranges
1604 for a nullptr func.
1605
1606 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
1607
1608 * doc/invoke.texi (@item -Wall): Fix typo in
1609 -Wuse-after-free.
1610
1611 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
1612
1613 PR target/108831
1614 * config/i386/predicates.md
1615 (nonimm_x64constmem_operand): New predicate.
1616 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
1617 (*subqi_ext<mode>_0): Ditto.
1618 (*andqi_ext<mode>_0): Ditto.
1619 (*<any_or:code>qi_ext<mode>_0): Ditto.
1620
1621 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
1622
1623 PR target/108805
1624 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
1625 int_outermode instead of GET_MODE (tem) to prevent
1626 VOIDmode from entering simplify_gen_subreg.
1627
1628 2023-02-17 Richard Biener <rguenther@suse.de>
1629
1630 PR tree-optimization/108821
1631 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
1632 move volatile accesses.
1633
1634 2023-02-17 Richard Biener <rguenther@suse.de>
1635
1636 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
1637 called on virtual operands.
1638 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
1639 ssa_undefined_value_p calls.
1640 (vn_phi_insert): Likewise.
1641 (set_ssa_val_to): Likewise.
1642 (visit_phi): Avoid extra work with equivalences for
1643 virtual operand PHIs.
1644
1645 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1646
1647 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
1648 class.
1649 (class mask_nlogic): Ditto.
1650 (class mask_notlogic): Ditto.
1651 (class vmmv): Ditto.
1652 (class vmclr): Ditto.
1653 (class vmset): Ditto.
1654 (class vmnot): Ditto.
1655 (class vcpop): Ditto.
1656 (class vfirst): Ditto.
1657 (class mask_misc): Ditto.
1658 (class viota): Ditto.
1659 (class vid): Ditto.
1660 (BASE): Ditto.
1661 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1662 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
1663 (vmnand): Ditto.
1664 (vmandn): Ditto.
1665 (vmxor): Ditto.
1666 (vmor): Ditto.
1667 (vmnor): Ditto.
1668 (vmorn): Ditto.
1669 (vmxnor): Ditto.
1670 (vmmv): Ditto.
1671 (vmclr): Ditto.
1672 (vmset): Ditto.
1673 (vmnot): Ditto.
1674 (vcpop): Ditto.
1675 (vfirst): Ditto.
1676 (vmsbf): Ditto.
1677 (vmsif): Ditto.
1678 (vmsof): Ditto.
1679 (viota): Ditto.
1680 (vid): Ditto.
1681 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
1682 (struct mask_alu_def): Ditto.
1683 (SHAPE): Ditto.
1684 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1685 * config/riscv/riscv-vector-builtins.cc: Ditto.
1686 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
1687 for dest it scalar RVV intrinsics.
1688 * config/riscv/vector-iterators.md (sof): New iterator.
1689 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
1690 (@pred_<optab>not<mode>): New pattern.
1691 (@pred_popcount<VB:mode><P:mode>): New pattern.
1692 (@pred_ffs<VB:mode><P:mode>): New pattern.
1693 (@pred_<misc_op><mode>): New pattern.
1694 (@pred_iota<mode>): New pattern.
1695 (@pred_series<mode>): New pattern.
1696
1697 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1698
1699 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
1700 (vsbc): Ditto.
1701 (vmerge): Ditto.
1702 (vmv_v): Ditto.
1703 * config/riscv/riscv-vector-builtins.cc: Ditto.
1704
1705 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1706 kito-cheng <kito.cheng@sifive.com>
1707
1708 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
1709 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
1710 (sew64_scalar_helper): New function.
1711 * config/riscv/vector.md: Normalization.
1712
1713 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1714
1715 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
1716 (vsm): Ditto.
1717 (vsse): Ditto.
1718 (vsoxei64): Ditto.
1719 (vsub): Ditto.
1720 (vand): Ditto.
1721 (vor): Ditto.
1722 (vxor): Ditto.
1723 (vsll): Ditto.
1724 (vsra): Ditto.
1725 (vsrl): Ditto.
1726 (vmin): Ditto.
1727 (vmax): Ditto.
1728 (vminu): Ditto.
1729 (vmaxu): Ditto.
1730 (vmul): Ditto.
1731 (vmulh): Ditto.
1732 (vmulhu): Ditto.
1733 (vmulhsu): Ditto.
1734 (vdiv): Ditto.
1735 (vrem): Ditto.
1736 (vdivu): Ditto.
1737 (vremu): Ditto.
1738 (vnot): Ditto.
1739 (vsext): Ditto.
1740 (vzext): Ditto.
1741 (vwadd): Ditto.
1742 (vwsub): Ditto.
1743 (vwmul): Ditto.
1744 (vwmulu): Ditto.
1745 (vwmulsu): Ditto.
1746 (vwaddu): Ditto.
1747 (vwsubu): Ditto.
1748 (vsbc): Ditto.
1749 (vmsbc): Ditto.
1750 (vnsra): Ditto.
1751 (vmerge): Ditto.
1752 (vmv_v): Ditto.
1753 (vmsne): Ditto.
1754 (vmslt): Ditto.
1755 (vmsgt): Ditto.
1756 (vmsle): Ditto.
1757 (vmsge): Ditto.
1758 (vmsltu): Ditto.
1759 (vmsgtu): Ditto.
1760 (vmsleu): Ditto.
1761 (vmsgeu): Ditto.
1762 (vnmsac): Ditto.
1763 (vmadd): Ditto.
1764 (vnmsub): Ditto.
1765 (vwmacc): Ditto.
1766 (vsadd): Ditto.
1767 (vssub): Ditto.
1768 (vssubu): Ditto.
1769 (vaadd): Ditto.
1770 (vasub): Ditto.
1771 (vasubu): Ditto.
1772 (vsmul): Ditto.
1773 (vssra): Ditto.
1774 (vssrl): Ditto.
1775 (vnclip): Ditto.
1776
1777 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1778
1779 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
1780 (@pred_<optab><mode>_scalar): Ditto.
1781 (*pred_<optab><mode>_scalar): Ditto.
1782 (*pred_<optab><mode>_extended_scalar): Ditto.
1783
1784 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1785
1786 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
1787 (init_builtins): Ditto.
1788 (mangle_builtin_type): Ditto.
1789 (verify_type_context): Ditto.
1790 (handle_pragma_vector): Ditto.
1791 (builtin_decl): Ditto.
1792 (expand_builtin): Ditto.
1793 (const_vec_all_same_in_range_p): Ditto.
1794 (legitimize_move): Ditto.
1795 (emit_vlmax_op): Ditto.
1796 (emit_nonvlmax_op): Ditto.
1797 (get_vlmul): Ditto.
1798 (get_ratio): Ditto.
1799 (get_ta): Ditto.
1800 (get_ma): Ditto.
1801 (get_avl_type): Ditto.
1802 (calculate_ratio): Ditto.
1803 (enum vlmul_type): Ditto.
1804 (simm5_p): Ditto.
1805 (neg_simm5_p): Ditto.
1806 (has_vi_variant_p): Ditto.
1807
1808 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1809
1810 * config/riscv/riscv-protos.h (simm32_p): Remove.
1811 * config/riscv/riscv-v.cc (simm32_p): Ditto.
1812 * config/riscv/vector.md: Use immediate_operand
1813 instead of riscv_vector::simm32_p.
1814
1815 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
1816
1817 * doc/invoke.texi (Optimize Options): Reword the explanation
1818 getting minimal, maximal and default values of a parameter.
1819
1820 2023-02-16 Patrick Palka <ppalka@redhat.com>
1821
1822 * addresses.h: Mechanically drop 'static' from 'static inline'
1823 functions via s/^static inline/inline/g.
1824 * asan.h: Likewise.
1825 * attribs.h: Likewise.
1826 * basic-block.h: Likewise.
1827 * bitmap.h: Likewise.
1828 * cfghooks.h: Likewise.
1829 * cfgloop.h: Likewise.
1830 * cgraph.h: Likewise.
1831 * cselib.h: Likewise.
1832 * data-streamer.h: Likewise.
1833 * debug.h: Likewise.
1834 * df.h: Likewise.
1835 * diagnostic.h: Likewise.
1836 * dominance.h: Likewise.
1837 * dumpfile.h: Likewise.
1838 * emit-rtl.h: Likewise.
1839 * except.h: Likewise.
1840 * expmed.h: Likewise.
1841 * expr.h: Likewise.
1842 * fixed-value.h: Likewise.
1843 * gengtype.h: Likewise.
1844 * gimple-expr.h: Likewise.
1845 * gimple-iterator.h: Likewise.
1846 * gimple-predict.h: Likewise.
1847 * gimple-range-fold.h: Likewise.
1848 * gimple-ssa.h: Likewise.
1849 * gimple.h: Likewise.
1850 * graphite.h: Likewise.
1851 * hard-reg-set.h: Likewise.
1852 * hash-map.h: Likewise.
1853 * hash-set.h: Likewise.
1854 * hash-table.h: Likewise.
1855 * hwint.h: Likewise.
1856 * input.h: Likewise.
1857 * insn-addr.h: Likewise.
1858 * internal-fn.h: Likewise.
1859 * ipa-fnsummary.h: Likewise.
1860 * ipa-icf-gimple.h: Likewise.
1861 * ipa-inline.h: Likewise.
1862 * ipa-modref.h: Likewise.
1863 * ipa-prop.h: Likewise.
1864 * ira-int.h: Likewise.
1865 * ira.h: Likewise.
1866 * lra-int.h: Likewise.
1867 * lra.h: Likewise.
1868 * lto-streamer.h: Likewise.
1869 * memmodel.h: Likewise.
1870 * omp-general.h: Likewise.
1871 * optabs-query.h: Likewise.
1872 * optabs.h: Likewise.
1873 * plugin.h: Likewise.
1874 * pretty-print.h: Likewise.
1875 * range.h: Likewise.
1876 * read-md.h: Likewise.
1877 * recog.h: Likewise.
1878 * regs.h: Likewise.
1879 * rtl-iter.h: Likewise.
1880 * rtl.h: Likewise.
1881 * sbitmap.h: Likewise.
1882 * sched-int.h: Likewise.
1883 * sel-sched-ir.h: Likewise.
1884 * sese.h: Likewise.
1885 * sparseset.h: Likewise.
1886 * ssa-iterators.h: Likewise.
1887 * system.h: Likewise.
1888 * target-globals.h: Likewise.
1889 * target.h: Likewise.
1890 * timevar.h: Likewise.
1891 * tree-chrec.h: Likewise.
1892 * tree-data-ref.h: Likewise.
1893 * tree-iterator.h: Likewise.
1894 * tree-outof-ssa.h: Likewise.
1895 * tree-phinodes.h: Likewise.
1896 * tree-scalar-evolution.h: Likewise.
1897 * tree-sra.h: Likewise.
1898 * tree-ssa-alias.h: Likewise.
1899 * tree-ssa-live.h: Likewise.
1900 * tree-ssa-loop-manip.h: Likewise.
1901 * tree-ssa-loop.h: Likewise.
1902 * tree-ssa-operands.h: Likewise.
1903 * tree-ssa-propagate.h: Likewise.
1904 * tree-ssa-sccvn.h: Likewise.
1905 * tree-ssa.h: Likewise.
1906 * tree-ssanames.h: Likewise.
1907 * tree-streamer.h: Likewise.
1908 * tree-switch-conversion.h: Likewise.
1909 * tree-vectorizer.h: Likewise.
1910 * tree.h: Likewise.
1911 * wide-int.h: Likewise.
1912
1913 2023-02-16 Jakub Jelinek <jakub@redhat.com>
1914
1915 PR tree-optimization/108657
1916 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
1917 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
1918 is a call to internal or builtin function.
1919
1920 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1921
1922 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
1923 using-declaration to unhide functions.
1924
1925 2023-02-16 Jakub Jelinek <jakub@redhat.com>
1926
1927 PR tree-optimization/108783
1928 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
1929 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
1930 t to curr->op. Otherwise, punt if either newop1 or newop2 are
1931 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
1932
1933 2023-02-16 Richard Biener <rguenther@suse.de>
1934
1935 PR tree-optimization/108791
1936 * tree-ssa-forwprop.cc (optimize_vector_load): Build
1937 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
1938 type.
1939
1940 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
1941
1942 PR target/90458
1943 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
1944 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
1945 (ix86_expand_prologue): Likewise.
1946
1947 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1948
1949 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
1950
1951 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
1952
1953 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
1954 int248_register_operand predicate in zero_extract sub-RTX.
1955 (*cmpqi_ext<mode>_2): Ditto.
1956 (*cmpqi_ext<mode>_3): Ditto.
1957 (*cmpqi_ext<mode>_4): Ditto.
1958 (*extzvqi_mem_rex64): Ditto.
1959 (*extzvqi): Ditto.
1960 (*insvqi_1_mem_rex64): Ditto.
1961 (@insv<mode>_1): Ditto.
1962 (*insvqi_1): Ditto.
1963 (*insvqi_2): Ditto.
1964 (*insvqi_3): Ditto.
1965 (*extendqi<SWI24:mode>_ext_1): Ditto.
1966 (*addqi_ext<mode>_1): Ditto.
1967 (*addqi_ext<mode>_2): Ditto.
1968 (*subqi_ext<mode>_2): Ditto.
1969 (*testqi_ext<mode>_1): Ditto.
1970 (*testqi_ext<mode>_2): Ditto.
1971 (*andqi_ext<mode>_1): Ditto.
1972 (*andqi_ext<mode>_1_cc): Ditto.
1973 (*andqi_ext<mode>_2): Ditto.
1974 (*<any_or:code>qi_ext<mode>_1): Ditto.
1975 (*<any_or:code>qi_ext<mode>_2): Ditto.
1976 (*xorqi_ext<mode>_1_cc): Ditto.
1977 (*negqi_ext<mode>_2): Ditto.
1978 (*ashlqi_ext<mode>_2): Ditto.
1979 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
1980
1981 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
1982
1983 * config/i386/predicates.md (int248_register_operand):
1984 Rename from extr_register_operand.
1985 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
1986 (*extzx<mode>): Ditto.
1987 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
1988 (*ashl<mode>3_mask): Ditto.
1989 (*<any_shiftrt:insn><mode>3_mask): Ditto.
1990 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
1991 (*<any_rotate:insn><mode>3_mask): Ditto.
1992 (*<btsc><mode>_mask): Ditto.
1993 (*btr<mode>_mask): Ditto.
1994 (*jcc_bt<mode>_mask_1): Ditto.
1995
1996 2023-02-15 Richard Biener <rguenther@suse.de>
1997
1998 PR middle-end/26854
1999 * df-core.cc (df_worklist_propagate_forward): Put later
2000 blocks on worklist and only earlier blocks on pending.
2001 (df_worklist_propagate_backward): Likewise.
2002 (df_worklist_dataflow_doublequeue): Change the iteration
2003 to process new blocks in the same iteration if that
2004 maintains the iteration order.
2005
2006 2023-02-15 Marek Polacek <polacek@redhat.com>
2007
2008 PR middle-end/106080
2009 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
2010 instead.
2011
2012 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2013
2014 * config/riscv/predicates.md: Refine codes.
2015 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
2016 * config/riscv/riscv-v.cc: Refine codes.
2017 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
2018 enum.
2019 (class imac): New class.
2020 (enum widen_ternop_type): New enum.
2021 (class iwmac): New class.
2022 (BASE): New class.
2023 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2024 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
2025 (vnmsac): Ditto.
2026 (vmadd): Ditto.
2027 (vnmsub): Ditto.
2028 (vwmacc): Ditto.
2029 (vwmaccu): Ditto.
2030 (vwmaccsu): Ditto.
2031 (vwmaccus): Ditto.
2032 * config/riscv/riscv-vector-builtins.cc
2033 (function_builder::apply_predication): Adjust for multiply-add support.
2034 (function_expander::add_vundef_operand): Refine codes.
2035 (function_expander::use_ternop_insn): New function.
2036 (function_expander::use_widen_ternop_insn): Ditto.
2037 * config/riscv/riscv-vector-builtins.h: New function.
2038 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
2039 (pred_mul_<optab><mode>_undef_merge): Ditto.
2040 (*pred_<madd_nmsub><mode>): Ditto.
2041 (*pred_<macc_nmsac><mode>): Ditto.
2042 (*pred_mul_<optab><mode>): Ditto.
2043 (@pred_mul_<optab><mode>_scalar): Ditto.
2044 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
2045 (*pred_<madd_nmsub><mode>_scalar): Ditto.
2046 (*pred_<macc_nmsac><mode>_scalar): Ditto.
2047 (*pred_mul_<optab><mode>_scalar): Ditto.
2048 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
2049 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
2050 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
2051 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
2052 (@pred_widen_mul_plus<su><mode>): Ditto.
2053 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
2054 (@pred_widen_mul_plussu<mode>): Ditto.
2055 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
2056 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
2057
2058 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2059
2060 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
2061 (vector_all_trues_mask_operand): New predicate.
2062 (vector_undef_operand): New predicate.
2063 (ltge_operator): New predicate.
2064 (comparison_except_ltge_operator): New predicate.
2065 (comparison_except_eqge_operator): New predicate.
2066 (ge_operator): New predicate.
2067 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
2068 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
2069 (BASE): Ditto.
2070 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2071 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
2072 (vmsne): Ditto.
2073 (vmslt): Ditto.
2074 (vmsgt): Ditto.
2075 (vmsle): Ditto.
2076 (vmsge): Ditto.
2077 (vmsltu): Ditto.
2078 (vmsgtu): Ditto.
2079 (vmsleu): Ditto.
2080 (vmsgeu): Ditto.
2081 * config/riscv/riscv-vector-builtins-shapes.cc
2082 (struct return_mask_def): Adjust for compare support.
2083 * config/riscv/riscv-vector-builtins.cc
2084 (function_expander::use_compare_insn): New function.
2085 * config/riscv/riscv-vector-builtins.h
2086 (function_expander::add_integer_operand): Ditto.
2087 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
2088 * config/riscv/riscv.md: Add vector min/max attributes.
2089 * config/riscv/vector-iterators.md (xnor): New iterator.
2090 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
2091 (*pred_cmp<mode>): Ditto.
2092 (*pred_cmp<mode>_narrow): Ditto.
2093 (@pred_ltge<mode>): Ditto.
2094 (*pred_ltge<mode>): Ditto.
2095 (*pred_ltge<mode>_narrow): Ditto.
2096 (@pred_cmp<mode>_scalar): Ditto.
2097 (*pred_cmp<mode>_scalar): Ditto.
2098 (*pred_cmp<mode>_scalar_narrow): Ditto.
2099 (@pred_eqne<mode>_scalar): Ditto.
2100 (*pred_eqne<mode>_scalar): Ditto.
2101 (*pred_eqne<mode>_scalar_narrow): Ditto.
2102 (*pred_cmp<mode>_extended_scalar): Ditto.
2103 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
2104 (*pred_eqne<mode>_extended_scalar): Ditto.
2105 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
2106 (@pred_ge<mode>_scalar): Ditto.
2107 (@pred_<optab><mode>): Ditto.
2108 (@pred_n<optab><mode>): Ditto.
2109 (@pred_<optab>n<mode>): Ditto.
2110 (@pred_not<mode>): Ditto.
2111
2112 2023-02-15 Martin Jambor <mjambor@suse.cz>
2113
2114 PR ipa/108679
2115 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
2116 creation of non-scalar replacements even if IPA-CP knows their
2117 contents.
2118
2119 2023-02-15 Jakub Jelinek <jakub@redhat.com>
2120
2121 PR target/108787
2122 PR target/103109
2123 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
2124 expander, change operand 3 to be TImode, emit maddlddi4 and
2125 umadddi4_highpart{,_le} with its low half and finally add the high
2126 half to the result.
2127
2128 2023-02-15 Martin Liska <mliska@suse.cz>
2129
2130 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
2131
2132 2023-02-15 Richard Biener <rguenther@suse.de>
2133
2134 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
2135 for with_poison and alias worklist to it.
2136 (sanitize_asan_mark_poison): Likewise.
2137
2138 2023-02-15 Richard Biener <rguenther@suse.de>
2139
2140 PR target/108738
2141 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
2142 Combine bitmap test and set.
2143 (scalar_chain::add_insn): Likewise.
2144 (scalar_chain::analyze_register_chain): Remove redundant
2145 attempt to add to queue and instead strengthen assert.
2146 Sink common attempts to mark the def dual-mode.
2147 (scalar_chain::add_to_queue): Remove redundant insn bitmap
2148 check.
2149
2150 2023-02-15 Richard Biener <rguenther@suse.de>
2151
2152 PR target/108738
2153 * config/i386/i386-features.cc (convert_scalars_to_vector):
2154 Switch candidates bitmaps to tree view before building the chains.
2155
2156 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
2157
2158 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
2159 "failure trying to reload" call.
2160
2161 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
2162
2163 * gdbinit.in (phrs): New command.
2164 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
2165 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
2166
2167 2023-02-14 David Faust <david.faust@oracle.com>
2168
2169 PR target/108790
2170 * config/bpf/constraints.md (q): New memory constraint.
2171 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
2172 (zero_extendqidi2): Likewise.
2173 (zero_extendsidi2): Likewise.
2174 (*mov<MM:mode>): Likewise.
2175
2176 2023-02-14 Andrew Pinski <apinski@marvell.com>
2177
2178 PR tree-optimization/108355
2179 PR tree-optimization/96921
2180 * match.pd: Add pattern for "1 - bool_val".
2181
2182 2023-02-14 Richard Biener <rguenther@suse.de>
2183
2184 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
2185 basic block index hashing on the availability of ->cclhs.
2186 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
2187 rely on ->cclhs availability.
2188 (vn_phi_lookup): Set ->cclhs only when we are eventually
2189 going to CSE the PHI.
2190 (vn_phi_insert): Likewise.
2191
2192 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
2193
2194 * gimplify.cc (gimplify_save_expr): Add missing guard.
2195
2196 2023-02-14 Richard Biener <rguenther@suse.de>
2197
2198 PR tree-optimization/108782
2199 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
2200 Make sure we're not vectorizing an inner loop.
2201
2202 2023-02-14 Jakub Jelinek <jakub@redhat.com>
2203
2204 PR sanitizer/108777
2205 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
2206 * asan.h (asan_memfn_rtl): Declare.
2207 * asan.cc (asan_memfn_rtls): New variable.
2208 (asan_memfn_rtl): New function.
2209 * builtins.cc (expand_builtin): If
2210 param_asan_kernel_mem_intrinsic_prefix and function is
2211 kernel-{,hw}address sanitized, emit calls to
2212 __{,hw}asan_{memcpy,memmove,memset} rather than
2213 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
2214 instead of flag_sanitize & SANITIZE_ADDRESS to check if
2215 asan_intercepted_p functions shouldn't be expanded inline.
2216
2217 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
2218
2219 PR tree-optimization/96373
2220 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
2221 operations on the loop mask. Reject partial vectors if this isn't
2222 possible.
2223
2224 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
2225
2226 PR rtl-optimization/108681
2227 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
2228 code to handle bare uses and clobbers.
2229
2230 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
2231
2232 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
2233 caller_save_p flag when clearing defined_p flag.
2234 (setup_reg_equiv): Ditto.
2235 * lra-constraints.cc (lra_constraints): Ditto.
2236
2237 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
2238
2239 PR target/108516
2240 * config/i386/predicates.md (extr_register_operand):
2241 New special predicate.
2242 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
2243 as operand 1 predicate.
2244 (*exzv<mode>): Ditto.
2245 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
2246
2247 2023-02-13 Richard Biener <rguenther@suse.de>
2248
2249 PR tree-optimization/28614
2250 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
2251 walking all edges in most cases.
2252 (vn_nary_op_insert_pieces_predicated): Avoid repeated
2253 calls to can_track_predicate_on_edge unless checking is
2254 enabled.
2255 (process_bb): Instead call it once here for each edge
2256 we register possibly multiple predicates on.
2257
2258 2023-02-13 Richard Biener <rguenther@suse.de>
2259
2260 PR tree-optimization/108691
2261 * tree-cfg.cc (notice_special_calls): When the CFG is built
2262 honor gimple_call_ctrl_altering_p.
2263 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
2264 temporarily if the call is not control-altering.
2265 * calls.cc (emit_call_1): Do not add REG_SETJMP if
2266 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
2267
2268 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2269
2270 PR target/108102
2271 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
2272 (struct s390_sched_state): Initialise to zero.
2273 (s390_sched_variable_issue): For better debuggability also emit
2274 the current side.
2275 (s390_sched_init): Unconditionally reset scheduler state.
2276
2277 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
2278
2279 * ifcvt.h (noce_if_info::cond_inverted): New field.
2280 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
2281 values when cond_inverted is true.
2282 (noce_find_if_block): Allow the condition to be inverted when
2283 handling conditional moves.
2284
2285 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2286
2287 * config/s390/predicates.md (execute_operation): Use
2288 constrain_operands instead of extract_constrain_insn in order to
2289 determine wheter there exists a valid alternative.
2290
2291 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
2292
2293 * common/config/arc/arc-common.cc (arc_option_optimization_table):
2294 Remove millicode from list.
2295
2296 2023-02-13 Martin Liska <mliska@suse.cz>
2297
2298 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
2299
2300 2023-02-13 Richard Biener <rguenther@suse.de>
2301
2302 PR tree-optimization/106722
2303 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
2304 whether we marked a stmt.
2305 (mark_control_dependent_edges_necessary): When
2306 mark_last_stmt_necessary didn't mark any stmt make sure
2307 to mark its control dependent edges.
2308 (propagate_necessity): Likewise.
2309
2310 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
2311
2312 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
2313 (DWARF_FRAME_REGISTERS): New.
2314 (DWARF_REG_TO_UNWIND_COLUMN): New.
2315
2316 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
2317
2318 * doc/sourcebuild.texi: Remove (broken) direct reference to
2319 "The GNU configure and build system".
2320
2321 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
2322
2323 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
2324 gen_add3_insn to gen_rtx_SET.
2325 (riscv_adjust_libcall_cfi_epilogue): Likewise.
2326
2327 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2328
2329 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
2330 (class vnclip): Ditto.
2331 (BASE): Ditto.
2332 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2333 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
2334 (vasub): Ditto.
2335 (vaaddu): Ditto.
2336 (vasubu): Ditto.
2337 (vsmul): Ditto.
2338 (vssra): Ditto.
2339 (vssrl): Ditto.
2340 (vnclipu): Ditto.
2341 (vnclip): Ditto.
2342 * config/riscv/vector-iterators.md (su): Add instruction.
2343 (aadd): Ditto.
2344 (vaalu): Ditto.
2345 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
2346 (@pred_<sat_op><mode>_scalar): Ditto.
2347 (*pred_<sat_op><mode>_scalar): Ditto.
2348 (*pred_<sat_op><mode>_extended_scalar): Ditto.
2349 (@pred_narrow_clip<v_su><mode>): Ditto.
2350 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
2351
2352 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2353
2354 * config/riscv/constraints.md (Wbr): Remove unused constraint.
2355 * config/riscv/predicates.md: Fix move operand predicate.
2356 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
2357 (class vncvt_x): Ditto.
2358 (class vmerge): Ditto.
2359 (class vmv_v): Ditto.
2360 (BASE): Ditto.
2361 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2362 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
2363 (vsrl): Ditto.
2364 (vnsrl): Ditto.
2365 (vnsra): Ditto.
2366 (vncvt_x): Ditto.
2367 (vmerge): Ditto.
2368 (vmv_v): Ditto.
2369 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
2370 (struct move_def): Ditto.
2371 (SHAPE): Ditto.
2372 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2373 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
2374 (DEF_RVV_WEXTU_OPS): Ditto
2375 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
2376 (v_v): Ditto.
2377 (v_x): Ditto.
2378 (x_w): Ditto.
2379 (x): Ditto.
2380 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
2381 * config/riscv/vector-iterators.md (nmsac):New iterator.
2382 (nmsub): New iterator.
2383 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
2384 (@pred_merge<mode>_scalar): New pattern.
2385 (*pred_merge<mode>_scalar): New pattern.
2386 (*pred_merge<mode>_extended_scalar): New pattern.
2387 (@pred_narrow_<optab><mode>): New pattern.
2388 (@pred_narrow_<optab><mode>_scalar): New pattern.
2389 (@pred_trunc<mode>): New pattern.
2390
2391 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2392
2393 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
2394 (class vmsbc): Ditto.
2395 (BASE): Define new class.
2396 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2397 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
2398 (vmsbc): Ditto.
2399 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
2400 New class.
2401 (SHAPE): Ditto.
2402 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2403 * config/riscv/riscv-vector-builtins.cc
2404 (function_expander::use_exact_insn): Adjust for new support
2405 * config/riscv/riscv-vector-builtins.h
2406 (function_base::has_merge_operand_p): New function.
2407 * config/riscv/vector-iterators.md: New iterator.
2408 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
2409 (@pred_msbc<mode>): Ditto.
2410 (@pred_madc<mode>_scalar): Ditto.
2411 (@pred_msbc<mode>_scalar): Ditto.
2412 (*pred_madc<mode>_scalar): Ditto.
2413 (*pred_madc<mode>_extended_scalar): Ditto.
2414 (*pred_msbc<mode>_scalar): Ditto.
2415 (*pred_msbc<mode>_extended_scalar): Ditto.
2416 (@pred_madc<mode>_overflow): Ditto.
2417 (@pred_msbc<mode>_overflow): Ditto.
2418 (@pred_madc<mode>_overflow_scalar): Ditto.
2419 (@pred_msbc<mode>_overflow_scalar): Ditto.
2420 (*pred_madc<mode>_overflow_scalar): Ditto.
2421 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
2422 (*pred_msbc<mode>_overflow_scalar): Ditto.
2423 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
2424
2425 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2426
2427 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
2428 * config/riscv/riscv-v.cc (simm32_p): Ditto.
2429 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
2430 (class vsbc): Ditto.
2431 (BASE): Ditto.
2432 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2433 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
2434 (vsbc): Ditto.
2435 * config/riscv/riscv-vector-builtins-shapes.cc
2436 (struct no_mask_policy_def): Ditto.
2437 (SHAPE): Ditto.
2438 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2439 * config/riscv/riscv-vector-builtins.cc
2440 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
2441 (rvv_arg_type_info::get_tree_type): Ditto.
2442 (function_expander::use_exact_insn): Ditto.
2443 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
2444 (function_base::use_mask_predication_p): New function.
2445 * config/riscv/vector-iterators.md: New iterator.
2446 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
2447 (@pred_sbc<mode>): Ditto.
2448 (@pred_adc<mode>_scalar): Ditto.
2449 (@pred_sbc<mode>_scalar): Ditto.
2450 (*pred_adc<mode>_scalar): Ditto.
2451 (*pred_adc<mode>_extended_scalar): Ditto.
2452 (*pred_sbc<mode>_scalar): Ditto.
2453 (*pred_sbc<mode>_extended_scalar): Ditto.
2454
2455 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2456
2457 * config/riscv/vector.md: use "zero" reg.
2458
2459 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2460
2461 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
2462 class.
2463 (class vwmulsu): Ditto.
2464 (class vwcvt): Ditto.
2465 (BASE): Add integer widening support.
2466 * config/riscv/riscv-vector-builtins-bases.h: Ditto
2467 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
2468 (vwsub): New class.
2469 (vwmul): New class.
2470 (vwmulu): New class.
2471 (vwmulsu): New class.
2472 (vwaddu): New class.
2473 (vwsubu): New class.
2474 (vwcvt_x): New class.
2475 (vwcvtu_x): New class.
2476 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
2477 class.
2478 (struct widen_alu_def): New class.
2479 (SHAPE): New class.
2480 * config/riscv/riscv-vector-builtins-shapes.h: New class.
2481 * config/riscv/riscv-vector-builtins.cc
2482 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
2483 (rvv_arg_type_info::get_tree_type): Ditto.
2484 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
2485 (x_v): Ditto.
2486 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
2487 widening support.
2488 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
2489 * config/riscv/riscv.h (X0_REGNUM): New constant.
2490 * config/riscv/vector-iterators.md: New iterators.
2491 * config/riscv/vector.md
2492 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
2493 pattern.
2494 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
2495 Ditto.
2496 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
2497 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
2498 Ditto.
2499 (@pred_widen_mulsu<mode>): Ditto.
2500 (@pred_widen_mulsu<mode>_scalar): Ditto.
2501 (@pred_<optab><mode>): Ditto.
2502
2503 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2504 kito-cheng <kito.cheng@sifive.com>
2505
2506 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
2507 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
2508 (BASE): Ditto.
2509 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2510 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
2511 API support.
2512 (vmulhu): Ditto.
2513 (vmulhsu): Ditto.
2514 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
2515 New macro.
2516 (DEF_RVV_FULL_V_U_OPS): Ditto.
2517 (vint8mf8_t): Ditto.
2518 (vint8mf4_t): Ditto.
2519 (vint8mf2_t): Ditto.
2520 (vint8m1_t): Ditto.
2521 (vint8m2_t): Ditto.
2522 (vint8m4_t): Ditto.
2523 (vint8m8_t): Ditto.
2524 (vint16mf4_t): Ditto.
2525 (vint16mf2_t): Ditto.
2526 (vint16m1_t): Ditto.
2527 (vint16m2_t): Ditto.
2528 (vint16m4_t): Ditto.
2529 (vint16m8_t): Ditto.
2530 (vint32mf2_t): Ditto.
2531 (vint32m1_t): Ditto.
2532 (vint32m2_t): Ditto.
2533 (vint32m4_t): Ditto.
2534 (vint32m8_t): Ditto.
2535 (vint64m1_t): Ditto.
2536 (vint64m2_t): Ditto.
2537 (vint64m4_t): Ditto.
2538 (vint64m8_t): Ditto.
2539 (vuint8mf8_t): Ditto.
2540 (vuint8mf4_t): Ditto.
2541 (vuint8mf2_t): Ditto.
2542 (vuint8m1_t): Ditto.
2543 (vuint8m2_t): Ditto.
2544 (vuint8m4_t): Ditto.
2545 (vuint8m8_t): Ditto.
2546 (vuint16mf4_t): Ditto.
2547 (vuint16mf2_t): Ditto.
2548 (vuint16m1_t): Ditto.
2549 (vuint16m2_t): Ditto.
2550 (vuint16m4_t): Ditto.
2551 (vuint16m8_t): Ditto.
2552 (vuint32mf2_t): Ditto.
2553 (vuint32m1_t): Ditto.
2554 (vuint32m2_t): Ditto.
2555 (vuint32m4_t): Ditto.
2556 (vuint32m8_t): Ditto.
2557 (vuint64m1_t): Ditto.
2558 (vuint64m2_t): Ditto.
2559 (vuint64m4_t): Ditto.
2560 (vuint64m8_t): Ditto.
2561 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
2562 (DEF_RVV_FULL_V_U_OPS): Ditto.
2563 (check_required_extensions): Add vmulh support.
2564 (rvv_arg_type_info::get_tree_type): Ditto.
2565 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
2566 (enum rvv_base_type): Ditto.
2567 * config/riscv/riscv.opt: Add 'V' extension flag.
2568 * config/riscv/vector-iterators.md (su): New iterator.
2569 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
2570 (@pred_mulh<v_su><mode>_scalar): Ditto.
2571 (*pred_mulh<v_su><mode>_scalar): Ditto.
2572 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
2573
2574 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2575
2576 * config/riscv/iterators.md: Add sign_extend/zero_extend.
2577 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
2578 (BASE): Ditto.
2579 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
2580 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
2581 define.
2582 (vzext): Ditto.
2583 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
2584 for vsext/vzext support.
2585 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
2586 macro define.
2587 (DEF_RVV_QEXTI_OPS): Ditto.
2588 (DEF_RVV_OEXTI_OPS): Ditto.
2589 (DEF_RVV_WEXTU_OPS): Ditto.
2590 (DEF_RVV_QEXTU_OPS): Ditto.
2591 (DEF_RVV_OEXTU_OPS): Ditto.
2592 (vint16mf4_t): Ditto.
2593 (vint16mf2_t): Ditto.
2594 (vint16m1_t): Ditto.
2595 (vint16m2_t): Ditto.
2596 (vint16m4_t): Ditto.
2597 (vint16m8_t): Ditto.
2598 (vint32mf2_t): Ditto.
2599 (vint32m1_t): Ditto.
2600 (vint32m2_t): Ditto.
2601 (vint32m4_t): Ditto.
2602 (vint32m8_t): Ditto.
2603 (vint64m1_t): Ditto.
2604 (vint64m2_t): Ditto.
2605 (vint64m4_t): Ditto.
2606 (vint64m8_t): Ditto.
2607 (vuint16mf4_t): Ditto.
2608 (vuint16mf2_t): Ditto.
2609 (vuint16m1_t): Ditto.
2610 (vuint16m2_t): Ditto.
2611 (vuint16m4_t): Ditto.
2612 (vuint16m8_t): Ditto.
2613 (vuint32mf2_t): Ditto.
2614 (vuint32m1_t): Ditto.
2615 (vuint32m2_t): Ditto.
2616 (vuint32m4_t): Ditto.
2617 (vuint32m8_t): Ditto.
2618 (vuint64m1_t): Ditto.
2619 (vuint64m2_t): Ditto.
2620 (vuint64m4_t): Ditto.
2621 (vuint64m8_t): Ditto.
2622 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
2623 (DEF_RVV_QEXTI_OPS): Ditto.
2624 (DEF_RVV_OEXTI_OPS): Ditto.
2625 (DEF_RVV_WEXTU_OPS): Ditto.
2626 (DEF_RVV_QEXTU_OPS): Ditto.
2627 (DEF_RVV_OEXTU_OPS): Ditto.
2628 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
2629 support.
2630 (rvv_arg_type_info::get_tree_type): Ditto.
2631 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
2632 * config/riscv/vector-iterators.md (z): New attribute.
2633 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
2634 (@pred_<optab><mode>_vf4): Ditto.
2635 (@pred_<optab><mode>_vf8): Ditto.
2636
2637 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2638
2639 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
2640 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
2641 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
2642 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2643 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
2644 (vssub): Ditto.
2645 (vsaddu): Ditto.
2646 (vssubu): Ditto.
2647 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
2648 support.
2649 (sll.vv): Ditto.
2650 (%3,%v4): Ditto.
2651 (%3,%4): Ditto.
2652 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
2653 (@pred_<optab><mode>_scalar): New pattern.
2654 (*pred_<optab><mode>_scalar): New pattern.
2655 (*pred_<optab><mode>_extended_scalar): New pattern.
2656
2657 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2658
2659 * config/riscv/iterators.md: Add neg and not.
2660 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
2661 (BASE): Ditto.
2662 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2663 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
2664 into alu.
2665 (vsub): Ditto.
2666 (vand): Ditto.
2667 (vor): Ditto.
2668 (vxor): Ditto.
2669 (vsll): Ditto.
2670 (vsra): Ditto.
2671 (vsrl): Ditto.
2672 (vmin): Ditto.
2673 (vmax): Ditto.
2674 (vminu): Ditto.
2675 (vmaxu): Ditto.
2676 (vmul): Ditto.
2677 (vdiv): Ditto.
2678 (vrem): Ditto.
2679 (vdivu): Ditto.
2680 (vremu): Ditto.
2681 (vrsub): Ditto.
2682 (vneg): Ditto.
2683 (vnot): Ditto.
2684 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
2685 (struct alu_def): Ditto.
2686 (SHAPE): Ditto.
2687 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2688 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
2689 * config/riscv/vector-iterators.md: New iterator.
2690 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
2691
2692 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2693
2694 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
2695
2696 2023-02-11 Jakub Jelinek <jakub@redhat.com>
2697
2698 PR ipa/108605
2699 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
2700 item->offset bit position is too large to be representable as
2701 unsigned int byte position.
2702
2703 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
2704
2705 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
2706
2707 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
2708
2709 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
2710 valid_combine only when ira_use_lra_p is true.
2711
2712 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
2713
2714 * params.opt (ira-simple-lra-insn-threshold): Add new param.
2715 * ira.cc (ira): Use the param to switch on simple LRA.
2716
2717 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
2718
2719 PR tree-optimization/108687
2720 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
2721 back to RFD_NONE mode for calculations.
2722 (ranger_cache::propagate_cache): Call the internal edge range API
2723 with RFD_READ_ONLY instead of changing the external routine.
2724
2725 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
2726
2727 PR tree-optimization/108520
2728 * gimple-range-infer.cc (check_assume_func): Invoke
2729 gimple_range_global directly instead using global_range_query.
2730 * value-query.cc (get_range_global): Add function context and
2731 avoid calling nonnull_arg_p if not cfun.
2732 (gimple_range_global): Add function context pointer.
2733 * value-query.h (imple_range_global): Add function context.
2734
2735 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2736
2737 * config/riscv/constraints.md (Wdm): Adjust constraint.
2738 (Wbr): New constraint.
2739 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
2740 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
2741 (emit_vlmax_op): New function.
2742 (emit_nonvlmax_op): Ditto.
2743 (simm32_p): Ditto.
2744 (neg_simm5_p): Ditto.
2745 (has_vi_variant_p): Ditto.
2746 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
2747 (emit_vlmax_op): New function.
2748 (emit_nonvlmax_op): Ditto.
2749 (expand_const_vector): Adjust function.
2750 (legitimize_move): Ditto.
2751 (simm32_p): New function.
2752 (simm5_p): Ditto.
2753 (neg_simm5_p): Ditto.
2754 (has_vi_variant_p): Ditto.
2755 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
2756 (BASE): Ditto.
2757 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2758 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
2759 unsigned cases.
2760 (vmax): Ditto.
2761 (vminu): Remove signed cases.
2762 (vmaxu): Ditto.
2763 (vdiv): Remove unsigned cases.
2764 (vrem): Ditto.
2765 (vdivu): Remove signed cases.
2766 (vremu): Ditto.
2767 (vadd): Adjust.
2768 (vsub): Ditto.
2769 (vrsub): New class.
2770 (vand): Adjust.
2771 (vor): Ditto.
2772 (vxor): Ditto.
2773 (vmul): Ditto.
2774 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
2775 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
2776 * config/riscv/vector-iterators.md: New iterators.
2777 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
2778 support.
2779 (@pred_<optab><mode>_scalar): New pattern.
2780 (@pred_sub<mode>_reverse_scalar): Ditto.
2781 (*pred_<optab><mode>_scalar): Ditto.
2782 (*pred_<optab><mode>_extended_scalar): Ditto.
2783 (*pred_sub<mode>_reverse_scalar): Ditto.
2784 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
2785
2786 2023-02-10 Richard Biener <rguenther@suse.de>
2787
2788 PR tree-optimization/108724
2789 * tree-vect-stmts.cc (vectorizable_operation): Avoid
2790 using word_mode vectors when vector lowering will
2791 decompose them to elementwise operations.
2792
2793 2023-02-10 Jakub Jelinek <jakub@redhat.com>
2794
2795 Revert:
2796 2023-02-09 Martin Liska <mliska@suse.cz>
2797
2798 PR target/100758
2799 * doc/extend.texi: Document that the function
2800 does not work correctly for old VIA processors.
2801
2802 2023-02-10 Andrew Pinski <apinski@marvell.com>
2803 Andrew Macleod <amacleod@redhat.com>
2804
2805 PR tree-optimization/108684
2806 * tree-ssa-dce.cc (simple_dce_from_worklist):
2807 Check all ssa names and not just non-vdef ones
2808 before accepting the inline-asm.
2809 Call unlink_stmt_vdef on the statement before
2810 removing it.
2811
2812 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
2813
2814 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2815 * ira.cc (validate_equiv_mem): Check memref address variance.
2816 (no_equiv): Clear caller_save_p flag.
2817 (update_equiv_regs): Define caller save equivalence for
2818 valid_combine.
2819 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2820 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2821 call_save_p. Use caller save equivalence depending on the arg.
2822 (split_reg): Adjust the call.
2823
2824 2023-02-09 Jakub Jelinek <jakub@redhat.com>
2825
2826 PR target/100758
2827 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
2828 (cpu_indicator_init): Call get_available_features for all CPUs with
2829 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
2830 fixes.
2831
2832 2023-02-09 Jakub Jelinek <jakub@redhat.com>
2833
2834 PR tree-optimization/108688
2835 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
2836 of BIT_INSERT_EXPR extracting exactly all inserted bits even
2837 when without mode precision. Formatting fixes.
2838
2839 2023-02-09 Andrew Pinski <apinski@marvell.com>
2840
2841 PR tree-optimization/108688
2842 * match.pd (bit_field_ref [bit_insert]): Avoid generating
2843 BIT_FIELD_REFs of non-mode-precision integral operands.
2844
2845 2023-02-09 Martin Liska <mliska@suse.cz>
2846
2847 PR target/100758
2848 * doc/extend.texi: Document that the function
2849 does not work correctly for old VIA processors.
2850
2851 2023-02-09 Andreas Schwab <schwab@suse.de>
2852
2853 * lto-wrapper.cc (merge_and_complain): Handle
2854 -funwind-tables and -fasynchronous-unwind-tables.
2855 (append_compiler_options): Likewise.
2856
2857 2023-02-09 Richard Biener <rguenther@suse.de>
2858
2859 PR tree-optimization/26854
2860 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
2861 view around insert_updated_phi_nodes_for.
2862 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
2863 in tree view.
2864 (walk_aliased_vdefs_1): Likewise.
2865
2866 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2867
2868 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
2869
2870 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
2871
2872 PR target/108505
2873 * config.gcc (tm_mlib_file): Define new variable.
2874
2875 2023-02-08 Jakub Jelinek <jakub@redhat.com>
2876
2877 PR tree-optimization/108692
2878 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
2879 widened_code which is different from code, don't call
2880 vect_look_through_possible_promotion but instead just check op is
2881 SSA_NAME with integral type for which vect_is_simple_use is true
2882 and call set_op on this_unprom.
2883
2884 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
2885
2886 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
2887 declaration.
2888 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
2889 definition.
2890 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
2891 to 'aarch_ra_sign_key'.
2892 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
2893 declaration.
2894 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
2895 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
2896 * config/arm/arm.opt: Define.
2897
2898 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
2899
2900 PR tree-optimization/108316
2901 * tree-vect-stmts.cc (get_load_store_type): When using
2902 internal functions for gather/scatter, make sure that the type
2903 of the offset argument is consistent with the offset vector type.
2904
2905 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
2906
2907 Revert:
2908 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
2909
2910 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2911 * ira.cc (validate_equiv_mem): Check memref address variance.
2912 (update_equiv_regs): Define caller save equivalence for
2913 valid_combine.
2914 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2915 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2916 call_save_p. Use caller save equivalence depending on the arg.
2917 (split_reg): Adjust the call.
2918
2919 2023-02-08 Jakub Jelinek <jakub@redhat.com>
2920
2921 * tree.def (SAD_EXPR): Remove outdated comment about missing
2922 WIDEN_MINUS_EXPR.
2923
2924 2023-02-07 Marek Polacek <polacek@redhat.com>
2925
2926 * doc/invoke.texi: Update -fchar8_t documentation.
2927
2928 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
2929
2930 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2931 * ira.cc (validate_equiv_mem): Check memref address variance.
2932 (update_equiv_regs): Define caller save equivalence for
2933 valid_combine.
2934 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2935 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2936 call_save_p. Use caller save equivalence depending on the arg.
2937 (split_reg): Adjust the call.
2938
2939 2023-02-07 Richard Biener <rguenther@suse.de>
2940
2941 PR tree-optimization/26854
2942 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
2943 instead of immediate uses.
2944
2945 2023-02-07 Jakub Jelinek <jakub@redhat.com>
2946
2947 PR tree-optimization/106923
2948 * ipa-split.cc (execute_split_functions): Don't split returns_twice
2949 functions.
2950
2951 2023-02-07 Jakub Jelinek <jakub@redhat.com>
2952
2953 PR tree-optimization/106433
2954 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
2955 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
2956
2957 2023-02-07 Jan Hubicka <jh@suse.cz>
2958
2959 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
2960 for znver4.
2961
2962 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
2963
2964 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
2965 (process_asm): Create a constructor for GCN_STACK_SIZE.
2966 (main): Parse the -mstack-size option.
2967
2968 2023-02-06 Alex Coplan <alex.coplan@arm.com>
2969
2970 PR target/104921
2971 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
2972 Use correct constraint for operand 3.
2973
2974 2023-02-06 Martin Jambor <mjambor@suse.cz>
2975
2976 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
2977
2978 2023-02-06 Xi Ruoyao <xry111@xry111.site>
2979
2980 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
2981 New define_int_iterator.
2982 (bytepick_d_ashift_amount): Likewise.
2983 (bytepick_imm): New define_int_attr.
2984 (bytepick_w_lshiftrt_amount): Likewise.
2985 (bytepick_d_lshiftrt_amount): Likewise.
2986 (bytepick_w_<bytepick_imm>): New define_insn template.
2987 (bytepick_w_<bytepick_imm>_extend): Likewise.
2988 (bytepick_d_<bytepick_imm>): Likewise.
2989 (bytepick_w): Remove unused define_insn.
2990 (bytepick_d): Likewise.
2991 (UNSPEC_BYTEPICK_W): Remove unused unspec.
2992 (UNSPEC_BYTEPICK_D): Likewise.
2993 * config/loongarch/predicates.md (const_0_to_3_operand):
2994 Remove unused define_predicate.
2995 (const_0_to_7_operand): Likewise.
2996
2997 2023-02-06 Jakub Jelinek <jakub@redhat.com>
2998
2999 PR tree-optimization/108655
3000 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
3001 or -fsanitize=unreachable -fsanitize-trap=unreachable return
3002 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
3003
3004 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
3005
3006 * doc/install.texi (Specific): Remove PW32.
3007
3008 2023-02-03 Jakub Jelinek <jakub@redhat.com>
3009
3010 PR tree-optimization/108647
3011 * range-op.cc (operator_equal::op1_range,
3012 operator_not_equal::op1_range): Don't test op2 bound
3013 equality if op2.undefined_p (), instead set_varying.
3014 (operator_lt::op1_range, operator_le::op1_range,
3015 operator_gt::op1_range, operator_ge::op1_range): Return false if
3016 op2.undefined_p ().
3017 (operator_lt::op2_range, operator_le::op2_range,
3018 operator_gt::op2_range, operator_ge::op2_range): Return false if
3019 op1.undefined_p ().
3020
3021 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
3022
3023 PR tree-optimization/108639
3024 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
3025 widest_int.
3026 (irange::operator==): Same.
3027
3028 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
3029
3030 PR tree-optimization/108647
3031 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
3032 (foperator_lt::op2_range): Same.
3033 (foperator_le::op1_range): Same.
3034 (foperator_le::op2_range): Same.
3035 (foperator_gt::op1_range): Same.
3036 (foperator_gt::op2_range): Same.
3037 (foperator_ge::op1_range): Same.
3038 (foperator_ge::op2_range): Same.
3039 (foperator_unordered_lt::op1_range): Same.
3040 (foperator_unordered_lt::op2_range): Same.
3041 (foperator_unordered_le::op1_range): Same.
3042 (foperator_unordered_le::op2_range): Same.
3043 (foperator_unordered_gt::op1_range): Same.
3044 (foperator_unordered_gt::op2_range): Same.
3045 (foperator_unordered_ge::op1_range): Same.
3046 (foperator_unordered_ge::op2_range): Same.
3047
3048 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
3049
3050 PR tree-optimization/107570
3051 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
3052
3053 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
3054
3055 * doc/gm2.texi (Internals): Remove from menu.
3056 (Using): Comment out ifnohtml conditional.
3057 (Documentation): Use gcc url.
3058 (License): Node simplified.
3059 (Copying): New node. Include gpl_v3_without_node.
3060 (Contributing): Node simplified.
3061 (Internals): Commented out.
3062 (Libraries): Node simplified.
3063 (Indices): Ditto.
3064 (Contents): Ditto.
3065 (Functions): Ditto.
3066
3067 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
3068
3069 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
3070 attribute.
3071 (mve_vqshluq_m_n_s<mode>): Likewise.
3072 (mve_vshlq_m_<supf><mode>): Likewise.
3073 (mve_vsriq_m_n_<supf><mode>): Likewise.
3074 (mve_vsubq_m_<supf><mode>): Likewise.
3075
3076 2023-02-03 Martin Jambor <mjambor@suse.cz>
3077
3078 PR ipa/108384
3079 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
3080 when comparing to an IPA-CP value.
3081 (dump_list_of_param_indices): New function.
3082 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
3083 Dump removed candidates using dump_list_of_param_indices.
3084 * ipa-param-manipulation.cc
3085 (ipa_param_body_adjustments::modify_expression): Add assert checking
3086 sizes of a VIEW_CONVERT_EXPR will match.
3087 (ipa_param_body_adjustments::modify_assignment): Likewise.
3088
3089 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
3090
3091 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
3092 * config/riscv/riscv.cc: Ditto.
3093
3094 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3095
3096 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
3097 (sll.vv): Ditto.
3098 (%3,%4): Ditto.
3099 (%3,%v4): Ditto.
3100 * config/riscv/vector.md: Ditto.
3101
3102 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3103
3104 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
3105 * config/riscv/riscv-vector-builtins-bases.cc: New class.
3106 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
3107 (vsra): Ditto.
3108 (vsrl): Ditto.
3109 * config/riscv/riscv-vector-builtins.cc: Ditto.
3110 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
3111
3112 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
3113
3114 * toplev.cc (toplev::main): Only print the version information header
3115 from toplevel main().
3116
3117 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
3118
3119 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
3120 cond_{ashl|ashr|lshr}
3121
3122 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
3123
3124 PR rtl-optimization/108086
3125 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
3126 Adjust size-related commentary accordingly.
3127
3128 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
3129
3130 PR rtl-optimization/108508
3131 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
3132 the splay tree search gives the first clobber in the second group,
3133 make sure that the root of the first clobber group is updated
3134 correctly. Enter the new clobber group into the definition splay
3135 tree.
3136
3137 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
3138
3139 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
3140 Fix finding best match score.
3141
3142 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3143
3144 PR debug/106746
3145 PR rtl-optimization/108463
3146 PR target/108484
3147 * cselib.cc (cselib_current_insn): Move declaration earlier.
3148 (cselib_hasher::equal): For debug only locs, temporarily override
3149 cselib_current_insn to their l->setting_insn for the
3150 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
3151 promote some debug locs.
3152 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
3153 when using cselib call cselib_lookup_from_insn on the address but
3154 don't substitute it.
3155
3156 2023-02-02 Richard Biener <rguenther@suse.de>
3157
3158 PR middle-end/108625
3159 * genmatch.cc (expr::gen_transform): Also disallow resimplification
3160 from pushing to lseq with force_leaf.
3161 (dt_simplify::gen_1): Likewise.
3162
3163 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
3164
3165 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
3166 (struct kernargs): Replace the common content with kernargs_abi.
3167 (struct heap): Delete.
3168 (main): Read GCN_STACK_SIZE envvar.
3169 Allocate space for the device stacks.
3170 Write the new kernargs fields.
3171 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
3172 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
3173 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
3174 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
3175 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
3176 Set up the stacks from the values in the kernargs, not private.
3177 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
3178 (gcn_hsa_declare_function_name): Turn off the private segment.
3179 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
3180 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
3181 * config/gcn/gcn.opt (mstack-size): Change the description.
3182
3183 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
3184
3185 PR target/108443
3186 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
3187 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
3188 addressing MVE predicate modes.
3189 (mve_bool_vec_to_const): Change to represent correct MVE predicate
3190 format.
3191 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
3192 modes.
3193 (arm_vector_mode_supported_p): Likewise.
3194 (arm_mode_to_pred_mode): Add V2QI.
3195 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
3196 qualifier.
3197 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
3198 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
3199 (v2qi_UP): New macro.
3200 (v4bi_UP): New macro.
3201 (v8bi_UP): New macro.
3202 (v16bi_UP): New macro.
3203 (arm_expand_builtin_args): Make it able to expand the new predicate
3204 modes.
3205 * config/arm/arm-modes.def (V2QI): New mode.
3206 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
3207 Pred4x4_t): Remove unused predicate builtin types.
3208 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
3209 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
3210 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
3211 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
3212 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
3213 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
3214 of MODE_VECTOR_BOOL.
3215 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
3216 (MVE_VPRED): Likewise.
3217 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
3218 (MVE_vctp): New mode attribute.
3219 (mode1): Remove.
3220 (VCTPQ): Remove.
3221 (VCTPQ_M): Remove.
3222 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
3223 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
3224 attributes.
3225 (mve_vpnothi): Rename this...
3226 (mve_vpnotv16bi): ... to this.
3227 (mve_vctp<mode1>q_mhi): Rename this...
3228 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
3229 (mve_vldrdq_gather_base_z_<supf>v2di,
3230 mve_vldrdq_gather_offset_z_<supf>v2di,
3231 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
3232 mve_vstrdq_scatter_base_p_<supf>v2di,
3233 mve_vstrdq_scatter_offset_p_<supf>v2di,
3234 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
3235 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
3236 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
3237 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
3238 mve_vldrdq_gather_base_wb_z_<supf>v2di,
3239 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
3240 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
3241 predicates.
3242 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
3243 these...
3244 (VCTP): ... with this.
3245 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
3246 (VCTP_M): ... with this.
3247 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
3248 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
3249
3250 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
3251
3252 PR target/107674
3253 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
3254 (arm_modes_tieable_p): Make MVE predicate modes tieable.
3255 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
3256 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
3257 simplify_subreg to simplify subregs where the outermode is not scalar.
3258
3259 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
3260
3261 PR target/107674
3262 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
3263 new qualifiers parameter and use unsigned short type for MVE predicate.
3264 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
3265 parameter.
3266 (arm_init_crypto_builtins): Likewise.
3267
3268 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3269
3270 PR ipa/107300
3271 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
3272 * internal-fn.def (TRAP): Remove.
3273 * internal-fn.cc (expand_TRAP): Remove.
3274 * tree.cc (build_common_builtin_nodes): Define
3275 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
3276 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
3277 instead of BUILT_IN_TRAP.
3278 * gimple.cc (gimple_build_builtin_unreachable): Remove
3279 emitting internal function for BUILT_IN_TRAP.
3280 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
3281 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
3282 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
3283 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
3284 BUILT_IN_UNREACHABLE_TRAP.
3285 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
3286 * tree-cfg.cc (verify_gimple_call,
3287 pass_warn_function_return::execute): Likewise.
3288 * attribs.cc (decl_attributes): Don't report exclusions on
3289 BUILT_IN_UNREACHABLE_TRAP either.
3290
3291 2023-02-02 liuhongt <hongtao.liu@intel.com>
3292
3293 PR tree-optimization/108601
3294 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
3295 * tree-vect-loop.cc
3296 (vectorizable_nonlinear_induction): Remove
3297 vect_can_peel_nonlinear_iv_p.
3298 (vect_can_peel_nonlinear_iv_p): Don't peel
3299 nonlinear iv(mult or shift) for epilog when vf is not
3300 constant and moved the defination to ..
3301 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
3302 .. Here.
3303
3304 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3305
3306 PR middle-end/108435
3307 * tree-nested.cc (convert_nonlocal_omp_clauses)
3308 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
3309 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
3310 before calling declare_vars.
3311 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
3312 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
3313 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
3314 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
3315
3316 2023-02-01 Tamar Christina <tamar.christina@arm.com>
3317
3318 * common/config/aarch64/aarch64-common.cc
3319 (struct aarch64_option_extension): Add native_detect and document struct
3320 a bit more.
3321 (all_extensions): Set new field native_detect.
3322 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
3323 unused struct.
3324
3325 2023-02-01 Martin Liska <mliska@suse.cz>
3326
3327 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
3328 value if set.
3329
3330 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
3331
3332 PR tree-optimization/108356
3333 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
3334 do a search of the DOM tree for a range.
3335
3336 2023-02-01 Martin Liska <mliska@suse.cz>
3337
3338 PR ipa/108509
3339 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
3340 ony non-null values.
3341 * ipa.cc (walk_polymorphic_call_targets): Likewise.
3342
3343 2023-02-01 Martin Liska <mliska@suse.cz>
3344
3345 PR driver/108572
3346 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
3347 -gz=zstd.
3348
3349 2023-02-01 Jakub Jelinek <jakub@redhat.com>
3350
3351 PR debug/108573
3352 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
3353 subregs in DEBUG_INSNs.
3354
3355 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
3356
3357 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
3358
3359 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
3360
3361 * config/s390/s390.cc (s390_restore_gpr_p): New function.
3362 (s390_preserve_gpr_arg_in_range_p): New function.
3363 (s390_preserve_gpr_arg_p): New function.
3364 (s390_preserve_fpr_arg_p): New function.
3365 (s390_register_info_stdarg_fpr): Rename to ...
3366 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
3367 (s390_register_info_stdarg_gpr): Rename to ...
3368 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
3369 (s390_register_info): Use the renamed functions above.
3370 (s390_optimize_register_info): Likewise.
3371 (save_fpr): Generate CFI for -mpreserve-args.
3372 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
3373 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
3374 (s390_optimize_prologue): Likewise.
3375 * config/s390/s390.opt: New option -mpreserve-args
3376
3377 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
3378
3379 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
3380 (restore_gprs): Likewise.
3381 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
3382 frame pointer if a frame-pointer is used.
3383 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
3384 * config/s390/s390.md (stack_tie): Add a register operand and
3385 rename to ...
3386 (@stack_tie<mode>): ... this.
3387
3388 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
3389
3390 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
3391 EMIT_CFI parameter.
3392 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
3393 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
3394
3395 2023-02-01 Richard Biener <rguenther@suse.de>
3396
3397 PR middle-end/108500
3398 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
3399 with tree traversal algorithm.
3400
3401 2023-02-01 Jason Merrill <jason@redhat.com>
3402
3403 * doc/invoke.texi: Document -Wno-changes-meaning.
3404
3405 2023-02-01 David Malcolm <dmalcolm@redhat.com>
3406
3407 * doc/invoke.texi (Static Analyzer Options): Add notes about
3408 limitations of -fanalyzer.
3409
3410 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3411
3412 * config/riscv/constraints.md (vj): New.
3413 (vk): Ditto
3414 * config/riscv/iterators.md: Add more opcode.
3415 * config/riscv/predicates.md (vector_arith_operand): New.
3416 (vector_neg_arith_operand): New.
3417 (vector_shift_operand): New.
3418 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
3419 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
3420 (vsub): Ditto.
3421 (vand): Ditto.
3422 (vor): Ditto.
3423 (vxor): Ditto.
3424 (vsll): Ditto.
3425 (vsra): Ditto.
3426 (vsrl): Ditto.
3427 (vmin): Ditto.
3428 (vmax): Ditto.
3429 (vminu): Ditto.
3430 (vmaxu): Ditto.
3431 (vmul): Ditto.
3432 (vdiv): Ditto.
3433 (vrem): Ditto.
3434 (vdivu): Ditto.
3435 (vremu): Ditto.
3436 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
3437 (vsub): Ditto.
3438 (vand): Ditto.
3439 (vor): Ditto.
3440 (vxor): Ditto.
3441 (vsll): Ditto.
3442 (vsra): Ditto.
3443 (vsrl): Ditto.
3444 (vmin): Ditto.
3445 (vmax): Ditto.
3446 (vminu): Ditto.
3447 (vmaxu): Ditto.
3448 (vmul): Ditto.
3449 (vdiv): Ditto.
3450 (vrem): Ditto.
3451 (vdivu): Ditto.
3452 (vremu): Ditto.
3453 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
3454 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
3455 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
3456 (DEF_RVV_U_OPS): New.
3457 (rvv_arg_type_info::get_base_vector_type): Handle
3458 RVV_BASE_shift_vector.
3459 (rvv_arg_type_info::get_tree_type): Ditto.
3460 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
3461 RVV_BASE_shift_vector.
3462 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
3463 * config/riscv/vector-iterators.md: Handle more opcode.
3464 * config/riscv/vector.md (@pred_<optab><mode>): New.
3465
3466 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
3467
3468 PR target/108589
3469 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
3470 REG_P on SET_DEST.
3471
3472 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
3473
3474 PR tree-optimization/108608
3475 * tree-vect-loop.cc (vect_transform_reduction): Handle single
3476 def-use cycles that involve function calls rather than tree codes.
3477
3478 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
3479
3480 PR tree-optimization/108385
3481 * gimple-range-gori.cc (gori_compute::compute_operand_range):
3482 Allow VARYING computations to continue if there is a relation.
3483 * range-op.cc (pointer_plus_operator::op2_range): New.
3484
3485 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
3486
3487 PR tree-optimization/108359
3488 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
3489 (range_operator::fold_range): If op1 is equivalent to op2 then
3490 invoke new fold_in_parts_equiv to operate on sub-components.
3491 * range-op.h (wi_fold_in_parts_equiv): New prototype.
3492
3493 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
3494
3495 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
3496 not abort calculations if there is a valid relation available.
3497 (gori_compute::refine_using_relation): Pass correct relation trio.
3498 (gori_compute::compute_operand1_range): Create trio and use it.
3499 (gori_compute::compute_operand2_range): Ditto.
3500 * range-op.cc (operator_plus::op1_range): Use correct trio member.
3501 (operator_minus::op1_range): Use correct trio member.
3502 * value-relation.cc (value_relation::create_trio): New.
3503 * value-relation.h (value_relation::create_trio): New prototype.
3504
3505 2023-01-31 Jakub Jelinek <jakub@redhat.com>
3506
3507 PR target/108599
3508 * config/i386/i386-expand.cc
3509 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
3510 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
3511 equal to bitsize of mode.
3512
3513 2023-01-31 Jakub Jelinek <jakub@redhat.com>
3514
3515 PR rtl-optimization/108596
3516 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
3517 ends with asm goto and has a crossing fallthrough edge to the same bb
3518 that contains at least one of its labels by restoring EDGE_CROSSING
3519 flag even on possible edge from cur_bb to new_bb successor.
3520
3521 2023-01-31 Jakub Jelinek <jakub@redhat.com>
3522
3523 PR c++/105593
3524 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
3525 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
3526 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
3527 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
3528 uninitialized automatic variable __W.
3529
3530 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
3531
3532 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
3533
3534 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3535
3536 * config/riscv/riscv-protos.h (get_vector_mode): New function.
3537 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
3538 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
3539 (class loadstore): Adjust for indexed loads/stores support.
3540 (BASE): Ditto.
3541 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
3542 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
3543 (vluxei16): Ditto.
3544 (vluxei32): Ditto.
3545 (vluxei64): Ditto.
3546 (vloxei8): Ditto.
3547 (vloxei16): Ditto.
3548 (vloxei32): Ditto.
3549 (vloxei64): Ditto.
3550 (vsuxei8): Ditto.
3551 (vsuxei16): Ditto.
3552 (vsuxei32): Ditto.
3553 (vsuxei64): Ditto.
3554 (vsoxei8): Ditto.
3555 (vsoxei16): Ditto.
3556 (vsoxei32): Ditto.
3557 (vsoxei64): Ditto.
3558 * config/riscv/riscv-vector-builtins-shapes.cc
3559 (struct indexed_loadstore_def): New class.
3560 (SHAPE): Ditto.
3561 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3562 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
3563 for indexed loads/stores support.
3564 (check_required_extensions): Ditto.
3565 (rvv_arg_type_info::get_base_vector_type): New function.
3566 (rvv_arg_type_info::get_tree_type): Ditto.
3567 (function_builder::add_unique_function): Adjust for indexed loads/stores
3568 support.
3569 (function_expander::use_exact_insn): New function.
3570 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
3571 indexed loads/stores support.
3572 (struct rvv_arg_type_info): Ditto.
3573 (function_expander::index_mode): New function.
3574 (function_base::apply_tail_policy_p): Ditto.
3575 (function_base::apply_mask_policy_p): Ditto.
3576 * config/riscv/vector-iterators.md (unspec): New unspec.
3577 * config/riscv/vector.md (unspec): Ditto.
3578 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
3579 pattern.
3580 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
3581 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
3582 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
3583 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
3584 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
3585 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
3586 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
3587 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
3588 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
3589 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
3590 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
3591 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
3592 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
3593
3594 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
3595
3596 * config.gcc: Recognize x86_64-*-gnu* targets and include
3597 i386/gnu64.h.
3598 * config/i386/gnu64.h: Define configuration for new target
3599 including ld.so location.
3600
3601 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
3602
3603 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
3604 ampere1a to include SM4.
3605
3606 2023-01-30 Andrew Pinski <apinski@marvell.com>
3607
3608 PR tree-optimization/108582
3609 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
3610 for middlebb to have no phi nodes.
3611
3612 2023-01-30 Richard Biener <rguenther@suse.de>
3613
3614 PR tree-optimization/108574
3615 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
3616 sameval and def, ignore the equivalence if there's the
3617 danger of oscillating between two values.
3618
3619 2023-01-30 Andreas Schwab <schwab@suse.de>
3620
3621 * common/config/riscv/riscv-common.cc
3622 (riscv_option_optimization_table)
3623 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
3624 -fasynchronous-unwind-tables and -funwind-tables.
3625 * config.gcc (riscv*-*-linux*): Define
3626 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
3627
3628 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
3629
3630 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
3631 value of includedir.
3632
3633 2023-01-30 Richard Biener <rguenther@suse.de>
3634
3635 PR ipa/108511
3636 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
3637 assert.
3638
3639 2023-01-30 liuhongt <hongtao.liu@intel.com>
3640
3641 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
3642 * doc/invoke.texi: Ditto.
3643
3644 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
3645
3646 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
3647 (stmt_may_terminate_function_p): If assuming return or EH
3648 volatile asm is safe.
3649 (find_always_executed_bbs): Fix handling of terminating BBS and
3650 infinite loops; add debug output.
3651 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
3652
3653 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
3654
3655 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
3656 off-by-one in checking the permissible shift-amount.
3657
3658 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3659
3660 * doc/extend.texi (Named Address Spaces): Update link to the
3661 AVR-Libc manual.
3662
3663 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3664
3665 * doc/standards.texi (Standards): Fix markup.
3666
3667 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3668
3669 * doc/standards.texi (Standards): Update link to Objective-C book.
3670
3671 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3672
3673 * doc/invoke.texi (Instrumentation Options): Update reference to
3674 AddressSanitizer.
3675
3676 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3677
3678 * doc/standards.texi: Update Go1 link.
3679
3680 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3681
3682 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
3683 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
3684 Support vlse/vsse.
3685 (BASE): Ditto.
3686 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3687 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
3688 (vsse): New class.
3689 * config/riscv/riscv-vector-builtins.cc
3690 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
3691 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
3692 (@pred_strided_store<mode>): Ditto.
3693
3694 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3695
3696 * config/riscv/vector.md (tail_policy_op_idx): Remove.
3697 (mask_policy_op_idx): Remove.
3698 (avl_type_op_idx): Remove.
3699
3700 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
3701
3702 PR tree-optimization/96373
3703 * tree.h (sign_mask_for): Declare.
3704 * tree.cc (sign_mask_for): New function.
3705 (signed_or_unsigned_type_for): For vector types, try to use the
3706 related_int_vector_mode.
3707 * genmatch.cc (commutative_op): Handle conditional internal functions.
3708 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
3709
3710 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
3711
3712 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
3713 Use the likely minimum VF when bounding the denominators to
3714 the estimated number of iterations.
3715
3716 2023-01-27 Richard Biener <rguenther@suse.de>
3717
3718 PR target/55522
3719 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
3720 and -Ofast FP environment side-effects.
3721
3722 2023-01-27 Richard Biener <rguenther@suse.de>
3723
3724 PR target/55522
3725 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
3726 Don't add crtfastmath.o for -shared.
3727
3728 2023-01-27 Richard Biener <rguenther@suse.de>
3729
3730 PR target/55522
3731 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
3732 for -shared.
3733
3734 2023-01-27 Richard Biener <rguenther@suse.de>
3735
3736 PR target/55522
3737 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
3738 crtfastmath.o for -shared.
3739
3740 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
3741
3742 PR tree-optimization/108306
3743 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
3744 varying for shifts that are always out of void range.
3745 (operator_rshift::fold_range): Return [0, 0] not
3746 varying for shifts that are always out of void range.
3747
3748 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
3749
3750 PR tree-optimization/108447
3751 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
3752 Do not attempt to fold HONOR_NAN types.
3753
3754 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3755
3756 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
3757 Remove _m suffix for "vop_m" C++ overloaded API name.
3758
3759 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3760
3761 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
3762 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3763 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
3764 (vsm): Ditto.
3765 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
3766 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
3767 (vbool64_t): Ditto.
3768 (vbool32_t): Ditto.
3769 (vbool16_t): Ditto.
3770 (vbool8_t): Ditto.
3771 (vbool4_t): Ditto.
3772 (vbool2_t): Ditto.
3773 (vbool1_t): Ditto.
3774 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
3775 (rvv_arg_type_info::get_tree_type): Ditto.
3776 (function_expander::use_contiguous_load_insn): Ditto.
3777 * config/riscv/vector.md (@pred_store<mode>): Ditto.
3778
3779 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3780
3781 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
3782 (vsetvl_discard_result_insn_p): New function.
3783 (reg_killed_by_bb_p): rename to find_reg_killed_by.
3784 (find_reg_killed_by): New name.
3785 (get_vl): allow it to be called by more functions.
3786 (has_vsetvl_killed_avl_p): Add condition.
3787 (get_avl): allow it to be called by more functions.
3788 (insn_should_be_added_p): New function.
3789 (get_all_nonphi_defs): Refine function.
3790 (get_all_sets): Ditto.
3791 (get_same_bb_set): New function.
3792 (any_insn_in_bb_p): Ditto.
3793 (any_set_in_bb_p): Ditto.
3794 (get_vl_vtype_info): Add VLMAX forward optimization.
3795 (source_equal_p): Fix issues.
3796 (extract_single_source): Refine.
3797 (avl_info::multiple_source_equal_p): New function.
3798 (avl_info::operator==): Adjust for final version.
3799 (vl_vtype_info::operator==): Ditto.
3800 (vl_vtype_info::same_avl_p): Ditto.
3801 (vector_insn_info::parse_insn): Ditto.
3802 (vector_insn_info::available_p): New function.
3803 (vector_insn_info::merge): Adjust for final version.
3804 (vector_insn_info::dump): Add hard_empty.
3805 (pass_vsetvl::hard_empty_block_p): New function.
3806 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
3807 (pass_vsetvl::forward_demand_fusion): Ditto.
3808 (pass_vsetvl::demand_fusion): Ditto.
3809 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
3810 (pass_vsetvl::compute_local_properties): Adjust for final version.
3811 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
3812 (pass_vsetvl::refine_vsetvls): Ditto.
3813 (pass_vsetvl::commit_vsetvls): Ditto.
3814 (pass_vsetvl::propagate_avl): New function.
3815 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
3816 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
3817
3818 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3819
3820 PR other/108560
3821 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
3822 from size_t to int.
3823
3824 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3825
3826 PR ipa/106061
3827 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
3828 redirection of calls to __builtin_trap in addition to redirection
3829 to __builtin_unreachable.
3830
3831 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3832
3833 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
3834
3835 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3836
3837 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
3838 (emit_vsetvl_insn): Ditto.
3839
3840 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3841
3842 * config/riscv/vector.md: Fix constraints.
3843
3844 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3845
3846 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
3847
3848 2023-01-27 Patrick Palka <ppalka@redhat.com>
3849 Jakub Jelinek <jakub@redhat.com>
3850
3851 * tree-core.h (tree_code_type, tree_code_length): For
3852 C++17 and later, add inline keyword, otherwise don't define
3853 the arrays, but declare extern arrays.
3854 * tree.cc (tree_code_type, tree_code_length): Define these
3855 arrays for C++14 and older.
3856
3857 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3858
3859 * config/riscv/riscv-vsetvl.h: Change it into public.
3860
3861 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3862
3863 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
3864 pass.
3865
3866 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3867
3868 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
3869
3870 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3871
3872 * config/riscv/vector.md: Fix incorrect attributes.
3873
3874 2023-01-27 Richard Biener <rguenther@suse.de>
3875
3876 PR target/55522
3877 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
3878 Don't add crtfastmath.o for -shared.
3879
3880 2023-01-27 Alexandre Oliva <oliva@gnu.org>
3881
3882 * doc/options.texi (option, RejectNegative): Mention that
3883 -g-started options are also implicitly negatable.
3884
3885 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
3886
3887 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
3888 Use get_typenode_from_name to get fixed-width integer type
3889 nodes.
3890 * config/riscv/riscv-vector-builtins.def: Update define with
3891 fixed-width integer type nodes.
3892
3893 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3894
3895 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
3896 (real_insn_and_same_bb_p): New function.
3897 (same_bb_and_after_or_equal_p): Remove it.
3898 (before_p): New function.
3899 (reg_killed_by_bb_p): Ditto.
3900 (has_vsetvl_killed_avl_p): Ditto.
3901 (get_vl): Move location so that we can call it.
3902 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
3903 (available_occurrence_p): Ditto.
3904 (dominate_probability_p): Remove it.
3905 (can_backward_propagate_p): Remove it.
3906 (get_all_nonphi_defs): New function.
3907 (get_all_predecessors): Ditto.
3908 (any_insn_in_bb_p): Ditto.
3909 (insert_vsetvl): Adjust AVL REG.
3910 (source_equal_p): New function.
3911 (extract_single_source): Ditto.
3912 (avl_info::single_source_equal_p): Ditto.
3913 (avl_info::operator==): Adjust for AVL=REG.
3914 (vl_vtype_info::same_avl_p): Ditto.
3915 (vector_insn_info::set_demand_info): Remove it.
3916 (vector_insn_info::compatible_p): Adjust for AVL=REG.
3917 (vector_insn_info::compatible_avl_p): New function.
3918 (vector_insn_info::merge): Adjust AVL=REG.
3919 (vector_insn_info::dump): Ditto.
3920 (pass_vsetvl::merge_successors): Remove it.
3921 (enum fusion_type): New enum.
3922 (pass_vsetvl::get_backward_fusion_type): New function.
3923 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
3924 (pass_vsetvl::forward_demand_fusion): Ditto.
3925 (pass_vsetvl::demand_fusion): Ditto.
3926 (pass_vsetvl::prune_expressions): Ditto.
3927 (pass_vsetvl::compute_local_properties): Ditto.
3928 (pass_vsetvl::cleanup_vsetvls): Ditto.
3929 (pass_vsetvl::commit_vsetvls): Ditto.
3930 (pass_vsetvl::init): Ditto.
3931 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
3932 (enum merge_type): New enum.
3933
3934 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3935
3936 * config/riscv/riscv-vsetvl.cc
3937 (vector_infos_manager::vector_infos_manager): Add probability.
3938 (vector_infos_manager::dump): Ditto.
3939 (pass_vsetvl::compute_probabilities): Ditto.
3940 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
3941
3942 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3943
3944 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
3945 (vector_insn_info::merge): Ditto.
3946 (vector_insn_info::dump): Ditto.
3947 (pass_vsetvl::merge_successors): Ditto.
3948 (pass_vsetvl::backward_demand_fusion): Ditto.
3949 (pass_vsetvl::forward_demand_fusion): Ditto.
3950 (pass_vsetvl::commit_vsetvls): Ditto.
3951 * config/riscv/riscv-vsetvl.h: Ditto.
3952
3953 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3954
3955 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
3956 rinsn.
3957
3958 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3959
3960 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
3961
3962 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3963
3964 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
3965 Add pre-check for redundant flow.
3966
3967 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3968
3969 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
3970 (vector_infos_manager::free_bitmap_vectors): Ditto.
3971 (pass_vsetvl::pre_vsetvl): Adjust codes.
3972 * config/riscv/riscv-vsetvl.h: New function declaration.
3973
3974 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3975
3976 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
3977 (vector_insn_info::set_demand_info): New function.
3978 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
3979 (pass_vsetvl::merge_successors): Ditto.
3980 (pass_vsetvl::compute_global_backward_infos): Ditto.
3981 (pass_vsetvl::backward_demand_fusion): Ditto.
3982 (pass_vsetvl::forward_demand_fusion): Ditto.
3983 (pass_vsetvl::demand_fusion): New function.
3984 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
3985 * config/riscv/riscv-vsetvl.h: New function declaration.
3986
3987 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3988
3989 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
3990
3991 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3992
3993 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
3994 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
3995
3996 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3997
3998 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
3999 (backward_propagate_worthwhile_p): Fix non-worthwhile.
4000
4001 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4002
4003 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
4004
4005 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4006
4007 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
4008 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
4009 (pass_vsetvl::commit_vsetvls): Ditto.
4010 * config/riscv/riscv-vsetvl.h: New function declaration.
4011
4012 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4013
4014 * config/riscv/vector.md:
4015
4016 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4017
4018 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
4019 pred_store for vse.
4020 * config/riscv/riscv-vector-builtins.cc
4021 (function_expander::add_mem_operand): Refine function.
4022 (function_expander::use_contiguous_load_insn): Adjust new
4023 implementation.
4024 (function_expander::use_contiguous_store_insn): Ditto.
4025 * config/riscv/riscv-vector-builtins.h: Refine function.
4026 * config/riscv/vector.md (@pred_store<mode>): New pattern.
4027
4028 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4029
4030 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
4031
4032 2023-01-26 Marek Polacek <polacek@redhat.com>
4033
4034 PR middle-end/108543
4035 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
4036 if it was previously set.
4037
4038 2023-01-26 Jakub Jelinek <jakub@redhat.com>
4039
4040 PR tree-optimization/108540
4041 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
4042 are singletons, use range_true even if op1 != op2
4043 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
4044 even if intersection of the ranges is empty and one has
4045 zero low bound and another zero high bound, use range_true_and_false
4046 rather than range_false.
4047 (foperator_not_equal::fold_range): If both op1 and op2
4048 are singletons, use range_false even if op1 != op2
4049 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
4050 even if intersection of the ranges is empty and one has
4051 zero low bound and another zero high bound, use range_true_and_false
4052 rather than range_true.
4053
4054 2023-01-26 Jakub Jelinek <jakub@redhat.com>
4055
4056 * value-relation.cc (kind_string): Add const.
4057 (rr_negate_table, rr_swap_table, rr_intersect_table,
4058 rr_union_table, rr_transitive_table): Add static const, change
4059 element type from relation_kind to unsigned char.
4060 (relation_negate, relation_swap, relation_intersect, relation_union,
4061 relation_transitive): Cast rr_*_table element to relation_kind.
4062 (relation_to_code): Add static const.
4063 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
4064
4065 2023-01-26 Richard Biener <rguenther@suse.de>
4066
4067 PR tree-optimization/108547
4068 * gimple-predicate-analysis.cc (value_sat_pred_p):
4069 Use widest_int.
4070
4071 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
4072
4073 PR tree-optimization/108522
4074 * tree-object-size.cc (compute_object_offset): Make EXPR
4075 argument non-const. Call component_ref_field_offset.
4076
4077 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4078
4079 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
4080 FEATURE_STRING field.
4081
4082 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
4083
4084 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
4085
4086 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
4087
4088 PR modula2/102343
4089 PR modula2/108182
4090 * gcc.cc: Provide default specs for Modula-2 so that when the
4091 language is not built-in better diagnostics are emitted for
4092 attempts to use .mod or .m2i file extensions.
4093
4094 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4095
4096 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
4097
4098 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4099
4100 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
4101
4102 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4103
4104 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
4105 Fix spacing.
4106
4107 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4108
4109 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
4110
4111 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4112
4113 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
4114
4115 2023-01-25 Richard Biener <rguenther@suse.de>
4116
4117 PR tree-optimization/108523
4118 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
4119 backedge value for the result when using predication to
4120 prove equivalence.
4121
4122 2023-01-25 Richard Biener <rguenther@suse.de>
4123
4124 * doc/lto.texi (Command line options): Reword and update reference
4125 to removed lto_read_all_file_options.
4126
4127 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
4128
4129 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
4130 tests.
4131
4132 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
4133
4134 * doc/contrib.texi: Add Jose E. Marchesi.
4135
4136 2023-01-25 Jakub Jelinek <jakub@redhat.com>
4137
4138 PR tree-optimization/108498
4139 * gimple-ssa-store-merging.cc (class store_operand_info):
4140 End coment with full stop rather than comma.
4141 (split_group): Likewise.
4142 (merged_store_group::apply_stores): Clear string_concatenation if
4143 start or end aren't on a byte boundary.
4144
4145 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
4146 Jakub Jelinek <jakub@redhat.com>
4147
4148 PR tree-optimization/108522
4149 * tree-object-size.cc (compute_object_offset): Use
4150 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
4151
4152 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4153
4154 * config/xtensa/xtensa.md:
4155 Fix exit from loops detecting references before overwriting in the
4156 split pattern.
4157
4158 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
4159
4160 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
4161 do elimination but only for hard register.
4162 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
4163 calls of get_hard_regno.
4164
4165 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4166
4167 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
4168 of CPU version.
4169
4170 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
4171
4172 PR target/108177
4173 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
4174 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
4175 as input operand.
4176
4177 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4178
4179 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
4180 and only include 'csky/t-csky-linux' when enable multilib.
4181 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
4182 define it when disable multilib.
4183
4184 2023-01-24 Richard Biener <rguenther@suse.de>
4185
4186 PR tree-optimization/108500
4187 * dominance.h (calculate_dominance_info): Add parameter
4188 to indicate fast-query compute, defaulted to true.
4189 * dominance.cc (calculate_dominance_info): Honor
4190 fast-query compute parameter.
4191 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
4192 not compute the dominator fast-query DFS numbers.
4193
4194 2023-01-24 Eric Biggers <ebiggers@google.com>
4195
4196 PR bootstrap/90543
4197 * optc-save-gen.awk: Fix copy-and-paste error.
4198
4199 2023-01-24 Jakub Jelinek <jakub@redhat.com>
4200
4201 PR c++/108474
4202 * cgraphbuild.cc: Include gimplify.h.
4203 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
4204 their corresponding DECL_VALUE_EXPR expressions after unsharing.
4205
4206 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4207
4208 PR target/108505
4209 * config.gcc (tm_file): Move the variable out of loop.
4210
4211 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
4212 Yang Yujie <yangyujie@loongson.cn>
4213
4214 PR target/107731
4215 * config/loongarch/loongarch.cc (loongarch_classify_address):
4216 Add precessint for CONST_INT.
4217 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
4218 (loongarch_print_operand): Increase the processing of '%c'.
4219 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
4220 And port the public operand modifiers information to this document.
4221
4222 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4223
4224 * doc/invoke.texi (-mbranch-protection): Update documentation.
4225
4226 2023-01-23 Richard Biener <rguenther@suse.de>
4227
4228 PR target/55522
4229 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
4230 for -shared.
4231 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
4232 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
4233 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
4234 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
4235
4236 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4237
4238 * config/arm/aout.h (ra_auth_code): Add entry in enum.
4239 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
4240 to dwarf frame expression.
4241 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
4242 (arm_expand_prologue): Update frame related information and reg notes
4243 for pac/pacbit insn.
4244 (arm_regno_class): Check for pac pseudo reigster.
4245 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
4246 (arm_init_machine_status): Set pacspval_needed to zero.
4247 (arm_debugger_regno): Check for PAC register.
4248 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
4249 register.
4250 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
4251 (arm_unwind_emit): Update REG_CFA_REGISTER case._
4252 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
4253 (DWARF_PAC_REGNUM): Define.
4254 (IS_PAC_REGNUM): Likewise.
4255 (enum reg_class): Add PAC_REG entry.
4256 (machine_function): Add pacbti_needed state to structure.
4257 * config/arm/arm.md (RA_AUTH_CODE): Define.
4258
4259 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4260
4261 * config.gcc ($tm_file): Update variable.
4262 * config/arm/arm-mlib.h: Create new header file.
4263 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
4264 multilib arch directory.
4265 (MULTILIB_REUSE): Add multilib reuse rules.
4266 (MULTILIB_MATCHES): Add multilib match rules.
4267
4268 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4269
4270 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
4271 * config/arm/arm-tables.opt: Regenerate.
4272 * config/arm/arm-tune.md: Likewise.
4273 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
4274 * (-mfix-cmse-cve-2021-35465): Likewise.
4275
4276 2023-01-23 Richard Biener <rguenther@suse.de>
4277
4278 PR tree-optimization/108482
4279 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
4280 .LOOP_DIST_ALIAS calls.
4281
4282 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4283
4284 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
4285 * config/arm/arm-protos.h: Update.
4286 * config/arm/aarch-common-protos.h: Declare
4287 'aarch_bti_arch_check'.
4288 * config/arm/arm.cc (aarch_bti_enabled) Update.
4289 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
4290 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
4291 * config/arm/arm.md (bti_nop): New insn.
4292 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
4293 (aarch-bti-insert.o): New target.
4294 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
4295 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
4296 compatibility.
4297 (gate): Make use of 'aarch_bti_arch_check'.
4298 * config/arm/arm-passes.def: New file.
4299 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
4300
4301 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4302
4303 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
4304 'aarch-bti-insert.o'.
4305 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
4306 proto.
4307 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
4308 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
4309 (aarch64_output_mi_thunk)
4310 (aarch64_print_patchable_function_entry)
4311 (aarch64_file_end_indicate_exec_stack): Update renamed function
4312 calls to renamed functions.
4313 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
4314 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
4315 target.
4316 * config/aarch64/aarch64-bti-insert.cc: Delete.
4317 * config/arm/aarch-bti-insert.cc: New file including and
4318 generalizing code from aarch64-bti-insert.cc.
4319 * config/arm/aarch-common-protos.h: Update.
4320
4321 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4322
4323 * config/arm/arm.h (arm_arch8m_main): Declare it.
4324 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
4325 Declare it.
4326 * config/arm/arm.cc (arm_arch8m_main): Define it.
4327 (arm_option_reconfigure_globals): Set arm_arch8m_main.
4328 (arm_compute_frame_layout, arm_expand_prologue)
4329 (thumb2_expand_return, arm_expand_epilogue)
4330 (arm_conditional_register_usage): Update for pac codegen.
4331 (arm_current_function_pac_enabled_p): New function.
4332 (aarch_bti_enabled) New function.
4333 (use_return_insn): Return zero when pac is enabled.
4334 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
4335 Add new patterns.
4336 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
4337 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
4338
4339 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4340
4341 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
4342 mbranch-protection.
4343
4344 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4345 Tejas Belagod <tbelagod@arm.com>
4346
4347 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
4348 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
4349
4350 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4351 Tejas Belagod <tbelagod@arm.com>
4352 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4353
4354 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
4355 new pseudo register class _UVRSC_PAC.
4356
4357 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4358 Tejas Belagod <tbelagod@arm.com>
4359
4360 * config/arm/arm-c.cc (arm_cpu_builtins): Define
4361 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
4362 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
4363
4364 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4365 Tejas Belagod <tbelagod@arm.com>
4366
4367 * doc/sourcebuild.texi: Document arm_pacbti_hw.
4368
4369 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4370 Tejas Belagod <tbelagod@arm.com>
4371 Richard Earnshaw <Richard.Earnshaw@arm.com>
4372
4373 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
4374 -mbranch-protection option and initialize appropriate data structures.
4375 * config/arm/arm.opt (-mbranch-protection): New option.
4376 * doc/invoke.texi (Arm Options): Document it.
4377
4378 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4379 Tejas Belagod <tbelagod@arm.com>
4380
4381 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
4382 * config/arm/arm-cpus.in (pacbti): New feature.
4383 * doc/invoke.texi (Arm Options): Document it.
4384
4385 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4386 Tejas Belagod <tbelagod@arm.com>
4387
4388 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
4389 (all_architectures): Fix comment.
4390 (aarch64_parse_extension): Rename return type, enum value names.
4391 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
4392 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
4393 Also rename corresponding enum values.
4394 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
4395 out aarch64_function_type and move it to common code as
4396 aarch_function_type in aarch-common.h.
4397 * config/aarch64/aarch64-protos.h: Include common types header,
4398 move out types aarch64_parse_opt_result and aarch64_key_type to
4399 aarch-common.h
4400 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
4401 and functions out into aarch-common.h and aarch-common.cc. Fix up
4402 all the name changes resulting from the move.
4403 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
4404 and enum value.
4405 * config/aarch64/aarch64.opt: Include aarch-common.h to import
4406 type move. Fix up name changes from factoring out common code and
4407 data.
4408 * config/arm/aarch-common-protos.h: Export factored out routines to both
4409 backends.
4410 * config/arm/aarch-common.cc: Include newly factored out types.
4411 Move all mbranch-protection code and data structures from
4412 aarch64.cc.
4413 * config/arm/aarch-common.h: New header that declares types shared
4414 between aarch32 and aarch64 backends.
4415 * config/arm/arm-protos.h: Declare types and variables that are
4416 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
4417 aarch_ra_sign_scope and aarch_enable_bti.
4418 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
4419 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
4420 * config/arm/arm.cc: Add missing includes.
4421
4422 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
4423
4424 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
4425
4426 2023-01-23 Richard Biener <rguenther@suse.de>
4427
4428 PR tree-optimization/108449
4429 * cgraphunit.cc (check_global_declaration): Do not turn
4430 undefined statics into externs.
4431
4432 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
4433
4434 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
4435 and HI input modes.
4436 * config/pru/pru.md (clz): Fix generated code for QI and HI
4437 input modes.
4438
4439 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
4440
4441 * config/v850/v850.cc (v850_select_section): Put const volatile
4442 objects into read-only sections.
4443
4444 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
4445
4446 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
4447 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
4448 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
4449
4450 2023-01-20 Jakub Jelinek <jakub@redhat.com>
4451
4452 PR tree-optimization/108457
4453 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
4454 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
4455 argument instead of a temporary. Formatting fixes.
4456
4457 2023-01-19 Jakub Jelinek <jakub@redhat.com>
4458
4459 PR tree-optimization/108447
4460 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
4461 (relation_tests): Add self-tests for relation_{intersect,union}
4462 commutativity.
4463 * selftest.h (relation_tests): Declare.
4464 * function-tests.cc (test_ranges): Call it.
4465
4466 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
4467
4468 PR target/108436
4469 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
4470 invalid third argument to __builtin_ia32_prefetch.
4471
4472 2023-01-19 Jakub Jelinek <jakub@redhat.com>
4473
4474 PR middle-end/108459
4475 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
4476 than fold_unary for NEGATE_EXPR.
4477
4478 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
4479
4480 PR target/108411
4481 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
4482 comment. Move assert about alignment a bit later.
4483
4484 2023-01-19 Jakub Jelinek <jakub@redhat.com>
4485
4486 PR tree-optimization/108440
4487 * tree-ssa-forwprop.cc: Include gimple-range.h.
4488 (simplify_rotate): For the forms with T2 wider than T and shift counts of
4489 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
4490 to B. For the forms with T2 wider than T and shift counts of
4491 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
4492 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
4493 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
4494 pass specific ranger instead of get_global_range_query.
4495 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
4496 been created.
4497
4498 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4499
4500 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
4501 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
4502 the pattern.
4503 (aarch64_simd_vec_copy_lane<mode>): Likewise.
4504 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
4505
4506 2023-01-19 Alexandre Oliva <oliva@adacore.com>
4507
4508 PR debug/106746
4509 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
4510 within debug insns.
4511
4512 2023-01-18 Martin Jambor <mjambor@suse.cz>
4513
4514 PR ipa/107944
4515 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
4516 lcone_of chain also do not need the body.
4517
4518 2023-01-18 Richard Biener <rguenther@suse.de>
4519
4520 Revert:
4521 2022-12-16 Richard Biener <rguenther@suse.de>
4522
4523 PR middle-end/108086
4524 * tree-inline.cc (remap_ssa_name): Do not unshare the
4525 result from the decl_map.
4526
4527 2023-01-18 Murray Steele <murray.steele@arm.com>
4528
4529 PR target/108442
4530 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
4531 function.
4532 (__arm_vst1q_p_s8): Likewise.
4533 (__arm_vld1q_z_u8): Likewise.
4534 (__arm_vld1q_z_s8): Likewise.
4535 (__arm_vst1q_p_u16): Likewise.
4536 (__arm_vst1q_p_s16): Likewise.
4537 (__arm_vld1q_z_u16): Likewise.
4538 (__arm_vld1q_z_s16): Likewise.
4539 (__arm_vst1q_p_u32): Likewise.
4540 (__arm_vst1q_p_s32): Likewise.
4541 (__arm_vld1q_z_u32): Likewise.
4542 (__arm_vld1q_z_s32): Likewise.
4543 (__arm_vld1q_z_f16): Likewise.
4544 (__arm_vst1q_p_f16): Likewise.
4545 (__arm_vld1q_z_f32): Likewise.
4546 (__arm_vst1q_p_f32): Likewise.
4547
4548 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4549
4550 * config/xtensa/xtensa.md (xorsi3_internal):
4551 Rename from the original of "xorsi3".
4552 (xorsi3): New expansion pattern that emits addition rather than
4553 bitwise-XOR when the second source is a constant of -2147483648
4554 if TARGET_DENSITY.
4555
4556 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
4557 Andrew Pinski <apinski@marvell.com>
4558
4559 PR target/108396
4560 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
4561 vec_vsubcuqP with vec_vsubcuq.
4562
4563 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
4564
4565 PR target/108348
4566 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
4567 support for invalid uses of MMA opaque type in function arguments.
4568
4569 2023-01-18 liuhongt <hongtao.liu@intel.com>
4570
4571 PR target/55522
4572 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
4573 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
4574 -share or -mno-daz-ftz is specified.
4575 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
4576 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
4577
4578 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
4579
4580 * config/bpf/bpf.cc (bpf_option_override): Disable
4581 -fstack-protector.
4582
4583 2023-01-17 Jakub Jelinek <jakub@redhat.com>
4584
4585 PR tree-optimization/106523
4586 * tree-ssa-forwprop.cc (simplify_rotate): For the
4587 patterns with (-Y) & (B - 1) in one operand's shift
4588 count and Y in another, if T2 has wider precision than T,
4589 punt if Y could have a value in [B, B2 - 1] range.
4590
4591 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
4592
4593 PR target/105980
4594 * config/i386/i386.cc (x86_output_mi_thunk): Disable
4595 -mforce-indirect-call for PIC in 32-bit mode.
4596
4597 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
4598
4599 PR ipa/106077
4600 * ipa-modref.cc (modref_access_analysis::analyze): Use
4601 find_always_executed_bbs.
4602 * ipa-sra.cc (process_scan_results): Likewise.
4603 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
4604 (find_always_executed_bbs): New function.
4605 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
4606 (find_always_executed_bbs): Declare.
4607
4608 2023-01-16 Jan Hubicka <jh@suse.cz>
4609
4610 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
4611 by TARGET_USE_SCATTER.
4612 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
4613 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
4614 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
4615 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
4616 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
4617 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
4618
4619 2023-01-16 Richard Biener <rguenther@suse.de>
4620
4621 PR target/55522
4622 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
4623
4624 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
4625
4626 PR target/96795
4627 PR target/107515
4628 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
4629 (__ARM_mve_coerce3): Likewise.
4630
4631 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4632
4633 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
4634
4635 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4636
4637 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
4638 (number_of_iterations_bitcount): Add call to the above.
4639 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
4640 c[lt]z idiom recognition.
4641
4642 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4643
4644 * doc/sourcebuild.texi: Add missing target attributes.
4645
4646 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4647
4648 PR tree-optimization/94793
4649 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
4650 for c[lt]z optabs.
4651 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
4652 (number_of_iterations_cltz_complement): New.
4653 (number_of_iterations_bitcount): Add call to the above.
4654
4655 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4656
4657 * doc/extend.texi (Common Function Attributes): Fix grammar.
4658
4659 2023-01-16 Jakub Jelinek <jakub@redhat.com>
4660
4661 PR other/108413
4662 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
4663 * config/riscv/riscv-vsetvl.cc: Likewise.
4664
4665 2023-01-16 Jakub Jelinek <jakub@redhat.com>
4666
4667 PR c++/105593
4668 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
4669 disable -Winit-self using pragma GCC diagnostic ignored.
4670 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
4671 Likewise.
4672 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
4673 _mm256_undefined_si256): Likewise.
4674 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
4675 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
4676 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
4677 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
4678
4679 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
4680
4681 PR target/108272
4682 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
4683 support for invalid uses in inline asm, factor out the checking and
4684 erroring to lambda function check_and_error_invalid_use.
4685
4686 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
4687
4688 PR tree-optimization/107608
4689 * range-op-float.cc (range_operator_float::fold_range): Avoid
4690 folding into INF when flag_trapping_math.
4691 * value-range.h (frange::known_isinf): Return false for possible NANs.
4692
4693 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4694
4695 * config.gcc (csky-*-*): Support --with-float=softfp.
4696
4697 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4698
4699 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
4700 Rename to xtensa_adjust_reg_alloc_order.
4701 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
4702 Ditto. And also remove code to reorder register numbers for
4703 leaf functions, rename the tables, and adjust the allocation
4704 order for the call0 ABI to use register A0 more.
4705 (xtensa_leaf_regs): Remove.
4706 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
4707 (order_regs_for_local_alloc): Rename as the above.
4708 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
4709
4710 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4711
4712 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
4713 Change to define_insn_and_split to fold ldr+dup to ld1rq.
4714 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
4715
4716 2023-01-14 Alexandre Oliva <oliva@adacore.com>
4717
4718 * hash-table.h (is_deleted): Precheck !is_empty.
4719 (mark_deleted): Postcheck !is_empty.
4720 (copy constructor): Test is_empty before is_deleted.
4721
4722 2023-01-14 Alexandre Oliva <oliva@adacore.com>
4723
4724 PR target/40457
4725 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
4726 moves.
4727
4728 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
4729
4730 PR rtl-optimization/108274
4731 * function.cc (thread_prologue_and_epilogue_insns): Also update the
4732 DF information for calls in a few more cases.
4733
4734 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
4735
4736 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
4737 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
4738 define.
4739 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
4740 (MAX_SYNC_LIBFUNC_SIZE): Define.
4741 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
4742 enabled.
4743 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
4744 libcall when sync libcalls are disabled.
4745 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
4746 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
4747 are disabled on 32-bit target.
4748 * config/pa/pa.opt (matomic-libcalls): New option.
4749 * doc/invoke.texi (HPPA Options): Update.
4750
4751 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
4752
4753 PR rtl-optimization/108117
4754 PR rtl-optimization/108132
4755 * sched-deps.cc (deps_analyze_insn): Do not schedule across
4756 calls before reload.
4757
4758 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4759
4760 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
4761 options for -mlibarch.
4762 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
4763 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
4764
4765 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
4766
4767 * attribs.cc (strict_flex_array_level_of): Move this function to ...
4768 * attribs.h (strict_flex_array_level_of): Remove the declaration.
4769 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
4770 replace the referece to strict_flex_array_level_of with
4771 DECL_NOT_FLEXARRAY.
4772 * tree.cc (component_ref_size): Likewise.
4773
4774 2023-01-13 Richard Biener <rguenther@suse.de>
4775
4776 PR target/55522
4777 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
4778 crtfastmath.o for -shared.
4779 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
4780
4781 2023-01-13 Richard Biener <rguenther@suse.de>
4782
4783 PR target/55522
4784 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
4785 crtfastmath.o for -shared.
4786 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
4787 Likewise.
4788 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
4789 Likewise.
4790
4791 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
4792
4793 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
4794 function.
4795 (TARGET_DWARF_FRAME_REG_MODE): Define.
4796
4797 2023-01-13 Richard Biener <rguenther@suse.de>
4798
4799 PR target/107209
4800 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
4801 update EH info on the fly.
4802
4803 2023-01-13 Richard Biener <rguenther@suse.de>
4804
4805 PR tree-optimization/108387
4806 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
4807 value before inserting expression into the tables.
4808
4809 2023-01-12 Andrew Pinski <apinski@marvell.com>
4810 Roger Sayle <roger@nextmovesoftware.com>
4811
4812 PR tree-optimization/92342
4813 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
4814 Use tcc_comparison and :c for the multiply.
4815 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
4816
4817 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
4818 Richard Sandiford <richard.sandiford@arm.com>
4819
4820 PR target/105549
4821 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
4822 Check DECL_PACKED for bitfield.
4823 (aarch64_layout_arg): Warn when parameter passing ABI changes.
4824 (aarch64_function_arg_boundary): Do not warn here.
4825 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
4826 changes.
4827
4828 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
4829 Richard Sandiford <richard.sandiford@arm.com>
4830
4831 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
4832 comment.
4833 (aarch64_layout_arg): Factorize warning conditions.
4834 (aarch64_function_arg_boundary): Fix typo.
4835 * function.cc (currently_expanding_function_start): New variable.
4836 (expand_function_start): Handle
4837 currently_expanding_function_start.
4838 * function.h (currently_expanding_function_start): Declare.
4839
4840 2023-01-12 Richard Biener <rguenther@suse.de>
4841
4842 PR tree-optimization/99412
4843 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
4844 (swap_ops_for_binary_stmt): Remove reduction handling.
4845 (rewrite_expr_tree_parallel): Adjust.
4846 (reassociate_bb): Likewise.
4847 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
4848
4849 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4850
4851 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
4852 Rearrange the emitting codes.
4853
4854 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4855
4856 * config/xtensa/xtensa.md (*btrue):
4857 Correct value of the attribute "length" that depends on
4858 TARGET_DENSITY and operands, and add '?' character to the register
4859 constraint of the compared operand.
4860
4861 2023-01-12 Alexandre Oliva <oliva@adacore.com>
4862
4863 * hash-table.h (expand): Check elements and deleted counts.
4864 (verify): Likewise.
4865
4866 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
4867
4868 PR tree-optimization/71343
4869 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
4870 the value number of the expression X << C the same as the value
4871 number for the multiplication X * (1<<C).
4872
4873 2023-01-11 David Faust <david.faust@oracle.com>
4874
4875 PR target/108293
4876 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
4877 floating point modes.
4878
4879 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
4880
4881 PR tree-optimization/108199
4882 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
4883 for bit-field references.
4884
4885 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
4886
4887 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
4888 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
4889 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
4890 OPTION_MASK_P10_FUSION.
4891
4892 2023-01-11 Richard Biener <rguenther@suse.de>
4893
4894 PR tree-optimization/107767
4895 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
4896 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
4897 * tree-switch-conversion.cc (switch_conversion::collect):
4898 Count unique non-default targets accounting for later
4899 merging opportunities.
4900
4901 2023-01-11 Martin Liska <mliska@suse.cz>
4902
4903 PR middle-end/107976
4904 * params.opt: Limit JT params.
4905 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
4906
4907 2023-01-11 Richard Biener <rguenther@suse.de>
4908
4909 PR tree-optimization/108352
4910 * tree-ssa-threadbackward.cc
4911 (back_threader_profitability::profitable_path_p): Adjust
4912 heuristic that allows non-multi-way branch threads creating
4913 irreducible loops.
4914 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
4915 (--param fsm-scale-path-stmts): Adjust.
4916 * params.opt (--param=fsm-scale-path-blocks=): Remove.
4917 (-param=fsm-scale-path-stmts=): Adjust description.
4918
4919 2023-01-11 Richard Biener <rguenther@suse.de>
4920
4921 PR tree-optimization/108353
4922 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
4923 Remove.
4924 (add_ssa_edge): Simplify.
4925 (add_control_edge): Likewise.
4926 (ssa_prop_init): Likewise.
4927 (ssa_prop_fini): Likewise.
4928 (ssa_propagation_engine::ssa_propagate): Likewise.
4929
4930 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
4931
4932 * config/s390/s390.md (*not<mode>): New pattern.
4933
4934 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4935
4936 * config/xtensa/xtensa.cc (xtensa_insn_cost):
4937 Let insn cost for size be obtained by applying COSTS_N_INSNS()
4938 to instruction length and then dividing by 3.
4939
4940 2023-01-10 Richard Biener <rguenther@suse.de>
4941
4942 PR tree-optimization/106293
4943 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
4944 process degenerate PHI defs.
4945
4946 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
4947
4948 PR rtl-optimization/106421
4949 * cprop.cc (bypass_block): Check that DEST is local to this
4950 function (non-NULL) before calling find_edge.
4951
4952 2023-01-10 Martin Jambor <mjambor@suse.cz>
4953
4954 PR ipa/108110
4955 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
4956 sort_replacements, lookup_first_base_replacement and
4957 m_sorted_replacements_p.
4958 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
4959 (ipa_param_body_adjustments::register_replacement): Set
4960 m_sorted_replacements_p to false.
4961 (compare_param_body_replacement): New function.
4962 (ipa_param_body_adjustments::sort_replacements): Likewise.
4963 (ipa_param_body_adjustments::common_initialization): Call
4964 sort_replacements.
4965 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
4966 m_sorted_replacements_p.
4967 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
4968 std::lower_bound.
4969 (ipa_param_body_adjustments::lookup_first_base_replacement): New
4970 function.
4971 (ipa_param_body_adjustments::modify_call_stmt): Use
4972 lookup_first_base_replacement.
4973 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
4974 adjustments->sort_replacements.
4975
4976 2023-01-10 Richard Biener <rguenther@suse.de>
4977
4978 PR tree-optimization/108314
4979 * tree-vect-stmts.cc (vectorizable_condition): Do not
4980 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
4981
4982 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4983
4984 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
4985
4986 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4987
4988 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
4989
4990 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4991
4992 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
4993 defines for soft float abi.
4994
4995 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4996
4997 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
4998 (smart_bclri): Likewise.
4999 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
5000 (fast_bclri): Likewise.
5001 (fast_cmpnesi_i): Likewise.
5002 (*fast_cmpltsi_i): Likewise.
5003 (*fast_cmpgeusi_i): Likewise.
5004
5005 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5006
5007 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
5008 flag_fp_int_builtin_inexact || !flag_trapping_math.
5009 (<frm_pattern><mode>2): Likewise.
5010
5011 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
5012
5013 * config/s390/s390.cc (s390_register_info): Check call_used_regs
5014 instead of hard-coding the register numbers for call saved
5015 registers.
5016 (s390_optimize_register_info): Likewise.
5017
5018 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
5019
5020 * doc/gm2.texi (Overview): Fix @node markers.
5021 (Using): Likewise. Remove subsections that were moved to Overview
5022 from the menu and move others around.
5023
5024 2023-01-09 Richard Biener <rguenther@suse.de>
5025
5026 PR middle-end/108209
5027 * genmatch.cc (commutative_op): Fix return value for
5028 user-id with non-commutative first replacement.
5029
5030 2023-01-09 Jakub Jelinek <jakub@redhat.com>
5031
5032 PR target/107453
5033 * calls.cc (expand_call): For calls with
5034 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
5035 Formatting fix.
5036
5037 2023-01-09 Richard Biener <rguenther@suse.de>
5038
5039 PR middle-end/69482
5040 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
5041 qualified accesses also force objects to memory.
5042
5043 2023-01-09 Martin Liska <mliska@suse.cz>
5044
5045 PR lto/108330
5046 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
5047 NULL (deleleted value) to a hash_set.
5048
5049 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5050
5051 * config/xtensa/xtensa.md (*splice_bits):
5052 New insn_and_split pattern.
5053
5054 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5055
5056 * config/xtensa/xtensa.cc
5057 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
5058 New helper functions.
5059 (xtensa_set_return_address, xtensa_output_mi_thunk):
5060 Change to use the helper function.
5061 (xtensa_emit_adjust_stack_ptr): Ditto.
5062 And also change to try reusing the content of scratch register
5063 A9 if the register is not modified in the function body.
5064
5065 2023-01-07 LIU Hao <lh_mouse@126.com>
5066
5067 PR middle-end/108300
5068 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
5069 before <windows.h>.
5070 * diagnostic-color.cc: Likewise.
5071 * plugin.cc: Likewise.
5072 * prefix.cc: Likewise.
5073
5074 2023-01-06 Joseph Myers <joseph@codesourcery.com>
5075
5076 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
5077 for handling real integer types.
5078
5079 2023-01-06 Tamar Christina <tamar.christina@arm.com>
5080
5081 Revert:
5082 2022-12-12 Tamar Christina <tamar.christina@arm.com>
5083
5084 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
5085 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
5086 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
5087 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
5088 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
5089 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
5090 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
5091 (aarch64_simd_dupv2hf): New.
5092 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
5093 Add E_V2HFmode.
5094 * config/aarch64/iterators.md (VHSDF_P): New.
5095 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
5096 Vel, q, vp): Add V2HF.
5097 * config/arm/types.md (neon_fp_reduc_add_h): New.
5098
5099 2023-01-06 Martin Liska <mliska@suse.cz>
5100
5101 PR middle-end/107966
5102 * doc/options.texi: Fix Var documentation in internal manual.
5103
5104 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
5105
5106 Revert:
5107 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
5108
5109 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
5110 RTL expansion to allow condition (mask) to be shared/reused,
5111 by avoiding overwriting pseudos and adding REG_EQUAL notes.
5112
5113 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
5114
5115 * common.opt: Add -static-libgm2.
5116 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
5117 * doc/gm2.texi: Document static-libgm2.
5118 * gcc.cc (driver_handle_option): Allow static-libgm2.
5119
5120 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
5121
5122 * common/config/i386/i386-common.cc (processor_alias_table):
5123 Use CPU_ZNVER4 for znver4.
5124 * config/i386/i386.md: Add znver4.md.
5125 * config/i386/znver4.md: New.
5126
5127 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5128
5129 PR tree-optimization/108253
5130 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
5131 types.
5132
5133 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5134
5135 PR middle-end/108237
5136 * generic-match-head.cc: Include tree-pass.h.
5137 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
5138 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
5139 resp. PROP_gimple_lvec property set.
5140
5141 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5142
5143 PR sanitizer/108256
5144 * convert.cc (do_narrow): Punt for MULT_EXPR if original
5145 type doesn't wrap around and -fsanitize=signed-integer-overflow
5146 is on.
5147 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
5148
5149 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5150
5151 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
5152 * common/config/i386/i386-common.cc: Add Emeraldrapids.
5153
5154 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5155
5156 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
5157 for meteorlake.
5158
5159 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
5160
5161 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
5162 default constructor to initialize it.
5163 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
5164 for last and iterate to handle recursive calls. Delete leftover
5165 candidates at the end.
5166 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
5167 on local clones.
5168 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
5169 gc_candidate bit when a clone is used.
5170
5171 2023-01-03 Florian Weimer <fweimer@redhat.com>
5172
5173 Revert:
5174 2023-01-02 Florian Weimer <fweimer@redhat.com>
5175
5176 * dwarf2cfi.cc (init_return_column_size): Remove.
5177 (init_one_dwarf_reg_size): Adjust.
5178 (generate_dwarf_reg_sizes): New function. Extracted
5179 from expand_builtin_init_dwarf_reg_sizes.
5180 (expand_builtin_init_dwarf_reg_sizes): Call
5181 generate_dwarf_reg_sizes.
5182 * target.def (init_dwarf_reg_sizes_extra): Adjust
5183 hook signature.
5184 * config/msp430/msp430.cc
5185 (msp430_init_dwarf_reg_sizes_extra): Adjust.
5186 * config/rs6000/rs6000.cc
5187 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
5188 * doc/tm.texi: Update.
5189
5190 2023-01-03 Florian Weimer <fweimer@redhat.com>
5191
5192 Revert:
5193 2023-01-02 Florian Weimer <fweimer@redhat.com>
5194
5195 * debug.h (dwarf_reg_sizes_constant): Declare.
5196 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
5197
5198 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
5199
5200 PR tree-optimization/105043
5201 * doc/extend.texi (Object Size Checking): Split out into two
5202 subsections and mention _FORTIFY_SOURCE.
5203
5204 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
5205
5206 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
5207 RTL expansion to allow condition (mask) to be shared/reused,
5208 by avoiding overwriting pseudos and adding REG_EQUAL notes.
5209
5210 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
5211
5212 PR target/108229
5213 * config/i386/i386-features.cc
5214 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
5215 the gain/cost of converting a MEM operand.
5216
5217 2023-01-03 Jakub Jelinek <jakub@redhat.com>
5218
5219 PR middle-end/108264
5220 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
5221 from source which doesn't have scalar integral mode first convert
5222 it to outer_mode.
5223
5224 2023-01-03 Jakub Jelinek <jakub@redhat.com>
5225
5226 PR rtl-optimization/108263
5227 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
5228 asm goto to EXIT.
5229
5230 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
5231
5232 PR target/87832
5233 * config/i386/lujiazui.md (lujiazui_div): New automaton.
5234 (lua_div): New unit.
5235 (lua_idiv_qi): Correct unit in the reservation.
5236 (lua_idiv_qi_load): Ditto.
5237 (lua_idiv_hi): Ditto.
5238 (lua_idiv_hi_load): Ditto.
5239 (lua_idiv_si): Ditto.
5240 (lua_idiv_si_load): Ditto.
5241 (lua_idiv_di): Ditto.
5242 (lua_idiv_di_load): Ditto.
5243 (lua_fdiv_SF): Ditto.
5244 (lua_fdiv_SF_load): Ditto.
5245 (lua_fdiv_DF): Ditto.
5246 (lua_fdiv_DF_load): Ditto.
5247 (lua_fdiv_XF): Ditto.
5248 (lua_fdiv_XF_load): Ditto.
5249 (lua_ssediv_SF): Ditto.
5250 (lua_ssediv_load_SF): Ditto.
5251 (lua_ssediv_V4SF): Ditto.
5252 (lua_ssediv_load_V4SF): Ditto.
5253 (lua_ssediv_V8SF): Ditto.
5254 (lua_ssediv_load_V8SF): Ditto.
5255 (lua_ssediv_SD): Ditto.
5256 (lua_ssediv_load_SD): Ditto.
5257 (lua_ssediv_V2DF): Ditto.
5258 (lua_ssediv_load_V2DF): Ditto.
5259 (lua_ssediv_V4DF): Ditto.
5260 (lua_ssediv_load_V4DF): Ditto.
5261
5262 2023-01-02 Florian Weimer <fweimer@redhat.com>
5263
5264 * debug.h (dwarf_reg_sizes_constant): Declare.
5265 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
5266
5267 2023-01-02 Florian Weimer <fweimer@redhat.com>
5268
5269 * dwarf2cfi.cc (init_return_column_size): Remove.
5270 (init_one_dwarf_reg_size): Adjust.
5271 (generate_dwarf_reg_sizes): New function. Extracted
5272 from expand_builtin_init_dwarf_reg_sizes.
5273 (expand_builtin_init_dwarf_reg_sizes): Call
5274 generate_dwarf_reg_sizes.
5275 * target.def (init_dwarf_reg_sizes_extra): Adjust
5276 hook signature.
5277 * config/msp430/msp430.cc
5278 (msp430_init_dwarf_reg_sizes_extra): Adjust.
5279 * config/rs6000/rs6000.cc
5280 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
5281 * doc/tm.texi: Update.
5282
5283 2023-01-02 Jakub Jelinek <jakub@redhat.com>
5284
5285 * gcc.cc (process_command): Update copyright notice dates.
5286 * gcov-dump.cc (print_version): Ditto.
5287 * gcov.cc (print_version): Ditto.
5288 * gcov-tool.cc (print_version): Ditto.
5289 * gengtype.cc (create_file): Ditto.
5290 * doc/cpp.texi: Bump @copying's copyright year.
5291 * doc/cppinternals.texi: Ditto.
5292 * doc/gcc.texi: Ditto.
5293 * doc/gccint.texi: Ditto.
5294 * doc/gcov.texi: Ditto.
5295 * doc/install.texi: Ditto.
5296 * doc/invoke.texi: Ditto.
5297
5298 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
5299 Uroš Bizjak <ubizjak@gmail.com>
5300
5301 * config/i386/i386.md (extendditi2): New define_insn.
5302 (define_split): Use DWIH mode iterator to treat new extendditi2
5303 identically to existing extendsidi2_1.
5304 (define_peephole2): Likewise.
5305 (define_peephole2): Likewise.
5306 (define_Split): Likewise.
5307
5308 \f
5309 Copyright (C) 2023 Free Software Foundation, Inc.
5310
5311 Copying and distribution of this file, with or without modification,
5312 are permitted in any medium without royalty provided the copyright
5313 notice and this notice are preserved.