]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2022-10-31 Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
2
3 * btfout.cc (btf_calc_num_vbytes): Compute enumeration size depending of
4 enumerator type btf_enum{,64}.
5 (btf_asm_type): Update btf_kflag according to enumeration type sign
6 using dtd_enum_unsigned field for both: BTF_KIND_ENUM{,64}.
7 (btf_asm_enum_const): New argument to represent the size of
8 the BTF enum type, writing the enumerator constant value for
9 32 bits, if it's 64 bits then explicitly writes lower 32-bits
10 value and higher 32-bits value.
11 (output_asm_btf_enum_list): Add enumeration size argument.
12 * ctfc.cc (ctf_add_enum): New argument to represent CTF enum
13 basic information.
14 (ctf_add_generic): Use of ei_{name. size, unsigned} to build the
15 dtd structure containing enumeration information.
16 (ctf_add_enumerator): Update comment mention support for BTF
17 enumeration in 64-bits.
18 * dwarf2ctf.cc (gen_ctf_enumeration_type): Extract signedness
19 for enumeration type and use it in ctf_add_enum.
20 * ctfc.h (ctf_dmdef): Update dmd_value to HOST_WIDE_INT to allow
21 use 32/64 bits enumerators.
22 information.
23 (ctf_dtdef): New field to describe enum signedness.
24
25 2022-10-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
26
27 * config/riscv/riscv-vector-builtins-bases.cc: Change constexpr back to CONSTEXPR.
28 * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Ditto.
29 * config/riscv/riscv-vector-builtins.cc (struct registered_function_hasher): Ditto.
30 * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): Ditto.
31
32 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
33
34 * config/gcn/gcn-valu.md (fminmaxop): New iterator.
35 (<fexpander><mode>3): New define_expand.
36 (<fexpander><mode>3<exec>): Likewise.
37 (reduc_<fexpander>_scal_<mode>): Likewise.
38 * config/gcn/gcn.md (fexpander): New attribute.
39
40 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
41
42 * config/gcn/gcn-valu.md (V64_SI): Delete iterator.
43 (V64_DI): Likewise.
44 (V64_1REG): Likewise.
45 (V64_INT_1REG): Likewise.
46 (V64_2REG): Likewise.
47 (V64_ALL): Likewise.
48 (V64_FP): Likewise.
49 (reduc_<reduc_op>_scal_<mode>): Use V_ALL. Use gen_vec_extract.
50 (fold_left_plus_<mode>): Use V_FP.
51 (*<reduc_op>_dpp_shr_<mode>): Use V_1REG.
52 (*<reduc_op>_dpp_shr_<mode>): Use V_DI.
53 (*plus_carry_dpp_shr_<mode>): Use V_INT_1REG.
54 (*plus_carry_in_dpp_shr_<mode>): Use V_SI.
55 (*plus_carry_dpp_shr_<mode>): Use V_DI.
56 (mov_from_lane63_<mode>): Delete.
57 (mov_from_lane63_<mode>): Delete.
58 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Support partial vectors.
59 * config/gcn/gcn.md (unspec): Remove UNSPEC_MOV_FROM_LANE63.
60
61 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
62
63 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
64 Set base_type as ARG_UNUSED.
65
66 2022-10-31 Jakub Jelinek <jakub@redhat.com>
67
68 * builtin-types.def (BT_COMPLEX_FLOAT16, BT_COMPLEX_FLOAT32,
69 BT_COMPLEX_FLOAT64, BT_COMPLEX_FLOAT128, BT_COMPLEX_FLOAT32X,
70 BT_COMPLEX_FLOAT64X, BT_COMPLEX_FLOAT128X,
71 BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
72 BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
73 BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
74 BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
75 BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
76 BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
77 BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X,
78 BT_FN_FLOAT16_COMPLEX_FLOAT16, BT_FN_FLOAT32_COMPLEX_FLOAT32,
79 BT_FN_FLOAT64_COMPLEX_FLOAT64, BT_FN_FLOAT128_COMPLEX_FLOAT128,
80 BT_FN_FLOAT32X_COMPLEX_FLOAT32X, BT_FN_FLOAT64X_COMPLEX_FLOAT64X,
81 BT_FN_FLOAT128X_COMPLEX_FLOAT128X,
82 BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
83 BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
84 BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
85 BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
86 BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
87 BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
88 BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X): New.
89 * builtins.def (CABS_TYPE, CACOSH_TYPE, CARG_TYPE, CASINH_TYPE,
90 CPOW_TYPE, CPROJ_TYPE): Define and undefine later.
91 (BUILT_IN_CABS, BUILT_IN_CACOSH, BUILT_IN_CACOS, BUILT_IN_CARG,
92 BUILT_IN_CASINH, BUILT_IN_CASIN, BUILT_IN_CATANH, BUILT_IN_CATAN,
93 BUILT_IN_CCOSH, BUILT_IN_CCOS, BUILT_IN_CEXP, BUILT_IN_CLOG,
94 BUILT_IN_CPOW, BUILT_IN_CPROJ, BUILT_IN_CSINH, BUILT_IN_CSIN,
95 BUILT_IN_CSQRT, BUILT_IN_CTANH, BUILT_IN_CTAN): Add
96 DEF_EXT_LIB_FLOATN_NX_BUILTINS.
97 * fold-const-call.cc (fold_const_call_sc, fold_const_call_cc,
98 fold_const_call_ccc): Add various CASE_CFN_*_FN: cases when
99 CASE_CFN_* is present.
100 * gimple-ssa-backprop.cc (backprop::process_builtin_call_use):
101 Likewise.
102 * builtins.cc (expand_builtin, fold_builtin_1): Likewise.
103 * fold-const.cc (negate_mathfn_p, tree_expr_finite_p,
104 tree_expr_maybe_signaling_nan_p, tree_expr_maybe_nan_p,
105 tree_expr_maybe_real_minus_zero_p, tree_call_nonnegative_warnv_p):
106 Likewise.
107
108 2022-10-31 Jakub Jelinek <jakub@redhat.com>
109
110 * builtin-types.def (BT_FN_BFLOAT16_BFLOAT16_BFLOAT16): New.
111 * builtins.def (BUILT_IN_NEXTAFTERF16B): New builtin.
112 * fold-const-call.cc (fold_const_call_sss): Handle
113 CFN_BUILT_IN_NEXTAFTERF16B.
114
115 2022-10-31 Jakub Jelinek <jakub@redhat.com>
116
117 * builtin-types.def (BT_FLOAT16_PTR, BT_FLOAT32_PTR, BT_FLOAT64_PTR,
118 BT_FLOAT128_PTR, BT_FLOAT32X_PTR, BT_FLOAT64X_PTR, BT_FLOAT128X_PTR):
119 New DEF_PRIMITIVE_TYPE.
120 (BT_FN_INT_FLOAT16, BT_FN_INT_FLOAT32, BT_FN_INT_FLOAT64,
121 BT_FN_INT_FLOAT128, BT_FN_INT_FLOAT32X, BT_FN_INT_FLOAT64X,
122 BT_FN_INT_FLOAT128X, BT_FN_LONG_FLOAT16, BT_FN_LONG_FLOAT32,
123 BT_FN_LONG_FLOAT64, BT_FN_LONG_FLOAT128, BT_FN_LONG_FLOAT32X,
124 BT_FN_LONG_FLOAT64X, BT_FN_LONG_FLOAT128X, BT_FN_LONGLONG_FLOAT16,
125 BT_FN_LONGLONG_FLOAT32, BT_FN_LONGLONG_FLOAT64,
126 BT_FN_LONGLONG_FLOAT128, BT_FN_LONGLONG_FLOAT32X,
127 BT_FN_LONGLONG_FLOAT64X, BT_FN_LONGLONG_FLOAT128X): New
128 DEF_FUNCTION_TYPE_1.
129 (BT_FN_FLOAT16_FLOAT16_FLOAT16PTR, BT_FN_FLOAT32_FLOAT32_FLOAT32PTR,
130 BT_FN_FLOAT64_FLOAT64_FLOAT64PTR, BT_FN_FLOAT128_FLOAT128_FLOAT128PTR,
131 BT_FN_FLOAT32X_FLOAT32X_FLOAT32XPTR,
132 BT_FN_FLOAT64X_FLOAT64X_FLOAT64XPTR,
133 BT_FN_FLOAT128X_FLOAT128X_FLOAT128XPTR, BT_FN_FLOAT16_FLOAT16_INT,
134 BT_FN_FLOAT32_FLOAT32_INT, BT_FN_FLOAT64_FLOAT64_INT,
135 BT_FN_FLOAT128_FLOAT128_INT, BT_FN_FLOAT32X_FLOAT32X_INT,
136 BT_FN_FLOAT64X_FLOAT64X_INT, BT_FN_FLOAT128X_FLOAT128X_INT,
137 BT_FN_FLOAT16_FLOAT16_INTPTR, BT_FN_FLOAT32_FLOAT32_INTPTR,
138 BT_FN_FLOAT64_FLOAT64_INTPTR, BT_FN_FLOAT128_FLOAT128_INTPTR,
139 BT_FN_FLOAT32X_FLOAT32X_INTPTR, BT_FN_FLOAT64X_FLOAT64X_INTPTR,
140 BT_FN_FLOAT128X_FLOAT128X_INTPTR, BT_FN_FLOAT16_FLOAT16_LONG,
141 BT_FN_FLOAT32_FLOAT32_LONG, BT_FN_FLOAT64_FLOAT64_LONG,
142 BT_FN_FLOAT128_FLOAT128_LONG, BT_FN_FLOAT32X_FLOAT32X_LONG,
143 BT_FN_FLOAT64X_FLOAT64X_LONG, BT_FN_FLOAT128X_FLOAT128X_LONG): New
144 DEF_FUNCTION_TYPE_2.
145 (BT_FN_FLOAT16_FLOAT16_FLOAT16_INTPTR,
146 BT_FN_FLOAT32_FLOAT32_FLOAT32_INTPTR,
147 BT_FN_FLOAT64_FLOAT64_FLOAT64_INTPTR,
148 BT_FN_FLOAT128_FLOAT128_FLOAT128_INTPTR,
149 BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_INTPTR,
150 BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_INTPTR,
151 BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_INTPTR): New DEF_FUNCTION_TYPE_3.
152 * builtins.def (ACOSH_TYPE, ATAN2_TYPE, ATANH_TYPE, COSH_TYPE,
153 FDIM_TYPE, HUGE_VAL_TYPE, HYPOT_TYPE, ILOGB_TYPE, LDEXP_TYPE,
154 LGAMMA_TYPE, LLRINT_TYPE, LOG10_TYPE, LRINT_TYPE, MODF_TYPE,
155 NEXTAFTER_TYPE, REMQUO_TYPE, SCALBLN_TYPE, SCALBN_TYPE, SINH_TYPE):
156 Define and undefine later.
157 (FMIN_TYPE, SQRT_TYPE): Undefine at a later line.
158 (INF_TYPE): Define at a later line.
159 (BUILT_IN_ACOSH, BUILT_IN_ACOS, BUILT_IN_ASINH, BUILT_IN_ASIN,
160 BUILT_IN_ATAN2, BUILT_IN_ATANH, BUILT_IN_ATAN, BUILT_IN_CBRT,
161 BUILT_IN_COSH, BUILT_IN_COS, BUILT_IN_ERFC, BUILT_IN_ERF,
162 BUILT_IN_EXP2, BUILT_IN_EXP, BUILT_IN_EXPM1, BUILT_IN_FDIM,
163 BUILT_IN_FMOD, BUILT_IN_FREXP, BUILT_IN_HYPOT, BUILT_IN_ILOGB,
164 BUILT_IN_LDEXP, BUILT_IN_LGAMMA, BUILT_IN_LLRINT, BUILT_IN_LLROUND,
165 BUILT_IN_LOG10, BUILT_IN_LOG1P, BUILT_IN_LOG2, BUILT_IN_LOGB,
166 BUILT_IN_LOG, BUILT_IN_LRINT, BUILT_IN_LROUND, BUILT_IN_MODF,
167 BUILT_IN_NEXTAFTER, BUILT_IN_POW, BUILT_IN_REMAINDER, BUILT_IN_REMQUO,
168 BUILT_IN_SCALBLN, BUILT_IN_SCALBN, BUILT_IN_SINH, BUILT_IN_SIN,
169 BUILT_IN_TANH, BUILT_IN_TAN, BUILT_IN_TGAMMA): Add
170 DEF_EXT_LIB_FLOATN_NX_BUILTINS.
171 (BUILT_IN_HUGE_VAL): Use HUGE_VAL_TYPE instead of INF_TYPE in
172 DEF_GCC_FLOATN_NX_BUILTINS.
173 * fold-const-call.cc (fold_const_call_ss): Add various CASE_CFN_*_FN:
174 cases when CASE_CFN_* is present.
175 (fold_const_call_sss): Likewise.
176 * builtins.cc (mathfn_built_in_2): Use CASE_MATHFN_FLOATN instead of
177 CASE_MATHFN for various builtins in SEQ_OF_CASE_MATHFN macro.
178 (builtin_with_linkage_p): Add CASE_FLT_FN_FLOATN_NX for various
179 builtins next to CASE_FLT_FN.
180 * fold-const.cc (tree_call_nonnegative_warnv_p): Add CASE_CFN_*_FN:
181 next to CASE_CFN_*: for various builtins.
182 * tree-call-cdce.cc (can_test_argument_range): Add
183 CASE_FLT_FN_FLOATN_NX next to CASE_FLT_FN for various builtins.
184 (edom_only_function): Likewise.
185
186 2022-10-31 konglin1 <lingling.kong@intel.com>
187
188 * common/config/i386/i386-common.cc
189 (OPTION_MASK_ISA2_AVXNECONVERT_SET,
190 OPTION_MASK_ISA2_AVXNECONVERT_UNSET): New.
191 (ix86_handle_option): Handle -mavxneconvert, unset
192 avxneconvert when avx2 is disabled.
193 * common/config/i386/i386-cpuinfo.h (processor_types): Add
194 FEATURE_AVXNECONVERT.
195 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
196 avxneconvert.
197 * common/config/i386/cpuinfo.h (get_available_features):
198 Detect avxneconvert.
199 * config.gcc: Add avxneconvertintrin.h
200 * config/i386/avxneconvertintrin.h: New.
201 * config/i386/avx512bf16vlintrin.h (_mm256_cvtneps_pbh):
202 Unified builtin with avxneconvert.
203 (_mm_cvtneps_pbh): Ditto.
204 * config/i386/cpuid.h (bit_AVXNECONVERT): New.
205 * config/i386/i386-builtin-types.def: Add
206 DEF_POINTER_TYPE (PCV8HF, V8HF, CONST),
207 DEF_POINTER_TYPE (PCV8BF, V8BF, CONST),
208 DEF_POINTER_TYPE (PCV16HF, V16HF, CONST),
209 DEF_POINTER_TYPE (PCV16BF, V16BF, CONST),
210 DEF_FUNCTION_TYPE (V4SF, PCBFLOAT16),
211 DEF_FUNCTION_TYPE (V4SF, PCFLOAT16),
212 DEF_FUNCTION_TYPE (V8SF, PCBFLOAT16),
213 DEF_FUNCTION_TYPE (V8SF, PCFLOAT16),
214 DEF_FUNCTION_TYPE (V4SF, PCV8BF),
215 DEF_FUNCTION_TYPE (V4SF, PCV8HF),
216 DEF_FUNCTION_TYPE (V8SF, PCV16HF),
217 DEF_FUNCTION_TYPE (V8SF, PCV16BF),
218 * config/i386/i386-builtin.def: Add new builtins.
219 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
220 __AVXNECONVERT__.
221 * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
222 Handle V4SF_FTYPE_PCBFLOAT16,V8SF_FTYPE_PCBFLOAT16, V4SF_FTYPE_PCFLOAT16,
223 V8SF_FTYPE_PCFLOAT16,V4SF_FTYPE_PCV8BF,
224 V4SF_FTYPE_PCV8HF,V8SF_FTYPE_PCV16BF,V8SF_FTYPE_PCV16HF.
225 * config/i386/i386-isa.def : Add DEF_PTA(AVXNECONVERT) New.
226 * config/i386/i386-options.cc (isa2_opts): Add -mavxneconvert.
227 (ix86_valid_target_attribute_inner_p): Handle avxneconvert.
228 * config/i386/i386.md: Add attr avx512bf16vl and avxneconvert.
229 * config/i386/i386.opt: Add option -mavxneconvert.
230 * config/i386/immintrin.h: Inculde avxneconvertintrin.h.
231 * config/i386/sse.md (vbcstnebf162ps_<mode>): New define_insn.
232 (vbcstnesh2ps_<mode>): Ditto.
233 (vcvtnee<bf16_ph>2ps_<mode>):Ditto.
234 (vcvtneo<bf16_ph>2ps_<mode>):Ditto.
235 (vcvtneps2bf16_v4sf): Ditto.
236 (*vcvtneps2bf16_v4sf): Ditto.
237 (vcvtneps2bf16_v8sf): Ditto.
238 * doc/invoke.texi: Document -mavxneconvert.
239 * doc/extend.texi: Document avxneconvert.
240 * doc/sourcebuild.texi: Document target avxneconvert.
241
242 2022-10-31 konglin1 <lingling.kong@intel.com>
243
244 * config/i386/avx512bf16intrin.h (__attribute__): Change short to bf16.
245 (_mm_cvtsbh_ss): Ditto.
246 (_mm512_cvtne2ps_pbh): Ditto.
247 (_mm512_mask_cvtne2ps_pbh): Ditto.
248 (_mm512_maskz_cvtne2ps_pbh): Ditto.
249 * config/i386/avx512bf16vlintrin.h (__attribute__): Ditto.
250 (_mm256_cvtne2ps_pbh): Ditto.
251 (_mm256_mask_cvtne2ps_pbh): Ditto.
252 (_mm256_maskz_cvtne2ps_pbh): Ditto.
253 (_mm_cvtne2ps_pbh): Ditto.
254 (_mm_mask_cvtne2ps_pbh): Ditto.
255 (_mm_maskz_cvtne2ps_pbh): Ditto.
256 (_mm_cvtness_sbh): Ditto.
257 * config/i386/i386-builtin-types.def (V8BF): Add new
258 DEF_VECTOR_TYPE for BFmode.
259 (V16BF): Ditto.
260 (V32BF): Ditto.
261 * config/i386/i386-builtin.def (BDESC): Fixed builtins.
262 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Changed
263 avx512bf16 ix86_builtin_func_type included HI to BF.
264 * config/i386/immintrin.h: Add SSE2 depend for avx512bf16.
265 * config/i386/sse.md (TARGET_AVX512VL): Changed HI vector to BF
266 vector.
267 (avx512f_cvtneps2bf16_v4sf): New define_expand.
268 (*avx512f_cvtneps2bf16_v4sf): New define_insn.
269 (avx512f_cvtneps2bf16_v4sf_maskz):Ditto.
270 (avx512f_cvtneps2bf16_v4sf_mask): Ditto.
271 (avx512f_cvtneps2bf16_v4sf_mask_1): Ditto.
272
273 2022-10-31 liuhongt <hongtao.liu@intel.com>
274
275 PR target/107261
276 * config/i386/i386-modes.def (VECTOR_MODE): Support V2BFmode.
277 * config/i386/i386.cc (classify_argument): Handle V4BFmode and
278 V2BFmode.
279 (ix86_convert_const_vector_to_integer): Ditto.
280 * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Remove
281 V2BFmode.
282 (VALID_SSE2_REG_MODE): Add V4BFmode and V2BFmode.
283 (VALID_MMX_REG_MODE): Add V4BFmode.
284 * config/i386/i386.md (mode): Add V4BF and V2BF.
285 (MODE_SIZE): Ditto.
286 * config/i386/mmx.md (MMXMODE) Add V4BF.
287 (V_32): Add V2BF.
288 (V_16_32_64): Add V4BF and V2BF.
289 (mmxinsnmode): Add V4BF and V2BF.
290 (*mov<mode>_internal): Hanlde V4BFmode and V2BFmode.
291
292 2022-10-29 Eric Botcazou <ebotcazou@adacore.com>
293
294 * configure.ac (sjlj-exceptions): Restore dropped line.
295 * configure: Regenerate.
296
297 2022-10-29 Eric Botcazou <ebotcazou@adacore.com>
298
299 * alias.cc (init_alias_analysis): Do not record sets to the hard
300 frame pointer if the frame pointer has not been eliminated.
301
302 2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org>
303
304 * config/darwin-d.cc (TARGET_D_MINFO_START_NAME): Rename to ...
305 (TARGET_D_MINFO_SECTION_START): ...this.
306 (TARGET_D_MINFO_END_NAME): Rename to ...
307 (TARGET_D_MINFO_SECTION_END): ... this.
308 * config/elfos.h (TARGET_D_MINFO_SECTION): Remove.
309 (TARGET_D_MINFO_START_NAME): Remove.
310 (TARGET_D_MINFO_END_NAME): Remove.
311 * config/i386/cygwin-d.cc (TARGET_D_MINFO_SECTION): Remove.
312 (TARGET_D_MINFO_START_NAME): Remove.
313 (TARGET_D_MINFO_END_NAME): Remove.
314 * config/i386/winnt-d.cc (TARGET_D_MINFO_SECTION): Remove.
315 (TARGET_D_MINFO_START_NAME): Remove.
316 (TARGET_D_MINFO_END_NAME): Remove.
317 * doc/tm.texi: Regenerate.
318 * doc/tm.texi.in (TARGET_D_MINFO_START_NAME): Rename to ...
319 (TARGET_D_MINFO_SECTION_START): ...this.
320 (TARGET_D_MINFO_END_NAME): Rename to ...
321 (TARGET_D_MINFO_SECTION_END): ...this.
322
323 2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org>
324
325 * config.gcc: Split out glibc-d.o into linux-d.o, kfreebsd-d.o,
326 kopensolaris-d.o, and gnu-d.o. Split out cygwin-d.o from winnt-d.o.
327 * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
328 * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
329 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
330 * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
331 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
332 * config/i386/t-cygming: Add cygwin-d.o.
333 * config/i386/winnt-d.cc (winnt_d_os_builtins): Only add
334 MinGW-specific version condition.
335 * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
336 * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
337 * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Remove.
338 * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
339 * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
340 * config/t-glibc: Remove glibc-d.o, add gnu-d.o, kfreebsd-d.o,
341 kopensolaris-d.o.
342 * config/t-linux: Add linux-d.o.
343 * config/glibc-d.cc: Remove file.
344 * config/gnu-d.cc: New file.
345 * config/i386/cygwin-d.cc: New file.
346 * config/kfreebsd-d.cc: New file.
347 * config/kopensolaris-d.cc: New file.
348 * config/linux-d.cc: New file.
349
350 2022-10-29 Jeff Law <jeffreyalaw@gmail.com>
351
352 * config/h8300/h8300.cc (pre_incdec_with_reg): Make reg argument
353 an unsigned int
354 * config/h8300/h8300-protos.h (pre_incdec_with_reg): Adjust prototype.
355
356 2022-10-28 Joseph Myers <joseph@codesourcery.com>
357
358 * config/aarch64/aarch64.cc (aarch64_setup_incoming_varargs):
359 Check TYPE_NO_NAMED_ARGS_STDARG_P.
360 * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Likewise.
361 * config/arc/arc.cc (arc_setup_incoming_varargs): Likewise.
362 * config/arm/arm.cc (arm_setup_incoming_varargs): Likewise.
363 * config/csky/csky.cc (csky_setup_incoming_varargs): Likewise.
364 * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs):
365 Likewise.
366 * config/fr30/fr30.cc (fr30_setup_incoming_varargs): Likewise.
367 * config/frv/frv.cc (frv_setup_incoming_varargs): Likewise.
368 * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Likewise.
369 * config/i386/i386.cc (ix86_setup_incoming_varargs): Likewise.
370 * config/ia64/ia64.cc (ia64_setup_incoming_varargs): Likewise.
371 * config/loongarch/loongarch.cc
372 (loongarch_setup_incoming_varargs): Likewise.
373 * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Likewise.
374 * config/mcore/mcore.cc (mcore_setup_incoming_varargs): Likewise.
375 * config/mips/mips.cc (mips_setup_incoming_varargs): Likewise.
376 * config/mmix/mmix.cc (mmix_setup_incoming_varargs): Likewise.
377 * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Likewise.
378 * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Likewise.
379 * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Likewise.
380 * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Likewise.
381 * config/sh/sh.cc (sh_setup_incoming_varargs): Likewise.
382 * config/visium/visium.cc (visium_setup_incoming_varargs):
383 Likewise.
384 * config/vms/vms-c.cc (vms_c_common_override_options): Do not set
385 flag_allow_parameterless_variadic_functions.
386 * doc/invoke.texi (-fallow-parameterless-variadic-functions): Do
387 not document option.
388 * function.cc (assign_parms): Call assign_parms_setup_varargs for
389 TYPE_NO_NAMED_ARGS_STDARG_P case.
390 * ginclude/stdarg.h [__STDC_VERSION__ > 201710L] (va_start): Make
391 variadic macro. Pass second argument of 0 to __builtin_va_start.
392 * target.def (setup_incoming_varargs): Update documentation.
393 * doc/tm.texi: Regenerate.
394 * tree-core.h (struct tree_type_common): Add
395 no_named_args_stdarg_p.
396 * tree-streamer-in.cc (unpack_ts_type_common_value_fields): Unpack
397 TYPE_NO_NAMED_ARGS_STDARG_P.
398 * tree-streamer-out.cc (pack_ts_type_common_value_fields): Pack
399 TYPE_NO_NAMED_ARGS_STDARG_P.
400 * tree.cc (type_cache_hasher::equal): Compare
401 TYPE_NO_NAMED_ARGS_STDARG_P.
402 (build_function_type): Add argument no_named_args_stdarg_p.
403 (build_function_type_list_1, build_function_type_array_1)
404 (reconstruct_complex_type): Update calls to build_function_type.
405 (stdarg_p, prototype_p): Return true for (...) functions.
406 (gimple_canonical_types_compatible_p): Compare
407 TYPE_NO_NAMED_ARGS_STDARG_P.
408 * tree.h (TYPE_NO_NAMED_ARGS_STDARG_P): New.
409 (build_function_type): Update prototype.
410
411 2022-10-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
412
413 PR tree-optimization/107346
414 * tree-vect-data-refs.cc (vect_check_gather_scatter): Reject offsets
415 that aren't multiples of BITS_PER_UNIT.
416
417 2022-10-28 Richard Biener <rguenther@suse.de>
418
419 PR tree-optimization/107407
420 * tree-ssa-dse.cc (dse_classify_store): Perform backedge
421 varying index check when collecting PHI uses rather than
422 after optimizing processing of the candidate defs.
423
424 2022-10-28 Richard Biener <rguenther@suse.de>
425
426 PR tree-optimization/107447
427 * tree-ssa-loop-im.cc (determine_max_movement): Do not
428 hoist returns-twice calls.
429
430 2022-10-28 Richard Biener <rguenther@suse.de>
431
432 PR tree-optimization/107435
433 * tree-vect-loop.cc (vectorizable_recurr): Convert initial
434 value to vector component type.
435
436 2022-10-28 Julian Brown <julian@codesourcery.com>
437 Thomas Schwinge <thomas@codesourcery.com>
438
439 PR middle-end/90115
440 * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not
441 privatization candidates.
442
443 2022-10-28 Martin Liska <mliska@suse.cz>
444
445 PR sanitizer/107298
446 * doc/invoke.texi: Document sanitizers can trigger warnings.
447
448 2022-10-28 Thomas Schwinge <thomas@codesourcery.com>
449
450 * doc/makefile.texi (Makefile Targets): Document
451 'distclean-stage[N]'.
452
453 2022-10-28 Aldy Hernandez <aldyh@redhat.com>
454
455 * value-range.cc (range_tests_floats): Use HONOR_INFINITIES.
456
457 2022-10-27 Eric Botcazou <ebotcazou@adacore.com>
458
459 * config/aarch64/aarch64.h (DONT_USE_BUILTIN_SETJMP): Delete.
460
461 2022-10-27 H.J. Lu <hjl.tools@gmail.com>
462
463 PR target/107172
464 * config/i386/i386.md (UNSPEC_CC_NE): New.
465 Replace ne:CCC/ne:CCO with UNSPEC_CC_NE in neg patterns.
466
467 2022-10-27 Andrew Pinski <apinski@marvell.com>
468
469 * tree-ssa-phiopt.cc: Include tree-ssa-dce.h
470 (replace_phi_edge_with_variable):
471 New argument, dce_ssa_names. Call simple_dce_from_worklist.
472 (match_simplify_replacement): If we inserted a sequence,
473 mark the lhs of the new sequence to be possible dce.
474 Always move the statement and mark the lhs (if it is a name)
475 as possible to remove.
476
477 2022-10-27 Richard Sandiford <richard.sandiford@arm.com>
478
479 * config/aarch64/aarch64-protos.h: Replace constexpr with
480 CONSTEXPR.
481 * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
482 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
483 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
484 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
485 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
486 * config/aarch64/aarch64.cc: Likewise.
487 * config/aarch64/driver-aarch64.cc: Likewise
488
489 2022-10-27 Aldy Hernandez <aldyh@redhat.com>
490
491 PR tree-optimization/107394
492 * value-range-storage.cc (frange_storage_slot::get_frange): Use
493 frange constructor.
494
495 2022-10-27 Thomas Schwinge <thomas@codesourcery.com>
496
497 * optc-save-gen.awk: Clarify 'Init' option property usage for
498 streaming optimization.
499
500 2022-10-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
501 Yvan ROUX <yvan.roux@foss.st.com>
502
503 * ira.cc: Resize array after reg number increased.
504
505 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
506 Sinan Lin <sinan@isrc.iscas.ac.cn>
507
508 * config/riscv/constraints.md (TARGET_ZFINX ? GR_REGS): Set GPRS
509 use while Zfinx is enable.
510 * config/riscv/riscv.cc (riscv_hard_regno_mode_ok): Limit odd
511 registers use when Zdinx enable in RV32 cases.
512 (riscv_option_override): New target enable MASK_FDIV.
513 (riscv_libgcc_floating_mode_supported_p): New error info when
514 use incompatible arch&abi.
515 (riscv_excess_precision): New target enable FLOAT16.
516
517 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
518
519 * config/riscv/iterators.md (TARGET_ZFINX):New target.
520 (TARGET_ZDINX): Ditto.
521 (TARGET_ZHINX): Ditto.
522 * config/riscv/riscv-builtins.cc (AVAIL): Ditto.
523 (riscv_atomic_assign_expand_fenv): Ditto.
524 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Ditto.
525 * config/riscv/riscv.md: Ditto.
526
527 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
528 Sinan Lin <sinan@isrc.iscas.ac.cn>
529
530 * common/config/riscv/riscv-common.cc: New extensions.
531 * config/riscv/arch-canonicalize: New imply relations.
532 * config/riscv/riscv-opts.h (MASK_ZFINX): New mask.
533 (MASK_ZDINX): Ditto.
534 (MASK_ZHINX): Ditto.
535 (MASK_ZHINXMIN): Ditto.
536 (TARGET_ZFINX): New target.
537 (TARGET_ZDINX): Ditto.
538 (TARGET_ZHINX): Ditto.
539 (TARGET_ZHINXMIN): Ditto.
540 * config/riscv/riscv.opt: New target variable.
541
542 2022-10-26 David Faust <david.faust@oracle.com>
543
544 * config/bpf/bpf.cc: Support __builtin_preserve_field_info.
545 (enum bpf_builtins): Add new builtin.
546 (bpf_init_builtins): Likewise.
547 (bpf_core_field_info): New function.
548 (bpf_expand_builtin): Accomodate new builtin. Refactor adding new
549 relocation to...
550 (maybe_make_core_relo): ... here. New function.
551 (bpf_resolve_overloaded_builtin): Accomodate new builtin.
552 (bpf_core_newdecl): Likewise.
553 (bpf_core_walk): Likewise.
554 (bpf_core_is_maybe_aggregate_access): Improve logic.
555 (struct core_walk_data): New.
556 * config/bpf/coreout.cc (bpf_core_reloc_add): Allow adding different
557 relocation kinds.
558 * config/bpf/coreout.h: Analogous change.
559 * doc/extend.texi: Document BPF __builtin_preserve_field_info.
560
561 2022-10-26 Marek Polacek <polacek@redhat.com>
562
563 PR c++/106393
564 * doc/invoke.texi: Document -Wdangling-reference.
565
566 2022-10-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
567
568 * config/xtensa/xtensa.md (movdi):
569 Copy operands[0...1] to ops[0...3] and then use the latter before
570 calling xtensa_split_DI_reg_imm() and emitting insns.
571
572 2022-10-26 Alexander Monakov <amonakov@ispras.ru>
573
574 PR other/107353
575 * ipa-visibility.cc (function_and_variable_visibility):
576 Conditionally upgrade TLS model instead of asserting.
577
578 2022-10-26 Andrew MacLeod <amacleod@redhat.com>
579
580 * gimple-range-fold.cc (fold_using_range::fold_stmt): Check if
581 stmt is non-negative and adjust the range.
582
583 2022-10-26 Martin Liska <mliska@suse.cz>
584
585 * common/config/i386/cpuinfo.h (has_cpu_feature): Add comment.
586 (reset_cpu_feature): New.
587 (get_zhaoxin_cpu): Use reset_cpu_feature.
588
589 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
590
591 * config/riscv/riscv.cc (riscv_expand_epilogue): Fix statement.
592
593 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
594
595 PR target/107357
596 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Set to minimum size.
597 (ADJUST_NUNITS): Adjust according to -march.
598 (ADJUST_BYTESIZE): Ditto.
599 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p):
600 Remove.
601 (riscv_v_ext_vector_mode_p): Change function implementation.
602 * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher):
603 Change to riscv_v_ext_vector_mode_p.
604 (register_builtin_type): Ditto.
605 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): Change to enabled
606 modes.
607 (ENTRY): Ditto.
608 (riscv_v_ext_enabled_vector_mode_p): Remove.
609 (riscv_v_adjust_nunits): New function.
610 (riscv_vector_mode_supported_p): Use riscv_v_ext_vector_mode_p instead.
611 * config/riscv/riscv.h (riscv_v_adjust_nunits): New function.
612
613 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
614
615 * config.gcc (riscv*): Add riscv-v.o to extra_objs.
616 * config/riscv/constraints.md (vu): New constraint.
617 (vi): Ditto.
618 (Wc0): Ditto.
619 (Wc1): Ditto.
620 * config/riscv/predicates.md (vector_length_operand): New.
621 (reg_or_mem_operand): Ditto.
622 (vector_move_operand): Ditto.
623 (vector_mask_operand): Ditto.
624 (vector_merge_operand): Ditto.
625 * config/riscv/riscv-protos.h (riscv_regmode_natural_size) New.
626 (riscv_vector::const_vec_all_same_in_range_p): Ditto.
627 (riscv_vector::legitimize_move): Ditto.
628 (tail_policy): Ditto.
629 (mask_policy): Ditto.
630 * config/riscv/riscv-v.cc: New.
631 * config/riscv/riscv-vector-builtins-bases.cc
632 (vsetvl::expand): Refactor how LMUL encoding.
633 * config/riscv/riscv.cc (riscv_print_operand): Update how LMUL
634 print and mask operand print.
635 (riscv_regmode_natural_size): New.
636 * config/riscv/riscv.h (REGMODE_NATURAL_SIZE): New.
637 * config/riscv/riscv.md (mode): Add vector modes.
638 * config/riscv/t-riscv (riscv-v.o) New.
639 * config/riscv/vector-iterators.md: New.
640 * config/riscv/vector.md (vundefined<mode>): New.
641 (mov<mode>): New.
642 (*mov<mode>): New.
643 (@vsetvl<mode>_no_side_effects): New.
644 (@pred_mov<mode>): New.
645
646 2022-10-26 Monk Chiang <monk.chiang@sifive.com>
647
648 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
649 Add svinval and svnapot extension.
650 (riscv_ext_flag_table): Ditto.
651 * config/riscv/riscv-opts.h (MASK_SVINVAL): New.
652 (MASK_SVNAPOT): Ditto.
653 (TARGET_SVINVAL): Ditto.
654 (TARGET_SVNAPOT): Ditto.
655 * config/riscv/riscv.opt (riscv_sv_subext): New.
656
657 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
658
659 * config/riscv/riscv-modes.def: Adjust table indentation in commnet.
660
661 2022-10-26 Martin Liska <mliska@suse.cz>
662
663 * configure: Regenerate.
664
665 2022-10-26 Aldy Hernandez <aldyh@redhat.com>
666
667 * value-range.cc (frange::set): Use HONOR_*.
668 (frange::verify_range): Same.
669 * value-range.h (frange_val_min): Same.
670 (frange_val_max): Same.
671
672 2022-10-26 Jiufu Guo <guojiufu@linux.ibm.com>
673
674 PR target/106460
675 * config/rs6000/rs6000.cc (rs6000_cannot_force_const_mem): Return true
676 for HIGH code rtx.
677
678 2022-10-26 Kito Cheng <kito.cheng@sifive.com>
679
680 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
681 Add `h`.
682 (riscv_supported_std_ext): Ditto.
683 (multi_letter_subset_rank): Remove `h`.
684 (riscv_subset_list::parse_std_ext): Handle `h` as single letter
685 extension.
686 (riscv_subset_list::parse): Ditto.
687
688 2022-10-25 Eugene Rozenfeld <erozen@microsoft.com>
689
690 * auto-profile.cc (get_combined_location): Include discriminator in the
691 returned combined location.
692 (read_function_instance): Read discriminators from profiles.
693
694 2022-10-25 H.J. Lu <hjl.tools@gmail.com>
695
696 PR target/107304
697 * expr.cc (get_inner_reference): Always use TYPE_MODE for vector
698 field with vector raw mode.
699
700 2022-10-25 Segher Boessenkool <segher@kernel.crashing.org>
701
702 * config/rs6000/rs6000.md (CCEITHER): Delete.
703 (CCANY): New.
704 (un): Delete.
705 (isel_<un>signed_<GPR:mode>): Rename to...
706 (isel_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
707 (*isel_reversed_<un>signed_<GPR:mode>): Rename to...
708 (*isel_reversed_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
709 (setbc_<un>signed_<GPR:mode>): Rename to...
710 (setbc_<CCANY:mode>_<GPR:mode>C): ... this. Adjust."
711 (*setbcr_<un>signed_<GPR:mode>): Rename to ...
712 (*setbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
713 (*setnbc_<un>signed_<GPR:mode>): Rename to ...
714 (*setnbc_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
715 (*setnbcr_<un>signed_<GPR:mode>): Rename to ...
716 (*setnbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
717 (eq<mode>3 for GPR): Adjust.
718 (ne<mode>3 for GPR): Adjust.
719 * config/rs6000/rs6000-string.cc (do_isel): Adjust.
720 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Adjust.
721
722 2022-10-25 Richard Biener <rguenther@suse.de>
723
724 PR tree-optimization/107176
725 PR tree-optimization/66375
726 PR tree-optimization/42512
727 * tree-scalar-evolution.cc (follow_ssa_edge_expr): Revert
728 the PR66375 fix, do not not associate PLUS_EXPR to be able
729 to use tail-recursion.
730 (follow_ssa_edge_binary): Likewise.
731 (interpret_loop_phi): Revert PR42512 fix, do not throw
732 away analyze_evolution_in_loop result after the fact.
733 (follow_ssa_edge_expr): When reaching halting_phi initalize
734 the evolution to the symbolic value of the PHI result.
735 (add_to_evolution_1): When adding the first evolution verify
736 we can handle the expression wrapping the symbolic evolution
737 and replace that in full using the initial condition.
738 (class scev_dfs): New, contains ...
739 (follow_ssa_edge_expr, follow_ssa_edge_binary,
740 follow_ssa_edge_in_condition_phi_branch,
741 follow_ssa_edge_in_condition_phi,
742 follow_ssa_edge_inner_loop_phi,
743 add_to_evolution, add_to_evolution_1): ... these with
744 loop and halting_phi arguments in class data.
745 (scev_dfs::get_ev): New toplevel DFS entry, start with
746 a chrec_dont_know evolution.
747 (analyze_evolution_in_loop): Use scev_dfs.
748
749 2022-10-25 Eric Botcazou <ebotcazou@adacore.com>
750
751 * profile.cc (branch_prob): Be prepared for ignored functions with
752 DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION.
753
754 2022-10-25 Richard Biener <rguenther@suse.de>
755
756 * tree-scalar-evolution.cc (follow_ssa_edge_expr): Move
757 STRIP_USELESS_TYPE_CONVERSIONS to where it matters.
758
759 2022-10-25 Tejas Joshi <TejasSanjay.Joshi@amd.com>
760
761 * common/config/i386/i386-common.cc (processor_alias_table): Use
762 CPU_ZNVER3 for znver4.
763 * config/i386/znver.md: Remove znver4 reservations.
764
765 2022-10-25 Jakub Jelinek <jakub@redhat.com>
766
767 * gimplify.cc (gimple_boolify): Fix comment typos, prduce -> produce
768 and There -> These.
769
770 2022-10-25 Jakub Jelinek <jakub@redhat.com>
771
772 PR tree-optimization/107368
773 * gimplify.cc (gimplify_call_expr): For complex IFN_ASSUME
774 conditions call gimple_boolify on the condition.
775
776 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
777
778 * config.gcc: add -with-compact-branches=policy build option.
779 * doc/install.texi: Likewise.
780 * config/mips/mips.h: Likewise.
781
782 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
783
784 * config/mips/mips.cc (mips_option_override): not trigger error
785 for compact-branches=always for pre-R6.
786 * config/mips/mips.h (TARGET_RTP_PIC): not trigger error for
787 compact-branches=always for pre-R6.
788 (TARGET_CB_NEVER): Likewise.
789 (TARGET_CB_ALWAYS): Likewise.
790 (struct mips_cpu_info): define macros for compact branch policy.
791 * doc/invoke.texi: Document "always" with pre-R6.
792
793 2022-10-25 Jakub Jelinek <jakub@redhat.com>
794
795 PR tree-optimization/107369
796 * gimplify.cc (gimplify_call_expr): If seen_error, handle complex
797 IFN_ASSUME the same as for -O0.
798
799 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
800
801 * configure.ac: AC_DEFINE(ENABLE_MULTIARCH, 1)
802 * configure: Regenerated.
803 * config.in: Regenerated.
804 * config/mips/mips.h: don't define STANDARD_STARTFILE_PREFIX_1
805 if ENABLE_MULTIARCH is defined.
806 * config/mips/t-linux64: define correct multiarch path when
807 multiarch is enabled.
808
809 2022-10-25 Richard Biener <rguenther@suse.de>
810
811 PR tree-optimization/100756
812 * tree-ssa-loop-niter.cc (expand_simple_operations): Also
813 expand multiplications by invariants.
814
815 2022-10-25 Kewen Lin <linkw@linux.ibm.com>
816
817 PR tree-optimization/107338
818 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Move
819 shfit_n calculation before the adjustments for widening loads.
820
821 2022-10-25 Martin Liska <mliska@suse.cz>
822
823 * common/config/riscv/riscv-common.cc
824 (riscv_get_valid_option_values): Get out of ifdef.
825
826 2022-10-25 Martin Liska <mliska@suse.cz>
827
828 PR target/107364
829 * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
830 Fix pedantic warning.
831
832 2022-10-24 Martin Liska <mliska@suse.cz>
833
834 PR analyzer/107366
835 * diagnostic-format-sarif.cc
836 (sarif_builder::maybe_make_physical_location_object): Gracefully
837 reject locations with NULL filename.
838
839 2022-10-24 David Malcolm <dmalcolm@redhat.com>
840
841 PR analyzer/106300
842 * doc/invoke.texi (Static Analyzer Options): Add "pipe" and
843 "pipe2" to the list of functions the analyzer has hardcoded
844 knowledge of.
845
846 2022-10-24 Jason Merrill <jason@redhat.com>
847
848 * tree.h (build_string_literal): New one-argument overloads that
849 take tree (identifier) and const char *.
850 * builtins.cc (fold_builtin_FILE)
851 (fold_builtin_FUNCTION)
852 * gimplify.cc (gimple_add_init_for_auto_var)
853 * vtable-verify.cc (verify_bb_vtables): Simplify calls.
854
855 2022-10-24 Martin Liska <mliska@suse.cz>
856
857 PR target/107364
858 * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
859 Reorder enum values as BUILTIN_VENDOR_MAX should not point
860 in the middle of the valid enum values.
861
862 2022-10-24 Marek Polacek <polacek@redhat.com>
863
864 PR c++/107276
865 * tree.cc (maybe_wrap_with_location): Don't create a location wrapper
866 when the type is erroneous.
867
868 2022-10-24 Wilco Dijkstra <wdijkstr@arm.com>
869
870 PR target/106583
871 * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
872 Add support for a bitmask immediate with 2 MOVKs.
873 (aarch64_check_bitmask): New function after refactorization.
874 (aarch64_bitmask_imm): Simplify replication of small modes.
875 Split function into 64-bit only version for efficiency.
876 (aarch64_move_imm): Move near other immediate functions.
877 (aarch64_uimm12_shift): Likewise.
878 (aarch64_clamp_to_uimm12_shift): Likewise.
879 (aarch64_movk_shift): Likewise.
880 (aarch64_replicate_bitmask_imm): Likewise.
881 (aarch64_and_split_imm1): Likewise.
882 (aarch64_and_split_imm2): Likewise.
883 (aarch64_and_bitmask_imm): Likewise.
884 (aarch64_movw_imm): Likewise.
885
886 2022-10-24 Aldy Hernandez <aldyh@redhat.com>
887
888 PR tree-optimization/107355
889 * range-op-float.cc (foperator_abs::op1_range): Handle NAN.
890
891 2022-10-24 Tobias Burnus <tobias@codesourcery.com>
892
893 PR middle-end/107236
894 * omp-expand.cc (expand_omp_target): Set calls_declare_variant_alt
895 in DECL_CONTEXT and not to cfun->decl.
896 * cgraphclones.cc (cgraph_node::create_clone): Copy also the
897 node's calls_declare_variant_alt value.
898
899 2022-10-24 Kito Cheng <kito.cheng@sifive.com>
900
901 * common/config/riscv/riscv-common.cc (riscv_tunes): New.
902 (riscv_get_valid_option_values): New.
903 (TARGET_GET_VALID_OPTION_VALUES): New.
904 * config/riscv/riscv-cores.def (RISCV_TUNE): New, define options
905 for tune here.
906 (RISCV_CORE): Fix comment.
907 * config/riscv/riscv.cc (riscv_tune_info_table): Move definition to
908 riscv-cores.def.
909
910 2022-10-24 Aldy Hernandez <aldyh@redhat.com>
911
912 PR tree-optimization/107365
913 * value-range.cc (frange::verify_range): Predicate NAN check in
914 VARYING range on HONOR_NANS instead of flag_finite_math_only.
915 (range_tests_floats): Same.
916 (range_tests_floats_various): New.
917 (range_tests): Call range_tests_floats_various.
918
919 2022-10-24 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
920 Yvan ROUX <yvan.roux@foss.st.com>
921
922 * lto-wrapper.cc: Quote paths in makefile.
923
924 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
925
926 * config/riscv/riscv.cc (riscv_legitimize_move): Support (set (mem) (const_poly_int)).
927
928 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
929
930 * config/riscv/riscv-vector-builtins-bases.cc: Replace CONSTEXPR
931 with constexpr throughout.
932 * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Likewise.
933 * config/riscv/riscv-vector-builtins.cc
934 (struct registered_function_hasher): Likewise.
935 * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info):
936 Likewise.
937
938 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
939
940 * config/riscv/riscv-vector-switch.def (ENTRY): Remove unused TI/TF vector modes.
941
942 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
943
944 * config/riscv/riscv.h (REG_CLASS_CONTENTS): Fix ALL_REGS.
945
946 2022-10-22 Michael Eager <eager@eagercon.com>
947
948 * config/microblaze/microblaze.cc
949 (microblaze_legitimize_address): Initialize 'reg' to NULL, check for NULL.
950 (microblaze_address_insns): Replace abort() with gcc_unreachable().
951 (print_operand_address): Same.
952 (microblaze_expand_move): Initialize 'p1' to NULL, check for NULL.
953 (get_branch_target): Replace abort() with gcc_unreachable().
954
955 2022-10-22 Aldy Hernandez <aldyh@redhat.com>
956
957 * value-range.cc (range_tests_floats): Predicate [-Inf, +Inf] test
958 with !flag_finite_math_only.
959
960 2022-10-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
961
962 * config/xtensa/xtensa.cc (xtensa_conditional_register_usage):
963 Remove register A0 from FIXED_REGS if the CALL0 ABI.
964 (xtensa_expand_epilogue): Change to emit '(use (reg:SI A0_REG))'
965 unconditionally after restoring callee-saved registers for
966 sibling-call functions, in order to prevent misleading that
967 register A0 is free to use.
968
969 2022-10-21 Jakub Jelinek <jakub@redhat.com>
970
971 PR target/107322
972 * config/i386/i386-expand.cc (ix86_prepare_fp_compare_args): For
973 BFmode comparisons promote arguments to SFmode and recurse.
974 (ix86_expand_int_movcc, ix86_expand_fp_movcc): Return false early
975 if comparison operands are BFmode and operands[1] is not
976 ix86_fp_comparison_operator.
977
978 2022-10-21 Tejas Joshi <TejasSanjay.Joshi@amd.com>
979
980 * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver4.
981 * common/config/i386/i386-common.cc (processor_names): Add znver4.
982 (processor_alias_table): Add znver4 and modularize old znvers.
983 * common/config/i386/i386-cpuinfo.h (processor_subtypes):
984 AMDFAM19H_ZNVER4.
985 * config.gcc (x86_64-*-* |...): Likewise.
986 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
987 -march=native recognize znver4 cpus.
988 * config/i386/i386-c.cc (ix86_target_macros_internal): Add znver4.
989 * config/i386/i386-options.cc (m_ZNVER4): New definition.
990 (m_ZNVER): Include m_ZNVER4.
991 (processor_cost_table): Add znver4.
992 * config/i386/i386.cc (ix86_reassociation_width): Likewise.
993 * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER4.
994 (PTA_ZNVER1): New definition.
995 (PTA_ZNVER2): Likewise.
996 (PTA_ZNVER3): Likewise.
997 (PTA_ZNVER4): Likewise.
998 * config/i386/i386.md (define_attr "cpu"): Add znver4 and rename
999 md file.
1000 * config/i386/x86-tune-costs.h (znver4_cost): New definition.
1001 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver4.
1002 (ix86_adjust_cost): Likewise.
1003 * config/i386/znver1.md: Rename to znver.md.
1004 * config/i386/znver.md: Add new reservations for znver4.
1005 * doc/extend.texi: Add details about znver4.
1006 * doc/invoke.texi: Likewise.
1007
1008 2022-10-21 Richard Biener <rguenther@suse.de>
1009
1010 PR tree-optimization/107323
1011 * tree-loop-distribution.cc (pg_unmark_merged_alias_ddrs):
1012 New function.
1013 (loop_distribution::break_alias_scc_partitions): Revert
1014 postorder save/restore from the PR94125 fix. Instead
1015 make sure to not ignore edges from SCCs we are going to
1016 merge.
1017
1018 2022-10-21 Monk Chiang <monk.chiang@sifive.com>
1019
1020 * config/riscv/riscv.md: Add atomic type attribute.
1021 * config/riscv/sync.md: Add atomic type for atomic instructions.
1022
1023 2022-10-21 Jakub Jelinek <jakub@redhat.com>
1024
1025 PR tree-optimization/54346
1026 * match.pd ((vec_perm (vec_perm@0 @1 @2 VECTOR_CST) @0 VECTOR_CST)):
1027 Optimize nested VEC_PERM_EXPRs even if target can't handle the
1028 new one provided we don't increase number of VEC_PERM_EXPRs the
1029 target can't handle.
1030
1031 2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1032
1033 * config.gcc: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
1034 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New macro.
1035 (DEF_RVV_FUNCTION): Ditto.
1036 (handle_pragma_vector): Add intrinsic framework.
1037 * config/riscv/riscv.cc (riscv_print_operand): Add operand print for vsetvl/vsetvlmax.
1038 * config/riscv/riscv.md: include vector.md.
1039 * config/riscv/t-riscv: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
1040 * config/riscv/riscv-vector-builtins-bases.cc: New file.
1041 * config/riscv/riscv-vector-builtins-bases.h: New file.
1042 * config/riscv/riscv-vector-builtins-functions.def: New file.
1043 * config/riscv/riscv-vector-builtins-shapes.cc: New file.
1044 * config/riscv/riscv-vector-builtins-shapes.h: New file.
1045 * config/riscv/riscv-vector-builtins-types.def: New file.
1046 * config/riscv/vector.md: New file.
1047
1048 2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1049
1050 * config.gcc: Add gt files since function_instance is GTY ((user)).
1051 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV intrinsic framework.
1052 (riscv_builtin_decl): Ditto.
1053 (riscv_expand_builtin): Ditto.
1054 * config/riscv/riscv-protos.h (builtin_decl): New function.
1055 (expand_builtin): Ditto.
1056 (enum riscv_builtin_class): New enum to classify RVV intrinsic and RISC-V general built-in.
1057 * config/riscv/riscv-vector-builtins.cc (class GTY): New declaration.
1058 (struct registered_function_hasher): New struct.
1059 (DEF_RVV_OP_TYPE): New macro.
1060 (DEF_RVV_TYPE): Ditto.
1061 (DEF_RVV_PRED_TYPE): Ditto.
1062 (GTY): New declaration.
1063 (add_attribute): New function.
1064 (check_required_extensions): Ditto.
1065 (rvv_arg_type_info::get_tree_type): Ditto.
1066 (function_instance::function_instance): Ditto.
1067 (function_instance::operator==): Ditto.
1068 (function_instance::any_type_float_p): Ditto.
1069 (function_instance::get_return_type): Ditto.
1070 (function_instance::get_arg_type): Ditto.
1071 (function_instance::hash): Ditto.
1072 (function_instance::call_properties): Ditto.
1073 (function_instance::reads_global_state_p): Ditto.
1074 (function_instance::modifies_global_state_p): Ditto.
1075 (function_instance::could_trap_p): Ditto.
1076 (function_builder::function_builder): Ditto.
1077 (function_builder::~function_builder): Ditto.
1078 (function_builder::allocate_argument_types): Ditto.
1079 (function_builder::register_function_group): Ditto.
1080 (function_builder::append_name): Ditto.
1081 (function_builder::finish_name): Ditto.
1082 (function_builder::get_attributes): Ditto.
1083 (function_builder::add_function): Ditto.
1084 (function_builder::add_unique_function): Ditto.
1085 (function_call_info::function_call_info): Ditto.
1086 (function_expander::function_expander): Ditto.
1087 (function_expander::add_input_operand): Ditto.
1088 (function_expander::generate_insn): Ditto.
1089 (registered_function_hasher::hash): Ditto.
1090 (registered_function_hasher::equal): Ditto.
1091 (builtin_decl): Ditto.
1092 (expand_builtin): Ditto.
1093 (gt_ggc_mx): Define for using GCC garbage collect.
1094 (gt_pch_nx): Define for using GCC garbage collect.
1095 * config/riscv/riscv-vector-builtins.def (DEF_RVV_OP_TYPE): New macro.
1096 (DEF_RVV_PRED_TYPE): Ditto.
1097 (vbool64_t): Add suffix.
1098 (vbool32_t): Ditto.
1099 (vbool16_t): Ditto.
1100 (vbool8_t): Ditto.
1101 (vbool4_t): Ditto.
1102 (vbool2_t): Ditto.
1103 (vbool1_t): Ditto.
1104 (vint8mf8_t): Ditto.
1105 (vuint8mf8_t): Ditto.
1106 (vint8mf4_t): Ditto.
1107 (vuint8mf4_t): Ditto.
1108 (vint8mf2_t): Ditto.
1109 (vuint8mf2_t): Ditto.
1110 (vint8m1_t): Ditto.
1111 (vuint8m1_t): Ditto.
1112 (vint8m2_t): Ditto.
1113 (vuint8m2_t): Ditto.
1114 (vint8m4_t): Ditto.
1115 (vuint8m4_t): Ditto.
1116 (vint8m8_t): Ditto.
1117 (vuint8m8_t): Ditto.
1118 (vint16mf4_t): Ditto.
1119 (vuint16mf4_t): Ditto.
1120 (vint16mf2_t): Ditto.
1121 (vuint16mf2_t): Ditto.
1122 (vint16m1_t): Ditto.
1123 (vuint16m1_t): Ditto.
1124 (vint16m2_t): Ditto.
1125 (vuint16m2_t): Ditto.
1126 (vint16m4_t): Ditto.
1127 (vuint16m4_t): Ditto.
1128 (vint16m8_t): Ditto.
1129 (vuint16m8_t): Ditto.
1130 (vint32mf2_t): Ditto.
1131 (vuint32mf2_t): Ditto.
1132 (vint32m1_t): Ditto.
1133 (vuint32m1_t): Ditto.
1134 (vint32m2_t): Ditto.
1135 (vuint32m2_t): Ditto.
1136 (vint32m4_t): Ditto.
1137 (vuint32m4_t): Ditto.
1138 (vint32m8_t): Ditto.
1139 (vuint32m8_t): Ditto.
1140 (vint64m1_t): Ditto.
1141 (vuint64m1_t): Ditto.
1142 (vint64m2_t): Ditto.
1143 (vuint64m2_t): Ditto.
1144 (vint64m4_t): Ditto.
1145 (vuint64m4_t): Ditto.
1146 (vint64m8_t): Ditto.
1147 (vuint64m8_t): Ditto.
1148 (vfloat32mf2_t): Ditto.
1149 (vfloat32m1_t): Ditto.
1150 (vfloat32m2_t): Ditto.
1151 (vfloat32m4_t): Ditto.
1152 (vfloat32m8_t): Ditto.
1153 (vfloat64m1_t): Ditto.
1154 (vfloat64m2_t): Ditto.
1155 (vfloat64m4_t): Ditto.
1156 (vfloat64m8_t): Ditto.
1157 (vv): Ditto.
1158 (vx): Ditto.
1159 (v): Ditto.
1160 (wv): Ditto.
1161 (wx): Ditto.
1162 (x_x_v): Ditto.
1163 (vf2): Ditto.
1164 (vf4): Ditto.
1165 (vf8): Ditto.
1166 (vvm): Ditto.
1167 (vxm): Ditto.
1168 (x_x_w): Ditto.
1169 (v_v): Ditto.
1170 (v_x): Ditto.
1171 (vs): Ditto.
1172 (mm): Ditto.
1173 (m): Ditto.
1174 (vf): Ditto.
1175 (vm): Ditto.
1176 (wf): Ditto.
1177 (vfm): Ditto.
1178 (v_f): Ditto.
1179 (ta): Ditto.
1180 (tu): Ditto.
1181 (ma): Ditto.
1182 (mu): Ditto.
1183 (tama): Ditto.
1184 (tamu): Ditto.
1185 (tuma): Ditto.
1186 (tumu): Ditto.
1187 (tam): Ditto.
1188 (tum): Ditto.
1189 * config/riscv/riscv-vector-builtins.h (GCC_RISCV_VECTOR_BUILTINS_H): New macro.
1190 (RVV_REQUIRE_RV64BIT): Ditto.
1191 (RVV_REQUIRE_ZVE64): Ditto.
1192 (RVV_REQUIRE_ELEN_FP_32): Ditto.
1193 (RVV_REQUIRE_ELEN_FP_64): Ditto.
1194 (enum operand_type_index): New enum.
1195 (DEF_RVV_OP_TYPE): New macro.
1196 (enum predication_type_index): New enum.
1197 (DEF_RVV_PRED_TYPE): New macro.
1198 (enum rvv_base_type): New enum.
1199 (struct rvv_builtin_suffixes): New struct.
1200 (struct rvv_arg_type_info): Ditto.
1201 (struct rvv_type_info): Ditto.
1202 (struct rvv_op_info): Ditto.
1203 (class registered_function): New class.
1204 (class function_base): Ditto.
1205 (class function_shape): Ditto.
1206 (struct function_group_info): New struct.
1207 (class GTY): New class.
1208 (class function_builder): Ditto.
1209 (class function_call_info): Ditto.
1210 (function_call_info::function_returns_void_p): New function.
1211 (class function_expander): New class.
1212 (function_instance::operator!=): New function.
1213 (function_expander::expand): Ditto.
1214 (function_expander::add_input_operand): Ditto.
1215 (function_base::call_properties): Ditto.
1216
1217 2022-10-21 Haochen Jiang <haochen.jiang@intel.com>
1218
1219 * config/i386/sse.md (ssedvecmode): Rename from VI1SI.
1220 (ssedvecmodelower): Rename from vi1si.
1221 (sdot_prod<mode>): New define_expand.
1222 (udot_prod<mode>): Ditto.
1223
1224 2022-10-21 Kong Lingling <lingling.kong@intel.com>
1225 Hongyu Wang <hongyu.wang@intel.com>
1226 Haochen Jiang <haochen.jiang@intel.com>
1227
1228 * common/config/i386/cpuinfo.h (get_available_features): Detect
1229 avxvnniint8.
1230 * common/config/i386/i386-common.cc
1231 (OPTION_MASK_ISA2_AVXVNNIINT8_SET): New.
1232 (OPTION_MASK_ISA2_AVXVNNIINT8_UNSET): Ditto.
1233 (ix86_handle_option): Handle -mavxvnniint8.
1234 * common/config/i386/i386-cpuinfo.h (enum processor_features):
1235 Add FEATURE_AVXVNNIINT8.
1236 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
1237 avxvnniint8.
1238 * config.gcc: Add avxvnniint8intrin.h.
1239 * config/i386/avxvnniint8intrin.h: New file.
1240 * config/i386/cpuid.h (bit_AVXVNNIINT8): New.
1241 * config/i386/i386-builtin.def: Add new builtins.
1242 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
1243 __AVXVNNIINT8__.
1244 * config/i386/i386-options.cc (isa2_opts): Add -mavxvnniint8.
1245 (ix86_valid_target_attribute_inner_p): Handle avxvnniint8.
1246 * config/i386/i386-isa.def: Add DEF_PTA(AVXVNNIINT8) New..
1247 * config/i386/i386.opt: Add option -mavxvnniint8.
1248 * config/i386/immintrin.h: Include avxvnniint8intrin.h.
1249 * config/i386/sse.md (UNSPEC_VPMADDUBSWACCD
1250 UNSPEC_VPMADDUBSWACCSSD,UNSPEC_VPMADDWDACCD,
1251 UNSPEC_VPMADDWDACCSSD): Rename according to new style.
1252 (vpdp<vpdotprodtype>_<mode>): New define_insn.
1253 * doc/extend.texi: Document avxvnniint8.
1254 * doc/invoke.texi: Document -mavxvnniint8.
1255 * doc/sourcebuild.texi: Document target avxvnniint8.
1256
1257 2022-10-21 Hongyu Wang <hongyu.wang@intel.com>
1258
1259 * common/config/i386/i386-common.cc
1260 (OPTION_MASK_ISA_AVXIFMA_SET, OPTION_MASK_ISA2_AVXIFMA_UNSET,
1261 OPTION_MASK_ISA2_AVX2_UNSET): New macro.
1262 (ix86_handle_option): Handle -mavxifma.
1263 * common/config/i386/i386-cpuinfo.h (processor_types): Add
1264 FEATURE_AVXIFMA.
1265 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
1266 avxifma.
1267 * common/config/i386/cpuinfo.h (get_available_features):
1268 Detect avxifma.
1269 * config.gcc: Add avxifmaintrin.h
1270 * config/i386/avx512ifmavlintrin.h: (_mm_madd52lo_epu64): Change
1271 to macro.
1272 (_mm_madd52hi_epu64): Likewise.
1273 (_mm256_madd52lo_epu64): Likewise.
1274 (_mm256_madd52hi_epu64): Likewise.
1275 * config/i386/avxifmaintrin.h: New header.
1276 * config/i386/cpuid.h (bit_AVXIFMA): New.
1277 * config/i386/i386-builtin.def: Add new builtins, and correct
1278 pattern names for AVX512IFMA.
1279 * config/i386/i386-builtins.cc (def_builtin): Handle AVX-IFMA
1280 builtins like AVX-VNNI.
1281 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
1282 __AVXIFMA__.
1283 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
1284 Relax ISA masks for AVXIFMA.
1285 * config/i386/i386-isa.def: Add AVXIFMA.
1286 * config/i386/i386-options.cc (isa2_opts): Add -mavxifma.
1287 (ix86_valid_target_attribute_inner_p): Handle avxifma.
1288 * config/i386/i386.md (isa): Add attr avxifma and avxifmavl.
1289 * config/i386/i386.opt: Add option -mavxifma.
1290 * config/i386/immintrin.h: Inculde avxifmaintrin.h.
1291 * config/i386/sse.md (avx_vpmadd52<vpmadd52type>_<mode>):
1292 Remove.
1293 (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Remove.
1294 (vpamdd52huq<mode>_maskz): Rename to ...
1295 (vpmadd52huq<mode>_maskz): ... this.
1296 (vpamdd52luq<mode>_maskz): Rename to ...
1297 (vpmadd52luq<mode>_maskz): ... this.
1298 (vpmadd52<vpmadd52type><mode>): New define_insn.
1299 (vpmadd52<vpmadd52type>v8di): Likewise.
1300 (vpmadd52<vpmadd52type><mode>_maskz_1): Likewise.
1301 (vpamdd52<vpmadd52type><mode>_mask): Rename to ...
1302 (vpmadd52<vpmadd52type><mode>_mask): ... this.
1303 * doc/invoke.texi: Document -mavxifma.
1304 * doc/extend.texi: Document avxifma.
1305 * doc/sourcebuild.texi: Document target avxifma.
1306
1307 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
1308
1309 PR c++/106654
1310 * value-query.cc (get_range_global): Handle non integer ranges for
1311 default def SSA names.
1312
1313 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
1314
1315 * range-op-float.cc (foperator_unordered_lt::op1_range): New.
1316 (foperator_unordered_lt::op2_range): New.
1317
1318 2022-10-20 Artem Klimov <jakmobius@gmail.com>
1319 Alexander Monakov <amonakov@gcc.gnu.org>
1320
1321 PR middle-end/99619
1322 * ipa-visibility.cc (function_and_variable_visibility): Promote
1323 TLS access model afer visibility optimizations.
1324 * varasm.cc (have_optimized_refs): New helper.
1325 (optimize_dyn_tls_for_decl_p): New helper. Use it ...
1326 (decl_default_tls_model): ... here in place of 'optimize' check.
1327
1328 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
1329
1330 * range-op-float.cc (foperator_unordered_le::op1_range): Adjust
1331 false side with a NAN operand.
1332 (foperator_unordered_le::op2_range): Same.
1333 (foperator_unordered_gt::op1_range): Same.
1334 (foperator_unordered_gt::op2_range): Same.
1335 (foperator_unordered_ge::op1_range): Same.
1336 (foperator_unordered_ge::op2_range): Same.
1337 (foperator_unordered_equal::op1_range): Same.
1338
1339 2022-10-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
1340
1341 PR tree-optimization/107326
1342 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Change
1343 vectype when widening container.
1344
1345 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
1346
1347 * value-range.h (frange::set_varying): Do not set NAN flags for
1348 !HONOR_NANS.
1349 * value-range.cc (frange::normalize_kind): Adjust for no NAN when
1350 !HONOR_NANS.
1351 (frange::verify_range): Same.
1352 * range-op-float.cc (maybe_isnan): Remove flag_finite_math_only check.
1353
1354 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
1355
1356 * range-op-float.cc (finite_operand_p): Remove.
1357 (finite_operands_p): Rename to...
1358 (maybe_isnan): ...this.
1359 (frelop_early_resolve): Use maybe_isnan instead of finite_operands_p.
1360 (foperator_equal::fold_range): Same.
1361 (foperator_equal::op1_range): Same.
1362 (foperator_not_equal::fold_range): Same.
1363 (foperator_lt::fold_range): Same.
1364 (foperator_le::fold_range): Same.
1365 (foperator_gt::fold_range): Same.
1366 (foperator_ge::fold_range): Same.
1367
1368 2022-10-20 Jakub Jelinek <jakub@redhat.com>
1369
1370 * passes.cc (pass_manager::register_pass): Fix a comment
1371 typo - copmilation -> compilation.
1372
1373 2022-10-20 Richard Biener <rguenther@suse.de>
1374
1375 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
1376 Disallow latch PHI defs.
1377 (vectorizable_recurr): Revert previous change.
1378
1379 2022-10-20 Julian Brown <julian@codesourcery.com>
1380
1381 PR target/105421
1382 * config/gcn/gcn.cc (gcn_detect_incoming_pointer_arg): Any pointer
1383 argument forces FLAT addressing mode, not just
1384 pointer-to-non-aggregate.
1385
1386 2022-10-20 Thomas Schwinge <thomas@codesourcery.com>
1387
1388 * configure.ac (AC_CONFIG_MACRO_DIRS): Instantiate.
1389 * configure: Regenerate.
1390
1391 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
1392
1393 * config/aarch64/aarch64-sve-builtins.h
1394 (gimple_folder::fold_to_cstu): New member function.
1395 * config/aarch64/aarch64-sve-builtins.cc
1396 (gimple_folder::fold_to_cstu): Define.
1397 * config/aarch64/aarch64-sve-builtins-base.cc
1398 (svcnt_bhwd_impl::fold): Use it.
1399
1400 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
1401
1402 * config/aarch64/aarch64-sve-builtins-functions.h (quiet)
1403 (rtx_code_function, rtx_code_function_rotated, unspec_based_function)
1404 (unspec_based_function_rotated, unspec_based_function_exact_insn)
1405 (unspec_based_fused_function, unspec_based_fused_lane_function):
1406 Replace constructors with using directives.
1407 * config/aarch64/aarch64-sve-builtins-base.cc (svcnt_bhwd_pat_impl)
1408 (svcreate_impl, svdotprod_lane_impl, svget_impl, svld1_extend_impl)
1409 (svld1_gather_extend_impl, svld234_impl, svldff1_gather_extend)
1410 (svset_impl, svst1_scatter_truncate_impl, svst1_truncate_impl)
1411 (svst234_impl, svundef_impl): Likewise.
1412 * config/aarch64/aarch64-sve-builtins-sve2.cc
1413 (svldnt1_gather_extend_impl, svmovl_lb_impl): Likewise.
1414 (svstnt1_scatter_truncate_impl): Likewise.
1415
1416 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
1417
1418 * config/aarch64/aarch64-sve-builtins-base.cc: Replace CONSTEXPR
1419 with constexpr throughout.
1420 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
1421 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
1422 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
1423 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
1424
1425 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
1426
1427 * config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
1428 merging alternative.
1429 (*aarch64_brk<brk_op>_ptest): Likewise.
1430
1431 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
1432
1433 * config/aarch64/iterators.md (SVE_BRKP): New iterator.
1434 * config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
1435 (*aarch64_brkn_ptest): Likewise.
1436 (*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
1437 (*aarch64_brk<brk_op>_ptest): Likewise.
1438
1439 2022-10-20 Richard Biener <rguenther@suse.de>
1440
1441 PR c/107305
1442 PR c/107306
1443 * tree-cfg.h (verify_gimple_in_seq): Add parameter to
1444 indicate whether to emit an ICE. Add return value.
1445 (verify_gimple_in_cfg): Likewise.
1446 * tree-cfg.cc (verify_gimple_in_seq): Likewise.
1447 (verify_gimple_in_cfg): Likewise.
1448
1449 2022-10-20 Richard Biener <rguenther@suse.de>
1450
1451 PR tree-optimization/107240
1452 * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Attempt to
1453 simplify shifted value first.
1454
1455 2022-10-20 Andrew MacLeod <amacleod@redhat.com>
1456
1457 * gimple-range-gori.h (compute_operand_range): Make public.
1458 * gimple-range-infer.cc (gimple_infer_range::check_assume_func): New.
1459 (gimple_infer_range::gimple_infer_range): Check for assume calls.
1460 * gimple-range-infer.h (check_assume_func): Add prototype.
1461 * gimple-range.cc (assume_query::assume_range_p): New.
1462 (assume_query::range_of_expr): New.
1463 (assume_query::assume_query): New.
1464 (assume_query::calculate_op): New.
1465 (assume_query::calculate_phi): New.
1466 (assume_query::check_taken_edge): New.
1467 (assume_query::calculate_stmt): New.
1468 (assume_query::dump): New.
1469 * gimple-range.h (class assume_query): New.
1470 * tree-vrp.cc (pass_assumptions::execute): Add processing.
1471
1472 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
1473
1474 * range-op-float.cc (build_le): Document result.
1475 (build_lt): Same.
1476 (build_ge): Same.
1477 (foperator_ge::op2_range): Check result of build_*.
1478 (foperator_unordered_le::op1_range): Same.
1479 (foperator_unordered_le::op2_range): Same.
1480 (foperator_unordered_gt::op1_range): Same.
1481 (foperator_unordered_gt::op2_range): Same.
1482 (foperator_unordered_ge::op1_range): Same.
1483 (foperator_unordered_ge::op2_range): Same.
1484
1485 2022-10-19 Marek Polacek <polacek@redhat.com>
1486
1487 PR c++/85043
1488 * doc/invoke.texi: Update documentation of -Wuseless-cast.
1489
1490 2022-10-19 Andrew MacLeod <amacleod@redhat.com>
1491
1492 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
1493 Value_Range not int_range_max.
1494
1495 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
1496
1497 PR tree-optimization/107312
1498 * range.h (range_true_and_false): Special case 1-bit signed types.
1499 * value-range.cc (range_tests_misc): New test.
1500
1501 2022-10-19 LIU Hao <lh_mouse@126.com>
1502
1503 * config/i386/mingw-mcfgthread.h: New file
1504 * config/i386/mingw32.h: Add builtin macro and default libraries
1505 for mcfgthread when thread model is `mcf`
1506 * config.gcc: Include 'i386/mingw-mcfgthread.h' when thread model
1507 is `mcf`
1508 * configure.ac: Recognize `mcf` as a valid thread model
1509 * config.in: Regenerate
1510 * configure: Regenerate
1511
1512 2022-10-19 Lewis Hyatt <lhyatt@gmail.com>
1513
1514 * gengtype.cc (output_escaped_param): Add missing const.
1515 (get_string_option): Add missing check for option type.
1516 (walk_type): Support new "string_length" GTY option.
1517 (write_types_process_field): Likewise.
1518 * ggc-common.cc (gt_pch_note_object): Add optional length argument.
1519 * ggc.h (gt_pch_note_object): Adjust prototype for new argument.
1520 (gt_pch_n_S2): Declare...
1521 * stringpool.cc (gt_pch_n_S2): ...new function.
1522 * doc/gty.texi: Document new GTY((string_length)) option.
1523
1524 2022-10-19 Martin Liska <mliska@suse.cz>
1525
1526 * doc/extend.texi: Remove useless @tie{} directives.
1527
1528 2022-10-19 Martin Jambor <mjambor@suse.cz>
1529
1530 PR tree-optimization/107206
1531 * tree-sra.cc (struct access): New field grp_result_of_prop_from_lhs.
1532 (analyze_access_subtree): Do not create replacements for accesses with
1533 this flag when not toally scalarizing.
1534 (propagate_subaccesses_from_lhs): Set the new flag.
1535
1536 2022-10-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1537
1538 PR target/106355
1539 * config/s390/s390.cc (s390_call_saved_register_used): For a
1540 parameter with BLKmode fix determining number of consecutive
1541 registers.
1542
1543 2022-10-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1544
1545 * config/xtensa/xtensa-protos.h
1546 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm): New prototypes.
1547 * config/xtensa/xtensa.cc
1548 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm, xtensa_lra_p):
1549 New functions.
1550 (TARGET_LRA_P): Replace the dummy hook with xtensa_lra_p.
1551 (xt_true_regnum): Rework.
1552 * config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS):
1553 Switch from CALL_USED_REGISTERS, and revise the comment.
1554 * config/xtensa/constraints.md (Y):
1555 Use !xtensa_split1_finished_p() instead of can_create_pseudo_p().
1556 * config/xtensa/predicates.md (move_operand): Ditto.
1557 * config/xtensa/xtensa.md: Add two new split patterns:
1558 - splits DImode immediate load into two SImode ones
1559 - puts out-of-constraint SImode constants into the constant pool
1560 * config/xtensa/xtensa.opt (-mlra): New target-specific option
1561 for testing purpose.
1562
1563 2022-10-19 Robin Dapp <rdapp@linux.ibm.com>
1564
1565 * config/s390/s390.md: Move reload_completed and check operands for REG_P.
1566
1567 2022-10-19 Jakub Jelinek <jakub@redhat.com>
1568
1569 PR middle-end/107262
1570 * expr.cc (convert_mode_scalar): For BFmode -> SFmode conversions
1571 of constants, use simplify_unary_operation if fromi has VOIDmode
1572 instead of recursive convert_mode_scalar.
1573
1574 2022-10-19 Jakub Jelinek <jakub@redhat.com>
1575
1576 PR tree-optimization/106990
1577 * match.pd ((~X - ~Y) -> Y - X, -x & 1 -> x & 1): Guard with
1578 !TYPE_OVERFLOW_SANITIZED (type).
1579
1580 2022-10-19 Jakub Jelinek <jakub@redhat.com>
1581
1582 * config/i386/i386-builtins.cc (ix86_bf16_ptr_type_node): Remove.
1583 (ix86_bf16_type_node): New variable.
1584 (ix86_register_bf16_builtin_type): If bfloat16_type_node is NULL
1585 from generic code, set only ix86_bf16_type_node to a new REAL_TYPE
1586 rather than bfloat16_type_node, otherwise set ix86_bf16_type_node
1587 to bfloat16_type_node. Register __bf16 on ix86_bf16_type_node
1588 rather than bfloat16_type_node. Don't initialize unused
1589 ix86_bf16_ptr_type_node.
1590 * config/i386/i386-builtin-types.def (BFLOAT16): Use
1591 ix86_bf16_type_node rather than bfloat16_type_node.
1592
1593 2022-10-19 Richard Biener <rguenther@suse.de>
1594
1595 PR tree-optimization/106781
1596 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Copy
1597 LHS removal from fixup_noreturn_call.
1598
1599 2022-10-19 liuhongt <hongtao.liu@intel.com>
1600
1601 PR target/107271
1602 * config/i386/i386-expand.cc (ix86_vec_perm_index_canon): New.
1603 (expand_vec_perm_shufps_shufps): Call
1604 ix86_vec_perm_index_canon
1605
1606 2022-10-18 Martin Jambor <mjambor@suse.cz>
1607
1608 * ipa-prop.h (ipa_agg_value): Remove type.
1609 (ipa_agg_value_set): Likewise.
1610 (ipa_copy_agg_values): Remove function.
1611 (ipa_release_agg_values): Likewise.
1612 (ipa_auto_call_arg_values) Add a forward declaration.
1613 (ipa_call_arg_values): Likewise.
1614 (class ipa_argagg_value_list): New constructors, added member function
1615 value_for_index_p.
1616 (class ipa_auto_call_arg_values): Removed the destructor and member
1617 function safe_aggval_at. Use ipa_argagg_values for m_known_aggs.
1618 (class ipa_call_arg_values): Removed member function safe_aggval_at.
1619 Use ipa_argagg_values for m_known_aggs.
1620 (ipa_get_indirect_edge_target): Removed declaration.
1621 (ipa_find_agg_cst_for_param): Likewise.
1622 (ipa_find_agg_cst_from_init): New declaration.
1623 (ipa_agg_value_from_jfunc): Likewise.
1624 (ipa_agg_value_set_from_jfunc): Removed declaration.
1625 (ipa_push_agg_values_from_jfunc): New declaration.
1626 * ipa-cp.cc (ipa_agg_value_from_node): Renamed to
1627 ipa_agg_value_from_jfunc, made public.
1628 (ipa_agg_value_set_from_jfunc): Removed.
1629 (ipa_push_agg_values_from_jfunc): New function.
1630 (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use
1631 avs for this purpose too.
1632 (ipa_get_indirect_edge_target): Removed the overload working on
1633 ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining
1634 one.
1635 (devirtualization_time_bonus): Use ipa_argagg_value_list and
1636 ipa_get_indirect_edge_target_1 instead of
1637 ipa_get_indirect_edge_target.
1638 (context_independent_aggregate_values): Removed function.
1639 (gather_context_independent_values): Work on ipa_argagg_value_list.
1640 (estimate_local_effects): Likewise, define some iterator variables
1641 only in the construct where necessary.
1642 (ipcp_discover_new_direct_edges): Adjust the call to
1643 ipa_get_indirect_edge_target_1.
1644 (push_agg_values_for_index_from_edge): Adjust the call
1645 ipa_agg_value_from_node which has been renamed to
1646 ipa_agg_value_from_jfunc.
1647 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on
1648 ipa_argagg_value_list.
1649 (evaluate_properties_for_edge): Replace manual filling in aggregate
1650 values with call to ipa_push_agg_values_from_jfunc.
1651 (estimate_calls_size_and_time): Work on ipa_argagg_value_list.
1652 (ipa_cached_call_context::duplicate_from): Likewise.
1653 (ipa_cached_call_context::release): Likewise.
1654 (ipa_call_context::equal_to): Likewise.
1655 * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public.
1656 (ipa_find_agg_cst_for_param): Removed function.
1657 (ipa_find_agg_cst_from_jfunc_items): New function.
1658 (try_make_edge_direct_simple_call): Replace calls to
1659 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
1660 ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items.
1661 (try_make_edge_direct_virtual_call): Replace calls to
1662 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
1663 simple query of constant jump function and a call to
1664 ipa_find_agg_cst_from_jfunc_items.
1665 (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed.
1666
1667 2022-10-18 Martin Jambor <mjambor@suse.cz>
1668
1669 * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New.
1670 (ipcp_transformation): Added forward declaration.
1671 (ipa_argagg_value): New type.
1672 (ipa_argagg_value_list): New type.
1673 (ipa_agg_replacement_value): Removed type.
1674 (ipcp_transformation): Switch from using ipa_agg_replacement_value
1675 to ipa_argagg_value_list.
1676 (ipa_get_agg_replacements_for_node): Removed.
1677 (ipa_dump_agg_replacement_values): Removed declaration.
1678 * ipa-cp.cc: Define INCLUDE_ALGORITHM.
1679 (values_equal_for_ipcp_p): Moved up in the file.
1680 (ipa_argagg_value_list::dump): New function.
1681 (ipa_argagg_value_list::debug): Likewise.
1682 (ipa_argagg_value_list::get_elt): Likewise.
1683 (ipa_argagg_value_list::get_elt_for_index): Likewise.
1684 (ipa_argagg_value_list::get_value): New overloaded functions.
1685 (ipa_argagg_value_list::superset_of_p): New function.
1686 (new ipa_argagg_value_list::push_adjusted_values): Likewise.
1687 (push_agg_values_from_plats): Likewise.
1688 (intersect_argaggs_with): Likewise.
1689 (get_clone_agg_value): Removed.
1690 (ipa_agg_value_from_node): Make last parameter const, use
1691 ipa_argagg_value_list to search values coming from clones.
1692 (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search
1693 values coming from clones.
1694 (ipcp_discover_new_direct_edges): Pass around a vector of
1695 ipa_argagg_values rather than a link list of replacement values.
1696 (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search
1697 values coming from clones.
1698 (create_specialized_node): Work with a vector of ipa_argagg_values
1699 rather than a link list of replacement values.
1700 (self_recursive_agg_pass_through_p): Make the pointer parameters
1701 const.
1702 (copy_plats_to_inter): Removed.
1703 (intersect_with_plats): Likewise.
1704 (agg_replacements_to_vector): Likewise.
1705 (intersect_with_agg_replacements): Likewise.
1706 (intersect_aggregates_with_edge): Likewise.
1707 (push_agg_values_for_index_from_edge): Likewise.
1708 (push_agg_values_from_edge): Likewise.
1709 (find_aggregate_values_for_callers_subset): Rewrite.
1710 (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
1711 (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search
1712 aggregate values.
1713 (decide_about_value): Work with a vector of ipa_argagg_values rather
1714 than a link list of replacement values.
1715 (decide_whether_version_node): Likewise.
1716 (ipa_analyze_node): Check number of parameters, assert that there
1717 are no descriptors when bailing out.
1718 * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of
1719 ipa_argagg_value.
1720 (ipa_node_params_t::duplicate): Removed superfluous handling of
1721 ipa_agg_replacement_values. Name of src parameter removed because
1722 it is no longer used.
1723 (ipcp_transformation_t::duplicate): Replaced duplication of
1724 ipa_agg_replacement_values with copying vector m_agg_values.
1725 (ipa_dump_agg_replacement_values): Removed.
1726 (write_ipcp_transformation_info): Stream the new data-structure
1727 instead of the old.
1728 (read_ipcp_transformation_info): Likewise.
1729 (adjust_agg_replacement_values): Work with ipa_argagg_values instead
1730 of linked lists of ipa_agg_replacement_values, copy the items and
1731 truncate the vector as necessary to keep it sorted instead of marking
1732 items as invalid. Return one bool if CFG should be updated.
1733 (ipcp_modif_dom_walker): Store ipcp_transformation instead of
1734 linked list of ipa_agg_replacement_values.
1735 (ipcp_modif_dom_walker::before_dom_children): Use
1736 ipa_argagg_value_list instead of walking a list of
1737 ipa_agg_replacement_values.
1738 (ipcp_transform_function): Switch to the new data structure, adjust
1739 dumping.
1740
1741 2022-10-18 Richard Biener <rguenther@suse.de>
1742
1743 PR tree-optimization/107302
1744 * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm
1745 placement for a PHI latch def.
1746
1747 2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
1748
1749 PR tree-optimization/107275
1750 * tree-if-conv.cc (if_convertible_loop_p_1): Move
1751 find_data_references_in_loop call from here...
1752 (if_convertible_loop_p): And move data-reference vector initialization
1753 from here...
1754 (tree_if_conversion):... to here.
1755
1756 2022-10-18 Jakub Jelinek <jakub@redhat.com>
1757
1758 PR c++/106654
1759 * gimple.def (GIMPLE_ASSUME): New statement kind.
1760 * gimple.h (struct gimple_statement_assume): New type.
1761 (is_a_helper <gimple_statement_assume *>::test,
1762 is_a_helper <const gimple_statement_assume *>::test): New.
1763 (gimple_build_assume): Declare.
1764 (gimple_has_substatements): Return true for GIMPLE_ASSUME.
1765 (gimple_assume_guard, gimple_assume_set_guard,
1766 gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body):
1767 New inline functions.
1768 * gsstruct.def (GSS_ASSUME): New.
1769 * gimple.cc (gimple_build_assume): New function.
1770 (gimple_copy): Handle GIMPLE_ASSUME.
1771 * gimple-pretty-print.cc (dump_gimple_assume): New function.
1772 (pp_gimple_stmt_1): Handle GIMPLE_ASSUME.
1773 * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME.
1774 * omp-low.cc (WALK_SUBSTMTS): Likewise.
1775 (lower_omp_1): Likewise.
1776 * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn):
1777 Likewise.
1778 * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise.
1779 * function.h (struct function): Add assume_function bitfield.
1780 * gimplify.cc (gimplify_call_expr): If the assumption isn't
1781 simple enough, expand it into GIMPLE_ASSUME wrapped block or
1782 for -O0 drop it.
1783 * gimple-low.cc: Include attribs.h.
1784 (create_assumption_fn): New function.
1785 (struct lower_assumption_data): New type.
1786 (find_assumption_locals_r, assumption_copy_decl,
1787 adjust_assumption_stmt_r, adjust_assumption_stmt_op,
1788 lower_assumption): New functions.
1789 (lower_stmt): Handle GIMPLE_ASSUME.
1790 * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove
1791 IFN_ASSUME calls.
1792 * lto-streamer-out.cc (output_struct_function_base): Pack
1793 assume_function bit.
1794 * lto-streamer-in.cc (input_struct_function_base): And unpack it.
1795 * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function
1796 has TREE_ASM_WRITTEN set and don't release its body.
1797 (symbol_table::compile): Allow assume functions not to have released
1798 body.
1799 * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable.
1800 * passes.cc (execute_one_pass): For TODO_discard_function don't
1801 release body of assume functions.
1802 * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes
1803 of PROP_assumptions_done functions.
1804 * tree-pass.h (PROP_assumptions_done): Define.
1805 (TODO_discard_function): Adjust comment.
1806 (make_pass_assumptions): Declare.
1807 * passes.def (pass_assumptions): Add.
1808 * timevar.def (TV_TREE_ASSUMPTIONS): New.
1809 * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME.
1810 * tree-vrp.cc (pass_data_assumptions): New variable.
1811 (pass_assumptions): New class.
1812 (make_pass_assumptions): New function.
1813
1814 2022-10-18 Richard Biener <rguenther@suse.de>
1815
1816 PR tree-optimization/107301
1817 * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
1818 Check whether we can duplicate the block.
1819 (find_implicit_erroneous_behavior): Likewise.
1820
1821 2022-10-18 Andrew MacLeod <amacleod@redhat.com>
1822
1823 PR tree-optimization/107273
1824 * value-relation.cc (equiv_oracle::add_partial_equiv): Merge
1825 instead of copying precison of each member.
1826
1827 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
1828
1829 PR target/101697
1830 * config/h8300/combiner.md: Replace '<' preincment constraint with
1831 ZA/Z1..ZH/Z7 combinations.
1832 * config/h8300/movepush.md: Similarly
1833
1834 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
1835
1836 * config/h8300/constraints.md (Za..Zh): New constraints for
1837 autoinc addresses using a specific register.
1838 * config/h8300/h8300.cc (pre_incdec_with_reg): New function.
1839 * config/h8300/h8300-protos.h (pre_incdec_with_reg): Add prototype.
1840
1841 2022-10-17 Jeff Law <jlaw@ventanamicro.com>
1842
1843 * config/i386/cet.c: Remove accidental commit.
1844 * config/i386/driver-mingw32.c: Likewise.
1845 * config/i386/i386-builtins.c: Likewise.
1846 * config/i386/i386-d.c: Likewise.
1847 * config/i386/i386-expand.c: Likewise.
1848 * config/i386/i386-features.c: Likewise.
1849 * config/i386/i386-options.c: Likewise.
1850 * config/i386/t-cet: Likewise.
1851 * config/i386/x86-tune-sched-atom.c: Likewise.
1852 * config/i386/x86-tune-sched-bd.c: Likewise.
1853 * config/i386/x86-tune-sched-core.c: Likewise.
1854 * config/i386/x86-tune-sched.c: Likewise.
1855
1856 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
1857
1858 * common/config/h8300/h8300-common.cc (h8300_option_optimization_table):
1859 Enable redundant extension elimination at -O2 and above.
1860 * config/i386/cet.c: New file.
1861 * config/i386/driver-mingw32.c: New file.
1862 * config/i386/i386-builtins.c: New file.
1863 * config/i386/i386-d.c: New file.
1864 * config/i386/i386-expand.c: New file.
1865 * config/i386/i386-features.c: New file.
1866 * config/i386/i386-options.c: New file.
1867 * config/i386/t-cet: New file.
1868 * config/i386/x86-tune-sched-atom.c: New file.
1869 * config/i386/x86-tune-sched-bd.c: New file.
1870 * config/i386/x86-tune-sched-core.c: New file.
1871 * config/i386/x86-tune-sched.c: New file.
1872
1873 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
1874
1875 * config/h8300/extensions.md (CCZN setting zero extended load): Add
1876 missing splitter.
1877
1878 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
1879
1880 PR tree-optimization/107293
1881 * tree-ssa-dom.cc
1882 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
1883 Check that condition post-dominates the definition point.
1884
1885 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
1886
1887 PR tree-optimization/107286
1888 * value-range.cc (range_tests_floats): Do not test for -Inf when
1889 flag_finite_math_only.
1890
1891 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
1892
1893 * gimple-range-fold.cc (fold_using_range::range_of_range_op):
1894 Provide relation_trio class.
1895 * gimple-range-gori.cc (gori_compute::refine_using_relation):
1896 Provide relation_trio class.
1897 (gori_compute::refine_using_relation): Ditto.
1898 (gori_compute::compute_operand1_range): Provide lhs_op2 and
1899 op1_op2 relations via relation_trio class.
1900 (gori_compute::compute_operand2_range): Ditto.
1901 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
1902 relation_trio instead of relation_kind.
1903 (gimple_range_op_handler::calc_op2): Ditto.
1904 (*::fold_range): Ditto.
1905 * gimple-range-op.h (gimple_range_op::calc_op1): Adjust prototypes.
1906 (gimple_range_op::calc_op2): Adjust prototypes.
1907 * range-op-float.cc (*::fold_range): Use relation_trio instead of
1908 relation_kind.
1909 (*::op1_range): Ditto.
1910 (*::op2_range): Ditto.
1911 * range-op.cc (*::fold_range): Use relation_trio instead of
1912 relation_kind.
1913 (*::op1_range): Ditto.
1914 (*::op2_range): Ditto.
1915 * range-op.h (class range_operator): Adjust prototypes.
1916 (class range_operator_float): Ditto.
1917 (class range_op_handler): Adjust prototypes.
1918 (relop_early_resolve): Pickup op1_op2 relation from relation_trio.
1919 * value-relation.cc (VREL_LAST): Adjust use to be one past the end of
1920 the enum.
1921 (relation_oracle::validate_relation): Use relation_trio in call
1922 to fold_range.
1923 * value-relation.h (enum relation_kind_t): Add VREL_LAST as
1924 final element.
1925 (class relation_trio): New.
1926 (TRIO_VARYING, TRIO_SHIFT, TRIO_MASK): New.
1927
1928 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
1929
1930 * range-op-float.cc (foperator_not_equal::op1_range): Check for
1931 VREL_EQ after singleton.
1932 (foperator_unordered::op1_range): Set VARYING before calling
1933 clear_nan().
1934 (foperator_ordered::op1_range): Set rather than clear NAN if both
1935 operands are the same.
1936
1937 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
1938
1939 * value-relation.cc (value_relation::dump): Change message.
1940 * value-relation.h (value_relation::set_relation): If op1 is the
1941 same as op2 do not create a relation.
1942
1943 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
1944
1945 * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
1946 'case QImode:', etc.
1947
1948 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
1949
1950 * gimple-expr.cc (mark_addressable_2): Tag as 'static'.
1951
1952 2022-10-17 Richard Biener <rguenther@suse.de>
1953 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1954
1955 PR tree-optimization/99409
1956 PR tree-optimization/99394
1957 * tree-vectorizer.h (vect_def_type::vect_first_order_recurrence): Add.
1958 (stmt_vec_info_type::recurr_info_type): Likewise.
1959 (vectorizable_recurr): New function.
1960 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p): New
1961 function.
1962 (vect_analyze_scalar_cycles_1): Look for first order
1963 recurrences.
1964 (vect_analyze_loop_operations): Handle them.
1965 (vect_transform_loop): Likewise.
1966 (vectorizable_recurr): New function.
1967 (maybe_set_vectorized_backedge_value): Handle the backedge value
1968 setting in the first order recurrence PHI and the permutes.
1969 * tree-vect-stmts.cc (vect_analyze_stmt): Handle first order
1970 recurrences.
1971 (vect_transform_stmt): Likewise.
1972 (vect_is_simple_use): Likewise.
1973 (vect_is_simple_use): Likewise.
1974 * tree-vect-slp.cc (vect_get_and_check_slp_defs): Likewise.
1975 (vect_build_slp_tree_2): Likewise.
1976 (vect_schedule_scc): Handle the backedge value setting in the
1977 first order recurrence PHI and the permutes.
1978
1979 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1980
1981 * config/riscv/t-riscv: Change Tab into 2 space.
1982
1983 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1984
1985 * config/riscv/riscv-vector-builtins.cc (mangle_builtin_type): Move down the function.
1986
1987 2022-10-17 Arsen Arsenovic <arsen@aarsen.me>
1988
1989 * config.gcc: --target=*-elf --without-{newlib,headers} should
1990 provide stdint.h.
1991
1992 2022-10-17 Hu, Lin1 <lin1.hu@intel.com>
1993
1994 * common/config/i386/cpuinfo.h:
1995 (get_intel_cpu): Handle Meteorlake.
1996 * common/config/i386/i386-common.cc:
1997 (processor_alias_table): Add Meteorlake.
1998
1999 2022-10-17 Haochen Jiang <haochen.jiang@intel.com>
2000
2001 * common/config/i386/cpuinfo.h:
2002 (get_intel_cpu): Handle Raptorlake.
2003 * common/config/i386/i386-common.cc:
2004 (processor_alias_table): Add Raptorlake.
2005
2006 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
2007
2008 * config/h8300/constraints.md (Z0..Z7): New register
2009 constraints.
2010 * config/h8300/h8300.h (reg_class): Add new classes.
2011 (REG_CLASS_NAMES): Similarly.
2012 (REG_CLASS_CONTENTS): Similarly.
2013
2014 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
2015
2016 * config/h8300/constraints.md (Zz constraint): Renamed
2017 from "z".
2018 * config/h8300/movepush.md (movqi_h8sx, movhi_h8sx): Adjust
2019 constraint to use Zz instead of Z.
2020
2021 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
2022
2023 * config/h8300/h8300.cc (h8300_register_move_cost): Fix typo.
2024
2025 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2026
2027 * value-range.cc (frange::set): Implement distinction between
2028 HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS.
2029
2030 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2031
2032 * gimple-range-op.cc (class cfn_copysign): New.
2033 (gimple_range_op_handler::maybe_builtin_call): Add
2034 CFN_BUILT_IN_COPYSIGN*.
2035
2036 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2037
2038 * real.h (real_isdenormal): Check rvc_normal.
2039 * value-range.cc (range_tests_floats): New test.
2040
2041 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2042
2043 * gimple-range-op.cc
2044 (gimple_range_op_handler::maybe_builtin_call): Replace
2045 CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN.
2046
2047 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2048
2049 * value-range.cc (frange::set): Normalize ranges for both bounds.
2050
2051 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2052
2053 * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS.
2054
2055 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
2056
2057 * gimple-range-op.cc
2058 (gimple_range_op_handler::maybe_builtin_call): Add
2059 CFN_BUILT_IN_SIGNBIT[FL]* entries.
2060
2061 2022-10-14 Richard Biener <rguenther@suse.de>
2062
2063 PR tree-optimization/107254
2064 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
2065 For permutes also analyze live lanes.
2066 (vect_schedule_slp_node): For permutes also code generate
2067 live lane extracts.
2068
2069 2022-10-14 Eric Botcazou <ebotcazou@adacore.com>
2070
2071 PR target/107248
2072 * config/sparc/sparc.cc (sparc_expand_prologue): Emit a frame
2073 blockage for leaf functions.
2074 (sparc_flat_expand_prologue): Emit frame instead of full blockage.
2075 (sparc_expand_epilogue): Emit a frame blockage for leaf functions.
2076 (sparc_flat_expand_epilogue): Emit frame instead of full blockage.
2077
2078 2022-10-14 Jakub Jelinek <jakub@redhat.com>
2079
2080 * tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE.
2081 * tree.h (bfloat16_type_node): Define.
2082 * tree.cc (excess_precision_type): Promote bfloat16_type_mode
2083 like float16_type_mode.
2084 (build_common_tree_nodes): Initialize bfloat16_type_node if
2085 BFmode is supported.
2086 * expmed.h (maybe_expand_shift): Declare.
2087 * expmed.cc (maybe_expand_shift): No longer static.
2088 * expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF
2089 conversions. If there is no optab, handle BF -> {DF,XF,TF,HF}
2090 conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add
2091 -ffast-math generic implementation for BF -> SF and SF -> BF
2092 conversions.
2093 * builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New.
2094 * builtins.def (BUILT_IN_NANSF16B): New builtin.
2095 * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B.
2096 * config/i386/i386.cc (classify_argument): Handle E_BCmode.
2097 (ix86_libgcc_floating_mode_supported_p): Also return true for BFmode
2098 for -msse2.
2099 (ix86_mangle_type): Mangle BFmode as DF16b.
2100 (ix86_invalid_conversion, ix86_invalid_unary_op,
2101 ix86_invalid_binary_op): Remove.
2102 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP,
2103 TARGET_INVALID_BINARY_OP): Don't redefine.
2104 * config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove.
2105 (ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than
2106 ix86_bf16_type_node, only create it if still NULL.
2107 * config/i386/i386-builtin-types.def (BFLOAT16): Likewise.
2108 * config/i386/i386.md (cbranchbf4, cstorebf4): New expanders.
2109
2110 2022-10-14 Jakub Jelinek <jakub@redhat.com>
2111
2112 PR middle-end/323
2113 PR c++/107097
2114 * doc/invoke.texi (-fexcess-precision=standard): Mention that the
2115 option now also works in C++.
2116
2117 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
2118
2119 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return
2120 early for calls made from thunks.
2121
2122 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
2123
2124 * expr.cc (emit_group_stote): Fix handling of modes of different
2125 sizes for big-endian targets in latest change and add commentary.
2126
2127 2022-10-13 Martin Liska <mliska@suse.cz>
2128
2129 * output.h (assemble_vtv_preinit_initializer): Remove.
2130 * varasm.cc (assemble_vtv_preinit_initializer): Remove.
2131
2132 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2133
2134 PR tree-optimization/102540
2135 PR tree-optimization/102872
2136 * gimple-range-cache.cc (ranger_cache::fill_block_cache):
2137 Handle partial equivs.
2138 (ranger_cache::range_from_dom): Cleanup dump output.
2139
2140 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2141
2142 * range-op.cc (operator_cast::lhs_op1_relation): New.
2143 (operator_bitwise_and::lhs_op1_relation): New.
2144
2145 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2146
2147 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Use
2148 iterator.
2149 * value-relation.cc
2150 (equiv_relation_iterator::equiv_relation_iterator): New.
2151 (equiv_relation_iterator::next): New.
2152 (equiv_relation_iterator::get_name): New.
2153 * value-relation.h (class relation_oracle): Privatize some methods.
2154 (class equiv_relation_iterator): New.
2155 (FOR_EACH_EQUIVALENCE): New.
2156 (FOR_EACH_PARTIAL_EQUIV): New.
2157 (FOR_EACH_PARTIAL_AND_FULL_EQUIV): New.
2158
2159 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
2160
2161 * value-relation.cc (equiv_chain::dump): Don't print empty
2162 equivalences.
2163 (equiv_oracle::equiv_oracle): Allocate a partial equiv table.
2164 (equiv_oracle::~equiv_oracle): Release the partial equiv table.
2165 (equiv_oracle::add_partial_equiv): New.
2166 (equiv_oracle::partial_equiv_set): New.
2167 (equiv_oracle::partial_equiv): New.
2168 (equiv_oracle::query_relation): Check for partial equivs too.
2169 (equiv_oracle::dump): Also dump partial equivs.
2170 (dom_oracle::register_relation): Handle partial equivs.
2171 (dom_oracle::query_relation): Check for partial equivs.
2172 * value-relation.h (enum relation_kind_t): Add partial equivs.
2173 (relation_partial_equiv_p): New.
2174 (relation_equiv_p): New.
2175 (class pe_slice): New.
2176 (class equiv_oracle): Add prototypes.
2177 (pe_to_bits): New.
2178 (bits_to_pe): New.
2179 (pe_min): New.
2180
2181 2022-10-13 Richard Biener <rguenther@suse.de>
2182
2183 PR tree-optimization/107247
2184 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
2185 Reduce multi vector SLP reduction accumulators. Check
2186 the adjusted number of accumulator vectors against
2187 one for the re-use in the epilogue.
2188
2189 2022-10-13 Jakub Jelinek <jakub@redhat.com>
2190
2191 * genmodes.cc (emit_mode_wider): Emit previous content of
2192 mode_wider array into mode_next array and for mode_wider
2193 emit always VOIDmode for !CLASS_HAS_WIDER_MODES_P classes,
2194 otherwise skip through modes with the same precision.
2195 * machmode.h (mode_next): Declare.
2196 (GET_MODE_NEXT_MODE): New inline function.
2197 (mode_iterator::get_next, mode_iterator::get_known_next): New
2198 function templates.
2199 (FOR_EACH_MODE_IN_CLASS): Use get_next instead of get_wider.
2200 (FOR_EACH_MODE): Use get_known_next instead of get_known_wider.
2201 (FOR_EACH_MODE_FROM): Use get_next instead of get_wider.
2202 (FOR_EACH_WIDER_MODE_FROM): Define.
2203 (FOR_EACH_NEXT_MODE): Define.
2204 * expmed.cc (emit_store_flag_1): Use FOR_EACH_WIDER_MODE_FROM
2205 instead of FOR_EACH_MODE_FROM.
2206 * optabs.cc (prepare_cmp_insn): Likewise. Remove redundant
2207 !CLASS_HAS_WIDER_MODES_P check.
2208 (prepare_float_lib_cmp): Use FOR_EACH_WIDER_MODE_FROM instead of
2209 FOR_EACH_MODE_FROM.
2210 * config/i386/i386-expand.cc (get_mode_wider_vector): Use
2211 GET_MODE_NEXT_MODE instead of GET_MODE_WIDER_MODE.
2212
2213 2022-10-13 Wilco Dijkstra <wdijkstr@arm.com>
2214
2215 PR target/105773
2216 * config/aarch64/aarch64.cc (aarch64_select_cc_mode): Allow
2217 GT/LE for merging compare with zero into AND.
2218 (aarch64_get_condition_code_1): Add CC_NZVmode support.
2219 * config/aarch64/aarch64-modes.def: Add CC_NZV.
2220 * config/aarch64/aarch64.md: Use CC_NZV in cmp+and patterns.
2221
2222 2022-10-13 Richard Biener <rguenther@suse.de>
2223
2224 PR tree-optimization/107160
2225 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
2226 Do not register accumulator if we failed to reduce it
2227 to a single vector.
2228
2229 2022-10-13 Aldy Hernandez <aldyh@redhat.com>
2230
2231 * range-op-float.cc (range_operator_float::op1_op2_relation): New.
2232 (class foperator_equal): Add using.
2233 (class foperator_not_equal): Same.
2234 (class foperator_lt): Same.
2235 (class foperator_le): Same.
2236 (class foperator_gt): Same.
2237 (class foperator_ge): Same.
2238 * range-op.cc (range_op_handler::op1_op2_relation): New.
2239 * range-op.h (range_operator_float::op1_op2_relation): New.
2240
2241 2022-10-13 Richard Biener <rguenther@suse.de>
2242
2243 * genmatch.cc (parser::parse_c_expr): Diagnose 'return'.
2244 * match.pd: Replace 'return' statements in with expressions
2245 with appropriate variants.
2246
2247 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
2248
2249 PR tree-optimization/107229
2250 * tree-if-conv.cc (get_bitfield_rep): Fix bitposition calculation.
2251
2252 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
2253
2254 PR tree-optimization/107226
2255 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Reject
2256 BITFIELD_REF's with non integral typed first operands.
2257
2258 2022-10-13 Joseph Myers <joseph@codesourcery.com>
2259
2260 * ginclude/float.h (FLT_IS_IEC_60559, DBL_IS_IEC_60559)
2261 (LDBL_IS_IEC_60559): Update comment.
2262
2263 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
2264
2265 * range-op-float.cc (class foperator_negate): New.
2266 (floating_op_table::floating_op_table): Add NEGATE_EXPR
2267 (range_op_float_tests): Add negate tests.
2268
2269 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2270
2271 * config/riscv/riscv-vector-builtins.h: Remove unused macro.
2272
2273 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2274
2275 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Apply
2276 clang-format.
2277 (add_vector_type_attribute): Ditto.
2278 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Apply
2279 clang-format.
2280 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TYPE): Apply
2281 clang-format.
2282
2283 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2284
2285 * config/riscv/riscv-vector-builtins.cc (builtin_types): Redefine
2286 vector types.
2287 (build_const_pointer): New function.
2288 (register_builtin_type): Ditto.
2289 (DEF_RVV_TYPE): Simplify macro.
2290 (register_vector_type): Refine implementation.
2291 * config/riscv/riscv-vector-builtins.h (rvv_builtin_types_t): New.
2292
2293 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2294
2295 * config/riscv/riscv-vector-builtins.h (class rvv_switcher): Move to
2296 this to ....
2297 * config/riscv/riscv-vector-builtins.cc (class rvv_switcher):
2298 here.
2299
2300 2022-10-12 Cui,Lili <lili.cui@intel.com>
2301
2302 * config/i386/driver-i386.cc (host_detect_local_cpu):
2303 Move sapphirerapids out of AVX512_VP2INTERSECT.
2304 * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
2305 * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS
2306
2307 2022-10-12 Martin Liska <mliska@suse.cz>
2308
2309 * gcov-io.cc (gcov_write_summary): Rename to ...
2310 (gcov_write_object_summary): ... this.
2311 * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY_LENGTH): Rename from ...
2312 (GCOV_TAG_SUMMARY_LENGTH): ... this.
2313
2314 2022-10-12 Martin Liska <mliska@suse.cz>
2315
2316 * configure: Regenerate.
2317
2318 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
2319
2320 * range-op-float.cc (frange_float): New.
2321 (range_op_float_tests): New.
2322 * range-op.cc (range_op_tests): Call range_op_float_tests.
2323
2324 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
2325
2326 * value-range.h (frange::nan_signbit_p): New.
2327
2328 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
2329
2330 * value-range.cc (frange::set_nonnegative): Pass bool to
2331 update_nan.
2332 * value-range.h: Disallow conversion to bool in update_nan().
2333
2334 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
2335
2336 * value-range.h (frange::frange): Add constructor taking type.
2337
2338 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
2339
2340 * range-op-float.cc: Add relation_kind = VREL_VARYING to all
2341 methods.
2342
2343 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
2344
2345 * gimple-range-gori.cc (gori_compute::logical_combine): Avoid
2346 calling tracer.trailer().
2347
2348 2022-10-11 Jakub Jelinek <jakub@redhat.com>
2349
2350 PR target/107185
2351 * config/i386/i386.md (*notxor<mode>_1): Use MASK_REG_P (x) instead of
2352 MASK_REGNO_P (REGNO (x)).
2353
2354 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
2355
2356 * range-op-float.cc (class foperator_abs): New.
2357 (floating_op_table::floating_op_table): Add ABS_EXPR entry.
2358
2359 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
2360
2361 * range-op-float.cc (foperator_unordered_le::op1_range): New.
2362 (foperator_unordered_le::op2_range): New.
2363 (foperator_unordered_gt::op1_range): New.
2364 (foperator_unordered_gt::op2_range): New.
2365 (foperator_unordered_ge::op1_range): New.
2366 (foperator_unordered_ge::op2_range): New.
2367 (foperator_unordered_equal::op1_range): New.
2368
2369 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
2370
2371 * range-op-float.cc (class foperator_unordered_lt): New.
2372 (class foperator_relop_unknown): Remove
2373 (class foperator_unordered_le): New.
2374 (class foperator_unordered_gt): New.
2375 (class foperator_unordered_ge): New.
2376 (class foperator_unordered_equal): New.
2377 (floating_op_table::floating_op_table): Replace all UN_EXPR
2378 entries with their appropriate fop_unordered_* counterpart.
2379
2380 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
2381
2382 * range-op.cc (operator_equal::op1_range): Move BRS_TRUE case up.
2383 (operator_lt::op2_range): Same.
2384 (operator_le::op2_range): Same.
2385 (operator_gt::op2_range): Same.
2386 (operator_ge::op2_range): Same.
2387
2388 2022-10-11 Richard Biener <rguenther@suse.de>
2389
2390 PR tree-optimization/107212
2391 * tree-vect-loop.cc (vectorizable_reduction): Make sure to
2392 set STMT_VINFO_REDUC_DEF for all live lanes in a SLP
2393 reduction.
2394 (vectorizable_live_operation): Do not pun to the SLP
2395 node representative for reduction epilogue generation.
2396
2397 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
2398
2399 * config/gcn/gcn-valu.md (neg<mode>2): New define_expand.
2400
2401 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
2402
2403 * config/gcn/gcn-valu.md (vec_init<V_ALL:mode><V_ALL_ALT:mode>): New.
2404 * config/gcn/gcn.cc (GEN_VN): Add andvNsi3, subvNsi3.
2405 (GEN_VNM): Add gathervNm_expr.
2406 (GEN_VN_NOEXEC): Add vec_seriesvNsi.
2407 (gcn_expand_vector_init): Add initialization of vectors from smaller
2408 vectors.
2409
2410 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
2411
2412 * config/gcn/gcn-protos.h (get_exec): Add prototypes for two variants.
2413 * config/gcn/gcn-valu.md
2414 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): New define_expand.
2415 * config/gcn/gcn.cc (get_exec): Export the existing function. Add a
2416 new overload variant.
2417
2418 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
2419
2420 * config/gcn/gcn-valu.md
2421 (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): Use MODE_VF.
2422 (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): Likewise.
2423 * config/gcn/gcn.h (MODE_VF): New macro.
2424
2425 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
2426
2427 * config/gcn/gcn-modes.def (VECTOR_MODE): Add new modes
2428 V32QI, V32HI, V32SI, V32DI, V32TI, V32HF, V32SF, V32DF,
2429 V16QI, V16HI, V16SI, V16DI, V16TI, V16HF, V16SF, V16DF,
2430 V8QI, V8HI, V8SI, V8DI, V8TI, V8HF, V8SF, V8DF,
2431 V4QI, V4HI, V4SI, V4DI, V4TI, V4HF, V4SF, V4DF,
2432 V2QI, V2HI, V2SI, V2DI, V2TI, V2HF, V2SF, V2DF.
2433 (ADJUST_ALIGNMENT): Likewise.
2434 * config/gcn/gcn-protos.h (gcn_full_exec): Delete.
2435 (gcn_full_exec_reg): Delete.
2436 (gcn_scalar_exec): Delete.
2437 (gcn_scalar_exec_reg): Delete.
2438 (vgpr_1reg_mode_p): Use inner mode to identify vector registers.
2439 (vgpr_2reg_mode_p): Likewise.
2440 (vgpr_vector_mode_p): Use VECTOR_MODE_P.
2441 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF,
2442 V_QIHI, V_1REG, V_INT_1REG, V_INT_1REG_ALT, V_FP_1REG, V_2REG, V_noQI,
2443 V_noHI, V_INT_noQI, V_INT_noHI, V_ALL, V_ALL_ALT, V_INT, V_FP):
2444 Add additional vector modes.
2445 (V64_SI, V64_DI, V64_ALL, V64_FP): New iterators.
2446 (scalar_mode, SCALAR_MODE, vnsi, VnSI, vndi, VnDI, sdwa):
2447 Add additional vector mode mappings.
2448 (mov<mode>): Implement vector length conversions.
2449 (ldexp<mode>3<exec>): Use VnSI.
2450 (frexp<mode>_exp2<exec>): Likewise.
2451 (VCVT_MODE, VCVT_FMODE, VCVT_IMODE): Add additional vector modes.
2452 (reduc_<reduc_op>_scal_<mode>): Use V64_ALL.
2453 (fold_left_plus_<mode>): Use V64_FP.
2454 (*<reduc_op>_dpp_shr_<mode>): Use V64_1REG.
2455 (*<reduc_op>_dpp_shr_<mode>): Use V64_DI.
2456 (*plus_carry_dpp_shr_<mode>): Use V64_INT_1REG.
2457 (*plus_carry_in_dpp_shr_<mode>): Use V64_SI.
2458 (*plus_carry_dpp_shr_<mode>): Use V64_DI.
2459 (mov_from_lane63_<mode>): Use V64_2REG.
2460 * config/gcn/gcn.cc (VnMODE): New function.
2461 (gcn_can_change_mode_class): Support multiple vector sizes.
2462 (gcn_modes_tieable_p): Likewise.
2463 (gcn_operand_part): Likewise.
2464 (gcn_scalar_exec): Delete function.
2465 (gcn_scalar_exec_reg): Delete function.
2466 (gcn_full_exec): Delete function.
2467 (gcn_full_exec_reg): Delete function.
2468 (gcn_inline_fp_constant_p): Support multiple vector sizes.
2469 (gcn_fp_constant_p): Likewise.
2470 (A): New macro.
2471 (GEN_VN_NOEXEC): New macro.
2472 (GEN_VNM_NOEXEC): New macro.
2473 (GEN_VN): New macro.
2474 (GEN_VNM): New macro.
2475 (GET_VN_FN): New macro.
2476 (CODE_FOR): New macro.
2477 (CODE_FOR_OP): New macro.
2478 (gen_mov_with_exec): Delete function.
2479 (gen_duplicate_load): Delete function.
2480 (gcn_expand_vector_init): Support multiple vector sizes.
2481 (strided_constant): Likewise.
2482 (gcn_addr_space_legitimize_address): Likewise.
2483 (gcn_expand_scalar_to_vector_address): Likewise.
2484 (gcn_expand_scaled_offsets): Likewise.
2485 (gcn_secondary_reload): Likewise.
2486 (gcn_valid_cvt_p): Likewise.
2487 (gcn_expand_builtin_1): Likewise.
2488 (gcn_make_vec_perm_address): Likewise.
2489 (gcn_vectorize_vec_perm_const): Likewise.
2490 (gcn_vector_mode_supported_p): Likewise.
2491 (gcn_autovectorize_vector_modes): New hook.
2492 (gcn_related_vector_mode): Support multiple vector sizes.
2493 (gcn_expand_dpp_shr_insn): Add FIXME comment.
2494 (gcn_md_reorg): Support multiple vector sizes.
2495 (print_reg): Likewise.
2496 (print_operand): Likewise.
2497 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): New hook.
2498
2499 2022-10-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
2500
2501 * tree-if-conv.cc (if_convertible_loop_p_1): Move ordering of loop bb's from
2502 here...
2503 (tree_if_conversion): ... to here. Also call bitfield lowering when
2504 appropriate.
2505 (version_loop_for_if_conversion): Adapt to enable loop versioning when we only
2506 need to lower bitfields.
2507 (ifcvt_split_critical_edges): Relax condition of expected loop form as this is
2508 checked earlier.
2509 (get_bitfield_rep): New function.
2510 (lower_bitfield): Likewise.
2511 (bitfields_to_lower_p): Likewise.
2512 (need_to_lower_bitfields): New global boolean.
2513 (need_to_ifcvt): Likewise.
2514 * tree-vect-data-refs.cc (vect_find_stmt_data_reference): Improve diagnostic
2515 message.
2516 * tree-vect-patterns.cc (vect_recog_temp_ssa_var): Add default value for last
2517 parameter.
2518 (vect_recog_bitfield_ref_pattern): New.
2519 (vect_recog_bit_insert_pattern): New.
2520
2521 2022-10-11 liuhongt <hongtao.liu@intel.com>
2522
2523 PR target/107093
2524 * config/i386/i386.md (*notxor<mode>_1): New post_reload
2525 define_insn_and_split.
2526 (*notxorqi_1): Ditto.
2527
2528 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
2529
2530 PR tree-optimization/107195
2531 * value-range.cc (irange::set_range_from_nonzero_bits): Set range
2532 to [0,0] when nonzero mask is 0.
2533
2534 2022-10-11 Olivier Hainque <hainque@adacore.com>
2535 Olivier Hainque <hainque@adacore.com>
2536
2537 * configure: Regenerate.
2538
2539 2022-10-11 Olivier Hainque <hainque@adacore.com>
2540
2541 * config.gcc (*vxworks*): Add t-slibgcc fragment
2542 if enable_shared.
2543
2544 2022-10-11 Olivier Hainque <hainque@adacore.com>
2545
2546 * config/vxworks.h (VX_LGCC_EH_SO0, VX_LGCC_EH_SO1): New
2547 internal macros.
2548 (VXWORKS_LIBGCC_SPEC): Use them and document.
2549
2550 2022-10-11 Martin Liska <mliska@suse.cz>
2551
2552 * gimple-range-op.cc: Add override keyword.
2553
2554 2022-10-11 Eugene Rozenfeld <erozen@microsoft.com>
2555
2556 PR debug/107193
2557 * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e
2558 out of the loop.
2559
2560 2022-10-11 Liwei Xu <liwei.xu@intel.com>
2561 liuhongt <hongtao.liu@intel.com>
2562
2563 PR tree-optimization/54346
2564 * match.pd: Merge the index of VCST then generates the new vec_perm.
2565
2566 2022-10-11 Jeff Law <jeffreyalaw@gmail.com>
2567
2568 PR rtl-optimization/107182
2569 * cfgrtl.cc (fixup_reorder_chain): When optimizing a jump to a
2570 return, clear EDGE_CROSSING on the appropriate edge.
2571
2572 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2573
2574 * config/riscv/riscv-vector-builtins.cc (struct vector_type_info): Move
2575 from config/riscv/riscv-vector-builtins.h.
2576 (DEF_RVV_TYPE): Change USER_NAME to NAME.
2577 (register_vector_type): Change user_name to name.
2578 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Change
2579 USER_NAME to NAME.
2580 * config/riscv/riscv-vector-builtins.h (struct vector_type_info): Move
2581 to riscv-vector-builtins.cc.
2582 (DEF_RVV_TYPE): Change USER_NAME to NAME.
2583
2584 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2585
2586 * config/riscv/riscv.md: Add vsetvl instruction type.
2587
2588 2022-10-10 Nathan Sidwell <nathan@acm.org>
2589
2590 * common.opt (-fabi-version=): Document 18.
2591 * doc/invoke.texi (-fabi-version): Document 18.
2592
2593 2022-10-10 Andrea Corallo <andrea.corallo@arm.com>
2594
2595 PR other/99723
2596 * toplev.cc (toplev::main): Don't run self tests in case of
2597 previous error.
2598
2599 2022-10-10 Kito Cheng <kito.cheng@sifive.com>
2600
2601 * config/riscv/riscv-c.cc: Add newline to the end of file.
2602
2603 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
2604
2605 * range-op-float.cc (class foperator_identity): Make members public.
2606 (class foperator_equal): Same.
2607 (class foperator_not_equal): Same.
2608 (class foperator_lt): Same.
2609 (class foperator_le): Same.
2610 (class foperator_gt): Same.
2611 (class foperator_ge): Same.
2612 (class foperator_unordered): Same.
2613 (class foperator_ordered): Same.
2614
2615 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
2616
2617 * value-range.h (frange::maybe_isnan): New.
2618
2619 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
2620
2621 * range-op-float.cc (foperator_not_equal::op1_range): Set NAN on
2622 TRUE side for x != x.
2623
2624 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
2625
2626 * range-op-float.cc (foperator_unordered::op1_range): Set NAN when
2627 operands are equal and result is TRUE.
2628
2629 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
2630
2631 * range.h (range_true): Return int_range<2>.
2632 (range_false): Same.
2633 (range_true_and_false): Same.
2634
2635 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
2636
2637 * gimple-range-op.cc: Add op1_range entry for __builtin_signbit.
2638
2639 2022-10-10 liuhongt <hongtao.liu@intel.com>
2640
2641 PR target/107185
2642 * config/i386/i386.md (lrint<MODEF:mode><SWI48:mode>2): Swap
2643 predicate of operands[0] and operands[1].
2644
2645 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
2646
2647 * common/config/arc/arc-common.cc (arc_option_optimization_table):
2648 Remove Rcq and Rcw options.
2649 * config/arc/arc.opt (mRcq): Ignore option, preserve it for
2650 backwards compatibility.
2651 (mRcw): Likewise.
2652 * doc/invoke.texi (mRcw, mRcq): Update document.
2653
2654 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
2655
2656 * config/arc/arc.cc (arc_check_short_reg_p): New function.
2657 (arc_address_cost): Replace satisfies_constraint_Rcq with the
2658 above new function.
2659 (arc_output_addsi): Likewise.
2660 (split_addsi): Likewise.
2661 (split_subsi): Likewise.
2662 * config/arc/arc.md (movqi_insn): Remove Rcq constraint.
2663 (movhi_insn): Likewise.
2664 (movsi_insn): Likewise.
2665 (tst_movb): Likewise.
2666 (tst): Likewise.
2667 (tst_bitfield): Likewise.
2668 (abssi2): Likewise.
2669 (addsi3_mixed): Likewise.
2670 (mulhisi3_reg): Likewise.
2671 (umulhisi3_reg): Likewise.
2672 (mulsi_600): Likewise.
2673 (mul64): Likewise.
2674 (subsi3_insn): Likewise.
2675 (bicsi3_insn): Likewise.
2676 (xorsi3): Likewise.
2677 (negsi2): Likewise.
2678 (one_cmplsi2): Likewise.
2679 (lshrsi3_insn): Likewise.
2680 (cmpsi_cc_insn_mixed): Likewise.
2681 (cmpsi_cc_zn_insn): Likewise.
2682 (btst): Likewise.
2683 (cmpsi_cc_z_insn): Likewise.
2684 (cmpsi_cc_c_insn): Likewise.
2685 (indirect_jump): Likewise.
2686 (casesi_jump): Likewise.
2687 (call_i): Likewise.
2688 (call_value_i): Likewise.
2689 (bbit): Likewise.
2690 (abssf2): Likewise.
2691 (ashlsi2_cnt1): Likewise.
2692 (lshrsi3_cnt1): Likewise.
2693 (ashrsi3_cnt1): Likewise.
2694 * config/arc/constraints.md (Rcq): Remove.
2695
2696 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
2697
2698 * config/arc/arc.md (smaxsi3): Remove Rcw.
2699 (sminsi3): Likewise.
2700 (addsi3_mixed): Likewise.
2701 (add_f_2): Likewise.
2702 (subsi3_insn): Likewise.
2703 (sub_f): Likewise.
2704 (sub_n): Likewise.
2705 (bset): Likewise.
2706 (bxor): Likewise.
2707 (bclr): Likewise.
2708 (bset_insn): Likewise.
2709 (bxor_insn): Likewise.
2710 (bclr_insn): Likewise.
2711 (bmsk_insn): Likewise.
2712 (bicsi3_insn): Likewise.
2713 (xorsi3): Likewise.
2714 (negsi2): Likewise.
2715 (lshrsi3_insn): Likewise.
2716 (abssf2): Likewise.
2717 (negsf2): Likewise.
2718 * config/arc/constraints.md(Rcw): Remove it.
2719
2720 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
2721
2722 * config/arc/arc.md(mulsi3_700): Remove Rcr.
2723 (mulsi3_highpart): Likewise.
2724 (umulsi3_highpart_i): Likewise.
2725 (umulsi3_highpart_int): Likewise.
2726 (macd): Likewise.
2727 (macdu): Likewise.
2728 * config/arc/constraints.md (Rcr): Remove it.
2729
2730 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
2731
2732 * config/arc/arc.cc (arc_save_callee_enter): Use negative offsets.
2733
2734 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
2735
2736 PR target/106562
2737 * config/pru/pru-protos.h (pru_noteq_condition): New
2738 function declaration.
2739 * config/pru/pru.cc (pru_noteq_condition): New function.
2740 * config/pru/pru.md (cbranchdi4): Define new pattern.
2741
2742 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
2743
2744 * config/pru/pru.md (lshrdi3): New expand pattern.
2745 (ashldi3): Ditto.
2746
2747 2022-10-09 YunQiang Su <yunqiang.su@cipunited.com>
2748
2749 * config.gcc: set with_arch to default_mips_arch if no defined.
2750 * config/mips/driver-native.cc (host_detect_local_cpu):
2751 try getauxval(AT_BASE_PLATFORM) and _MIPS_ARCH, too.
2752 pass -mnan=2008 if __mips_nan2008__ is defined.
2753 * config.in: define HAVE_SYS_AUXV_H and HAVE_GETAUXVAL.
2754 * configure.ac: detect sys/auxv.h and getauxval.
2755 * configure: regenerated.
2756
2757 2022-10-07 Eugene Rozenfeld <erozen@microsoft.com>
2758
2759 * tree-cfg.cc (assign_discriminators): Set discriminators for call stmts
2760 on the same line within the same basic block.
2761
2762 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
2763
2764 PR tree-optimization/101836
2765 * tree-object-size.cc (addr_object_size): Use array_at_struct_end_p
2766 to determine a flexible array member reference.
2767
2768 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
2769
2770 * doc/extend.texi: Document strict_flex_array attribute.
2771 * doc/invoke.texi: Document -fstrict-flex-arrays[=n] option.
2772 * print-tree.cc (print_node): Print new bit decl_not_flexarray.
2773 * tree-core.h (struct tree_decl_common): New bit field
2774 decl_not_flexarray.
2775 * tree-streamer-in.cc (unpack_ts_decl_common_value_fields): Stream
2776 in new bit decl_not_flexarray.
2777 * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream
2778 out new bit decl_not_flexarray.
2779 * tree.cc (array_at_struct_end_p): Update it with the new bit field
2780 decl_not_flexarray.
2781 * tree.h (DECL_NOT_FLEXARRAY): New flag.
2782
2783 2022-10-07 Olivier Hainque <hainque@adacore.com>
2784
2785 * config/vxworks/_vxworks-versions.h: Use OS specific
2786 paths in #include of version.h.
2787
2788 2022-10-07 Martin Liska <mliska@suse.cz>
2789
2790 * opts.cc (finish_options): Print sorry message only
2791 for -flive-patching=inline-only-static.
2792
2793 2022-10-07 Jason Merrill <jason@redhat.com>
2794
2795 * gimplify.cc (gimplify_modify_expr_rhs): Don't optimize
2796 x = *(A*)&<expr> to x = <expr> for a TREE_ADDRESSABLE type.
2797
2798 2022-10-07 Richard Biener <rguenther@suse.de>
2799
2800 PR tree-optimization/107153
2801 * tree-cfg.cc (gimple_duplicate_sese_tail): Do not update
2802 SSA form here.
2803 * tree-parloops.cc (gen_parallel_loop): Update SSA form
2804 after to-exit-first transform, no PHI insertion is necessary.
2805 (pass_parallelize_loops::execute): Force re-write of the
2806 virtual operand SSA web.
2807
2808 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
2809
2810 * value-range.cc (irange::irange_contains_p): Fix comment typo.
2811
2812 2022-10-07 Eric Botcazou <ebotcazou@adacore.com>
2813
2814 * function.cc (thread_prologue_and_epilogue_insns): Update only
2815 entry and exit blocks when not optimizing. Remove dead statement.
2816
2817 2022-10-07 Aldy Hernandez <aldyh@redhat.com>
2818
2819 * value-range.cc (irange::irange_set): Convert nonzero mask to
2820 tree.
2821 (irange::irange_set_anti_range): Same.
2822 (irange::set): Same.
2823 (irange::verify_range): Same.
2824 (irange::contains_p): Same.
2825 (irange::invert): Same.
2826 (irange::set_range_from_nonzero_bits): Same.
2827 (irange::set_nonzero_bits): Same.
2828 (mask_to_wi): Same.
2829 (irange::intersect_nonzero_bits): Same.
2830 (irange::union_nonzero_bits): Same.
2831 * value-range.h (irange::varying_compatible_p): Same.
2832 (gt_ggc_mx): Same.
2833 (gt_pch_nx): Same.
2834 (irange::set_undefined): Same.
2835 (irange::set_varying): Same.
2836
2837 2022-10-07 Martin Liska <mliska@suse.cz>
2838
2839 * config/i386/i386-protos.h (ix86_binary_operator_ok): Add array
2840 size to function parameter.
2841 (ix86_unary_operator_ok): Likewise.
2842
2843 2022-10-07 Martin Liska <mliska@suse.cz>
2844
2845 * auto-profile.cc (get_inline_stack): Remove unused variable.
2846
2847 2022-10-07 Jakub Jelinek <jakub@redhat.com>
2848
2849 * ipa-prop.h (ipa_constant_data): Fix comment typo.
2850 * value-range.cc (irange::irange_contains_p): Likewise.
2851 * value-relation.cc (dom_oracle::set_one_relation): Likewise.
2852 * gimple-predicate-analysis.cc (predicate::simplify_4): Likewise.
2853 * tree-inline.cc (remap_ssa_name): Likewise.
2854
2855 2022-10-07 Jakub Jelinek <jakub@redhat.com>
2856
2857 * attribs.h (is_attribute_namespace_p): New inline function.
2858 (lookup_attribute): Document meaning of ATTR_NS equal to "".
2859 * attribs.cc (remove_attribute): Use is_attribute_namespace_p.
2860 (private_lookup_attribute): For ATTR_NS "" match either standard
2861 attribute or "gnu" namespace one.
2862
2863 2022-10-07 Olivier Hainque <hainque@adacore.com>
2864
2865 * config/vxworks.h (DWARF_VERSION_DEFAULT): Adjust from
2866 4 to 3 for VxWorks >= 7.
2867
2868 2022-10-07 Olivier Hainque <hainque@adacore.com>
2869
2870 * defaults.h (DWARF_DEFAULT_VERSION): Define if not
2871 defined already.
2872 * common.opt (gdwarf-): Use it.
2873 * doc/tm.texi.in (DWARF_DEFAULT_VERSION): Document.
2874 * doc/tm.texi: Update accordingly.
2875 * config/vxworks.h (DWARF_DEFAULT_VERSION): Redefine.
2876 * config/vxworks.cc: Remove code setting dwarf_version, now
2877 handled by the DWARF_DEFAULT_VERSION redefinition.
2878
2879 2022-10-07 Olivier Hainque <hainque@adacore.com>
2880
2881 * ginclude/stddef.h: #undef offsetof before #define.
2882
2883 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
2884
2885 PR tree-optimization/107170
2886 * vr-values.cc (vr_values::range_of_expr): Do not die on
2887 unsupported types.
2888
2889 2022-10-06 Joseph Myers <joseph@codesourcery.com>
2890
2891 * doc/invoke.texi (-fno-asm): Update description of effects on
2892 typeof keyword.
2893
2894 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
2895
2896 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Bail out for a self
2897 dependency that is a write-after-write if the access function is not
2898 affine or constant.
2899
2900 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
2901
2902 * df-scan.cc (df_ref_create_structure): Minor cleanup.
2903
2904 2022-10-06 Richard Biener <rguenther@suse.de>
2905
2906 PR middle-end/107115
2907 * expr.cc (store_expr): Check mems_same_for_tbaa_p before
2908 eliding a seemingly redundant store.
2909
2910 2022-10-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2911
2912 * config/aarch64/atomics.md (*atomic_load<ALLX:mode>_zext<SD_HSDI:mode>):
2913 New pattern.
2914
2915 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
2916
2917 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
2918 Ampere-1 core entry.
2919
2920 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
2921
2922 * config/aarch64/driver-aarch64.cc (readline): Fix off-by-one.
2923
2924 2022-10-06 Richard Biener <rguenther@suse.de>
2925
2926 PR tree-optimization/107107
2927 * tree-ssa-sccvn.cc (visit_reference_op_store): Do not
2928 affect value-numbering when doing the tail merging
2929 MODIFY_EXPR lookup.
2930
2931 2022-10-06 Claudiu Zissulescu <claziss@synopsys.com>
2932
2933 * config/arc/linux.h (LINK_SPEC): Remove max-page-size and
2934 common-pave-size.
2935
2936 2022-10-06 Jakub Jelinek <jakub@redhat.com>
2937
2938 PR c++/106654
2939 * internal-fn.def (ASSUME): New internal function.
2940 * internal-fn.h (expand_ASSUME): Declare.
2941 * internal-fn.cc (expand_ASSUME): Define.
2942 * gimplify.cc (gimplify_call_expr): Gimplify IFN_ASSUME.
2943 * fold-const.h (simple_condition_p): Declare.
2944 * fold-const.cc (simple_operand_p_2): Rename to ...
2945 (simple_condition_p): ... this. Remove forward declaration.
2946 No longer static. Adjust function comment and fix a typo in it.
2947 Adjust recursive call.
2948 (simple_operand_p): Adjust function comment.
2949 (fold_truth_andor): Adjust simple_operand_p_2 callers to call
2950 simple_condition_p.
2951 * doc/extend.texi: Document assume attribute. Move fallthrough
2952 attribute example to its section.
2953
2954 2022-10-06 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2955
2956 PR rtl-optimization/107088
2957 * cselib.cc (new_cselib_val): Skip BImode while keeping track of
2958 subvalue relations.
2959
2960 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
2961
2962 * value-range.cc (frange::set): Call set_nan unconditionally.
2963 (range_tests_nan): Adjust tests.
2964 (range_tests_signed_zeros): Same.
2965 (range_tests_floats): Same.
2966 * value-range.h (frange::update_nan): Guard with HONOR_NANS.
2967 (frange::set_nan): Set undefined if !HONOR_NANS.
2968
2969 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
2970
2971 * range-op-float.cc (foperator_lt::fold_range): Remove extra check
2972 to finite_operands_p.
2973 (foperator_le::fold_range): Same.
2974 (foperator_gt::fold_range): Same.
2975 (foperator_ge::fold_range): Same.
2976
2977 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
2978
2979 * value-range-pretty-print.cc (vrange_printer::print_real_value):
2980 Avoid printing INF and NAN twice.
2981
2982 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
2983
2984 * config/rs6000/constraints.md (wD): Delete.
2985 * doc/md.texi (Machine Constraints): Adjust.
2986
2987 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
2988
2989 * config/rs6000/vsx.md (vsx_extract_<mode>): Replace define_insn by a
2990 define_expand. Split the contents to...
2991 (*vsx_extract_<mode>_0): ... this. Rewrite.
2992 (*vsx_extract_<mode>_1): ... and this. Rewrite.
2993
2994 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
2995
2996 * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of
2997 "wD" constraint.
2998
2999 2022-10-05 David Malcolm <dmalcolm@redhat.com>
3000
3001 PR analyzer/107060
3002 * doc/analyzer.texi (__analyzer_get_unknown_ptr): Document.
3003
3004 2022-10-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3005
3006 * config.gcc: Add riscv_vector.h.
3007 * config/riscv/riscv-builtins.cc: Add RVV builtin types support.
3008 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): New function.
3009 (riscv_register_pragmas): Ditto.
3010 * config/riscv/riscv-protos.h (riscv_register_pragmas): Ditto.
3011 (init_builtins): Move declaration from riscv-vector-builtins.h to riscv-protos.h.
3012 (mangle_builtin_type): Ditto.
3013 (verify_type_context): Ditto.
3014 (handle_pragma_vector): New function.
3015 * config/riscv/riscv-vector-builtins.cc (GTY): New variable.
3016 (register_vector_type): New function.
3017 (init_builtins): Add RVV builtin types support.
3018 (handle_pragma_vector): New function.
3019 * config/riscv/riscv-vector-builtins.h (GCC_RISCV_V_BUILTINS_H): Change
3020 name according to file name.
3021 (GCC_RISCV_VECTOR_BUILTINS_H): Ditto.
3022 (init_builtins): Remove declaration in riscv-vector-builtins.h.
3023 (mangle_builtin_type): Ditto.
3024 (verify_type_context): Ditto.
3025 * config/riscv/riscv.cc: Adjust for RVV builtin types support.
3026 * config/riscv/riscv.h (REGISTER_TARGET_PRAGMAS): New macro.
3027 * config/riscv/t-riscv: Remove redundant file including.
3028 * config/riscv/riscv_vector.h: New file.
3029
3030 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
3031
3032 * range-op.cc (operator_cast::fold_range): Handle truncating casts
3033 for nonzero masks.
3034
3035 2022-10-05 Martin Liska <mliska@suse.cz>
3036
3037 PR c/107156
3038 * attribs.h (lookup_attribute_by_prefix): Support the attribute
3039 starting with underscore (_Noreturn).
3040
3041 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
3042
3043 PR tree-optimization/107052
3044 * gimple-range-op.cc (cfn_popcount::fold_range): Take into account
3045 nonzero bit mask.
3046
3047 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
3048
3049 PR tree-optimization/107052
3050 * range-op.cc (operator_cast::fold_range): Set nonzero mask.
3051
3052 2022-10-05 Eric Botcazou <ebotcazou@adacore.com>
3053
3054 PR tree-optimization/106698
3055 * pointer-query.cc (handle_array_ref): Fix handling of low bound.
3056
3057 2022-10-05 Vineet Gupta <vineetg@rivosinc.com>
3058
3059 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
3060 Remove __riscv_cmodel_pic, that deprecated in last version.
3061
3062 2022-10-05 David Malcolm <dmalcolm@redhat.com>
3063
3064 PR analyzer/107072
3065 * Makefile.in (ANALYZER_OBJS): Add analyzer/call-summary.o.
3066
3067 2022-10-04 Jakub Jelinek <jakub@redhat.com>
3068
3069 * attribs.h (remove_attribute): Declare overload with additional
3070 attr_ns argument.
3071 (private_lookup_attribute): Declare overload with additional
3072 attr_ns and attr_ns_len arguments.
3073 (lookup_attribute): New overload with additional attr_ns argument.
3074 * attribs.cc (remove_attribute): New overload with additional
3075 attr_ns argument.
3076 (private_lookup_attribute): New overload with additional
3077 attr_ns and attr_ns_len arguments.
3078
3079 2022-10-04 Jakub Jelinek <jakub@redhat.com>
3080
3081 * attribs.cc (handle_ignored_attributes_option, decl_attributes,
3082 common_function_versions): Use auto_diagnostic_group.
3083
3084 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
3085
3086 * value-range.cc (irange::set_nonzero_bits): Remove assert.
3087
3088 2022-10-04 Richard Sandiford <richard.sandiford@arm.com>
3089
3090 * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New macro.
3091 * config/aarch64/aarch64-arches.def (armv8.3-a): Include RCPC.
3092 * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
3093 (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
3094 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
3095 __ARM_FEATURE_RCPC when appropriate.
3096
3097 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
3098
3099 * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax.
3100 (-fopenmp-simd): Likewise; update permitted directives.
3101
3102 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
3103
3104 * doc/install.texi (Specific): Add missing items to bullet list.
3105 (amdgcn): Update LLVM requirements, use version not date for newlib.
3106 (nvptx): Use version not git hash for newlib.
3107
3108 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
3109
3110 * value-range-storage.cc (irange_storage_slot::set_irange): Remove
3111 special case.
3112 * value-range.cc (irange::irange_set): Adjust for nonzero mask
3113 being a wide int.
3114 (irange::irange_set_anti_range): Same.
3115 (irange::set): Same.
3116 (irange::verify_range): Same.
3117 (irange::legacy_equal_p): Same.
3118 (irange::operator==): Same.
3119 (irange::contains_p): Same.
3120 (irange::legacy_intersect): Same.
3121 (irange::legacy_union): Same.
3122 (irange::irange_single_pair_union): Call union_nonzero_bits.
3123 (irange::irange_union): Same.
3124 (irange::irange_intersect): Call intersect_nonzero_bits.
3125 (irange::intersect): Adjust for nonzero mask being a wide int.
3126 (irange::invert): Same.
3127 (irange::set_nonzero_bits): Same.
3128 (irange::get_nonzero_bits_from_range): New.
3129 (irange::set_range_from_nonzero_bits): New.
3130 (irange::get_nonzero_bits): Adjust for nonzero mask being a wide
3131 int.
3132 (irange::intersect_nonzero_bits): Same.
3133 (irange::union_nonzero_bits): Same.
3134 (range_tests_nonzero_bits): Remove test.
3135 * value-range.h (irange::varying_compatible_p): Adjust for nonzero
3136 mask being a wide int.
3137 (gt_ggc_mx): Same.
3138 (gt_pch_nx): Same.
3139 (irange::set_undefined): Same.
3140 (irange::set_varying): Same.
3141 (irange::normalize_kind): Same.
3142
3143 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
3144
3145 PR tree-optimization/107130
3146 * gimple-range-op.cc (class cfn_popcount): Call op_cfn_ffs.
3147 (class cfn_ffs): New.
3148 (gimple_range_op_handler::maybe_builtin_call): Separate out
3149 CASE_CFN_FFS into its own case.
3150
3151 2022-10-03 Sergei Trofimovich <siarheit@google.com>
3152
3153 * config/i386/t-i386: Add build-time dependencies against
3154 i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
3155 i386-features.o.
3156
3157 2022-10-03 Andrew Stubbs <ams@codesourcery.com>
3158
3159 * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
3160 operand 3.
3161 * doc/md.texi (while_ult): Document new operand 3 usage.
3162 * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
3163 maps to a non-vector mode.
3164
3165 2022-10-03 Andrew MacLeod <amacleod@redhat.com>
3166
3167 PR tree-optimization/107109
3168 * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
3169
3170 2022-10-03 Christophe Lyon <christophe.lyon@arm.com>
3171
3172 * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
3173 clobber.
3174 (mve_vrev64q_m_f<mode>): Likewise.
3175
3176 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3177
3178 * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
3179 (range_tests_nonzero_bits): New test.
3180
3181 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3182
3183 * value-range.cc (irange::operator==): Early bail on m_num_ranges
3184 equal to 0.
3185
3186 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3187
3188 * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
3189 check when comparing VR_VARYING ranges.
3190
3191 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
3192
3193 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
3194 incompatible ranges in ipa-prop.
3195
3196 2022-10-02 Jakub Jelinek <jakub@redhat.com>
3197
3198 PR tree-optimization/107121
3199 * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
3200 DEFFERED_INIT -> DEFERRED_INIT.
3201
3202 2022-10-02 Marc Poulhiès <poulhies@adacore.com>
3203
3204 * config/vxworks-driver.cc: New.
3205 * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs.
3206 * config/t-vxworks: Add vxworks-driver.o.
3207 * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New.
3208
3209 2022-10-02 Olivier Hainque <hainque@adacore.com>
3210
3211 * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If
3212 HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless
3213 of ENABLE_SHARED_LIBGCC.
3214
3215 2022-10-01 Stafford Horne <shorne@gmail.com>
3216
3217 * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
3218 HAVE_AS_TLS is defined.
3219
3220 2022-10-01 Julian Brown <julian@codesourcery.com>
3221
3222 * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
3223 handling.
3224
3225 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
3226
3227 * config/h8300/h8300.md (HSI2): New iterator.
3228 (eqne_invert): Similarly.
3229 * config/h8300/testcompare.md (testhi_upper_z): New pattern.
3230 (cmpqi_z, cmphi_z, cmpsi_z): Likewise.
3231 (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New
3232 define_insn_and_splits and/or define_insns.
3233 (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise.
3234 (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise.
3235
3236 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
3237
3238 * tree-ssa-dom.cc (record_edge_info): Install correct version of
3239 patch.
3240
3241 2022-10-01 Eugene Rozenfeld <erozen@microsoft.com>
3242
3243 * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
3244
3245 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
3246
3247 * tree-ssa-dom.cc (single_block_loop_p): New function.
3248 (record_edge_info): Also record equivalences for the outgoing
3249 edge of a single block loop where the condition is an invariant.
3250
3251 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
3252
3253 * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
3254 (free_all_edge_infos): Do not clear e->aux here.
3255
3256 2022-09-30 H.J. Lu <hjl.tools@gmail.com>
3257
3258 * target.def (TARGET_C_EXCESS_PRECISION): Document
3259 -fexcess-precision=16.
3260
3261 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
3262
3263 * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
3264
3265 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
3266
3267 PR target/106815
3268 * config/riscv/riscv.cc (riscv_excess_precision): Add support
3269 for EXCESS_PRECISION_TYPE_FLOAT16.
3270
3271 2022-09-30 Jakub Jelinek <jakub@redhat.com>
3272
3273 PR c++/107080
3274 * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh
3275 and _Float16 as DF16_.
3276 * config/csky/csky.cc (csky_init_builtins): Fix a comment typo.
3277 (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_
3278 rather than mangling __fp16 as __fp16.
3279
3280 2022-09-30 Lewis Hyatt <lhyatt@gmail.com>
3281
3282 PR preprocessor/69543
3283 * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking
3284 information away from the diagnostic location.
3285 (maybe_warn_read_write_only): Likewise.
3286 (maybe_warn_operand): Likewise.
3287
3288 2022-09-30 Jakub Jelinek <jakub@redhat.com>
3289
3290 PR c++/107080
3291 * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
3292 as Dh and _Float16 as DF16_.
3293
3294 2022-09-30 Jakub Jelinek <jakub@redhat.com>
3295
3296 PR c++/107080
3297 * config/i386/i386.cc (ix86_mangle_type): Always return NULL
3298 for float128_type_node or float64x_type_node, don't check
3299 float128t_type_node later on.
3300 * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL
3301 for float128_type_node or float64x_type_node.
3302 * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise.
3303 Don't check float128_type_node later on.
3304 * config/s390/s390.cc (s390_mangle_type): Don't use
3305 TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT
3306 a few lines earlier.
3307
3308 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
3309 Yvan ROUX <yvan.roux@foss.st.com>
3310
3311 * doc/sourcebuild.texi: Document new vma_equals_lma effective
3312 target check.
3313
3314 2022-09-30 Jiawei <jiawei@iscas.ac.cn>
3315
3316 * config/riscv/riscv.cc (riscv_file_start): New .option.
3317 * config/riscv/riscv.opt: New options.
3318 * doc/invoke.texi: New definations.
3319
3320 2022-09-30 Kewen Lin <linkw@linux.ibm.com>
3321
3322 PR target/99888
3323 PR target/105649
3324 * doc/invoke.texi (option -fpatchable-function-entry): Adjust the
3325 documentation for PowerPC ELFv2 ABI dual entry points.
3326 * config/rs6000/rs6000-internal.h
3327 (rs6000_print_patchable_function_entry): New function declaration.
3328 * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
3329 Support patchable-function-entry by emitting nops before and after
3330 local entry for the function that needs global entry.
3331 * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip
3332 the function that needs global entry till global entry has been
3333 emitted.
3334 * config/rs6000/rs6000.h (struct machine_function): New bool member
3335 global_entry_emitted.
3336
3337 2022-09-30 Richard Biener <rguenther@suse.de>
3338
3339 PR tree-optimization/107095
3340 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
3341 for .MASK_STORE size.
3342
3343 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
3344
3345 * range-op.cc (plus_minus_ranges): New.
3346 (adjust_op1_for_overflow): New.
3347 (operator_plus::op1_range): Use new adjustment.
3348 (operator_plus::op2_range): Ditto.
3349 (operator_minus::op1_range): Ditto.
3350 * value-relation.h (relation_lt_le_gt_ge_p): New.
3351
3352 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
3353
3354 * gimple-range-gori.cc (gori_compute::refine_using_relation): New.
3355 (gori_compute::compute_operand1_range): Invoke
3356 refine_using_relation when applicable.
3357 (gori_compute::compute_operand2_range): Ditto.
3358 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
3359
3360 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
3361
3362 * gimple-range-gori.cc (ori_compute::compute_operand_range):
3363 Create a relation record and pass it along when possible.
3364 (gori_compute::compute_operand1_range): Pass relation along.
3365 (gori_compute::compute_operand2_range): Ditto.
3366 (gori_compute::compute_operand1_and_operand2_range): Ditto.
3367 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
3368 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass
3369 relation to op1_range call.
3370 (gimple_range_op_handler::calc_op2): Pass relation to op2_range call.
3371 * gimple-range-op.h (class gimple_range_op_handler): Adjust
3372 prototypes.
3373
3374 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
3375
3376 * value-relation.cc (class value_relation): Move to .h file.
3377 (value_relation::set_relation): Ditto.
3378 (value_relation::value_relation): ditto.
3379 * value-relation.h (class value_relation): Move from .cc file.
3380 (value_relation::set_relation): Ditto
3381 (value_relation::value_relation): Ditto.
3382
3383 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
3384
3385 * range-op.cc (operator_minus::op2_range): Check for undefined.
3386 (operator_mult::op1_range): Ditto.
3387 (operator_exact_divide::op1_range): Ditto.
3388 (operator_lshift::op1_range): Ditto.
3389 (operator_rshift::op1_range): Ditto.
3390 (operator_cast::op1_range): Ditto.
3391 (operator_bitwise_and::op1_range): Ditto.
3392 (operator_bitwise_or::op1_range): Ditto.
3393 (operator_trunc_mod::op1_range): Ditto.
3394 (operator_trunc_mod::op2_range): Ditto.
3395 (operator_bitwise_not::op1_range): Ditto.
3396 (pointer_or_operator::op1_range): Ditto.
3397 (range_op_handler::op1_range): Ditto.
3398 (range_op_handler::op2_range): Ditto.
3399
3400 2022-09-29 Andrew Stubbs <ams@codesourcery.com>
3401
3402 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
3403 Remove unused elt_bits variable.
3404
3405 2022-09-29 Olivier Hainque <hainque@adacore.com>
3406
3407 * config/vxworks.h: Add comment on our use of
3408 HAVE_INITFINI_ARRAY_SUPPORT.
3409
3410 2022-09-29 Olivier Hainque <hainque@adacore.com>
3411
3412 * config/aarch64/t-aarch64-vxworks: Request multilib
3413 variants for mcmodel=large.
3414
3415 2022-09-29 Olivier Hainque <hainque@adacore.com>
3416
3417 * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
3418 resetting to 0.
3419
3420 2022-09-29 Olivier Hainque <hainque@adacore.com>
3421
3422 * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
3423 when ARM_UNWIND_INFO is set.
3424
3425 2022-09-29 Julian Brown <julian@codesourcery.com>
3426
3427 PR middle-end/107028
3428 * gimplify.cc (omp_check_mapping_compatibility,
3429 oacc_resolve_clause_dependencies): New functions.
3430 (omp_accumulate_sibling_list): Remove redundant duplicate clause
3431 detection for OpenACC.
3432 (build_struct_sibling_lists): Skip deleted groups. Don't build sibling
3433 list for struct variables that are fully mapped on the same directive
3434 for OpenACC.
3435 (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
3436
3437 2022-09-29 Jose E. Marchesi <jose.marchesi@oracle.com>
3438
3439 PR middle-end/25521
3440 * varasm.cc (categorize_decl_for_section): Place `const volatile'
3441 objects in read-only sections.
3442 (default_select_section): Likewise.
3443
3444 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3445
3446 * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
3447 of to_widest.
3448
3449 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3450
3451 * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4)
3452 (TARGET_DOTPROD): Don't depend on TARGET_SIMD.
3453 (TARGET_AES, TARGET_SHA2): Likewise. Remove TARGET_CRYPTO test.
3454 (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT.
3455 (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend
3456 on TARGET_SVE.
3457 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
3458 (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2.
3459 (TARGET_F32MM, TARGET_F64MM): Delete.
3460 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard
3461 float macros with just TARGET_FLOAT rather than TARGET_FLOAT
3462 || TARGET_SIMD.
3463 * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend
3464 only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD.
3465 (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES,
3466 rather than TARGET_SIMD && TARGET_AES.
3467 (aarch64_crypto_aes<aesmc_op>v16qi): Likewise.
3468 (*aarch64_crypto_aese_fused): Likewise.
3469 (*aarch64_crypto_aesd_fused): Likewise.
3470 (aarch64_crypto_pmulldi): Likewise.
3471 (aarch64_crypto_pmullv2di): Likewise.
3472 (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2.
3473 (aarch64_crypto_sha1hv4si): Likewise.
3474 (aarch64_be_crypto_sha1hv4si): Likewise.
3475 (aarch64_crypto_sha1su1v4si): Likewise.
3476 (aarch64_crypto_sha1<sha1_op>v4si): Likewise.
3477 (aarch64_crypto_sha1su0v4si): Likewise.
3478 (aarch64_crypto_sha256h<sha256_op>v4si): Likewise.
3479 (aarch64_crypto_sha256su0v4si): Likewise.
3480 (aarch64_crypto_sha256su1v4si): Likewise.
3481 (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3.
3482 (aarch64_crypto_sha512su0qv2di): Likewise.
3483 (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise.
3484 (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise.
3485 (aarch64_sm3ss1qv4si): Likewise TARGET_SM4.
3486 (aarch64_sm3tt<sm3tt_op>qv4si): Likewise.
3487 (aarch64_sm3partw<sm3part_op>qv4si): Likewise.
3488 (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise.
3489 * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2)
3490 (copysign<GPF:mode>3, copysign<GPF:mode>3_insn)
3491 (xorsign<mode>3): Remove redundant TARGET_FLOAT condition.
3492
3493 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3494
3495 * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable.
3496 * config/aarch64/aarch64.h (aarch64_asm_isa_flags)
3497 (aarch64_isa_flags): Redefine as read-only macros.
3498 (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on
3499 !TARGET_GENERAL_REGS_ONLY.
3500 * common/config/aarch64/aarch64-common.cc
3501 (aarch64_set_asm_isa_flags): New function.
3502 (aarch64_handle_option): Call it when updating -mgeneral-regs.
3503 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace
3504 m_old_isa_flags with m_old_asm_isa_flags.
3505 (aarch64_set_asm_isa_flags): Declare.
3506 * config/aarch64/aarch64-builtins.cc
3507 (aarch64_simd_switcher::aarch64_simd_switcher)
3508 (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore
3509 aarch64_asm_isa_flags instead of aarch64_isa_flags.
3510 * config/aarch64/aarch64-sve-builtins.cc
3511 (check_required_extensions): Use aarch64_asm_isa_flags instead
3512 of aarch64_isa_flags.
3513 * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function.
3514 (aarch64_override_options, aarch64_handle_attr_arch)
3515 (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use
3516 aarch64_set_asm_isa_flags to set the ISA flags.
3517 (aarch64_option_print, aarch64_declare_function_name)
3518 (aarch64_start_file): Use aarch64_asm_isa_flags instead
3519 of aarch64_isa_flags.
3520 (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as
3521 aarch64_isa_flags.
3522
3523 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3524
3525 * common/config/aarch64/aarch64-common.cc (all_extensions):
3526 Include the feature flag in flags_on and flags_off.
3527 (aarch64_parse_extension): Update accordingly.
3528 (aarch64_get_extension_string_for_isa_flags): Likewise.
3529
3530 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3531
3532 * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags
3533 for feature flags throughout.
3534 * config/aarch64/aarch64-protos.h: Likewise.
3535 * config/aarch64/aarch64-sve-builtins.h: Likewise.
3536 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
3537 * config/aarch64/aarch64.cc: Likewise.
3538 * config/aarch64/aarch64.opt: Likewise.
3539 * config/aarch64/driver-aarch64.cc: Likewise.
3540
3541 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3542
3543 * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
3544 (processor_name_to_arch, arch_to_arch_name): Remove const from
3545 member variables.
3546 (all_extensions, all_cores, all_architectures): Make a constexpr.
3547 * config/aarch64/aarch64.cc (processor): Remove const from
3548 member variables.
3549 (all_architectures): Make a constexpr.
3550 * config/aarch64/driver-aarch64.cc (aarch64_core_data)
3551 (aarch64_arch_driver_info): Remove const from member variables.
3552 (aarch64_cpu_data, aarch64_arches): Make a constexpr.
3553 (get_arch_from_id): Return a pointer to const.
3554 (host_detect_local_cpu): Update accordingly.
3555
3556 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3557
3558 * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
3559 (arch_to_arch_name): Use const char * instead of std::string.
3560
3561 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3562
3563 * common/config/aarch64/aarch64-common.cc
3564 (TARGET_OPTION_INIT_STRUCT): Delete.
3565 (aarch64_option_extension): Remove is_synthetic_flag.
3566 (all_extensions): Update accordingly.
3567 (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete.
3568 (aarch64_option_init_struct, aarch64_contains_opt): Delete.
3569 (aarch64_get_extension_string_for_isa_flags): Rewrite to use
3570 all_extensions instead of all_extensions_on.
3571
3572 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3573
3574 * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
3575 * config/aarch64/aarch64-cores.def: Use the same format to specify
3576 lists of features.
3577 * config/aarch64/aarch64-arches.def: Likewise, moving that information
3578 from aarch64.h.
3579 * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef.
3580 * config/aarch64/aarch64.h (aarch64_feature): New class enum.
3581 Turn AARCH64_FL_* macros into constexprs, getting the definitions
3582 from aarch64-option-extensions.def. Remove AARCH64_FL_FOR_* macros.
3583 * common/config/aarch64/aarch64-common.cc: Include
3584 aarch64-feature-deps.h.
3585 (all_extensions): Update for new .def format.
3586 (all_extensions_by_on, all_cores, all_architectures): Likewise.
3587 * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h.
3588 (aarch64_extensions): Update for new .def format.
3589 (aarch64_cpu_data, aarch64_arches): Likewise.
3590 * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h.
3591 (all_architectures, all_cores): Update for new .def format.
3592 * config/aarch64/aarch64-sve-builtins.cc
3593 (check_required_extensions): Likewise.
3594 * config/aarch64/aarch64-feature-deps.h: New file.
3595
3596 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3597
3598 * config/aarch64/aarch64-option-extensions.def: Move crypto
3599 after sha2.
3600
3601 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3602
3603 * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
3604 on fp as well as simd.
3605 (sha3): Likewise.
3606 (aes): Likewise. Make +noaes disable crypto.
3607 (sha2): Likewise +nosha2. Also make +nosha2 disable sha3 and
3608 sve2-sha3.
3609 (sve2-sha3): Depend on sha2 as well as sha3.
3610
3611 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3612
3613 PR target/107025
3614 * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
3615 (AARCH64_FL_FOR_V8_4A): Update accordingly.
3616 (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
3617 * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
3618 AARCH64_FL_RCPC8_4.
3619
3620 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3621
3622 * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH>
3623 from the flags field.
3624 * common/config/aarch64/aarch64-common.cc (all_cores): Add it
3625 here instead.
3626 * config/aarch64/aarch64.cc (all_cores): Likewise.
3627 * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
3628
3629 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3630
3631 * config.gcc: Remove dead aarch64-option-extensions.def code.
3632 * config/aarch64/aarch64-arches.def: Update comment.
3633
3634 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3635
3636 * config/aarch64/aarch64-arches.def: Add a leading "V" to the
3637 ARCH_IDENT fields.
3638 * config/aarch64/aarch64-cores.def: Update accordingly.
3639 * common/config/aarch64/aarch64-common.cc (all_cores): Likewise.
3640 * config/aarch64/aarch64.cc (all_cores): Likewise.
3641 * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the
3642 leading "V".
3643
3644 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3645
3646 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to...
3647 (AARCH64_FL_FOR_V8A): ...this.
3648 (AARCH64_FL_FOR_ARCH8_1): Rename to...
3649 (AARCH64_FL_FOR_V8_1A): ...this.
3650 (AARCH64_FL_FOR_ARCH8_2): Rename to...
3651 (AARCH64_FL_FOR_V8_2A): ...this.
3652 (AARCH64_FL_FOR_ARCH8_3): Rename to...
3653 (AARCH64_FL_FOR_V8_3A): ...this.
3654 (AARCH64_FL_FOR_ARCH8_4): Rename to...
3655 (AARCH64_FL_FOR_V8_4A): ...this.
3656 (AARCH64_FL_FOR_ARCH8_5): Rename to...
3657 (AARCH64_FL_FOR_V8_5A): ...this.
3658 (AARCH64_FL_FOR_ARCH8_6): Rename to...
3659 (AARCH64_FL_FOR_V8_6A): ...this.
3660 (AARCH64_FL_FOR_ARCH8_7): Rename to...
3661 (AARCH64_FL_FOR_V8_7A): ...this.
3662 (AARCH64_FL_FOR_ARCH8_8): Rename to...
3663 (AARCH64_FL_FOR_V8_8A): ...this.
3664 (AARCH64_FL_FOR_ARCH8_R): Rename to...
3665 (AARCH64_FL_FOR_V8R): ...this.
3666 (AARCH64_FL_FOR_ARCH9): Rename to...
3667 (AARCH64_FL_FOR_V9A): ...this.
3668 (AARCH64_FL_FOR_ARCH9_1): Rename to...
3669 (AARCH64_FL_FOR_V9_1A): ...this.
3670 (AARCH64_FL_FOR_ARCH9_2): Rename to...
3671 (AARCH64_FL_FOR_V9_2A): ...this.
3672 (AARCH64_FL_FOR_ARCH9_3): Rename to...
3673 (AARCH64_FL_FOR_V9_3A): ...this.
3674 * common/config/aarch64/aarch64-common.cc (all_cores): Update
3675 accordingly.
3676 * config/aarch64/aarch64-arches.def: Likewise.
3677 * config/aarch64/aarch64-cores.def: Likewise.
3678 * config/aarch64/aarch64.cc (all_cores): Likewise.
3679
3680 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3681
3682 * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2)
3683 (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6)
3684 (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1)
3685 (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name.
3686 (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R.
3687 (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly.
3688 (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise.
3689 (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise.
3690 (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise.
3691 (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise.
3692 (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise.
3693 (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A)
3694 (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise.
3695 (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise.
3696 (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise.
3697
3698 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3699
3700 * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3)
3701 (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6)
3702 (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2)
3703 (AARCH64_ISA_V9_3): Add "A" to the end of the name.
3704 (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R.
3705 (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update
3706 accordingly.
3707 * common/config/aarch64/aarch64-common.cc
3708 (aarch64_get_extension_string_for_isa_flags): Likewise.
3709 * config/aarch64/aarch64-c.cc
3710 (aarch64_define_unconditional_macros): Likewise.
3711
3712 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
3713
3714 * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
3715
3716 2022-09-29 Jakub Jelinek <jakub@redhat.com>
3717
3718 PR bootstrap/107059
3719 * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
3720 isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
3721 before FIXED_INCLUDE_DIR entry with multilib flag 0.
3722 * gcc.cc (do_spec_1): If multiarch_dir, add
3723 include-fixed/multiarch_dir paths before include-fixed paths.
3724
3725 2022-09-29 Martin Liska <mliska@suse.cz>
3726
3727 PR driver/106897
3728 * common.opt: Add -gz=zstd value.
3729 * configure.ac: Detect --compress-debug-sections=zstd
3730 for both linker and assembler.
3731 * configure: Regenerate.
3732 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd.
3733 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
3734
3735 2022-09-29 Richard Biener <rguenther@suse.de>
3736
3737 PR tree-optimization/105646
3738 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
3739 the set of fallthru reachable blocks from function entry
3740 and use that to determine wlims.always_executed.
3741
3742 2022-09-29 liuhongt <hongtao.liu@intel.com>
3743
3744 PR tree-optimization/107055
3745 * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for
3746 nonlinear induction variables.
3747 * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New
3748 functions.
3749 (vectorizable_nonlinear_induction): Put part codes into
3750 vect_can_peel_nonlinear_iv_p.
3751 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare.
3752
3753 2022-09-28 Eugene Rozenfeld <erozen@microsoft.com>
3754
3755 * basic-block.h: Remove discriminator from basic blocks.
3756 * cfghooks.cc (split_block_1): Remove discriminator from basic blocks.
3757 * final.cc (final_start_function_1): Switch from per-bb to per statement
3758 discriminator.
3759 (final_scan_insn_1): Don't keep track of basic block discriminators.
3760 (compute_discriminator): Switch from basic block discriminators to
3761 instruction discriminators.
3762 (insn_discriminator): New function to return instruction discriminator.
3763 (notice_source_line): Use insn_discriminator.
3764 * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of
3765 basic block discriminators.
3766 * gimple-streamer-in.cc (input_bb): Remove reading of basic block
3767 discriminators.
3768 * gimple-streamer-out.cc (output_bb): Remove writing of basic block
3769 discriminators.
3770 * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
3771 (location_with_discriminator): New function to combine locus with
3772 a discriminator.
3773 (has_discriminator): New function to check if a location has a discriminator.
3774 (get_discriminator_from_loc): New function to get the discriminator
3775 from a location.
3776 * input.h: Declarations of new functions.
3777 * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison.
3778 (apply_location_cache): Keep track of current discriminator.
3779 (input_location_and_block): Read discriminator from stream.
3780 * lto-streamer-out.cc (clear_line_info): Set current discriminator to
3781 UINT_MAX.
3782 (lto_output_location_1): Write discriminator to stream.
3783 * lto-streamer.h: Add discriminator to cached_location.
3784 Add current_discr to lto_location_cache.
3785 Add current_discr to output_block.
3786 * print-rtl.cc (print_rtx_operand_code_i): Print discriminator.
3787 * rtl.h: Add extern declaration of insn_discriminator.
3788 * tree-cfg.cc (assign_discriminator): New function to assign a unique
3789 discriminator value to all statements in a basic block that have the given
3790 line number.
3791 (assign_discriminators): Assign discriminators to statement locations.
3792 * tree-pretty-print.cc (dump_location): Dump discriminators.
3793 * tree.cc (set_block): Preserve discriminator when setting block.
3794 (set_source_range): Preserve discriminator when setting source range.
3795
3796 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
3797
3798 PR target/107061
3799 * config/i386/predicates.md (encodekey128_operation): Check
3800 XMM4-XMM6 as clobbered.
3801 (encodekey256_operation): Likewise.
3802 * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
3803 (encodekey256u32): Likewise.
3804
3805 2022-09-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3806
3807 * config.gcc: Add riscv-vector-builtins.o.
3808 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function.
3809 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function.
3810 * config/riscv/riscv.cc (ENTRY): New macro.
3811 (riscv_v_ext_enabled_vector_mode_p): New function.
3812 (riscv_mangle_type): Add RVV mangle.
3813 (riscv_vector_mode_supported_p): Adjust RVV machine mode.
3814 (riscv_verify_type_context): Add context check for RVV.
3815 (riscv_vector_alignment): Add RVV alignment target hook support.
3816 (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support.
3817 (TARGET_VERIFY_TYPE_CONTEXT): Ditto.
3818 (TARGET_VECTOR_ALIGNMENT): Ditto.
3819 * config/riscv/t-riscv: Add riscv-vector-builtins.o
3820 * config/riscv/riscv-vector-builtins.cc: New file.
3821 * config/riscv/riscv-vector-builtins.def: New file.
3822 * config/riscv/riscv-vector-builtins.h: New file.
3823 * config/riscv/riscv-vector-switch.def: New file.
3824
3825 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3826
3827 * var-tracking.cc (vt_add_function_parameter): Add entry values
3828 up to maximal register mode.
3829
3830 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3831
3832 * cselib.cc (new_cselib_val): Keep track of further subvalue
3833 relations.
3834
3835 2022-09-28 Andrea Corallo <andrea.corallo@arm.com>
3836
3837 * config/arm/arm-c.cc (arm_cpu_builtins): Define
3838 __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
3839
3840 2022-09-28 Xi Ruoyao <xry111@xry111.site>
3841
3842 PR tree-optimization/105414
3843 * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec.
3844 (UNSPEC_FMIN): Likewise.
3845 (fmax<mode>3): Use UNSPEC_FMAX instead of smax.
3846 (fmin<mode>3): Use UNSPEC_FMIN instead of smin.
3847
3848 2022-09-28 Lulu Cheng <chenglulu@loongson.cn>
3849
3850 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
3851 Fixed typo in "asan_mapping.h".
3852
3853 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
3854
3855 PR middle-end/58245
3856 * calls.cc: Include "tree-eh.h".
3857 (expand_call): Check stack canary before throwing exception.
3858
3859 2022-09-27 Eugene Rozenfeld <erozen@microsoft.com>
3860
3861 * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
3862
3863 2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com>
3864
3865 * doc/invoke.texi: Update ABI version info.
3866
3867 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
3868
3869 * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
3870 singleton.
3871
3872 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
3873
3874 * value-range.cc (irange::set_nonzero_bits): Set range when known.
3875
3876 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
3877
3878 * value-range.h (irange::set): New version taking wide_int_ref.
3879
3880 2022-09-27 Jakub Jelinek <jakub@redhat.com>
3881
3882 PR tree-optimization/107029
3883 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
3884 OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
3885 signed and so can trigger even the (b % 4) == 3 case.
3886
3887 2022-09-27 Jeff Law <jeffreyalaw@gmail.com>
3888
3889 * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
3890 and return are available before trying to use them.
3891
3892 2022-09-27 Jakub Jelinek <jakub@redhat.com>
3893
3894 PR c++/106652
3895 PR c++/85518
3896 * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
3897 enumerator.
3898 * tree.h (float128t_type_node): Define.
3899 * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
3900 * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
3901 _Float<N> is supported in C++ too.
3902 * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
3903 float128t_type_node.
3904 * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
3905 float128t_type_node for __float128 instead of float128_type_node
3906 and create it if NULL.
3907 * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
3908 _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
3909 0.0f.
3910 * config/ia64/ia64.cc (ia64_init_builtins): Use
3911 float128t_type_node for __float128 instead of float128_type_node
3912 and create it if NULL.
3913 * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
3914 for float128t_type_node if non-NULL.
3915 * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
3916 float128_type_node as "u9__ieee128".
3917 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
3918 float128t_type_node for __float128 instead of float128_type_node
3919 and create it if NULL.
3920
3921 2022-09-26 Martin Liska <mliska@suse.cz>
3922
3923 * doc/invoke.texi: Add missing dash for
3924 Wanalyzer-exposure-through-uninit-copy.
3925
3926 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
3927
3928 PR tree-optimization/107009
3929 * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK.
3930 (range_op_bitwise_and_tests): New test.
3931
3932 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
3933
3934 PR tree-optimization/107009
3935 * tree-ssa-dom.cc
3936 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
3937 Iterate over exports.
3938
3939 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
3940
3941 * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
3942 the default.
3943 * config/nvptx/gen-multilib-matches.sh: New.
3944 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
3945 (MULTILIB_EXCEPTIONS): Handle this.
3946 * doc/install.texi (Specific) <nvptx-*-none>: Document this.
3947 * doc/invoke.texi (Nvidia PTX Options): Likewise.
3948
3949 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
3950
3951 * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'.
3952 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
3953 (MULTILIB_EXCEPTIONS): Handle it.
3954
3955 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
3956
3957 * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
3958 * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
3959 '-misa' appeared.
3960 * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
3961 * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
3962
3963 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
3964
3965 * config/nvptx/nvptx.h (ASM_SPEC): Define.
3966
3967 2022-09-26 Jeff Law <jeffreyalaw@gmail.com>
3968
3969 * cfgcleanup.cc (bb_is_just_return): No longer static.
3970 * cfgcleanup.h (bb_is_just_return): Add prototype.
3971 * cfgrtl.cc (fixup_reorder_chain): Do not create an
3972 unconditional jump to a return block. Conditionally
3973 remove unreachable blocks.
3974
3975 2022-09-26 Tobias Burnus <tobias@codesourcery.com>
3976
3977 PR middle-end/106982
3978 * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
3979
3980 2022-09-26 Martin Liska <mliska@suse.cz>
3981
3982 * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
3983 and use only dst.
3984
3985 2022-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3986
3987 * config/aarch64/aarch64-arches.def (armv9.1-a): Define.
3988 (armv9.2-a): Likewise.
3989 (armv9.3-a): Likewise.
3990 * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise.
3991 (AARCH64_FL_V9_2): Likewise.
3992 (AARCH64_FL_V9_3): Likewise.
3993 (AARCH64_FL_FOR_ARCH9_1): Likewise.
3994 (AARCH64_FL_FOR_ARCH9_2): Likewise.
3995 (AARCH64_FL_FOR_ARCH9_3): Likewise.
3996 (AARCH64_ISA_V9_1): Likewise.
3997 (AARCH64_ISA_V9_2): Likewise.
3998 (AARCH64_ISA_V9_3): Likewise.
3999 * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a,
4000 armv9.3-a values to -march.
4001
4002 2022-09-26 Martin Liska <mliska@suse.cz>
4003
4004 * value-range.cc (tree_compare): Remove unused function.
4005
4006 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
4007
4008 PR target/96072
4009 * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the
4010 condition for adding REG_CFA_DEF_CFA reg note with
4011 frame_pointer_needed_indeed.
4012
4013 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
4014
4015 PR target/100645
4016 * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
4017 TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
4018
4019 2022-09-26 Hongtao Liu <hongtao.liu@intel.com>
4020 Liwei Xu <liwei.xu@intel.com>
4021
4022 PR target/53346
4023 * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
4024 New function.
4025 (ix86_expand_vec_perm_const_1): Insert
4026 expand_vec_perm_shufps_shufps at the end of 2-instruction
4027 expand sequence.
4028
4029 2022-09-25 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
4030
4031 * doc/sourcebuild.texi: Fix chapter level.
4032
4033 2022-09-24 Jakub Jelinek <jakub@redhat.com>
4034
4035 PR c/107001
4036 * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
4037 at the end.
4038 * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
4039 is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't
4040 update parent.
4041 (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
4042 cur_region back after new_omp_region.
4043
4044 2022-09-23 Vineet Gupta <vineetg@rivosinc.com>
4045
4046 * config/riscv/riscv.h (LOCAL_SYM_P): New.
4047 (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
4048
4049 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
4050
4051 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
4052 (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
4053 (ADJUST_ALIGNMENT): Adjust alignment.
4054 (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
4055 (RVV_MODES): New macro.
4056 (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
4057 (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
4058
4059 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
4060
4061 * common/config/riscv/riscv-common.cc: Change "static void" to "void".
4062 * config.gcc: Add riscv-selftests.o
4063 * config/riscv/predicates.md: Allow const_poly_int.
4064 * config/riscv/riscv-protos.h (riscv_reinit): New function.
4065 (riscv_parse_arch_string): change as exten function.
4066 (riscv_run_selftests): New function.
4067 * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
4068 into const pool.
4069 (riscv_report_v_required): New function.
4070 (riscv_expand_op): New function.
4071 (riscv_expand_mult_with_const_int): New function.
4072 (riscv_legitimize_poly_move): Ditto.
4073 (riscv_legitimize_move): New function.
4074 (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
4075 vector RA.
4076 (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
4077 -marh no 'v'.
4078 (riscv_reinit): New function.
4079 (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
4080 * config/riscv/t-riscv: Add riscv-selftests.o.
4081 * config/riscv/riscv-selftests.cc: New file.
4082
4083 2022-09-23 Richard Biener <rguenther@suse.de>
4084
4085 PR tree-optimization/106922
4086 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
4087 an arbitrary number of same valued skipped stores.
4088
4089 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4090
4091 * value-range.cc (frange::set): Swap setters such that the one
4092 accepting REAL_VALUE_TYPE does all the work.
4093
4094 2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4095
4096 * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
4097 (demeter): Update tunings to neoversev2.
4098 * config/aarch64/aarch64-tune.md: Regenerate.
4099 * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
4100 neoversev2_addrcost_table.
4101 (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
4102 (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
4103 (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
4104 (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
4105 (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
4106 (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
4107 (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
4108 Update references to above.
4109 (demeter_vector_cost): Rename to neoversev2_vector_cost.
4110 (demeter_tunings): Rename to neoversev2_tunings.
4111 (aarch64_vec_op_count::rename_cycles_per_iter): Use
4112 neoversev2_sve_issue_info instead of demeter_sve_issue_info.
4113 * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
4114
4115 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4116
4117 * range-op-float.cc (build_le): Use vrp_val_*.
4118 (build_lt): Same.
4119 (build_ge): Same.
4120 (build_gt): Same.
4121 * value-range.cc (frange::set): Chop ranges outside of the
4122 representable numbers for -ffinite-math-only.
4123 (frange::normalize_kind): Use vrp_val*.
4124 (frange::verify_range): Same.
4125 (frange::set_nonnegative): Same.
4126 (range_tests_floats): Remove tests that depend on -INF and +INF.
4127 * value-range.h (real_max_representable): Add prototype.
4128 (real_min_representable): Same.
4129 (vrp_val_max): Set max representable number for
4130 -ffinite-math-only.
4131 (vrp_val_min): Same but for min.
4132 (frange::set_varying): Use vrp_val*.
4133
4134 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4135
4136 * real.cc (debug): New.
4137
4138 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
4139
4140 * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
4141 (vrange_printer::visit): Call print_real_value.
4142 * value-range-pretty-print.h: New print_real_value.
4143
4144 2022-09-23 Martin Liska <mliska@suse.cz>
4145
4146 * common.opt: Update -flto-compression-level documentation.
4147 * opts.cc (print_filtered_help): Do not append range to an
4148 option that uses \t syntax.
4149
4150 2022-09-23 Jakub Jelinek <jakub@redhat.com>
4151
4152 * attribs.cc (decl_attributes): Improve diagnostics, instead of
4153 saying expected between 1 and 1, found 2 just say expected 1, found 2.
4154
4155 2022-09-23 Hu, Lin1 <lin1.hu@intel.com>
4156
4157 PR target/94962
4158 * config/i386/constraints.md (BH): New define_constraint.
4159 * config/i386/i386.cc (standard_sse_constant_p): Add return
4160 3/4 when operand matches new predicate.
4161 (standard_sse_constant_opcode): Add new alternative branch to
4162 return "vpcmpeqd".
4163 * config/i386/predicates.md
4164 (vector_all_ones_zero_extend_half_operand): New define_predicate.
4165 (vector_all_ones_zero_extend_quarter_operand): Ditto.
4166 * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
4167
4168 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4169
4170 * gimple-range-fold.cc (range_of_range_op): Handle no operands.
4171 (range_of_call): Do not check for builtins.
4172 (fold_using_range::range_of_builtin_call): Delete.
4173 (fold_using_range::range_of_builtin_int_call): Delete.
4174 * gimple-range-fold.h: Adjust prototypes.
4175 * gimple-range-op.cc (class cfn_parity): New.
4176 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4177
4178 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4179
4180 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4181 for CFN_GOACC_DIM_*.
4182 * gimple-range-op.cc (class cfn_goacc_dim): New.
4183 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4184
4185 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4186
4187 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4188 for CFN_BUILT_IN_STRLEN.
4189 * gimple-range-op.cc (class cfn_strlen): New.
4190 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4191
4192 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4193
4194 * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
4195 (range_of_builtin_int_call): Remove cases for
4196 CFN_BUILT_IN_UBSAN_CHECK.
4197 * gimple-range-op.cc (class cfn_ubsan): New.
4198 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4199
4200 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4201
4202 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4203 for CFN_BUILT_IN_CLRSB.
4204 * gimple-range-op.cc (class cfn_clrsb): New.
4205 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4206
4207 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4208
4209 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4210 for CFN_CTZ.
4211 * gimple-range-op.cc (class cfn_ctz): New.
4212 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4213
4214 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4215
4216 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4217 for CFN_CLZ.
4218 * gimple-range-op.cc (class cfn_clz): New.
4219 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4220
4221 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4222
4223 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4224 for CFN_FFS and CFN_POPCOUNT.
4225 * gimple-range-op.cc (class cfn_pocount): New.
4226 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4227
4228 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4229
4230 * gimple-range-fold.cc (get_letter_range): Move to new class.
4231 (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
4232 and CFN_BUILT_IN_TOLOWER.
4233 * gimple-range-op.cc (class cfn_toupper_tolower): New.
4234 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4235
4236 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4237
4238 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
4239 for CFN_BUILT_IN_SIGNBIT.
4240 * gimple-range-op.cc (class cfn_signbit): New.
4241 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
4242
4243 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4244
4245 * gimple-range-fold.cc
4246 (fold_using_range::range_of_builtin_int_call): Remove case for
4247 CFN_BUILT_IN_CONSTANT_P.
4248 * gimple-range-op.cc (gimple_range_op_handler::supported_p):
4249 Check if a call also creates a range-op object.
4250 (gimple_range_op_handler): Also check builtin calls.
4251 (class cfn_constant_float_p): New. Float CFN_BUILT_IN_CONSTANT_P.
4252 (class cfn_constant_p): New. Integral CFN_BUILT_IN_CONSTANT_P.
4253 (gimple_range_op_handler::maybe_builtin_call): Set arguments and
4254 handler for supported built-in calls.
4255 * gimple-range-op.h (maybe_builtin_call): New prototype.
4256
4257 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4258
4259 * gimple-range-fold.cc (range_of_range_op): Set result to
4260 VARYING if the call to fold_range fails.
4261 * tree-data-ref.cc (compute_distributive_range): Ditto.
4262 * tree-vrp.cc (range_fold_binary_expr): Ditto.
4263 (range_fold_unary_expr): Ditto.
4264 * value-query.cc (range_query::get_tree_range): Ditto.
4265
4266 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4267
4268 * range-op-float.cc (range_operator_float::fold_range): New base
4269 method for "int = float op int".
4270 * range-op.cc (range_op_handler::fold_range): New case.
4271 * range-op.h: Update prototypes.
4272
4273 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4274
4275 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
4276 operand 1 for second range if there is no operand 2.
4277
4278 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4279
4280 * Makefile.in (OBJS): Add gimple-range-op.o.
4281 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
4282 gimple_range_op_handler.
4283 * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
4284 to a method in gimple_range_op_handler.
4285 (gimple_range_operand1): Ditto.
4286 (gimple_range_operand2): Ditto.
4287 (fold_using_range::fold_stmt): Use gimple_range_op_handler.
4288 (fold_using_range::range_of_range_op): Ditto.
4289 (fold_using_range::relation_fold_and_or): Ditto.
4290 (fur_source::register_outgoing_edges): Ditto.
4291 (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
4292 * gimple-range-fold.h: Adjust prototypes.
4293 * gimple-range-gori.cc (gimple_range_calc_op1): Move
4294 to a method in gimple_range_op_handler.
4295 (gimple_range_calc_op2): Ditto.
4296 (gori_compute::compute_operand_range): Use
4297 gimple_range_op_handler.
4298 (gori_compute::compute_logical_operands): Ditto.
4299 (compute_operand1_range): Ditto.
4300 (gori_compute::compute_operand2_range): Ditto.
4301 (gori_compute::compute_operand1_and_operand2_range): Ditto.
4302 * gimple-range-gori.h: Adjust protoypes.
4303 * gimple-range-op.cc: New. Supply gimple_range_op_handler methods.
4304 * gimple-range-op.h: New. Supply gimple_range_op_handler class.
4305 * gimple-range.cc (gimple_ranger::prefill_name): Use
4306 gimple_range_op_handler.
4307 (gimple_ranger::prefill_stmt_dependencies): Ditto.
4308 * gimple-range.h: Include gimple-range-op.h.
4309 * range-op.cc (range_op_handler::range_op_handler): Adjust and
4310 remove gimple * parameter option.
4311 * range-op.h: Adjust prototypes.
4312
4313 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4314
4315 * range-op.cc (range_op_handler::set_op_handler): Set new fields.
4316 (ange_op_handler::range_op_handler): Likewise.
4317 (range_op_handler::operator bool): Remove.
4318 (range_op_handler::fold_range): Use appropriate handler.
4319 (range_op_handler::op1_range): Likewise.
4320 (range_op_handler::op2_range): Likewise.
4321 (range_op_handler::lhs_op1_relation): Likewise.
4322 (range_op_handler::lhs_op2_relation): Likewise.
4323 (range_op_handler::op1_op2_relation): Likewise.
4324 * range-op.h (class range_op_handler): Store handler pointers.
4325 (range_op_handler:: operator bool): Inline.
4326
4327 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
4328
4329 * tree-ssa-threadbackward.cc
4330 (back_threader::find_paths_to_names): Replace sequence with
4331 a call to gimple_range_ssa_names.
4332
4333 2022-09-22 Martin Liska <mliska@suse.cz>
4334 Fangrui Song <i@maskray.me>
4335
4336 * configure: Regenerate.
4337 * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
4338 and gcc_cv_as_compress_debug={0,1}.
4339 * doc/invoke.texi: Document the removal.
4340 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
4341 zlib-gnu.
4342 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
4343
4344 2022-09-22 Richard Biener <rguenther@suse.de>
4345
4346 PR tree-optimization/106922
4347 * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
4348 (vn_walk_cb_data::finish): Perform delayed verification of
4349 a skipped may-alias.
4350 (vn_reference_lookup_pieces): Likewise.
4351 (vn_reference_lookup): Likewise.
4352 (vn_reference_lookup_3): When skipping stores of the same
4353 value also handle constant stores that are more than a
4354 single VDEF away by delaying the verification.
4355
4356 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
4357
4358 * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
4359 definition.
4360
4361 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
4362
4363 * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
4364 (xtensa_output_mi_thunk): New functions.
4365 (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
4366 (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
4367 (xtensa_prepare_expand_call): Use fixed register a8 as temporary
4368 when called with reload_completed set to 1.
4369
4370 2022-09-22 Richard Biener <rguenther@suse.de>
4371
4372 PR tree-optimization/99407
4373 * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
4374 (dse_classify_store): Use data-ref analysis to disambiguate more uses.
4375 (pass_dse::use_dr_analysis_p): New pass parameter.
4376 (pass_dse::set_pass_param): Implement.
4377 (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
4378 * passes.def: Allow DR analysis for the DSE pass before loop.
4379
4380 2022-09-22 Richard Biener <rguenther@suse.de>
4381
4382 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
4383 function split out from ...
4384 (vn_nary_op_insert_pieces_predicated): ... here.
4385
4386 2022-09-22 liuhongt <hongtao.liu@intel.com>
4387
4388 PR target/106994
4389 * config/i386/mmx.md (floorv2sf2): Fix typo, use
4390 register_operand instead of vector_operand for operands[1].
4391
4392 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
4393
4394 PR tree-optimization/106967
4395 * value-range.cc (frange::set): Set known NANs to undefined for
4396 flag_finite_math_only.
4397
4398 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
4399
4400 * value-range.cc (frange::combine_zeros): Call set_undefined.
4401 (frange::intersect_nans): Same.
4402 (frange::intersect): Same.
4403 (frange::verify_range): Undefined ranges do not have a type.
4404 * value-range.h (frange::set_undefined): Clear NAN flags and type.
4405
4406 2022-09-21 Richard Biener <rguenther@suse.de>
4407
4408 PR tree-optimization/106984
4409 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
4410 a separate statement.
4411
4412 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4413
4414 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
4415 EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
4416 OPTION_DEFAULT_SPECS.
4417 (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
4418 local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
4419 is given.
4420 (CONFIG_TUNE_SPEC): Define.
4421 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
4422
4423 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
4424
4425 PR tree-optimization/106967
4426 * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
4427 (foperator_equal::op1_range): Same.
4428 (foperator_not_equal::fold_range): Same.
4429 (foperator_not_equal::op1_range): Same.
4430 (foperator_lt::fold_range): Same.
4431 (foperator_lt::op1_range): Same.
4432 (foperator_lt::op2_range): Same.
4433 (foperator_le::fold_range): Same.
4434 (foperator_le::op1_range): Same.
4435 (foperator_le::op2_range): Same.
4436 (foperator_gt::fold_range): Same.
4437 (foperator_gt::op1_range): Same.
4438 (foperator_gt::op2_range): Same.
4439 (foperator_ge::fold_range): Same.
4440 (foperator_ge::op1_range): Same.
4441 (foperator_ge::op2_range): Same.
4442 (foperator_unordered::op1_range): Same.
4443 (foperator_ordered::fold_range): Same.
4444 (foperator_ordered::op1_range): Same.
4445 (build_le): Assert that we don't have a NAN.
4446 (build_lt): Same.
4447 (build_gt): Same.
4448 (build_ge): Same.
4449
4450 2022-09-21 liuhongt <hongtao.liu@intel.com>
4451
4452 PR tree-optimization/106963
4453 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
4454 vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
4455
4456 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
4457
4458 * value-range.h (frange::maybe_isnan): Return false for
4459 undefined ranges.
4460
4461 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
4462
4463 * value-range.cc (frange::set_nonnegative): Set +NAN.
4464 (range_tests_signed_zeros): New test.
4465 * value-range.h (frange::update_nan): New overload to set NAN sign.
4466
4467 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
4468
4469 PR target/106491
4470 * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
4471 (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
4472 markup to (new) extern declarations instead of to the main
4473 definition.
4474
4475 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
4476
4477 PR tree-optimization/106794
4478 PR tree-optimization/106914
4479 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
4480 Only consider loads that already have a permutation.
4481 (vect_optimize_slp_pass::start_choosing_layouts): Assert that
4482 loads with permutations are leaf nodes. Prevent any kind of grouped
4483 access from changing layout if it doesn't have a load permutation.
4484
4485 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
4486
4487 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
4488 early-out optimisation to SSA_NAMEs.
4489
4490 2022-09-20 Martin Liska <mliska@suse.cz>
4491
4492 * ctfc.cc (ctf_add_string): Replace "the the" with "the".
4493 * doc/md.texi: Likewise.
4494 * gimple-range-infer.cc (non_null_loadstore): Likewise.
4495
4496 2022-09-20 liuhongt <hongtao.liu@intel.com>
4497
4498 PR target/106910
4499 * config/i386/mmx.md (nearbyintv2sf2): New expander.
4500 (rintv2sf2): Ditto.
4501 (ceilv2sf2): Ditto.
4502 (lceilv2sfv2si2): Ditto.
4503 (floorv2sf2): Ditto.
4504 (lfloorv2sfv2si2): Ditto.
4505 (btruncv2sf2): Ditto.
4506 (lrintv2sfv2si2): Ditto.
4507 (roundv2sf2): Ditto.
4508 (lroundv2sfv2si2): Ditto.
4509 (*mmx_roundv2sf2): New define_insn.
4510
4511 2022-09-20 konglin1 <lingling.kong@intel.com>
4512
4513 PR middle-end/105735
4514 * tree-scalar-evolution.cc
4515 (analyze_and_compute_bitop_with_inv_effect): New function.
4516 (final_value_replacement_loop): Enhanced to handle bitop
4517 with inv induction.
4518
4519 2022-09-20 Xi Ruoyao <xry111@xry111.site>
4520
4521 * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
4522 -static-pie, pass -static -pie --no-dynamic-linker -z text to
4523 the linker, and do not pass --dynamic-linker.
4524
4525 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
4526
4527 * value-range.cc (frange::flush_denormals_to_zero): New.
4528 (frange::set): Call flush_denormals_to_zero.
4529 * value-range.h (class frange): Add flush_denormals_to_zero.
4530
4531 2022-09-20 liuhongt <hongtao.liu@intel.com>
4532
4533 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
4534 latest Intel processors.
4535
4536 2022-09-20 konglin1 <lingling.kong@intel.com>
4537
4538 PR target/106887
4539 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
4540 Fixed V16BF mode case.
4541
4542 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
4543
4544 * targhooks.cc (default_zero_call_used_regs): Improve sorry
4545 message.
4546
4547 2022-09-18 Julian Brown <julian@codesourcery.com>
4548
4549 * gimplify.cc (omp_segregate_mapping_groups): Update comment.
4550 (gimplify_adjust_omp_clauses): Move ATTACH and
4551 ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
4552 for offloaded OpenMP regions.
4553
4554 2022-09-18 Jakub Jelinek <jakub@redhat.com>
4555
4556 PR middle-end/106831
4557 * value-range.cc (frange::singleton_p): Avoid propagating long
4558 doubles that may have multiple representations.
4559
4560 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
4561
4562 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
4563 union of zero.
4564 * value-query.cc (range_query::get_tree_range): Remove set_signbit
4565 use.
4566 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
4567 Remove.
4568 (vrange_printer::print_frange_nan): New.
4569 * value-range-pretty-print.h (print_frange_prop): Remove.
4570 (print_frange_nan): New.
4571 * value-range-storage.cc (frange_storage_slot::set_frange): Set
4572 kind and NAN fields.
4573 (frange_storage_slot::get_frange): Restore kind and NAN fields.
4574 * value-range-storage.h (class frange_storage_slot): Add kind and
4575 NAN fields.
4576 * value-range.cc (frange::update_nan): Remove.
4577 (frange::set_signbit): Remove.
4578 (frange::set): Adjust for NAN fields.
4579 (frange::normalize_kind): Remove m_props.
4580 (frange::combine_zeros): New.
4581 (frange::union_nans): New.
4582 (frange::union_): Handle new NAN fields.
4583 (frange::intersect_nans): New.
4584 (frange::intersect): Handle new NAN fields.
4585 (frange::operator=): Same.
4586 (frange::operator==): Same.
4587 (frange::contains_p): Same.
4588 (frange::singleton_p): Remove special case for signed zeros.
4589 (frange::verify_range): Adjust for new NAN fields.
4590 (frange::set_zero): Handle signed zeros.
4591 (frange::set_nonnegative): Same.
4592 (range_tests_nan): Adjust tests.
4593 (range_tests_signed_zeros): Same.
4594 (range_tests_signbit): Same.
4595 (range_tests_floats): Same.
4596 * value-range.h (class fp_prop): Remove.
4597 (FP_PROP_ACCESSOR): Remove.
4598 (class frange_props): Remove
4599 (frange::lower_bound): NANs don't have endpoints.
4600 (frange::upper_bound): Same.
4601 (frange_props::operator==): Remove.
4602 (frange_props::union_): Remove.
4603 (frange_props::intersect): Remove.
4604 (frange::update_nan): New.
4605 (frange::clear_nan): New.
4606 (frange::undefined_p): New.
4607 (frange::set_nan): New.
4608 (frange::known_finite): Adjust for new NAN representation.
4609 (frange::maybe_isnan): Same.
4610 (frange::known_isnan): Same.
4611 (frange::signbit_p): Same.
4612 * gimple-range-fold.cc (range_of_builtin_int_call): Rename
4613 known_signbit_p into signbit_p.
4614
4615 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4616
4617 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
4618 to prevent warning.
4619
4620 2022-09-17 Jakub Jelinek <jakub@redhat.com>
4621
4622 PR tree-optimization/106958
4623 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
4624 id >= l, cast op to type1, otherwise to pointer_sized_int_node.
4625 If type has pointer type, cast exp to pointer_sized_int_node
4626 even when id < l.
4627
4628 2022-09-16 liuhongt <hongtao.liu@intel.com>
4629
4630 PR target/106910
4631 * config/i386/i386-builtins.cc
4632 (ix86_builtin_vectorized_function): Modernized with
4633 corresponding expanders.
4634 * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
4635 expander.
4636 (floor<mode>2): Ditto.
4637 (lfloor<mode><sseintvecmodelower>2): Ditto.
4638 (ceil<mode>2): Ditto.
4639 (lceil<mode><sseintvecmodelower>2): Ditto.
4640 (btrunc<mode>2): Ditto.
4641 (lround<mode><sseintvecmodelower>2): Ditto.
4642 (exp2<mode>2): Ditto.
4643
4644 2022-09-15 Joseph Myers <joseph@codesourcery.com>
4645
4646 * ginclude/float.h (INFINITY): Define only if
4647 [__FLT_HAS_INFINITY__].
4648
4649 2022-09-15 Richard Biener <rguenther@suse.de>
4650
4651 PR tree-optimization/106922
4652 * tree-ssa-pre.cc (translate_vuse_through_block): Only
4653 keep the VUSE if its def dominates PHIBLOCK.
4654 (prune_clobbered_mems): Rewrite logic so we check whether
4655 a value dies in a block when the VUSE def doesn't dominate it.
4656
4657 2022-09-15 Richard Biener <rguenther@suse.de>
4658
4659 * tree.cc (build_common_tree_nodes): Initialize void_list_node
4660 here.
4661
4662 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
4663
4664 PR target/106550
4665 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
4666
4667 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
4668
4669 * range-op-float.cc (frange_add_zeros): New.
4670 (build_le): Call frange_add_zeros.
4671 (build_ge): Same.
4672 (foperator_equal::op1_range): Same.
4673 (foperator_not_equal::op1_range): Same.
4674
4675 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
4676
4677 * range-op-float.cc (build_le): Accept frange instead of number.
4678 (build_lt): Same.
4679 (build_ge): Same.
4680 (build_gt): Same.
4681 (foperator_lt::op1_range): Pass full range to build_*.
4682 (foperator_lt::op2_range): Same.
4683 (foperator_le::op1_range): Same.
4684 (foperator_le::op2_range): Same.
4685 (foperator_gt::op1_range): Same.
4686 (foperator_gt::op2_range): Same.
4687 (foperator_ge::op1_range): Same.
4688 (foperator_ge::op2_range): Same.
4689
4690 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
4691
4692 * value-range.cc (frange::set): Use set_nan.
4693 * value-range.h (frange::set_nan): Inline code originally in
4694 set().
4695
4696 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
4697
4698 * range-op-float.cc (frange_set_nan): Remove.
4699 (build_lt): Use set_nan, update_nan, clear_nan.
4700 (build_gt): Same.
4701 (foperator_equal::op1_range): Same.
4702 (foperator_not_equal::op1_range): Same.
4703 (foperator_lt::op1_range): Same.
4704 (foperator_lt::op2_range): Same.
4705 (foperator_le::op1_range): Same.
4706 (foperator_le::op2_range): Same.
4707 (foperator_gt::op1_range): Same.
4708 (foperator_gt::op2_range): Same.
4709 (foperator_ge::op1_range): Same.
4710 (foperator_ge::op2_range): Same.
4711 (foperator_unordered::op1_range): Same.
4712 (foperator_ordered::op1_range): Same.
4713 * value-query.cc (range_query::get_tree_range): Same.
4714 * value-range.cc (frange::set_nan): Same.
4715 (frange::update_nan): Same.
4716 (frange::union_): Same.
4717 (frange::intersect): Same.
4718 (range_tests_nan): Same.
4719 (range_tests_signed_zeros): Same.
4720 (range_tests_signbit): Same.
4721 (range_tests_floats): Same.
4722 * value-range.h (class frange): Add update_nan and clear_nan.
4723 (frange::set_nan): New.
4724
4725 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
4726
4727 * value-query.cc (range_query::get_tree_range): Remove check for overflow.
4728 * value-range-pretty-print.cc (vrange_printer::visit): Move read
4729 of type until after undefined_p is checked.
4730 * value-range.cc (frange::set): Remove asserts for REAL_CST.
4731 (frange::contains_p): Tidy up.
4732 (range_tests_nan): Add comment.
4733 * value-range.h (frange::type): Check for undefined_p.
4734 (frange::set_undefined): Remove set of endpoints.
4735
4736 2022-09-14 Julian Brown <julian@codesourcery.com>
4737
4738 * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
4739 GOMP_MAP_STRUCT (for reindexing).
4740 (omp_gather_mapping_groups): Reimplement using...
4741 (omp_gather_mapping_groups_1): This new function. Stop processing at
4742 GATHER_SENTINEL.
4743 (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
4744 (omp_index_mapping_groups): Reimplement using...
4745 (omp_index_mapping_groups_1): This new function. Handle
4746 REINDEX_SENTINEL.
4747 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
4748 functions.
4749 (omp_tsort_mapping_groups_1): Adjust handling of base group being the
4750 same as current group. Use omp_mapped_by_containing_struct.
4751 (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
4752 and omp_reindex_mapping_groups. Robustify group deletion for reordered
4753 lists.
4754 (gimplify_scan_omp_clauses): Update calls to
4755 omp_build_struct_sibling_lists.
4756
4757 2022-09-14 Julian Brown <julian@codesourcery.com>
4758
4759 * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
4760 (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
4761 (insert_struct_comp_map): Refactor function into...
4762 (build_omp_struct_comp_nodes): This new function. Remove list handling
4763 and improve self-documentation.
4764 (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move
4765 code to strip outer parts of address out of function, but strip no-op
4766 conversions.
4767 (omp_mapping_group): Add DELETED field for use during reindexing.
4768 (omp_strip_components_and_deref, omp_strip_indirections): New functions.
4769 (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
4770 (omp_gather_mapping_groups): Initialise DELETED field for new groups.
4771 (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
4772 (omp_siblist_insert_node_after, omp_siblist_move_node_after,
4773 omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
4774 helper functions.
4775 (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
4776 node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
4777 (omp_build_struct_sibling_lists): New function.
4778 (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
4779 struct_seen_clause, struct_deref_set. Call
4780 omp_build_struct_sibling_lists as pre-pass instead of handling sibling
4781 lists in the function's main processing loop.
4782 (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
4783 handling, unused now.
4784 * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
4785 struct references, and references to pointers to structs also.
4786
4787 2022-09-14 Richard Biener <rguenther@suse.de>
4788
4789 PR tree-optimization/106938
4790 * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
4791 edges for all last stmts in a block. Do EH cleanup
4792 only on the last stmt in a block.
4793
4794 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
4795
4796 PR tree-optimization/106936
4797 * value-query.cc (range_query::get_value_range): Remove assert.
4798
4799 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4800
4801 * config/mips/mips.cc (mips_option_override): Drop unused variable.
4802
4803 2022-09-14 Julian Brown <julian@codesourcery.com>
4804
4805 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
4806 functions.
4807 (omp_tsort_mark): Add enum.
4808 (omp_mapping_group): Add struct.
4809 (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
4810 omp_group_last, omp_gather_mapping_groups, omp_group_base,
4811 omp_index_mapping_groups, omp_containing_struct,
4812 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
4813 omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
4814 functions.
4815 (gimplify_scan_omp_clauses): Call above functions instead of
4816 omp_target_reorder_clauses, unless we've seen an error.
4817 * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
4818 sorted mapping groups.
4819
4820 2022-09-14 Jakub Jelinek <jakub@redhat.com>
4821
4822 PR tree-optimization/106878
4823 * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
4824 reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
4825 the second argument is INTEGER_CST, BIT_AND_EXPR.
4826 * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
4827 (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
4828 POINTER_TYPE_P or OFFSET_TYPE.
4829 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
4830 pointers cast them to pointer sized integers first.
4831
4832 2022-09-14 Richard Biener <rguenther@suse.de>
4833
4834 PR tree-optimization/106934
4835 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
4836 of bitfields.
4837 (maybe_rewrite_mem_ref_base): Likewise.
4838
4839 2022-09-14 liuhongt <hongtao.liu@intel.com>
4840
4841 PR tree-optimization/106905
4842 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
4843 false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
4844 LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
4845
4846 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
4847
4848 PR target/106877
4849 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
4850 in gcc_assert.
4851
4852 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
4853
4854 Revert:
4855 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4856
4857 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
4858 New macro definition.
4859 (xtensa_constant_ok_for_cprop_p):
4860 Implement the hook as mentioned above.
4861
4862 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
4863
4864 PR target/104482
4865 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
4866 the equality check for argument number, and move this hunk ahead.
4867
4868 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
4869
4870 PR target/105485
4871 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
4872 the handling for unresolved overloaded builtin function.
4873 (rs6000_expand_builtin): Likewise.
4874
4875 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
4876
4877 * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
4878 m_nstores, m_reduc_factor, m_gather_load and member function
4879 determine_suggested_unroll_factor.
4880 (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
4881 m_reduc_factor and m_gather_load.
4882 (rs6000_cost_data::determine_suggested_unroll_factor): New function.
4883 (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
4884 * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
4885 (rs6000-vect-unroll-issue): Likewise.
4886 (rs6000-vect-unroll-reduc-threshold): Likewise.
4887 * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
4888
4889 2022-09-13 Richard Biener <rguenther@suse.de>
4890
4891 PR middle-end/106909
4892 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
4893 flag of a unreachable call.
4894
4895 2022-09-13 Richard Biener <rguenther@suse.de>
4896
4897 PR tree-optimization/106913
4898 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
4899 ft_reachable on EXIT_BLOCK.
4900
4901 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
4902
4903 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
4904 TARGET_FLOAT instead of TARGET_SIMD.
4905 (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
4906 TARGET_SIMD.
4907 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
4908 in GPRs.
4909 (aarch64_classify_address): Treat little-endian structure moves
4910 like big-endian for TARGET_FLOAT && !TARGET_SIMD.
4911 (aarch64_secondary_memory_needed): New function.
4912 (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
4913 in the same way as TF, TI and TD.
4914 (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
4915 (aarch64_rtx_costs): Likewise.
4916 (aarch64_register_move_cost): Treat a pair of 64-bit vectors
4917 separately from a single 128-bit vector. Handle the cost implied
4918 by aarch64_secondary_memory_needed.
4919 (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
4920 TARGET_SIMD.
4921 (aarch64_expand_vec_perm_const_1): Likewise.
4922 (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
4923 * config/aarch64/iterators.md (VTX): New iterator.
4924 * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
4925 (arch_enabled): Adjust accordingly.
4926 (@aarch64_reload_mov<TX:mode>): Extend to...
4927 (@aarch64_reload_mov<VTX:mode>): ...this.
4928 * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
4929 rather than TARGET_SIMD.
4930 (movmisalign<mode>): Likewise.
4931 (load_pair<DREG:mode><DREG2:mode>): Likewise.
4932 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
4933 (load_pair<VQ:mode><VQ2:mode>): Likewise.
4934 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
4935 (@aarch64_split_simd_mov<mode>): Likewise.
4936 (aarch64_get_low<mode>): Likewise.
4937 (aarch64_get_high<mode>): Likewise.
4938 (aarch64_get_half<mode>): Likewise. Canonicalize to a move for
4939 lowpart extracts.
4940 (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
4941 TARGET_SIMD. Use different w<-w and r<-w instructions for
4942 !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but
4943 add an alternative specifically for w<-Z.
4944 (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
4945 TARGET_SIMD. Likewise for the associated define_splits. Disable
4946 FPR moves and immediate moves for !TARGET_SIMD but add an alternative
4947 specifically for w<-Z.
4948 (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
4949 TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD
4950 but add a new r<-w one for !TARGET_SIMD.
4951 (*aarch64_get_high<mode>): New pattern.
4952 (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
4953 (store_pair_lanes<mode>): Likewise.
4954 (*aarch64_combine_internal<mode>): Likewise. Restrict existing
4955 w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
4956 alternative for !TARGET_SIMD.
4957 (*aarch64_combine_internal_be<mode>): Likewise.
4958 (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
4959 Remove bogus arch attribute.
4960 (*aarch64_combinez_be<mode>): Likewise.
4961 (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
4962 TARGET_SIMD.
4963 (aarch64_combine<mode>): Likewise.
4964 (aarch64_rev_reglist<mode>): Likewise.
4965 (mov<mode>): Likewise.
4966 (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
4967 !TARGET_SIMD, regardless of endianness. Extend associated
4968 define_splits in the same way, both for this pattern and the
4969 ones below.
4970 (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w
4971 alternative to TARGET_SIMD.
4972 (*aarch64_be_movoi): Likewise.
4973 (*aarch64_be_movci): Likewise.
4974 (*aarch64_be_movxi): Likewise.
4975 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
4976 && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative
4977 to TARGET_SIMD for tuples of 128-bit vectors.
4978 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
4979 * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
4980 from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in
4981 the VQ and VP_2E LDP and STP peepholes.
4982
4983 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
4984
4985 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
4986 condition. Likewise for the related define_split. Tweak formatting.
4987
4988 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4989
4990 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
4991 New macro definition.
4992 (xtensa_constant_ok_for_cprop_p):
4993 Implement the hook as mentioned above.
4994
4995 2022-09-12 Joseph Myers <joseph@codesourcery.com>
4996
4997 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
4998 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
4999
5000 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
5001
5002 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
5003 a warning + not enabling offloading if -misa=sm_30 prevents
5004 reverse offload.
5005 (main): Use tool_name as progname for diagnostic.
5006 * config/gcn/mkoffload.cc (main): Likewise.
5007
5008 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
5009
5010 * value-range.cc (frange::set_signbit): Avoid changing sign when
5011 already in the correct sign.
5012
5013 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
5014
5015 * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
5016 Recognize all 4 return registers.
5017 * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
5018 * config/xtensa/xtensa.md (untyped_call): New pattern.
5019
5020 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
5021
5022 * doc/extend.texi (Floating Types): Fix "_float128" typo.
5023
5024 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5025
5026 * config/xtensa/xtensa.cc (xtensa_constantsynth):
5027 Add new pattern for the abovementioned case.
5028
5029 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
5030 Segher Boessenkool <segher@kernel.crashing.org>
5031
5032 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
5033
5034 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5035
5036 * config/xtensa/xtensa.md: Rewrite the split pattern that performs
5037 the abovementioned process so that insns that overwrite clobbered
5038 register no longer need to be contiguous.
5039 (DSC): Remove as no longer needed.
5040
5041 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5042
5043 * config/xtensa/xtensa.cc (machine_function): New boolean member as
5044 a flag that controls whether to emit the insns for stack pointer
5045 adjustment inside of the pro/epilogue.
5046 (xtensa_emit_adjust_stack_ptr): New function to share the common
5047 codes and to emit insns if not inhibited.
5048 (xtensa_expand_epilogue): Change to use the function mentioned
5049 above when using the CALL0 ABI.
5050 (xtensa_expand_prologue): Ditto.
5051 And also change to set the inhibit flag used by
5052 xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
5053 used for its own adjustment.
5054
5055 2022-09-09 David Malcolm <dmalcolm@redhat.com>
5056
5057 * doc/invoke.texi (Static Analyzer Options): Add
5058 -Wanalyzer-exposure-through-uninit-copy.
5059
5060 2022-09-09 David Malcolm <dmalcolm@redhat.com>
5061
5062 * Makefile.in (ANALYZER_OBJS): Add
5063 analyzer/known-function-manager.o.
5064
5065 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
5066
5067 * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
5068 (record_id): Store func name without quotes, store dim separately.
5069 (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
5070 at least sm_35, create '$offload_func_table' global array and init
5071 with reverse-offload function addresses.
5072 * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
5073 force_public attribute to force .visible.
5074 (nvptx_declare_function_name): For "omp target
5075 device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
5076
5077 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
5078
5079 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
5080 similar to pre-existing .offload_var_table.
5081
5082 2022-09-09 Joseph Myers <joseph@codesourcery.com>
5083
5084 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
5085 New macro.
5086
5087 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
5088
5089 PR middle-end/106833
5090 * tree.cc (verify_opaque_type): New function.
5091 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
5092
5093 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
5094
5095 * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
5096 FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
5097 * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
5098 * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
5099 MATH_UNOP_TRIG): New iterators.
5100 (math_unop): New attributes.
5101 (<math_unop><mode>2, <math_unop><mode>2<exec>,
5102 <math_unop><mode>2, <math_unop><mode>2<exec>,
5103 *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
5104 ldexp<mode>3, ldexp<mode>3<exec>,
5105 frexp<mode>_exp2, frexp<mode>_mant2,
5106 frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
5107 (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
5108 * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
5109 dconst1over2pi.
5110 (gcn_dconst1over2pi): New.
5111 (gcn_builtin_type_index): Add entry for v64df type.
5112 (v64df_type_node): New.
5113 (gcn_init_builtin_types): Initialize v64df_type_node.
5114 (gcn_expand_builtin_1): Expand new builtins to instructions.
5115 (print_operand): Fix assembler output for 1/(2*PI) constant.
5116 * config/gcn/gcn.md (unspec): Add new entries.
5117
5118 2022-09-09 Richard Biener <rguenther@suse.de>
5119
5120 PR tree-optimization/106722
5121 * tree-predcom.cc (ref_at_iteration): Do not associate the
5122 constant part of the offset into the MEM_REF offset
5123 operand, across a non-zero offset.
5124
5125 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
5126
5127 * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
5128 Move forward for cover all all necessary functions for suppress
5129 unused function warnings.
5130 (riscv_multi_lib_check): Move forward, and tweak message to suppress
5131 -Werror=format-diag warning.
5132
5133 2022-09-09 Richard Biener <rguenther@suse.de>
5134
5135 PR tree-optimization/106881
5136 * gimple-predicate-analysis.cc (simple_control_dep_chain):
5137 Add only non-fallthru edges and avoid the same set of edges
5138 as compute_control_dep_chain_pdom does.
5139
5140 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5141
5142 * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
5143 of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
5144 * doc/tm.texi: Regenerate.
5145
5146 2022-09-09 Martin Liska <mliska@suse.cz>
5147
5148 * optc-save-gen.awk: Always compare array option values with memcmp.
5149
5150 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
5151
5152 PR c++/106838
5153 * doc/extend.texi (Type Traits): Fix requirements. Document
5154 __is_aggregate and __is_final.
5155
5156 2022-09-08 Tim Lange <mail@tim-lange.me>
5157
5158 PR analyzer/106625
5159 * doc/invoke.texi:
5160 State that the checker also reasons about symbolic values.
5161
5162 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
5163
5164 PR tree-optimization/106886
5165 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
5166 Fix copying of scalar stmts.
5167
5168 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
5169
5170 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
5171
5172 2022-09-08 Richard Biener <rguenther@suse.de>
5173
5174 PR middle-end/106870
5175 * gimple-harden-conditionals.cc (insert_check_and_trap):
5176 Set the control-altering flag on the built IFN_TRAP.
5177 * gimple.cc (gimple_build_builtin_unreachable): Likewise.
5178 * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
5179 flag on the .ABNORMAL_DISPATCHER call.
5180 * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
5181 resetting the control altering flag for ECF_NORETURN calls.
5182 (cleanup_control_flow_bb): Set the control altering flag on
5183 discovered noreturn calls.
5184 * symtab-thunks.cc (expand_thunk): Set the control altering
5185 flag for the noreturn tailcall case.
5186 * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
5187 calls.
5188
5189 2022-09-08 Jakub Jelinek <jakub@redhat.com>
5190
5191 * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
5192 Add doacross(sink:omp_cur_iteration-1) support.
5193 (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
5194 Adjust expand_omp_ordered_sink caller.
5195 (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
5196 non-NULL, set that variable to true at the start of outermost
5197 non-collapsed loop and set it to false at the end of innermost
5198 ordered loop.
5199 (expand_omp_for_generic): If fd->ordered, allocate
5200 1 + (fd->ordered - fd->collapse) further elements in counts array.
5201 Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
5202 fd->ordered - 1 loop if any.
5203
5204 2022-09-08 Richard Biener <rguenther@suse.de>
5205
5206 PR tree-optimization/106881
5207 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
5208 Add only non-fallthru edges and avoid the same set of edges
5209 as the caller does.
5210
5211 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
5212
5213 * gimple-range-fold.cc
5214 (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
5215 * range-op-float.cc (finite_operand_p): Same.
5216 (finite_operands_p): Same.
5217 (foperator_lt::fold_range): Same.
5218 (foperator_le::fold_range): Same.
5219 (foperator_gt::fold_range): Same.
5220 (foperator_ge::fold_range): Same.
5221 (foperator_unordered::fold_range): Same.
5222 (foperator_unordered::op1_range): Same.
5223 (foperator_ordered::fold_range): Same.
5224 * value-range.cc (frange::set_nan): Same.
5225 (frange::set_signbit): Same.
5226 (frange::union_): Same.
5227 (frange::intersect): Same.
5228 (frange::operator==): Same.
5229 (frange::singleton_p): Same.
5230 (frange::verify_range): Same.
5231 (range_tests_nan): Same.
5232 (range_tests_floats): Same.
5233 * value-range.h(frange::known_finite): New.
5234 (frange::maybe_inf): New.
5235 (frange::known_inf): New.
5236 (frange::maybe_nan): New.
5237 (frange::known_nan): New.
5238 (frange::known_signbit): New.
5239
5240 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
5241
5242 * config/darwin-d.cc: Include tm.h.
5243 * config/dragonfly-d.cc: Likewise.
5244 * config/freebsd-d.cc: Remove memmodel.h.
5245 * config/glibc-d.cc: Likewise.
5246 * config/netbsd-d.cc: Include tm.h.
5247 * config/openbsd-d.cc: Likewise.
5248 * config/sol2-d.cc: Likewise.
5249
5250 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
5251
5252 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
5253 MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
5254 (mve_vqshluq_m_n_s<mode>): Likewise.
5255 (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
5256 instead of mve_imm_8/Rb.
5257 (mve_vqrshrunbq_n_s<mode>): Likewise.
5258 (mve_vqrshrntq_n_<supf><mode>): Likewise.
5259 (mve_vqrshruntq_n_s<mode>): Likewise.
5260 (mve_vrshrnbq_n_<supf><mode>): Likewise.
5261 (mve_vrshrntq_n_<supf><mode>): Likewise.
5262 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
5263 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
5264 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
5265 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
5266 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
5267 (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
5268 of mve_imm_selective_upto_8/Rg.
5269 (mve_vsriq_m_n_<supf><mode>): Likewise.
5270
5271 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
5272
5273 * config/rs6000/rs6000.md (splitter for set to and_mask constants):
5274 Use int_reg_operand (instead of int_reg_operand_not_pseudo).
5275 (splitter for multi-insn constant loads): Ditto.
5276
5277 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
5278
5279 * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
5280 -mvrsave is present.
5281 * config/rs6000/t-rtems: Add -mvrsave multilib variants for
5282 -mcpu=e6500.
5283
5284 2022-09-07 Martin Liska <mliska@suse.cz>
5285
5286 * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS.
5287 * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
5288 * configure: Regenerate.
5289 * config.in: Regenerate.
5290
5291 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
5292
5293 PR rtl-optimization/105586
5294 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
5295 (schedule_region): Use it for all blocks.
5296
5297 2022-09-07 Joseph Myers <joseph@codesourcery.com>
5298
5299 * ginclude/stdalign.h [defined __STDC_VERSION__ &&
5300 __STDC_VERSION__ > 201710L]: Disable all content.
5301 * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
5302 > 201710L] (bool, true, false): Do not define.
5303
5304 2022-09-07 Martin Liska <mliska@suse.cz>
5305
5306 PR bootstrap/106855
5307 * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
5308 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
5309 Restore usage of XCOFF_DEBUGGING_INFO.
5310 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
5311 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
5312 XCOFF_DEBUGGING_INFO.
5313 (dw2_asm_output_nstring): Likewise.
5314 (USE_LINKONCE_INDIRECT): Likewise.
5315 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
5316 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
5317 (output_fde): Likewise.
5318 (output_call_frame_info): Likewise.
5319 (have_macinfo): Likewise.
5320 (add_AT_loc_list): Likewise.
5321 (add_AT_view_list): Likewise.
5322 (output_compilation_unit_header): Likewise.
5323 (output_pubnames): Likewise.
5324 (output_aranges): Likewise.
5325 (output_line_info): Likewise.
5326 (output_macinfo): Likewise.
5327 (dwarf2out_finish): Likewise.
5328 (dwarf2out_early_finish): Likewise.
5329
5330 2022-09-07 Richard Biener <rguenther@suse.de>
5331
5332 PR tree-optimization/106866
5333 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
5334 we changed cfun->calls_setjmp make sure to purge all
5335 abnormal call edges.
5336
5337 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5338
5339 * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
5340 float LE comparing with zero for fpuv3.
5341 * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
5342 features are enabled.
5343
5344 2022-09-07 Richard Biener <rguenther@suse.de>
5345
5346 PR tree-optimization/106860
5347 * tree-ssa-loop-split.cc (split_loop): Find the exit to
5348 latch edge from the loop exit edge instead of from the
5349 latch. Verify we're going to find it.
5350
5351 2022-09-07 Richard Biener <rguenther@suse.de>
5352
5353 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
5354 Adjust to take the region exit source as argument.
5355 (uninit_analysis::init_from_phi_def): Adjust.
5356 (uninit_analysis::init_use_preds): Mark the dominating region
5357 before computing control dependences.
5358
5359 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
5360
5361 * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
5362 w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
5363 in that case. Extend w<-r to w<-Z.
5364 (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
5365 (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
5366 available.
5367 (define_split): Do not apply the floating-point immediate-to-register
5368 split to zeros, even if MOVI is not available.
5369
5370 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
5371
5372 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
5373 Disallow use of FPRs in register asms for !TARGET_FLOAT.
5374
5375 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
5376
5377 PR target/106828
5378 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
5379 (TARGET_ASAN_SHADOW_OFFSET): New.
5380
5381 2022-09-07 Jakub Jelinek <jakub@redhat.com>
5382
5383 * doc/invoke.texi (-Wno-unicode): Document.
5384
5385 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
5386
5387 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
5388
5389 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
5390
5391 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
5392 replacements.
5393
5394 2022-09-07 liuhongt <hongtao.liu@intel.com>
5395
5396 PR tree-optimization/103144
5397 * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
5398 (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
5399 (vect_create_nonlinear_iv_init): New function.
5400 (vect_peel_nonlinear_iv_init): Ditto.
5401 (vect_create_nonlinear_iv_step): Ditto
5402 (vect_create_nonlinear_iv_vec_step): Ditto
5403 (vect_update_nonlinear_iv): Ditto
5404 (vectorizable_nonlinear_induction): Ditto.
5405 (vectorizable_induction): Call
5406 vectorizable_nonlinear_induction when induction_type is not
5407 vect_step_op_add.
5408 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
5409 Update nonlinear iv for epilogue loop.
5410 * tree-vectorizer.h (enum vect_induction_op_type): New enum.
5411 (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
5412
5413 2022-09-06 Richard Biener <rguenther@suse.de>
5414
5415 PR tree-optimization/106754
5416 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
5417 New function, split out from compute_control_dep_chain. Handle
5418 loop-exit like conditions here by pushing to the control vector.
5419 (compute_control_dep_chain): Adjust and streamline dumping.
5420 In the wrapper perform a post-dominator walk as well.
5421 (uninit_analysis::init_use_preds): Remove premature early exit.
5422
5423 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
5424
5425 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
5426
5427 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
5428
5429 * range-op-float.cc (build_le): Handle NANs and going past infinity.
5430 (build_lt): Same.
5431 (build_ge): Same.
5432 (build_gt): Same.
5433 (foperator_lt::op1_range): Avoid adjustments to range if build_*
5434 returned false.
5435 (foperator_lt::op2_range): Same.
5436 (foperator_le::op1_range): Same.
5437 (foperator_le::op2_range): Same.
5438 (foperator_gt::op1_range): Same.
5439 (foperator_gt::op2_range): Same.
5440
5441 2022-09-06 Richard Biener <rguenther@suse.de>
5442
5443 * gimple-predicate-analysis.cc (compute_control_dep_chain):
5444 Add output flag to indicate whether we possibly have dropped
5445 any chains. Return whether the info is complete from the
5446 wrapping overload.
5447 (uninit_analysis::init_use_preds): Adjust accordingly, with
5448 a workaround for PR106754.
5449 (uninit_analysis::init_from_phi_def): Properly guard the
5450 case where we complete an empty chain.
5451
5452 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5453
5454 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
5455
5456 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5457
5458 * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
5459 type with same element type as arg0, and length as op2.
5460
5461 2022-09-06 Richard Biener <rguenther@suse.de>
5462
5463 PR tree-optimization/106844
5464 * gimple-predicate-analysis.cc (compute_control_dep_chain):
5465 Return whether we found a chain.
5466
5467 2022-09-06 Richard Biener <rguenther@suse.de>
5468
5469 PR tree-optimization/106841
5470 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
5471 scatter/gather offset.
5472
5473 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5474
5475 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
5476
5477 2022-09-06 Jakub Jelinek <jakub@redhat.com>
5478
5479 * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
5480 (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of
5481 GIMPLE_OMP_TEAMS as upper bound.
5482 (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
5483 inline functions.
5484 * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
5485 NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
5486 (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
5487 with NULL OMP_ORDERED_BODY.
5488 * omp-low.cc (check_omp_nesting_restrictions): Use
5489 gimple_omp_ordered_standalone_p test instead of
5490 omp_find_clause (..., OMP_CLAUSE_DOACROSS).
5491 (lower_omp_ordered): Likewise.
5492 * omp-expand.cc (expand_omp, build_omp_regions_1,
5493 omp_make_gimple_edges): Likewise.
5494
5495 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5496
5497 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
5498 (cskyv2_addcc_invert): Likewise.
5499
5500 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
5501
5502 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
5503 `insn'.
5504 (bpf_expand_epilogue): Likewise.
5505
5506 2022-09-06 liuhongt <hongtao.liu@intel.com>
5507
5508 * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
5509 Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
5510 * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
5511 (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
5512 (avx512f_vcvtps2ph512_mask_sae): New expander
5513
5514 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
5515
5516 * gimple-range-fold.cc
5517 (fold_using_range::range_of_builtin_int_call): Ignore sign bit
5518 when there's the possibility of a NAN.
5519
5520 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
5521
5522 * gimple-range-fold.cc
5523 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
5524 in __builtin_signbit to nonzero.
5525
5526 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
5527
5528 PR target/106453
5529 * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
5530 bits of operand 0 are consumed, and the result is zero-extended
5531 to 64 bits.
5532
5533 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
5534
5535 PR middle-end/106831
5536 * value-range.h (frange::supports_p): Disable decimal floats.
5537 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
5538 check.
5539 (frange_drop_ninf): Same.
5540
5541 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
5542
5543 PR middle-end/106824
5544 * value-range.cc (frange::set_nan): Set undefined when updating a
5545 NAN to a non-NAN.
5546
5547 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
5548
5549 * config/riscv/riscv.cc (riscv_option_override): Fix wrong
5550 condition for MASK_DIV and simplify incompatible checking.
5551 * config/riscv/riscv.md (muldi3): Adding parentheses.
5552
5553 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5554
5555 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
5556 string is a valid -mcpu string and emit hint.
5557
5558 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
5559
5560 * common/config/riscv/riscv-common.cc: Add Zmmul.
5561 * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
5562 (TARGET_ZMMUL): Ditto.
5563 * config/riscv/riscv.cc (riscv_option_override):Ditto.
5564 * config/riscv/riscv.md: Add Zmmul
5565 * config/riscv/riscv.opt: Ditto.
5566
5567 2022-09-05 Richard Biener <rguenther@suse.de>
5568
5569 * tree-cfg.h (get_cases_for_edge): Declare.
5570 * tree-cfg.cc (get_cases_for_edge): Export.
5571 * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
5572 Start and end recording case labels.
5573 * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
5574 (predicate::init_from_control_deps): Use get_cases_for_edge.
5575
5576 2022-09-05 Richard Biener <rguenther@suse.de>
5577
5578 * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
5579 (compute_control_dep_chain): Move uninit-control-dep-attempts
5580 checking where it also counts the post-dominator check
5581 invocations.
5582
5583 2022-09-05 Richard Biener <rguenther@suse.de>
5584
5585 * gimple-predicate-analysis.h (predicate::debug): New.
5586 (predicate::dump): Add FILE * argument, add base overload.
5587 * gimple-predicate-analysis.cc (debug): New.
5588 (dump_pred_info): Add FILE * argument.
5589 (dump_pred_chain): Likewise.
5590 (predicate::dump): Split out preamble into overload. Add
5591 FILE * argument.
5592 (predicate::debug): New.
5593 (predicate::simplify): Adjust.
5594 (predicate::normalize): Likewise.
5595 (predicate::init_from_control_deps): Likewise.
5596
5597 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
5598
5599 * config/aarch64/aarch64-protos.h
5600 (aarch64_init_simd_builtins): Remove prototype.
5601 * config/aarch64/aarch64-builtins.cc
5602 (aarch64_simd_builtins_initialized_p): Delete.
5603 (aarch64_init_simd_builtins): Make static. Remove protection
5604 against multiple calls.
5605 * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
5606 lazy SIMD builtin initialization.
5607 * config/aarch64/aarch64.cc
5608 (aarch64_option_valid_attribute_p): Likewise.
5609
5610 2022-09-05 Xi Ruoyao <xry111@xry111.site>
5611
5612 * config/loongarch/genopts/loongarch.opt.in: Add
5613 -mdirect-extern-access option.
5614 * config/loongarch/loongarch.opt: Regenerate.
5615 * config/loongarch/loongarch.cc
5616 (loongarch_symbol_binds_local_p): Return true if
5617 TARGET_DIRECT_EXTERN_ACCESS.
5618 (loongarch_option_override_internal): Complain if
5619 -mdirect-extern-access is used with -fPIC or -fpic.
5620 * doc/invoke.texi: Document -mdirect-extern-access for
5621 LoongArch.
5622
5623 2022-09-05 Martin Liska <mliska@suse.cz>
5624
5625 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
5626 DEBUGGER_REGNO.
5627 * doc/tm.texi: Regenerate.
5628
5629 2022-09-05 Martin Liska <mliska@suse.cz>
5630
5631 * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
5632 Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
5633 (aarch64_debugger_regno): Likewise.
5634 * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
5635 (aarch64_debugger_regno): Likewise.
5636 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
5637 (DEBUGGER_REGNO): Likewise.
5638 (DWARF_FRAME_REGNUM): Likewise.
5639 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
5640 * config/arc/arc.cc (arc_init_reg_tables): Likewise.
5641 * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
5642 (DEBUGGER_REGNO): Likewise.
5643 * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
5644 (arm_debugger_regno): Likewise.
5645 * config/arm/arm.cc (arm_dbx_regno): Likewise.
5646 (arm_debugger_regno): Likewise.
5647 * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
5648 (DEBUGGER_REGNO): Likewise.
5649 * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
5650 (DEBUGGER_REGNO): Likewise.
5651 * config/c6x/c6x.cc: Likewise.
5652 * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
5653 (DEBUGGER_REGNO): Likewise.
5654 * config/cris/cris.h (enum reg_class): Likewise.
5655 (DBX_REGISTER_NUMBER): Likewise.
5656 (DEBUGGER_REGNO): Likewise.
5657 * config/csky/csky.cc (enum reg_class): Likewise.
5658 * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
5659 (DBX_REGISTER_NUMBER): Likewise.
5660 (DEBUGGER_REGNO): Likewise.
5661 * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
5662 (DEBUGGER_REGNO): Likewise.
5663 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
5664 (DEBUGGER_REGNO): Likewise.
5665 * config/gcn/gcn.cc (print_operand): Likewise.
5666 * config/i386/bsd.h (ASM_QUAD): Likewise.
5667 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
5668 (DEBUGGER_REGNO): Likewise.
5669 (DWARF_FRAME_REGNUM): Likewise.
5670 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
5671 (DEBUGGER_REGNO): Likewise.
5672 * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
5673 (DEBUGGER_REGNO): Likewise.
5674 * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
5675 (DEBUGGER_REGNO): Likewise.
5676 * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
5677 (DEBUGGER_REGNO): Likewise.
5678 * config/i386/gas.h: Likewise.
5679 * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
5680 (DEBUGGER_REGNO): Likewise.
5681 * config/i386/i386.cc (enum reg_class): Likewise.
5682 * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
5683 (DEBUGGER_REGNO): Likewise.
5684 * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
5685 (DEBUGGER_REGNO): Likewise.
5686 * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
5687 (DEBUGGER_REGNO): Likewise.
5688 * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
5689 (DEBUGGER_REGNO): Likewise.
5690 * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
5691 (DEBUGGER_REGNO): Likewise.
5692 * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
5693 (DEBUGGER_REGNO): Likewise.
5694 * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
5695 (DEBUGGER_REGNO): Likewise.
5696 * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
5697 (DEBUGGER_REGNO): Likewise.
5698 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
5699 (DEBUGGER_REGNO): Likewise.
5700 * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
5701 (DEBUGGER_REGNO): Likewise.
5702 * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
5703 (ia64_debugger_regno): Likewise.
5704 * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
5705 (ia64_dbx_regno): Likewise.
5706 (ia64_debugger_regno): Likewise.
5707 (process_cfa_adjust_cfa): Likewise.
5708 (process_cfa_register): Likewise.
5709 (ia64_asm_unwind_emit): Likewise.
5710 * config/ia64/ia64.h: Likewise.
5711 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
5712 (DEBUGGER_REGNO): Likewise.
5713 * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
5714 (DEBUGGER_REGNO): Likewise.
5715 * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
5716 * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
5717 (DEBUGGER_REGNO): Likewise.
5718 * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
5719 (DEBUGGER_REGNO): Likewise.
5720 * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
5721 (DEBUGGER_REGNO): Likewise.
5722 (__transfer_from_trampoline): Likewise.
5723 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
5724 (DEBUGGER_REGNO): Likewise.
5725 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
5726 (DBX_REGISTER_NUMBER): Likewise.
5727 (DEBUGGER_REGNO): Likewise.
5728 * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
5729 * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
5730 (DEBUGGER_REGNO): Likewise.
5731 (GP_DBX_FIRST): Likewise.
5732 (GP_DEBUGGER_FIRST): Likewise.
5733 * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
5734 (DEBUGGER_REGNO): Likewise.
5735 * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
5736 (mmix_debugger_regno): Likewise.
5737 * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
5738 (mmix_debugger_regno): Likewise.
5739 * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
5740 (DEBUGGER_REGNO): Likewise.
5741 * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
5742 (nds32_debugger_regno): Likewise.
5743 * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
5744 (nds32_debugger_regno): Likewise.
5745 (nds32_use_blocks_for_constant_p): Likewise.
5746 * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
5747 (DEBUGGER_REGNO): Likewise.
5748 * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
5749 (DEBUGGER_REGNO): Likewise.
5750 * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
5751 (DEBUGGER_REGNO): Likewise.
5752 * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
5753 (DEBUGGER_REGNO): Likewise.
5754 * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
5755 (DEBUGGER_REGNO): Likewise.
5756 * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
5757 (rs6000_debugger_regno): Likewise.
5758 * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
5759 (rs6000_debugger_regno): Likewise.
5760 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
5761 (DEBUGGER_REGNO): Likewise.
5762 (DWARF2_FRAME_REG_OUT): Likewise.
5763 * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
5764 (DEBUGGER_REGNO): Likewise.
5765 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
5766 (DEBUGGER_REGNO): Likewise.
5767 * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
5768 (DEBUGGER_REGNO): Likewise.
5769 * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
5770 (DEBUGGER_REGNO): Likewise.
5771 (SH_DBX_REGISTER_NUMBER): Likewise.
5772 (SH_DEBUGGER_REGNO): Likewise.
5773 * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
5774 (DEBUGGER_REGNO): Likewise.
5775 * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
5776 (DEBUGGER_REGNO): Likewise.
5777 * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
5778 (DEBUGGER_REGNO): Likewise.
5779 * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
5780 (DEBUGGER_REGNO): Likewise.
5781 * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
5782 (xtensa_debugger_regno): Likewise.
5783 * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
5784 (xtensa_debugger_regno): Likewise.
5785 * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
5786 (DEBUGGER_REGNO): Likewise.
5787 * defaults.h (DBX_REGISTER_NUMBER): Likewise.
5788 (DEBUGGER_REGNO): Likewise.
5789 (DWARF_FRAME_REGNUM): Likewise.
5790 * doc/tm.texi: Likewise.
5791 * doc/tm.texi.in: Likewise.
5792 * dwarf2out.cc (dbx_reg_number): Likewise.
5793 (debugger_reg_number): Likewise.
5794 (reg_loc_descriptor): Likewise.
5795 (multiple_reg_loc_descriptor): Likewise.
5796 (mem_loc_descriptor): Likewise.
5797 * except.cc: Likewise.
5798
5799 2022-09-05 konglin1 <lingling.kong@intel.com>
5800
5801 PR target/106742
5802 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
5803 Handle V8BF mode.
5804 (expand_vec_perm_broadcast_1): Ditto.
5805 * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
5806 (vec_set<mode>_0): Add @ to it.
5807 (@vec_set<mode>_0): Ditto.
5808 (vec_interleave_high<mode><mask_name>): Ditto.
5809 (@vec_interleave_high<mode><mask_name>): Ditto.
5810 (vec_interleave_low<mode><mask_name>): Ditto.
5811 (@vec_interleave_low<mode><mask_name>): Ditto.
5812 * config/i386/subst.md (SUBST_V): Add BF vector mode.
5813
5814 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
5815
5816 * value-range.cc (early_nan_resolve): Remove.
5817 (frange::intersect): Handle NANs.
5818
5819 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
5820
5821 * value-range.cc (frange::union_): Do not drop properties when
5822 unioning a NAN with something else.
5823 (range_tests_signed_zeros): Add tests.
5824
5825 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
5826
5827 * real.cc (encode_ieee_single): Use real_isdenormal.
5828 (encode_ieee_double): Same.
5829 (encode_ieee_extended): Same.
5830 (encode_ieee_quad): Same.
5831 (encode_ieee_half): Same.
5832 (encode_arm_bfloat_half): Same.
5833 * real.h (real_isdenormal): New.
5834
5835 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
5836
5837 * value-range.cc (frange::singleton_p): Move NAN check to the top.
5838
5839 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5840
5841 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
5842
5843 2022-09-03 Jakub Jelinek <jakub@redhat.com>
5844
5845 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
5846 (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
5847 and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
5848 (enum omp_clause_doacross_kind): New type.
5849 (struct tree_omp_clause): Add subcode.doacross_kind member.
5850 * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
5851 (OMP_CLAUSE_DOACROSS_KIND): Define.
5852 (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
5853 (OMP_CLAUSE_DOACROSS_DEPEND): Define.
5854 (OMP_CLAUSE_ORDERED_DOACROSS): Define.
5855 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
5856 OMP_CLAUSE_DOACROSS entries.
5857 * tree-nested.cc (convert_nonlocal_omp_clauses,
5858 convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
5859 * tree-pretty-print.cc (dump_omp_clause): Don't handle
5860 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle
5861 OMP_CLAUSE_DOACROSS.
5862 * gimplify.cc (gimplify_omp_depend): Don't handle
5863 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
5864 (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS.
5865 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
5866 (find_standalone_omp_ordered): New function.
5867 (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
5868 body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
5869 set OMP_CLAUSE_ORDERED_DOACROSS.
5870 (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
5871 OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
5872 diagnostics that presence or absence of ordered clause parameter
5873 is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use
5874 actual user name of the clause - doacross or depend - in diagnostics.
5875 * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
5876 if !OMP_CLAUSE_ORDERED_DOACROSS (t). If
5877 OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
5878 set fd->ordered to -1 and set it after the loop in that case to
5879 fd->collapse.
5880 * omp-low.cc (check_omp_nesting_restrictions): Don't handle
5881 OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
5882 OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross
5883 or depend - in diagnostics. Diagnose mixing of stand-alone and
5884 block associated ordered constructs binding to the same loop.
5885 (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
5886 instead handle OMP_CLAUSE_DOACROSS.
5887 (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
5888 OMP_CLAUSE_DEPEND.
5889 (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
5890 OMP_CLAUSE_DEPEND_SINK.
5891 * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
5892 doacross(sink:omp_cur_iteration-1).
5893 (expand_omp_ordered_source_sink): Use
5894 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
5895 OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause
5896 - doacross or depend - in diagnostics.
5897 (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
5898 OMP_CLAUSE_DEPEND.
5899 (build_omp_regions_1): Likewise.
5900 (omp_make_gimple_edges): Likewise.
5901 * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
5902 * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
5903 * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
5904
5905 2022-09-02 David Malcolm <dmalcolm@redhat.com>
5906
5907 PR c/90885
5908 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
5909
5910 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
5911
5912 PR d/105659
5913 * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
5914 * config/aarch64/aarch64-d.cc: Include tm_d.h.
5915 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
5916 config/aarch64/aarch64-d.h.
5917 (aarch64_d_register_target_info): Likewise.
5918 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
5919 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5920 * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
5921 tm_p.h.
5922 * config/arm/arm-protos.h (arm_d_target_versions): Move to
5923 config/arm/arm-d.h.
5924 (arm_d_register_target_info): Likewise.
5925 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
5926 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5927 * config/default-d.cc: Remove memmodel.h include.
5928 * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
5929 * config/glibc-d.cc: Likewise.
5930 * config/i386/i386-d.cc: Include tm_d.h.
5931 * config/i386/i386-protos.h (ix86_d_target_versions): Move to
5932 config/i386/i386-d.h.
5933 (ix86_d_register_target_info): Likewise.
5934 (ix86_d_has_stdcall_convention): Likewise.
5935 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
5936 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5937 (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
5938 * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
5939 * config/mips/mips-d.cc: Include tm_d.h.
5940 * config/mips/mips-protos.h (mips_d_target_versions): Move to
5941 config/mips/mips-d.h.
5942 (mips_d_register_target_info): Likewise.
5943 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
5944 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5945 * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
5946 * config/openbsd-d.cc: Likewise.
5947 * config/pa/pa-d.cc: Include tm_d.h.
5948 * config/pa/pa-protos.h (pa_d_target_versions): Move to
5949 config/pa/pa-d.h.
5950 (pa_d_register_target_info): Likewise.
5951 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
5952 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5953 * config/riscv/riscv-d.cc: Include tm_d.h.
5954 * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
5955 config/riscv/riscv-d.h.
5956 (riscv_d_register_target_info): Likewise.
5957 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
5958 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5959 * config/rs6000/rs6000-d.cc: Include tm_d.h.
5960 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
5961 config/rs6000/rs6000-d.h.
5962 (rs6000_d_register_target_info): Likewise.
5963 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
5964 (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
5965 * config/s390/s390-d.cc: Include tm_d.h.
5966 * config/s390/s390-protos.h (s390_d_target_versions): Move to
5967 config/s390/s390-d.h.
5968 (s390_d_register_target_info): Likewise.
5969 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
5970 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5971 * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
5972 * config/sparc/sparc-d.cc: Include tm_d.h.
5973 * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
5974 config/sparc/sparc-d.h.
5975 (sparc_d_register_target_info): Likewise.
5976 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
5977 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
5978 * configure: Regenerate.
5979 * configure.ac (tm_d_file): Remove defaults.h.
5980 (tm_d_include_list): Remove options.h and insn-constants.h.
5981 * config/aarch64/aarch64-d.h: New file.
5982 * config/arm/arm-d.h: New file.
5983 * config/i386/i386-d.h: New file.
5984 * config/mips/mips-d.h: New file.
5985 * config/pa/pa-d.h: New file.
5986 * config/riscv/riscv-d.h: New file.
5987 * config/rs6000/rs6000-d.h: New file.
5988 * config/s390/s390-d.h: New file.
5989 * config/sparc/sparc-d.h: New file.
5990
5991 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
5992
5993 * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
5994 (fold_builtin_fpclassify): Same.
5995 * fold-const-call.cc (fold_const_call_cc): Same.
5996 * match.pd: Same.
5997 * omp-low.cc (omp_reduction_init_op): Same.
5998 * realmpfr.cc (real_from_mpfr): Same.
5999 * tree.cc (build_complex_inf): Same.
6000
6001 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
6002
6003 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
6004 NOP_EXPR for MMA pointer casting.
6005
6006 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
6007
6008 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
6009 Reduce the fallback cost to 1. Only use it if the number of
6010 input lanes is equal to the number of output lanes.
6011
6012 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
6013
6014 PR tree-optimization/106787
6015 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
6016 from...
6017 (vect_bb_partition_graph_r): ...here. Replace the visited set
6018 with a map from nodes to instances. Ensure that a node only
6019 appears in one partition.
6020 (vect_bb_partition_graph): Update accordingly.
6021
6022 2022-09-02 Richard Biener <rguenther@suse.de>
6023
6024 * timevar.def (TV_TREE_RPO_VN): New.
6025 * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
6026 * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
6027 (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
6028 (pass_fre::execute): Adjust.
6029 * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
6030
6031 2022-09-02 Richard Biener <rguenther@suse.de>
6032
6033 PR tree-optimization/106809
6034 * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
6035 more than one successor before doing extra work.
6036
6037 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
6038
6039 * common/config/riscv/riscv-common.cc: Include <vector>.
6040 (struct riscv_multi_lib_info_t): New.
6041 (riscv_subset_list::match_score): Ditto.
6042 (find_last_appear_switch): Ditto.
6043 (prefixed_with): Ditto.
6044 (struct multi_lib_info_t): Ditto.
6045 (riscv_current_arch_str): Ditto.
6046 (riscv_current_abi_str): Ditto.
6047 (riscv_multi_lib_info_t::parse): Ditto.
6048 (riscv_check_cond): Ditto.
6049 (riscv_check_conds): Ditto.
6050 (riscv_compute_multilib): Ditto.
6051 (TARGET_COMPUTE_MULTILIB): Defined.
6052 * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
6053 doing link.
6054 (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
6055 * config/riscv/riscv.h (riscv_multi_lib_check): New.
6056 (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
6057 * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
6058
6059 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
6060
6061 * common/common-target.def (compute_multilib): New.
6062 * common/common-targhooks.h (default_compute_multilib): New.
6063 * common/common-targhooks.cc (default_compute_multilib): New.
6064 * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
6065 * doc/tm.texi: Regen.
6066 * gcc.cc: Include common/common-target.h.
6067 (set_multilib_dir) Call targetm_common.compute_multilib.
6068 (SWITCH_LIVE): Move to opts.h.
6069 (SWITCH_FALSE): Ditto.
6070 (SWITCH_IGNORE): Ditto.
6071 (SWITCH_IGNORE_PERMANENTLY): Ditto.
6072 (SWITCH_KEEP_FOR_GCC): Ditto.
6073 (struct switchstr): Ditto.
6074 * opts.h (SWITCH_LIVE): Move from gcc.c.
6075 (SWITCH_FALSE): Ditto.
6076 (SWITCH_IGNORE): Ditto.
6077 (SWITCH_IGNORE_PERMANENTLY): Ditto.
6078 (SWITCH_KEEP_FOR_GCC): Ditto.
6079 (struct switchstr): Ditto.
6080
6081 2022-09-02 Martin Liska <mliska@suse.cz>
6082
6083 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
6084 debugging format.
6085
6086 2022-09-02 Martin Liska <mliska@suse.cz>
6087
6088 * Makefile.in: Remove -gstabs option support, DBX-related
6089 macros and DBX debugging info support.
6090 * collect2.cc (scan_prog_file): Likewise.
6091 * common.opt: Likewise.
6092 * config.gcc: Likewise.
6093 * config.in: Likewise.
6094 * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
6095 * config/alpha/alpha.cc: Likewise.
6096 * config/alpha/elf.h (ASM_SPEC): Likewise.
6097 * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
6098 (DBX_CONTIN_LENGTH): Likewise.
6099 * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
6100 (DBX_CONTIN_LENGTH): Likewise.
6101 * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
6102 * config/darwin.h (DSYMUTIL_SPEC): Likewise.
6103 (ASM_DEBUG_SPEC): Likewise.
6104 (DBX_DEBUGGING_INFO): Likewise.
6105 (DBX_USE_BINCL): Likewise.
6106 (DBX_CONTIN_LENGTH): Likewise.
6107 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
6108 * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
6109 (DBX_CONTIN_LENGTH): Likewise.
6110 * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
6111 (DBX_CONTIN_LENGTH): Likewise.
6112 * config/i386/gas.h (DBX_NO_XREFS): Likewise.
6113 (DBX_CONTIN_LENGTH): Likewise.
6114 * config/ia64/ia64.h: Likewise.
6115 * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
6116 * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
6117 * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
6118 (DBX_CONTIN_LENGTH): Likewise.
6119 (DBX_CONTIN_CHAR): Likewise.
6120 * config/mips/mips.cc (mips_output_filename): Likewise.
6121 (mips_option_override): Likewise.
6122 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
6123 (DBX_DEBUGGING_INFO): Likewise.
6124 (DBX_CONTIN_LENGTH): Likewise.
6125 (DBX_REGISTER_NUMBER): Likewise.
6126 (GP_DBX_FIRST): Likewise.
6127 (FP_DBX_FIRST): Likewise.
6128 (MD_DBX_FIRST): Likewise.
6129 * config/nvptx/nvptx.cc: Likewise.
6130 * config/openbsd.h (DBX_NO_XREFS): Likewise.
6131 * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
6132 * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
6133 (DBX_CONTIN_LENGTH): Likewise.
6134 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
6135 (DBX_USE_BINCL): Likewise.
6136 (DBX_LINES_FUNCTION_RELATIVE): Likewise.
6137 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
6138 * config/pdp11/pdp11.cc: Likewise.
6139 * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
6140 (PREFERRED_DEBUGGING_TYPE): Likewise.
6141 (DBX_CONTIN_LENGTH): Likewise.
6142 * config/rs6000/rs6000-builtin.cc: Likewise.
6143 * config/rs6000/rs6000-call.cc: Likewise.
6144 * config/rs6000/rs6000-logue.cc (defined): Likewise.
6145 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
6146 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
6147 (rs6000_xcoff_declare_function_name): Likewise.
6148 * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
6149 (DBX_FUNCTION_FIRST): Likewise.
6150 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
6151 * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
6152 * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
6153 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
6154 * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
6155 * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
6156 * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
6157 * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
6158 * config/vax/vax.cc (vax_file_start): Likewise.
6159 * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
6160 (DBX_CONTIN_LENGTH): Likewise.
6161 (DBX_CONTIN_CHAR): Likewise.
6162 (DBX_NO_XREFS): Likewise.
6163 (DBX_STATIC_STAB_DATA_SECTION): Likewise.
6164 * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
6165 (XCOFF_DEBUGGING_INFO): Likewise.
6166 * configure: Regenerate. Likewise.
6167 * configure.ac: Likewise.
6168 * debug.h: Likewise.
6169 * doc/install.texi: Likewise.
6170 * doc/invoke.texi: Likewise.
6171 * doc/passes.texi: Likewise.
6172 * doc/tm.texi: Likewise.
6173 * doc/tm.texi.in: Likewise.
6174 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
6175 (dw2_asm_output_nstring): Likewise.
6176 (USE_LINKONCE_INDIRECT): Likewise.
6177 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
6178 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
6179 (output_fde): Likewise.
6180 (output_call_frame_info): Likewise.
6181 (have_macinfo): Likewise.
6182 (add_AT_loc_list): Likewise.
6183 (add_AT_view_list): Likewise.
6184 (output_compilation_unit_header): Likewise.
6185 (output_pubnames): Likewise.
6186 (output_aranges): Likewise.
6187 (output_line_info): Likewise.
6188 (output_macinfo): Likewise.
6189 (dwarf2out_finish): Likewise.
6190 (dwarf2out_early_finish): Likewise.
6191 * final.cc (final_scan_insn_1): Likewise.
6192 (rest_of_handle_final): Likewise.
6193 * flag-types.h (enum debug_info_type): Likewise.
6194 (DBX_DEBUG): Likewise.
6195 (XCOFF_DEBUG): Likewise.
6196 * function.cc (defined): Likewise.
6197 * gcc.cc (defined): Likewise.
6198 (ASM_DEBUG_SPEC): Likewise.
6199 (ASM_DEBUG_OPTION_SPEC): Likewise.
6200 * opts.cc (common_handle_option): Likewise.
6201 (set_debug_level): Likewise.
6202 * system.h (fancy_abort): Likewise.
6203 * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
6204 (TARGET_ASM_DESTRUCTOR): Likewise.
6205 * toplev.cc (defined): Likewise.
6206 * varasm.cc: Likewise.
6207 * config/dbxcoff.h: Removed.
6208 * config/dbxelf.h: Removed.
6209 * dbxout.cc: Removed.
6210 * dbxout.h: Removed.
6211 * gstab.h: Removed.
6212 * stab.def: Removed.
6213 * xcoffout.cc: Removed.
6214 * xcoffout.h: Removed.
6215
6216 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
6217
6218 PR ipa/106627
6219 * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
6220 Set TREE_NOTHROW correctly for dispatcher declaration.
6221 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
6222 Likewise.
6223
6224 2022-09-01 Tamar Christina <tamar.christina@arm.com>
6225
6226 PR other/106782
6227 * config/aarch64/aarch64.cc
6228 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
6229 HOST_WIDE_INT_PRINT_UNSIGNED.
6230
6231 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
6232
6233 * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
6234 VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
6235 to the number of vector elements, if that's a known constant.
6236 (vect_optimize_slp_pass::is_compatible_layout): Remove associated
6237 comment about zero SLP_TREE_LANES.
6238 (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
6239 all partition members when looking for potential layouts.
6240 Handle existing permutes of fixed-length vectors.
6241
6242 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
6243
6244 PR target/106707
6245 * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
6246 Do not convert a move pattern where both operands are AX_REG.
6247
6248 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6249
6250 * range-op-float.cc (build_le): Convert to dconst*inf.
6251 (build_ge): Same.
6252 * value-range.cc (frange::set_signbit): Same.
6253 (frange::normalize_kind): Same.
6254 (range_tests_floats): Same.
6255 * value-range.h (vrp_val_max): Same.
6256 (vrp_val_min): Same.
6257 (frange::set_varying): Same.
6258
6259 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6260
6261 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
6262 dconstninf.
6263 * real.h: Add dconstinf and dconstninf.
6264
6265 2022-09-01 Richard Biener <rguenther@suse.de>
6266
6267 * gimple-predicate-analysis.cc (compute_control_dep_chain):
6268 Remove cycle detection, instead avoid walking backedges.
6269
6270 2022-09-01 Richard Biener <rguenther@suse.de>
6271
6272 * gimple-predicate-analysis.cc (compute_control_dep_chain):
6273 New wrapping overload.
6274 (uninit_analysis::init_use_preds): Simplify.
6275 (uninit_analysis::init_from_phi_def): Likewise.
6276
6277 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6278
6279 * gimple-range-fold.cc
6280 (fold_using_range::range_of_builtin_int_call): Add case for
6281 CFN_BUILT_IN_SIGNBIT.
6282
6283 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6284
6285 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
6286 bit.
6287 (foperator_not_equal::op1_range): Same.
6288 * value-query.cc (range_query::get_tree_range): Set sign bit.
6289 * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
6290 * value-range.cc (frange::set_signbit): New.
6291 (frange::set): Adjust for sign bit.
6292 (frange::normalize_kind): Same.
6293 (frange::union_): Remove useless comment.
6294 (frange::intersect): Same.
6295 (frange::contains_p): Adjust for sign bit.
6296 (frange::singleton_p): Same.
6297 (frange::verify_range): Same.
6298 (range_tests_signbit): New tests.
6299 (range_tests_floats): Call range_tests_signbit.
6300 * value-range.h (class frange_props): Add signbit
6301 (class frange): Same.
6302
6303 2022-09-01 Jakub Jelinek <jakub@redhat.com>
6304
6305 PR other/106782
6306 * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
6307 instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
6308 * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
6309 derived types of gimple to gimple * to avoid -Wformat warnings.
6310 * tree-vect-loop-manip.cc (vect_set_loop_condition,
6311 vect_update_ivs_after_vectorizer): Likewise.
6312 * tree-vect-stmts.cc (vectorizable_load): Likewise.
6313 * tree-vect-patterns.cc (vect_split_statement,
6314 vect_recog_mulhs_pattern, vect_recog_average_pattern,
6315 vect_determine_precisions_from_range,
6316 vect_determine_precisions_from_users): Likewise.
6317 * gimple-loop-versioning.cc
6318 (loop_versioning::analyze_term_using_scevs): Likewise.
6319 * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
6320 (vect_build_slp_tree): Cast slp_tree to void * to avoid
6321 -Wformat warnings.
6322 (optimize_load_redistribution_1, vect_match_slp_patterns,
6323 vect_build_slp_instance, vect_optimize_slp_pass::materialize,
6324 vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
6325 vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
6326 (vect_print_slp_tree): Likewise. Also use
6327 HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
6328 * tree-vect-loop.cc (vect_determine_vectorization_factor,
6329 vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
6330 vectorizable_induction, vect_transform_loop): Cast pointers to derived
6331 types of gimple to gimple * to avoid -Wformat warnings.
6332 (vect_analyze_loop_2): Cast slp_tree to void * to avoid
6333 -Wformat warnings.
6334 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
6335 instead of %d.
6336 * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
6337 instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
6338 instead of SLP_TREE_DEF_TYPE (node).
6339
6340 2022-09-01 Jakub Jelinek <jakub@redhat.com>
6341
6342 PR c++/106655
6343 * doc/invoke.texi (-Winvalid-utf8): Document it.
6344
6345 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
6346
6347 PR tree-optimization/106785
6348 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
6349 (range_tests_floats): Same.
6350
6351 2022-09-01 konglin1 <lingling.kong@intel.com>
6352
6353 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
6354 recognition.
6355
6356 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
6357
6358 PR target/101322
6359 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
6360 Enforce the use of a valid MMA pointer type.
6361
6362 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
6363
6364 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
6365 registers.
6366
6367 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
6368
6369 * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
6370 (riscv_output_move): Add csrr vlenb assembly.
6371 * config/riscv/riscv.md (move_type): Add csrr vlenb type.
6372 (ext): New attribute.
6373 (ext_enabled): Ditto.
6374 (enabled): Ditto.
6375
6376 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
6377
6378 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
6379 "vr" constraint.
6380 (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
6381 (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
6382 (vp): Add poly constraint.
6383
6384 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
6385
6386 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
6387
6388 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
6389
6390 * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
6391 configuration according to TARGET_MIN_VLEN.
6392 * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
6393
6394 2022-08-31 Martin Liska <mliska@suse.cz>
6395
6396 * config.build: Remove deprecated ports.
6397 * config.gcc: Likewise.
6398 * config.host: Likewise.
6399 * configure.ac: Likewise.
6400 * configure: Regenerate.
6401 * config/pa/pa-hpux10.h: Removed.
6402 * config/pa/pa-hpux10.opt: Removed.
6403 * config/pa/t-dce-thr: Removed.
6404
6405 2022-08-31 Martin Liska <mliska@suse.cz>
6406
6407 * Makefile.in: Always install limits.h and syslimits.h to
6408 include folder.
6409 * configure.ac: Assign STMP_FIXINC blank if
6410 --disable-fixincludes is used.
6411 * configure: Regenerate.
6412
6413 2022-08-31 Richard Biener <rguenther@suse.de>
6414
6415 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
6416 Assert the guard_bb isn't empty and has more than one successor.
6417 Drop appropriate parts of the predicate when an edge fails to
6418 register a predicate.
6419 (predicate::dump): Dump empty predicate as TRUE.
6420
6421 2022-08-31 Richard Biener <rguenther@suse.de>
6422
6423 PR tree-optimization/90994
6424 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
6425 Ignore exceptional control flow and skip the edge for the purpose of
6426 predicate generation also for non-calls.
6427
6428 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
6429
6430 * value-range-storage.cc (frange_storage_slot::set_frange): Save
6431 endpoints.
6432 (frange_storage_slot::get_frange): Restore endpoints.
6433 * value-range-storage.h (class frange_storage_slot): Add endpoint
6434 fields.
6435
6436 2022-08-31 Martin Liska <mliska@suse.cz>
6437
6438 PR tree-optimization/106789
6439 * range-op-float.cc (default_frelop_fold_range): Remove the
6440 function.
6441
6442 2022-08-31 Martin Liska <mliska@suse.cz>
6443
6444 * value-range.h: Add more override keywords.
6445
6446 2022-08-31 Martin Liska <mliska@suse.cz>
6447
6448 * value-range.h: Add override.
6449
6450 2022-08-31 Richard Biener <rguenther@suse.de>
6451
6452 PR tree-optimization/65244
6453 * gimple-predicate-analysis.h (predicate::init_from_control_deps):
6454 Add argument to specify whether the predicate is for the USE.
6455 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
6456 Also include predicates effective fallthru control edges when
6457 the predicate is for the USE.
6458
6459 2022-08-31 Richard Biener <rguenther@suse.de>
6460
6461 PR tree-optimization/73550
6462 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
6463 Sanitize debug dumping. Handle case labels with a CASE_HIGH.
6464 (predicate::dump): Adjust for better readability.
6465
6466 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6467 Jakub Jelinek <jakub@redhat.com>
6468
6469 * omp-simd-clone.cc (simd_clone_adjust_return_type,
6470 simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
6471 instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
6472
6473 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
6474
6475 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
6476 argument.
6477
6478 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
6479
6480 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
6481 initialize const_vf to 0.
6482
6483 2022-08-31 Martin Liska <mliska@suse.cz>
6484
6485 * config.gcc: Remove cr16.
6486
6487 2022-08-30 Martin Jambor <mjambor@suse.cz>
6488
6489 * vec.h (array_slice): Add constructors for non-const reference to
6490 heap vector and pointers to heap vectors.
6491
6492 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
6493
6494 * value-range.cc (early_nan_resolve): Change comment.
6495 (frange::union_): Handle union when one side is a NAN.
6496 (range_tests_nan): Add tests for NAN union.
6497
6498 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
6499
6500 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
6501 (gcn_simd_clone_adjust): New.
6502 (gcn_simd_clone_usable): New.
6503 (TARGET_SIMD_CLONE_ADJUST): New.
6504 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
6505 (TARGET_SIMD_CLONE_USABLE): New.
6506
6507 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
6508
6509 * doc/tm.texi: Regenerate.
6510 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
6511 vecsize.
6512 (simd_clone_adjust_argument_types): Likewise.
6513 * target.def (compute_vecsize_and_simdlen): Document the new
6514 vecsize_int and vecsize_float semantics.
6515
6516 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6517
6518 * expmed.cc (store_bit_field_1): Fix byte offset calculation
6519 for undefined structures.
6520
6521 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6522
6523 * params.opt (-param=vect-max-layout-candidates=): New parameter.
6524 * doc/invoke.texi (vect-max-layout-candidates): Document it.
6525 * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
6526 (auto_load_permutation_t): Likewise.
6527 * tree-vect-slp.cc (vect_slp_node_weight): New function.
6528 (slpg_layout_cost): New class.
6529 (slpg_vertex): Replace perm_in and perm_out with partition,
6530 out_degree, weight and out_weight.
6531 (slpg_partition_info, slpg_partition_layout_costs): New classes.
6532 (vect_optimize_slp_pass): Likewise, cannibalizing some part of
6533 the previous vect_optimize_slp.
6534 (vect_optimize_slp): Use it.
6535
6536 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6537
6538 * hash-traits.h (vec_hash_base): New class.
6539 (vec_free_hash_base): Likewise.
6540
6541 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6542
6543 * hash-traits.h (int_hash_base): New struct, split out from...
6544 (int_hash): ...this class, which now inherits from int_hash_base.
6545 * hash-map-traits.h (unbounded_hashmap_traits): Take a template
6546 parameter for the key that provides hash and equality functions.
6547 (unbounded_int_hashmap_traits): Turn into a type alias of
6548 unbounded_hashmap_traits.
6549
6550 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6551
6552 * graphds.cc (graphds_scc): Add a pass-back parameter for the
6553 final node order.
6554 * graphds.h (graphds_scc): Update prototype accordingly.
6555
6556 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6557
6558 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
6559 (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead
6560 of STMT_VINFO_VECTYPE.
6561
6562 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6563
6564 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
6565 (vectorizable_slp_permutation): ...here.
6566
6567 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
6568
6569 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
6570 that the requested number of units is interoperable with the requested
6571 prevailing mode.
6572
6573 2022-08-30 Martin Liska <mliska@suse.cz>
6574
6575 * config.gcc: Remove the port.
6576 * config/m32c/rtems.h: Removed.
6577
6578 2022-08-30 Richard Biener <rguenther@suse.de>
6579
6580 PR tree-optimization/73550
6581 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
6582 Do not apply MAX_NUM_CHAINS again.
6583
6584 2022-08-30 Richard Biener <rguenther@suse.de>
6585
6586 * gimple-predicate-analysis.cc (format_edge_vec): Dump
6587 both source and destination.
6588 (dump_dep_chains): Remove.
6589 (uninit_analysis::init_use_preds): Remove redundant
6590 dumping of chains.
6591
6592 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
6593
6594 * value-range-storage.cc (frange_storage_slot::get_frange): Use
6595 frange_nan.
6596 * value-range.cc (frange::set_nan): New.
6597 (frange_nan): Move to header file.
6598 (range_tests_nan): Adjust frange_nan callers to pass type.
6599 New test.
6600 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
6601 (frange_nan): New.
6602
6603 2022-08-30 Richard Biener <rguenther@suse.de>
6604
6605 PR tree-optimization/67196
6606 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
6607 Simplify and normalize use prediates before first use.
6608
6609 2022-08-30 Richard Biener <rguenther@suse.de>
6610
6611 * gimple-predicate-analysis.cc (dump_pred_chain): Fix
6612 parentizing and AND prepending.
6613 (predicate::dump): Do not dump the GENERIC expanded
6614 predicate, properly parentize and prepend ORs to the
6615 piecewise predicate dump.
6616 (build_pred_expr): Remove.
6617
6618 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
6619
6620 * range-op-float.cc (finite_operand_p): New.
6621 (build_le): New.
6622 (build_lt): New.
6623 (build_ge): New.
6624 (build_gt): New.
6625 (foperator_equal::fold_range): New implementation with endpoints.
6626 (foperator_equal::op1_range): Same.
6627 (foperator_not_equal::fold_range): Same.
6628 (foperator_not_equal::op1_range): Same.
6629 (foperator_lt::fold_range): Same.
6630 (foperator_lt::op1_range): Same.
6631 (foperator_lt::op2_range): Same.
6632 (foperator_le::fold_range): Same.
6633 (foperator_le::op1_range): Same.
6634 (foperator_le::op2_range): Same.
6635 (foperator_gt::fold_range): Same.
6636 (foperator_gt::op1_range): Same.
6637 (foperator_gt::op2_range): Same.
6638 (foperator_ge::fold_range): Same.
6639 (foperator_ge::op1_range): Same.
6640 (foperator_ge::op2_range): Same.
6641
6642 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
6643
6644 * range-op-float.cc (frange_set_nan): New.
6645 (frange_drop_inf): New.
6646 (frange_drop_ninf): New.
6647 (foperator_equal::op1_range): Adjust for endpoints.
6648 (foperator_lt::op1_range): Same.
6649 (foperator_lt::op2_range): Same.
6650 (foperator_gt::op1_range): Same.
6651 (foperator_gt::op2_range): Same.
6652 (foperator_unordered::op1_range): Same.
6653 * value-query.cc (range_query::get_tree_range): Same.
6654 * value-range-pretty-print.cc (vrange_printer::visit): Same.
6655 * value-range-storage.cc (frange_storage_slot::get_frange): Same.
6656 * value-range.cc (frange::set): Same.
6657 (frange::normalize_kind): Same.
6658 (frange::union_): Same.
6659 (frange::intersect): Same.
6660 (frange::operator=): Same.
6661 (early_nan_resolve): New.
6662 (frange::contains_p): New.
6663 (frange::singleton_p): New.
6664 (frange::set_nonzero): New.
6665 (frange::nonzero_p): New.
6666 (frange::set_zero): New.
6667 (frange::zero_p): New.
6668 (frange::set_nonnegative): New.
6669 (frange_float): New.
6670 (frange_nan): New.
6671 (range_tests_nan): New.
6672 (range_tests_signed_zeros): New.
6673 (range_tests_floats): New.
6674 (range_tests): New.
6675 * value-range.h (frange::lower_bound): New.
6676 (frange::upper_bound): New.
6677 (vrp_val_min): Use real_inf with a sign instead of negating inf.
6678 (frange::frange): New.
6679 (frange::set_varying): Adjust for endpoints.
6680 (real_max_representable): New.
6681 (real_min_representable): New.
6682
6683 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
6684
6685 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
6686 for real zero.
6687
6688 2022-08-30 Martin Liska <mliska@suse.cz>
6689
6690 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
6691 argument.
6692
6693 2022-08-30 Richard Biener <rguenther@suse.de>
6694
6695 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
6696 the set of fallthru reachable blocks from function entry
6697 and use that to determine wlims.always_executed.
6698
6699 2022-08-30 Richard Biener <rguenther@suse.de>
6700
6701 PR tree-optimization/56654
6702 * tree-ssa-uninit.cc (cand_cmp): New.
6703 (find_uninit_use): First process all PHIs and collect candidate
6704 stmts, then sort those after RPO.
6705 (warn_uninitialized_phi): Pass on bb_to_rpo.
6706 (execute_late_warn_uninitialized): Compute and pass on
6707 reverse lookup of RPO number from basic block index.
6708
6709 2022-08-30 Richard Biener <rguenther@suse.de>
6710
6711 * gimple-predicate-analysis.h (uninit_analysis::operator()):
6712 Remove.
6713 * gimple-predicate-analysis.cc
6714 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
6715 simplify a bit.
6716 * tree-ssa-uninit.cc (defined_args): New global.
6717 (compute_uninit_opnds_pos): Mask with the recorded set
6718 of guarded maybe-uninitialized uses.
6719 (uninit_undef_val_t::operator()): Remove.
6720 (find_uninit_use): Process all PHI uses, recording the
6721 guarded ones and marking the PHI result as uninitialized
6722 consistently.
6723 (warn_uninitialized_phi): Adjust.
6724 (execute_late_warn_uninitialized): Get rid of the PHI worklist
6725 and instead walk the function in RPO order.
6726 * spellcheck.h (best_match::m_best_candidate_len): Initialize.
6727
6728 2022-08-30 Tamar Christina <tamar.christina@arm.com>
6729
6730 PR tree-optimization/106744
6731 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
6732
6733 2022-08-30 Tamar Christina <tamar.christina@arm.com>
6734
6735 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
6736
6737 2022-08-29 David Faust <david.faust@oracle.com>
6738
6739 PR target/106745
6740 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
6741 computation of index for anonymous members.
6742
6743 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
6744
6745 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
6746 target macro.
6747
6748 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
6749
6750 PR target/106748
6751 * config/i386/i386-expand.cc
6752 (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
6753 * config/i386/sse.md (V_256H): Add V16BF.
6754
6755 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
6756
6757 * config/s390/s390.cc (s390_address_cost): Declare.
6758 (s390_hard_regno_nregs): Declare.
6759 (s390_rtx_costs): Add handling for REG and MEM in SET.
6760
6761 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
6762
6763 * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
6764 (is_reverse_perm_mask): New function.
6765 (expand_perm_with_rot): Recognize reverse pattern.
6766 (expand_perm_with_vstbrq): New function.
6767 (expand_perm_with_vster): Use vler/vster for element reversal on z15.
6768 (vectorize_vec_perm_const_1): Use.
6769 (s390_vectorize_vec_perm_const): Add expand functions.
6770 * config/s390/vx-builtins.md: Prefer vster over vler.
6771
6772 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
6773
6774 * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
6775 * config/s390/vector.md: Rewrite patterns to use vec_select.
6776 * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
6777 Likewise.
6778
6779 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
6780
6781 PR target/100869
6782 * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
6783 (rotl<mode>3_di): New pattern.
6784 * config/s390/vx-builtins.md: Use vpdi and verll for reversing
6785 elements.
6786
6787 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
6788
6789 * config/s390/s390.cc (s390_issue_rate): Add z15.
6790
6791 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
6792
6793 * common/config/s390/s390-common.cc: Enable -funroll-loops and
6794 -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
6795 * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
6796 loops larger than 12 instructions.
6797 (s390_override_options_after_change): Set unroll options.
6798 (s390_option_override_internal): Likewise.
6799 * config/s390/s390.opt: Document munroll-only-small-loops.
6800
6801 2022-08-29 Richard Biener <rguenther@suse.de>
6802
6803 * gimple-predicate-analysis.cc (is_loop_exit,
6804 find_control_equiv_block): Inline into single caller ...
6805 (uninit_analysis::init_use_preds): ... here and refactor.
6806
6807 2022-08-29 Richard Biener <rguenther@suse.de>
6808
6809 * gimple-predicate-analysis.cc (compute_control_dep_chain):
6810 Inline is_loop_exit and refactor, add comment about
6811 loop exits.
6812
6813 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
6814
6815 * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
6816 (riscv_frame_info::reset(void)): New.
6817 (riscv_compute_frame_info): Use riscv_frame_info::reset instead
6818 of memset when clean frame.
6819
6820 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
6821
6822 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
6823 (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
6824 (riscv_address_insns): Add RVV modes condition.
6825 (riscv_binary_cost): Ditto.
6826 (riscv_rtx_costs): Adjust cost for RVV.
6827 (riscv_secondary_memory_needed): Add RVV modes condition.
6828 (riscv_hard_regno_nregs): Add RVV register allocation.
6829 (riscv_hard_regno_mode_ok): Add RVV register allocation.
6830 (riscv_class_max_nregs): Add RVV register allocation.
6831 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
6832 (UNITS_PER_V_REG): New macro.
6833 (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
6834 (V_REG_FIRST): New macro.
6835 (V_REG_LAST): Ditto.
6836 (V_REG_NUM): Ditto.
6837 (V_REG_P): Ditto.
6838 (VL_REG_P): Ditto.
6839 (VTYPE_REG_P): Ditto.
6840 (RISCV_DWARF_VL): Ditto.
6841 (RISCV_DWARF_VTYPE): Ditto.
6842 (enum reg_class): Add RVV register types.
6843 (REG_CLASS_CONTENTS): Add RVV register types.
6844 * config/riscv/riscv.md: Add VL/VTYPE register number constants.
6845
6846 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
6847
6848 * config/riscv/riscv.md: Add new type for vector instructions.
6849
6850 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
6851
6852 PR target/106017
6853 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
6854 of MMA pointer conversions.
6855
6856 2022-08-27 Xi Ruoyao <xry111@xry111.site>
6857
6858 * config/i386/gcc-auto-profile: Regenerate.
6859
6860 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
6861
6862 * real.cc (real_iszero): New.
6863 * real.h (real_iszero): New.
6864
6865 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
6866
6867 * real.cc (real_isinf): New overload.
6868 (real_inf): Add sign argument.
6869 * real.h (real_isinf): New overload.
6870 (real_inf): Add sign argument.
6871
6872 2022-08-26 Marek Polacek <polacek@redhat.com>
6873
6874 PR c++/81159
6875 * doc/invoke.texi: Document -Wself-move.
6876
6877 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
6878
6879 * value-range.cc (vrange::set): Set varying.
6880 (vrange::set_nonzero): Same.
6881 (vrange::set_zero): Same.
6882 (vrange::set_nonnegative): Same.
6883
6884 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
6885
6886 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
6887 copy op2 range when honoring signed zeros.
6888
6889 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
6890
6891 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
6892 add newline.
6893 (profitable_path_p): Same.
6894
6895 2022-08-26 Richard Biener <rguenther@suse.de>
6896
6897 * gimple-predicate-analysis.h
6898 (uninit_analysis::use_cannot_happen): Remove.
6899 * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
6900 (uninit_analysis::use_cannot_happen): Likewise.
6901 (uninit_analysis::is_use_guarded): Do not call
6902 use_cannot_happen.
6903 (dump_predicates): Remove.
6904 (simple_control_dep_chain): Remove edge overload.
6905
6906 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
6907
6908 * internal-fn.cc (expand_GOMP_TARGET_REV): New.
6909 * internal-fn.def (GOMP_TARGET_REV): New.
6910 * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
6911 'omp target device_ancestor_host' as in_other_partition and don't
6912 error if absent.
6913 * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
6914 * omp-expand.cc (expand_omp_target): For reverse offload, remove
6915 sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
6916 empty-body nohost function.
6917 * omp-offload.cc (execute_omp_device_lower): Handle
6918 IFN_GOMP_TARGET_REV.
6919 (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
6920 nullify fn argument for reverse offload
6921
6922 2022-08-26 Jakub Jelinek <jakub@redhat.com>
6923
6924 * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
6925 * builtins.cc (expand_builtin_issignaling): New function.
6926 (expand_builtin_signbit): Don't overwrite target.
6927 (expand_builtin): Handle BUILT_IN_ISSIGNALING.
6928 (fold_builtin_classify): Likewise.
6929 (fold_builtin_1): Likewise.
6930 * optabs.def (issignaling_optab): New.
6931 * fold-const-call.cc (fold_const_call_ss): Handle
6932 BUILT_IN_ISSIGNALING.
6933 * config/i386/i386.md (issignalingxf2): New expander.
6934 * doc/extend.texi (__builtin_issignaling): Document.
6935 (__builtin_isinf, __builtin_isnan): Clarify behavior with
6936 -ffinite-math-only.
6937 * doc/md.texi (issignaling<mode>2): Likewise.
6938
6939 2022-08-26 Jakub Jelinek <jakub@redhat.com>
6940
6941 PR tree-optimization/106099
6942 * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
6943 * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
6944 __builtin_trap to avoid the need of vops.
6945
6946 2022-08-26 Richard Biener <rguenther@suse.de>
6947
6948 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
6949 New helper.
6950 (compute_control_dep_chain): Adjust to honor marked region
6951 if provided.
6952 (uninit_analysis::init_from_phi_def): Pre-mark the dominating
6953 region to improve compute_control_dep_chain walking.
6954 * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
6955
6956 2022-08-26 Richard Biener <rguenther@suse.de>
6957
6958 * gimple-predicate-analysis.cc
6959 (uninit_analysis::collect_phi_def_edges): Only expand a
6960 PHI def edge when it is possibly undefined.
6961
6962 2022-08-26 Martin Liska <mliska@suse.cz>
6963
6964 * doc/extend.texi: Remove cr16 related stuff.
6965 * doc/install.texi: Likewise.
6966 * doc/invoke.texi: Likewise.
6967 * doc/md.texi: Likewise.
6968 * function-tests.cc (test_expansion_to_rtl): Likewise.
6969 * common/config/cr16/cr16-common.cc: Removed.
6970 * config/cr16/constraints.md: Removed.
6971 * config/cr16/cr16-protos.h: Removed.
6972 * config/cr16/cr16.cc: Removed.
6973 * config/cr16/cr16.h: Removed.
6974 * config/cr16/cr16.md: Removed.
6975 * config/cr16/cr16.opt: Removed.
6976 * config/cr16/predicates.md: Removed.
6977 * config/cr16/t-cr16: Removed.
6978
6979 2022-08-26 liuhongt <hongtao.liu@intel.com>
6980
6981 PR target/106704
6982 * config/i386/i386-builtin.def (BDESC): Add
6983 CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
6984 corresponding builtins.
6985 * config/i386/i386.cc (ix86_gimple_fold_builtin):
6986 Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
6987 IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
6988
6989 2022-08-25 Marek Polacek <polacek@redhat.com>
6990
6991 * ginclude/stddef.h: Define nullptr_t.
6992
6993 2022-08-25 Joseph Myers <joseph@codesourcery.com>
6994
6995 * gimplify.cc (gimplify_modify_expr): Convert initialization from
6996 a variable-size CONSTRUCTOR to memset before call to
6997 gimplify_modify_expr_rhs.
6998
6999 2022-08-25 Jason Merrill <jason@redhat.com>
7000
7001 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
7002
7003 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
7004
7005 PR target/106101
7006 * config/s390/predicates.md (subreg_register_operand): New
7007 predicate.
7008 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
7009 function prototype.
7010 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
7011 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
7012 gen_lowpart.
7013 * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
7014 ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
7015 ("movstrictqi", "movstricthi", "movstrictsi"): Use the
7016 subreg_register_operand predicate instead of register_operand.
7017
7018 2022-08-25 Xi Ruoyao <xry111@xry111.site>
7019
7020 * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
7021 Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
7022 * config/loongarch/loongarch.cc (loongarch_attribute_table):
7023 New attribute table.
7024 (TARGET_ATTRIBUTE_TABLE): Define the target hook.
7025 (loongarch_handle_model_attribute): New static function.
7026 (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
7027 model attribute of SYMBOL_REF_DECL into account returning
7028 SYMBOL_PCREL or SYMBOL_PCREL64.
7029 (loongarch_use_anchors_for_symbol_p): New static function.
7030 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
7031 (loongarch_symbol_extreme_p): New static function.
7032 (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
7033 (loongarch_symbol_insns): Likewise.
7034 (loongarch_split_symbol_type): Likewise.
7035 (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
7036 TARGET_CMODEL_EXTREME for PC-relative addressing.
7037 (loongarch_print_operand_reloc): Likewise.
7038 * doc/extend.texi (Variable Attributes): Document new
7039 LoongArch specific attribute.
7040
7041 2022-08-25 Xi Ruoyao <xry111@xry111.site>
7042
7043 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
7044 Return early if the rtx is not SYMBOL_REF.
7045
7046 2022-08-25 Richard Biener <rguenther@suse.de>
7047
7048 PR tree-optimization/106737
7049 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
7050 verify SSA form.
7051
7052 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
7053
7054 PR target/106459
7055 * config/loongarch/loongarch.cc (loongarch_build_integer):
7056 Use HOST_WIDE_INT.
7057 * config/loongarch/loongarch.h (IMM_REACH): Likewise.
7058 (HWIT_1U): New Defined.
7059 (LU12I_OPERAND): Use HOST_WIDE_INT.
7060 (LU32I_OPERAND): Likewise.
7061 (LU52I_OPERAND): Likewise.
7062 (HWIT_UC_0xFFF): Likwise.
7063
7064 2022-08-24 Andrew Pinski <apinski@marvell.com>
7065
7066 PR target/106632
7067 PR target/106588
7068 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
7069 instead of i.
7070 (*slliuw): Likewise.
7071 (*bexti): Likewise. Also add a check for operands[2] to be less
7072 than the mode bitsize.
7073
7074 2022-08-24 Andrew Pinski <apinski@marvell.com>
7075
7076 * config/riscv/constraints.md (DbS): New constraint.
7077 (DnS): New constraint.
7078 * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
7079 (*bclr<mode>): Likewise.
7080 (*binvi<mode>): Likewise.
7081
7082 2022-08-24 Andrew Pinski <apinski@marvell.com>
7083
7084 PR target/106586
7085 * config/riscv/predicates.md (single_bit_mask_operand):
7086 Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
7087 (not_single_bit_mask_operand): Likewise.
7088 * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
7089 1<<31 for 32bits as it is already handled.
7090 Call trunc_int_for_mode on the upper part after the subtraction.
7091 (riscv_move_integer): Call trunc_int_for_mode before generating
7092 the integer just make sure the constant has been sign extended
7093 corectly.
7094 (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
7095 addition for the new rhs.
7096 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
7097 then mask off the upper 32bits of the HWI as it will be sign extended.
7098
7099 2022-08-24 Andrew Pinski <apinski@marvell.com>
7100
7101 * config/riscv/constraints.md (DsS): New constraint.
7102 (DsD): New constraint.
7103 * config/riscv/iterators.md (shiftm1c): New iterator.
7104 * config/riscv/bitmanip.md (*bset<mode>_mask):
7105 Use shiftm1c.
7106 (*bset<mode>_1_mask): Likewise.
7107
7108 2022-08-24 Andrew Pinski <apinski@marvell.com>
7109
7110 * config/riscv/constraints.md (Ds3): New constraint.
7111 * config/riscv/predicates.md (imm123_operand): New predicate.
7112 * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
7113 (*shNadduw): Likewise.
7114
7115 2022-08-24 Andrew Pinski <apinski@marvell.com>
7116
7117 * config/riscv/riscv.cc (riscv_print_operand):
7118 Handle '~'.
7119 (riscv_print_operand_punct_valid_p): New function
7120 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7121 * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
7122 Use %~ instead of conditional the pattern on TARGET_64BIT.
7123 (rotrsi3): Likewise.
7124 (rotlsi3): Likewise.
7125 * config/riscv/riscv.md: Add ~ to the list of modifiers.
7126 (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
7127 (subsi3): Likewise.
7128 (negsi2): Likewise.
7129 (mulsi3): Likewise.
7130 (optab>si3/any_div): Likewise.
7131 (*add<mode>hi3): Likewise.
7132 (<optab>si3/any_shift): Likewise.
7133
7134 2022-08-24 Andrew Pinski <apinski@marvell.com>
7135
7136 * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
7137 keep the list in riscv.md in sync with this list.
7138 * config/riscv/riscv.md: Add list of modifiers as comments.
7139
7140 2022-08-24 Andrew Pinski <apinski@marvell.com>
7141
7142 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
7143 * config/riscv/iterators.md: Here.
7144
7145 2022-08-24 Andrew Pinski <apinski@marvell.com>
7146
7147 * config/riscv/bitmanip.md
7148 (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
7149 tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
7150 * config/riscv/iterators.md: Here.
7151
7152 2022-08-24 Andrew Pinski <apinski@marvell.com>
7153
7154 * config/riscv/riscv.md (GPR): Move to new file.
7155 (P, X, BR): Likewise.
7156 (MOVE32, MOVE64, SHORT): Likewise.
7157 (HISI, SUPERQI, SUBX): Likewise.
7158 (ANYI, ANYF, SOFTF): Likewise.
7159 (size, load, default_load): Likewise.
7160 (softload, store, softstore): Likewise.
7161 (reg, fmt, ifmt, amo): Likewise.
7162 (UNITMODE, HALFMODE): Likewise.
7163 (RINT, rint_pattern, rint_rm): Likewise.
7164 (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
7165 (any_extend, any_shiftrt, any_shift): Likewise.
7166 (any_bitwise): Likewise.
7167 (any_div, any_mod): Likewise.
7168 (any_gt, any_ge, any_lt, any_le): Likewise.
7169 (u, su): Likewise.
7170 (optab, insn): Likewise.
7171 * config/riscv/iterators.md: New file.
7172
7173 2022-08-24 Andrew Pinski <apinski@marvell.com>
7174
7175 PR target/106601
7176 * config/riscv/bitmanip.md (bswaphi2): New pattern.
7177
7178 2022-08-24 Andrew Pinski <apinski@marvell.com>
7179
7180 PR target/106600
7181 * config/riscv/bitmanip.md (bswap<mode>2): Remove
7182 condition on TARGET_64BIT as X is already conditional there.
7183
7184 2022-08-24 Joseph Myers <joseph@codesourcery.com>
7185
7186 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
7187 exponent for the type.
7188
7189 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
7190
7191 PR target/106733
7192 * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
7193 constants as legitimate addresses for functions.
7194 (bpf_small_register_classes_for_mode_p): Define target hook.
7195
7196 2022-08-24 Richard Biener <rguenther@suse.de>
7197
7198 * gimple-predicate-analysis.cc: Move predicate normalization
7199 after the comment documenting it.
7200
7201 2022-08-24 Richard Biener <rguenther@suse.de>
7202
7203 * gimple-predicate-analysis.h (predicate): Split out
7204 non-predicate related functionality into ..
7205 (uninit_analysis): .. this new class.
7206 * gimple-predicate-analysis.cc: Refactor into two classes.
7207 * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
7208
7209 2022-08-24 Richard Biener <rguenther@suse.de>
7210
7211 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
7212 Do simple_control_dep_chain only up to cd_root, add the PHI
7213 operand edge to the chains like init_from_phi_def does.
7214 (predicate::is_use_guarded): Speedup early out, avoid half-way
7215 initializing the PHI def predicate.
7216
7217 2022-08-24 Jakub Jelinek <jakub@redhat.com>
7218
7219 PR target/106721
7220 * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
7221 Change V32HF, V16HF and V8HF entries from "f" to "i".
7222 (iptr): Add V32BF, V16BF, V8BF and BF entries.
7223 (i128vldq): Add V16HF and V16BF entries.
7224 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
7225 mask_opernad3 -> mask_operand3.
7226
7227 2022-08-24 Martin Liska <mliska@suse.cz>
7228 Jørgen Kvalsvik <j@lambda.is>
7229
7230 * gcov.cc (add_line_counts): Add group functions to coverage
7231 summary.
7232 (accumulate_line_counts): Similarly for files.
7233
7234 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
7235
7236 * config/loongarch/genopts/loongarch-strings: Support code model medium.
7237 * config/loongarch/genopts/loongarch.opt.in: Likewise.
7238 * config/loongarch/loongarch-def.c: Likewise.
7239 * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
7240 (CMODEL_EXTREME): Likewise.
7241 (N_CMODEL_TYPES): Likewise.
7242 (CMODEL_MEDIUM): Likewise.
7243 * config/loongarch/loongarch-opts.cc: Likewise.
7244 * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
7245 * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
7246 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
7247 Tls symbol Loading support medium mode.
7248 (loongarch_legitimize_call_address): When medium mode, make a symbolic
7249 jump with two instructions.
7250 (loongarch_option_override_internal): Support medium.
7251 * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
7252 (@sibcall_internal_1<mode>): New function call templates added to support
7253 medium mode.
7254 (@sibcall_value_internal_1<mode>): Likewise.
7255 (@sibcall_value_multiple_internal_1<mode>): Likewise.
7256 (@call_internal_1<mode>): Likewise.
7257 (@call_value_internal_1<mode>): Likewise.
7258 (@call_value_multiple_internal_1<mode>): Likewise.
7259 * config/loongarch/loongarch.opt: Support medium.
7260 * config/loongarch/predicates.md: Add processing about medium mode.
7261 * doc/invoke.texi: Document for '-mcmodel=medium'.
7262
7263 2022-08-24 Richard Biener <rguenther@suse.de>
7264
7265 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
7266 Start the compute_control_dep_chain walk from the immediate
7267 dominator of the PHI.
7268
7269 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
7270
7271 PR target/106714
7272 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
7273 __PTRDIFF_TYPE__.
7274 (_tile_stream_loadd_internal): Likewise.
7275 (_tile_stored_internal): Likewise.
7276
7277 2022-08-23 Richard Biener <rguenther@suse.de>
7278
7279 PR tree-optimization/106722
7280 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
7281 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
7282 * gimple-predicate-analysis.cc: ... here and document.
7283 (simple_control_dep_chain): New function, factored from
7284 predicate::use_cannot_happen.
7285 (predicate::use_cannot_happen): Adjust.
7286 (predicate::predicate): Use simple_control_dep_chain as fallback.
7287
7288 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
7289
7290 * range-op-float.cc (foperator_equal::op1_range): Set range to
7291 range of op2.
7292
7293 2022-08-23 Richard Biener <rguenther@suse.de>
7294
7295 * gimple-predicate-analysis.cc (is_loop_exit): Split out
7296 from ...
7297 (is_non_loop_exit_postdominating): ... here. Remove after
7298 inlining ...
7299 (find_control_equiv_block): ... here.
7300 (compute_control_dep_chain): ... and here.
7301 (predicate::is_use_guarded): Do not excempt loop exits
7302 from short-cutting the case of the use post-dominating the
7303 PHI definition.
7304
7305 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
7306
7307 PR tree-optimization/106687
7308 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
7309 for the VREL_GT case as well.
7310
7311 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
7312
7313 * config/pru/pru.md (pru_<code>di3): New alternative for
7314 two operands but without earlyclobber.
7315
7316 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
7317
7318 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
7319 variants for loading -1 consts.
7320
7321 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
7322
7323 PR target/106564
7324 * config/pru/constraints.md (Um): New constraint for -1.
7325 (Uf): New constraint for IOR fill-bytes constants.
7326 (Uz): New constraint for AND zero-bytes constants.
7327 * config/pru/predicates.md (const_fillbytes_operand): New
7328 predicate for IOR fill-bytes constants.
7329 (const_zerobytes_operand): New predicate for AND zero-bytes
7330 constants.
7331 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
7332 (struct pru_byterange): New struct to describe a byte range.
7333 (pru_calc_byterange): New declaration.
7334 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
7335 64-bit zero-extend.
7336 (pru_output_sign_extend): Remove.
7337 (pru_calc_byterange): New helper function to extract byte
7338 range info from a constant.
7339 (pru_print_operand): Remove 'y' and 'z' print modifiers.
7340 * config/pru/pru.md (zero_extendqidi2): New pattern.
7341 (zero_extendhidi2): New pattern.
7342 (zero_extendsidi2): New pattern.
7343 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
7344 (@pru_ior_fillbytes<mode>): New pattern.
7345 (@pru_and_zerobytes<mode>): New pattern.
7346 (<code>di3): Rewrite as an expand and handle ZERO and FILL
7347 special cases.
7348 (pru_<code>di3): New name for <code>di3.
7349 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
7350 handle bit-test for 64-bit registers.
7351
7352 2022-08-22 Richard Biener <rguenther@suse.de>
7353
7354 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
7355 (predicate::def_expr): Likewise.
7356 (predicate::use_expr): Likewise.
7357 (predicate::expr): Likewise.
7358 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
7359 (predicate::use_expr): Likewise.
7360 (predicate::expr): Likewise.
7361 (predicate::is_use_guarded): Do not build m_use_expr.
7362
7363 2022-08-22 Martin Liska <mliska@suse.cz>
7364
7365 PR lto/106700
7366 * configure.ac: Detect O_NONBLOCK flag for open.
7367 * config.in: Regenerate.
7368 * configure: Regenerate.
7369 * opts-common.cc (jobserver_info::connect): Set is_connected
7370 properly based on O_NONBLOCK.
7371 * opts-jobserver.h (struct jobserver_info): Add is_connected
7372 member variable.
7373
7374 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
7375
7376 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
7377 and repeat value different.
7378
7379 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
7380
7381 PR lto/106686
7382 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
7383 (tool_cleanup): Unlink offload_names.
7384 (compile_offload_image): Take filename argument to set it early.
7385 (compile_images_for_offload_targets): Update call; set
7386 offload_names to NULL after freeing the array.
7387
7388 2022-08-22 Richard Biener <rguenther@suse.de>
7389
7390 PR tree-optimization/105937
7391 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
7392 on backedges.
7393 (execute_late_warn_uninitialized): Mark backedges.
7394
7395 2022-08-22 Richard Biener <rguenther@suse.de>
7396
7397 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
7398 If the use is guarded with multiple predicate paths compute
7399 the predicates intersection before going forward. When
7400 compute_control_dep_chain wasn't able to come up with at
7401 least one path from function entry to the PHI edge compute
7402 a conservative sparse path instead.
7403
7404 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
7405
7406 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
7407 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
7408 Add extreme support for TLS GD and LD types.
7409 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
7410 and IE.
7411 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
7412 the symbol address will be obtained through five instructions.
7413 (loongarch_print_operand_reloc): Add support.
7414 (loongarch_print_operand): Add support.
7415 (loongarch_print_operand_address): Add support.
7416 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
7417 incompatible with '-mno-explicit-relocs'.
7418 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
7419 Loads bits 12-31 of data into registers.
7420 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
7421 the source register.
7422 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
7423 the source register.
7424 * config/loongarch/predicates.md: Symbols need to be decomposed
7425 when defining the macro TARGET_CMODEL_EXTREME
7426 * doc/invoke.texi: Modify the description information of cmodel in the document.
7427 Document -W[no-]extreme-plt.
7428
7429 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
7430
7431 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
7432 files_to_cleanup.
7433 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
7434 omp_requires_file to temp_files.
7435 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
7436 (main): Remove local omp_requires_file var.
7437 (tool_cleanup): Handle omp_requires_file.
7438
7439 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
7440
7441 * gimple-range-path.cc (path_range_query::path_range_query):
7442 Remove constructor that takes edge.
7443 * gimple-range-path.h (class path_range_query): Same.
7444 * tree-ssa-loop-ch.cc (edge_range_query): New.
7445 (entry_loop_condition_is_static): Call edge_range_query.
7446
7447 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7448
7449 * config/xtensa/xtensa.h
7450 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
7451 Add new register class "ISC_REGS".
7452 * config/xtensa/constraints.md (c): Add new register constraint.
7453 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
7454 (sibcall_internal, sibcall_value_internal):
7455 Change to use the new register constraint, and remove two split
7456 patterns for fixups that are no longer needed.
7457
7458 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
7459
7460 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
7461 pattern formatting.
7462
7463 2022-08-18 Tim Lange <mail@tim-lange.me>
7464
7465 PR analyzer/106181
7466 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
7467
7468 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
7469
7470 * gimple-range-path.cc (path_range_query::path_range_query): Add
7471 various constructors to take a path.
7472 (path_range_query::~path_range_query): Remove m_alloced_ranger.
7473 (path_range_query::range_on_path_entry): Adjust for m_ranger being
7474 a reference.
7475 (path_range_query::set_path): Rename to...
7476 (path_range_query::reset_path): ...this and call compute_ranges.
7477 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
7478 reference.
7479 (path_range_query::range_defined_in_block): Same.
7480 (path_range_query::compute_ranges_in_block): Same.
7481 (path_range_query::adjust_for_non_null_uses): Same.
7482 (path_range_query::compute_exit_dependencies): Use m_path instead
7483 of argument.
7484 (path_range_query::compute_ranges): Remove path argument.
7485 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
7486 (path_range_query::compute_outgoing_relations): Same.
7487 * gimple-range-path.h (class path_range_query): Add various
7488 constructors.
7489 Make compute_ranges and compute_exit_dependencies private.
7490 Rename set_path to reset_path.
7491 Make m_ranger a reference.
7492 Remove m_alloced_ranger.
7493 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
7494 path_range_query.
7495 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
7496 ranger and instantiate a new path_range_query every time.
7497 (ch_base::copy_headers): Pass ranger instead of path_range_query.
7498 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
7499 (back_threader::~back_threader): Remove m_solver.
7500 (back_threader::find_taken_edge_switch): Adjust for m_ranger
7501 reference.
7502 (back_threader::find_taken_edge_cond): Same.
7503 (back_threader::dump): Remove m_solver.
7504 (back_threader::back_threader): Move verify_marked_backedges
7505 here from the path_range_query constructor.
7506 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
7507 some code from compute_ranges_from_state here.
7508 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
7509 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
7510 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
7511 compute_ranges_from_state to compute_exit_dependencies.
7512 Remove m_path.
7513
7514 2022-08-18 Richard Biener <rguenther@suse.de>
7515
7516 PR middle-end/106617
7517 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
7518 guard, disable on GENERIC to not cause quadratic behavior
7519 with the fold-const.cc implementation and the use of !
7520
7521 2022-08-18 Andrew Pinski <apinski@marvell.com>
7522
7523 PR gcov-profile/106659
7524 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
7525 INCLUDE_VECTOR.
7526
7527 2022-08-18 konglin1 <lingling.kong@intel.com>
7528
7529 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
7530 BFmode.
7531 (ix86_expand_vector_init_duplicate): Support vector BFmode.
7532 (ix86_expand_vector_init_one_nonzero): Ditto.
7533 (ix86_expand_vector_init_one_var): Ditto.
7534 (ix86_expand_vector_init_concat): Ditto.
7535 (ix86_expand_vector_init_interleave): Ditto.
7536 (ix86_expand_vector_init_general): Ditto.
7537 (ix86_expand_vector_init): Ditto.
7538 (ix86_expand_vector_set_var): Ditto.
7539 (ix86_expand_vector_set): Ditto.
7540 (ix86_expand_vector_extract): Ditto.
7541 * config/i386/i386.cc (classify_argument): Add BF vector modes.
7542 (function_arg_64): Ditto.
7543 (ix86_gimplify_va_arg): Ditto.
7544 (ix86_get_ssemov): Ditto.
7545 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
7546 (VALID_AVX512F_REG_MODE): Ditto.
7547 (host_detect_local_cpu): Ditto.
7548 (VALID_SSE2_REG_MODE): Ditto.
7549 * config/i386/i386.md: Add BF vector modes.
7550 (MODE_SIZE): Ditto.
7551 (ssemodesuffix): Add bf suffix for BF vector modes.
7552 (ssevecmode): Ditto.
7553 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
7554 (VI12HFBF_AVX512VL): Ditto.
7555 (V_256_512): Ditto.
7556 (VF_AVX512HFBF16): Ditto.
7557 (VF_AVX512BWHFBF16): Ditto.
7558 (VIHFBF): Ditto.
7559 (avx512): Ditto.
7560 (VIHFBF_256): Ditto.
7561 (VIHFBF_AVX512BW): Ditto.
7562 (VI2F_256_512):Ditto.
7563 (V8_128):Ditto.
7564 (V16_256): Ditto.
7565 (V32_512): Ditto.
7566 (sseinsnmode): Ditto.
7567 (sseconstm1): Ditto.
7568 (sseintmodesuffix): New mode_attr.
7569 (avx512fmaskmode): Ditto.
7570 (avx512fmaskmodelower): Ditto.
7571 (ssedoublevecmode): Ditto.
7572 (ssehalfvecmode): Ditto.
7573 (ssehalfvecmodelower): Ditto.
7574 (ssescalarmode): Add vector BFmode mapping.
7575 (ssescalarmodelower): Ditto.
7576 (ssexmmmode): Ditto.
7577 (ternlogsuffix): Ditto.
7578 (ssescalarsize): Ditto.
7579 (sseintprefix): Ditto.
7580 (i128): Ditto.
7581 (xtg_mode): Ditto.
7582 (bcstscalarsuff): Ditto.
7583 (<avx512>_blendm<mode>): New define_insn for BFmode.
7584 (<avx512>_store<mode>_mask): Ditto.
7585 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
7586 (vec_set<mode>_0): New define_insn for BF vector set.
7587 (V8BFH_128): New mode_iterator for BFmode.
7588 (avx512fp16_mov<mode>): Ditto.
7589 (vec_set<mode>): New define_insn for BF vector set.
7590 (@vec_extract_hi_<mode>): Ditto.
7591 (@vec_extract_lo_<mode>): Ditto.
7592 (vec_set_hi_<mode>): Ditto.
7593 (vec_set_lo_<mode>): Ditto.
7594 (*vec_extract<mode>_0): New define_insn_and_split for BF
7595 vector extract.
7596 (*vec_extract<mode>): New define_insn.
7597 (VEC_EXTRACT_MODE): Add BF vector modes.
7598 (PINSR_MODE): Add V8BF.
7599 (sse2p4_1): Ditto.
7600 (pinsr_evex_isa): Ditto.
7601 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
7602 insert for V8BFmode.
7603 (pbroadcast_evex_isa): Add BF vector modes.
7604 (AVX2_VEC_DUP_MODE): Ditto.
7605 (VEC_INIT_MODE): Ditto.
7606 (VEC_INIT_HALF_MODE): Ditto.
7607 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
7608 broadcast.
7609 (avx2_pbroadcast<mode>_1): Ditto.
7610 (<avx512>_vec_dup<mode>_1): Ditto.
7611 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
7612 Ditto.
7613
7614 2022-08-18 Martin Liska <mliska@suse.cz>
7615
7616 * configure: Regenerate.
7617
7618 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
7619
7620 PR target/103109
7621 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
7622 (<u>madddi4_highpart): New.
7623 (<u>madddi4_highpart_le): New.
7624
7625 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
7626
7627 * gimple-range-path.cc
7628 (path_range_query::compute_exit_dependencies): Use
7629 gimple_range_ssa_names.
7630
7631 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
7632
7633 * config/riscv/predicates.md: Adjust runtime invariant.
7634 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
7635 (NUM_POLY_INT_COEFFS): New.
7636 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
7637 runtime invariant.
7638 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
7639 Adjust runtime invariant.
7640 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
7641 invariant.
7642 (enum riscv_microarchitecture_type): Ditto.
7643 (riscv_valid_offset_p): Ditto.
7644 (riscv_valid_lo_sum_p): Ditto.
7645 (riscv_address_insns): Ditto.
7646 (riscv_load_store_insns): Ditto.
7647 (riscv_legitimize_move): Ditto.
7648 (riscv_binary_cost): Ditto.
7649 (riscv_rtx_costs): Ditto.
7650 (riscv_output_move): Ditto.
7651 (riscv_extend_comparands): Ditto.
7652 (riscv_flatten_aggregate_field): Ditto.
7653 (riscv_get_arg_info): Ditto.
7654 (riscv_pass_by_reference): Ditto.
7655 (riscv_elf_select_rtx_section): Ditto.
7656 (riscv_stack_align): Ditto.
7657 (riscv_compute_frame_info): Ditto.
7658 (riscv_initial_elimination_offset): Ditto.
7659 (riscv_set_return_address): Ditto.
7660 (riscv_for_each_saved_reg): Ditto.
7661 (riscv_first_stack_step): Ditto.
7662 (riscv_expand_prologue): Ditto.
7663 (riscv_expand_epilogue): Ditto.
7664 (riscv_can_use_return_insn): Ditto.
7665 (riscv_secondary_memory_needed): Ditto.
7666 (riscv_hard_regno_nregs): Ditto.
7667 (riscv_convert_vector_bits): New.
7668 (riscv_option_override): Adjust runtime invariant.
7669 (riscv_promote_function_mode): Ditto.
7670 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
7671 (BITS_PER_RISCV_VECTOR): New.
7672 (BYTES_PER_RISCV_VECTOR): New.
7673 * config/riscv/riscv.md: Adjust runtime invariant.
7674
7675 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
7676
7677 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
7678 Get __tls_get_addr address through got table when disable plt.
7679
7680 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7681
7682 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
7683 Use an "addmi" machine instruction for updating the stack pointer
7684 rather than addition/subtraction via hard register A9, if the amount
7685 of change satisfies the literal value conditions of that instruction
7686 when the CALL0 ABI is used.
7687 (xtensa_expand_epilogue): Ditto.
7688 And also inhibit the stack pointer addition of constant zero.
7689
7690 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
7691
7692 PR target/106640
7693 * config/i386/i386-features.cc
7694 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
7695 of XINT with INTVAL (XEXP (src, 1)).
7696
7697 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
7698
7699 * gimple-range-path.cc
7700 (path_range_query::compute_ranges_in_block): Remove
7701 set_root_oracle call.
7702 (path_range_query::compute_ranges): Pass ranger oracle to
7703 reset_path.
7704 * value-relation.cc (path_oracle::reset_path): Set root oracle.
7705 * value-relation.h (path_oracle::reset_path): Add root oracle
7706 argument.
7707
7708 2022-08-17 Marek Polacek <polacek@redhat.com>
7709
7710 PR c++/89780
7711 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
7712 OPT_Wpessimizing_move and OPT_Wredundant_move.
7713 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
7714
7715 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7716 Jakub Jelinek <jakub@redhat.com>
7717
7718 PR fortran/46539
7719 * common.opt (static-libquadmath): New option.
7720 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
7721 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
7722
7723 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
7724
7725 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
7726 when filenames come out identically.
7727
7728 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
7729
7730 PR middle-end/106548
7731 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
7732 for 'simd' linear-step values that are variable.
7733
7734 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
7735 Chung-Lin Tang <cltang@codesourcery.com>
7736
7737 PR c++/104493
7738 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
7739 instead of removed langhook.
7740 * omp-general.h (omp_mappable_type): New prototype.
7741 * omp-general.cc (omp_mappable_type): New; moved from ...
7742 * langhooks.cc (lhd_omp_mappable_type): ... here.
7743 * langhooks-def.h (lhd_omp_mappable_type,
7744 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
7745 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
7746 * langhooks.h (struct lang_hooks_for_types): Remove
7747 omp_mappable_type.
7748
7749 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
7750
7751 * config.gcc (arm): Define with_float to hard if target name ends
7752 with 'hf'.
7753
7754 2022-08-17 Richard Biener <rguenther@suse.de>
7755
7756 * tree-ssa-threadbackward.cc
7757 (back_threader_profitability): Split profitable_path_p
7758 into possibly_profitable_path_p and itself, keep state
7759 as new members.
7760 (back_threader::m_profit): Remove.
7761 (back_threader::find_paths): Likewise.
7762 (back_threader::maybe_register_path): Take profitability
7763 instance as parameter.
7764 (back_threader::find_paths_to_names): Likewise. Use
7765 possibly_profitable_path_p and avoid the path range query
7766 when the path is currently too large.
7767 (back_threader::find_paths): Fold into ...
7768 (back_threader::maybe_thread_block): ... this.
7769 (get_gimple_control_stmt): Remove.
7770 (back_threader_profitability::possibly_profitable_path_p):
7771 Split out from profitable_path_p, do early profitability
7772 checks.
7773 (back_threader_profitability::profitable_path_p): Do final
7774 profitability path after the taken edge has been determined.
7775
7776 2022-08-17 Xi Ruoyao <xry111@xry111.site>
7777
7778 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
7779 (fmin<mode>3): Likewise.
7780
7781 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
7782
7783 * gimple-range-fold.cc (gimple_range_ssa_names): New.
7784 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
7785 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
7786 code to new routine.
7787
7788 2022-08-16 Martin Liska <mliska@suse.cz>
7789
7790 PR target/106637
7791 * doc/install.texi: Remove link to www.bullfreeware.com
7792
7793 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
7794
7795 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
7796 zfh and zfhmin.
7797 (riscv_ext_version_table): Ditto.
7798 (riscv_ext_flag_table): Ditto.
7799 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
7800 (MASK_ZFH): Ditto.
7801 (TARGET_ZFHMIN): Ditto.
7802 (TARGET_ZFH): Ditto.
7803 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
7804 for zfh and zfhmin.
7805 (riscv_emit_float_compare): Handle HFmode.
7806 * config/riscv/riscv.md (ANYF): Add HF.
7807 (SOFTF): Add HF.
7808 (load): Ditto.
7809 (store): Ditto.
7810 (truncsfhf2): New.
7811 (truncdfhf2): Ditto.
7812 (extendhfsf2): Ditto.
7813 (extendhfdf2): Ditto.
7814 (*movhf_hardfloat): Ditto.
7815 (*movhf_softfloat): Make sure not ZFHMIN.
7816 * config/riscv/riscv.opt (riscv_zf_subext): New.
7817
7818 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
7819
7820 * config/riscv/riscv-builtins.cc: include stringpool.h
7821 (riscv_float16_type_node): New.
7822 (riscv_init_builtin_types): Ditto.
7823 (riscv_init_builtins): Call riscv_init_builtin_types.
7824 * config/riscv/riscv-modes.def (HF): New.
7825 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
7826 (riscv_mangle_type): New.
7827 (riscv_scalar_mode_supported_p): Ditto.
7828 (riscv_libgcc_floating_mode_supported_p): Ditto.
7829 (riscv_excess_precision): Ditto.
7830 (riscv_floatn_mode): Ditto.
7831 (riscv_init_libfuncs): Ditto.
7832 (TARGET_MANGLE_TYPE): Ditto.
7833 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
7834 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
7835 (TARGET_INIT_LIBFUNCS): Ditto.
7836 (TARGET_C_EXCESS_PRECISION): Ditto.
7837 (TARGET_FLOATN_MODE): Ditto.
7838 * config/riscv/riscv.md (mode): Add HF.
7839 (softload): Add HF.
7840 (softstore): Ditto.
7841 (fmt): Ditto.
7842 (UNITMODE): Ditto.
7843 (movhf): New.
7844 (*movhf_softfloat): New.
7845
7846 2022-08-16 Richard Biener <rguenther@suse.de>
7847
7848 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
7849 Do not walk further if we are leaving the current loop.
7850
7851 2022-08-16 Sergei Trofimovich <siarheit@google.com>
7852
7853 PR driver/106624
7854 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
7855 argument using xstrdup().
7856
7857 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
7858
7859 * gimple-range-path.cc (path_range_query::import_p): Rename to...
7860 (path_range_query::exit_dependency_p): ...this.
7861 (path_range_query::dump): Rename imports to exit dependencies.
7862 (path_range_query::compute_ranges_in_phis): Same.
7863 (path_range_query::compute_ranges_in_block): Same.
7864 (path_range_query::adjust_for_non_null_uses): Same.
7865 (path_range_query::compute_ranges): Same.
7866 (path_range_query::compute_phi_relations): Same.
7867 (path_range_query::add_to_imports): Rename to...
7868 (path_range_query::add_to_exit_dependencies): ...this.
7869 (path_range_query::compute_imports): Rename to...
7870 (path_range_query::compute_exit_dependencies): ...this.
7871 * gimple-range-path.h (class path_range_query): Rename imports to
7872 exit dependencies.
7873
7874 2022-08-16 Martin Liska <mliska@suse.cz>
7875
7876 * value-range-storage.h (class obstack_vrange_allocator): Mark
7877 the class as final.
7878 (class ggc_vrange_allocator): Likewise.
7879
7880 2022-08-16 Martin Liska <mliska@suse.cz>
7881
7882 * value-range-equiv.h (class value_range_equiv): Add virtual
7883 destructor.
7884 * value-range.h: Likewise.
7885
7886 2022-08-16 Richard Biener <rguenther@suse.de>
7887
7888 PR middle-end/106630
7889 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
7890 narrowing conversions.
7891
7892 2022-08-16 Martin Liska <mliska@suse.cz>
7893
7894 * value-range-equiv.h (class value_range_equiv):
7895
7896 2022-08-16 Martin Liska <mliska@suse.cz>
7897
7898 * config/i386/i386-features.h (class general_scalar_chain): Add
7899 final override for a method.
7900 (class timode_scalar_chain): Likewise.
7901
7902 2022-08-16 Richard Biener <rguenther@suse.de>
7903
7904 * doc/invoke.texi (max-jump-thread-paths): Adjust.
7905
7906 2022-08-16 Martin Liska <mliska@suse.cz>
7907
7908 * opts-common.cc (jobserver_info::connect): Open fifo
7909 in non-blocking mode.
7910
7911 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
7912
7913 PR target/103353
7914 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
7915 check to preparation statements and add handlings for !TARGET_MMA.
7916 (define_expand movxo): Likewise.
7917
7918 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
7919
7920 PR tree-optimization/106322
7921 * tree-vect-stmts.cc (vectorizable_call): Don't allow
7922 vect_emulated_vector_p type for both vectype_in and vectype_out.
7923
7924 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7925
7926 * common/config/xtensa/xtensa-common.cc
7927 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
7928 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
7929
7930 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
7931
7932 PR tree-optimization/106621
7933 * value-range.cc (irange::set): Check for POLY_INT_CST early.
7934
7935 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
7936
7937 * config/i386/i386-features.cc
7938 (timode_scalar_chain::compute_convert_gain): Provide costs for
7939 shifts and rotates.
7940 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
7941 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
7942 (timode_scalar_to_vector_candidate_p): Handle all shifts and
7943 rotates by integer constants between 0 and 127.
7944
7945 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
7946
7947 * config/i386/i386-features.cc
7948 (timode_scalar_chain::compute_convert_gain): Provide gains for
7949 comparisons against 0/-1, including "*testti" patterns.
7950
7951 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
7952
7953 PR tree-optimization/64992
7954 PR tree-optimization/98956
7955 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
7956 when X is zero_one_valued_p and the shift constant C is valid.
7957 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
7958 when X is zero_one_valued_p and the shift constant C is valid.
7959
7960 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
7961 Richard Biener <rguenther@suse.de>
7962
7963 PR tree-optimization/71343
7964 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
7965 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
7966 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
7967 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
7968
7969 2022-08-15 Richard Biener <rguenther@suse.de>
7970
7971 * gimple-range-path.cc (range_on_path_entry): Just
7972 call range_on_entry.
7973
7974 2022-08-15 Jakub Jelinek <jakub@redhat.com>
7975
7976 PR rtl-optimization/106590
7977 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
7978 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
7979 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
7980 further conditional moves.
7981
7982 2022-08-15 konglin1 <lingling.kong@intel.com>
7983
7984 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
7985 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
7986 (ix86_register_bf16_builtin_type): New function.
7987 (ix86_bf16_type_node): New.
7988 (ix86_bf16_ptr_type_node): Ditto.
7989 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
7990 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
7991 (ADJUST_FLOAT_FORMAT): Ditto.
7992 * config/i386/i386.cc (classify_argument): Handle BFmode.
7993 (construct_container): Ditto.
7994 (function_value_32): Return __bf16 by %xmm0.
7995 (function_value_64): Return __bf16 by SSE register.
7996 (ix86_output_ssemov): Handle BFmode.
7997 (ix86_legitimate_constant_p): Disable BFmode constant double.
7998 (ix86_secondary_reload): Require gpr as intermediate register
7999 to store __bf16 from sse register when sse4 is not available.
8000 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
8001 (ix86_mangle_type): Add manlging for __bf16 type.
8002 (ix86_invalid_conversion): New function for target hook.
8003 (ix86_invalid_unary_op): Ditto.
8004 (ix86_invalid_binary_op): Ditto.
8005 (TARGET_INVALID_CONVERSION): New define for target hook.
8006 (TARGET_INVALID_UNARY_OP): Ditto.
8007 (TARGET_INVALID_BINARY_OP): Ditto.
8008 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
8009 * config/i386/i386.md ("mode"): Add BFmode.
8010 (MODE_SIZE): Ditto.
8011 (X87MODEFH): Ditto.
8012 (HFBF): Add new define_mode_iterator.
8013 (*pushhf_rex64): Change for BFmode.
8014 (*push<mode>_rex64): Ditto.
8015 (*pushhf): Ditto.
8016 (*push<mode>): Ditto.
8017 (MODESH): Ditto.
8018 (hfbfconstf): Add new define_mode_attr.
8019 (*mov<mode>_internal): Add BFmode.
8020
8021 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
8022 Uroš Bizjak <ubizjak@gmail.com>
8023
8024 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
8025 New predicate for values between 0/1 and 255, not multiples of 8.
8026 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
8027 shifts by constant bit counts.
8028 (*ashlvti3_internal): New define_insn_and_split that lowers
8029 logical left shifts by constant bit counts, that aren't multiples
8030 of 8, before reload.
8031 (lshrv1ti3): Delay lowering of logical right shifts by constant.
8032 (*lshrv1ti3_internal): New define_insn_and_split that lowers
8033 logical right shifts by constant bit counts, that aren't multiples
8034 of 8, before reload.
8035 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
8036 constant bit counts.
8037 (*ashrv1ti3_internal): New define_insn_and_split that lowers
8038 arithmetic right shifts by constant bit counts before reload.
8039 (rotlv1ti3): Delay lowering of rotate left by constant.
8040 (*rotlv1ti3_internal): New define_insn_and_split that lowers
8041 rotate left by constant bits counts before reload.
8042 (rotrv1ti3): Delay lowering of rotate right by constant.
8043 (*rotrv1ti3_internal): New define_insn_and_split that lowers
8044 rotate right by constant bits counts before reload.
8045
8046 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8047
8048 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
8049
8050 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
8051
8052 PR middle-end/106057
8053 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
8054 function.
8055 (possible_polymorphic_call_targets): Use it.
8056
8057 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
8058
8059 * tree-ssa-loop.h: Improve comment
8060
8061 2022-08-12 Jakub Jelinek <jakub@redhat.com>
8062
8063 PR tree-optimization/106506
8064 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
8065 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
8066
8067 2022-08-12 Richard Biener <rguenther@suse.de>
8068
8069 PR tree-optimization/106593
8070 * tree-ssa-threadbackward.cc (back_threader::find_paths):
8071 If the imports from the conditional do not satisfy
8072 gimple_range_ssa_p don't try to thread anything.
8073
8074 2022-08-12 Tamar Christina <tamar.christina@arm.com>
8075
8076 PR target/106524
8077 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
8078 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
8079
8080 2022-08-12 Tim Lange <mail@tim-lange.me>
8081
8082 PR analyzer/106000
8083 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
8084
8085 2022-08-12 Andrew Pinski <apinski@marvell.com>
8086
8087 * config/aarch64/aarch64.md: Remove comment
8088 about MD_INCLUDES as it is out of date and not needed.
8089
8090 2022-08-11 Richard Biener <rguenther@suse.de>
8091
8092 * gimple-range-path.cc (path_range_query::compute_imports):
8093 Restrict walking SSA defs to blocks inside the path. Track
8094 the same operands as range_def_chain::get_def_chain does.
8095
8096 2022-08-11 Richard Biener <rguenther@suse.de>
8097
8098 PR tree-optimization/106514
8099 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
8100 Compute and unwind both m_imports and interesting on the fly during
8101 path discovery.
8102 (back_threader::find_paths): Compute the original m_imports
8103 from just the SSA uses of the exit conditional. Drop
8104 handling single_succ_to_potentially_threadable_block.
8105 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
8106 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
8107
8108 2022-08-11 Richard Biener <rguenther@suse.de>
8109
8110 * gimple-range-path.h (path_range_query::compute_imports):
8111 Take path as argument, not the exit block.
8112 * gimple-range-path.cc (path_range_query::compute_imports):
8113 Likewise, and adjust, avoiding possibly stale m_path.
8114 (path_range_query::compute_outgoing_relations): Register
8115 relations for all conditionals.
8116 * tree-ssa-threadbackward.cc (back_threader::find_paths):
8117 Adjust.
8118
8119 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
8120
8121 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
8122 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
8123 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
8124
8125 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
8126
8127 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
8128 Remove function declaration.
8129
8130 2022-08-10 Richard Biener <rguenther@suse.de>
8131
8132 PR tree-optimization/106513
8133 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
8134 for head_marker.
8135
8136 2022-08-10 Martin Liska <mliska@suse.cz>
8137
8138 PR lto/106328
8139 * opts-jobserver.h (struct jobserver_info): Add pipefd.
8140 (jobserver_info::connect): New.
8141 (jobserver_info::disconnect): Likewise.
8142 (jobserver_info::get_token): Likewise.
8143 (jobserver_info::return_token): Likewise.
8144 * opts-common.cc: Implement the new functions.
8145
8146 2022-08-10 Martin Liska <mliska@suse.cz>
8147
8148 * opts-jobserver.h: Add one member.
8149 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
8150 format of --jobserver-auth.
8151
8152 2022-08-10 Martin Liska <mliska@suse.cz>
8153
8154 * gcc.cc (driver::detect_jobserver): Remove and move to
8155 jobserver.h.
8156 * lto-wrapper.cc (jobserver_active_p): Likewise.
8157 (run_gcc): Likewise.
8158 * opts-jobserver.h: New file.
8159 * opts-common.cc (jobserver_info::jobserver_info): New function.
8160
8161 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
8162
8163 * config/i386/i386-features.cc (scalar_chain::convert_compare):
8164 Create new pseudos only when/if needed. Add support for TEST,
8165 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
8166 When broadcasting V2DImode and V4SImode use new pseudo register.
8167 (timode_scalar_chain::convert_op): Do nothing if operand is
8168 already V1TImode. Avoid generating useless SUBREG conversions,
8169 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
8170 in addition to CONST_INT by using CONST_SCALAR_INT_P.
8171 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
8172 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
8173 pattern as an STV candidate.
8174 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
8175 operands in binary logic operations.
8176 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
8177 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
8178 as regular PTEST, i.e. cost->sse_op.
8179 * config/i386/i386.md (*testti_doubleword): New pre-reload
8180 define_insn_and_split that recognizes comparison of TI mode AND
8181 against zero.
8182 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
8183 define_insn_and_split that recognizes UNSPEC_PTEST of identical
8184 AND operands.
8185
8186 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
8187 Richard Biener <rguenther@suse.de>
8188
8189 PR middle-end/21137
8190 PR tree-optimization/98954
8191 * fold-const.cc (fold_binary_loc): Remove optimizations to
8192 optimize ((X >> C1) & C2) ==/!= 0.
8193 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
8194 check, and handle all values of INTEGER_CSTs @2 and @3.
8195 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
8196 checks, and handle all values of INTEGER_CSTs @2 and @3.
8197
8198 2022-08-09 David Malcolm <dmalcolm@redhat.com>
8199
8200 * doc/invoke.texi (Static Analyzer Options): Add notes on which
8201 functions the analyzer has hardcoded knowledge of.
8202
8203 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
8204
8205 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
8206 (num_arg_regs): Allow vector arguments.
8207 (gcn_function_arg): Likewise.
8208 (gcn_function_arg_advance): Likewise.
8209 (gcn_arg_partial_bytes): Likewise.
8210 (gcn_return_in_memory): Likewise.
8211 (gcn_expand_epilogue): Get return value from v8.
8212 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
8213 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
8214 (FIRST_VPARM_REG): New.
8215 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
8216 (struct gcn_args): Add vnum field.
8217 (LIBCALL_VALUE): All vector return values.
8218 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
8219 (gcn_call_value_indirect): Likewise.
8220
8221 2022-08-09 Richard Biener <rguenther@suse.de>
8222
8223 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
8224 directly. Avoid update_ssa when in SSA form.
8225 (expand_omp_atomic_store): Likewise.
8226 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
8227 form.
8228 (expand_omp_atomic_pipeline): Likewise.
8229 (expand_omp_atomic_mutex): Likewise.
8230 * tree-parloops.cc (gen_parallel_loop): Use
8231 TODO_update_ssa_no_phi after loop_version.
8232
8233 2022-08-09 Richard Biener <rguenther@suse.de>
8234
8235 * doc/invoke.texi (max-fsm-thread-length): Remove.
8236 * params.opt (max-fsm-thread-length): Likewise.
8237 * tree-ssa-threadbackward.cc
8238 (back_threader_profitability::profitable_path_p): Do not
8239 check max-fsm-thread-length.
8240
8241 2022-08-09 Richard Biener <rguenther@suse.de>
8242
8243 PR tree-optimization/106514
8244 * params.opt (max-jump-thread-paths): New.
8245 * doc/invoke.texi (max-jump-thread-paths): Document.
8246 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
8247 Honor max-jump-thread-paths, take overall_path argument.
8248 (back_threader::find_paths): Pass 1 as initial overall_path.
8249
8250 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
8251
8252 PR middle-end/106492
8253 * omp-low.cc (lower_rec_input_clauses): Add missing folding
8254 to data type of linear-clause list item.
8255
8256 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
8257
8258 PR tree-optimization/106556
8259 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
8260 type of the cond_expr operands being evaluted.
8261
8262 2022-08-08 Tom Honermann <tom@honermann.net>
8263
8264 * ginclude/stdatomic.h (atomic_char8_t,
8265 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
8266
8267 2022-08-08 Andrew Pinski <apinski@marvell.com>
8268
8269 PR middle-end/103645
8270 * gimplify.cc (gimplify_init_constructor): Don't build/add
8271 gimple assignment of an empty type.
8272
8273 2022-08-08 Richard Biener <rguenther@suse.de>
8274
8275 PR lto/106540
8276 PR lto/106334
8277 * dwarf2out.cc (dwarf2out_register_external_die): Restore
8278 original assert.
8279 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
8280 to input DECL_INITIAL, avoiding to commit drefs.
8281
8282 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
8283
8284 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
8285 for x86_64_hilo_general_operand to general operand. Call
8286 force_reg on parts that are not x86_64_immediate_operand.
8287
8288 2022-08-05 David Malcolm <dmalcolm@redhat.com>
8289
8290 PR analyzer/105947
8291 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
8292
8293 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
8294
8295 * expmed.cc (emit_store_flag_1): Move code to expand double word
8296 equality and inequality against zero or -1, using word operations,
8297 to after trying to use the backend's cstore<mode>4 optab/expander.
8298
8299 2022-08-05 Tamar Christina <tamar.christina@arm.com>
8300
8301 PR middle-end/106534
8302 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
8303 value_replacement and store_elim from diamonds.
8304
8305 2022-08-05 Richard Biener <rguenther@suse.de>
8306
8307 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
8308 Check whether the registry register_path rejected the path.
8309 (back_threader_registry::register_path): Return whether
8310 register_jump_thread succeeded.
8311
8312 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
8313
8314 PR tree-optimization/106514
8315 * value-range.cc (unsupported_range::unsupported_range): Move...
8316 * value-range.h (unsupported_range::unsupported_range): ...here.
8317 (unsupported_range::set_undefined): New.
8318
8319 2022-08-05 Richard Biener <rguenther@suse.de>
8320
8321 PR tree-optimization/106533
8322 * tree-loop-distribution.cc (loop_distribution::execute): Continue
8323 analyzing the inner loops when find_seed_stmts_for_distribution
8324 fails.
8325
8326 2022-08-05 Andrew Pinski <apinski@marvell.com>
8327
8328 * config/riscv/predicates.md (splittable_const_int_operand):
8329 Remove the check for TARGET_64BIT for single bit const values.
8330
8331 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
8332
8333 PR tree-optimization/106514
8334 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
8335 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
8336
8337 2022-08-04 Tamar Christina <tamar.christina@arm.com>
8338
8339 * match.pd: New bit_not rule.
8340
8341 2022-08-04 Tamar Christina <tamar.christina@arm.com>
8342
8343 PR middle-end/106519
8344 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
8345 diamond shapes.
8346
8347 2022-08-04 Sam Feifer <sfeifer@redhat.com>
8348
8349 PR tree-optimization/106243
8350 * match.pd (-x & 1): New simplification.
8351
8352 2022-08-04 Richard Biener <rguenther@suse.de>
8353
8354 PR tree-optimization/106521
8355 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
8356 CFG cleanup manually before rewriting into LC SSA.
8357
8358 2022-08-04 Richard Biener <rguenther@suse.de>
8359
8360 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
8361 (back_threader::resolve_phi): Likewise.
8362 (back_threader::find_paths_to_names): Rewrite greedy search.
8363
8364 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
8365
8366 * config/s390/vector.md (V_HW_FT): New iterator.
8367 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
8368 of V_HW.
8369
8370 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
8371
8372 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
8373 setting -mblock-ops-vector-pair.
8374
8375 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
8376
8377 PR tree-optimization/106514
8378 * value-relation.cc (path_oracle::killing_def) Do not walk the
8379 equivalence set clearing bits.
8380
8381 2022-08-03 Tamar Christina <tamar.christina@arm.com>
8382
8383 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
8384 sequence of a three-way conditional.
8385 (replace_phi_edge_with_variable): Support diamonds.
8386 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
8387 min/max.
8388 (strip_bit_not, invert_minmax_code): New.
8389
8390 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
8391
8392 PR rtl-optimization/106187
8393 * alias.h (mems_same_for_tbaa_p): Declare.
8394 * alias.cc (mems_same_for_tbaa_p): New function.
8395 * dse.cc (record_store): Use it instead of open-coding
8396 alias check.
8397 * cselib.h (cselib_redundant_set_p): Declare.
8398 * cselib.cc: Include alias.h
8399 (cselib_redundant_set_p): New function.
8400 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
8401 of rtx_equal_for_cselib_p.
8402 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
8403 (reload_cse_noop_set_p): Delete.
8404
8405 2022-08-03 Martin Liska <mliska@suse.cz>
8406
8407 * doc/gcov-dump.texi: Document the new option.
8408 * gcov-dump.cc (main): Parse the new option.
8409 (print_usage): Show the option.
8410 (tag_counters): Sort key:value pairs of TOP N counter.
8411
8412 2022-08-03 Martin Liska <mliska@suse.cz>
8413
8414 * profile.cc (compute_branch_probabilities): Do not collect
8415 stats unless TDF_DETAILS.
8416
8417 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
8418 Uroš Bizjak <ubizjak@gmail.com>
8419
8420 PR target/47949
8421 * config/i386/i386.md (peephole2): New peephole2 to convert
8422 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
8423 when optimizing for minimal size with -Oz.
8424
8425 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
8426
8427 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
8428 to split comparisons against -1 using AND and CMP -1 instructions.
8429
8430 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
8431
8432 * config/i386/i386-features.cc (compute_convert_gain): Add gain
8433 for converting suitable TImode shift to a V1TImode shift.
8434 (timode_scalar_chain::convert_insn): Add support for converting
8435 suitable ASHIFT and LSHIFTRT.
8436 (timode_scalar_to_vector_candidate_p): Consider logical shifts
8437 by integer constants that are multiples of 8 to be candidates.
8438
8439 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
8440 Segher Boessenkool <segher@kernel.crashing.org>
8441 Richard Sandiford <richard.sandiford@arm.com>
8442
8443 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
8444 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
8445 that are all positive to complement the existing FFS and
8446 idempotent ABS simplifications.
8447 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
8448 val_signbit_known_clear_p is true of the operand.
8449 Simplify sign extensions of SUBREG truncations of operands
8450 that are already suitably (zero) extended.
8451 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
8452 of operands that are already suitably zero extended.
8453
8454 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
8455
8456 PR tree-optimization/106510
8457 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
8458 Check for unsupported statements early.
8459
8460 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
8461
8462 PR tree-optimization/106474
8463 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
8464 range of equivalences that may contribute to the range.
8465
8466 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
8467
8468 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
8469 encoding bit in BTF.
8470
8471 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
8472
8473 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
8474 irange check.
8475 (tree_lower_bound): New.
8476 (tree_upper_bound): New.
8477 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
8478 vrange.
8479 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
8480 argument to vrange.
8481
8482 2022-08-02 Richard Biener <rguenther@suse.de>
8483
8484 * tree-ssa-threadbackward.cc
8485 (back_threader_profitability::profitable_path_p): Apply
8486 size constraints to all paths again.
8487
8488 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
8489
8490 * range-op-float.cc (finite_operands_p): New.
8491 (frelop_early_resolve): New.
8492 (default_frelop_fold_range): New.
8493 (class foperator_equal): New.
8494 (class foperator_not_equal): New.
8495 (class foperator_lt): New.
8496 (class foperator_le): New.
8497 (class foperator_gt): New.
8498 (class foperator_ge): New.
8499 (class foperator_unordered): New.
8500 (class foperator_ordered): New.
8501 (class foperator_relop_unknown): New.
8502 (floating_op_table::floating_op_table): Add above classes to
8503 floating op table.
8504 * value-range.h (frange::supports_p): Enable.
8505
8506 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
8507
8508 * tree-core.h (struct tree_ssa_name): Add frange_info and
8509 reshuffle the rest.
8510 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
8511 for frange.
8512 (vrange_storage::set_vrange): Same.
8513 (vrange_storage::get_vrange): Same.
8514 (vrange_storage::fits_p): Same.
8515 (frange_storage_slot::alloc_slot): New.
8516 (frange_storage_slot::set_frange): New.
8517 (frange_storage_slot::get_frange): New.
8518 (frange_storage_slot::fits_p): New.
8519 * value-range-storage.h (class frange_storage_slot): New.
8520
8521 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
8522
8523 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
8524 query to integrals.
8525
8526 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
8527
8528 * value-range.cc (frange::set): Initialize m_props and cleanup.
8529
8530 2022-08-02 Richard Biener <rguenther@suse.de>
8531
8532 PR tree-optimization/106497
8533 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
8534 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
8535
8536 2022-08-02 Martin Liska <mliska@suse.cz>
8537
8538 * profile.cc (compute_branch_probabilities): Dump details only
8539 if TDF_DETAILS.
8540 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
8541 TDF_ADDRESS is used, it makes comparison harder.
8542
8543 2022-08-02 Richard Biener <rguenther@suse.de>
8544
8545 PR tree-optimization/106498
8546 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
8547 SSA update here.
8548 (expand_omp_for): Or here.
8549 (execute_expand_omp): Instead schedule it here together
8550 with CFG cleanup via TODO.
8551
8552 2022-08-02 Richard Biener <rguenther@suse.de>
8553
8554 PR lto/106334
8555 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
8556 assert.
8557
8558 2022-08-02 Richard Biener <rguenther@suse.de>
8559
8560 PR tree-optimization/106495
8561 * tree-ssa-threadbackward.cc
8562 (back_threader_profitability::profitable_path_p): If known_edge
8563 is probably never executed avoid threading.
8564
8565 2022-08-01 David Malcolm <dmalcolm@redhat.com>
8566
8567 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
8568 error.
8569
8570 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
8571 Uroš Bizjak <ubizjak@gmail.com>
8572
8573 PR target/106481
8574 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
8575 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
8576 CONST_VECTOR.
8577
8578 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
8579
8580 PR target/83782
8581 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
8582 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
8583
8584 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
8585
8586 PR debug/106263
8587 * ctfc.h (struct ctf_dtdef): Add field linkage.
8588 * ctfc.cc (ctf_add_function): Set ctti_linkage.
8589 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
8590 function types and subprograms.
8591 * btfout.cc (btf_asm_func_type): Emit linkage information for the
8592 function.
8593 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
8594 for functions.
8595
8596 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
8597 Jakub Jelinek <jakub@redhat.com>
8598
8599 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
8600 the mask type.
8601
8602 2022-08-01 Sam Feifer <sfeifer@redhat.com>
8603
8604 PR tree-optimization/104992
8605 * match.pd (x / y * y == x): New simplification.
8606
8607 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
8608
8609 * value-range.cc (tree_compare): New.
8610 (frange::set): Make more general.
8611 (frange::normalize_kind): Cleanup and return bool.
8612 (frange::union_): Use normalize_kind return value.
8613 (frange::intersect): Same.
8614 (frange::verify_range): Remove unnecessary else.
8615 * value-range.h (vrp_val_max): Move before frange class.
8616 (vrp_val_min): Same.
8617 (frange::frange): Remove set to m_type.
8618
8619 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
8620
8621 * value-range.cc (vrange::supports_type_p): Use const_tree.
8622 (irange::supports_type_p): Same.
8623 (frange::supports_type_p): Same.
8624 * value-range.h (Value_Range::supports_type_p): Same.
8625 (irange::supports_p): Same.
8626
8627 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
8628
8629 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
8630 query SCEV for integers.
8631 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
8632 irange check.
8633
8634 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
8635
8636 * config/i386/i386.md (define_expand <any_rotate>ti3): For
8637 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
8638 (rot[lr]64ti2_doubleword): New post-reload splitter.
8639
8640 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
8641 H.J. Lu <hjl.tools@gmail.com>
8642
8643 PR target/106450
8644 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
8645 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
8646 (timode_remove_non_convertible_regs): Update comment.
8647 Call timode_check_non_convertible_reg on all TImode register
8648 DEFs and USEs in each instruction.
8649
8650 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8651
8652 * config/xtensa/xtensa.md: Change hard register number used in
8653 the split patterns for indirect sibling call fixups from 10 to 11,
8654 the last free one for the CALL0 ABI.
8655
8656 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8657
8658 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
8659 Add new case for IF_THEN_ELSE.
8660
8661 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
8662
8663 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
8664 (<expander><mode>3<exec>): Use V_INT_noHI.
8665 (v<expander><mode>3<exec>): Likewise.
8666
8667 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
8668
8669 * config/gcn/gcn.md (one_cmpldi2): New.
8670
8671 2022-07-29 Richard Biener <rguenther@suse.de>
8672
8673 PR tree-optimization/105679
8674 * tree-ssa-threadbackward.cc
8675 (back_threader_profitability::profitable_path_p): Avoid threading
8676 when the entry edge is probably never executed.
8677
8678 2022-07-29 Richard Biener <rguenther@suse.de>
8679
8680 PR tree-optimization/106422
8681 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
8682 Check whether we can copy thread blocks and cancel the thread if not.
8683
8684 2022-07-29 Jakub Jelinek <jakub@redhat.com>
8685
8686 PR middle-end/106449
8687 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
8688 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
8689 or n2 before regimplifying it inside of a condition.
8690
8691 2022-07-29 Jakub Jelinek <jakub@redhat.com>
8692
8693 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
8694 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
8695 expand_omp_simd): Don't fold_convert second argument to
8696 fold_build_pointer_plus to sizetype.
8697
8698 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
8699
8700 * config.in: Regenerate.
8701 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
8702 Select the value of the macro definition according to whether
8703 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
8704 * configure: Regenerate.
8705 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
8706
8707 2022-07-29 Richard Biener <rguenther@suse.de>
8708
8709 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
8710 Use CONVERT_EXPR_CODE_P.
8711
8712 2022-07-29 Richard Biener <rguenther@suse.de>
8713
8714 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
8715 get_vectype_for_scalar_type instead of
8716 vect_get_vector_types_for_stmt.
8717
8718 2022-07-28 David Malcolm <dmalcolm@redhat.com>
8719
8720 PR analyzer/105893
8721 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
8722
8723 2022-07-28 David Malcolm <dmalcolm@redhat.com>
8724
8725 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
8726 url.
8727 (Static Analyzer Options): Likewise. Add urefs for all of the
8728 warnings that have associated CWE identifiers.
8729
8730 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
8731
8732 * doc/implement-c.texi (Floating point implementation): Mention
8733 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
8734 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
8735 implication in the descriptions of `-fno-trapping-math' and
8736 `-frounding-math'.
8737
8738 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
8739
8740 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
8741 (QUIET_PATTERN): New int attribute.
8742 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
8743 RTL insns entirely within the preparation statements.
8744 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
8745 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
8746 insns.
8747 (*riscv_fsnvsnan<mode>2): New insn.
8748
8749 2022-07-28 Richard Biener <rguenther@suse.de>
8750
8751 PR middle-end/106457
8752 * tree.cc (array_at_struct_end_p): Handle array objects
8753 specially.
8754
8755 2022-07-28 Jakub Jelinek <jakub@redhat.com>
8756
8757 PR tree-optimization/106099
8758 * internal-fn.def (TRAP): New internal fn.
8759 * internal-fn.h (expand_TRAP): Declare.
8760 * internal-fn.cc (expand_TRAP): Define.
8761 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
8762 use internal fn rather than builtin.
8763
8764 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
8765
8766 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
8767
8768 2022-07-27 WANG Xuerui <i@xen0n.name>
8769
8770 * doc/invoke.texi: Document -m[no-]explicit-relocs for
8771 LoongArch.
8772
8773 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
8774
8775 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
8776 duplicate backslashes.
8777
8778 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
8779
8780 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
8781 case.
8782
8783 2022-07-27 Jakub Jelinek <jakub@redhat.com>
8784
8785 PR debug/106261
8786 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
8787 output asm thunks for -dx.
8788
8789 2022-07-27 Jakub Jelinek <jakub@redhat.com>
8790
8791 PR middle-end/106332
8792 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
8793 that candidates is not an empty vector.
8794
8795 2022-07-27 Xi Ruoyao <xry111@xry111.site>
8796
8797 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
8798 assembler supports explicit relocation for LoongArch.
8799 * configure: Regenerate.
8800 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
8801 Define to 0 if not defined.
8802 * config/loongarch/genopts/loongarch.opt.in
8803 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
8804 * config/loongarch/loongarch.opt: Regenerate.
8805
8806 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
8807
8808 PR c/106016
8809 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
8810
8811 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
8812
8813 * config/loongarch/loongarch-opts.cc: Modify the output message string
8814 of the warning.
8815
8816 2022-07-26 Martin Liska <mliska@suse.cz>
8817
8818 * doc/tm.texi.in: Fix placement of defmac.
8819 * doc/tm.texi: Copy.
8820
8821 2022-07-26 Martin Liska <mliska@suse.cz>
8822
8823 * doc/tm.texi.in: Fix cross @defmac and @hook.
8824 * doc/tm.texi: Copy.
8825
8826 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
8827
8828 PR tree-optimization/106444
8829 * value-range-pretty-print.cc (vrange_printer::visit): Handle
8830 legacy ranges.
8831 (vrange_printer::print_irange_bound): Work on wide_int's.
8832 * value-range-pretty-print.h (print_irange_bound): Same.
8833 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
8834
8835 2022-07-26 Richard Biener <rguenther@suse.de>
8836
8837 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
8838 points to a constant continue checking ptr2.
8839
8840 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
8841
8842 * config/aarch64/aarch64-builtins.cc
8843 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
8844 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
8845 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
8846 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
8847 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
8848 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
8849 (MODE_q_p128): Define macro to map to corresponding mode name.
8850 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
8851 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
8852 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
8853 corresponding qualifier name.
8854 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
8855 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
8856 functions for the above mappings
8857 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
8858 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
8859 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
8860 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
8861 for all vreinterpret intrinsics
8862 (enum aarch64_builtins): Add vreinterpret function codes
8863 (aarch64_init_simd_intrinsics): New
8864 (handle_arm_neon_h): Improved comment.
8865 (aarch64_general_fold_builtin): Fold vreinterpret calls
8866 * config/aarch64/arm_neon.h
8867 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
8868 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
8869 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
8870 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
8871 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
8872 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
8873 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
8874 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
8875 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
8876 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
8877 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
8878 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
8879 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
8880 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
8881 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
8882 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
8883 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
8884 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
8885 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
8886 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
8887 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
8888 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
8889 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
8890 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
8891 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
8892 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
8893 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
8894 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
8895 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
8896 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
8897 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
8898 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
8899 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
8900 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
8901 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
8902 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
8903 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
8904 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
8905 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
8906 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
8907 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
8908 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
8909 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
8910 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
8911 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
8912 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
8913 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
8914 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
8915 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
8916 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
8917 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
8918 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
8919 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
8920 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
8921 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
8922 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
8923 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
8924 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
8925 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
8926 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
8927 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
8928 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
8929 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
8930 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
8931 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
8932 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
8933 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
8934 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
8935 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
8936 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
8937 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
8938 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
8939 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
8940 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
8941 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
8942 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
8943 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
8944 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
8945 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
8946 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
8947 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
8948 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
8949 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
8950 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
8951 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
8952 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
8953 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
8954 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
8955 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
8956 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
8957 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
8958 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
8959 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
8960 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
8961 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
8962 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
8963 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
8964 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
8965 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
8966 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
8967 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
8968 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
8969 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
8970 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
8971 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
8972 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
8973 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
8974 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
8975 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
8976 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
8977 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
8978 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
8979 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
8980 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
8981 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
8982 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
8983 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
8984 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
8985 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
8986 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
8987 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
8988 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
8989 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
8990 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
8991 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
8992 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
8993 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
8994 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
8995 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
8996 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
8997 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
8998 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
8999 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
9000 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
9001 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
9002 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
9003 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
9004 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
9005 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
9006 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
9007 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
9008 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
9009 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
9010 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
9011 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
9012 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
9013 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
9014 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
9015 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
9016 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
9017 (vreinterpretq_p128_bf16): Delete
9018
9019 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
9020
9021 * config/aarch64/aarch64-builtins.cc
9022 (aarch64_simd_builtin_std_type): Rename to...
9023 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
9024 (aarch64_lookup_simd_builtin_type): Rename to...
9025 (aarch64_simd_builtin_type): ...this. Add const/pointer
9026 support, and extract table lookup to...
9027 (aarch64_lookup_simd_type_in_table): ...this function.
9028 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
9029 (aarch64_init_fcmla_laneq_builtins): Ditto.
9030 (aarch64_init_simd_builtin_functions): Ditto.
9031
9032 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
9033
9034 * config/aarch64/aarch64-builtins.cc
9035 (aarch64_general_gimple_fold_builtin): Add combine.
9036
9037 2022-07-26 Richard Biener <rguenther@suse.de>
9038
9039 PR tree-optimization/106189
9040 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
9041 Divide using offset_ints.
9042
9043 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
9044
9045 * common/config/loongarch/loongarch-common.cc:
9046 Enable '-fsection-anchors' when O1 and more advanced optimization.
9047 * config/loongarch/genopts/loongarch.opt.in: Add new option
9048 '-mexplicit-relocs', and enable by default.
9049 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
9050 Delete function declaration.
9051 (loongarch_split_move_insn): Delete function declaration.
9052 (loongarch_split_symbol_type): Add function declaration.
9053 * config/loongarch/loongarch.cc (enum loongarch_address_type):
9054 Add new address type 'ADDRESS_LO_SUM'.
9055 (loongarch_classify_symbolic_expression): New function definitions.
9056 Classify the base of symbolic expression X, given that X appears in
9057 context CONTEXT.
9058 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
9059 (loongarch_split_symbol_type): New function definitions.
9060 Determines whether the symbol load should be split into two instructions.
9061 (loongarch_valid_lo_sum_p): New function definitions.
9062 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
9063 symbol has type SYMBOL_TYPE.
9064 (loongarch_classify_address): Add handling of 'LO_SUM'.
9065 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
9066 (loongarch_signed_immediate_p): Sort code.
9067 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
9068 (loongarch_const_insns): Add handling of 'HIGH'.
9069 (loongarch_split_move_insn_p): Add the static attribute to the function.
9070 (loongarch_emit_set): New function definitions.
9071 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
9072 (loongarch_legitimize_tls_address): Add symbol handling when defining the
9073 TARGET_EXPLICIT_RELOCS macro.
9074 (loongarch_split_symbol): New function definitions. Split symbol.
9075 (loongarch_legitimize_address): Add codes see if the address can split into a high part
9076 and a LO_SUM.
9077 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
9078 high and low.
9079 (loongarch_split_move_insn): Delete function definitions.
9080 (loongarch_output_move): Add support for HIGH and LO_SUM.
9081 (loongarch_print_operand_reloc): New function definitions.
9082 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
9083 (loongarch_memmodel_needs_release_fence): Sort code.
9084 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
9085 and LOW output.
9086 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
9087 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
9088 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
9089 * config/loongarch/loongarch.md (movti): Delete the template.
9090 (*movti): Delete the template.
9091 (movtf): Delete the template.
9092 (*movtf): Delete the template.
9093 (*low<mode>): New template of normal symbol low address.
9094 (@tls_low<mode>): New template of tls symbol low address.
9095 (@ld_from_got<mode>): New template load address from got table.
9096 (@ori_l_lo12<mode>): New template.
9097 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
9098 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
9099
9100 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
9101
9102 * config/loongarch/constraints.md (a): Delete the constraint.
9103 (b): A constant call not local address.
9104 (h): Delete the constraint.
9105 (t): Delete the constraint.
9106 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
9107 Remove cModel type support other than normal.
9108 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
9109 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
9110 (loongarch_split_symbol): Delete useless function declarations.
9111 (loongarch_split_symbol_type): Delete useless function declarations.
9112 * config/loongarch/loongarch.cc (enum loongarch_address_type):
9113 Delete unnecessary comment information.
9114 (loongarch_symbol_binds_local_p): Modified the judgment order of label
9115 and symbol.
9116 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
9117 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
9118 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
9119 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
9120 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
9121 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
9122 and 'SYMBOL_PCREL'.
9123 (loongarch_address_insns): Sort code.
9124 (loongarch_12bit_offset_address_p): Sort code.
9125 (loongarch_14bit_shifted_offset_address_p): Sort code.
9126 (loongarch_call_tls_get_addr): Sort code.
9127 (loongarch_legitimize_tls_address): Sort code.
9128 (loongarch_output_move): Remove schema support for cmodel other than normal.
9129 (loongarch_memmodel_needs_release_fence): Sort code.
9130 (loongarch_print_operand): Sort code.
9131 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
9132 Rename to LARCH_12BIT_OFFSET_P.
9133 (LARCH_12BIT_OFFSET_P): New macro.
9134 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
9135 support for cmodel other than normal.
9136 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
9137 (is_const_call_plt_symbol): Delete this predicate.
9138 (is_const_call_global_noplt_symbol): Delete this predicate.
9139 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
9140 symbol or label.
9141
9142 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
9143
9144 PR target/106091
9145 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
9146 REG_EH_REGION when replacing one store insn having it.
9147 (replace_swapped_aligned_load): Likewise.
9148
9149 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
9150
9151 * Makefile.in (OBJS): Add range-op-float.o.
9152 * range-op.cc (get_float_handler): New.
9153 (range_op_handler::range_op_handler): Save code and type for
9154 delayed querying.
9155 (range_op_handler::oeprator bool): Move from header file, and
9156 add support for floats.
9157 (range_op_handler::fold_range): Add support for floats.
9158 (range_op_handler::op1_range): Same.
9159 (range_op_handler::op2_range): Same.
9160 (range_op_handler::lhs_op1_relation): Same.
9161 (range_op_handler::lhs_op2_relation): Same.
9162 (range_op_handler::op1_op2_relation): Same.
9163 * range-op.h (class range_operator_float): New.
9164 (class floating_op_table): New.
9165 * value-query.cc (range_query::get_tree_range): Add case for
9166 REAL_CST.
9167 * range-op-float.cc: New file.
9168
9169 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
9170 Uroš Bizjak <ubizjak@gmail.com>
9171
9172 PR target/91681
9173 * config/i386/i386-expand.cc (split_double_concat): A new helper
9174 function for setting a double word value from two word values.
9175 * config/i386/i386-protos.h (split_double_concat): Prototype here.
9176 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
9177 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
9178 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
9179 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
9180 previous define_split for implementing DST = (HI<<32)|LO as
9181 pair of move instructions, setting lopart and hipart.
9182 (*concat<mode><dwi>3_2): Likewise.
9183 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
9184 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
9185
9186 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
9187
9188 PR middle-end/106432
9189 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
9190 when the result range type is unsupported.
9191
9192 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
9193
9194 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
9195
9196 2022-07-25 Richard Biener <rguenther@suse.de>
9197
9198 PR middle-end/106414
9199 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
9200 precision types.
9201
9202 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
9203
9204 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
9205 (@aarch64_rbit<mode>): ... to this and change it in...
9206 (ffs<mode>2,ctz<mode>2): ... here.
9207 (@aarch64_rev16<mode>): New.
9208 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
9209 Define the following enum AARCH64_REV16, AARCH64_REV16L,
9210 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
9211 (aarch64_init_data_intrinsics): New.
9212 (aarch64_general_init_builtins): Add call to
9213 aarch64_init_data_intrinsics.
9214 (aarch64_expand_builtin_data_intrinsic): New.
9215 (aarch64_general_expand_builtin): Add call to
9216 aarch64_expand_builtin_data_intrinsic.
9217 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
9218 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
9219 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
9220
9221 2022-07-25 Martin Liska <mliska@suse.cz>
9222
9223 * doc/extend.texi: Remove trailing whitespaces.
9224 * doc/invoke.texi: Likewise.
9225
9226 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
9227
9228 * value-range-pretty-print.cc (vrange_printer::visit): New.
9229 (vrange_printer::print_frange_prop): New.
9230 * value-range-pretty-print.h (class vrange_printer): Add visit and
9231 print_frange_prop.
9232 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
9233 (vrange_allocator::alloc_frange): New.
9234 * value-range.cc (vrange::operator=): Handle frange.
9235 (vrange::operator==): Same.
9236 (frange::accept): New.
9237 (frange::set): New.
9238 (frange::normalize_kind): New.
9239 (frange::union_): New.
9240 (frange::intersect): New.
9241 (frange::operator=): New.
9242 (frange::operator==): New.
9243 (frange::supports_type_p): New.
9244 (frange::verify_range): New.
9245 * value-range.h (enum value_range_discriminator): Handle frange.
9246 (class fp_prop): New.
9247 (FP_PROP_ACCESSOR): New.
9248 (class frange_props): New.
9249 (FRANGE_PROP_ACCESSOR): New.
9250 (class frange): New.
9251 (Value_Range::init): Handle frange.
9252 (Value_Range::operator=): Same.
9253 (Value_Range::supports_type_p): Same.
9254 (frange_props::operator==): New.
9255 (frange_props::union_): New.
9256 (frange_props::intersect): New
9257 (frange::frange): New.
9258 (frange::type): New.
9259 (frange::set_varying): New.
9260 (frange::set_undefined): New.
9261
9262 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
9263 Kewen Lin <linkw@linux.ibm.com>
9264
9265 PR testsuite/106345
9266 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
9267 to filter out all -mtune options.
9268
9269 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9270
9271 * value-query.cc (range_query::get_value_range): Add assert.
9272 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
9273 on unsupported types in vr_values.
9274 (simplify_using_ranges::simplify): Same.
9275
9276 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9277
9278 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
9279 types.
9280 * value-query.cc (get_ssa_name_range_info): Remove precision check.
9281
9282 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9283
9284 * value-relation.cc (value_relation::set_relation): Remove assert.
9285 (path_oracle::register_relation): Exit when trying to register
9286 same SSA name relations.
9287
9288 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
9289
9290 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
9291 (ranger_cache::range_from_dom): Same.
9292 * tree-ssa-dom.cc
9293 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
9294
9295 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
9296 H.J. Lu <hjl.tools@gmail.com>
9297
9298 PR target/106303
9299 PR target/106347
9300 * config/i386/i386-features.cc (make_vector_copies): Move from
9301 general_scalar_chain to scalar_chain.
9302 (convert_reg): Likewise.
9303 (convert_insn_common): New scalar_chain method split out from
9304 general_scalar_chain convert_insn.
9305 (convert_registers): Move from general_scalar_chain to
9306 scalar_chain.
9307 (scalar_chain::convert): Call convert_insn_common before calling
9308 convert_insn.
9309 (timode_remove_non_convertible_regs): Iterate until there are
9310 no further changes to the candidates.
9311 * config/i386/i386-features.h (scalar_chain::hash_map): Move
9312 from general_scalar_chain.
9313 (scalar_chain::convert_reg): Likewise.
9314 (scalar_chain::convert_insn_common): New shared method.
9315 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
9316 (scalar_chain::convert_registers): Likewise. No longer virtual.
9317 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
9318 (general_scalar_chain::convert_reg): Likewise.
9319 (general_scalar_chain::make_vector_copies): Likewise.
9320 (general_scalar_chain::convert_registers): Delete virtual method.
9321 (timode_scalar_chain::convert_registers): Likewise.
9322
9323 2022-07-23 Immad Mir <mirimmad@outlook.com>
9324
9325 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
9326 "Common Function Attributes" section.
9327 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
9328 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
9329 warnings may be emitted through usage of three function attributes used
9330 for static analysis of file descriptors namely fd_arg, fd_arg_read and
9331 fd_arg_write.
9332
9333 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9334
9335 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
9336 Add a new insn_and_split pattern, and a few split patterns for
9337 spacial cases.
9338
9339 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
9340
9341 * graphds.cc (graphds_scc): Fix algorithm attribution.
9342
9343 2022-07-22 Richard Biener <rguenther@suse.de>
9344
9345 PR tree-optimization/106403
9346 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
9347 value valueization after check for IFN_MASKED_STORE or
9348 IFN_LEN_STORE.
9349
9350 2022-07-22 Richard Biener <rguenther@suse.de>
9351
9352 PR tree-optimization/106397
9353 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
9354 not update SSA form here.
9355 (mark_nontemporal_stores): Return whether we marked any
9356 non-temporal stores and inserted mfence.
9357 (loop_prefetch_arrays): Note when we need to update SSA.
9358 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
9359 at the end of the pass.
9360
9361 2022-07-22 Richard Biener <rguenther@suse.de>
9362
9363 PR tree-optimization/106387
9364 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
9365 if ptr is not an SSA name.
9366
9367 2022-07-22 liuhongt <hongtao.liu@intel.com>
9368
9369 PR target/106038
9370 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
9371 original "<code><mode>3".
9372 (*<code><mode>3): New define_insn, it's original
9373 "<code><mode>3" be extended to handle memory and immediate
9374 operand with ix86_binary_operator_ok. Also adjust define_split
9375 after it.
9376 (mmxinsnmode): New mode attribute.
9377 (*mov<mode>_imm): Refactor with mmxinsnmode.
9378 * config/i386/predicates.md
9379 (register_or_x86_64_const_vector_operand): New predicate.
9380
9381 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
9382
9383 * config/rs6000/altivec.md:
9384 (vstrir_code_<mode>): Rename to...
9385 (vstrir_direct_<mode>): ... this.
9386 (vstrir_p_code_<mode>): Rename to...
9387 (vstrir_p_direct_<mode>): ... this.
9388 (vstril_code_<mode>): Rename to...
9389 (vstril_direct_<mode>): ... this.
9390 (vstril_p_code_<mode>): Rename to...
9391 (vstril_p_direct_<mode>): ... this.
9392
9393 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
9394
9395 * config/rs6000/rs6000-c.cc: Update comments.
9396 (rs6000_target_modify_macros): Remove bu_mask references.
9397 (rs6000_define_or_undefine_macro): Replace bu_mask reference
9398 with a rs6000_cpu value check.
9399 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
9400 parameter from call to rs6000_target_modify_macros.
9401 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
9402 rs6000_target_modify_macros_ptr): Remove parameter from extern
9403 for the prototype.
9404 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
9405 parameter from prototype, update calls to this function.
9406 (rs6000_print_builtin_options): Remove prototype, call and function.
9407 (rs6000_builtin_mask_calculate): Remove function.
9408 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
9409 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
9410 and builtin_mask debug output.
9411 (rs6000_builtin_mask_names): Remove.
9412 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
9413 diff_bumask references; Update calls to rs6000_target_modify_ptr.
9414 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
9415
9416 2022-07-21 Sam Feifer <sfeifer@redhat.com>
9417
9418 PR tree-optimization/94920
9419 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
9420 (x <= 0 ? -x : 0): New simplification.
9421
9422 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9423
9424 Revert:
9425 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9426
9427 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
9428 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
9429
9430 2022-07-21 Richard Biener <rguenther@suse.de>
9431
9432 PR tree-optimization/106379
9433 * match.pd (~(a ^ b) -> a == b): New pattern.
9434
9435 2022-07-21 Richard Biener <rguenther@suse.de>
9436
9437 PR tree-optimization/106378
9438 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
9439 LEN_STORE, add mode to initialize a may-def and handle
9440 MASK_STORE that way.
9441 (dse_optimize_stmt): Query may-defs. Handle internal
9442 functions LEN_STORE and MASK_STORE similar to how
9443 we handle memory builtins but without byte tracking.
9444
9445 2022-07-21 Richard Biener <rguenther@suse.de>
9446
9447 PR tree-optimization/106365
9448 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
9449 the offset to start encoding of RHS from.
9450 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
9451 (vn_walk_cb_data::push_partial_def): Allow the first partial
9452 definition to be fully providing the def. Offset RHS
9453 before encoding if requested.
9454 (vn_reference_lookup_3): Initialize def_rhs everywhere.
9455 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
9456
9457 2022-07-21 Richard Biener <rguenther@suse.de>
9458
9459 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
9460 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
9461 and IFN_MASK_LOAD_LANES.
9462 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
9463 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
9464
9465 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
9466
9467 PR rtl-optimization/101347
9468 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
9469 population of nonlocal_goto_handler_labels from here ...
9470 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
9471 * rtlanal.cc (remove_node_from_insn_list): Verify that a
9472 duplicate is not present in the remainder of the list.
9473
9474 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
9475
9476 * rtl.h (remove_node_from_expr_list): Remove declaration.
9477 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
9478
9479 2022-07-20 Richard Biener <rguenther@suse.de>
9480
9481 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
9482 invariant updated address when the input was invariant.
9483
9484 2022-07-20 liuhongt <hongtao.liu@intel.com>
9485
9486 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
9487 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
9488 * timevar.def (TV_TREE_POWCABS): New timevar.
9489 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
9490 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
9491 (class pass_expand_powcabs): Ditto.
9492 (pass_expand_powcabs::execute): Ditto.
9493 (make_pass_expand_powcabs): Ditto.
9494 (pass_cse_sincos::execute): Remove pow/cabs expand part.
9495 (make_pass_cse_sincos): Ditto.
9496
9497 2022-07-20 Richard Biener <richard.guenther@gmail.com>
9498 Hongtao Liu <hongtao.liu@intel.com>
9499
9500 PR tree-optimization/106010
9501 * tree-complex.cc (init_dont_simulate_again): Lower complex
9502 type move.
9503 (expand_complex_move): Also expand COMPLEX_CST for rhs.
9504
9505 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
9506
9507 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
9508 for incoming ranges on join nodes and add to worklist.
9509
9510 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
9511
9512 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
9513 (ranger_cache::range_from_dom): Put all nodes to be calculated
9514 in the worklist and resolve after the dom walk.
9515 * gimple-range-cache.h (resolve_dom): New prototype.
9516
9517 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
9518
9519 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
9520 returns_twice calls.
9521
9522 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
9523
9524 * cfghooks.cc (duplicate_block): Expand comment.
9525 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
9526 calls that may return twice.
9527
9528 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
9529
9530 * tree-ssa-sink.cc (select_best_block): Punt if selected block
9531 has incoming abnormal edges.
9532
9533 2022-07-19 Martin Liska <mliska@suse.cz>
9534
9535 * doc/extend.texi: Remove trailing :.
9536
9537 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9538
9539 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
9540 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
9541
9542 2022-07-19 Richard Biener <rguenther@suse.de>
9543
9544 PR middle-end/106331
9545 * builtins.cc (get_memory_rtx): Compute alignment from
9546 the original address and set MEM_OFFSET to unknown when
9547 we create a MEM_EXPR from the base object of the address.
9548
9549 2022-07-19 Richard Biener <rguenther@suse.de>
9550
9551 PR lto/106334
9552 * dwarf2out.cc (dwarf2out_register_external_die): Allow
9553 map entry re-use during WPA.
9554
9555 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
9556 Richard Biener <rguenther@suse.de>
9557
9558 PR c/106264
9559 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
9560 COMPOUND_EXPR to silence spurious warning if result isn't used.
9561 (fold_builtin_modf): Likewise.
9562 (do_mpfr_remquo): Likewise.
9563
9564 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9565
9566 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
9567 Change the relative cost of '(set (reg) (const_int N))' where
9568 N fits into signed 12-bit from 4 to 0 if optimizing for size.
9569 And use the appropriate macro instead of the bare number 4.
9570
9571 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
9572
9573 PR tree-optimization/106280
9574 * value-relation.cc (dom_oracle::register_relation): Register
9575 transitives only when it is possible for there to be one.
9576 (dom_oracle::set_one_relation): Return NULL if this is an
9577 existing relation.
9578
9579 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
9580
9581 * doc/invoke.texi (RISC-V Options): Add index references for
9582 `mrelax' and `mriscv-attribute'.
9583
9584 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
9585
9586 * doc/invoke.texi (Option Summary): Add missing second space
9587 around `-mstack-protector-guard-reg='.
9588
9589 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
9590
9591 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
9592 (RISC-V Options): Likewise, and `-mriscv-attribute'.
9593
9594 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
9595
9596 * config/arc/arc-arch.h (arc_tune_attr): Add
9597 ARC_TUNE_ARCHS4X_REL31A variant.
9598 * config/arc/arc.cc (arc_override_options): Tune options for
9599 release 310a.
9600 (arc_sched_issue_rate): Use correct enum.
9601 (arc600_corereg_hazard): Textual change.
9602 (arc_hazard): Add release 310a tunning.
9603 * config/arc/arc.md (tune): Update and take into consideration new
9604 tune option.
9605 (tune_dspmpy): Likewise.
9606 (tune_store): New attribute.
9607 * config/arc/arc.opt (mtune): New tune option.
9608 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
9609 (hs4x_brcc_op): New instruction rezervation.
9610 (hs4x_data_store_1_op): Likewise.
9611 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
9612 * config/arc/arc-tables.opt: Regenerate.
9613 * config/arc/t-multilib: Likewise.
9614 * doc/invoke.texi (ARC): Update mcpu and tune sections.
9615
9616 2022-07-18 Richard Biener <rguenther@suse.de>
9617
9618 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
9619 When computing cost-based merging do not disregard builtin
9620 classified partitions in some cases.
9621
9622 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
9623
9624 PR target/106253
9625 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
9626 Delete.
9627 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
9628 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9629 Delete.
9630 * config/arm/arm_neon_builtins.def (copysignf): Delete.
9631 * config/arm/iterators.md (nvrint_pattern): New attribute.
9632 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
9633 New pattern.
9634 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
9635 Likewise.
9636 (neon_copysignf<mode>): Rename to...
9637 (copysign<mode>3): ...this.
9638
9639 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
9640
9641 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
9642 pointer first when in interrupts.
9643
9644 2022-07-18 Richard Biener <rguenther@suse.de>
9645
9646 * tree-loop-distribution.cc (copy_loop_before): Add
9647 the ability to replace the original LC PHI defs.
9648 (generate_loops_for_partition): Pass through a flag
9649 whether to redirect original LC PHI defs.
9650 (generate_code_for_partition): Likewise.
9651 (loop_distribution::distribute_loop): Compute the partition
9652 that should provide the LC PHI defs for common reductions
9653 and pass that down.
9654
9655 2022-07-18 Richard Ball <richard.ball@arm.com>
9656
9657 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
9658 (aarch64_evpc_uzp): Likewise.
9659 (aarch64_evpc_zip): Likewise.
9660
9661 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
9662
9663 PR target/106231
9664 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
9665 to recognize any_extend:DI of ctz:SI which is implicitly extended.
9666 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
9667 extended ctz:SI that has preceding xor to break false dependency.
9668
9669 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
9670
9671 * config/i386/predicates.md (x86_64_const_vector_operand):
9672 Check the operand's mode matches the specified mode argument.
9673
9674 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
9675
9676 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
9677 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
9678 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
9679 (vec_pack_trunc_qi): Update to specify the now required
9680 UNSPEC_MASKOP unspec.
9681 (vec_pack_trunc_<mode>): Likewise.
9682
9683 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9684
9685 * config/xtensa/xtensa.md
9686 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
9687 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
9688 represented as '-(1 << N)', decrease the lower bound of N from 12
9689 to 1. And the other immediate for conditional branch is now no
9690 longer limited to zero, but also one of some positive integers.
9691 Finally, remove the checks of some conditions, because the comparison
9692 expressions that don't satisfy such checks are determined as
9693 compile-time constants and thus will be optimized away before
9694 RTL expansion.
9695
9696 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9697
9698 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
9699 (xtensa_constantsynth_2insn): Change to try all three synthetic
9700 methods and to use the one that fits the immediate value of
9701 the seed into a Narrow Move Immediate instruction "MOVI.N"
9702 when the Code Density Option is configured.
9703
9704 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
9705
9706 PR target/85620
9707 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
9708 false if callee has indirect_return attribute and caller
9709 doesn't.
9710
9711 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
9712
9713 PR target/106273
9714 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
9715 constraints to reflect the output is earlyclobber, unless it is
9716 the same register (pair) as one of the operands.
9717
9718 2022-07-15 David Malcolm <dmalcolm@redhat.com>
9719
9720 * doc/invoke.texi (Static Analyzer Options): Add the new fd
9721 warnings to the initial gccoptlist, and to the list of those
9722 disabled by -fanalyzer-checker=taint.
9723
9724 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
9725
9726 * config/aarch64/aarch64-builtins.cc
9727 (enum aarch64_type_qualifiers): Remove qualifier_internal.
9728 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
9729
9730 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
9731
9732 * config/aarch64/aarch64-builtins.cc
9733 (v1di_UP): Add V1DI mode to _UP macros.
9734 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
9735 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
9736 * config/aarch64/aarch64-simd.md
9737 (vec_extractv2dfv1df): Replace with...
9738 (vec_extract<mode><V1half>): ...this.
9739 * config/aarch64/aarch64.cc
9740 (aarch64_classify_vector_mode): Add V1DI mode.
9741 * config/aarch64/iterators.md
9742 (VQ_2E, V1HALF, V1half): New.
9743 (nunits): Add V1DI mode.
9744
9745 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
9746
9747 PR target/106278
9748 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
9749 Fix indentation whitespace.
9750 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
9751 (timode_scalar_chain::convert_insn): Delete dead code.
9752 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
9753 Fix indentation whitespace.
9754 (convertible_comparison_p): Likewise.
9755 (timode_scalar_to_vector_candidate_p): Likewise.
9756
9757 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
9758
9759 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
9760
9761 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
9762
9763 * Makefile.in (OBJS): Add value-range-pretty-print.o.
9764 * pretty-print.h (pp_vrange): New.
9765 * value-range.cc (vrange::dump): Call pp version.
9766 (unsupported_range::dump): Move to its own file.
9767 (dump_bound_with_infinite_markers): Same.
9768 (irange::dump): Same.
9769 (irange::dump_bitmasks): Same.
9770 (vrange::debug): Remove.
9771 * value-range.h: Remove virtual designation for dump methods.
9772 Remove dump_bitmasks method.
9773 * value-range-pretty-print.cc: New file.
9774 * value-range-pretty-print.h: New file.
9775
9776 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
9777
9778 * value-range.cc (irange::accept): New.
9779 (unsupported_range::accept): New.
9780 * value-range.h (class vrange_visitor): New.
9781 (class vrange): Add accept method.
9782 (class unsupported_range): Same.
9783 (class Value_Range): Same.
9784
9785 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
9786
9787 * diagnostic-format-json.cc (json_from_location_range): Adjust
9788 to new label_text API.
9789 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
9790 Likewise.
9791 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
9792 (layout::print_any_labels): Likewise.
9793 * tree-diagnostic-path.cc (class path_label): Likewise.
9794 (struct event_range): Likewise.
9795 (default_tree_diagnostic_path_printer): Likewise.
9796 (default_tree_make_json_for_path): Likewise.
9797
9798 2022-07-15 konglin1 <lingling.kong@intel.com>
9799
9800 PR target/106113
9801 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
9802 comparison due to intrinsics changed over time.
9803 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
9804 Add unordered check and mode for sse comi codegen.
9805 (ix86_expand_sse_comi): Add unordered check and check a different
9806 CCmode.
9807 (ix86_expand_sse_comi_round):Extract unordered check and mode part
9808 in ix86_ssecom_setcc.
9809
9810 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9811
9812 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
9813 op_mode instead of vmode in calls to force_reg for op0 and op1.
9814
9815 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
9816
9817 PR tree-optimization/103798
9818 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
9819 (simplify_builtin_call): Inline memchr with constant strings of
9820 no more than the bytes of a word.
9821 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
9822 * tree-ssa-strlen.h (use_in_zero_equality): New.
9823
9824 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
9825
9826 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
9827 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
9828 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
9829 pass it in the call to lookup_tmp_var.
9830 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
9831 (get_initialized_tmp_var): Likewise.
9832 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
9833 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
9834
9835 2022-07-14 Martin Liska <mliska@suse.cz>
9836
9837 * doc/gimple.texi: Close properly a deftypefn.
9838
9839 2022-07-14 Martin Liska <mliska@suse.cz>
9840
9841 * doc/gimple.texi: Close properly a deftypefn.
9842
9843 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9844
9845 * config/xtensa/xtensa.md:
9846 In FP constant synthesis split pattern, subcontract to
9847 avoid_constant_pool_reference() as in the case of integer,
9848 because it can handle well too. And cast to int32_t before
9849 calling xtensa_constantsynth() in order to ignore upper 32-bit.
9850
9851 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
9852
9853 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
9854
9855 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
9856
9857 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
9858 (irange::legacy_intersect): Clear nonzero mask.
9859 (irange::legacy_union): Same.
9860 (irange::invert): Same.
9861
9862 2022-07-13 Richard Biener <rguenther@suse.de>
9863
9864 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
9865 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
9866 (dom_jt_state::get_blocks_on_stack): Likewise.
9867 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
9868 (back_propagate_equivalences): Remove dominator bitmap
9869 compute and instead use passed in m_blocks_on_stack.
9870 (record_temporary_equivalences): Likewise.
9871 (record_equivalences_from_incoming_edge): Likewise.
9872 (dom_opt_dom_walker::before_dom_children): Maintain and
9873 pass down blocks on stack.
9874 (dom_opt_dom_walker::after_dom_children): Likewise.
9875
9876 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
9877
9878 * config/aarch64/aarch64-builtins.cc
9879 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
9880
9881 2022-07-13 Richard Biener <rguenther@suse.de>
9882
9883 PR tree-optimization/106249
9884 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
9885 Only verify LC SSA of the new_loop if we created it.
9886 Use TODO_update_ssa_nophi for the SSA update after versioning
9887 the loop.
9888
9889 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
9890
9891 * range-op.cc (unsigned_singleton_p): Remove.
9892 (operator_bitwise_and::remove_impossible_ranges): Remove.
9893 (operator_bitwise_and::fold_range): Set nonzero bits. *
9894 * value-range.cc (irange::get_nonzero_bits): Remove
9895 legacy_mode_p assert.
9896 (irange::dump_bitmasks): Remove legacy_mode_p check.
9897
9898 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
9899
9900 PR target/106253
9901 * predict.h (insn_optimization_type): Declare.
9902 * predict.cc (insn_optimization_type): New function.
9903 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
9904 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
9905 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
9906 * internal-fn.cc (unary_convert_direct): New macro.
9907 (expand_convert_optab_fn): New function.
9908 (expand_unary_convert_optab_fn): New macro.
9909 (direct_unary_convert_optab_supported_p): Likewise.
9910 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
9911 convert_optab_handler.
9912 * config/aarch64/aarch64-protos.h
9913 (aarch64_builtin_vectorized_function): Delete.
9914 * config/aarch64/aarch64-builtins.cc
9915 (aarch64_builtin_vectorized_function): Delete.
9916 * config/aarch64/aarch64.cc
9917 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
9918 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
9919 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
9920 optimize_insn_for_size_p test.
9921
9922 2022-07-12 Richard Biener <rguenther@suse.de>
9923
9924 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
9925 Remove.
9926 (vect_do_peeling): Do not call it, adjust comment.
9927
9928 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
9929
9930 * config/aarch64/aarch64-builtins.cc
9931 (aarch64_builtin_vectorized_function): Remove handling of
9932 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
9933
9934 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
9935
9936 PR tree-optimization/106234
9937 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
9938 cache value before recursively resolving it.
9939
9940 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
9941
9942 * config/i386/i386-features.h (scalar_chain): Add fields
9943 insns_conv, n_sse_to_integer and n_integer_to_sse to this
9944 parent class, moved from general_scalar_chain.
9945 (scalar_chain::convert_compare): Protected method moved
9946 from general_scalar_chain.
9947 (mark_dual_mode_def): Make protected, not private virtual.
9948 (scalar_chain:convert_op): New private virtual method.
9949 (general_scalar_chain::general_scalar_chain): Simplify constructor.
9950 (general_scalar_chain::~general_scalar_chain): Delete destructor.
9951 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
9952 n_integer_to_sse fields to parent class, scalar_chain.
9953 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
9954 (general_scalar_chain::convert_compare): Delete prototype.
9955 (timode_scalar_chain::compute_convert_gain): Remove simplistic
9956 implementation, convert to a method prototype.
9957 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
9958 (timode_scalar_chain::convert_op): Prototype new virtual method.
9959 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
9960 Allocate insns_conv and initialize n_sse_to_integer and
9961 n_integer_to_sse fields in constructor.
9962 (scalar_chain::scalar_chain): Free insns_conv in destructor.
9963 (general_scalar_chain::general_scalar_chain): Delete
9964 constructor, now defined in the class declaration.
9965 (general_scalar_chain::~general_scalar_chain): Delete destructor.
9966 (scalar_chain::mark_dual_mode_def): Renamed from
9967 general_scalar_chain::mark_dual_mode_def.
9968 (timode_scalar_chain::mark_dual_mode_def): Delete.
9969 (scalar_chain::convert_compare): Renamed from
9970 general_scalar_chain::convert_compare.
9971 (timode_scalar_chain::compute_convert_gain): New method to
9972 determine the gain from converting a TImode chain to V1TImode.
9973 (timode_scalar_chain::convert_op): New method to convert an
9974 operand from TImode to V1TImode.
9975 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
9976 on REG_EQUAL notes that were originally TImode (not CONST_INT).
9977 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
9978 (timode_mem_p): Helper predicate to check where operand is
9979 memory reference with sufficient alignment for TImode STV.
9980 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
9981 to check whether COMPARE is convertible. Handle SET_DESTs that
9982 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
9983 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
9984
9985 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
9986
9987 PR tree-optimization/106250
9988 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
9989 argument to directly_supported_p.
9990
9991 2022-07-11 Richard Biener <rguenther@suse.de>
9992
9993 * tree-into-ssa.cc (update_ssa): Do not forcefully
9994 re-compute dominance fast queries for TODO_update_ssa_no_phi.
9995
9996 2022-07-11 Richard Biener <rguenther@suse.de>
9997
9998 PR tree-optimization/106228
9999 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
10000 VUSE compute for the non-loop case.
10001
10002 2022-07-11 Richard Biener <rguenther@suse.de>
10003
10004 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
10005 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
10006 (rewrite_update_dom_walker::m_in_region_flag): New.
10007 (rewrite_update_dom_walker::before_dom_children): If the region
10008 to update is marked, STOP at exits.
10009 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
10010 to be updated.
10011 (dump_update_ssa): Use bitmap_empty_p.
10012 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
10013 TODO_update_ssa_no_phi.
10014 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
10015 pending update_ssa to the caller.
10016
10017 2022-07-11 Richard Biener <rguenthert@suse.de>
10018
10019 PR target/105459
10020 * config/i386/i386-options.cc (ix86_set_current_function):
10021 Rebuild the target optimization node whenever necessary,
10022 not only when the optimization node didn't change.
10023
10024 2022-07-11 Richard Biener <rguenther@suse.de>
10025
10026 PR tree-optimization/106228
10027 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
10028 set a VUSE operand on the emitted load.
10029
10030 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
10031
10032 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
10033 verification against legacy value_range.
10034 (gimple_ranger::register_inferred_ranges): Same.
10035 (gimple_ranger::export_global_ranges): Rename update_global_range
10036 to set_range_info.
10037 * tree-core.h (struct range_info_def): Remove.
10038 (struct irange_storage_slot): New.
10039 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
10040 (struct tree_ssa_name): Add vrange_storage support.
10041 * tree-ssanames.cc (range_info_p): New.
10042 (range_info_fits_p): New.
10043 (range_info_alloc): New.
10044 (range_info_free): New.
10045 (range_info_get_range): New.
10046 (range_info_set_range): New.
10047 (set_range_info_raw): Remove.
10048 (set_range_info): Adjust to use vrange_storage.
10049 (set_nonzero_bits): Same.
10050 (get_nonzero_bits): Same.
10051 (duplicate_ssa_name_range_info): Remove overload taking
10052 value_range_kind.
10053 Rewrite tree overload to use vrange_storage.
10054 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
10055 * tree-ssanames.h (struct range_info_def): Remove.
10056 (set_range_info): Adjust prototype to take vrange.
10057 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
10058 duplicate_ssa_name_range_info.
10059 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
10060 (SSA_NAME_RANGE_TYPE): Remove.
10061 * value-query.cc (get_ssa_name_range_info): Adjust to use
10062 vrange_storage.
10063 (update_global_range): Remove.
10064 (get_range_global): Remove as_a<irange>.
10065 * value-query.h (update_global_range): Remove.
10066 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
10067 Rename update_global_range to set_range_info.
10068 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
10069 gcc_unreachable.
10070
10071 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
10072
10073 * value-range.cc (irange::operator=): Call verify_range.
10074 (irange::irange_set): Normalize kind after everything else has
10075 been set.
10076 (irange::irange_set_anti_range): Same.
10077 (irange::set): Same.
10078 (irange::verify_range): Disallow nonzero masks for VARYING.
10079 (irange::irange_union): Call verify_range.
10080 Handle nonzero masks better.
10081 (irange::irange_intersect): Same.
10082 (irange::set_nonzero_bits): Calculate mask if either range has an
10083 explicit mask.
10084 (irange::intersect_nonzero_bits): Same.
10085 (irange::union_nonzero_bits): Same.
10086 (range_tests_nonzero_bits): New.
10087 (range_tests): Call range_tests_nonzero_bits.
10088 * value-range.h (class irange): Remove set_nonzero_bits method
10089 with trees.
10090 (irange::varying_compatible_p): Set nonzero mask.
10091
10092 2022-07-10 Xi Ruoyao <xry111@xry111.site>
10093
10094 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
10095 the sign-extend of result in the RTL template.
10096 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
10097
10098 2022-07-10 Xi Ruoyao <xry111@xry111.site>
10099
10100 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
10101 Remove static, for use in the machine description file.
10102 * config/loongarch/loongarch-protos.h:
10103 (loongarch_check_zero_div_p): Add prototype.
10104 * config/loongarch/loongarch.md (enabled): New attr.
10105 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
10106 idiv. Conditionally enable the alternatives using
10107 loongarch_check_zero_div_p.
10108 (<optab>di3_fake): Likewise.
10109
10110 2022-07-10 Xi Ruoyao <xry111@xry111.site>
10111
10112 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
10113 instead of mul.d.
10114
10115 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
10116
10117 * value-range.cc (irange::irange_single_pair_union): Set
10118 VR_VARYING when appropriate.
10119
10120 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
10121
10122 * stor-layout.cc (finalize_record_size): Extend warning message.
10123
10124 2022-07-09 Sam Feifer <sfeifer@redhat.com>
10125
10126 PR tree-optimization/98304
10127 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
10128
10129 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
10130
10131 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
10132 initializer and use clear_storage rather than copying the
10133 NULs to the destination array.
10134
10135 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
10136
10137 * config/i386/i386.md (define_peephole2): Use match_operand of
10138 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
10139 (define_peephole2): Likewise.
10140 (define_peephole2): Likewise...
10141
10142 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
10143
10144 * config/i386/i386-features.cc (convert_compare): Add support
10145 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
10146 by generating a pandn followed by ptest.
10147 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
10148 recent *testdi_not_doubleword comparison patterns.
10149
10150 2022-07-09 Tamar Christina <tamar.christina@arm.com>
10151
10152 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
10153 indicate that the value is not undefined.
10154
10155 2022-07-09 Andrew Pinski <apinski@marvell.com>
10156
10157 PR tree-optimization/106087
10158 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
10159 to make sure the statement is only defining one operand.
10160
10161 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
10162
10163 PR preprocessor/91733
10164 * input.cc (find_end_of_line): New helper function.
10165 (file_cache_slot::get_next_line): Recognize \r as a line ending.
10166 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
10167 since \r will now be interpreted as a line-ending.
10168
10169 2022-07-08 Martin Liska <mliska@suse.cz>
10170
10171 PR sanitizer/106132
10172 * opts.cc (finish_options): Use 2 calls to
10173 report_conflicting_sanitizer_options.
10174
10175 2022-07-08 Richard Biener <rguenther@suse.de>
10176
10177 PR tree-optimization/106226
10178 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
10179 no SSA update is needed. Move virtual SSA update ...
10180 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
10181 via forced virtual renaming when TODO_update_ssa_only_virtuals
10182 is queued.
10183 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
10184 when virtual SSA update is required.
10185 (try_vectorize_loop_1): Adjust.
10186 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
10187 virtual renaming if the ABI forces an aggregate return
10188 but the original call did not have a virtual definition.
10189
10190 2022-07-08 Martin Liska <mliska@suse.cz>
10191
10192 * toplev.cc (init_asm_output): Do not init asm_out_file.
10193
10194 2022-07-08 Tamar Christina <tamar.christina@arm.com>
10195
10196 PR tree-optimization/106063
10197 * match.pd: Do not apply pattern after veclower is not supported.
10198
10199 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
10200
10201 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
10202 'fn2' computation.
10203
10204 2022-07-08 Tamar Christina <tamar.christina@arm.com>
10205
10206 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
10207 still undefined and if so emit a subreg move instead.
10208 (store_integral_bit_field): Likewise.
10209 (store_bit_field): Likewise.
10210 * expr.h (write_complex_part): Likewise.
10211 * expmed.h (store_bit_field): Add new parameter.
10212 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
10213 parameter.
10214 (expand_ifn_atomic_compare_exchange): Likewise.
10215 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
10216 * emit-rtl.cc (validate_subreg): Likewise.
10217 * expr.cc (emit_group_store): Likewise.
10218 (copy_blkmode_from_reg): Likewise.
10219 (copy_blkmode_to_reg): Likewise.
10220 (clear_storage_hints): Likewise.
10221 (write_complex_part): Likewise.
10222 (emit_move_complex_parts): Likewise.
10223 (expand_assignment): Likewise.
10224 (store_expr): Likewise.
10225 (store_field): Likewise.
10226 (expand_expr_real_2): Likewise.
10227 * ifcvt.cc (noce_emit_move_insn): Likewise.
10228 * internal-fn.cc (expand_arith_set_overflow): Likewise.
10229 (expand_arith_overflow_result_store): Likewise.
10230 (expand_addsub_overflow): Likewise.
10231 (expand_neg_overflow): Likewise.
10232 (expand_mul_overflow): Likewise.
10233 (expand_arith_overflow): Likewise.
10234
10235 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
10236
10237 PR target/106180
10238 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
10239 Rename from *sse2_cvtps2pd<mask_name>_1.
10240 (vec_unpacks_lo_v4sf): Add handler for memory operand.
10241
10242 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
10243
10244 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
10245 Modify fp_sp_offset and gp_sp_offset's calculation method,
10246 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
10247 or UNITS_PER_FP_REG.
10248
10249 2022-07-07 David Malcolm <dmalcolm@redhat.com>
10250
10251 * diagnostic-format-json.cc (json_from_location_range): Update for
10252 removal of label_text::maybe_free in favor of automatic memory
10253 management.
10254 * diagnostic-format-sarif.cc
10255 (sarif_builder::make_location_object): Likewise.
10256 * diagnostic-show-locus.cc (struct pod_label_text): New.
10257 (class line_label): Convert m_text from label_text to pod_label_text.
10258 (layout::print_any_labels): Move "text" to the line_label.
10259 * tree-diagnostic-path.cc (path_label::get_text): Update for
10260 removal of label_text::maybe_free in favor of automatic memory
10261 management.
10262 (event_range::print): Likewise.
10263 (default_tree_diagnostic_path_printer): Likewise.
10264 (default_tree_make_json_for_path): Likewise.
10265
10266 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10267
10268 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
10269
10270 2022-07-07 Richard Biener <rguenther@suse.de>
10271
10272 * tree-into-ssa.cc (iterating_old_ssa_names): New.
10273 (add_new_name_mapping): Grow {new,old}_ssa_names separately
10274 and only when actually needed. Assert we are not growing
10275 the old_ssa_names set when iterating over it.
10276 (update_ssa): Remove old_ssa_names copying and empty_p
10277 query, note we are iterating over it and expect no set changes.
10278
10279 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
10280
10281 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
10282 (prepare_target_image, main): Handle OpenMP 'requires'.
10283 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
10284 'GOMP_offload_unregister_ver'.
10285
10286 2022-07-07 Richard Biener <rguenther@suse.de>
10287
10288 PR target/106219
10289 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
10290 set DECL_PURE_P.
10291
10292 2022-07-07 Richard Biener <rguenther@suse.de>
10293
10294 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
10295 number of LC PHIs inserted.
10296 (add_exit_phis): Return whether any variable required
10297 multiple LC PHI nodes.
10298 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
10299 when possible.
10300
10301 2022-07-07 Richard Biener <rguenther@suse.de>
10302
10303 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
10304 the def loop exit block bitmap as argument instead of
10305 re-computing it here.
10306 (add_exit_phis_var): Adjust.
10307 (loop_name_cmp): New function.
10308 (add_exit_phis): Sort variables to insert LC PHI nodes
10309 after definition loop, for each definition loop compute
10310 the exit block bitmap once.
10311 (get_loops_exit): Remove.
10312 (rewrite_into_loop_closed_ssa_1): Do not pre-record
10313 all loop exit blocks into bitmaps. Record loop exits
10314 if required.
10315
10316 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
10317
10318 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
10319 to handle the N32 ABI.
10320 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
10321 the macro, as it is not needed anymore.
10322
10323 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
10324
10325 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
10326 '[...]_data'.
10327 * config/nvptx/mkoffload.cc (process): Likewise.
10328
10329 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
10330
10331 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
10332
10333 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
10334
10335 * value-relation.cc (relation_to_code): New vector.
10336 (relation_oracle::validate_relation): New.
10337 (set_relation): Allow ssa1 == ssa2 to be registered.
10338 * value-relation.h (validate_relation): New prototype.
10339 (query_relation): Make internal variant protected.
10340
10341 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
10342
10343 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
10344 for double word comparisons and tests (comparisons against zero).
10345 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
10346 and;cmp into andn;cmp $0 as a pre-reload splitter.
10347 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
10348 (*<any_or><dwi>3_doubleword): Likewise.
10349
10350 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
10351 Hongtao Liu <hongtao.liu@intel.com>
10352
10353 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
10354 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
10355 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
10356 and gen_ssse3_palignv1ti instead of TImode.
10357 * config/i386/sse.md (SSESCALARMODE): Delete.
10358 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
10359 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
10360 iterator instead of SSESCALARMODE.
10361 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
10362 using a single move instruction (if required).
10363
10364 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
10365 Uroš Bizjak <ubizjak@gmail.com>
10366
10367 PR rtl-optimization/96692
10368 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
10369 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
10370
10371 2022-07-05 Richard Biener <rguenther@suse.de>
10372
10373 PR tree-optimization/106198
10374 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
10375 full LC SSA rewrite but only if any blocks changed loop
10376 depth.
10377
10378 2022-07-05 Richard Biener <rguenther@suse.de>
10379
10380 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
10381 (find_uses_to_rename_in_loop): Likewise.
10382 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
10383 uses.
10384 (rewrite_into_loop_closed_ssa): Adjust.
10385
10386 2022-07-05 Richard Biener <rguenther@suse.de>
10387
10388 PR tree-optimization/106186
10389 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
10390 Properly handle virtual PHI nodes.
10391
10392 2022-07-05 Richard Biener <rguenther@suse.de>
10393
10394 PR tree-optimization/106196
10395 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
10396 handle aggregate returns of calls for VDEF updates.
10397
10398 2022-07-05 Richard Biener <rguenther@suse.de>
10399
10400 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
10401 Maintain LC SSA.
10402
10403 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
10404
10405 * tree-vect-patterns.cc (vect_convert_input): Expect the input
10406 type to be signed for optab_vector_mixed_sign. Update the vectype
10407 at the same time as type.
10408 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
10409 available, try sdot instead.
10410 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
10411 (vect_model_reduction_cost): Model the cost of implementing usdot
10412 using sdot.
10413 (vectorizable_reduction): Likewise. Skip target support test
10414 for lane reductions.
10415 (vect_emulate_mixed_dot_prod): New function.
10416 (vect_transform_reduction): Use it to emulate usdot via sdot.
10417
10418 2022-07-05 Richard Biener <rguenther@suse.de>
10419
10420 PR tree-optimization/106182
10421 * loop-init.cc (fix_loop_structure): Return the number
10422 of newly discovered plus the number of deleted loops.
10423 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
10424 variable name.
10425
10426 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
10427
10428 * gimple-range-fold.cc
10429 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
10430 call to SCEV for irange supported types.
10431 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
10432 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
10433 * tree-ssa-dom.cc (cprop_operand): Same.
10434
10435 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
10436
10437 PR target/104489
10438 * calls.cc (precompute_register_parameters): Allow promotion
10439 of floating point values to be passed in wider integer modes
10440 by calling new convert_float_to_wider_int.
10441 (expand_call): Allow floating point results to be returned in
10442 wider integer modes by calling new convert wider_int_to_float.
10443 * cfgexpand.cc (expand_value_return): Allow backends to promote
10444 a scalar floating point return value to a wider integer mode
10445 by calling new convert_float_to_wider_int.
10446 * expr.cc (convert_float_to_wider_int): New function.
10447 (convert_wider_int_to_float): Likewise.
10448 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
10449 scalar FP PARM_DECLs to wider integer modes, by calling new
10450 convert_wider_int_to_float.
10451 * expr.h (convert_modes): Name arguments for improved documentation.
10452 (convert_float_to_wider_int): Prototype new function here.
10453 (convert_wider_int_to_float): Likewise.
10454 * function.cc (assign_parm_setup_stack): Allow floating point
10455 values to be passed on the stack as wider integer modes by
10456 calling new convert_wider_int_to_float.
10457
10458 2022-07-04 Martin Jambor <mjambor@suse.cz>
10459
10460 PR tree-optimization/105860
10461 * tree-sra.cc (build_reconstructed_reference): Start expr
10462 traversal only just below the outermost union.
10463
10464 2022-07-04 Richard Biener <rguenther@suse.de>
10465
10466 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
10467 and update virtual SSA form again. Assert we do so for
10468 a known set of transforms only.
10469 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
10470 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
10471 using load-lanes allow virtual SSA update.
10472
10473 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
10474 Chung-Lin Tang <cltang@codesourcery.com>
10475 Thomas Schwinge <thomas@codesourcery.com>
10476
10477 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
10478 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
10479 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
10480 * config/nvptx/mkoffload.cc (process, main): Likewise.
10481 * lto-cgraph.cc (omp_requires_to_name): New.
10482 (input_offload_tables): Save omp_requires_mask.
10483 (output_offload_tables): Read it, check for consistency,
10484 save value for mkoffload.
10485 * omp-low.cc (lower_omp_target): Force output_offloadtables
10486 call for OMP_REQUIRES_TARGET_USED.
10487
10488 2022-07-04 Richard Biener <rguenther@suse.de>
10489
10490 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
10491 no SSA update is needed instead of updating virtual SSA
10492 form.
10493 * tree-vect-stmts.cc (vectorizable_load): For hoisted
10494 invariant load use the loop entry virtual use.
10495 For emulated gather loads use the virtual use of the
10496 original stmt like vect_finish_stmt_generation would do.
10497
10498 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
10499
10500 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
10501 for direct circularity.
10502
10503 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
10504
10505 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
10506 the language for vector types.
10507
10508 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
10509
10510 * value-range-storage.cc (irange_storage_slot::set_irange): Set
10511 nonzero bits in irange.
10512 (irange_storage_slot::get_irange): Get nonzero bits from irange.
10513 * value-range.cc (irange::operator=): Set nonzero bits.
10514 (irange::irange_set): Same.
10515 (irange::irange_set_anti_range): Same.
10516 (irange::set): Same.
10517 (irange::verify_range): Same.
10518 (irange::legacy_equal_p): Check nonzero bits.
10519 (irange::equal_p): Same.
10520 (irange::contains_p): Handle nonzero bits.
10521 (irange::irange_union): Same.
10522 (irange::irange_intersect): Same.
10523 (irange::dump): Same.
10524 (irange::set_nonzero_bits): New.
10525 (irange::get_nonzero_bits): New.
10526 (irange::intersect_nonzero_bits): New.
10527 (irange::union_nonzero_bits): New.
10528 (irange::dump_bitmasks): New.
10529 * value-range.h (class irange): Add m_nonzero_mask.
10530 (gt_ggc_mx): Handle nonzero bits.
10531 (gt_pch_nx): Same.
10532 (irange::set_undefined): Set nonzero bits.
10533 (irange::set_varying): Same.
10534 (irange::normalize_kind): Call set_undefined.
10535
10536 2022-07-04 Richard Biener <rguenther@suse.de>
10537
10538 * tree-ssa-loop-manip.h
10539 (rewrite_virtuals_into_loop_closed_ssa): Remove.
10540 (rewrite_into_loop_closed_ssa_1): Likewise.
10541 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
10542 Make static.
10543 (rewrite_into_loop_closed_ssa): Remove loop overload,
10544 always rewrite virtuals into LC SSA.
10545 (check_loop_closed_ssa_bb): Also check virtuals.
10546 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
10547 LC PHIs when in LC SSA.
10548 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
10549 loop-closed SSA here, but ...
10550 (tree_loop_unroll_and_jam): ... here once.
10551 * tree-if-conv.cc (version_loop_for_if_conversion): Use
10552 the cheaper TODO_update_ssa_no_phi.
10553 * tree-loop-distribution.cc (version_loop_by_alias_check):
10554 Likewise.
10555 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
10556 Likewise.
10557 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
10558 (tree_unswitch_outer_loop): Do not rewrite virtuals into
10559 LC ssa.
10560 * tree-parloops.cc (transform_to_exit_first_loop_alt):
10561 Likewise.
10562 (pass_parallelize_loops::execute): After finishing rewrite
10563 into LC SSA again because we do not maintain it properly.
10564
10565 2022-07-04 Richard Biener <rguenther@suse.de>
10566
10567 PR tree-optimization/106055
10568 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
10569 we can propagate.
10570
10571 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
10572
10573 PR target/43618
10574 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
10575 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
10576 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
10577
10578 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
10579
10580 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
10581 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
10582 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
10583 with two arguments.
10584 (find_unswitching_predicates_for_bb): Same.
10585 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
10586 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
10587 * value-range.cc (irange::equal_p): Rename to...
10588 (irange::operator==): ...this.
10589 * value-range.h (irange::set): Remove.
10590 (irange::operator==): Remove.
10591 (irange::set_zero): Use set with two arguments.
10592 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
10593 (vr_values::extract_range_from_unary_expr): Same.
10594 (check_for_binary_op_overflow): Same.
10595 (bounds_of_var_in_loop): Same.
10596
10597 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
10598
10599 PR target/106022
10600 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
10601 New.
10602 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
10603 New.
10604 * config/i386/mmx.md (V_16_32_64): New.
10605 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
10606 and 64-bit constant vector.
10607 * config/i386/predicates.md (x86_64_const_vector_operand): New.
10608
10609 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
10610
10611 * gimple-range-cache.cc: Include value-range-storage.h.
10612 * gimple-range-cache.h (class block_range_cache): Add "class" to
10613 m_range_allocator.
10614 * gimple-range-edge.cc
10615 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
10616 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
10617 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
10618 * gimple-range-edge.h: Add "class" to m_range_allocator.
10619 * gimple-range-infer.cc
10620 (infer_range_manager::infer_range_manager): Allocate allocator.
10621 (infer_range_manager::~infer_range_manager): Free allocator.
10622 (infer_range_manager::get_nonzero): Dereference allocator.
10623 (infer_range_manager::add_range): Same.
10624 * gimple-range-infer.h (class vrange_allocator): Add "class" to
10625 m_range_allocator.
10626 * value-range-storage.h (class vrange_allocator): Move from
10627 value-range.h.
10628 (class obstack_vrange_allocator): Same.
10629 (class ggc_vrange_allocator): Same.
10630 (vrange_allocator::alloc_vrange): Same.
10631 (vrange_allocator::alloc_irange): Same.
10632 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
10633 (class obstack_vrange_allocator): Same.
10634 (class ggc_vrange_allocator): Same.
10635
10636 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
10637
10638 * Makefile.in (OBJS): Add value-range-storage.o.
10639 (GTFILES): Add value-range-storage.h.
10640 * gengtype.cc (open_base_files): Add value-range-storage.h.
10641 * value-range-storage.cc: New file.
10642 * value-range-storage.h: New file.
10643
10644 2022-07-03 Xi Ruoyao <xry111@xry111.site>
10645 Lulu Cheng <chenglulu@loongson.cn>
10646
10647 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
10648 New static function.
10649 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
10650 of TARGET_CHECK_ZERO_DIV.
10651 (loongarch_output_division): Likewise.
10652 * common/config/loongarch/loongarch-common.cc
10653 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
10654 * doc/invoke.texi: Update to match the new behavior.
10655
10656 2022-07-03 Ian Lance Taylor <iant@golang.org>
10657
10658 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
10659 statement if -fdelete-dead-exceptions.
10660
10661 2022-07-02 Tim Lange <mail@tim-lange.me>
10662
10663 PR analyzer/105900
10664 * doc/invoke.texi: Added Wanalyzer-allocation-size.
10665
10666 2022-07-02 Immad Mir <mirimmad17@gmail.com>
10667
10668 PR analyzer/106003
10669 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
10670 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
10671 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
10672 -Wanalyzer-fd-use-after-close.
10673
10674 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
10675
10676 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
10677 (trailing_wide_ints::set_precision): Add num_elements argument.
10678 (trailing_wide_ints::extra_size): Same.
10679
10680 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
10681
10682 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
10683 Use "r" constraint for operand 1.
10684
10685 2022-07-01 Richard Biener <rguenther@suse.de>
10686
10687 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
10688 Do not look at interesting_blocks which is a copy of
10689 blocks_to_update.
10690 (update_ssa): Do not initialize it.
10691 (pass_build_ssa::execute): Set interesting_blocks to NULL
10692 after releasing it.
10693
10694 2022-07-01 Richard Biener <rguenther@suse.de>
10695
10696 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
10697 back to using maybe_ne (off, -1).
10698
10699 2022-07-01 Richard Biener <rguenther@suse.de>
10700
10701 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
10702 checking dominance check conditional on flag_checking.
10703
10704 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
10705
10706 * config/gcn/gcn-protos.h (print_operand_address): Remove register
10707 keyword on 'rtx addr' argument.
10708
10709 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
10710 Uroš Bizjak <ubizjak@gmail.com>
10711
10712 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
10713 to post-reload define_insn_and_split.
10714
10715 2022-07-01 Jakub Jelinek <jakub@redhat.com>
10716
10717 PR middle-end/106144
10718 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
10719 emitting element for shift or if shift is 0 first element after start.
10720 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
10721 wi::shifted_mask with 0 start.
10722
10723 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
10724
10725 PR target/106122
10726 * config/i386/i386.md (peephole2): Avoid generating pop %esp
10727 when optimizing for size.
10728
10729 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
10730 Uroš Bizjak <ubizjak@gmail.com>
10731
10732 * config/i386/i386.md (general_szext_operand): Add TImode
10733 support using x86_64_hilo_general_operand predicate.
10734 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
10735 (*add<dwi>3_doubleword): Improved optimization of zero addition.
10736 (and<mode>3): Use SDWIM mode iterator to add support for double
10737 word bit-wise AND in TImode. Use force_reg when double word
10738 immediate operand isn't x86_64_hilo_general_operand.
10739 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
10740 converted into a post-reload splitter.
10741 (*andndi3_doubleword): Previous define_insn deleted.
10742 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
10743 TARGET_BMI that splits post-reload.
10744 (*andn<mode>3_doubleword): New define_insn_and_split for
10745 !TARGET_BMI, that lowers/splits before reload.
10746 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
10747 double word bit-wise XOR and bit-wise IOR in TImode. Use
10748 force_reg when double word immediate operand isn't
10749 x86_64_hilo_general_operand.
10750 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
10751 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
10752 double word bit-wise NOT in TImode.
10753 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
10754 and converted into a post-reload splitter.
10755
10756 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
10757
10758 PR middle-end/105874
10759 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
10760 EXPAND_MEMORY for the expansion of the inner reference only
10761 in the usual cases where a memory reference is required.
10762
10763 2022-07-01 Richard Biener <rguenther@suse.de>
10764
10765 PR tree-optimization/106131
10766 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
10767 zero when offsetting the read looking through an aggregate
10768 copy.
10769
10770 2022-07-01 Martin Liska <mliska@suse.cz>
10771
10772 PR tree-optimization/106126
10773 * gimple-if-to-switch.cc (struct condition_info): Save
10774 has_side_effect.
10775 (find_conditions): Parse all BBs.
10776 (pass_if_to_switch::execute): Allow only side effects for first
10777 BB.
10778
10779 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
10780
10781 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
10782 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
10783 OPTION_MASK_ISA2_AVX512BF16_UNSET and
10784 OPTION_MASK_ISA2_AVX512FP16_UNSET.
10785
10786 2022-06-30 Joseph Myers <joseph@codesourcery.com>
10787
10788 PR lto/106129
10789 * lto-wrapper.cc (find_option): Add argument start.
10790 (merge_and_complain): Loop over existing_opt_index and
10791 existing_opt2_index for Xassembler check. Update calls to
10792 find_option.
10793 (find_and_merge_options): Add argument first to determine whether
10794 to merge options with those passed in *opts.
10795 (run_gcc): Update calls to find_and_merge_options.
10796
10797 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
10798
10799 * gimple-range-cache.cc (block_range_cache::block_range_cache):
10800 Rename vrange_allocator to obstack_vrange_allocator.
10801 (ssa_global_cache::ssa_global_cache): Same.
10802 * gimple-range-edge.h (class gimple_outgoing_range): Same.
10803 * gimple-range-infer.h (class infer_range_manager): Same.
10804 * value-range.h (class vrange_allocator): Make abstract.
10805 (class obstack_vrange_allocator): Inherit from vrange_allocator.
10806 (class ggc_vrange_allocator): New.
10807
10808 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
10809 Uroš Bizjak <ubizjak@gmail.com>
10810
10811 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
10812 provide gen_swapsi.
10813 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
10814 via new gen_<insn>32di2_doubleword below.
10815 (<anyrotate>32di2_doubleword): New define_insn_and_split
10816 that splits after reload as either a pair of move instructions
10817 or an xchgl (using gen_swapsi).
10818
10819 2022-06-30 Richard Biener <rguenther@suse.de>
10820
10821 * domwalk.h (dom_walker::dom_walker): Update comment to
10822 reflect reality and new special argument value for
10823 bb_index_to_rpo.
10824 * domwalk.cc (dom_walker::dom_walker): Recognize -1
10825 bb_index_to_rpo.
10826 * tree-into-ssa.cc
10827 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
10828 dom_walker to not use RPO.
10829
10830 2022-06-30 Martin Liska <mliska@suse.cz>
10831
10832 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
10833 it is unused.
10834
10835 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
10836
10837 PR tree-optimization/106114
10838 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
10839 statement operands instead of GORI cache.
10840
10841 2022-06-30 Antoni Boucher <bouanto@zoho.com>
10842
10843 PR target/106095
10844 * config/i386/sse.md: Fix asm generation.
10845
10846 2022-06-29 Sergei Trofimovich <siarheit@google.com>
10847
10848 PR c++/106102
10849 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
10850
10851 2022-06-29 Joseph Myers <joseph@codesourcery.com>
10852
10853 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
10854 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
10855
10856 2022-06-29 Richard Biener <rguenther@suse.de>
10857
10858 PR rtl-optimization/106082
10859 * combine.cc (distribute_notes): Preserve notes when
10860 they indicate a call doesn't perform a non-local goto.
10861
10862 2022-06-29 Richard Biener <rguenther@suse.de>
10863
10864 PR tree-optimization/106112
10865 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
10866 a constant operand according to its type.
10867
10868 2022-06-29 Martin Liska <mliska@suse.cz>
10869
10870 * doc/invoke.texi: Remove removed evrp-mode.
10871
10872 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
10873
10874 PR target/106097
10875 * config/loongarch/loongarch.cc (loongarch_build_integer):
10876 Remove undefined behavior from code.
10877
10878 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
10879
10880 * doc/sourcebuild.texi: Document new no_alignment_constraints
10881 effective target check.
10882
10883 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
10884
10885 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
10886 * flag-types.h (enum evrp_mode): Remove.
10887 * params.opt: Remove --param=evrp-mode.
10888 * tree-vrp.cc (make_pass_early_vrp): New.
10889 (pass_vrp::execute): Call early VRP instance.
10890 * gimple-ssa-evrp-analyze.cc: Removed.
10891 * gimple-ssa-evrp-analyze.h: Removed.
10892 * gimple-ssa-evrp.cc: Removed.
10893
10894 2022-06-28 Alexandre Oliva <oliva@adacore.com>
10895
10896 * Makefile.in (TFLAGS): New.
10897 (GCC_FOR_TARGET): Add TFLAGS.
10898 (FLAGS_TO_PASS): Pass TFLAGS down.
10899
10900 2022-06-28 Richard Biener <rguenther@suse.de>
10901
10902 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
10903 call update_ssa.
10904
10905 2022-06-28 Richard Biener <rguenther@suse.de>
10906
10907 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
10908 mark_block_for_update.
10909 (update_ssa): Adjust.
10910
10911 2022-06-28 Xi Ruoyao <xry111@xry111.site>
10912
10913 PR target/106096
10914 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
10915 $r13 from SIBCALL_REGS.
10916 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
10917 Change $r13 to JIRL_REGS.
10918
10919 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
10920
10921 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
10922 irange::supports_p.
10923
10924 2022-06-28 Richard Biener <rguenther@suse.de>
10925
10926 PR middle-end/106053
10927 * match.pd ((T)a == (T)b): Avoid folding away sign
10928 changes in a comparison if we'd truncate to a boolean.
10929
10930 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
10931
10932 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
10933 iterator GPR with SImode, adjust the condition and output template,
10934 rename to ...
10935 (*rotlsi3_insert_4): ... this.
10936
10937 2022-06-27 David Malcolm <dmalcolm@redhat.com>
10938
10939 * genmatch.cc: Add "final" and "override" to various vfunc
10940 implementations, removing redundant "virtual" as appropriate.
10941 * gensupport.cc: Likewise.
10942 * gimple-range-cache.h: Likewise.
10943 * ipa-icf-gimple.h: Likewise.
10944 * ipa-icf.h: Likewise.
10945 * read-md.h: Likewise.
10946 * read-rtl-function.cc: Likewise.
10947 * tree-ssa-loop-ch.cc: Likewise.
10948 * tree-ssa-sccvn.cc: Likewise.
10949
10950 2022-06-27 David Malcolm <dmalcolm@redhat.com>
10951
10952 * config/i386/i386-features.h: Add "final" and "override" to
10953 scalar_chain vfunc implementations as appropriate.
10954
10955 2022-06-27 David Malcolm <dmalcolm@redhat.com>
10956
10957 * tree-switch-conversion.h: Add "final" and "override" to cluster
10958 vfunc implementations as appropriate.
10959
10960 2022-06-27 David Malcolm <dmalcolm@redhat.com>
10961
10962 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
10963 implementations as appropriate.
10964
10965 2022-06-27 David Malcolm <dmalcolm@redhat.com>
10966
10967 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
10968 implementations, removing redundant "virtual" as appropriate.
10969 * gimple-ssa-strength-reduction.cc: Likewise.
10970 * ipa-prop.cc: Likewise.
10971 * rtl-ssa/blocks.cc: Likewise.
10972 * tree-into-ssa.cc: Likewise.
10973 * tree-ssa-dom.cc: Likewise.
10974 * tree-ssa-math-opts.cc: Likewise.
10975 * tree-ssa-phiopt.cc: Likewise.
10976 * tree-ssa-propagate.cc: Likewise.
10977 * tree-ssa-sccvn.cc: Likewise.
10978 * tree-ssa-strlen.cc: Likewise.
10979 * tree-ssa-uncprop.cc: Likewise.
10980
10981 2022-06-27 David Malcolm <dmalcolm@redhat.com>
10982
10983 * adjust-alignment.cc: Add "final" and "override" to opt_pass
10984 vfunc implementations, removing redundant "virtual" as
10985 appropriate.
10986 * asan.cc: Likewise.
10987 * auto-inc-dec.cc: Likewise.
10988 * auto-profile.cc: Likewise.
10989 * bb-reorder.cc: Likewise.
10990 * cfgcleanup.cc: Likewise.
10991 * cfgexpand.cc: Likewise.
10992 * cfgrtl.cc: Likewise.
10993 * cgraphbuild.cc: Likewise.
10994 * combine-stack-adj.cc: Likewise.
10995 * combine.cc: Likewise.
10996 * compare-elim.cc: Likewise.
10997 * config/i386/i386-features.cc: Likewise.
10998 * coroutine-passes.cc: Likewise.
10999 * cprop.cc: Likewise.
11000 * cse.cc: Likewise.
11001 * dce.cc: Likewise.
11002 * df-core.cc: Likewise.
11003 * dse.cc: Likewise.
11004 * dwarf2cfi.cc: Likewise.
11005 * early-remat.cc: Likewise.
11006 * except.cc: Likewise.
11007 * final.cc: Likewise.
11008 * function.cc: Likewise.
11009 * fwprop.cc: Likewise.
11010 * gcse.cc: Likewise.
11011 * gimple-harden-conditionals.cc: Likewise.
11012 * gimple-if-to-switch.cc: Likewise.
11013 * gimple-isel.cc: Likewise.
11014 * gimple-laddress.cc: Likewise.
11015 * gimple-loop-interchange.cc: Likewise.
11016 * gimple-loop-jam.cc: Likewise.
11017 * gimple-loop-versioning.cc: Likewise.
11018 * gimple-low.cc: Likewise.
11019 * gimple-ssa-backprop.cc: Likewise.
11020 * gimple-ssa-evrp.cc: Likewise.
11021 * gimple-ssa-isolate-paths.cc: Likewise.
11022 * gimple-ssa-nonnull-compare.cc: Likewise.
11023 * gimple-ssa-split-paths.cc: Likewise.
11024 * gimple-ssa-store-merging.cc: Likewise.
11025 * gimple-ssa-strength-reduction.cc: Likewise.
11026 * gimple-ssa-warn-access.cc: Likewise.
11027 * gimple-ssa-warn-alloca.cc: Likewise.
11028 * gimple-ssa-warn-restrict.cc: Likewise.
11029 * gimple-warn-recursion.cc: Likewise.
11030 * graphite.cc: Likewise.
11031 * ifcvt.cc: Likewise.
11032 * init-regs.cc: Likewise.
11033 * ipa-comdats.cc: Likewise.
11034 * ipa-cp.cc: Likewise.
11035 * ipa-devirt.cc: Likewise.
11036 * ipa-fnsummary.cc: Likewise.
11037 * ipa-free-lang-data.cc: Likewise.
11038 * ipa-icf.cc: Likewise.
11039 * ipa-inline.cc: Likewise.
11040 * ipa-modref.cc: Likewise.
11041 * ipa-profile.cc: Likewise.
11042 * ipa-pure-const.cc: Likewise.
11043 * ipa-reference.cc: Likewise.
11044 * ipa-split.cc: Likewise.
11045 * ipa-sra.cc: Likewise.
11046 * ipa-visibility.cc: Likewise.
11047 * ipa.cc: Likewise.
11048 * ira.cc: Likewise.
11049 * jump.cc: Likewise.
11050 * loop-init.cc: Likewise.
11051 * lower-subreg.cc: Likewise.
11052 * mode-switching.cc: Likewise.
11053 * modulo-sched.cc: Likewise.
11054 * multiple_target.cc: Likewise.
11055 * omp-expand.cc: Likewise.
11056 * omp-low.cc: Likewise.
11057 * omp-oacc-kernels-decompose.cc: Likewise.
11058 * omp-oacc-neuter-broadcast.cc: Likewise.
11059 * omp-offload.cc: Likewise.
11060 * omp-simd-clone.cc: Likewise.
11061 * passes.cc: Likewise.
11062 * postreload-gcse.cc: Likewise.
11063 * postreload.cc: Likewise.
11064 * predict.cc: Likewise.
11065 * recog.cc: Likewise.
11066 * ree.cc: Likewise.
11067 * reg-stack.cc: Likewise.
11068 * regcprop.cc: Likewise.
11069 * reginfo.cc: Likewise.
11070 * regrename.cc: Likewise.
11071 * reorg.cc: Likewise.
11072 * sancov.cc: Likewise.
11073 * sanopt.cc: Likewise.
11074 * sched-rgn.cc: Likewise.
11075 * stack-ptr-mod.cc: Likewise.
11076 * store-motion.cc: Likewise.
11077 * tracer.cc: Likewise.
11078 * trans-mem.cc: Likewise.
11079 * tree-call-cdce.cc: Likewise.
11080 * tree-cfg.cc: Likewise.
11081 * tree-cfgcleanup.cc: Likewise.
11082 * tree-complex.cc: Likewise.
11083 * tree-eh.cc: Likewise.
11084 * tree-emutls.cc: Likewise.
11085 * tree-if-conv.cc: Likewise.
11086 * tree-into-ssa.cc: Likewise.
11087 * tree-loop-distribution.cc: Likewise.
11088 * tree-nrv.cc: Likewise.
11089 * tree-object-size.cc: Likewise.
11090 * tree-parloops.cc: Likewise.
11091 * tree-predcom.cc: Likewise.
11092 * tree-profile.cc: Likewise.
11093 * tree-sra.cc: Likewise.
11094 * tree-ssa-ccp.cc: Likewise.
11095 * tree-ssa-copy.cc: Likewise.
11096 * tree-ssa-dce.cc: Likewise.
11097 * tree-ssa-dom.cc: Likewise.
11098 * tree-ssa-dse.cc: Likewise.
11099 * tree-ssa-forwprop.cc: Likewise.
11100 * tree-ssa-ifcombine.cc: Likewise.
11101 * tree-ssa-loop-ch.cc: Likewise.
11102 * tree-ssa-loop-im.cc: Likewise.
11103 * tree-ssa-loop-ivcanon.cc: Likewise.
11104 * tree-ssa-loop-prefetch.cc: Likewise.
11105 * tree-ssa-loop-split.cc: Likewise.
11106 * tree-ssa-loop-unswitch.cc: Likewise.
11107 * tree-ssa-loop.cc: Likewise.
11108 * tree-ssa-math-opts.cc: Likewise.
11109 * tree-ssa-phiopt.cc: Likewise.
11110 * tree-ssa-phiprop.cc: Likewise.
11111 * tree-ssa-pre.cc: Likewise.
11112 * tree-ssa-reassoc.cc: Likewise.
11113 * tree-ssa-sccvn.cc: Likewise.
11114 * tree-ssa-sink.cc: Likewise.
11115 * tree-ssa-strlen.cc: Likewise.
11116 * tree-ssa-structalias.cc: Likewise.
11117 * tree-ssa-uncprop.cc: Likewise.
11118 * tree-ssa-uninit.cc: Likewise.
11119 * tree-ssanames.cc: Likewise.
11120 * tree-stdarg.cc: Likewise.
11121 * tree-switch-conversion.cc: Likewise.
11122 * tree-tailcall.cc: Likewise.
11123 * tree-vect-generic.cc: Likewise.
11124 * tree-vectorizer.cc: Likewise.
11125 * tree-vrp.cc: Likewise.
11126 * tsan.cc: Likewise.
11127 * ubsan.cc: Likewise.
11128 * var-tracking.cc: Likewise.
11129 * vtable-verify.cc: Likewise.
11130 * web.cc: Likewise.
11131
11132 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
11133
11134 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
11135 (jump): Likewise.
11136 (movdi_symbol_save_scc): Likewise.
11137
11138 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
11139
11140 PR rtl-optimization/7061
11141 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
11142
11143 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
11144
11145 PR tree-optimization/94026
11146 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
11147 (((X >> C1) & C2) eq/ne C3): Likewise.
11148
11149 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11150
11151 * statistics.cc: Include tree.h.
11152 (get_function_name): New function.
11153 (statistics_fini_pass_2): Call get_function_name instead of
11154 current_function_name.
11155 (statistics_counter_event): Call get_function_name instead of
11156 function_name.
11157 (statistics_histogram_event): Likewise.
11158
11159 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11160
11161 * config/xtensa/xtensa.md:
11162 Suppress unnecessary emitting nop insn in the split patterns for
11163 integer/FP constant synthesis, and add new peephole2 pattern that
11164 folds such synthesized additions.
11165
11166 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
11167
11168 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
11169 instead of evrp.
11170 (dom_jt_state::push): Remove m_evrp.
11171 (dom_jt_state::pop): Same.
11172 (dom_jt_state::record_ranges_from_stmt): Remove.
11173 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
11174 (class dom_jt_simplifier): Pass ranger to constructor.
11175 Inherit from hybrid_jt_simplifier.
11176 (dom_jt_simplifier::simplify): Convert to ranger.
11177 (pass_dominator::execute): Same.
11178 (all_uses_feed_or_dominated_by_stmt): New.
11179 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
11180 (dom_opt_dom_walker::before_dom_children): Call
11181 set_global_ranges_from_unreachable_edges.
11182 Do not call record_ranges_from_stmt.
11183 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
11184 (cprop_operand): Use int_range<> instead of value_range.
11185 (dom_opt_dom_walker::fold_cond): New.
11186 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
11187 cprop_into_stmt.
11188 Use fold_cond() instead of vrp_visit_cond_stmt().
11189 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
11190 pass state to simplifier.
11191 * vr-values.h (class vr_values): Make fold_cond public.
11192
11193 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
11194
11195 * common/config/tilegx/tilegx-common.cc: Removed.
11196 * common/config/tilepro/tilepro-common.cc: Removed.
11197 * config.gcc: Remove tilegx and tilepro entries.
11198 * config/tilegx/constraints.md: Removed.
11199 * config/tilegx/feedback.h: Removed.
11200 * config/tilegx/linux.h: Removed.
11201 * config/tilegx/mul-tables.cc: Removed.
11202 * config/tilegx/predicates.md: Removed.
11203 * config/tilegx/sync.md: Removed.
11204 * config/tilegx/t-tilegx: Removed.
11205 * config/tilegx/tilegx-builtins.h: Removed.
11206 * config/tilegx/tilegx-c.cc: Removed.
11207 * config/tilegx/tilegx-generic.md: Removed.
11208 * config/tilegx/tilegx-modes.def: Removed.
11209 * config/tilegx/tilegx-multiply.h: Removed.
11210 * config/tilegx/tilegx-opts.h: Removed.
11211 * config/tilegx/tilegx-protos.h: Removed.
11212 * config/tilegx/tilegx.cc: Removed.
11213 * config/tilegx/tilegx.h: Removed.
11214 * config/tilegx/tilegx.md: Removed.
11215 * config/tilegx/tilegx.opt: Removed.
11216 * config/tilepro/constraints.md: Removed.
11217 * config/tilepro/feedback.h: Removed.
11218 * config/tilepro/gen-mul-tables.cc: Removed.
11219 * config/tilepro/linux.h: Removed.
11220 * config/tilepro/mul-tables.cc: Removed.
11221 * config/tilepro/predicates.md: Removed.
11222 * config/tilepro/t-tilepro: Removed.
11223 * config/tilepro/tilepro-builtins.h: Removed.
11224 * config/tilepro/tilepro-c.cc: Removed.
11225 * config/tilepro/tilepro-generic.md: Removed.
11226 * config/tilepro/tilepro-modes.def: Removed.
11227 * config/tilepro/tilepro-multiply.h: Removed.
11228 * config/tilepro/tilepro-protos.h: Removed.
11229 * config/tilepro/tilepro.cc: Removed.
11230 * config/tilepro/tilepro.h: Removed.
11231 * config/tilepro/tilepro.md: Removed.
11232 * config/tilepro/tilepro.opt: Removed.
11233 * configure.ac: Remove tilegx and tilepro entries.
11234 * configure: Rebuilt.
11235 * doc/extend.texi: Remove tilegx and tilepro entries.
11236 * doc/install.texi: Remove tilegx and tilepro entries.
11237 * doc/invoke.texi: Remove tilegx and tilepro entries.
11238 * doc/md.texi: Remove tilegx and tilepro entries.
11239
11240 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
11241 Richard Biener <rguenther@suse.de>
11242
11243 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
11244 iteration over each basic block that was updated by the second
11245 iteration.
11246
11247 2022-06-24 Jason Merrill <jason@redhat.com>
11248
11249 PR c++/87729
11250 PR c++/20423
11251 * doc/invoke.texi: Document changes.
11252
11253 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
11254
11255 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
11256 condition to avoid overflow.
11257
11258 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
11259
11260 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
11261 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
11262 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
11263 OPTION_MASK_PPC_GFXOPT.
11264 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
11265 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
11266 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
11267 * config/rs6000/rs6000-c.cc: Update comment.
11268 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
11269 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
11270 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
11271 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
11272 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
11273 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
11274 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
11275 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
11276 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
11277
11278 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
11279
11280 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
11281 OPTION_MASK_MFCRF.
11282 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
11283 OPTION_MASK_MULTIPLE.
11284 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
11285 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
11286 OPTION_MASK_MFCRF.
11287 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
11288 OPTION_MASK_EABI.
11289 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
11290 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
11291 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
11292 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
11293 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
11294 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
11295 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
11296 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
11297 Replace with
11298 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
11299 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
11300 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
11301 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
11302 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
11303 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
11304 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
11305 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
11306 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
11307 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
11308 with OPTION_MASK_MULTIPLE.
11309 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
11310 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
11311 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
11312 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
11313 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
11314 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
11315 with OPTION_MASK_EABI.
11316
11317 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
11318
11319 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
11320 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
11321 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
11322 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
11323 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
11324 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
11325 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
11326 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
11327 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
11328 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
11329 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
11330
11331 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
11332
11333 * config/rs6000/rs6000-c.cc: Update comments.
11334 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
11335 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
11336 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
11337 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
11338 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
11339 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
11340 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
11341 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
11342 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
11343 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
11344 OPTION_MASK_MMA, OPTION_MASK_POWER10.
11345 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
11346 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
11347 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
11348 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
11349 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
11350
11351 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
11352
11353 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
11354 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
11355 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
11356
11357 2022-06-24 Richard Biener <rguenther@suse.de>
11358
11359 PR middle-end/106070
11360 * match.pd (a != b ? a : b): Fix translation of
11361 operand_equal_for_comparison_p.
11362
11363 2022-06-24 Jan Hubicka <jh@suse.cz>
11364
11365 PR ipa/106057
11366 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
11367
11368 2022-06-24 Martin Liska <mliska@suse.cz>
11369
11370 PR middle-end/106059
11371 * profile-count.h: *= and /= operators need to modify this
11372 object.
11373
11374 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
11375 Uroš Bizjak <ubizjak@gmail.com>
11376
11377 PR target/105930
11378 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
11379 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
11380 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
11381
11382 2022-06-24 Alexandre Oliva <oliva@adacore.com>
11383
11384 * common.opt (nostdlib++): New.
11385 * doc/invoke.texi (-nostdlib++): Document it.
11386
11387 2022-06-24 Alexandre Oliva <oliva@adacore.com>
11388
11389 * doc/sourcebuild.texi (Environment attributes): Document
11390 two_plus_gigs.
11391
11392 2022-06-23 David Malcolm <dmalcolm@redhat.com>
11393
11394 * common.opt (fdiagnostics-show-rules): New option.
11395 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
11396 Fix up context->show_rules.
11397 * diagnostic-format-sarif.cc
11398 (diagnostic_output_format_init_sarif): Likewise.
11399 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
11400 (diagnostic_metadata::precanned_rule): New class.
11401 (diagnostic_metadata::add_rule): New.
11402 (diagnostic_metadata::get_num_rules): New.
11403 (diagnostic_metadata::get_rule): New.
11404 (diagnostic_metadata::m_rules): New field.
11405 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
11406 (print_any_rules): New.
11407 (diagnostic_report_diagnostic): Call it.
11408 * diagnostic.h (diagnostic_context::show_rules): New field.
11409 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
11410 * opts.cc (common_handle_option): Handle
11411 OPT_fdiagnostics_show_rules.
11412 * toplev.cc (general_init): Set up global_dc->show_rules.
11413
11414 2022-06-23 Martin Liska <mliska@suse.cz>
11415
11416 PR c++/106062
11417 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
11418 in order to initialize UBSAN built-ins.
11419
11420 2022-06-23 Martin Liska <mliska@suse.cz>
11421
11422 PR ipa/105600
11423 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
11424 Skip variables with body_removed.
11425
11426 2022-06-23 liuhongt <hongtao.liu@intel.com>
11427
11428 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
11429 reg_or_subregno.
11430 (sse4_2_pcmpistr): Ditto.
11431
11432 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
11433
11434 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
11435 typo.
11436 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
11437 * tree-switch-conversion.h: Likewise.
11438
11439 2022-06-22 Jason Merrill <jason@redhat.com>
11440
11441 PR c++/104642
11442 * common.opt: Add -funreachable-traps.
11443 * doc/invoke.texi (-funreachable-traps): Document it.
11444 * opts.cc (finish_options): Enable at -O0 or -Og.
11445 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
11446 (builtin_decl_unreachable, build_builtin_unreachable): New.
11447 * tree.h: Declare them.
11448 * ubsan.cc (sanitize_unreachable_fn): Factor out.
11449 (ubsan_instrument_unreachable): Use
11450 gimple_build_builtin_unreachable.
11451 * ubsan.h (sanitize_unreachable_fn): Declare.
11452 * gimple.cc (gimple_build_builtin_unreachable): New.
11453 * gimple.h: Declare it.
11454 * builtins.cc (expand_builtin_unreachable): Add assert.
11455 (fold_builtin_0): Call build_builtin_unreachable.
11456 * sanopt.cc: Don't run for just SANITIZE_RETURN
11457 or SANITIZE_UNREACHABLE when trapping.
11458 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
11459 unreachable functions.
11460 * gimple-fold.cc (gimple_fold_call)
11461 (gimple_get_virt_method_for_vtable)
11462 * ipa-fnsummary.cc (redirect_to_unreachable)
11463 * ipa-prop.cc (ipa_make_edge_direct_to_target)
11464 (ipa_impossible_devirt_target)
11465 * ipa.cc (walk_polymorphic_call_targets)
11466 * tree-cfg.cc (pass_warn_function_return::execute)
11467 (execute_fixup_cfg)
11468 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
11469 (unloop_loops)
11470 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
11471 Likewise.
11472
11473 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
11474
11475 PR tree-optimization/106019
11476 * tree-data-ref.cc (dr_may_alias_p): Try using the
11477 innermost_loop_behavior to disambiguate non-loop queries.
11478
11479 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
11480
11481 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
11482
11483 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11484
11485 * config/xtensa/xtensa.md (bswapsi2_internal):
11486 Enlarge the buffer that is obviously smaller than the template
11487 string given to sprintf().
11488
11489 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
11490 Marek Polacek <polacek@redhat.com>
11491 Segher Boessenkool <segher@kernel.crashing.org>
11492 Kewen Lin <linkw@linux.ibm.com>
11493
11494 PR target/105991
11495 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
11496 exact_log2 doesn't return -1 (or zero).
11497 (plus_xor): New code iterator.
11498 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
11499
11500 2022-06-21 Nathan Sidwell <nathan@acm.org>
11501
11502 * doc/invoke.texi (C++ Modules): Remove language-linkage
11503 as missing feature.
11504
11505 2022-06-21 Arjun Shankar <arjun@redhat.com>
11506
11507 PR tree-optimization/94899
11508 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
11509 0x80000000): New simplification.
11510
11511 2022-06-21 Jakub Jelinek <jakub@redhat.com>
11512
11513 PR rtl-optimization/106032
11514 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
11515 t may_trap_or_fault_p, even if it is cheap.
11516
11517 2022-06-21 Jakub Jelinek <jakub@redhat.com>
11518
11519 PR middle-end/106030
11520 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
11521 temp to expand_operands if mode has been promoted.
11522
11523 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
11524
11525 PR target/105740
11526 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
11527 condition bb.
11528
11529 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
11530
11531 PR tree-optimization/105736
11532 * tree-object-size.cc (addr_object_size): Return size_unknown
11533 when object offset computation returns an error.
11534
11535 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
11536
11537 PR target/105960
11538 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
11539 false if PIC register is used when calling ifunc functions.
11540
11541 2022-06-20 Richard Biener <rguenther@suse.de>
11542
11543 PR middle-end/106027
11544 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
11545 type of the prevailing comparison for the new comparison type.
11546 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
11547 to A < X && A >= Y folding.
11548
11549 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
11550
11551 PR tree-optimization/105940
11552 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
11553 slp_done_for_suggested_uf and adjust with it accordingly.
11554 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
11555 pass it down to vect_analyze_loop_2 for the initial analysis and
11556 applying suggested unroll factor.
11557 (vect_is_simple_reduction): Add parameter slp and adjust with it.
11558 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
11559 (vect_analyze_scalar_cycles): Likewise.
11560
11561 2022-06-20 Martin Liska <mliska@suse.cz>
11562
11563 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
11564 use them.
11565 (better_edge_p): Likewise.
11566 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
11567 * cfgloopmanip.cc (scale_loop_profile): Likewise.
11568 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
11569 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
11570 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
11571 * dojump.cc (do_compare_rtx_and_jump): Likewise.
11572 * final.cc (compute_alignments): Likewise.
11573 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
11574 (decide_about_value): Likewise.
11575 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
11576 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
11577 * modulo-sched.cc (sms_schedule): Likewise.
11578 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
11579 (expand_omp_ordered_sink): Likewise.
11580 (expand_omp_for_ordered_loops): Likewise.
11581 (expand_omp_for_static_nochunk): Likewise.
11582 * predict.cc (maybe_hot_count_p): Likewise.
11583 (probably_never_executed): Likewise.
11584 (set_even_probabilities): Likewise.
11585 (handle_missing_profiles): Likewise.
11586 (expensive_function_p): Likewise.
11587 * profile-count.h: Likewise.
11588 * profile.cc (compute_branch_probabilities): Likewise.
11589 * stmt.cc (emit_case_dispatch_table): Likewise.
11590 * symtab-thunks.cc (expand_thunk): Likewise.
11591 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
11592 * tree-ssa-sink.cc (select_best_block): Likewise.
11593 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
11594 (switch_decision_tree::balance_case_nodes): Likewise.
11595 (switch_decision_tree::emit_case_nodes): Likewise.
11596 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
11597
11598 2022-06-20 yulong <shiyulong@iscas.ac.cn>
11599
11600 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
11601 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
11602 of RISCV_BUILTIN.
11603 * config/riscv/riscv-ftypes.def (0): Remove unused.
11604 (1): New.
11605
11606 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11607
11608 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
11609 Consider relaxed MOVI instructions as L32R.
11610
11611 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11612
11613 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
11614 Use can_create_pseudo_p(), instead of using individual
11615 reload_in_progress and reload_completed.
11616 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
11617 the existing predicate function.
11618 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
11619 Use the standard RTX code predicate macros such as MEM_P,
11620 SYMBOL_REF_P and/or CONST_INT_P.
11621 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
11622 if callee-saved register, at the split patterns for indirect sibcall
11623 fixups.
11624
11625 2022-06-18 Jakub Jelinek <jakub@redhat.com>
11626
11627 * common.opt (flag_sanitize_trap): New variable.
11628 (fsanitize-trap=, fsanitize-trap): New options.
11629 (fsanitize-undefined-trap-on-error): Change into deprecated alias
11630 for -fsanitize-trap=all.
11631 * opts.h (struct sanitizer_opts_s): Add can_trap member.
11632 * opts.cc (finish_options): Complain about unsupported
11633 -fsanitize-trap= options.
11634 (sanitizer_opts): Add can_trap values to all entries.
11635 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
11636 options which have can_trap false.
11637 (parse_sanitizer_options): Add support for -fsanitize-trap=.
11638 For -fsanitize-trap=all, enable
11639 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
11640 -fsanitize-trap=vptr here.
11641 (common_handle_option): Handle OPT_fsanitize_trap_ and
11642 OPT_fsanitize_trap.
11643 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
11644 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
11645 flag_sanitize_undefined_trap_on_error.
11646 * gcc.cc (sanitize_spec_function): Use
11647 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
11648 and drop use of flag_sanitize_undefined_trap_on_error in
11649 "undefined" handling.
11650 * ubsan.cc (ubsan_instrument_unreachable): Use
11651 flag_sanitize_trap & SANITIZE_??? instead of
11652 flag_sanitize_undefined_trap_on_error.
11653 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
11654 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
11655 ubsan_build_overflow_builtin, instrument_bool_enum_load,
11656 ubsan_instrument_float_cast, instrument_nonnull_arg,
11657 instrument_nonnull_return, instrument_builtin): Likewise.
11658 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
11659 (-fsanitize-undefined-trap-on-error): Document as deprecated
11660 alias of -fsanitize-trap.
11661
11662 2022-06-18 Jakub Jelinek <jakub@redhat.com>
11663
11664 PR middle-end/105998
11665 * varasm.cc (narrowing_initializer_constant_valid_p): Check
11666 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
11667 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
11668
11669 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
11670
11671 PR tree-optimization/105835
11672 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
11673 Narrow integer multiplication by a zero_one_valued_p operand.
11674 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
11675 conversions inside COND_EXPR where both data operands are
11676 integer constants.
11677
11678 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11679
11680 * config/xtensa/constraints.md (Y):
11681 Change to include integer constants until reload begins.
11682 * config/xtensa/predicates.md (move_operand): Ditto.
11683 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
11684 Change to allow storing integer constants into litpool only after
11685 reload begins.
11686
11687 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
11688
11689 PR target/105209
11690 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
11691 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
11692 (alpha_store_data_bypass_p_1): Ditto.
11693 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
11694 of generic store_data_bypass_p.
11695 (ev4_ist_c): Remove insn reservation.
11696
11697 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
11698
11699 PR target/105970
11700 * config/i386/i386.cc (ix86_function_arg): Assert that
11701 the mode of pointer argumet is equal to ptr_mode, not Pmode.
11702
11703 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
11704
11705 PR target/105993
11706 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
11707 instead of REGNO comparisons in combine splitter.
11708
11709 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
11710
11711 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
11712 types.
11713
11714 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
11715
11716 * config/riscv/bitmanip.md: Supress warning.
11717
11718 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
11719
11720 PR target/106004
11721 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
11722 Clear bits in the mask above bit 31.
11723
11724 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
11725
11726 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
11727 to avoid spilling trivial literals to the constant pool.
11728
11729 2022-06-16 David Malcolm <dmalcolm@redhat.com>
11730
11731 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
11732 auto_diagnostic_group to group any warning with its note.
11733 (maybe_warn_for_bound): Likewise.
11734 (check_access): Likewise.
11735 (warn_dealloc_offset): Likewise.
11736 (pass_waccess::maybe_warn_memmodel): Likewise.
11737 (pass_waccess::maybe_check_dealloc_call): Likewise.
11738 (pass_waccess::warn_invalid_pointer): Likewise.
11739 (pass_waccess::check_dangling_stores): Likewise.
11740
11741 2022-06-16 Jason Merrill <jason@redhat.com>
11742
11743 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
11744 opts_set->x_flag_sanitize.
11745
11746 2022-06-16 Jason Merrill <jason@redhat.com>
11747
11748 * flags.h (issue_strict_overflow_warning): Comment #endif.
11749
11750 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
11751
11752 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
11753 was invaraint before, clear the invariant bit.
11754 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
11755 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
11756
11757 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
11758
11759 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
11760
11761 2022-06-16 Jakub Jelinek <jakub@redhat.com>
11762
11763 PR tree-optimization/105983
11764 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
11765 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
11766 on non-equality comparisons.
11767
11768 2022-06-16 Jakub Jelinek <jakub@redhat.com>
11769
11770 PR tree-optimization/105984
11771 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
11772 x > stype_max / cst || x < stype_min / cst): fold_convert @1
11773 to TREE_TYPE (@0) just once and test for negative divisor
11774 also on that folded constant instead of on @1.
11775
11776 2022-06-16 Jakub Jelinek <jakub@redhat.com>
11777
11778 PR middle-end/105951
11779 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
11780 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
11781 as last argument to the internal functions.
11782 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
11783 extra call argument to ifns. If expand_atomic_fetch_op fails for the
11784 lhs == NULL_TREE case, fall through into the optab code with
11785 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
11786 fails, construct a CALL_EXPR and expand that.
11787 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
11788 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
11789 expand that.
11790
11791 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
11792
11793 PR target/103316
11794 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
11795 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
11796 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
11797 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
11798 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
11799 for new Power10 V1TI instructions.
11800 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
11801 (vec_cmpu<mode><mode>): Likewise.
11802 (vector_nlt<mode>): Set mode iterator to VEC_IC.
11803 (vector_nltv1ti): Remove.
11804 (vector_gtu<mode>): Set mode iterator to VEC_IC.
11805 (vector_gtuv1ti): Remove.
11806 (vector_nltu<mode>): Set mode iterator to VEC_IC.
11807 (vector_nltuv1ti): Remove.
11808 (vector_geu<mode>): Set mode iterator to VEC_IC.
11809 (vector_ngt<mode>): Likewise.
11810 (vector_ngtv1ti): Remove.
11811 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
11812 (vector_ngtuv1ti): Remove.
11813 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
11814 (vector_gtu_v1ti_p): Remove.
11815 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
11816 (vrotlv1ti3): Remove.
11817 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
11818 (vashrv1ti3): Remove.
11819
11820 2022-06-16 Martin Liska <mliska@suse.cz>
11821
11822 * gengtype-state.cc (read_a_state_token): Do not skip extra
11823 character after escaped sequence.
11824
11825 2022-06-16 Martin Liska <mliska@suse.cz>
11826
11827 PR driver/105564
11828 * spellcheck.cc (test_find_closest_string): Add new test.
11829 * spellcheck.h (class best_match): Prefer a difference in
11830 trailing sign symbol.
11831
11832 2022-06-16 liuhongt <hongtao.liu@intel.com>
11833
11834 PR tree-optimization/53533
11835 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
11836 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
11837 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
11838
11839 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11840
11841 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
11842
11843 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11844
11845 * config/xtensa/predicates.md (reload_operand):
11846 New predicate.
11847 * config/xtensa/xtensa.md: New peephole2 pattern.
11848
11849 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11850
11851 * config/xtensa/xtensa.md (*round_up_to_even):
11852 New insn-and-split pattern.
11853 (*signed_ge_zero): Ditto.
11854
11855 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11856
11857 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
11858 xtensa_emit_sibcall): New prototypes.
11859 (xtensa_expand_epilogue): Add new argument that specifies whether
11860 or not sibling call.
11861 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
11862 New macro definition.
11863 (xtensa_prepare_expand_call): New function in order to share
11864 the common code.
11865 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
11866 New functions.
11867 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
11868 for sibling call handling.
11869 * config/xtensa/xtensa.md (call, call_value):
11870 Use xtensa_prepare_expand_call.
11871 (call_internal, call_value_internal):
11872 Add the condition in order to be disabled if sibling call.
11873 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
11874 (sibcall_internal, sibcall_value_internal): New insn patterns,
11875 and split ones in order to take care of the indirect sibcalls.
11876
11877 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11878
11879 * doc/invoke.texi: Document -mextra-l32r-costs= option.
11880
11881 2022-06-15 David Malcolm <dmalcolm@redhat.com>
11882
11883 PR analyzer/105962
11884 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
11885 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
11886 Extend -fdiagnostics-path-format=separate-events so that with
11887 -fdiagnostics-show-path-depths it prints fndecls as well as stack
11888 depths.
11889
11890 2022-06-15 David Malcolm <dmalcolm@redhat.com>
11891
11892 * value-relation.h: Add "final" and "override" to relation_oracle
11893 vfunc implementations as appropriate.
11894
11895 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
11896
11897 PR middle-end/105975
11898 Revert everything apart from the expand_fn_using_insn and
11899 expand_direct_optab_fn changes from:
11900 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
11901 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
11902 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
11903 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
11904 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
11905 member variable.
11906 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
11907 (direct_internal_fn_p): Also return true for internal functions
11908 that map directly to instructions defined target-insns.def.
11909 (direct_internal_fn): Adjust comment accordingly.
11910 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
11911 (vectorizable_optab2): New local macros.
11912 (not_direct): Initialize directly_mapped.
11913 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
11914 (gather_load_direct, len_load_direct, mask_store_direct)
11915 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
11916 (vec_cond_direct, scatter_store_direct, len_store_direct)
11917 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
11918 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
11919 (while_direct, fold_extract_direct, fold_left_direct)
11920 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
11921 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
11922 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
11923 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
11924 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
11925 (direct_internal_fn_types): Handle functions that map to instructions
11926 defined in target-insns.def.
11927 (direct_internal_fn_types): Likewise.
11928 (direct_internal_fn_supported_p): Likewise.
11929 (internal_fn_expanders): Likewise.
11930 (expand_fn_using_insn): New function,
11931 split out and adapted from...
11932 (expand_direct_optab_fn): ...here.
11933 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
11934 (expand_GOMP_SIMT_EXIT): Likewise.
11935 (expand_GOMP_SIMT_LANE): Likewise.
11936 (expand_GOMP_SIMT_LAST_LANE): Likewise.
11937 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
11938 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
11939 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
11940 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
11941
11942 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
11943
11944 PR target/105981
11945 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
11946 to first_reg and second_reg respectively. Initialize them correctly
11947 when generating big-endian code.
11948
11949 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
11950
11951 PR target/105974
11952 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
11953
11954 2022-06-15 Richard Biener <rguenther@suse.de>
11955
11956 PR tree-optimization/105971
11957 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
11958 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
11959 to leak less surprising alias results.
11960
11961 2022-06-15 Richard Biener <rguenther@suse.de>
11962
11963 PR tree-optimization/105969
11964 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
11965 by zero in overflow check.
11966
11967 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
11968
11969 PR tree-optimization/105254
11970 PR tree-optimization/105940
11971 Revert:
11972 * config/aarch64/aarch64.cc
11973 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
11974 loop_vec_info as argument. Restrict the unroll factor to values
11975 that divide the VF.
11976 (aarch64_vector_costs::finish_cost): Update call accordingly.
11977
11978 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
11979
11980 * read-rtl.cc (find_int): Substitute symbolic constants
11981 before converting the string to an integer.
11982
11983 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
11984 Richard Biener <rguenther@suse.de>
11985
11986 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
11987 left shifts by a constant when the result is truncated, and the
11988 shift constant is well-defined.
11989 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
11990 support for rotations of signed integer types, by lowering
11991 using unsigned vector shifts.
11992
11993 2022-06-15 liuhongt <hongtao.liu@intel.com>
11994
11995 PR target/105953
11996 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
11997 operands[3].
11998
11999 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
12000
12001 PR rtl-optimization/105041
12002 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
12003
12004 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
12005
12006 * config/rs6000/vsx.md (VS_scalar): Delete.
12007 (rest of file): Adjust.
12008
12009 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
12010
12011 PR ipa/105739
12012 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
12013
12014 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
12015
12016 * config/riscv/bitmanip.md: Add split to handle opportunities
12017 for slli + sh[123]add.uw
12018
12019 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
12020
12021 * config/riscv/predicates.md (consecutive_bits_operand):
12022 Implement new predicate.
12023
12024 2022-06-14 Richard Biener <rguenther@suse.de>
12025
12026 PR tree-optimization/105946
12027 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
12028 Do not look at arguments not specified in the function call.
12029
12030 2022-06-14 Richard Biener <rguenther@suse.de>
12031
12032 PR middle-end/105965
12033 * match.pd (view_convert CONSTRUCTOR): Handle single-element
12034 CTOR case.
12035
12036 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
12037
12038 * warning-control.cc (copy_warning) [generic version]: Do not erase
12039 the warning data of the destination location when the no-warning
12040 bit is not set on the source.
12041 (copy_warning) [tree version]: Return early if TO is equal to FROM.
12042 (copy_warning) [gimple version]: Likewise.
12043
12044 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
12045
12046 PR tree-optimization/105940
12047 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
12048 applying suggested_unroll_factor after start_over.
12049
12050 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12051
12052 * config/xtensa/predicates.md (shifted_mask_operand):
12053 New predicate.
12054 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
12055 New insn-and-split pattern.
12056 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
12057 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
12058 *masktrue_const_shifted_mask): Ditto.
12059
12060 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12061
12062 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
12063
12064 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12065
12066 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
12067 Remove the first argument.
12068 (xtensa_emit_bit_branch): Remove it because now called only from the
12069 output statement of *bittrue insn pattern.
12070 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
12071 argument 'p_invert', and make so that the condition is reversed by
12072 itself as needed.
12073 (xtensa_expand_conditional_branch): Share the common path, and remove
12074 condition inversion code.
12075 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
12076 "false side" pattern.
12077 (xtensa_emit_bit_branch): Remove it because of the abovementioned
12078 reason, and move the function body to *bittrue insn pattern.
12079 * config/xtensa/xtensa.md (*bittrue): Transplant the output
12080 statement from removed xtensa_emit_bit_branch().
12081 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
12082 insn patterns.
12083
12084 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12085
12086 * config/xtensa/predicates.md (logical_shift_operator,
12087 xtensa_shift_per_byte_operator): New predicates.
12088 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
12089 New prototype.
12090 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
12091 New helper function for funnel shift patterns.
12092 * config/xtensa/xtensa.md (ior_op): New code iterator.
12093 (*ashlsi3_1): Replace with new split pattern.
12094 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
12095 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
12096 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
12097 in order to omit unnecessary bitwise AND operation.
12098 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
12099 *shlrd_per_byte_<code>_omit_AND):
12100 New insn patterns for funnel shifts.
12101
12102 2022-06-13 Jason Merrill <jason@redhat.com>
12103
12104 * tree-cfg.cc (pass_warn_function_return::execute): Also check
12105 BUILT_IN_TRAP.
12106
12107 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
12108
12109 * config/riscv/riscv.md (length): Remove the explicit setting
12110 for "fcmp".
12111
12112 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
12113
12114 * common/config/i386/cpuinfo.h (get_available_features): Require
12115 AVX for F16C and VAES.
12116
12117 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
12118
12119 PR target/105927
12120 * config/i386/predicates.md (register_no_elim_operand):
12121 Return true for subreg of a memory operand.
12122
12123 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
12124
12125 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
12126 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
12127 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
12128 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
12129 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
12130 member variable.
12131 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
12132 (direct_internal_fn_p): Also return true for internal functions
12133 that map directly to instructions defined target-insns.def.
12134 (direct_internal_fn): Adjust comment accordingly.
12135 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
12136 (vectorizable_optab2): New local macros.
12137 (not_direct): Initialize directly_mapped.
12138 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
12139 (gather_load_direct, len_load_direct, mask_store_direct)
12140 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
12141 (vec_cond_direct, scatter_store_direct, len_store_direct)
12142 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
12143 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
12144 (while_direct, fold_extract_direct, fold_left_direct)
12145 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
12146 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
12147 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
12148 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
12149 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
12150 (direct_internal_fn_types): Handle functions that map to instructions
12151 defined in target-insns.def.
12152 (direct_internal_fn_types): Likewise.
12153 (direct_internal_fn_supported_p): Likewise.
12154 (internal_fn_expanders): Likewise.
12155
12156 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
12157
12158 * internal-fn.cc (expand_fn_using_insn): New function,
12159 split out and adapted from...
12160 (expand_direct_optab_fn): ...here.
12161 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
12162 (expand_GOMP_SIMT_EXIT): Likewise.
12163 (expand_GOMP_SIMT_LANE): Likewise.
12164 (expand_GOMP_SIMT_LAST_LANE): Likewise.
12165 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
12166 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
12167 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
12168 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
12169
12170 2022-06-13 Jakub Jelinek <jakub@redhat.com>
12171
12172 * omp-expand.cc (expand_omp_target): Remap user provided
12173 device clause arguments, -1 to -2 and -2 to -3, either
12174 at compile time if constant, or at runtime.
12175
12176 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
12177
12178 * common.opt (finstrument-functions): Set explicit value.
12179 (-finstrument-functions-once): New option.
12180 * doc/invoke.texi (Program Instrumentation Options): Document it.
12181 * gimplify.cc (build_instrumentation_call): New static function.
12182 (gimplify_function_tree): Call it to emit the instrumentation calls
12183 if -finstrument-functions[-once] is specified.
12184
12185 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
12186
12187 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
12188 * gimple.h (gimple_set_location): Do not copy warning data from
12189 the previous location when it is UNKNOWN_LOCATION.
12190 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
12191
12192 2022-06-13 Jakub Jelinek <jakub@redhat.com>
12193
12194 PR target/105911
12195 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
12196 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
12197 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
12198 operands[3] unmodified.
12199
12200 2022-06-12 Simon Wright <simon@pushface.org>
12201
12202 PR target/104871
12203 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
12204 version is darwin20 (macOS 11) or greater, truncate the version to the
12205 major number.
12206
12207 2022-06-12 Mark Mentovai <mark@mentovai.com>
12208
12209 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
12210
12211 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12212
12213 PR target/96463
12214 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
12215 (svld1rq_impl::fold): Define.
12216 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
12217 op_mode and op_vec_flags.
12218 (aarch64_evpc_reencode): Initialize newd.op_mode and
12219 newd.op_vec_flags.
12220 (aarch64_evpc_sve_dup): New function.
12221 (aarch64_expand_vec_perm_const_1): Gate existing calls to
12222 aarch64_evpc_* functions under d->vmode == d->op_mode,
12223 and call aarch64_evpc_sve_dup.
12224 (aarch64_vectorize_vec_perm_const): Remove assert
12225 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
12226 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
12227 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
12228 constant.
12229
12230 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12231
12232 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
12233 New prototype.
12234 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
12235 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
12236 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
12237 New backend functions that process the abovementioned logic.
12238 (xtensa_emit_move_sequence): Revert the previous changes.
12239 * config/xtensa/xtensa.md: New split patterns for integer
12240 and floating-point, as the frontend part.
12241
12242 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12243
12244 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
12245 for ABS and NEG, add missing case for BSWAP and CLRSB, and
12246 double the costs for integer divisions using libfuncs if
12247 optimizing for speed, in order to take advantage of fast constant
12248 division by multiplication.
12249 (TARGET_INSN_COST): New macro definition.
12250 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
12251 calculating relative costs of a RTL insns, for both of speed and
12252 size.
12253 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
12254 the attribute "length" that depends on TARGET_DENSITY.
12255 (define_asm_attributes, blockage, frame_blockage): Add missing
12256 attributes.
12257 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
12258 dependent option, however, preparatory work for now.
12259
12260 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12261
12262 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
12263 Pass through the block length / loop count conditions if
12264 zero-overhead looping is configured and active,
12265
12266 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12267
12268 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
12269 Split into individual signedness, in order to use libcall
12270 "__umulsidi3" but not the other.
12271 (<u>mulhisi3): Merge into one by using code iterator.
12272 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
12273
12274 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
12275
12276 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
12277 not generate block copies with vector pair instructions if we are
12278 tuning for power10.
12279
12280 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
12281
12282 PR rtl-optimization/7061
12283 * expr.cc (emit_group_store): For groups that consist of a single
12284 scalar integer register that hold a complex mode value, use
12285 gen_lowpart to generate a SUBREG to "view_convert" to the complex
12286 mode. For modes of different sizes, first convert to an integer
12287 mode of the appropriate size.
12288
12289 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12290
12291 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
12292
12293 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12294
12295 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
12296 New insn_and_split pattern.
12297
12298 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12299
12300 * config/xtensa/xtensa.md (one_cmplsi2):
12301 Rearrange as an insn_and_split pattern.
12302
12303 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12304
12305 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
12306
12307 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
12308
12309 * config/rs6000/rs6000.md (FP_ISA3): Delete.
12310 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
12311 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
12312 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
12313 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
12314 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
12315 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
12316 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
12317 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
12318
12319 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
12320
12321 * config/riscv/riscv.md
12322 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
12323 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
12324 rather than space with FSFLAGS.
12325
12326 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
12327
12328 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
12329 omp_discover_declare_target_fn_r): Don't walk reverse-offload
12330 target regions.
12331
12332 2022-06-09 Jakub Jelinek <jakub@redhat.com>
12333
12334 * doc/invoke.texi (-Waddress): Fix a typo in small example.
12335 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
12336
12337 2022-06-09 Cui,Lili <lili.cui@intel.com>
12338
12339 PR target/105493
12340 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
12341 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
12342 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
12343 (icelake_cost): Ditto.
12344 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
12345 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
12346 {8, 8, 8, 10, 15}.
12347
12348 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
12349
12350 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
12351 and ior insns to one rotate and mask insn.
12352 (define_split for bswapdi register): Likewise.
12353
12354 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
12355
12356 PR middle-end/105874
12357 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
12358 variable tem_modifier for calculating the expand_modifier enum to
12359 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
12360
12361 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
12362
12363 PR target/105879
12364 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
12365 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
12366 'gen_highpart' bitwise semantics and fix order of highpart and
12367 lowpart depending on target endianness.
12368
12369 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
12370
12371 * config/arm/arm-cpus.in (star-mc1): New cpu.
12372 * config/arm/arm-tables.opt: Regenerate.
12373 * config/arm/arm-tune.md: Regenerate.
12374 * doc/invoke.texi: Update docs.
12375
12376 2022-06-08 liuhongt <hongtao.liu@intel.com>
12377
12378 PR target/105513
12379 PR target/105504
12380 * config/i386/i386.md (*movsi_internal): Change alternative
12381 from *v to ?v.
12382 (*movdi_internal): Ditto.
12383 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
12384 to ?r.
12385 (*vec_extractv4sf_mem): Ditto.
12386 (*vec_extracthf): Ditto.
12387
12388 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
12389
12390 PR target/105090
12391 * config/arm/arm.cc (arm_bfi_1_p): New function.
12392 (arm_bfi_p): New function.
12393 (arm_rtx_costs_internal): Add costs for BFI idioms.
12394 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
12395 * config/arm/constraints.md (Dj): New constraint.
12396 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
12397 (insv_zero): Convert to an insn with a split.
12398 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
12399
12400 2022-06-07 liuhongt <hongtao.liu@intel.com>
12401
12402 PR target/105854
12403 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
12404 from Yv to Yw.
12405
12406 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
12407
12408 PR middle-end/105853
12409 PR target/105856
12410 * calls.cc (load_register_parameters): Call store_constructor
12411 and int_expr_size directly instead of expanding via expand_expr.
12412 * expr.cc (static void store_constructor): Don't prototype here.
12413 (static HOST_WIDE_INT int_expr_size): Likewise.
12414 (store_constructor): No longer static.
12415 (int_expr_size): Likewise, no longer static.
12416 * expr.h (store_constructor): Prototype here.
12417 (int_expr_size): Prototype here.
12418
12419 2022-06-07 Jan Beulich <jbeulich@suse.com>
12420
12421 Revert:
12422 2022-06-03 Jan Beulich <jbeulich@suse.com>
12423
12424 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
12425 * configure.ac: Check for objcopy, producing
12426 ORIGINAL_OBJCOPY_FOR_TARGET.
12427 * configure: Update accordingly.
12428 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
12429 Handle objcopy.
12430
12431 2022-06-07 Jakub Jelinek <jakub@redhat.com>
12432
12433 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
12434 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
12435 Adjust clause printing style depending on
12436 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
12437
12438 2022-06-07 Jan Beulich <jbeulich@suse.com>
12439
12440 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
12441 Change type.
12442 * config/i386/i386-builtin-types.def: New function type
12443 (V4DI, V32QI, V32QI).
12444 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
12445 V4DI_FTYPE_V32QI_V32QI.
12446
12447 2022-06-07 Jan Beulich <jbeulich@suse.com>
12448
12449 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
12450 into account for reg-only insns.
12451
12452 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
12453
12454 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
12455 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
12456 TARGET_CMOVE's (scalar integer) conditional moves.
12457 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
12458 from its equivalent (canonical) pxor;pand;pxor sequence.
12459
12460 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
12461
12462 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
12463 parameter ORDER.
12464
12465 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
12466
12467 * config.in: Regenerate.
12468 * configure: Regenerate.
12469 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
12470
12471 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
12472
12473 PR middle-end/95126
12474 * calls.cc (load_register_parameters): When loading a suitable
12475 immediate_const_ctor_p VAR_DECL into a single word_mode register,
12476 construct it directly in a pseudo rather than read it (by parts)
12477 from memory.
12478 * expr.cc (int_expr_size): Make tree argument a const_tree.
12479 (immediate_const_ctor_p): Helper predicate. Return true for
12480 simple constructors that may be materialized in a register.
12481 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
12482 VAR_DECL with a suitable immediate_const_ctor_p constructor
12483 use store_constructor to materialize it directly in a pseudo.
12484 * expr.h (immediate_const_ctor_p): Prototype here.
12485 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
12486 VALUE argument from tree to const_tree.
12487 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
12488 prototype.
12489
12490 2022-06-04 Jakub Jelinek <jakub@redhat.com>
12491
12492 PR target/105825
12493 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
12494 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
12495 bits of mask aren't all set, use operands[2] mode for the AND
12496 operation instead of always SImode.
12497
12498 2022-06-03 Jakub Jelinek <jakub@redhat.com>
12499
12500 PR middle-end/30314
12501 PR middle-end/105777
12502 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
12503 x > stype_max / cst || x < stype_min / cst): New simplification.
12504
12505 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
12506
12507 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
12508 Value_Range.
12509 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
12510 * value-range.h (Value_Range::Value_Range): Implement copy
12511 constructor for Value_Range.
12512
12513 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
12514
12515 * value-range.h (struct vrange_traits): Remove.
12516 (is_a): Rewrite without vrange_traits.
12517 (as_a): Same.
12518
12519 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
12520
12521 * value-range.cc (vrange::contains_p): Implement.
12522 (vrange::type): Return void.
12523 (vrange::supports_type_p): Implement.
12524 (irange::fits_p): Same.
12525 (vrange::set_undefined): Same.
12526 (irange::set_nonnegative): Same.
12527 (vrange::set_varying): Same.
12528 (vrange::union_): Same.
12529 (unsupported_range::set): Move to vrange.
12530 (unsupported_range::type): Move to vrange.
12531 (vrange::intersect): Implement for varying and undefined.
12532 (vrange::zero_p): Implement.
12533 (unsupported_range::supports_type_p): Move to vrange.
12534 (vrange::nonzero_p): Implement.
12535 (unsupported_range::set_undefined): Move to vrange.
12536 (unsupported_range::set_varying): Same.
12537 (unsupported_range::dump): Same.
12538 (unsupported_range::union_): Same. Implement for varying and
12539 undefined.
12540 (unsupported_range::intersect): Move to vrange.
12541 (unsupported_range::zero_p): Same.
12542 (unsupported_range::nonzero_p): Same.
12543 (unsupported_range::set_nonzero): Same.
12544 (unsupported_range::set_zero): Same.
12545 (unsupported_range::set_nonnegative): Same.
12546 (unsupported_range::fits_p): Same.
12547 * value-range.h (class vrange): Remove abstract markers for most
12548 methods.
12549 (class unsupported_range): Remove most methods as they will now be
12550 inherited from vrange.
12551
12552 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
12553
12554 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
12555 an object level supports_type_p for irange and a static
12556 Value_Range::supports_type_p.
12557 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
12558 (fold_using_range::range_of_address): Same.
12559 (fold_using_range::range_of_builtin_call): Same.
12560 * gimple-range-fold.h (gimple_range_type): Same.
12561 (gimple_range_ssa_p): Same.
12562 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
12563 Same.
12564 (path_range_query::range_of_stmt): Same.
12565 (path_range_query::add_to_imports): Same.
12566 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
12567 (gimple_ranger::export_global_ranges): Same.
12568 * gimple-ssa-evrp-analyze.cc
12569 (evrp_range_analyzer::record_ranges_from_phis): Same.
12570 * range-op.cc (range_operator::wi_fold): Same.
12571 (range_operator::fold_range): Same.
12572 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
12573 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
12574 (evaluate_control_stmt_using_entry_checks): Same.
12575 * tree-ssa-threadedge.cc
12576 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
12577 * tree-vrp.cc (supported_types_p): Same.
12578 * value-query.cc (range_query::value_of_expr): Same.
12579 (range_query::value_on_edge): Same.
12580 (range_query::value_of_stmt): Same.
12581 (range_query::get_tree_range): Same.
12582 (get_range_global): Same.
12583 (global_range_query::range_of_expr): Same.
12584 * value-range-equiv.h (class value_range_equiv): Same.
12585 * value-range.cc (irange::supports_type_p): Same.
12586 (unsupported_range::supports_type_p): Same.
12587 * value-range.h (enum value_range_discriminator): Same.
12588 (Value_Range::init): Same.
12589 (Value_Range::supports_type_p): Same.
12590 (irange::supports_type_p): Same.
12591 (irange::supports_p): Same.
12592 (vrange::supports_type_p): Same.
12593 (vrange_allocator::alloc_vrange): Same.
12594
12595 2022-06-03 Jan Beulich <jbeulich@suse.com>
12596
12597 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
12598 * configure.ac: Check for objcopy, producing
12599 ORIGINAL_OBJCOPY_FOR_TARGET.
12600 * configure: Update accordingly.
12601 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
12602 Handle objcopy.
12603
12604 2022-06-03 Jan Beulich <jbeulich@suse.com>
12605
12606 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
12607 (*mmx_psadbw): New. Mark as commutative.
12608 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
12609 (*<sse2_avx2>_psadbw): New. Mark as commutative.
12610
12611 2022-06-03 Alexandre Oliva <oliva@adacore.com>
12612
12613 PR tree-optimization/105665
12614 PR tree-optimization/100810
12615 * tree-ssa-loop-ivopts.cc
12616 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
12617 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
12618 (find_ssa_undef): Check precomputed flag and intervening uses.
12619 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
12620
12621 2022-06-02 David Malcolm <dmalcolm@redhat.com>
12622
12623 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
12624 tree-logical-location.o.
12625 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
12626 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
12627 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
12628 (sarif-stderr, sarif-file): New enum values.
12629 * diagnostic-client-data-hooks.h: New file.
12630 * diagnostic-format-sarif.cc: New file.
12631 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
12632 (enum diagnostic_event::noun): New enum.
12633 (enum diagnostic_event::property): New enum.
12634 (struct diagnostic_event::meaning): New struct.
12635 (diagnostic_event::get_logical_location): New vfunc.
12636 (diagnostic_event::get_meaning): New vfunc.
12637 (simple_diagnostic_event::get_logical_location): New vfunc impl.
12638 (simple_diagnostic_event::get_meaning): New vfunc impl.
12639 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
12640 (diagnostic_initialize): Initialize m_client_data_hooks.
12641 (diagnostic_finish): Clean up m_client_data_hooks.
12642 (diagnostic_event::meaning::dump_to_pp): New.
12643 (diagnostic_event::meaning::maybe_get_verb_str): New.
12644 (diagnostic_event::meaning::maybe_get_noun_str): New.
12645 (diagnostic_event::meaning::maybe_get_property_str): New.
12646 (get_cwe_url): Make non-static.
12647 (diagnostic_output_format_init): Handle
12648 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
12649 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
12650 * diagnostic.h (enum diagnostics_output_format): Add
12651 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
12652 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
12653 (class diagnostic_client_data_hooks): New forward decl.
12654 (class logical_location): New forward decl.
12655 (diagnostic_context::m_client_data_hooks): New field.
12656 (diagnostic_output_format_init_sarif_stderr): New decl.
12657 (diagnostic_output_format_init_sarif_file): New decl.
12658 (get_cwe_url): New decl.
12659 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
12660 sarif-file.
12661 * doc/sourcebuild.texi (Scan a particular file): Add
12662 scan-sarif-file and scan-sarif-file-not.
12663 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
12664 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
12665 (LANG_HOOKS_INITIALIZER): Add
12666 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
12667 * langhooks.cc (lhd_get_sarif_source_language): New.
12668 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
12669 * logical-location.h: New file.
12670 * plugin.cc (struct for_each_plugin_closure): New.
12671 (for_each_plugin_cb): New.
12672 (for_each_plugin): New.
12673 * plugin.h (for_each_plugin): New decl.
12674 * tree-diagnostic-client-data-hooks.cc: New file.
12675 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
12676 (tree_diagnostics_defaults): Populate m_client_data_hooks.
12677 * tree-logical-location.cc: New file.
12678 * tree-logical-location.h: New file.
12679
12680 2022-06-02 David Malcolm <dmalcolm@redhat.com>
12681
12682 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
12683 to description.
12684 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
12685 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
12686 (diagnostics_output_format): Add json-stderr and json-file.
12687 * diagnostic-format-json.cc (json_flush_to_file): New.
12688 (json_final_cb): Convert to...
12689 (json_flush_to_file): ...this, ...
12690 (json_stderr_final_cb): ...this, and...
12691 (json_file_final_cb): ...this.
12692 (diagnostic_output_format_init): Move to diagnostic.cc.
12693 (json_output_base_file_name): New.
12694 (diagnostic_output_format_init_json): New.
12695 (diagnostic_output_format_init_json_stderr): New.
12696 (diagnostic_output_format_init_json_file): New.
12697 * diagnostic.cc (diagnostic_output_format_init): Move here from
12698 diagnostic-format-json.cc; update for changes to enum.
12699 * diagnostic.h (enum diagnostics_output_format): Rename
12700 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
12701 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
12702 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
12703 (diagnostic_output_format_init): Add base_file_name param.
12704 (diagnostic_output_format_init_json_stderr): New decl.
12705 (diagnostic_output_format_init_json_file): New dec.
12706 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
12707 "json-file". Rewrite so that the existing "json" is a synonym of
12708 "json-stderr".
12709 * gcc.cc (driver_handle_option): Pass dump_base_name to
12710 diagnostic_output_format_init.
12711 * opts.cc (common_handle_option): Likewise.
12712
12713 2022-06-02 David Malcolm <dmalcolm@redhat.com>
12714
12715 * json.cc (string::print): Fix escaping of '\'.
12716
12717 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
12718
12719 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
12720 (-1 << 31) for the single-bit case, when operating on (1 << 31)
12721 in SImode.
12722 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
12723 any single-bit value, moving the special case for (1 << 31) to
12724 riscv_build_integer_1 (in riscv.c).
12725
12726 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
12727
12728 PR target/105791
12729 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
12730 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
12731
12732 2022-06-02 Jakub Jelinek <jakub@redhat.com>
12733
12734 PR target/105778
12735 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
12736 from AND and its operands and just verify operands[2] has HImode,
12737 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
12738 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
12739 just throw away the masking. Use force_reg before calling
12740 gen_lowpart.
12741 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
12742 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
12743 just throw away the masking.
12744 (*ashl<mode>3_doubleword): Rename to ...
12745 (ashl<mode>3_doubleword): ... this.
12746 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
12747 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
12748 Use force_reg before calling gen_lowpart.
12749 (*<insn><mode>3_mask): Likewise.
12750 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
12751 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
12752 case just throw away the masking. Use force_reg before calling
12753 gen_lowpart.
12754 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
12755 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
12756 throw away the masking.
12757 (*<insn><mode>3_doubleword): Rename to ...
12758 (<insn><mode>3_doubleword): ... this.
12759 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
12760 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
12761 Use force_reg before calling gen_lowpart.
12762 (splitter after it): Remove :SI from AND and its operands and just
12763 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
12764 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
12765 operands and just verify operands[1] has HImode, SImode or for
12766 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
12767 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
12768 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
12769 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
12770
12771 2022-06-02 Richard Biener <rguenther@suse.de>
12772
12773 PR tree-optimization/101668
12774 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
12775 for vector types with compatible lane types.
12776 (vect_build_slp_tree_2): Deal with this.
12777 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
12778 special cases without VEC_PERM.
12779 (vectorizable_slp_permutation): Select the operand vector
12780 type and relax requirements. Handle identity permutes
12781 with mismatching operand types.
12782 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
12783 permutes for op_mode == mode.
12784
12785 2022-06-02 Richard Biener <rguenther@suse.de>
12786
12787 PR tree-optimization/105802
12788 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
12789 Make sure to also compute the range in the type of the switch index.
12790
12791 2022-06-01 David Seifert <soap@gentoo.org>
12792
12793 PR plugins/95648
12794 * configure: Regenerate.
12795
12796 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
12797
12798 PR rtl-optimization/105638
12799 * df-core.cc (df_find_single_def_src): Moved and renamed from
12800 find_single_def_src in loop-iv.cc. Change the argument to rtx
12801 and use rtx_equal_p. Return null for partial or conditional
12802 defs.
12803 * df.h (df_find_single_def_src): New prototype.
12804 * dse.cc (record_store): Use the constant source if the source
12805 register is set only once.
12806 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
12807 (replace_single_def_regs): Replace find_single_def_src with
12808 df_find_single_def_src.
12809
12810 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
12811
12812 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
12813 selected_tune.
12814 (explicit_arch): Rename to selected_arch.
12815 (x_aarch64_override_tune_string): Remove.
12816 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
12817 (aarch64_override_tune_string): Add Save so it gets saved/restored.
12818 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
12819 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
12820 (processor): Remove archtecture_version field.
12821 (selected_arch): Remove global.
12822 (selected_cpu): Remove global.
12823 (selected_tune): Remove global.
12824 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
12825 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
12826 (aarch64_override_options): Further simplify code to only set
12827 selected_arch and selected_tune globals.
12828 (aarch64_option_save): Remove now that target options are saved.
12829 (aarch64_option_restore): Remove redundant target option restores.
12830 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
12831 AARCH64_ISA_V9.
12832 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
12833 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
12834 (aarch64_ra_sign_key): Remove.
12835
12836 2022-06-01 Jakub Jelinek <jakub@redhat.com>
12837
12838 PR middle-end/30314
12839 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
12840 x > ~(utype)0 / cst): New simplification.
12841
12842 2022-06-01 Richard Biener <rguenther@suse.de>
12843
12844 PR tree-optimization/105786
12845 * tree-loop-distribution.cc
12846 (loop_distribution::transform_reduction_loop): Only do strlen
12847 replacement for integer type reductions.
12848
12849 2022-06-01 Jakub Jelinek <jakub@redhat.com>
12850
12851 PR tree-optimization/105770
12852 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
12853 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
12854
12855 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
12856
12857 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
12858 (sbr_vector::sbr_vector): Same.
12859 (sbr_vector::grow): Same.
12860 (sbr_vector::set_bb_range): Same.
12861 (sbr_vector::get_bb_range): Same.
12862 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
12863 (sbr_sparse_bitmap::set_bb_range): Same.
12864 (sbr_sparse_bitmap::get_bb_range): Same.
12865 (block_range_cache::set_bb_range): Same.
12866 (block_range_cache::get_bb_range): Same.
12867 (block_range_cache::dump): Same.
12868 (ssa_global_cache::get_global_range): Same.
12869 (ssa_global_cache::set_global_range): Same.
12870 (ssa_global_cache::clear): Same.
12871 (ssa_global_cache::dump): Same.
12872 (ranger_cache::get_global_range): Same.
12873 (ranger_cache::set_global_range): Same.
12874 (ranger_cache::range_of_def): Same.
12875 (ranger_cache::entry_range): Same.
12876 (ranger_cache::exit_range): Same.
12877 (ranger_cache::edge_range): Same.
12878 (ranger_cache::range_of_expr): Same.
12879 (ranger_cache::range_on_edge): Same.
12880 (ranger_cache::block_range): Same.
12881 (ranger_cache::propagate_cache): Same.
12882 (ranger_cache::fill_block_cache): Same.
12883 (ranger_cache::range_from_dom): Same.
12884 * gimple-range-cache.h: Same.
12885 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
12886 Same.
12887 (gimple_outgoing_range::switch_edge_range): Same.
12888 (gimple_outgoing_range::edge_range_p): Same.
12889 * gimple-range-edge.h: Same.
12890 * gimple-range-fold.cc (fur_source::get_operand): Same.
12891 (fur_source::get_phi_operand): Same.
12892 (fur_edge::get_operand): Same.
12893 (fur_edge::get_phi_operand): Same.
12894 (fur_stmt::get_operand): Same.
12895 (fur_stmt::get_phi_operand): Same.
12896 (fur_list::fur_list): Same.
12897 (fur_list::get_operand): Same.
12898 (fur_list::get_phi_operand): Same.
12899 (fold_range): Same.
12900 (adjust_imagpart_expr): Same.
12901 (adjust_realpart_expr): Same.
12902 (gimple_range_adjustment): Same.
12903 (fold_using_range::fold_stmt): Same.
12904 (fold_using_range::range_of_range_op): Same.
12905 (fold_using_range::range_of_address): Same.
12906 (fold_using_range::range_of_phi): Same.
12907 (fold_using_range::range_of_call): Same.
12908 (fold_using_range::range_of_builtin_call): Same.
12909 (fold_using_range::range_of_builtin_int_call): Same.
12910 (fold_using_range::range_of_cond_expr): Same.
12911 (fur_source::register_outgoing_edges): Same.
12912 * gimple-range-fold.h (fold_range): Same.
12913 (gimple_range_type): Same.
12914 (gimple_range_ssa_p): Same.
12915 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
12916 (gimple_range_calc_op2): Same.
12917 (gori_compute::compute_operand_range_switch): Same.
12918 (gori_compute::compute_operand_range): Same.
12919 (gori_compute::logical_combine): Same.
12920 (gori_compute::compute_logical_operands): Same.
12921 (gori_compute::compute_operand1_range): Same.
12922 (gori_compute::compute_operand2_range): Same.
12923 (gori_compute::compute_operand1_and_operand2_range): Same.
12924 (gori_compute::outgoing_edge_range_p): Same.
12925 (gori_compute::condexpr_adjust): Same.
12926 * gimple-range-gori.h (gimple_range_calc_op1): Same.
12927 (gimple_range_calc_op2): Same.
12928 * gimple-range-path.cc (path_range_query::get_cache): Same.
12929 (path_range_query::set_cache): Same.
12930 (path_range_query::range_on_path_entry): Same.
12931 (path_range_query::internal_range_of_expr): Same.
12932 (path_range_query::range_of_expr): Same.
12933 (path_range_query::ssa_range_in_phi): Same.
12934 (path_range_query::range_defined_in_block): Same.
12935 (path_range_query::compute_ranges_in_phis): Same.
12936 (path_range_query::compute_ranges_in_block): Same.
12937 (path_range_query::add_to_imports): Same.
12938 (path_range_query::range_of_stmt): Same.
12939 * gimple-range-path.h: Same.
12940 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
12941 (gimple_infer_range::~side_effect_manager): Same.
12942 (gimple_infer_range::get_nonzero): Same.
12943 (gimple_infer_range::maybe_adjust_range): Same.
12944 (gimple_infer_range::add_range): Same.
12945 * gimple-range-infer.h: Same.
12946 * gimple-range-tests.cc: Same.
12947 * gimple-range-trace.cc (range_tracer::trailer): Same.
12948 (debug_seed_ranger): Same.
12949 * gimple-range-trace.h: Same.
12950 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
12951 (gimple_ranger::range_on_entry): Same.
12952 (gimple_ranger::range_on_exit): Same.
12953 (gimple_ranger::range_on_edge): Same.
12954 (gimple_ranger::fold_range_internal): Same.
12955 (gimple_ranger::range_of_stmt): Same.
12956 (gimple_ranger::prefill_name): Same.
12957 (gimple_ranger::prefill_stmt_dependencies): Same.
12958 (gimple_ranger::export_global_ranges): Same.
12959 (gimple_ranger::dump_bb): Same.
12960 * gimple-range.h: Same.
12961 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
12962 (memmodel_to_uhwi): Same.
12963 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
12964 (determine_value_range): Same.
12965 (record_nonwrapping_iv): Same.
12966 (infer_loop_bounds_from_signedness): Same.
12967 (scev_var_range_cant_overflow): Same.
12968 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
12969 * value-query.cc (range_query::range_on_edge): Same.
12970 (range_query::range_of_stmt): Same.
12971 (range_query::value_of_expr): Same.
12972 (range_query::value_on_edge): Same.
12973 (range_query::value_of_stmt): Same.
12974 (range_query::get_tree_range): Same.
12975 (update_global_range): Same.
12976 (get_range_global): Same.
12977 (gimple_range_global): Same.
12978 (global_range_query::range_of_expr): Same.
12979 (range_query::query_relation): Same.
12980 * value-query.h (gimple_range_global): Same.
12981 (update_global_range): Same.
12982 * vr-values.cc (vr_values::range_of_expr): Same.
12983 (bounds_of_var_in_loop): Same.
12984 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
12985 * vr-values.h (class vr_values): Same.
12986 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
12987
12988 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
12989
12990 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
12991 vrange allocator.
12992 (sbr_vector::grow): Same.
12993 (sbr_vector::set_bb_range): Same.
12994 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
12995 (sbr_sparse_bitmap::set_bb_range): Same.
12996 (block_range_cache::~block_range_cache): Same.
12997 (block_range_cache::set_bb_range): Same.
12998 (ssa_global_cache::ssa_global_cache): Same.
12999 (ssa_global_cache::~ssa_global_cache): Same.
13000 (ssa_global_cache::set_global_range): Same.
13001 * gimple-range-cache.h (block_range_cache): Same.
13002 (ssa_global_cache): Same.
13003 * gimple-range-edge.cc
13004 (gimple_outgoing_range::calc_switch_ranges): Same.
13005 * gimple-range-edge.h (gimple_outgoing_range): Same.
13006 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
13007 Same.
13008 (infer_range_manager::add_range): Same.
13009 * gimple-range-infer.h (class infer_range_manager): Same.
13010 * value-range.h (class irange_allocator): Rename to...
13011 (class vrange_allocator): ...this.
13012 (irange_allocator::irange_allocator): New.
13013 (vrange_allocator::vrange_allocator): New.
13014 (irange_allocator::~irange_allocator): New.
13015 (vrange_allocator::~vrange_allocator): New.
13016 (irange_allocator::get_memory): Rename to...
13017 (vrange_allocator::alloc): ...this.
13018 (vrange_allocator::alloc_vrange): Rename from...
13019 (irange_allocator::allocate): ...this.
13020 (vrange_allocator::alloc_irange): New.
13021
13022 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13023
13024 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
13025 vrange and convert range_op_handler function calls to use the
13026 identically named object.
13027 * gimple-range-fold.cc (gimple_range_operand1): Same.
13028 (gimple_range_operand2): Same.
13029 (fold_using_range::fold_stmt): Same.
13030 (fold_using_range::range_of_range_op): Same.
13031 (fold_using_range::range_of_builtin_ubsan_call): Same.
13032 (fold_using_range::relation_fold_and_or): Same.
13033 (fur_source::register_outgoing_edges): Same.
13034 * gimple-range-fold.h (gimple_range_handler): Remove.
13035 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
13036 (gimple_range_calc_op2): Same.
13037 (range_def_chain::get_def_chain): Same.
13038 (gori_compute::compute_operand_range): Same.
13039 (gori_compute::condexpr_adjust): Same.
13040 * gimple-range.cc (gimple_ranger::prefill_name): Same.
13041 (gimple_ranger::prefill_stmt_dependencies): Same.
13042 * range-op.cc (get_bool_state): Same.
13043 (class operator_equal): Add using clause.
13044 (class operator_not_equal): Same.
13045 (class operator_lt): Same.
13046 (class operator_le): Same.
13047 (class operator_gt): Same.
13048 (class operator_ge): Same.
13049 (class operator_plus): Same.
13050 (class operator_minus): Same.
13051 (class operator_mult): Same.
13052 (class operator_exact_divide): Same.
13053 (class operator_lshift): Same.
13054 (class operator_rshift): Same.
13055 (class operator_cast): Same.
13056 (class operator_logical_and): Same.
13057 (class operator_bitwise_and): Same.
13058 (class operator_logical_or): Same.
13059 (class operator_bitwise_or): Same.
13060 (class operator_bitwise_xor): Same.
13061 (class operator_trunc_mod): Same.
13062 (class operator_logical_not): Same.
13063 (class operator_bitwise_not): Same.
13064 (class operator_cst): Same.
13065 (class operator_identity): Same.
13066 (class operator_unknown): Same.
13067 (class operator_abs): Same.
13068 (class operator_negate): Same.
13069 (class operator_addr_expr): Same.
13070 (class pointer_or_operator): Same.
13071 (operator_plus::op1_range): Adjust for vrange.
13072 (operator_minus::op1_range): Same.
13073 (operator_mult::op1_range): Same.
13074 (operator_cast::op1_range): Same.
13075 (operator_bitwise_not::fold_range): Same.
13076 (operator_negate::fold_range): Same.
13077 (range_op_handler): Rename to...
13078 (get_handler): ...this.
13079 (range_op_handler::range_op_handler): New.
13080 (range_op_handler::fold_range): New.
13081 (range_op_handler::op1_range): New.
13082 (range_op_handler::op2_range): New.
13083 (range_op_handler::lhs_op1_relation): New.
13084 (range_op_handler::lhs_op2_relation): New.
13085 (range_op_handler::op1_op2_relation): New.
13086 (range_cast): Adjust for vrange.
13087 * range-op.h (range_op_handler): Remove function.
13088 (range_cast): Adjust for vrange.
13089 (class range_op_handler): New.
13090 (get_bool_state): Adjust for vrange.
13091 (empty_range_varying): Same.
13092 (relop_early_resolve): Same.
13093 * tree-data-ref.cc (compute_distributive_range): Same.
13094 * tree-vrp.cc (get_range_op_handler): Remove.
13095 (range_fold_binary_symbolics_p): Use range_op_handler class
13096 instead of get_range_op_handler.
13097 (range_fold_unary_symbolics_p): Same.
13098 (range_fold_binary_expr): Same.
13099 (range_fold_unary_expr): Same.
13100 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
13101
13102 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13103
13104 * gimple-range-fold.h (gimple_range_type): Check type before
13105 calling supports_type_p.
13106 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
13107 * value-query.cc (range_query::get_tree_range): Same.
13108 * value-range.cc (Value_Range::lower_bound): New.
13109 (Value_Range::upper_bound): New.
13110 (Value_Range::dump): New.
13111 * value-range.h (class Value_Range): New.
13112 (irange::supports_type_p): Do not check if type is non-zero.
13113
13114 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
13115
13116 * value-range-equiv.cc (value_range_equiv::set): New.
13117 * value-range-equiv.h (class value_range_equiv): Make set method
13118 virtual.
13119 Remove default bitmap argument from set method.
13120 * value-range.cc (vrange::contains_p): New.
13121 (vrange::singleton_p): New.
13122 (vrange::operator=): New.
13123 (vrange::operator==): New.
13124 (irange::fits_p): Move to .cc file.
13125 (irange::set_nonnegative): New.
13126 (unsupported_range::unsupported_range): New.
13127 (unsupported_range::set): New.
13128 (unsupported_range::type): New.
13129 (unsupported_range::set_undefined): New.
13130 (unsupported_range::set_varying): New.
13131 (unsupported_range::dump): New.
13132 (unsupported_range::union_): New.
13133 (unsupported_range::intersect): New.
13134 (unsupported_range::zero_p): New.
13135 (unsupported_range::nonzero_p): New.
13136 (unsupported_range::set_nonzero): New.
13137 (unsupported_range::set_zero): New.
13138 (unsupported_range::set_nonnegative): New.
13139 (unsupported_range::fits_p): New.
13140 (irange::set): Call irange::set_undefined.
13141 (irange::verify_range): Check discriminator field.
13142 (irange::dump): Dump [irange] marker.
13143 (irange::debug): Move to...
13144 (vrange::debug): ...here.
13145 (dump_value_range): Accept vrange.
13146 (debug): Same.
13147 * value-range.h (enum value_range_discriminator): New.
13148 (class vrange): New.
13149 (class unsupported_range): New.
13150 (struct vrange_traits): New.
13151 (is_a): New.
13152 (as_a): New.
13153 (class irange): Inherit from vrange.
13154 (dump_value_range): Adjust for vrange.
13155 (irange::kind): Rename to...
13156 (vrange::kind): ...this.
13157 (irange::varying_p): Rename to...
13158 (vrange::varying_p): ...this.
13159 (irange::undefined_p): Rename to...
13160 (vrange::undefined_p): ...this.
13161 (irange::irange): Set discriminator.
13162 (irange::union_): Convert to irange before passing to irange
13163 method.
13164 (irange::intersect): Same.
13165 (vrange::supports_type_p): New.
13166 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
13167 NULL bitmap argument to value_range_equiv::set.
13168 (vr_values::extract_range_basic): Same.
13169
13170 2022-06-01 Richard Biener <rguenther@suse.de>
13171
13172 PR tree-optimization/105763
13173 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
13174 Check gimple_range_ssa_p.
13175
13176 2022-05-31 Jason Merrill <jason@redhat.com>
13177
13178 * Makefile.in (TAGS): Look at libcpp/*.cc.
13179
13180 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
13181
13182 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
13183 Prefix mode names with E_.
13184
13185 2022-05-31 Alan Modra <amodra@gmail.com>
13186
13187 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
13188 spelling of DW_AT_namelist_item.
13189
13190 2022-05-31 Jakub Jelinek <jakub@redhat.com>
13191
13192 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
13193 allow var to be private in the outer context.
13194 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
13195 to build_outer_var_ref.
13196
13197 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13198
13199 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
13200 tieable with DImode on TARGET_64BIT, and SCmode tieable with
13201 V2SFmode, and DCmode with V2DFmode.
13202
13203 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13204
13205 PR rtl-optimization/101617
13206 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
13207 special case (indicated by negate_cc_compare_p) to generate a
13208 -1/0 mask using neg;sbb.
13209 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
13210 to generate an *x86_neg<mode>_ccc instruction.
13211 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
13212 generate a *x86_mov<mode>cc_0_m1_neg instruction.
13213
13214 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13215
13216 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
13217 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
13218 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
13219
13220 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
13221
13222 PR target/70321
13223 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
13224 DI mode equality/inequality using XOR here. Instead generate a
13225 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
13226 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
13227 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
13228 (general_scalar_chain::convert_compare): New function to convert
13229 scalar equality/inequality comparison into vector operations.
13230 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
13231 new convert_compare helper method.
13232 (convertible_comparion_p): Update to match doubleword COMPARE
13233 of two register, memory or integer constant operands.
13234 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
13235 Prototype/declare member function here.
13236 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
13237 only allow new doubleword modes for EQ and NE operators.
13238 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
13239 doubleword comparison into a pair of XORs followed by an IOR to
13240 set the (zero) flags register, optimizing the XORs if possible.
13241 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
13242 iterator; V_AVX is (currently) only used by ptest.
13243 (sse4_1 mode attribute): Update to support V1TI and V2TI.
13244
13245 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
13246
13247 * config/i386/i386.md: Remove constraints when used with
13248 const_int_operand, const0_operand, const_1_operand, constm1_operand,
13249 const8_operand, const128_operand, const248_operand, const123_operand,
13250 const2367_operand, const1248_operand, const359_operand,
13251 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
13252 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
13253 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
13254 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
13255 const_0_to_255_mul_8_operand, const_1_to_31_operand,
13256 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
13257 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
13258 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
13259 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
13260 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
13261 const_24_to_27_operand and const_28_to_31_operand.
13262 * config/i386/mmx.md: Ditto.
13263 * config/i386/sse.md: Ditto.
13264 * config/i386/subst.md: Ditto.
13265 * config/i386/sync.md: Ditto.
13266
13267 2022-05-30 Jan Beulich <jbeulich@suse.com>
13268
13269 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
13270 arguments.
13271
13272 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13273
13274 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
13275
13276 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
13277
13278 PR target/105599
13279 * config/darwin.h: Move versions-specific handling of multiply_defined
13280 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
13281
13282 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
13283
13284 PR other/82383
13285 * doc/sourcebuild.texi: Add entries for the c++tools,
13286 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
13287 and libsanitizer directories. Remove entry for boehm-gc.
13288 Fix alphabetization for libquadmath.
13289
13290 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
13291
13292 * config/avr/avr-mcus.def: Add device definitions.
13293 * doc/avr-mmcu.texi: Corresponding changes.
13294 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
13295 device prefix.
13296 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
13297 from leaking into cc1.
13298
13299 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
13300
13301 PR target/103722
13302 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
13303 is special) for various scenarios.
13304
13305 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
13306
13307 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
13308 describing this macro.
13309
13310 2022-05-27 Richard Biener <rguenther@suse.de>
13311
13312 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
13313
13314 2022-05-27 Martin Jambor <mjambor@suse.cz>
13315
13316 PR ipa/105639
13317 * ipa-prop.cc (propagate_controlled_uses): Check type of the
13318 constant before adding a LOAD reference.
13319
13320 2022-05-27 Jakub Jelinek <jakub@redhat.com>
13321
13322 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
13323 to OMP_CLAUSE_ENTER.
13324 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
13325 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
13326 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
13327 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
13328 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
13329 "to" instead of "enter".
13330 * tree-nested.cc (convert_nonlocal_omp_clauses,
13331 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
13332 OMP_CLAUSE_TO_DECLARE.
13333
13334 2022-05-27 Richard Biener <rguenther@suse.de>
13335
13336 PR tree-optimization/105726
13337 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
13338 Constrain array-of-flexarray case more.
13339
13340 2022-05-27 Jakub Jelinek <jakub@redhat.com>
13341
13342 PR sanitizer/105729
13343 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
13344 to (X &) z + w if -fsanitize=null during GENERIC folding.
13345
13346 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
13347
13348 * match.pd (match_zero_one_valued_p): New predicate.
13349 (mult @0 @1): Use zero_one_valued_p for optimization to the
13350 expression "bit_and @0 @1".
13351 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
13352 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
13353 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
13354 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
13355 Remove three redundant transforms obsoleted by the three above.
13356
13357 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
13358
13359 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
13360 to split a combined "and;cmp" sequence into "not;test".
13361
13362 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13363
13364 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
13365 (bswapsi2_internal): Revise the template and condition, and add
13366 detection code for preceding the same insn in order to omit a
13367 "SSAI 8" instruction of the latter.
13368 (bswapdi2): Suppress built-in insn expansion with the corresponding
13369 library call when optimizing for size.
13370
13371 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13372
13373 * config/xtensa/xtensa-protos.h
13374 (xtensa_expand_block_set_unrolled_loop,
13375 xtensa_expand_block_set_small_loop): New prototypes.
13376 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
13377 xtensa_expand_block_set_unrolled_loop,
13378 xtensa_expand_block_set_small_loop): New functions.
13379 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
13380 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
13381
13382 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13383
13384 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
13385 Make instruction counting more accurate, and simplify emitting insns.
13386
13387 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13388
13389 * config/xtensa/constraints.md (M, O): Use the macro.
13390 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
13391 sext_fldsz_operand): Ditto.
13392 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
13393 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
13394 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
13395 xtensa_expand_prologue): Ditto.
13396 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
13397
13398 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13399
13400 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
13401 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
13402 Ditto.
13403
13404 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
13405
13406 * gimple-range-cache.cc: Adjust comments.
13407 * gimple-range-infer.cc: Adjust comments.
13408 * gimple-range-infer.h: Adjust comments.
13409 * gimple-range.cc: Adjust comments.
13410
13411 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
13412
13413 * Makefile.in (OBJS): Use gimple-range-infer.o.
13414 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
13415 (ranger_cache::range_from_dom): Rename var side_effect to infer.
13416 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
13417 * gimple-range-cache.h: Include gimple-range-infer.h.
13418 (class ranger_cache): Adjust prototypes, use infer_range_manager.
13419 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
13420 (gimple_infer_range::*): Rename from stmt_side_effects.
13421 (infer_range_manager::*): Rename from side_effect_manager.
13422 * gimple-range-side-effect.cc: Rename.
13423 * gimple-range-side-effect.h: Rename.
13424 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
13425 (class gimple_infer_range): Rename from stmt_side_effects.
13426 (class infer_range_manager): Rename from side_effect_manager.
13427 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
13428 from register_side_effects.
13429 * gimple-range.h (register_inferred_ranges): Adjust prototype.
13430 * range-op.h: Adjust comment.
13431 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
13432 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
13433
13434 2022-05-25 Simon Cook <simon.cook@embecosm.com>
13435
13436 * config/riscv/arch-canonicalize: Only add mafd extension if
13437 base was rv32/rv64g.
13438
13439 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
13440
13441 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
13442
13443 2022-05-25 Jakub Jelinek <jakub@redhat.com>
13444
13445 PR sanitizer/105714
13446 * asan.cc (has_stmt_been_instrumented_p): For assignments which
13447 are both stores and loads, return true only if both destination
13448 and source have been instrumented.
13449
13450 2022-05-25 Martin Liska <mliska@suse.cz>
13451 Richard Biener <rguenther@suse.de>
13452
13453 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
13454 * params.opt (max-unswitch-level): Remove.
13455 * doc/invoke.texi (max-unswitch-level): Likewise.
13456 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
13457 gimplified expressions.
13458 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
13459 (tree_may_unswitch_on): Rename to ...
13460 (find_unswitching_predicates_for_bb): ... this and handle
13461 switch statements.
13462 (get_predicates_for_bb): Likewise.
13463 (set_predicates_for_bb): Likewise.
13464 (init_loop_unswitch_info): Likewise.
13465 (tree_ssa_unswitch_loops): Prepare stuff before calling
13466 tree_unswitch_single_loop.
13467 (tree_unswitch_single_loop): Rework the function using
13468 pre-computed predicates and with a per original loop cost model.
13469 (merge_last): New.
13470 (add_predicate_to_path): Likewise.
13471 (find_range_for_lhs): Likewise.
13472 (simplify_using_entry_checks): Rename to ...
13473 (evaluate_control_stmt_using_entry_checks): ... this, handle
13474 switch statements and improve simplifications using ranger.
13475 (simplify_loop_version): Rework using
13476 evaluate_control_stmt_using_entry_checks.
13477 (evaluate_bbs): New.
13478 (evaluate_loop_insns_for_predicate): Likewise.
13479 (tree_unswitch_loop): Adjust to allow switch statements and
13480 pass in the edge to unswitch.
13481 (clean_up_after_unswitching): New.
13482 (pass_tree_unswitch::execute): Pass down fun.
13483
13484 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
13485
13486 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
13487 counts for the epilog loop.
13488
13489 2022-05-24 Martin Sebor <msebor@redhat.com>
13490 Richard Biener <rguenther@suse.de>
13491
13492 PR middle-end/105604
13493 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
13494 (get_origin_and_offset_r): Remove null handling. Handle variable array
13495 sizes.
13496 (get_origin_and_offset): Handle null argument here. Simplify.
13497 (alias_offset): Update comment.
13498 * pointer-query.cc (field_at_offset): Update comment. Handle members
13499 of variable-length types.
13500
13501 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13502
13503 * target.def (vec_perm_const): Define new parameter op_mode and
13504 update doc.
13505 * doc/tm.texi: Regenerate.
13506 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
13507 vec_perm_const hook to add new parameter op_mode and return false
13508 if result and operand modes do not match.
13509 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
13510 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
13511 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
13512 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
13513 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
13514 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
13515 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
13516 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
13517 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
13518 prototype.
13519 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
13520 (ashrv2di3): Likewise.
13521 * optabs.cc (expand_vec_perm_const): Likewise.
13522 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
13523 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
13524 op_mode and pass it to vec_perm_const hook.
13525 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
13526 * match.pd (vec_perm X Y CST): Likewise.
13527 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
13528 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
13529 (vect_grouped_load_supported): Likewise.
13530 (vect_shift_permute_load_chain): Likewise.
13531 * tree-vect-generic.cc (lower_vec_perm): Likewise.
13532 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
13533 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
13534 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
13535 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
13536 (vect_transform_slp_perm_load): Likewise.
13537 (vectorizable_slp_permutation): Likewise.
13538 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
13539 (vectorizable_bswap): Likewise.
13540 (scan_store_can_perm_p): Likewise.
13541 (vect_gen_perm_mask_checked): Likewise.
13542
13543 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
13544
13545 PR target/104816
13546 * config/i386/i386.opt: Remove Undocumented.
13547 * doc/invoke.texi: Document -mcet-switch.
13548
13549 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
13550
13551 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
13552 * config/gcn/gcn-opts.h (enum gcn_isa): New.
13553 (TARGET_GCN3): Use enum gcn_isa.
13554 (TARGET_GCN3_PLUS): Likewise.
13555 (TARGET_GCN5): Likewise.
13556 (TARGET_GCN5_PLUS): Likewise.
13557 (TARGET_CDNA1): New.
13558 (TARGET_CDNA1_PLUS): New.
13559 (TARGET_CDNA2): New.
13560 (TARGET_CDNA2_PLUS): New.
13561 (TARGET_M0_LDS_LIMIT): New.
13562 (TARGET_PACKED_WORK_ITEMS): New.
13563 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
13564 (gcn_option_override): Recognise CDNA ISA variants.
13565 (gcn_omp_device_kind_arch_isa): Support gfx90a.
13566 (gcn_expand_prologue): Make m0 init optional.
13567 Add support for packed work items.
13568 (output_file_start): Support gfx90a.
13569 (gcn_hsa_declare_function_name): Support gfx90a metadata.
13570 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
13571 __CDNA2__.
13572 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
13573 (<su>mulsi3_highpart_imm): Likewise.
13574 (<su>mulsidi3): Likewise.
13575 (<su>mulsidi3_imm): Likewise.
13576 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
13577 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
13578 (main): Support gfx90a.
13579 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
13580 * config/gcn/t-omp-device: Add gfx90a isa.
13581
13582 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
13583
13584 * config.in: Regenerate.
13585 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
13586 (X_900): Delete.
13587 (X_906): Delete.
13588 (X_908): Delete.
13589 (S_FIJI): Delete.
13590 (S_900): Delete.
13591 (S_906): Delete.
13592 (S_908): Delete.
13593 (NO_XNACK): New macro.
13594 (NO_SRAM_ECC): New macro.
13595 (SRAMOPT): Keep only v4 variant.
13596 (HSACO3_SELECT_OPT): Delete.
13597 (DRIVER_SELF_SPECS): Delete.
13598 (ASM_SPEC): Remove LLVM 9 support.
13599 * config/gcn/gcn-valu.md
13600 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
13601 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
13602 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
13603 (print_operand_address): Remove assembler bug workaround.
13604 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
13605 (EF_AMDGPU_SRAM_ECC_V3): Delete.
13606 (SET_XNACK_ON): Delete v3 variants.
13607 (SET_XNACK_OFF): Delete v3 variants.
13608 (TEST_XNACK): Delete v3 variants.
13609 (SET_SRAM_ECC_ON): Delete v3 variants.
13610 (SET_SRAM_ECC_ANY): Delete v3 variants.
13611 (SET_SRAM_ECC_OFF): Delete v3 variants.
13612 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
13613 (TEST_SRAM_ECC_ANY): Delete v3 variants.
13614 (TEST_SRAM_ECC_ON): Delete v3 variants.
13615 (copy_early_debug_info): Remove v3 support.
13616 (main): Remove v3 support.
13617 * configure: Regenerate.
13618 * configure.ac: Replace all GCN feature checks with a version check.
13619
13620 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
13621
13622 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
13623 i.e. a double word negation of a zero extended operand, to
13624 neg;sbb.
13625
13626 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
13627
13628 PR tree-optimization/105668
13629 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
13630 V1TImode, just like V2DImode.
13631 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
13632 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
13633 (vcond_mask_v2div2di): Delete.
13634 (vcond_mask_v1tiv1ti): New define_expand.
13635
13636 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
13637
13638 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
13639 to strncmp for strings of length one.
13640
13641 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
13642
13643 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
13644 prefetch instructions.
13645 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
13646 Extensions.
13647 (RISCV_ATYPE_SI): New.
13648 (RISCV_ATYPE_DI): New.
13649 * config/riscv/riscv-ftypes.def (0): New.
13650 (1): New.
13651 * config/riscv/riscv.md (riscv_clean_<mode>): New.
13652 (riscv_flush_<mode>): New.
13653 (riscv_inval_<mode>): New.
13654 (riscv_zero_<mode>): New.
13655 (prefetch): New.
13656 (riscv_prefetchi_<mode>): New.
13657 * config/riscv/riscv-cmo.def: New file.
13658
13659 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
13660
13661 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
13662 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
13663 (MASK_ZICBOM): New.
13664 (MASK_ZICBOP): New.
13665 (TARGET_ZICBOZ): New.
13666 (TARGET_ZICBOM): New.
13667 (TARGET_ZICBOP): New.
13668 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
13669
13670 2022-05-24 David Malcolm <dmalcolm@redhat.com>
13671
13672 * tree-vect-slp-patterns.cc: Add "final" and "override" to
13673 vect_pattern::build impls as appropriate.
13674
13675 2022-05-24 David Malcolm <dmalcolm@redhat.com>
13676
13677 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
13678 implementations, removing redundant "virtual" as appropriate.
13679 * ipa-fnsummary.h: Likewise.
13680 * ipa-modref.cc: Likewise.
13681 * ipa-param-manipulation.cc: Likewise.
13682 * ipa-profile.cc: Likewise.
13683 * ipa-prop.h: Likewise.
13684 * ipa-pure-const.cc: Likewise.
13685 * ipa-reference.cc: Likewise.
13686 * ipa-sra.cc: Likewise.
13687 * symbol-summary.h: Likewise.
13688 * symtab-thunks.cc: Likewise.
13689
13690 2022-05-24 Martin Liska <mliska@suse.cz>
13691
13692 Revert:
13693 2022-05-24 Martin Liska <mliska@suse.cz>
13694
13695 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
13696 warning.
13697
13698 2022-05-24 Martin Liska <mliska@suse.cz>
13699
13700 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
13701 warning.
13702
13703 2022-05-24 Bruno Haible <bruno@clisp.org>
13704
13705 PR other/105527
13706 * doc/install.texi (Configuration): Add more details about --with-zstd.
13707 Document --with-zstd-include and --with-zstd-lib
13708
13709 2022-05-24 Richard Biener <rguenther@suse.de>
13710
13711 PR middle-end/105711
13712 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
13713 and use it.
13714 (extract_bit_field_1): Pass down the mode of op0 to
13715 extract_bit_field_as_subreg.
13716
13717 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
13718
13719 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
13720 fmv_cost.
13721 (rocket_tune_info): Add default fmv_cost 8.
13722 (sifive_7_tune_info): Ditto.
13723 (thead_c906_tune_info): Ditto.
13724 (optimize_size_tune_info): Ditto.
13725 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
13726
13727 2022-05-24 Jakub Jelinek <jakub@redhat.com>
13728
13729 PR c/105378
13730 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
13731 builtin.
13732 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
13733 clause but no depend clauses.
13734 * omp-expand.cc (expand_taskwait_call): Use
13735 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
13736 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
13737
13738 2022-05-24 Richard Biener <rguenther@suse.de>
13739
13740 PR tree-optimization/100221
13741 * tree-ssa-dse.cc (contains_phi_arg): New function.
13742 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
13743
13744 2022-05-24 Richard Biener <rguenther@suse.de>
13745
13746 PR tree-optimization/105629
13747 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
13748 a sign-extending conversion.
13749
13750 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
13751
13752 PR target/105627
13753 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
13754 be a debug insn.
13755 (union_uses): Skip debug use_insn.
13756
13757 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
13758
13759 * config/riscv/predicates.md (const_0_operand): Remove
13760 const_double.
13761 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
13762 CONST_DOUBLE.
13763 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
13764
13765 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
13766
13767 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
13768 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
13769 (cpu_indicator_init): Handle Zhaoxin processors.
13770 * common/config/i386/i386-common.cc: Add lujiazui.
13771 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
13772 VENDOR_ZHAOXIN.
13773 (enum processor_types): Add ZHAOXIN_FAM7H.
13774 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
13775 * config.gcc: Add lujiazui.
13776 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
13777 Signatures for zhaoxin
13778 (signature_SHANGHAI_ecx): Ditto.
13779 (signature_SHANGHAI_edx): Ditto.
13780 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
13781 -march=native recognize lujiazui processors.
13782 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
13783 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
13784 * config/i386/i386.h (enum processor_type): Ditto.
13785 * config/i386/i386.md: Add lujiazui.
13786 * config/i386/x86-tune-costs.h (struct processor_costs): Add
13787 lujiazui costs.
13788 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
13789 (ix86_adjust_cost): Ditto.
13790 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
13791 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
13792 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
13793 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
13794 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
13795 (X86_TUNE_MOVX): Ditto.
13796 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
13797 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
13798 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
13799 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
13800 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
13801 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
13802 (X86_TUNE_USE_LEAVE): Ditto.
13803 (X86_TUNE_PUSH_MEMORY): Ditto.
13804 (X86_TUNE_LCP_STALL): Ditto.
13805 (X86_TUNE_USE_INCDEC): Ditto.
13806 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
13807 (X86_TUNE_OPT_AGU): Ditto.
13808 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
13809 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
13810 (X86_TUNE_USE_SAHF): Ditto.
13811 (X86_TUNE_USE_BT): Ditto.
13812 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
13813 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
13814 (X86_TUNE_AVOID_MFENCE): Ditto.
13815 (X86_TUNE_EXPAND_ABS): Ditto.
13816 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
13817 (X86_TUNE_USE_FFREEP): Ditto.
13818 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
13819 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
13820 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
13821 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
13822 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
13823 * doc/extend.texi: Add details about lujiazui.
13824 * doc/invoke.texi: Add details about lujiazui.
13825 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
13826
13827 2022-05-23 Martin Liska <mliska@suse.cz>
13828
13829 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
13830
13831 2022-05-23 Richard Biener <rguenther@suse.de>
13832
13833 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
13834 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
13835
13836 2022-05-23 Richard Biener <rguenther@suse.de>
13837
13838 * gimple-expr.cc (is_gimple_condexpr): Remove.
13839 * gimple-expr.h (is_gimple_condexpr): Likewise.
13840 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
13841 * tree-if-conv.cc (set_bb_predicate): Likewie.
13842 (add_to_predicate_list): Likewise.
13843 (gen_phi_arg_condition): Likewise.
13844 (predicate_scalar_phi): Likewise.
13845 (predicate_statements): Likewise.
13846
13847 2022-05-23 Richard Biener <rguenther@suse.de>
13848
13849 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
13850 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
13851 as is_gimple_val.
13852 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
13853 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
13854 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
13855 Build the condition of the COND_EXPR separately.
13856 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
13857 * tree-vect-generic.cc (expand_vector_condition): Likewise.
13858 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
13859 Likewise.
13860 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
13861 * tree-vect-patterns.cc: Add comment indicating we are
13862 building invalid COND_EXPRs and why.
13863 * omp-expand.cc (expand_omp_simd): Gimplify the condition
13864 to the COND_EXPR separately.
13865 (expand_omp_atomic_cas): Note part that should be unreachable
13866 now.
13867 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
13868 condition for valid replacements.
13869 * tree-if-conv.cc (predicate_bbs): Simulate previous
13870 re-folding of the condition in folded COND_EXPRs which
13871 is necessary because of unfolded GIMPLE_CONDs in the IL
13872 as in for example gcc.dg/fold-bopcond-1.c.
13873 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
13874 Handle that the comparison is now in the def stmt of
13875 the select operand. Required by gcc.dg/pr104526.c.
13876
13877 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
13878
13879 PR fortran/104949
13880 * langhooks-def.h (lhd_omp_array_size): New.
13881 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
13882 (LANG_HOOKS_DECLS): Add it.
13883 * langhooks.cc (lhd_omp_array_size): New.
13884 * langhooks.h (struct lang_hooks_for_decls): Add hook.
13885 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
13886 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
13887
13888 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
13889
13890 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
13891 XOR/IOR case. Account for two instructions for double-word
13892 operations. In case of vector pandn, account for single
13893 instruction. Likewise for integer andn with TARGET_BMI.
13894 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
13895 <case NEG>: Double-word negation requires 3 instructions.
13896
13897 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
13898
13899 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
13900 Fix "K" extension prefix to be placed before "J".
13901 * config/riscv/arch-canonicalize: Likewise.
13902
13903 2022-05-23 liuhongt <hongtao.liu@intel.com>
13904
13905 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
13906 <-> mask cost from 5 to 6.
13907 (icelake_cost): Ditto.
13908
13909 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
13910
13911 * config/aarch64/aarch64.md
13912 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
13913 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
13914 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
13915 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
13916 (one_cmpl_<optab><mode>2): Likewise.
13917 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
13918 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
13919 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
13920 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
13921 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
13922 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
13923 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
13924 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
13925 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
13926 (rolsi3_insn_uxtw): New pattern.
13927 * config/aarch64/iterators.md (SHIFT): Add rotate left.
13928 (SHIFT_no_rotate): Add new iterator.
13929 (SHIFT:shift): Print rotate left as ror.
13930 (is_rotl): Add test for left rotate.
13931
13932 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
13933
13934 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
13935 processing. Add support for architectural extensions.
13936 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
13937 AARCH64_CPU_DEFAULT_FLAGS.
13938 (TARGET_CPU_NBITS): Remove.
13939 (TARGET_CPU_MASK): Remove.
13940 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
13941 (get_tune_cpu): Assert CPU is always valid.
13942 (get_arch): Assert architecture is always valid.
13943 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
13944 (aarch64_option_restore): Remove unnecessary checks on tune.
13945
13946 2022-05-20 David Malcolm <dmalcolm@redhat.com>
13947
13948 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
13949 "FINAL" and "OVERRIDE" with "final" and "override".
13950 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
13951 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
13952 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
13953 * diagnostic-path.h: Likewise.
13954 * digraph.cc: Likewise.
13955 * gcc-rich-location.h: Likewise.
13956 * gimple-array-bounds.cc: Likewise.
13957 * gimple-loop-versioning.cc: Likewise.
13958 * gimple-range-cache.cc: Likewise.
13959 * gimple-range-cache.h: Likewise.
13960 * gimple-range-fold.cc: Likewise.
13961 * gimple-range-fold.h: Likewise.
13962 * gimple-range-tests.cc: Likewise.
13963 * gimple-range.h: Likewise.
13964 * gimple-ssa-evrp.cc: Likewise.
13965 * input.cc: Likewise.
13966 * json.h: Likewise.
13967 * read-rtl-function.cc: Likewise.
13968 * tree-complex.cc: Likewise.
13969 * tree-diagnostic-path.cc: Likewise.
13970 * tree-ssa-ccp.cc: Likewise.
13971 * tree-ssa-copy.cc: Likewise.
13972 * tree-vrp.cc: Likewise.
13973 * value-query.h: Likewise.
13974 * vr-values.h: Likewise.
13975
13976 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
13977
13978 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
13979 target_memcpy_rect_async to omp_runtime_apis array.
13980
13981 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
13982
13983 * doc/sourcebuild.texi (Decimal floating point attributes): Document
13984 dfp_bid effective-target.
13985
13986 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
13987
13988 * config/aarch64/aarch64.cc
13989 (aarch64_split_128bit_move): Handle DFP modes.
13990 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
13991 (aarch64_classify_address): Likewise.
13992 (aarch64_legitimize_address_displacement): Likewise.
13993 (aarch64_reinterpret_float_as_int): Likewise.
13994 (aarch64_float_const_zero_rtx_p): Likewise.
13995 (aarch64_can_const_movi_rtx_p): Likewise.
13996 (aarch64_anchor_offset): Likewise.
13997 (aarch64_secondary_reload): Likewise.
13998 (aarch64_rtx_costs): Likewise.
13999 (aarch64_legitimate_constant_p): Likewise.
14000 (aarch64_gimplify_va_arg_expr): Likewise.
14001 (aapcs_vfp_sub_candidate): Likewise.
14002 (aarch64_vfp_is_call_or_return_candidate): Likewise.
14003 (aarch64_output_scalar_simd_mov_immediate): Likewise.
14004 (aarch64_gen_adjusted_ldpstp): Likewise.
14005 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
14006 * config/aarch64/aarch64.md
14007 (movsf_aarch64): Use SFD iterator and rename into
14008 mov<mode>_aarch64.
14009 (movdf_aarch64): Use DFD iterator and rename into
14010 mov<mode>_aarch64.
14011 (movtf_aarch64): Use TFD iterator and rename into
14012 mov<mode>_aarch64.
14013 (split pattern for move TF mode): Use TFD iterator.
14014 * config/aarch64/iterators.md
14015 (GPF_TF_F16_MOV): Add DFP modes.
14016 (SFD, DFD, TFD): New iterators.
14017 (GPF_TF): Add DFP modes.
14018 (TX, DX, DX2): Likewise.
14019
14020 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
14021
14022 * configure: Regenerate.
14023
14024 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
14025
14026 PR middle-end/98865
14027 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
14028 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
14029 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
14030
14031 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
14032
14033 * config/rs6000/rs6000-builtins.def: Rephrase
14034 to remove RS6000_BTC_SPECIAL from comment.
14035 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
14036 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
14037 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
14038 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
14039 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
14040 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
14041 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
14042 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
14043 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
14044 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
14045 RS6000_BTM_ALWAYS): Delete.
14046
14047 2022-05-19 Richard Biener <rguenther@suse.de>
14048
14049 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
14050 computation of the new value.
14051
14052 2022-05-19 Richard Biener <rguenther@suse.de>
14053
14054 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
14055 (add_to_value): Use get_expression_id.
14056 (bitmap_insert_into_set): Likewise.
14057 (bitmap_value_insert_into_set): Likewise.
14058
14059 2022-05-19 David Malcolm <dmalcolm@redhat.com>
14060
14061 * doc/invoke.texi (-fanalyzer-checker=): Add
14062 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
14063 the list of analyzer warnings disabled by
14064 -fanalyzer-checker=taint.
14065
14066 2022-05-19 Jakub Jelinek <jakub@redhat.com>
14067
14068 PR debug/105630
14069 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
14070 global vars without symtab node even when they have DECL_RTL
14071 set.
14072
14073 2022-05-19 Jakub Jelinek <jakub@redhat.com>
14074
14075 PR c/105635
14076 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
14077 doesn't have pointer or reference type.
14078
14079 2022-05-18 Marek Polacek <polacek@redhat.com>
14080
14081 PR c/105131
14082 * doc/invoke.texi: Document -Wenum-int-mismatch.
14083
14084 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
14085
14086 * config/i386/gnu-user-common.h (defined): Only define
14087 TARGET_CAN_SPLIT_STACK for glibc targets.
14088 * config/i386/gnu.h (defined): Ditto.
14089
14090 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
14091
14092 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
14093 is wider than word_mode, a multiplication costs three word_mode
14094 multiplications and two word_mode additions.
14095
14096 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
14097
14098 * config/i386/i386.md (define_split): Split *andsi_1
14099 and *andn_si_ccno after reload with -Oz.
14100
14101 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
14102
14103 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
14104 Output reason for failure to dump file.
14105 (scop_detection::harmful_loop_in_region): Likewise.
14106 (scop_detection::graphite_can_represent_expr): Likewise.
14107 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
14108 (scop_detection::stmt_simple_for_scop_p): Likewise.
14109 (print_sese_loop_numbers): New function.
14110 (scop_detection::add_scop): Use from here.
14111
14112 2022-05-18 liuhongt <hongtao.liu@intel.com>
14113
14114 PR middle-end/103462
14115 * match.pd (bitwise_induction_p): New match.
14116 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
14117 Declare.
14118 (analyze_and_compute_bitwise_induction_effect): New function.
14119 (enum bit_op_kind): New enum.
14120 (final_value_replacement_loop): Enhanced to handle bitwise
14121 induction.
14122
14123 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
14124
14125 PR target/95737
14126 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
14127
14128 2022-05-18 liuhongt <hongtao.liu@intel.com>
14129
14130 PR target/104375
14131 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
14132 define_insn.
14133
14134 2022-05-18 liuhongt <hongtao.liu@intel.com>
14135
14136 PR target/104610
14137 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
14138 for QImode when code is EQ or NE.
14139 * config/i386/i386.md (cbranchoi4): New expander.
14140
14141 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
14142 Segher Boessenkool <segher@kernel.crashing.org>
14143
14144 PR target/105556
14145 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
14146 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
14147 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
14148 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
14149 Update other operands accordingly.
14150
14151 2022-05-17 Marek Polacek <polacek@redhat.com>
14152
14153 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
14154
14155 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
14156
14157 PR target/99685
14158 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
14159 register count when not splitting IEEE 128-bit Complex.
14160
14161 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
14162
14163 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
14164 target inside target if inner is reverse offload.
14165
14166 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
14167
14168 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
14169 * config/nvptx/mkoffload.cc (process): Likewise.
14170
14171 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
14172
14173 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
14174 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
14175 (non_null_ref::~non_null_ref): Delete.
14176 (non_null_ref::set_nonnull): Delete.
14177 (non_null_ref::non_null_deref_p): Delete.
14178 (non_null_ref::process_name): Delete.
14179 (ranger_cache::ranger_cache): Initialize m_exit object.
14180 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
14181 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
14182 (ranger_cache::update_to_nonnull): Delete.
14183 (non_null_loadstore): Delete.
14184 (ranger_cache::block_apply_nonnull): Delete.
14185 (ranger_cache::apply_side_effects): New.
14186 * gimple-range-cache.h (class non_null_ref): Delete.
14187 (non_null_ref::adjust_range): Delete.
14188 (class ranger_cache): Adjust prototypes, add side effect manager.
14189 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
14190 side effect manager for queries.
14191 (path_range_query::adjust_for_non_null_uses): Ditto.
14192 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
14193 * gimple-range-side-effect.cc: New.
14194 * gimple-range-side-effect.h: New.
14195 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
14196 (gimple_ranger::range_of_expr): Check def block for override value.
14197 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
14198 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
14199 (gimple_ranger::register_side_effects): Call apply_side_effects.
14200 (enable_ranger): Update contructor.
14201 * gimple-range.h (class gimple_ranger): Update prototype.
14202 (enable_ranger): Update prototype.
14203 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
14204
14205 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
14206
14207 PR c++/105169
14208 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
14209 * varasm.cc (switch_to_comdat_section): New
14210 (handle_vtv_comdat_section): Call switch_to_comdat_section.
14211 * varasm.h: Declare switch_to_comdat_section.
14212
14213 2022-05-17 Richard Biener <rguenther@suse.de>
14214
14215 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
14216 not clear bb->aux of the copied blocks.
14217
14218 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
14219
14220 PR tree-optimization/105458
14221 * value-relation.cc (path_oracle::register_relation): Merge, then check
14222 for equivalence.
14223
14224 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
14225
14226 PR target/105624
14227 Revert:
14228 * config/i386/i386.md: Remove constraints when used with
14229 const_int_operand, const0_operand, const_1_operand, constm1_operand,
14230 const8_operand, const128_operand, const248_operand, const123_operand,
14231 const2367_operand, const1248_operand, const359_operand,
14232 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
14233 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
14234 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
14235 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
14236 const_0_to_255_mul_8_operand, const_1_to_31_operand,
14237 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
14238 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
14239 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
14240 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
14241 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
14242 const_24_to_27_operand and const_28_to_31_operand.
14243 * config/i386/mmx.md: Ditto.
14244 * config/i386/sse.md: Ditto.
14245 * config/i386/subst.md: Ditto.
14246 * config/i386/sync.md: Ditto.
14247
14248 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
14249
14250 * diagnostic.cc: Don't advise to call 'abort' instead of
14251 'internal_error'.
14252 * system.h: Advise to call 'internal_error' instead of 'abort' or
14253 'fancy_abort'.
14254
14255 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
14256
14257 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
14258 a reference to a variable which does not exist.
14259 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
14260 in comment.
14261
14262 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
14263
14264 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
14265 (isl_id_for_parameter): ... this new function name.
14266 (build_scop_context): Adjust function use.
14267
14268 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
14269
14270 PR target/105602
14271 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
14272 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
14273
14274 2022-05-17 Jakub Jelinek <jakub@redhat.com>
14275
14276 * tree-core.h (enum omp_clause_depend_kind): Add
14277 OMP_CLAUSE_DEPEND_INOUTSET.
14278 * tree-pretty-print.cc (dump_omp_clause): Handle
14279 OMP_CLAUSE_DEPEND_INOUTSET.
14280 * gimplify.cc (gimplify_omp_depend): Likewise.
14281 * omp-low.cc (lower_depend_clauses): Likewise.
14282
14283 2022-05-17 Jakub Jelinek <jakub@redhat.com>
14284
14285 PR target/105613
14286 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
14287 andv4si3 only for EQ, for NE use iorv4si3 instead.
14288
14289 2022-05-17 Richard Biener <rguenther@suse.de>
14290
14291 PR tree-optimization/105618
14292 * tree-ssa-sink.cc (statement_sink_location): For virtual
14293 PHI uses ignore those defining the used virtual operand.
14294
14295 2022-05-17 Jakub Jelinek <jakub@redhat.com>
14296
14297 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
14298 hanlde -> handle. Fix up comment formatting.
14299
14300 2022-05-17 liuhongt <hongtao.liu@intel.com>
14301
14302 PR target/105033
14303 * config/i386/sse.md (*vec_concatv4si): Extend to ..
14304 (*vec_concat<mode>): .. V16QI and V8HImode.
14305 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
14306 (*vec_concatv8hi_permt2): Ditto.
14307
14308 2022-05-17 liuhongt <hongtao.liu@intel.com>
14309
14310 PR tree-optimization/105591
14311 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
14312 vec_perm_expr index.
14313
14314 2022-05-16 Jason Merrill <jason@redhat.com>
14315
14316 PR c/105492
14317 * attribs.cc (decl_attributes): Fix broken typedefs here.
14318
14319 2022-05-16 David Malcolm <dmalcolm@redhat.com>
14320
14321 PR analyzer/105103
14322 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
14323 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
14324 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
14325 -Wanalyzer-va-list-use-after-va-end.
14326
14327 2022-05-16 Richard Biener <rguenther@suse.de>
14328
14329 * gimple-match.h (gimple_build): Move code_helper overloads ...
14330 * gimple-fold.h (gimple_build): ... here.
14331 (gimple_build): Transition to new worker API. Provide
14332 overloads from sequence-based API.
14333 (gimple_convert): Likewise.
14334 (gimple_convert_to_ptrofftype): Likewise.
14335 (gimple_build_vector_from_val): Likewise.
14336 (gimple_build_vector): Likewise.
14337 (gimple_build_round_up): Likewise.
14338 * gimple-fold.cc (gimple_build_insert_seq): New helper.
14339 (gimple_build): Use it. Transition combined_fn and code_helper
14340 API parts.
14341 (gimple_convert): Transition to new worker API.
14342 (gimple_convert_to_ptrofftype): Likewise.
14343 (gimple_build_vector_from_val): Likewise.
14344 (gimple_build_vector): Likewise.
14345 (gimple_build_round_up): Likewise.
14346
14347 2022-05-16 Richard Biener <rguenther@suse.de>
14348
14349 * gimple-match.h (code_helper): Move class ...
14350 * tree.h (code_helper): ... here.
14351
14352 2022-05-16 Martin Liska <mliska@suse.cz>
14353
14354 * opts-global.cc (write_langs): Add comment.
14355
14356 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
14357
14358 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
14359 instead of a bitwise negation.
14360 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
14361
14362 2022-05-16 Martin Liska <mliska@suse.cz>
14363
14364 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
14365 (decls_mismatched_attributes): Likewise.
14366 * builtins.cc (c_strlen): Likewise.
14367 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
14368 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
14369 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
14370 (aarch64_init_simd_builtin_types): Likewise.
14371 (aarch64_init_builtin_rsqrt): Likewise.
14372 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
14373 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
14374 (arm_init_simd_builtin_types): Likewise.
14375 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
14376 (c_prefix): Likewise.
14377 (main): Likewise.
14378 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
14379 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
14380 * config/gcn/mkoffload.cc (process_obj): Likewise.
14381 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
14382 (fold_builtin_cpu): Likewise.
14383 * config/m32c/m32c.cc (PUSHM_N): Likewise.
14384 * config/nvptx/mkoffload.cc (process): Likewise.
14385 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
14386 * config/s390/s390.cc (NR_C_MODES): Likewise.
14387 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
14388 (create_insn_code_compression_table): Likewise.
14389 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
14390 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
14391 * dwarf2out.cc (ARRAY_SIZE): Likewise.
14392 * genhooks.cc (emit_documentation): Likewise.
14393 (emit_init_macros): Likewise.
14394 * gimple-ssa-sprintf.cc (format_floating): Likewise.
14395 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
14396 * godump.cc (keyword_hash_init): Likewise.
14397 * hash-table.cc (hash_table_higher_prime_index): Likewise.
14398 * input.cc (for_each_line_table_case): Likewise.
14399 * ipa-free-lang-data.cc (free_lang_data): Likewise.
14400 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
14401 * optc-save-gen.awk: Likewise.
14402 * spellcheck.cc (test_metric_conditions): Likewise.
14403 * tree-vect-slp-patterns.cc (sizeof): Likewise.
14404 (ARRAY_SIZE): Likewise.
14405 * tree.cc (build_common_tree_nodes): Likewise.
14406
14407 2022-05-16 Martin Liska <mliska@suse.cz>
14408
14409 * opts-global.cc (write_langs): Allocate at least one byte.
14410
14411 2022-05-16 Richard Biener <rguenther@suse.de>
14412
14413 * match.pd (A cmp B ? A : B -> min/max): New patterns
14414 carried over from fold_cond_expr_with_comparison.
14415
14416 2022-05-16 liuhongt <hongtao.liu@intel.com>
14417
14418 PR target/105587
14419 * config/i386/i386-expand.cc
14420 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
14421 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
14422
14423 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
14424
14425 * config/i386/i386.md: Remove constraints when used with
14426 const_int_operand, const0_operand, const_1_operand, constm1_operand,
14427 const8_operand, const128_operand, const248_operand, const123_operand,
14428 const2367_operand, const1248_operand, const359_operand,
14429 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
14430 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
14431 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
14432 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
14433 const_0_to_255_mul_8_operand, const_1_to_31_operand,
14434 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
14435 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
14436 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
14437 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
14438 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
14439 const_24_to_27_operand and const_28_to_31_operand.
14440 * config/i386/mmx.md: Ditto.
14441 * config/i386/sse.md: Ditto.
14442 * config/i386/subst.md: Ditto.
14443 * config/i386/sync.md: Ditto.
14444
14445 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
14446 Uroš Bizjak <ubizjak@gmail.com>
14447
14448 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
14449 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
14450 by a pshufd and pand.
14451 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
14452 vector equality as a V2DImode vector comparison (see above),
14453 followed by a pshufd and pand.
14454
14455 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
14456
14457 PR tree-optimization/83907
14458 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
14459 for memset with an constant char value.
14460 (handle_store): Improved handling of stores with a first byte
14461 of zero, but not storing_all_zeros_p.
14462
14463 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
14464 Manolis Tsamis <manolis.tsamis@vrull.eu>
14465
14466 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
14467 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
14468 * doc/sourcebuild.texi: add documentation for RISC-V specific
14469 test target keywords
14470
14471 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14472
14473 PR tree-optimization/105597
14474 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
14475 of the lhs and make sure it is not undefined.
14476
14477 2022-05-13 Sebastian Pop <spop@amazon.com>
14478
14479 PR target/105162
14480 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
14481 of str array.
14482 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
14483 memmodel_from_int and handle MEMMODEL_SYNC_*.
14484 (DEF0): Add __aarch64_*_sync functions.
14485
14486 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14487
14488 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
14489 enumerated values.
14490 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
14491 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
14492 new VREL enumerated values.
14493 (*::lhs_op2_relation): Ditto.
14494 (*::op1_op2_relation): Ditto.
14495 (*::fold_range): Use new VREL enumerated values.
14496 (minus_op1_op2_relation_effect): Ditto.
14497 (range_relational_tests): Ditto.
14498 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
14499 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
14500 relation_kind.
14501 (*_op1_op2_relation): Return relation_kind.
14502 (relop_early_resolve): Use VREL_UNDEFINED.
14503 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
14504 * value-relation.cc (VREL_LAST): Change enumerated value.
14505 (vrel_range_assert): Delete.
14506 (print_relation): Remove range assert.
14507 (rr_negate_table): Adjust table to use new enumerated values..
14508 (relation_negate): Remove range assert.
14509 (rr_swap_table): Adjust.
14510 (relation_swap): Remove range assert.
14511 (rr_intersect_table): Adjust.
14512 (relation_intersect): Remove range assert.
14513 (rr_union_table): Adjust.
14514 (relation_union): Remove range assert.
14515 (rr_transitive_table): Adjust.
14516 (relation_transitive): Remove range assert.
14517 (equiv_oracle::query_relation): Use new VREL enumerated values.
14518 (equiv_oracle::register_relation): Ditto.
14519 (relation_oracle::register_stmt): Ditto.
14520 (dom_oracle::set_one_relation): Ditto.
14521 (dom_oracle::register_transitives): Ditto.
14522 (dom_oracle::query_relation): Ditto.
14523 (path_oracle::register_relation): Ditto.
14524 (path_oracle::query_relation): Ditto.
14525 * value-relation.h (enum relation_kind_t): New relation_kind.
14526 (*_op1_op2_relation): Adjust prototypes.
14527
14528 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14529
14530 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
14531 * value-range.cc (irange::legacy_verbose_union_): Add return value.
14532 (irange::irange_single_pair_union): New.
14533 (irange::irange_union): Add return value.
14534 * value-range.h (class irange): Adjust prototypes.
14535
14536 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14537
14538 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
14539 (irange::irange_contains_p): New.
14540 (irange::irange_intersect): Add return value.
14541 * value-range.h (class irange): Adjust prototypes.
14542
14543 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14544
14545 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
14546 had_global value instead.
14547
14548 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14549
14550 PR tree-optimization/104547
14551 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
14552 the op1/op2 relation to the relation call.
14553 * range-op.cc (*::lhs_op1_relation): Add param.
14554 (*::lhs_op2_relation): Ditto.
14555 (operator_minus::lhs_op1_relation): New.
14556 (range_relational_tests): Add relation param.
14557 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
14558
14559 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14560
14561 * gimple-range.cc (gimple_ranger::register_side_effects): First check
14562 if the DEF should be exported as a global.
14563 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
14564 which will export globals.
14565 (execute_ranger_vrp): Remove call to export_global_ranges.
14566
14567 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14568
14569 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
14570
14571 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
14572
14573 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
14574 worlist truncated.
14575 (ranger_cache::entry_range): Add rfd_mode parameter.
14576 (ranger_cache::exit_range): Ditto.
14577 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
14578 (ranger_cache::range_of_expr): Adjust call to entry_range.
14579 (ranger_cache::range_on_edge): Split to edge_range and call.
14580 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
14581 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
14582 mutiple predecessors.
14583 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
14584 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
14585 prototypes.
14586
14587 2022-05-13 Alexandre Oliva <oliva@adacore.com>
14588
14589 * gimple-harden-conditionals.cc: Include sbitmap.h.
14590 (pass_harden_conditional_branches::execute): Skip new blocks.
14591 (pass_harden_compares::execute): Likewise.
14592
14593 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
14594
14595 PR target/105463
14596 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
14597 mve_memory_operand.
14598 (*movmisalign<mode>_mve_load): Likewise.
14599 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
14600 form...
14601 (@movmisalign<mode>): ... thus. Use generic predicates and then
14602 rework operands if they are not valid. For MVE rework to a
14603 narrower element size if the alignment is not high enough.
14604
14605 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
14606
14607 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
14608 when there is no write-back. Fix use when strict is true.
14609
14610 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14611
14612 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
14613 definition.
14614
14615 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14616
14617 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
14618 extzvsi_internal): Rename from extv, extv_internal, extzv and
14619 extzv_internal, respectively.
14620
14621 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
14622
14623 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
14624 is the same on the LHS and RHS before rewriting one with the model
14625 of the other.
14626
14627 2022-05-13 Richard Biener <rguenther@suse.de>
14628
14629 * gimple-fold.cc (gimple_build): Adjust for new
14630 main API.
14631 * gimple-fold.h (gimple_build): New main APIs with
14632 iterator, insert direction and iterator update.
14633 (gimple_build): New forwarder template.
14634 (clear_padding_type_may_have_padding_p): Remove.
14635 (clear_type_padding_in_mask): Likewise.
14636 (arith_overflowed_p): Likewise.
14637 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
14638 (clear_type_padding_in_mask): Likewise.
14639 (arith_overflowed_p): Likewise.
14640 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
14641 (gimplify_build2): Likewise.
14642 (gimplify_build1): Likewise.
14643 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
14644 compare stmt.
14645 * gengtype.cc (open_base_files): Re-order includes.
14646 * builtins.cc: Re-order gimple-fold.h include.
14647 * calls.cc: Likewise.
14648 * cgraphbuild.cc: Likewise.
14649 * cgraphunit.cc: Likewise.
14650 * config/rs6000/rs6000-builtin.cc: Likewise.
14651 * config/rs6000/rs6000-call.cc: Likewise.
14652 * config/rs6000/rs6000.cc: Likewise.
14653 * config/s390/s390.cc: Likewise.
14654 * expr.cc: Likewise.
14655 * fold-const.cc: Likewise.
14656 * function-tests.cc: Likewise.
14657 * gimple-match-head.cc: Likewise.
14658 * gimple-range-fold.cc: Likewise.
14659 * gimple-ssa-evrp-analyze.cc: Likewise.
14660 * gimple-ssa-evrp.cc: Likewise.
14661 * gimple-ssa-sprintf.cc: Likewise.
14662 * gimple-ssa-warn-access.cc: Likewise.
14663 * gimplify.cc: Likewise.
14664 * graphite-isl-ast-to-gimple.cc: Likewise.
14665 * ipa-cp.cc: Likewise.
14666 * ipa-devirt.cc: Likewise.
14667 * ipa-prop.cc: Likewise.
14668 * omp-low.cc: Likewise.
14669 * pointer-query.cc: Likewise.
14670 * range-op.cc: Likewise.
14671 * tree-cfg.cc: Likewise.
14672 * tree-if-conv.cc: Likewise.
14673 * tree-inline.cc: Likewise.
14674 * tree-object-size.cc: Likewise.
14675 * tree-ssa-ccp.cc: Likewise.
14676 * tree-ssa-dom.cc: Likewise.
14677 * tree-ssa-forwprop.cc: Likewise.
14678 * tree-ssa-ifcombine.cc: Likewise.
14679 * tree-ssa-loop-ivcanon.cc: Likewise.
14680 * tree-ssa-math-opts.cc: Likewise.
14681 * tree-ssa-pre.cc: Likewise.
14682 * tree-ssa-propagate.cc: Likewise.
14683 * tree-ssa-reassoc.cc: Likewise.
14684 * tree-ssa-sccvn.cc: Likewise.
14685 * tree-ssa-strlen.cc: Likewise.
14686 * tree-ssa.cc: Likewise.
14687 * value-pointer-equiv.cc: Likewise.
14688 * vr-values.cc: Likewise.
14689
14690 2022-05-13 Alexandre Oliva <oliva@adacore.com>
14691
14692 PR rtl-optimization/105455
14693 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
14694 probabilities for newly-conditional edges.
14695
14696 2022-05-13 liuhongt <hongtao.liu@intel.com>
14697
14698 PR tree-optimization/102583
14699 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
14700 contiguous stride in the VEC_PERM_EXPR.
14701
14702 2022-05-12 Richard Biener <rguenther@suse.de>
14703
14704 PR rtl-optimization/105577
14705 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
14706 edges before running fast DCE via df_analyze.
14707
14708 2022-05-12 Richard Biener <rguenther@suse.de>
14709
14710 PR tree-optimization/105562
14711 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
14712 against all CLOBBER defs if there's not an obvious must-alias
14713 and we are not doing redundant store elimination.
14714 (vn_walk_cb_data::redundant_store_removal_p): New field.
14715 (vn_reference_lookup_pieces): Initialize it.
14716 (vn_reference_lookup): Add argument to specify if we are
14717 doing redundant store removal.
14718 (eliminate_dom_walker::eliminate_stmt): Specify we do.
14719 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
14720
14721 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
14722
14723 PR target/104371
14724 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
14725 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
14726 New define_split pattern.
14727
14728 2022-05-12 Jakub Jelinek <jakub@redhat.com>
14729
14730 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
14731 if null_pointer_node.
14732 (gimplify_scan_omp_clauses): Likewise.
14733 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
14734 as omp_all_memory.
14735
14736 2022-05-11 Patrick Palka <ppalka@redhat.com>
14737
14738 * tree.h (TREE_VEC_BEGIN): Define.
14739 (TREE_VEC_END): Correct 'length' member access.
14740 (class tree_vec_range): Define.
14741
14742 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
14743
14744 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
14745
14746 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
14747
14748 * config/rs6000/rs6000.md: Use d instead of <Ff>.
14749
14750 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
14751
14752 * config/rs6000/constraints.md (register_constraint "f"): Use
14753 RS6000_CONSTRAINT_d.
14754 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
14755 RS6000_CONSTRAINT_f.
14756 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
14757 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
14758 RS6000_CONSTRAINT_d.
14759
14760 2022-05-11 Richard Biener <rguenther@suse.de>
14761
14762 * gimple-fold.h (gimple_build): Use variadic template
14763 functions for the gimple_build API forwarders without
14764 location_t argument.
14765
14766 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
14767
14768 PR middle-end/70090
14769 * asan.cc (initialize_sanitizer_builtins): Register
14770 __builtin_dynamic_object_size if necessary.
14771
14772 2022-05-11 Richard Biener <rguenther@suse.de>
14773
14774 PR rtl-optimization/105559
14775 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
14776 for non-debug insns.
14777
14778 2022-05-11 Richard Biener <rguenther@suse.de>
14779
14780 * generic-match-head.cc: Include tree-eh.h.
14781 * match.pd ((cond ...) cmp X): New simplification inspired
14782 by fold_binary_op_with_conditional_arg.
14783 (eq/ne (cmp ...) true/false): Likewise.
14784
14785 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
14786
14787 * doc/install.texi: Don't document '--with-hsa-runtime',
14788 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
14789
14790 2022-05-11 Martin Liska <mliska@suse.cz>
14791
14792 PR other/105527
14793 * doc/install.texi: Document the configure option --with-zstd.
14794
14795 2022-05-11 Martin Liska <mliska@suse.cz>
14796
14797 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
14798 compute index in cpu_features2.
14799 (set_cpu_feature): Likewise.
14800 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
14801 loop for cpu_features2 and use NOP_EXPRs.
14802
14803 2022-05-11 Richard Biener <rguenther@suse.de>
14804
14805 PR bootstrap/105551
14806 * opts.cc (finish_options): Also disable var-tracking if
14807 !DWARF2_DEBUGGING_INFO.
14808
14809 2022-05-11 liuhongt <hongtao.liu@intel.com>
14810
14811 PR target/104915
14812 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
14813 pre_reload define_insn_and_split.
14814 (*vec_setv2di_0_zero_extendhi_1): Ditto.
14815 (*vec_set<mode>_0_zero_extendsi): Ditto.
14816 (*vec_setv2di_0_zero_extendsi_1): Ditto.
14817 (ssewvecmode): New mode attr.
14818 (ssewvecmodelower): Ditto.
14819 (ssepackmodelower): Ditto.
14820
14821 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
14822
14823 * config/rs6000/constraints.md (register constraint v): Use
14824 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
14825
14826 2022-05-11 Martin Liska <mliska@suse.cz>
14827
14828 PR target/105355
14829 * config/riscv/riscv.opt: Remove Separate from
14830 -msmall-data-limit=.
14831 * optc-gen.awk: Report error for the described situation.
14832 * gcc.cc: Use Separate syntax.
14833 * opts.cc (gen_command_line_string): Change option name.
14834
14835 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
14836
14837 PR target/105414
14838 * match.pd (minmax): Skip constant folding for fmin/fmax when both
14839 arguments are sNaN or one is sNaN and another is NaN.
14840
14841 2022-05-10 Jakub Jelinek <jakub@redhat.com>
14842
14843 PR tree-optimization/105528
14844 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
14845 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
14846
14847 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
14848
14849 * doc/md.texi (Defining Mode Iterators): Correct example replacement
14850 text.
14851
14852 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
14853
14854 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
14855 constants.
14856 (fmin<mode>3, fmax<mode>3): New insns.
14857
14858 2022-05-10 Richard Biener <rguenther@suse.de>
14859
14860 * tree-if-conv.cc (fold_build_cond_expr): Use
14861 match-and-simplify to simplify the condition.
14862 (ifcvt_follow_ssa_use_edges): Remove.
14863 (predicate_scalar_phi): Use follow_all_ssa_edges.
14864
14865 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
14866
14867 PR middle-end/100400
14868 * omp-oacc-kernels-decompose.cc
14869 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
14870 call 'internal_error'.
14871
14872 2022-05-10 Richard Biener <rguenther@suse.de>
14873
14874 PR middle-end/105537
14875 * toplev.cc (process_options): Move flag_var_tracking
14876 handling ...
14877 * opts.cc (finish_options): ... here.
14878
14879 2022-05-10 Martin Liska <mliska@suse.cz>
14880
14881 * basic-block.h (struct basic_block_d): Use void *
14882 instead PTR.
14883 * cfgloop.h: Likewise.
14884 * cgraph.h: Likewise.
14885 * gengtype-state.cc (state_ident_by_name): Likewise.
14886 (record_type): Likewise.
14887 (read_state_already_seen_type): Likewise.
14888 * gengtype.cc (dump_type): Likewise.
14889 (input_file_by_name): Likewise.
14890 (main): Likewise.
14891 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
14892 * ipa-utils.h (struct ipa_dfs_info): Likewise.
14893 * plugin.cc (htab_hash_plugin): Likewise.
14894
14895 2022-05-10 Richard Biener <rguenther@suse.de>
14896
14897 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
14898 API with !GENERATOR_FILE.
14899 * opts.cc (global_options): Poison.
14900 (global_options_set): Likewise.
14901 (finish_options): Refer to options via opts.
14902
14903 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
14904 Roger Sayle <roger@nextmovesoftware.com>
14905
14906 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
14907 alternative when optimizing for size and the immediate operand is
14908 const_0_to_127_operand.
14909 (*andqi_2_maybe_si): Likewise.
14910 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
14911
14912 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
14913
14914 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
14915 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
14916 can't be negative.
14917
14918 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
14919
14920 PR target/105292
14921 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
14922 true only for 8-byte vector modes.
14923
14924 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
14925
14926 PR middle-end/70090
14927 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
14928 (instrument_object_size): Get dynamic object size expression.
14929
14930 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
14931
14932 PR preprocessor/101168
14933 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
14934 Avoid empty identifier.
14935
14936 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
14937
14938 PR target/101891
14939 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
14940 as a generic MMX mode instead of V4HImode.
14941 (zero_all_mm_registers): Use SET to zero instead of MOV for
14942 zeroing scratch registers.
14943 (ix86_zero_call_used_regs): Likewise.
14944
14945 2022-05-09 liuhongt <hongtao.liu@intel.com>
14946
14947 PR target/105354
14948 * config/i386/i386-expand.cc
14949 (expand_vec_perm_pslldq_psrldq_por): New function.
14950 (ix86_expand_vec_perm_const_1): Try
14951 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
14952 4/5-instruction sequence.
14953
14954 2022-05-09 Martin Liška <mliska@suse.cz>
14955
14956 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
14957 * system.h (STATIC_ASSERT): Define as static_assert for C++
14958 and fallback to array index in C.
14959
14960 2022-05-09 Richard Biener <rguenther@suse.de>
14961
14962 PR tree-optimization/105517
14963 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
14964 offset can be represented in the POINTER_PLUS_EXPR IL.
14965 (vn_reference_insert): Likewise.
14966 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
14967
14968 2022-05-09 Richard Biener <rguenther@suse.de>
14969
14970 * match.pd: Remove #if GIMPLE guards around ! using patterns.
14971
14972 2022-05-09 liuhongt <hongtao.liu@intel.com>
14973
14974 PR target/105072
14975 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
14976 New define_insn.
14977 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
14978 define_insn_and_split.
14979
14980 2022-05-09 Alex Coplan <alex.coplan@arm.com>
14981
14982 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
14983 symtab state is PARSING.
14984
14985 2022-05-09 Martin Liska <mliska@suse.cz>
14986
14987 * system.h (LIKELY): Define.
14988 (UNLIKELY): Likewise.
14989 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
14990 macros.
14991 * dse.cc (set_position_unneeded): Likewise.
14992 (set_all_positions_unneeded): Likewise.
14993 (any_positions_needed_p): Likewise.
14994 (all_positions_needed_p): Likewise.
14995 * expmed.cc (flip_storage_order): Likewise.
14996 * genmatch.cc (dt_simplify::gen_1): Likewise.
14997 * ggc-common.cc (gt_pch_save): Likewise.
14998 * print-rtl.cc: Likewise.
14999 * rtl-iter.h (T>::array_type::~array_type): Likewise.
15000 (T>::next): Likewise.
15001 * rtl-ssa/internals.inl: Likewise.
15002 * rtl-ssa/member-fns.inl: Likewise.
15003 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
15004 (rtx_properties::try_to_add_dest): Likewise.
15005 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
15006 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
15007 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
15008 * sort.cc (likely): Likewise.
15009 (mergesort): Likewise.
15010 * wide-int.h (wi::eq_p): Likewise.
15011 (wi::ltu_p): Likewise.
15012 (wi::cmpu): Likewise.
15013 (wi::bit_and): Likewise.
15014 (wi::bit_and_not): Likewise.
15015 (wi::bit_or): Likewise.
15016 (wi::bit_or_not): Likewise.
15017 (wi::bit_xor): Likewise.
15018 (wi::add): Likewise.
15019 (wi::sub): Likewise.
15020
15021 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
15022
15023 * config/riscv/arch-canonicalize: Handle g correctly.
15024
15025 2022-05-07 Marek Polacek <polacek@redhat.com>
15026
15027 PR c++/101833
15028 PR c++/47634
15029 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
15030
15031 2022-05-06 Jason Merrill <jason@redhat.com>
15032
15033 * diagnostic-color.cc: Add fnname and targs color entries.
15034 * doc/invoke.texi: Document them.
15035
15036 2022-05-06 Jason Merrill <jason@redhat.com>
15037
15038 * vec.h (vec::iterate): Fix comment.
15039
15040 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
15041
15042 PR target/102059
15043 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
15044 and -mpower10-fusion options for inlining purposes.
15045
15046 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
15047
15048 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
15049
15050 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
15051
15052 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
15053 omp_runtime_apis array.
15054
15055 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
15056
15057 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
15058 (scan_sharing_clauses): Check a restriction on allocate clause.
15059
15060 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
15061
15062 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
15063 and ORDERED clause conflict errors. Add check for GRAINSIZE and
15064 NUM_TASKS on TASKLOOP.
15065
15066 2022-05-05 Martin Liska <mliska@suse.cz>
15067
15068 * genautomata.cc (create_composed_state): Remove dead code.
15069 * graphite-poly.cc (print_pdrs): Likewise.
15070 * lto-wrapper.cc (run_gcc): Likewise.
15071 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
15072 Likewise.
15073
15074 2022-05-05 Martin Liska <mliska@suse.cz>
15075
15076 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
15077 PROF_*.
15078 (gimple_gen_time_profiler): Likewise.
15079
15080 2022-05-05 Martin Liska <mliska@suse.cz>
15081
15082 * value-prof.cc (stream_out_histogram_value): Remove sanity
15083 checking.
15084
15085 2022-05-05 Richard Biener <rguenther@suse.de>
15086
15087 PR tree-optimization/104162
15088 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
15089 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
15090 becomes invariant.
15091 (vn_reference_insert): Likewise.
15092
15093 2022-05-05 Richard Biener <rguenther@suse.de>
15094
15095 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
15096 to real_value field.
15097 (tree_real_cst::value): Add real_value field.
15098 * tree.h (TREE_REAL_CST_PTR): Adjust.
15099 * tree.cc (build_real): Remove separate allocation.
15100 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
15101 Likewise.
15102
15103 2022-05-05 Richard Biener <rguenther@suse.de>
15104
15105 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
15106 divisions with undefined overflow unconditionally.
15107 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
15108 overflow to defined.
15109
15110 2022-05-05 Richard Biener <rguenther@suse.de>
15111
15112 PR tree-optimization/105484
15113 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
15114 whether the CFG changed.
15115 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
15116
15117 2022-05-05 Richard Biener <rguenther@suse.de>
15118
15119 PR tree-optimization/104595
15120 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
15121 COND_EXPR do not fail if check_bool_pattern returns false.
15122
15123 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
15124
15125 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
15126 item that is in an outer data-sharing clause.
15127
15128 2022-05-04 Richard Biener <rguenther@suse.de>
15129
15130 PR tree-optimization/104658
15131 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
15132 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
15133 type on nodes we promote.
15134 (vectorizable_bb_reduc_epilogue): Deal with externalized
15135 root.
15136 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
15137 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
15138
15139 2022-05-04 Richard Biener <rguenther@suse.de>
15140
15141 PR tree-optimization/103116
15142 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
15143 case we need peeling for gaps even though GROUP_GAP is zero.
15144
15145 2022-05-04 Martin Liska <mliska@suse.cz>
15146
15147 * gengtype-state.cc (read_a_state_token): Remove dead code.
15148 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
15149
15150 2022-05-04 Richard Biener <rguenther@suse.de>
15151
15152 * gimplify.cc (gimplify_init_constructor): First gimplify,
15153 then simplify the result to a VECTOR_CST.
15154
15155 2022-05-04 Jakub Jelinek <jakub@redhat.com>
15156
15157 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
15158 element at the end of insn_conditions.
15159 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
15160 ARRAY_SIZE (insn_conditions).
15161
15162 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
15163
15164 PR target/104662
15165 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
15166 vector of booleans and MVE is not enabled.
15167
15168 2022-05-04 Richard Biener <rguenther@suse.de>
15169
15170 PR debug/105158
15171 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
15172 Move debug stmts to the predecessor if moving to the
15173 destination is not possible.
15174 (remove_forwarder_block): Adjust.
15175 (remove_forwarder_block_with_phi): Likewise.
15176
15177 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
15178
15179 PR tree-optimization/102950
15180 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
15181 determine bounds of bitwise operations on signed types.
15182 (operator_bitwise_and::wi_fold): Call the above function.
15183 (operator_bitwise_or::wi_fold): Likewise.
15184 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
15185 result can't be zero if the operands can't be equal.
15186
15187 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
15188
15189 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
15190 protocol class methods linker-visible.
15191
15192 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
15193
15194 PR target/105079
15195 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
15196 define_insn_and_split pattern.
15197
15198 2022-05-03 Richard Biener <rguenther@suse.de>
15199
15200 PR middle-end/105083
15201 * tree-scalar-evolution.cc (scev_initialize): Verify we
15202 have appropriate loop state.
15203 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
15204 loop init and finalization.
15205
15206 2022-05-03 Richard Biener <rguenther@suse.de>
15207
15208 PR middle-end/105461
15209 * opts.cc (finish_options): Match the condition to
15210 disable flag_var_tracking to that of process_options.
15211
15212 2022-05-03 Richard Biener <rguenther@suse.de>
15213
15214 * opts.cc: #undef OPTIONS_SET_P.
15215 (finish_options): Use opts_set instead of OPTIONS_SET_P.
15216
15217 2022-05-03 Richard Biener <rguenther@suse.de>
15218
15219 PR tree-optimization/105394
15220 * tree-vect-generic.cc (expand_vector_condition): Adjust
15221 comp_width for non-integer mode masks as well.
15222
15223 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
15224
15225 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
15226 omp_runtime_apis array.
15227
15228 2022-05-02 Richard Biener <rguenther@suse.de>
15229
15230 * tree-scalar-evolution.cc (expression_expensive_p):
15231 Never consider mismatched calls as cheap.
15232
15233 2022-05-02 Richard Biener <rguenther@suse.de>
15234
15235 PR tree-optimization/104240
15236 * tree-vect-slp.cc (op1_op0_map): New.
15237 (vect_get_operand_map): Handle compares.
15238 (vect_build_slp_tree_1): Support swapped operands for
15239 tcc_comparison.
15240
15241 2022-05-02 Jakub Jelinek <jakub@redhat.com>
15242
15243 PR debug/105415
15244 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
15245 if there is no symtab node for the VAR_DECL.
15246
15247 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
15248
15249 * gcov-io.cc (gcov_rewrite): Clear the file error status.
15250
15251 2022-05-02 Richard Biener <rguenther@suse.de>
15252
15253 PR tree-optimization/105437
15254 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
15255 case where last_stmt alters control flow.
15256
15257 2022-05-02 Richard Biener <rguenther@suse.de>
15258
15259 * dojump.cc (do_jump): Use CASE_CONVERT.
15260 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
15261
15262 2022-05-02 Jakub Jelinek <jakub@redhat.com>
15263
15264 * system.h: Include initializer_list.
15265
15266 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
15267
15268 * config/rs6000/constraints.md (Y constraint): Fix comment.
15269
15270 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
15271
15272 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
15273 VR_RANGE before passing a piecewise range to set_range_info_raw.
15274
15275 2022-04-30 Patrick Palka <ppalka@redhat.com>
15276
15277 * gengtype.cc (adjust_field_tree_exp): Remove.
15278 (adjust_field_type): Don't handle the "tree_exp" special attribute.
15279 * tree-core.h (struct tree_exp): Remove "special" and "desc"
15280 attributes. Add "length" attribute.
15281
15282 2022-04-29 Martin Jambor <mjambor@suse.cz>
15283
15284 PR ipa/100413
15285 * cgraph.cc (cgraph_node::remove): Release body of the node this
15286 is clone_of if appropriate.
15287
15288 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
15289
15290 PR target/51954
15291 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
15292
15293 2022-04-29 Richard Biener <rguenther@suse.de>
15294
15295 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
15296 (canonicalize_cond_expr_cond): Move here from gimple.cc,
15297 allow both COND_EXPR and GIMPLE_COND forms.
15298 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
15299 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
15300 * gimple.h (canonicalize_cond_expr_cond): Likewise.
15301 * gimple-loop-versioning.cc (loop_versioning::version_loop):
15302 Use is_gimple_condexpr_for_cond.
15303 * tree-parloops.cc (gen_parallel_loop): Likewise.
15304 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
15305 a proper cond expr after canonicalize_cond_expr_cond.
15306 Use is_gimple_condexpr_for_cond where appropriate.
15307 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
15308 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
15309
15310 2022-04-29 Richard Biener <rguenther@suse.de>
15311
15312 * gimple-iterator.h (gsi_after_labels): Add overload for
15313 gimple_seq.
15314 (gsi_start_1): Rename to gsi_start and take a reference.
15315 (gsi_last_1): Likewise.
15316 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
15317 * omp-low.cc (lower_rec_input_clauses): Likewise.
15318 (lower_omp_scan): Likewise.
15319
15320 2022-04-29 Richard Biener <rguenther@suse.de>
15321
15322 PR tree-optimization/105431
15323 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
15324 (powi_as_mults): Use absu_hwi.
15325 (gimple_expand_builtin_powi): Remove now pointless n != -n
15326 check.
15327
15328 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
15329
15330 * range-op.cc (empty_range_varying): Move to range-op.h.
15331 (range_true): Move to range.h.
15332 (range_false): Same.
15333 (range_true_and_false): Same.
15334 (enum bool_range_state): Move to range-op.h.
15335 (relop_early_resolve): Same.
15336 (operator_equal::op1_op2_relation): Abstract code to...
15337 (equal_op1_op2_relation): ...here.
15338 (operator_not_equal::op1_op2_relation): Abstract code to...
15339 (not_equal_op1_op2_relation): ...here.
15340 (operator_lt::op1_op2_relation): Abstract code to...
15341 (lt_op1_op2_relation): ...here.
15342 (operator_le::op1_op2_relation): Abstract code to...
15343 (le_op1_op2_relation): ...here.
15344 (operator_gt::op1_op2_relation): Abstract code to...
15345 (gt_op1_op2_relation): ...here.
15346 (operator_ge::op1_op2_relation): Abstract code to...
15347 (ge_op1_op2_relation): ...here.
15348 (class range_op_table): Move to range-op.h.
15349 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
15350 (not_equal_op1_op2_relation): Same.
15351 (lt_op1_op2_relation): Same.
15352 (le_op1_op2_relation): Same.
15353 (gt_op1_op2_relation): Same.
15354 (ge_op1_op2_relation): Same.
15355 (enum bool_range_state): Same.
15356 (get_bool_state): Same.
15357 (empty_range_varying): Same.
15358 (relop_early_resolve): Same.
15359 (class range_op_table): Same.
15360 * range.h (range_true): Same.
15361 (range_false): Same.
15362 (range_true_and_false): Same.
15363
15364 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
15365
15366 * gimple-fold.cc (size_must_be_zero_p): Use reference
15367 instead of pointer
15368 * gimple-ssa-evrp-analyze.cc
15369 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
15370 intersect to legacy_verbose_intersect.
15371 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
15372 of pointer.
15373 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
15374 instead of value_range_equiv.
15375 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
15376 instead of pointer.
15377 (find_case_label_range): Same.
15378 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
15379 (value_range_equiv::legacy_verbose_intersect): ...this.
15380 (value_range_equiv::union_): Rename to...
15381 (value_range_equiv::legacy_verbose_union_): ...this.
15382 * value-range-equiv.h (class value_range_equiv): Rename union and
15383 intersect to legacy_verbose_{intersect,union}.
15384 * value-range.cc (irange::union_): Rename to...
15385 (irange::legacy_verbose_union_): ...this.
15386 (irange::intersect): Rename to...
15387 (irange::legacy_verbose_intersect): ...this.
15388 * value-range.h (irange::union_): Rename union_ to
15389 legacy_verbose_union.
15390 (irange::intersect): Rename intersect to legacy_verbose_intersect.
15391 * vr-values.cc (vr_values::update_value_range): Same.
15392 (vr_values::extract_range_for_var_from_comparison_expr): Same.
15393 (vr_values::extract_range_from_cond_expr): Rename union_ to
15394 legacy_verbose_union.
15395 (vr_values::extract_range_from_phi_node): Same.
15396
15397 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
15398
15399 * gimple-ssa-evrp-analyze.cc
15400 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
15401 that take a range.
15402 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
15403 * ipa-prop.cc (ipcp_update_vr): Same.
15404 * tree-inline.cc (remap_ssa_name): Same.
15405 * tree-ssa-copy.cc (fini_copy_prop): Same.
15406 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
15407 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
15408 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
15409 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
15410 * tree-ssa-strlen.cc (set_strlen_range): Same.
15411 (strlen_pass::handle_builtin_string_cmp): Same.
15412 * tree-ssanames.cc (set_range_info): Make static.
15413 (duplicate_ssa_name_range_info): Make static and add a new variant
15414 calling the static.
15415 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
15416 (duplicate_ssa_name_range_info): Remove version taking a
15417 range_info_def and replace with a version taking SSA names.
15418 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
15419 that take a range.
15420 (vect_do_peeling): Same.
15421 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
15422 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
15423
15424 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
15425
15426 * value-range.h (irange::irange): Use set_undefined.
15427
15428 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
15429
15430 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
15431 irange::intersect (wide_int, wide_int).
15432 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
15433 (adjust_imagpart_expr): Same.
15434 * value-range.h (irange::intersect (wide_int, wide_int)): Make
15435 private.
15436
15437 2022-04-29 Richard Biener <rguenther@suse.de>
15438
15439 PR tree-optimization/104322
15440 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
15441
15442 2022-04-29 Richard Biener <rguenther@suse.de>
15443
15444 PR middle-end/105376
15445 * tree.cc (build_real): Special case dconst* arguments
15446 for decimal floating point types.
15447
15448 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15449
15450 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
15451 Environments): New section.
15452
15453 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15454
15455 * doc/gcov-tool.texi: Document merge-stream subcommand.
15456 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
15457 subcommand of gcov-tool.
15458 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
15459 (print_merge_stream_usage_message): New.
15460 (merge_stream_usage): Likewise.
15461 (do_merge_stream): Likewise.
15462 (print_usage): Call print_merge_stream_usage_message().
15463 (main): Call do_merge_stream() to execute merge-stream subcommand.
15464
15465 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15466
15467 * gcov-io.cc (gcov_file_error): New enum.
15468 (gcov_var): Use gcov_file_error enum for the error member.
15469 (gcov_open): Use GCOV_FILE_NO_ERROR.
15470 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
15471 (gcov_write): Likewise.
15472 (gcov_write_unsigned): Likewise.
15473 (gcov_write_string): Likewise.
15474 (gcov_read_bytes): Set error code if EOF is reached.
15475 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
15476
15477 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15478
15479 * gcov-io.cc (GCOV_MODE_STDIN): Define.
15480 (gcov_position): For gcov-tool, return calculated position if file is
15481 stdin.
15482 (gcov_open): For gcov-tool, use stdin if filename is NULL.
15483 (gcov_close): For gcov-tool, do not close stdin.
15484 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
15485 (gcov_sync): For gcov-tool, discard input if file is stdin.
15486
15487 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15488
15489 * doc/invoke.texi (fprofile-info-section): Mention
15490 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
15491 standard language. Fix minor example code issues.
15492 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
15493
15494 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15495
15496 * gcov-io.cc (gcov_seek): Make it static.
15497 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
15498
15499 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15500
15501 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
15502 (gcov_output_files): Open files for reading and writing.
15503
15504 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15505
15506 * gcov-io.cc (gcov_open): Always use the mode parameter.
15507 * gcov-io.h (gcov_open): Declare it unconditionally.
15508
15509 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
15510
15511 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
15512 (profile_merge): Allow merging of directories which contain no profile
15513 files.
15514
15515 2022-04-28 David Malcolm <dmalcolm@redhat.com>
15516
15517 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
15518 fpath.txt output.
15519
15520 2022-04-28 Jakub Jelinek <jakub@redhat.com>
15521
15522 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
15523 temporary only if out overlaps compare_op, not when it overlaps
15524 op0 or op1.
15525
15526 2022-04-28 Jakub Jelinek <jakub@redhat.com>
15527
15528 PR lto/105399
15529 * cgraph.cc (cgraph_node::verify_node): Don't verify
15530 semantic_interposition flag against
15531 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
15532
15533 2022-04-28 Jakub Jelinek <jakub@redhat.com>
15534
15535 PR target/105331
15536 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
15537 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
15538 of it.
15539
15540 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
15541
15542 * doc/install.texi (Configuration): Remove misleading text
15543 around LE PowerPC Linux multilibs.
15544
15545 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15546
15547 PR d/103528
15548 * doc/install.texi (Tools/packages necessary for building GCC)
15549 (GDC): Document libphobos requirement.
15550 (Host/target specific installation notes for GCC, *-*-solaris2*):
15551 Document libphobos and GDC specifics.
15552
15553 2022-04-28 Richard Biener <rguenther@suse.de>
15554
15555 PR tree-optimization/105219
15556 * tree-vect-loop.cc (vect_transform_loop): Disable
15557 special code narrowing the vectorized epilogue max
15558 iterations when peeling for alignment or gaps was in effect.
15559
15560 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
15561
15562 * config/loongarch/loongarch.cc
15563 (loongarch_flatten_aggregate_field): Ignore empty fields for
15564 RECORD_TYPE.
15565
15566 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
15567
15568 * config/loongarch/loongarch.md: Add fdiv define_expand template,
15569 then generate floating-point division and floating-point reciprocal
15570 instructions.
15571
15572 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
15573
15574 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
15575 to PLV instruction templates.
15576
15577 2022-04-27 Richard Biener <rguenther@suse.de>
15578
15579 PR middle-end/104492
15580 * gimple-ssa-warn-access.cc
15581 (pass_waccess::warn_invalid_pointer): Exclude equality compare
15582 diagnostics for all kind of invalidations.
15583 (pass_waccess::check_dangling_uses): Fix post-dominator query.
15584 (pass_waccess::check_pointer_uses): Likewise.
15585
15586 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
15587
15588 PR target/102024
15589 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
15590 prototype.
15591 * config/s390/s390.cc (s390_single_field_struct_p): New function.
15592 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
15593 (s390_function_arg_float): Likewise.
15594
15595 2022-04-27 Jakub Jelinek <jakub@redhat.com>
15596
15597 PR sanitizer/105396
15598 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
15599 where offset is bigger than off but smaller than m_prev_offset + 32
15600 bits by pushing one or more 0 bytes. Sink the
15601 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
15602 all cases to the end of the function.
15603
15604 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
15605
15606 PR target/105271
15607 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
15608 stanza.
15609
15610 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
15611
15612 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
15613 data-share memory exhausted" error more verbose.
15614
15615 2022-04-26 Martin Liska <mliska@suse.cz>
15616
15617 PR lto/105364
15618 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
15619 (run_gcc): Parse OPT_fdiagnostics_urls_.
15620 (main): Initialize global_dc.
15621
15622 2022-04-26 Jakub Jelinek <jakub@redhat.com>
15623
15624 PR rtl-optimization/105314
15625 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
15626 operand is equal to if_info->x, instead use the non-zero operand
15627 as one of the operands of AND with if_info->x as target.
15628
15629 2022-04-26 Jakub Jelinek <jakub@redhat.com>
15630
15631 PR tree-optimization/105374
15632 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
15633 !fold_convertible_p rather than assuming fold_convert must succeed.
15634
15635 2022-04-26 Jakub Jelinek <jakub@redhat.com>
15636
15637 PR target/105367
15638 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
15639 el_mode == DFmode ? double_type_node : float_type_node instead of
15640 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
15641
15642 2022-04-25 David Malcolm <dmalcolm@redhat.com>
15643
15644 PR analyzer/104308
15645 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
15646 the location of new_stmt in all places that don't already set it,
15647 whether explicitly, or via a call to gsi_replace.
15648
15649 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
15650
15651 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
15652
15653 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
15654
15655 PR tree-optimization/105276
15656 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
15657 existing global range with calculated value.
15658
15659 2022-04-25 Richard Biener <rguenther@suse.de>
15660
15661 PR tree-optimization/105368
15662 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
15663
15664 2022-04-25 Richard Biener <rguenther@suse.de>
15665
15666 PR tree-optimization/100810
15667 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
15668 (find_ssa_undef): New function.
15669 (add_candidate_1): Avoid adding derived candidates with
15670 undefined SSA names and mark the original ones.
15671 (determine_group_iv_cost_generic): Reject rewriting
15672 uses with a different IV when that involves undefined SSA names.
15673
15674 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
15675
15676 PR target/89125
15677 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
15678 bsd_libc_has_function.
15679 * targhooks.cc (bsd_libc_has_function): New function.
15680 Expand the supported math functions to inclue C99 libm.
15681 * targhooks.h (bsd_libc_has_function): New Prototype.
15682
15683 2022-04-25 Richard Biener <rguenther@suse.de>
15684
15685 PR rtl-optimization/105231
15686 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
15687 with landing pad > 0 is from i3. Put any REG_EH_REGION note
15688 on i3 or drop it if the insn can not trap.
15689 (try_combine): Ensure that we can merge REG_EH_REGION notes
15690 with non-call exceptions. Ensure we are not splitting a
15691 trapping part of an insn with non-call exceptions when there
15692 is any REG_EH_REGION note to preserve.
15693
15694 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
15695
15696 PR target/105339
15697 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
15698 Add parentheses for parameters and djust format.
15699 (_mm512_mask_scalef_round_pd): Ditto.
15700 (_mm512_maskz_scalef_round_pd): Ditto.
15701 (_mm512_scalef_round_ps): Ditto.
15702 (_mm512_mask_scalef_round_ps): Ditto.
15703 (_mm512_maskz_scalef_round_ps): Ditto.
15704 (_mm_scalef_round_sd): Use _mm_undefined_pd.
15705 (_mm_scalef_round_ss): Use _mm_undefined_ps.
15706 (_mm_mask_scalef_round_sd): New macro.
15707 (_mm_mask_scalef_round_ss): Ditto.
15708 (_mm_maskz_scalef_round_sd): Ditto.
15709 (_mm_maskz_scalef_round_ss): Ditto.
15710
15711 2022-04-23 Jakub Jelinek <jakub@redhat.com>
15712
15713 PR target/105338
15714 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
15715 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
15716 cases.
15717
15718 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
15719
15720 PR target/105334
15721 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
15722 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
15723 (pack<mode>_hard for FMOVE128): ... this...
15724 (pack<mode>_soft for FMOVE128): ... and this.
15725
15726 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
15727
15728 * doc/extend.texi: Correct "This" to "These".
15729
15730 2022-04-22 Jakub Jelinek <jakub@redhat.com>
15731
15732 PR rtl-optimization/105333
15733 * rtlanal.cc (replace_rtx): Use simplify_subreg or
15734 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
15735 CONST_INT_P.
15736
15737 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
15738
15739 PR target/103197
15740 PR target/102146
15741 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
15742 the "Z" alternatives in {l,st}{f,xs}iwzx.
15743 (zero_extendhi<mode>2 for EXTHI): Ditto.
15744 (zero_extendsi<mode>2 for EXTSI): Ditto.
15745 (*movsi_internal1): Ditto.
15746 (*mov<mode>_internal1 for QHI): Ditto.
15747 (movsd_hardfloat): Ditto.
15748
15749 2022-04-21 Martin Liska <mliska@suse.cz>
15750
15751 * configure.ac: Enable compressed debug sections for mold
15752 linker.
15753 * configure: Regenerate.
15754
15755 2022-04-21 Jakub Jelinek <jakub@redhat.com>
15756
15757 PR debug/105203
15758 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
15759 on DEBUG_INSNs.
15760
15761 2022-04-20 Richard Biener <rguenther@suse.de>
15762
15763 PR tree-optimization/104912
15764 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
15765 the cost model check to a separate BB to make sure it is
15766 checked first and not combined with other version checks.
15767
15768 2022-04-20 Richard Biener <rguenther@suse.de>
15769
15770 PR tree-optimization/105312
15771 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
15772 VCOND and VCONDU for EQ and NE.
15773
15774 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
15775
15776 PR ipa/103818
15777 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
15778 poly_offset_int to avoid overflow.
15779 (modref_access_node::update2): likewise.
15780
15781 2022-04-20 Jakub Jelinek <jakub@redhat.com>
15782
15783 PR ipa/105306
15784 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
15785 to opt_for_fn (decl, flag_semantic_interposition).
15786 * cgraphclones.cc (cgraph_node::create_clone): Copy over
15787 semantic_interposition flag.
15788
15789 2022-04-19 Sergei Trofimovich <siarheit@google.com>
15790
15791 PR gcov-profile/105282
15792 * value-prof.cc (stream_out_histogram_value): Allow negative counts
15793 on HIST_TYPE_INDIR_CALL.
15794
15795 2022-04-19 Jakub Jelinek <jakub@redhat.com>
15796
15797 PR target/105257
15798 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
15799 use gen_raw_REG instead of gen_rtx_REG and copy over also
15800 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
15801
15802 2022-04-19 Richard Biener <rguenther@suse.de>
15803
15804 PR tree-optimization/104010
15805 PR tree-optimization/103941
15806 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
15807 we run into stmts in patterns continue walking those
15808 for uses outside of the vectorized region instead of
15809 marking the lane live.
15810
15811 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
15812
15813 * doc/install.texi <CRIS>: Remove references to removed websites and
15814 adjust for cris-*-elf being the only remaining toolchain.
15815
15816 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
15817
15818 * doc/invoke.texi <CRIS>: Remove references to options for removed
15819 subtarget cris-axis-linux-gnu and tweak wording accordingly.
15820
15821 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
15822
15823 * doc/install.texi (Specific): Adjust mingw-w64 download link.
15824
15825 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
15826
15827 * config/i386/smmintrin.h: Correct target pragma from sse4.1
15828 and sse4.2 to crc32 for crc32 intrinsics.
15829
15830 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
15831
15832 PR debug/105089
15833 * ctfc.cc (ctf_dvd_ignore_insert): New function.
15834 (ctf_dvd_ignore_lookup): Likewise.
15835 (ctf_add_variable): Keep track of non-defining decl DIEs.
15836 (new_ctf_container): Initialize the new hash-table.
15837 (ctfc_delete_container): Empty hash-table.
15838 * ctfc.h (struct ctf_container): Add new hash-table.
15839 (ctf_dvd_ignore_lookup): New declaration.
15840 (ctf_add_variable): Add additional argument.
15841 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
15842 record for non-defining decl for which a defining decl exists
15843 in the same TU.
15844 (ctf_preprocess): Defer updating the number of global objts
15845 until here.
15846 (output_ctf_header): Use ctfc_vars_list_count as some CTF
15847 variables may not make it to the final output.
15848 (output_ctf_vars): Likewise.
15849 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
15850 if this is known to be a non-defining decl DIE.
15851
15852 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
15853
15854 * ctfc.h (struct ctf_container): Introduce a new member.
15855 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
15856 variable.
15857
15858 2022-04-14 Jakub Jelinek <jakub@redhat.com>
15859
15860 PR target/105247
15861 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
15862 or rotates by VOIDmode constant integer shift count use word_mode
15863 for the operand if int_mode is narrower than word.
15864
15865 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
15866
15867 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
15868 (s390_get_unit_mask): Likewise.
15869 (s390_is_fpd): Likewise.
15870 (s390_is_fxd): Likewise.
15871 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
15872 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
15873 Add z16.
15874 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
15875 Likewise.
15876 * config/s390/3931.md: New file.
15877
15878 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
15879
15880 PR tree-optimization/105254
15881 * config/aarch64/aarch64.cc
15882 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
15883 loop_vec_info as argument. Restrict the unroll factor to values
15884 that divide the VF.
15885 (aarch64_vector_costs::finish_cost): Update call accordingly.
15886
15887 2022-04-13 Richard Biener <rguenther@suse.de>
15888
15889 PR tree-optimization/105263
15890 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
15891 negates in multiplication chains with DFP.
15892
15893 2022-04-13 Jakub Jelinek <jakub@redhat.com>
15894
15895 PR middle-end/105253
15896 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
15897 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
15898 comparisons or tree_nop_conversion_p checks.
15899
15900 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
15901
15902 PR target/103069
15903 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
15904 Add missing set to target_val at pause label.
15905
15906 2022-04-13 Jakub Jelinek <jakub@redhat.com>
15907
15908 PR target/105234
15909 * attribs.cc (decl_attributes): Don't set
15910 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
15911 NULL.
15912
15913 2022-04-13 Richard Biener <rguenther@suse.de>
15914
15915 PR tree-optimization/105250
15916 * fold-const.cc (fold_convertible_p): Revert
15917 r12-7979-geaaf77dd85c333, instead check for size equality
15918 of the vector types involved.
15919
15920 2022-04-13 Richard Biener <rguenther@suse.de>
15921
15922 Revert:
15923 2022-04-13 Richard Biener <rguenther@suse.de>
15924
15925 PR tree-optimization/104912
15926 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
15927 the cost model check to a separate BB to make sure it is
15928 checked first and not combined with other version checks.
15929
15930 2022-04-13 Richard Biener <rguenther@suse.de>
15931
15932 PR tree-optimization/104912
15933 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
15934 the cost model check to a separate BB to make sure it is
15935 checked first and not combined with other version checks.
15936
15937 2022-04-13 Jakub Jelinek <jakub@redhat.com>
15938
15939 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
15940
15941 2022-04-12 Antoni Boucher <bouanto@zoho.com>
15942
15943 PR jit/104072
15944 * reginfo.cc: New functions (clear_global_regs_cache,
15945 reginfo_cc_finalize) to avoid an issue where compiling the same
15946 code multiple times gives an error about assigning the same
15947 register to 2 global variables.
15948 * rtl.h: New function (reginfo_cc_finalize).
15949 * toplev.cc: Call it.
15950
15951 2022-04-12 Antoni Boucher <bouanto@zoho.com>
15952
15953 PR jit/104071
15954 * toplev.cc: Call the new function tree_cc_finalize in
15955 toplev::finalize.
15956 * tree.cc: New functions (clear_nonstandard_integer_type_cache
15957 and tree_cc_finalize) to clear the cache of non-standard integer
15958 types to avoid having issues with some optimizations of
15959 bitcast where the SSA_NAME will have a size of a cached
15960 integer type that should have been invalidated, causing a
15961 comparison of integer constant to fail.
15962 * tree.h: New function (tree_cc_finalize).
15963
15964 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
15965
15966 PR target/97348
15967 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
15968 * config/nvptx/nvptx.opt (misa): Adjust comment.
15969
15970 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
15971
15972 Revert:
15973 2022-03-03 Tom de Vries <tdevries@suse.de>
15974
15975 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
15976
15977 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
15978
15979 Revert:
15980 2022-03-31 Tom de Vries <tdevries@suse.de>
15981
15982 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
15983
15984 2022-04-12 Richard Biener <rguenther@suse.de>
15985
15986 PR ipa/104303
15987 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
15988 include local escaped memory as obviously necessary stores.
15989
15990 2022-04-12 Richard Biener <rguenther@suse.de>
15991
15992 PR tree-optimization/105235
15993 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
15994 return whether the CFG changed.
15995 (execute_cse_sincos_1): Adjust.
15996
15997 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
15998
15999 PR target/104144
16000 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
16001 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
16002 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
16003 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
16004 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
16005 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
16006 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
16007
16008 2022-04-12 Richard Biener <rguenther@suse.de>
16009
16010 PR tree-optimization/105232
16011 * tree.cc (component_ref_size): Bail out for too large
16012 or non-constant sizes.
16013
16014 2022-04-12 Richard Biener <rguenther@suse.de>
16015
16016 PR tree-optimization/105226
16017 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
16018 we can split the exit of an outer loop we choose to version.
16019
16020 2022-04-12 Jakub Jelinek <jakub@redhat.com>
16021
16022 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
16023 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
16024 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
16025 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
16026 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
16027 Formatting fix.
16028 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
16029
16030 2022-04-12 Jakub Jelinek <jakub@redhat.com>
16031
16032 PR target/105214
16033 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
16034 do_pending_stack_adjust.
16035
16036 2022-04-12 Jakub Jelinek <jakub@redhat.com>
16037
16038 PR rtl-optimization/105211
16039 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
16040 fails for TREE_TYPE (arg), retry it with
16041 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
16042 fails, emit call normally.
16043
16044 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
16045
16046 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
16047 * config.gcc: Add z16 as march/mtune switch.
16048 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
16049 Recognize z16 with -march=native.
16050 * config/s390/s390-opts.h (enum processor_type): Rename
16051 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
16052 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
16053 (PROCESSOR_3931_Z16): ... throughout the file.
16054 (s390_processor processor_table): Add z16 as cpu string.
16055 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
16056 PF_Z16.
16057 (TARGET_CPU_ARCH14): Rename to ...
16058 (TARGET_CPU_Z16): ... this.
16059 (TARGET_CPU_ARCH14_P): Rename to ...
16060 (TARGET_CPU_Z16_P): ... this.
16061 (TARGET_ARCH14): Rename to ...
16062 (TARGET_Z16): ... this.
16063 (TARGET_ARCH14_P): Rename to ...
16064 (TARGET_Z16_P): ... this.
16065 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
16066 check TARGET_Z16 instead of TARGET_ARCH14.
16067 * config/s390/s390.opt: Add z16 to processor_type.
16068 * doc/invoke.texi: Document z16 and arch14.
16069
16070 2022-04-12 chenglulu <chenglulu@loongson.cn>
16071
16072 * config/loongarch/loongarch.cc: Fix bug for
16073 tmpdir-g++.dg-struct-layout-1/t033.
16074
16075 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
16076
16077 PR target/104894
16078 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
16079 to longcall functions.
16080
16081 2022-04-11 Jason Merrill <jason@redhat.com>
16082
16083 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
16084
16085 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
16086
16087 PR target/105213
16088 PR target/103623
16089 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
16090
16091 2022-04-11 Jakub Jelinek <jakub@redhat.com>
16092
16093 PR tree-optimization/105218
16094 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
16095 more than one predecessor or phi's bb more than 2 predecessors,
16096 reset phi result uses instead of adding a debug temp.
16097
16098 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
16099
16100 PR target/104853
16101 * config.gcc: Pass -misa-spec to arch-canonicalize and
16102 multilib-generator.
16103 * config/riscv/arch-canonicalize: Adding -misa-spec option.
16104 (SUPPORTED_ISA_SPEC): New.
16105 (arch_canonicalize): New argument `isa_spec`.
16106 Handle multiple ISA spec versions.
16107 * config/riscv/multilib-generator: Adding -misa-spec option.
16108
16109 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
16110
16111 * config/riscv/arch-canonicalize: Add TODO item.
16112 (IMPLIED_EXT): Sync.
16113 (arch_canonicalize): Checking until no change.
16114
16115 2022-04-11 Tamar Christina <tamar.christina@arm.com>
16116
16117 PR target/105197
16118 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
16119 not masked.
16120
16121 2022-04-11 Jason Merrill <jason@redhat.com>
16122
16123 PR c++/100370
16124 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
16125 deref == -1.
16126
16127 2022-04-11 Jakub Jelinek <jakub@redhat.com>
16128
16129 PR tree-optimization/104639
16130 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
16131 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
16132 into x != cst3.
16133
16134 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
16135
16136 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
16137 sign bit of the source ends up in CC.
16138
16139 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
16140
16141 PR ipa/103376
16142 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
16143 flag.
16144
16145 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
16146
16147 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
16148 nondeterministic and side_effects flags.
16149
16150 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
16151
16152 PR target/105157
16153 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
16154 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
16155 (TARGET_CPU_MASK): Likewise.
16156 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
16157 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
16158 (aarch64_get_arch): Likewise.
16159 (aarch64_override_options): Use TARGET_CPU_NBITS.
16160
16161 2022-04-08 Richard Biener <rguenther@suse.de>
16162
16163 PR tree-optimization/105198
16164 * tree-predcom.cc (find_looparound_phi): Check whether
16165 the found memory location of the entry value is clobbered
16166 inbetween the value we want to use and loop entry.
16167
16168 2022-04-08 Jakub Jelinek <jakub@redhat.com>
16169
16170 PR tree-optimization/105189
16171 * fold-const.cc (make_range_step): Fix up handling of
16172 (unsigned) x +[low, -] ranges for signed x if low fits into
16173 typeof (x).
16174
16175 2022-04-08 Richard Biener <rguenther@suse.de>
16176
16177 PR tree-optimization/105175
16178 * tree-vect-stmts.cc (vectorizable_operation): Suppress
16179 -Wvector-operation-performance if using emulated vectors.
16180 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
16181 -Wvector-operation-performance when suppressed.
16182 (expand_vector_parallel): Likewise.
16183 (expand_vector_comparison): Likewise.
16184 (expand_vector_condition): Likewise.
16185 (lower_vec_perm): Likewise.
16186 (expand_vector_conversion): Likewise.
16187
16188 2022-04-07 Tamar Christina <tamar.christina@arm.com>
16189
16190 PR target/104409
16191 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
16192 (aarch64_general_init_builtins): Move LS64 code.
16193 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
16194 arm_acle.h
16195 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
16196 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
16197
16198 2022-04-07 Richard Biener <rguenther@suse.de>
16199 Jan Hubicka <hubicka@ucw.cz>
16200
16201 PR ipa/104303
16202 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
16203 ref_may_alias_global_p, ref_may_alias_global_p,
16204 stmt_may_clobber_global_p, pt_solution_includes_global): Add
16205 bool parameters indicating whether escaped locals should be
16206 considered global.
16207 * tree-ssa-structalias.cc (pt_solution_includes_global):
16208 When the new escaped_nonlocal_p flag is true also consider
16209 pt->vars_contains_escaped.
16210 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
16211 Pass down new escaped_nonlocal_p flag.
16212 (ref_may_alias_global_p): Likewise.
16213 (stmt_may_clobber_global_p): Likewise.
16214 (ref_may_alias_global_p_1): Likewise. For decls also
16215 query the escaped solution if true.
16216 (ref_may_access_global_memory_p): Remove.
16217 (modref_may_conflict): Use ref_may_alias_global_p with
16218 escaped locals considered global.
16219 (ref_maybe_used_by_stmt_p): Adjust.
16220 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
16221 Likewise.
16222 * tree-ssa-dse.cc (dse_classify_store): Likewise.
16223 * trans-mem.cc (thread_private_new_memory): Likewise, but
16224 consider escaped locals global.
16225 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
16226
16227 2022-04-07 Richard Biener <rguenther@suse.de>
16228
16229 PR tree-optimization/105185
16230 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
16231 modref query again.
16232
16233 2022-04-07 Tamar Christina <tamar.christina@arm.com>
16234
16235 PR target/104049
16236 * config/aarch64/aarch64-simd.md
16237 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
16238 (reduc_plus_scal_<mode>): ... This.
16239 (reduc_plus_scal_v4sf): Moved.
16240 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
16241 (reduc_plus_scal_v2si): ... This.
16242
16243 2022-04-07 Jakub Jelinek <jakub@redhat.com>
16244
16245 PR tree-optimization/102586
16246 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
16247 langhook.
16248 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
16249 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
16250 * gimple-fold.cc (clear_padding_type): Use ftype instead of
16251 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
16252 name try the lang_hooks.types.classtype_as_base langhook and
16253 if it returns non-NULL, use that instead of ftype for recursive call.
16254
16255 2022-04-07 Jakub Jelinek <jakub@redhat.com>
16256
16257 PR tree-optimization/105150
16258 * tree.cc (tree_builtin_call_types_compatible_p): New function.
16259 (get_call_combined_fn): Use it.
16260
16261 2022-04-07 Richard Biener <rguenther@suse.de>
16262
16263 PR middle-end/105165
16264 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
16265 _Complex outputs.
16266
16267 2022-04-07 liuhongt <hongtao.liu@intel.com>
16268
16269 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
16270 Removed.
16271 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
16272 for mask_applied.
16273 (<code><mode>3<mask_name>): Ditto.
16274 (*<code><mode>3<mask_name>): Ditto.
16275 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
16276 real instruction.
16277 (VFB_512): Ditto.
16278 (VFB): Ditto.
16279
16280 2022-04-06 Jakub Jelinek <jakub@redhat.com>
16281
16282 PR rtl-optimization/104985
16283 * combine.cc (struct undo): Add where.regno member.
16284 (do_SUBST_MODE): Rename to ...
16285 (subst_mode): ... this. Change first argument from rtx * into int,
16286 operate on regno_reg_rtx[regno] and save regno into where.regno.
16287 (SUBST_MODE): Remove.
16288 (try_combine): Use subst_mode instead of SUBST_MODE, change first
16289 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
16290 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
16291 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
16292 instead of *undo->where.r.
16293 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
16294 argument from regno_reg_rtx[whatever] to whatever.
16295
16296 2022-04-06 Jakub Jelinek <jakub@redhat.com>
16297
16298 PR target/105069
16299 * config/sh/sh.opt (mdiv=): Add Save.
16300
16301 2022-04-06 Martin Liska <mliska@suse.cz>
16302
16303 PR driver/105096
16304 * common.opt: Document properly based on what it does.
16305 * gcc.cc (display_help): Unify with what we have in common.opt.
16306 * opts.cc (common_handle_option): Do not print undocumented
16307 options.
16308
16309 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
16310
16311 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
16312 cxx17_empty_base_field_p fields and set an indicator.
16313 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
16314 (mips_function_value_1): Inform psABI change about C++17 empty
16315 bases.
16316
16317 2022-04-06 Jakub Jelinek <jakub@redhat.com>
16318
16319 PR tree-optimization/105150
16320 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
16321 builtin_decl_explicit here...
16322 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
16323 here.
16324
16325 2022-04-06 Richard Biener <rguenther@suse.de>
16326
16327 PR tree-optimization/105173
16328 * tree-ssa-reassoc.cc (find_insert_point): Get extra
16329 insert_before output argument and compute it.
16330 (insert_stmt_before_use): Adjust.
16331 (rewrite_expr_tree): Likewise.
16332
16333 2022-04-06 Richard Biener <rguenther@suse.de>
16334
16335 PR ipa/105166
16336 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
16337 out for non-pointer arguments.
16338
16339 2022-04-06 Richard Biener <rguenther@suse.de>
16340
16341 PR tree-optimization/105163
16342 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
16343 negated abnormals.
16344
16345 2022-04-06 Jakub Jelinek <jakub@redhat.com>
16346
16347 PR tree-optimization/105150
16348 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
16349 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
16350 preferrably on builtin_decl_explicit decl rather than fndecl.
16351 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
16352 gimple_builtin_call_types_compatible_p here.
16353
16354 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
16355
16356 PR tree-optimization/103761
16357 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
16358 the ncopies parameter with an slp_node parameter. Calculate the
16359 number of vectors based on it and vectype. Rename lambda to
16360 group_memory_nvectors.
16361 (vectorizable_store, vectorizable_load): Update calls accordingly.
16362
16363 2022-04-06 Martin Liska <mliska@suse.cz>
16364
16365 * doc/invoke.texi: Document it.
16366
16367 2022-04-06 Richard Biener <rguenther@suse.de>
16368
16369 PR tree-optimization/105148
16370 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
16371 2 and 3 of ARRAY_REFs.
16372
16373 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
16374
16375 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
16376 (*andnottf3): Replace with...
16377 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
16378
16379 2022-04-06 Richard Biener <rguenther@suse.de>
16380
16381 PR tree-optimization/105142
16382 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
16383 basic-block parameter.
16384 (maybe_fold_or_comparisons): Likewise.
16385 * gimple-fold.cc (follow_outer_ssa_edges): New.
16386 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
16387 when an outer condition basic-block is specified.
16388 (and_comparisons_1, and_var_with_comparison,
16389 and_var_with_comparison_1, or_comparisons_1,
16390 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
16391 down the outer condition basic-block.
16392 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
16393 basic-block of the outer condition.
16394
16395 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
16396
16397 PR target/105002
16398 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
16399 comparison codes UNLT/UNLE/UNGT/UNGE.
16400
16401 2022-04-05 David Malcolm <dmalcolm@redhat.com>
16402
16403 * doc/extend.texi (Common Function Attributes): Document that
16404 'access' does not imply 'nonnull'.
16405
16406 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
16407
16408 PR target/105139
16409 * config/i386/mmx.md (*movv2qi_internal):
16410 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
16411
16412 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
16413
16414 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
16415 define_expand and turn operands 0 and 1 from REGs to MEMs.
16416 (*aarch64_cpymemdi): New pattern.
16417 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
16418 from a REG to a MEM.
16419 (*aarch64_setmemdi): New pattern.
16420 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
16421 copy_to_mode_reg on all three registers. Replace the original
16422 MEM addresses rather than creating wild reads and writes.
16423 (aarch64_expand_setmem_mops): Likewise for the size and for the
16424 destination memory and address.
16425
16426 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
16427
16428 PR target/103147
16429 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
16430 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
16431 from aarch64_simd_switcher.
16432 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
16433 New variable.
16434 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
16435 (register_tuple_type): Add more asserts. Expect the alignment
16436 of the structure to be subject to flag_pack_struct and
16437 maximum_field_alignment. Set aarch64_simd_tuple_modes.
16438 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
16439 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
16440 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
16441 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
16442 while calling aarch64_init_simd_builtins.
16443 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
16444 (sve_switcher::~sve_switcher): Remove code now performed by
16445 aarch64_simd_switcher.
16446
16447 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
16448
16449 PR target/104897
16450 * config/aarch64/aarch64-sve-builtins.cc
16451 (function_resolver::infer_vector_or_tuple_type): Use error_n
16452 for "%d vectors" messages.
16453
16454 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
16455
16456 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
16457 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
16458 current clause.
16459
16460 2022-04-05 Richard Biener <rguenther@suse.de>
16461
16462 PR c/105151
16463 * passes.def (pass_walloca): Move early instance into
16464 pass_build_ssa_passes to make SSA form available.
16465
16466 2022-04-05 liuhongt <hongtao.liu@intel.com>
16467
16468 PR target/101908
16469 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
16470 function
16471 (ix86_reorg): Call ix86_split_stlf_stall_load.
16472 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
16473 param.
16474
16475 2022-04-05 Alexandre Oliva <oliva@adacore.com>
16476
16477 * targhooks.cc (default_zero_call_used_regs): Attempt to group
16478 regs that the target refuses to use in their natural modes.
16479 (zcur_select_mode_rtx): New.
16480 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
16481 (hard_regno_max_nregs): Define.
16482 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
16483
16484 2022-04-04 Alex Coplan <alex.coplan@arm.com>
16485
16486 * doc/match-and-simplify.texi: Fix typos.
16487
16488 2022-04-04 Jakub Jelinek <jakub@redhat.com>
16489
16490 PR target/105144
16491 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
16492 only if configured with --enable-maintainer-mode, otherwise compare
16493 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
16494 if they differ, emit a message and fail.
16495
16496 2022-04-04 Jakub Jelinek <jakub@redhat.com>
16497
16498 PR target/105144
16499 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
16500 * config/aarch64/aarch64-tune.md: Regenerated.
16501
16502 2022-04-04 Richard Biener <rguenther@suse.de>
16503
16504 PR tree-optimization/105132
16505 * tree-vect-stmts.cc (vectorizable_operation): Check that
16506 the input vectors have the same number of elements.
16507
16508 2022-04-04 Richard Biener <rguenther@suse.de>
16509
16510 PR middle-end/105140
16511 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
16512
16513 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
16514
16515 PR target/104987
16516 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
16517 (delay slot descripts): Use different delay slot description when
16518 the insn as the "bbi" attribute.
16519 (bbi, bbin patterns): Set the bbi attribute to yes.
16520
16521 2022-04-03 Jakub Jelinek <jakub@redhat.com>
16522
16523 PR target/105123
16524 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
16525 using word as target for expand_simple_binop when doing ASHIFT and
16526 IOR.
16527
16528 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
16529
16530 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
16531 NULL before dereferencing it.
16532
16533 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
16534
16535 * config/i386/i386.cc (zero_all_st_registers): Return the value of
16536 num_of_st.
16537 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
16538 the return value of zero_all_st_registers.
16539 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
16540 * function.cc (gen_call_used_regs_seq): Add an assertion.
16541 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
16542
16543 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
16544
16545 PR target/102024
16546 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
16547 fields, and inform if it causes a psABI change.
16548
16549 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
16550
16551 PR target/102024
16552 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
16553 zero-width bit-fields and set up an indicator.
16554 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
16555 (mips_function_value_1): Diagnose when the presense of a C++
16556 zero-width bit-field changes function returning in GCC 12.
16557
16558 2022-04-01 Jakub Jelinek <jakub@redhat.com>
16559
16560 PR tree-optimization/104645
16561 * tree-ssa-phiopt.cc (value_replacement): If assign has
16562 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
16563 statement with constant evaluation.
16564
16565 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
16566
16567 * config/mips/mips.cc (mips_expand_prologue):
16568 IPL is 8bit for MCU ASE.
16569
16570 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
16571
16572 PR target/104004
16573 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
16574 (MTFSB0): Likewise.
16575 (MTFSB1): Likewise.
16576 (SET_FPSCR_RN): Likewise.
16577 (SET_FPSCR_DRN): Mark nosoft and no32bit.
16578
16579 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
16580
16581 * doc/options.texi (Option file format): Clarifications around
16582 option definition records' help texts.
16583
16584 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
16585
16586 * optc-gen.awk <END>: Fix "Multiple different help strings" error
16587 diagnostic.
16588
16589 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
16590
16591 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
16592 determine_suggested_unroll_factor and m_has_avg.
16593 (determine_suggested_unroll_factor): New function.
16594 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
16595 to set m_nosve_pattern.
16596 (aarch64_vector_costs::finish_costs): Use
16597 determine_suggested_unroll_factor.
16598 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
16599 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
16600
16601 2022-03-31 Martin Jambor <mjambor@suse.cz>
16602
16603 PR ipa/103083
16604 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
16605 (ipa_get_jf_ancestor_keep_null): New function.
16606 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
16607 ancestor function.
16608 (compute_complex_assign_jump_func): Pass false to keep_null
16609 parameter of ipa_set_ancestor_jf.
16610 (compute_complex_ancestor_jump_func): Pass true to keep_null
16611 parameter of ipa_set_ancestor_jf.
16612 (update_jump_functions_after_inlining): Carry over keep_null from the
16613 original ancestor jump-function or merge them.
16614 (ipa_write_jump_function): Stream keep_null flag.
16615 (ipa_read_jump_function): Likewise.
16616 (ipa_print_node_jump_functions_for_edge): Print the new flag.
16617 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
16618 member function known_nonzero_p.
16619 (ipcp_bits_lattice::known_nonzero_p): New.
16620 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
16621 observe it.
16622 (ipcp_bits_lattice::meet_with): Likewise.
16623 (propagate_bits_across_jump_function): Simplify. Pass true in
16624 drop_all_ones when it is necessary.
16625 (propagate_aggs_across_jump_function): Take care of keep_null
16626 flag.
16627 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
16628 jump functions.
16629
16630 2022-03-31 Martin Jambor <mjambor@suse.cz>
16631
16632 PR ipa/102513
16633 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
16634 which do not fit the known value_range.
16635
16636 2022-03-31 Martin Jambor <mjambor@suse.cz>
16637
16638 PR ipa/103171
16639 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
16640 always when an ADDR_EXPR constant is known to reach a load because
16641 of inlining, not just when removing an ADDR reference.
16642
16643 2022-03-31 Richard Biener <rguenther@suse.de>
16644
16645 PR tree-optimization/105109
16646 * tree-ssa.cc (execute_update_addresses_taken): Suppress
16647 diagnostics on the load of the other complex component.
16648
16649 2022-03-31 Tom de Vries <tdevries@suse.de>
16650
16651 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
16652
16653 2022-03-31 Richard Biener <rguenther@suse.de>
16654
16655 PR rtl-optimization/105091
16656 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
16657 bases.
16658
16659 2022-03-31 Richard Biener <rguenther@suse.de>
16660
16661 Revert:
16662 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
16663
16664 PR target/102125
16665 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
16666 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
16667
16668 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
16669
16670 * gcov-io.cc (gcov_read_string): Reword documentation comment.
16671
16672 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
16673
16674 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
16675 stanza.
16676 (NEG_V4SF): Likewise.
16677 (NEG_V4SI): Likewise.
16678 (NEG_V8HI): Likewise.
16679 (NEG_V2DF): Move to [vsx] stanza.
16680 (NEG_V2DI): Likewise.
16681
16682 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
16683
16684 PR middle-end/105032
16685 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
16686
16687 2022-03-30 Tom de Vries <tdevries@suse.de>
16688 Tobias Burnus <tobias@codesourcery.com>
16689
16690 * doc/invoke.texi (march): Document __PTX_SM__.
16691 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
16692 __PTX_ISA_VERSION_MINOR__.
16693
16694 2022-03-30 Jakub Jelinek <jakub@redhat.com>
16695
16696 PR sanitizer/105093
16697 * ubsan.cc (instrument_object_size): If t is equal to inner and
16698 is a decl other than global var, punt. When emitting call to
16699 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
16700
16701 2022-03-30 Jakub Jelinek <jakub@redhat.com>
16702
16703 PR tree-optimization/105094
16704 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
16705 bitsize <= 0 rather than just == 0.
16706
16707 2022-03-30 Tom de Vries <tdevries@suse.de>
16708
16709 * doc/invoke.texi (misa, mptx): Update.
16710 (march, march-map): Add.
16711
16712 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
16713
16714 * opt-functions.awk (n_args): New function.
16715 (lang_enabled_by): Merge function into...
16716 * optc-gen.awk <END>: ... sole user here.
16717 Improve diagnostics.
16718
16719 2022-03-29 Marek Polacek <polacek@redhat.com>
16720 Jakub Jelinek <jakub@redhat.com>
16721
16722 PR middle-end/103597
16723 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
16724 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
16725 (gimplify_cond_expr): Set UNUSED_LABEL_P.
16726 * tree.h (UNUSED_LABEL_P): New.
16727
16728 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
16729
16730 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
16731 be any VSX register.
16732
16733 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
16734
16735 PR target/102024
16736 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
16737 zero-sized bit-fields. Detect cases where a warning may be needed.
16738 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
16739 zero-sized bit-field has caused parameter passing to change.
16740
16741 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
16742
16743 PR target/102024
16744 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
16745 bit-fields. Detect cases where a warning may be needed.
16746 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
16747 a zero-sized bit-field has caused parameter passing to change.
16748
16749 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
16750
16751 PR target/96882
16752 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
16753 ARM_PCS_AAPCS_LOCAL.
16754
16755 2022-03-29 Tom de Vries <tdevries@suse.de>
16756
16757 PR target/104857
16758 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
16759 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
16760 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
16761 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
16762
16763 2022-03-29 Tom de Vries <tdevries@suse.de>
16764
16765 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
16766 is ignored.
16767
16768 2022-03-29 Tom de Vries <tdevries@suse.de>
16769
16770 PR target/104714
16771 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
16772
16773 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
16774
16775 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
16776 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
16777 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
16778 (TARGET_USE_GATHER_4PARTS): New macro.
16779 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
16780 (X86_TUNE_USE_GATHER_4PARTS): New tune
16781
16782 2022-03-29 Tom de Vries <tdevries@suse.de>
16783
16784 * config/nvptx/nvptx.opt (march): Add alias of misa.
16785
16786 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
16787 Lulu Cheng <chenglulu@loongson.cn>
16788
16789 * doc/install.texi: Add LoongArch options section.
16790 * doc/invoke.texi: Add LoongArch options section.
16791 * doc/md.texi: Add LoongArch options section.
16792
16793 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
16794 Lulu Cheng <chenglulu@loongson.cn>
16795
16796 * config/loongarch/loongarch-c.cc
16797
16798 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
16799 Lulu Cheng <chenglulu@loongson.cn>
16800
16801 * config/loongarch/larchintrin.h: New file.
16802 * config/loongarch/loongarch-builtins.cc: New file.
16803
16804 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
16805 Lulu Cheng <chenglulu@loongson.cn>
16806
16807 * config/host-linux.cc: Add LoongArch support.
16808 * config/loongarch/loongarch-protos.h: New file.
16809 * config/loongarch/loongarch-tune.h: Likewise.
16810 * config/loongarch/loongarch.cc: Likewise.
16811 * config/loongarch/loongarch.h: Likewise.
16812
16813 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
16814 Lulu Cheng <chenglulu@loongson.cn>
16815
16816 * config/loongarch/constraints.md: New file.
16817 * config/loongarch/generic.md: New file.
16818 * config/loongarch/la464.md: New file.
16819 * config/loongarch/loongarch-ftypes.def: New file.
16820 * config/loongarch/loongarch-modes.def: New file.
16821 * config/loongarch/loongarch.md: New file.
16822 * config/loongarch/predicates.md: New file.
16823 * config/loongarch/sync.md: New file.
16824
16825 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
16826 Lulu Cheng <chenglulu@loongson.cn>
16827
16828 * configure: Regenerate file.
16829
16830 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
16831 Lulu Cheng <chenglulu@loongson.cn>
16832
16833 * common/config/loongarch/loongarch-common.cc: New file.
16834 * config/loongarch/genopts/genstr.sh: New file.
16835 * config/loongarch/genopts/loongarch-strings: New file.
16836 * config/loongarch/genopts/loongarch.opt.in: New file.
16837 * config/loongarch/loongarch-str.h: New file.
16838 * config/loongarch/gnu-user.h: New file.
16839 * config/loongarch/linux.h: New file.
16840 * config/loongarch/loongarch-cpu.cc: New file.
16841 * config/loongarch/loongarch-cpu.h: New file.
16842 * config/loongarch/loongarch-def.c: New file.
16843 * config/loongarch/loongarch-def.h: New file.
16844 * config/loongarch/loongarch-driver.cc: New file.
16845 * config/loongarch/loongarch-driver.h: New file.
16846 * config/loongarch/loongarch-opts.cc: New file.
16847 * config/loongarch/loongarch-opts.h: New file.
16848 * config/loongarch/loongarch.opt: New file.
16849 * config/loongarch/t-linux: New file.
16850 * config/loongarch/t-loongarch: New file.
16851 * config.gcc: Add LoongArch support.
16852 * configure.ac: Add LoongArch support.
16853
16854 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
16855
16856 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
16857 typo.
16858
16859 2022-03-29 Richard Biener <rguenther@suse.de>
16860
16861 PR tree-optimization/105080
16862 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
16863 loops and SCEV.
16864
16865 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
16866
16867 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
16868 (output_ctf_vars): Likewise.
16869
16870 2022-03-28 Jason Merrill <jason@redhat.com>
16871
16872 PR c++/59426
16873 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
16874
16875 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
16876
16877 PR target/105068
16878 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
16879 "Yw" in clobber.
16880
16881 2022-03-28 Tom de Vries <tdevries@suse.de>
16882
16883 PR target/104818
16884 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
16885 * config/nvptx/nvptx-gen.opt: Regenerate.
16886 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
16887 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
16888 gen-opt.sh.
16889
16890 2022-03-28 David Malcolm <dmalcolm@redhat.com>
16891
16892 PR analyzer/104308
16893 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
16894 to loads then stores, set the location of the new load stmt.
16895
16896 2022-03-28 Richard Biener <rguenther@suse.de>
16897
16898 PR tree-optimization/105070
16899 * tree-switch-conversion.h
16900 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
16901 argument.
16902 * tree-switch-conversion.cc
16903 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
16904 cond with location.
16905 (bit_test_cluster::emit): Annotate all generated expressions
16906 with location.
16907
16908 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
16909
16910 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
16911
16912 2022-03-28 liuhongt <hongtao.liu@intel.com>
16913
16914 PR target/105066
16915 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
16916 alternative 4 from sse4_noavx to noavx.
16917
16918 2022-03-28 Jakub Jelinek <jakub@redhat.com>
16919
16920 PR tree-optimization/105056
16921 * tree-predcom.cc (component::component): Initialize also comp_step.
16922
16923 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
16924
16925 PR target/105068
16926 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
16927 "Yw".
16928
16929 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
16930
16931 PR middle-end/104885
16932 * calls.cc (mark_stack_region_used): Check that the region
16933 is within the allocated size of stack_usage_map.
16934
16935 2022-03-26 Jakub Jelinek <jakub@redhat.com>
16936
16937 PR rtl-optimization/103775
16938 * recog.cc (check_invalid_inc_dec): New function.
16939 (insn_invalid_p): Return 1 if REG_INC operand overlaps
16940 any stored REGs.
16941
16942 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
16943
16944 PR target/105058
16945 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
16946 (aes<aesklvariant>u8): Likewise.
16947
16948 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
16949
16950 PR target/105052
16951 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
16952 Replace "Yv" with "x".
16953 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
16954 (ssse3_psign<mode>3): Likewise.
16955
16956 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
16957
16958 * reload.cc (find_reloads): Align comment with code where
16959 considering the intersection of register classes then tweaking the
16960 regclass for the current alternative or rejecting it.
16961
16962 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
16963
16964 PR target/104882
16965 Revert
16966 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
16967
16968 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
16969 (mve_vec_unpack<US>_hi_<mode>): Delete.
16970 (@mve_vec_pack_trunc_lo_<mode>): Delete.
16971 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
16972 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
16973 from vec-common.md.
16974 (vec_unpack<US>_lo_<mode>): Likewise.
16975 (vec_pack_trunc_<mode>): Rename from
16976 neon_quad_vec_pack_trunc_<mode>.
16977 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
16978 (vec_unpack<US>_lo_<mode>): Delete.
16979 (vec_pack_trunc_<mode>): Delete.
16980
16981 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
16982
16983 PR middle-end/104971
16984 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
16985 regs to clear remove_p flag.
16986
16987 2022-03-25 Richard Biener <rguenther@suse.de>
16988
16989 PR tree-optimization/105053
16990 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
16991 the correct live-out stmt for a reduction chain.
16992
16993 2022-03-25 Richard Biener <rguenther@suse.de>
16994
16995 PR middle-end/105049
16996 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
16997 CONSTRUCTOR first elements.
16998
16999 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
17000
17001 PR analyzer/103533
17002 * doc/invoke.texi (Static Analyzer Options): Move
17003 @ignore block after @gccoptlist's '}' for 'make pdf'.
17004
17005 2022-03-25 David Malcolm <dmalcolm@redhat.com>
17006
17007 PR analyzer/104954
17008 * doc/invoke.texi (Static Analyzer Options): Add
17009 -fdump-analyzer-untracked.
17010
17011 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
17012
17013 PR analyzer/103533
17014 * doc/invoke.texi: Document that enabling taint analyzer
17015 checker disables some warnings from `-fanalyzer`.
17016
17017 2022-03-24 Alexandre Oliva <oliva@adacore.com>
17018
17019 PR debug/104564
17020 * gimple-harden-conditionals.cc (detach_value): Keep temps
17021 anonymous.
17022
17023 2022-03-24 Alexandre Oliva <oliva@adacore.com>
17024
17025 PR middle-end/104975
17026 * gimple-harden-conditionals.cc
17027 (pass_harden_compares::execute): Force split in case of
17028 multiple edges.
17029
17030 2022-03-24 Jakub Jelinek <jakub@redhat.com>
17031
17032 PR c++/105035
17033 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
17034 field0 or field1 is not a FIELD_DECL, return false.
17035
17036 2022-03-24 Richard Biener <rguenther@suse.de>
17037
17038 * tree-predcom.cc (chain::chain): Add CTOR.
17039 (component::component): Likewise.
17040 (pcom_worker::release_chain): Use delete.
17041 (release_components): Likewise.
17042 (pcom_worker::filter_suitable_components): Likewise.
17043 (pcom_worker::split_data_refs_to_components): Use new.
17044 (make_invariant_chain): Likewise.
17045 (make_rooted_chain): Likewise.
17046 (pcom_worker::combine_chains): Likewise.
17047 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
17048 Make sure to release previously constructed scalar_results.
17049 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
17050 for vec_offsets.
17051 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
17052 Release m_flag_set_edges.
17053
17054 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
17055
17056 PR tree-optimization/104970
17057 * tree-object-size.cc (parm_object_size): Restrict size
17058 computation scenarios to explicit access attributes.
17059
17060 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
17061
17062 PR target/104967
17063 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
17064 function types.
17065
17066 2022-03-23 Richard Biener <rguenther@suse.de>
17067
17068 PR target/102125
17069 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
17070 use of movmisalign when either the source or destination
17071 decl is properly aligned.
17072
17073 2022-03-23 Richard Biener <rguenther@suse.de>
17074
17075 PR rtl-optimization/105028
17076 * ira-color.cc (form_threads_from_copies): Remove unnecessary
17077 copying of the sorted_copies tail.
17078
17079 2022-03-23 Martin Liska <mliska@suse.cz>
17080
17081 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
17082 Use %qs in format.
17083 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
17084 Reword the error message.
17085
17086 2022-03-23 liuhongt <hongtao.liu@intel.com>
17087
17088 PR target/104976
17089 * config/i386/sse.md (ssePSmodelower): New.
17090 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
17091 lowpart_subreg to avoid NULL_RTX.
17092 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
17093 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
17094 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
17095 <avx512>_<complexopname>_<mode>_mask<round_name>,
17096 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
17097 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
17098 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
17099 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
17100 float<floatunssuffix><mode>v4hf2,
17101 float<floatunssuffix>v2div2hf2,
17102 fix<fixunssuffix>_truncv4hf<mode>2,
17103 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
17104 extendv2hfv2df2,
17105 trunc<mode>v4hf2,truncv2dfv2hf2,
17106 *avx512bw_permvar_truncv16siv16hi_1,
17107 *avx512bw_permvar_truncv16siv16hi_1_hf,
17108 *avx512f_permvar_truncv8siv8hi_1,
17109 *avx512f_permvar_truncv8siv8hi_1_hf,
17110 *avx512f_vpermvar_truncv8div8si_1,
17111 *avx512f_permvar_truncv32hiv32qi_1,
17112 *avx512f_permvar_truncv16hiv16qi_1,
17113 *avx512f_permvar_truncv4div4si_1,
17114 *avx512f_pshufb_truncv8hiv8qi_1,
17115 *avx512f_pshufb_truncv4siv4hi_1,
17116 *avx512f_pshufd_truncv2div2si_1,
17117 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
17118 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
17119
17120 2022-03-22 Tom de Vries <tdevries@suse.de>
17121
17122 PR target/104925
17123 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
17124 Use % as register prefix.
17125
17126 2022-03-22 Tom de Vries <tdevries@suse.de>
17127
17128 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
17129 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
17130 mexperimental.
17131
17132 2022-03-22 Tom de Vries <tdevries@suse.de>
17133
17134 * config/nvptx/nvptx.opt (mexperimental): New option.
17135
17136 2022-03-22 Tom de Vries <tdevries@suse.de>
17137
17138 PR target/104957
17139 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
17140 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
17141 for alias.
17142 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
17143 (nvptx_asm_output_def_from_decls): New function.
17144 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
17145 gcc_unreachable ().
17146 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
17147 nvptx_asm_output_def_from_decls.
17148 * config/nvptx/nvptx.opt (malias): New opt.
17149
17150 2022-03-22 Tom de Vries <tdevries@suse.de>
17151
17152 PR target/104916
17153 PR target/104783
17154 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
17155 sync (or uniform warp check for mptx < 6.0).
17156
17157 2022-03-22 Richard Biener <rguenther@suse.de>
17158
17159 PR tree-optimization/105012
17160 * tree-if-conv.cc (ifcvt_local_dce): Only call
17161 dse_classify_store when we have a VDEF.
17162
17163 2022-03-22 Martin Liska <mliska@suse.cz>
17164
17165 PR target/104902
17166 * config/nvptx/nvptx.cc (handle_ptx_version_option):
17167 Fix option wrapping in an error message.
17168
17169 2022-03-22 Martin Liska <mliska@suse.cz>
17170
17171 PR target/104903
17172 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
17173 Wrap const keyword.
17174
17175 2022-03-22 Martin Liska <mliska@suse.cz>
17176
17177 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
17178 name.
17179
17180 2022-03-22 Martin Liska <mliska@suse.cz>
17181
17182 PR target/104898
17183 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
17184 Use %qs instead of (%qs).
17185
17186 2022-03-22 Martin Liska <mliska@suse.cz>
17187
17188 PR target/104898
17189 * config/i386/i386-options.cc (ix86_option_override_internal):
17190 Use '%qs' instead of '(%qs)'.
17191
17192 2022-03-22 Martin Liska <mliska@suse.cz>
17193
17194 PR target/104898
17195 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
17196 Use 'qs' and remove usage '(%qs)'.
17197 (aarch64_handle_attr_cpu): Likewise.
17198 (aarch64_handle_attr_tune): Likewise.
17199 (aarch64_handle_attr_isa_flags): Likewise.
17200
17201 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17202 Andre Vieira <andre.simoesdiasvieira@arm.com>
17203
17204 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
17205 struct.
17206 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
17207 cost.
17208 (neoverse512tvb_tunings): Likewise.
17209
17210 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17211 Andre Vieira <andre.simoesdiasvieira@arm.com>
17212
17213 * config/aarch64/aarch64.cc (demeter_addrcost_table,
17214 demeter_regmove_cost, demeter_advsimd_vector_cost,
17215 demeter_sve_vector_cost, demeter_scalar_issue_info,
17216 demeter_advsimd_issue_info, demeter_sve_issue_info,
17217 demeter_vec_issue_info, demeter_vector_cost,
17218 demeter_tunings): New tuning structs.
17219 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
17220 tuning.
17221 * config/aarch64/aarch64-cores.def: Add entry for demeter.
17222 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
17223
17224 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17225 Andre Vieira <andre.simoesdiasvieira@arm.com>
17226
17227 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
17228 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
17229 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
17230 tunings to use cpu_memmov_cost struct.
17231
17232 2022-03-22 Tamar Christina <tamar.christina@arm.com>
17233 Andre Vieira <andre.simoesdiasvieira@arm.com>
17234
17235 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
17236 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
17237 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
17238 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
17239 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
17240 (neoversen2_tunings): Use new structs and update tuning flags.
17241 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
17242 tuning.
17243
17244 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
17245
17246 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
17247 bit.
17248
17249 2022-03-22 liuhongt <hongtao.liu@intel.com>
17250
17251 PR target/104982
17252 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
17253 following splitter to reversed condition.
17254
17255 2022-03-22 Jakub Jelinek <jakub@redhat.com>
17256
17257 PR rtl-optimization/104989
17258 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
17259 sorry for passing too large argument, instead set sibcall_failure
17260 for pass == 0, or a new normal_failure flag otherwise. If
17261 normal_failure is set, don't assert all stack has been deallocated
17262 at the end and throw away the whole insn sequence.
17263
17264 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
17265
17266 * print-tree.cc: Change array length
17267
17268 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
17269
17270 PR target/104978
17271 * config/i386/sse.md
17272 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
17273 Use avx512f_movsf_mask instead of vmovaps or vblend, and
17274 force_reg before lowpart_subreg.
17275 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
17276
17277 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
17278
17279 PR target/105000
17280 * common/config/i386/i386-common.cc
17281 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
17282 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
17283
17284 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
17285
17286 PR target/104998
17287 * common/config/i386/cpuinfo.h (get_available_features): Pass
17288 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
17289 bit_AESKLE is set.
17290
17291 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
17292
17293 PR middle-end/104869
17294 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
17295 (clobber_group::next_clobber): Likewise.
17296 (def_lookup::prev_def): Rename to...
17297 (def_lookup::last_def_of_prev_group): ...this.
17298 (def_lookup::next_def): Rename to...
17299 (def_lookup::first_def_of_next_group): ...this.
17300 (def_lookup::matching_or_prev_def): Rename to...
17301 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
17302 (def_lookup::matching_or_next_def): Rename to...
17303 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
17304 (def_lookup::prev_def): New function, taking the lookup insn as
17305 argument.
17306 (def_lookup::next_def): Likewise.
17307 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
17308 (def_lookup::last_def_of_prev_group): ...this.
17309 (def_lookup::next_def): Rename to...
17310 (def_lookup::first_def_of_next_group): ...this.
17311 (def_lookup::matching_or_prev_def): Rename to...
17312 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
17313 (def_lookup::matching_or_next_def): Rename to...
17314 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
17315 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
17316 above renaming.
17317 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
17318 (clobber_group::next_clobber): Likewise.
17319 (def_lookup::prev_def): Likewise.
17320 (def_lookup::next_def): Likewise.
17321 (function_info::make_use_available): Pass the lookup insn to
17322 def_lookup::prev_def and def_lookup::next_def.
17323
17324 2022-03-21 Martin Liska <mliska@suse.cz>
17325
17326 * doc/invoke.texi: Document min-pagesize parameter.
17327
17328 2022-03-21 Richard Biener <rguenther@suse.de>
17329
17330 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
17331 we are estimating niter of loop.
17332
17333 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
17334
17335 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
17336 Update flag name and mask name.
17337 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
17338 misc macro for vector extensions.
17339 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
17340 (MASK_VECTOR_ELEN_32): ... this.
17341 (MASK_VECTOR_EEW_64): Rename to ...
17342 (MASK_VECTOR_ELEN_64): ... this.
17343 (MASK_VECTOR_EEW_FP_32): Rename to ...
17344 (MASK_VECTOR_ELEN_FP_32): ... this.
17345 (MASK_VECTOR_EEW_FP_64): Rename to ...
17346 (MASK_VECTOR_ELEN_FP_64): ... this.
17347 (TARGET_VECTOR_ELEN_32): New.
17348 (TARGET_VECTOR_ELEN_64): Ditto.
17349 (TARGET_VECTOR_ELEN_FP_32): Ditto.
17350 (TARGET_VECTOR_ELEN_FP_64): Ditto.
17351 (TARGET_MIN_VLEN): Ditto.
17352 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
17353 (riscv_vector_elen_flags): ... this.
17354
17355 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
17356
17357 PR target/104977
17358 * config/i386/sse.md
17359 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
17360 Correct round operand for intel dialect.
17361
17362 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
17363
17364 * diagnostic.cc (diagnostic_cc_tests): Rename to...
17365 (c_diagnostic_cc_tests): ...this.
17366 * opt-problem.cc (opt_problem_cc_tests): Rename to...
17367 (c_opt_problem_cc_tests): ...this.
17368 * selftest-run-tests.cc (selftest::run_tests): No longer run
17369 opt_problem_cc_tests or diagnostic_cc_tests.
17370 * selftest.h (diagnostic_cc_tests): Remove declaration.
17371 (opt_problem_cc_tests): Likewise.
17372
17373 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
17374
17375 PR jit/63854
17376 * hash-traits.h (struct typed_const_free_remove): New.
17377 (struct free_string_hash): New.
17378 * pass_manager.h: Use free_string_hash.
17379 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
17380 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
17381
17382 2022-03-19 Jakub Jelinek <jakub@redhat.com>
17383
17384 PR middle-end/104971
17385 * config/i386/i386-expand.cc
17386 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
17387 don't push/pop anything and just return const0_rtx.
17388
17389 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
17390
17391 PR rtl-optimization/104961
17392 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
17393
17394 2022-03-18 Jason Merrill <jason@redhat.com>
17395
17396 * tree.h (IDENTIFIER_LENGTH): Add comment.
17397
17398 2022-03-18 Jakub Jelinek <jakub@redhat.com>
17399
17400 PR middle-end/99578
17401 PR middle-end/100680
17402 PR tree-optimization/100834
17403 * params.opt (--param=min-pagesize=): New parameter.
17404 * pointer-query.cc
17405 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
17406 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
17407 of zero for pointer constants equal or larger than min-pagesize.
17408
17409 2022-03-18 Tom de Vries <tdevries@suse.de>
17410
17411 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
17412 Set gfor location only when dealing with a OMP_TASKLOOP.
17413
17414 2022-03-18 Tom de Vries <tdevries@suse.de>
17415
17416 * gimplify.cc (gimplify_omp_for): Set taskloop location.
17417
17418 2022-03-18 Tom de Vries <tdevries@suse.de>
17419
17420 PR target/104952
17421 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
17422 is executed unconditionally.
17423
17424 2022-03-18 liuhongt <hongtao.liu@intel.com>
17425
17426 PR target/104974
17427 * config/i386/i386.md (*movhi_internal): Set attr type from HI
17428 to HF for alternative 12 under TARGET_AVX512FP16.
17429
17430 2022-03-18 Cui,Lili <lili.cui@intel.com>
17431
17432 PR target/104963
17433 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
17434 * doc/invoke.texi: Update documents for Intel sapphirerapids.
17435
17436 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
17437
17438 PR target/86722
17439 PR tree-optimization/90356
17440 * config/i386/i386.md (*movtf_internal): Don't guard
17441 standard_sse_constant_p clause by optimize_function_for_size_p.
17442 (*movdf_internal): Likewise.
17443 (*movsf_internal): Likewise.
17444
17445 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
17446
17447 PR tree-optimization/102943
17448 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
17449 dominators and apply intermediary outgoing edge ranges.
17450
17451 2022-03-17 Richard Biener <rguenther@suse.de>
17452
17453 PR tree-optimization/104960
17454 * passes.def: Add pass parameter to pass_sink_code, mark
17455 last one to unsplit edges.
17456 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
17457 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
17458 when we need to unsplit edges.
17459
17460 2022-03-17 Jakub Jelinek <jakub@redhat.com>
17461
17462 PR middle-end/103984
17463 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
17464 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
17465 and asan unpoisioning, then append the temporary sequence and
17466 finally the TARGET_EXPR_CLEANUP clobbers.
17467
17468 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
17469
17470 * config/i386/sse.md: Delete corrupt character/typo.
17471
17472 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
17473
17474 PR target/94680
17475 * config/i386/sse.md (sse2_movq128): New define_expand to
17476 preserve previous named instruction.
17477 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
17478 generalized to VI8F_128 (both V2DI and V2DF).
17479
17480 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
17481
17482 PR tree-optimization/104941
17483 * tree-object-size.cc (size_for_offset): Make useless conversion
17484 check lighter and assign result of fold_convert to OFFSET.
17485
17486 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
17487
17488 PR target/104890
17489 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
17490 pushing target("general-regs-only").
17491
17492 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
17493
17494 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
17495 Add version info for zk, zks and zkn.
17496
17497 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
17498
17499 * common/config/riscv/riscv-common.cc
17500 (riscv_combine_info): New.
17501 (riscv_subset_list::handle_combine_ext): Combine back into zk to
17502 maintain the canonical order in isa strings.
17503 (riscv_subset_list::parse): Ditto.
17504 * config/riscv/riscv-subset.h (handle_combine_ext): New.
17505
17506 2022-03-16 Richard Biener <rguenther@suse.de>
17507
17508 PR tree-optimization/102008
17509 * passes.def: Move the added code sinking pass before the
17510 preceeding phiopt pass.
17511
17512 2022-03-16 Patrick Palka <ppalka@redhat.com>
17513
17514 PR c++/96780
17515 * doc/invoke.texi (C++ Dialect Options): Document
17516 -ffold-simple-inlines.
17517
17518 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
17519
17520 PR tree-optimization/104942
17521 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
17522
17523 2022-03-16 Jakub Jelinek <jakub@redhat.com>
17524
17525 PR target/104910
17526 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
17527 imm rtx.
17528
17529 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
17530 Richard Biener <rguenther@suse.de>
17531
17532 * gimple-match-head.cc (single_use): Implement inline using a
17533 single loop.
17534
17535 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
17536
17537 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
17538 instead of HONOR_NANS.
17539 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
17540 this can't trap/signal.
17541
17542 2022-03-16 liuhongt <hongtao.liu@intel.com>
17543
17544 PR target/104946
17545 * config/i386/i386-builtin.def (BDESC): Add
17546 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
17547 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
17548 __builtin_ia32_blendvpd w/o sse4.2
17549
17550 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
17551
17552 PR target/104923
17553 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
17554 acceptable MEM addresses.
17555
17556 2022-03-15 Jakub Jelinek <jakub@redhat.com>
17557
17558 PR target/91229
17559 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
17560 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
17561 to warning calls.
17562
17563 2022-03-15 Jakub Jelinek <jakub@redhat.com>
17564
17565 PR target/104890
17566 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
17567 instead of general-regs-only.
17568
17569 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
17570 Marc Glisse <marc.glisse@inria.fr>
17571 Richard Biener <rguenther@suse.de>
17572
17573 PR tree-optimization/101895
17574 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
17575 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
17576
17577 2022-03-15 Jakub Jelinek <jakub@redhat.com>
17578
17579 PR rtl-optimization/104814
17580 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
17581 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
17582
17583 2022-03-15 Martin Sebor <msebor@redhat.com>
17584
17585 PR middle-end/104436
17586 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
17587 Check for warning suppression. Avoid by-value arguments transformed
17588 into by-transparent-reference.
17589
17590 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
17591 Uroš Bizjak <ubizjak@gmail.com>
17592
17593 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
17594 transformation when *zero_extend<mode>si2 is not available.
17595
17596 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
17597
17598 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
17599 * config/mips/mips.cc (mips_option_override): Make
17600 -fsanitize=address imply -fasynchronous-unwind-tables. This is
17601 needed by libasan for stack backtrace on MIPS.
17602 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
17603
17604 2022-03-14 Jakub Jelinek <jakub@redhat.com>
17605
17606 PR debug/104778
17607 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
17608 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
17609 call simplified the first operand into VOIDmode constant.
17610
17611 2022-03-14 Jakub Jelinek <jakub@redhat.com>
17612
17613 PR tree-optimization/102586
17614 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
17615 argument type should be pointer to trivially-copyable type unless it
17616 is address of a variable or parameter.
17617
17618 2022-03-14 Jakub Jelinek <jakub@redhat.com>
17619
17620 PR target/99754
17621 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
17622 first rather than last element of the vector, use __m32_u to do
17623 a really unaligned load, use just 0 instead of (int)0.
17624 (_mm_loadu_si16): Put loaded value into first rather than last
17625 element of the vector, use __m16_u to do a really unaligned load,
17626 use just 0 instead of (short)0.
17627
17628 2022-03-14 Jakub Jelinek <jakub@redhat.com>
17629
17630 PR other/104899
17631 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
17632 in diagnostic message - cannott -> cannot. Use %< and %> around
17633 names of attribute. Avoid too long line.
17634 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
17635 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
17636
17637 2022-03-14 liuhongt <hongtao.liu@intel.com>
17638
17639 PR target/104666
17640 * config/i386/i386-expand.cc
17641 (ix86_check_builtin_isa_match): New func.
17642 (ix86_expand_builtin): Move code to
17643 ix86_check_builtin_isa_match and call it.
17644 * config/i386/i386-protos.h
17645 (ix86_check_builtin_isa_match): Declare.
17646 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
17647 builtin into gimple when isa mismatches.
17648
17649 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
17650
17651 * doc/invoke.texi: Fix typos.
17652 * doc/tm.texi.in: Remove duplicated word.
17653 * doc/tm.texi: Regenerate.
17654
17655 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
17656
17657 PR target/104829
17658 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
17659 "ppc" and "ppc64" based on rs6000_cpu.
17660
17661 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
17662
17663 PR middle-end/100280
17664 PR middle-end/104892
17665 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
17666 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
17667
17668 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
17669
17670 PR middle-end/100280
17671 PR middle-end/104086
17672 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
17673 Mark variables used in 'present' clauses as addressable.
17674 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
17675 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
17676
17677 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
17678
17679 PR other/65095
17680 * tree-core.h (user_omp_claus_code_name): Declare function.
17681 * tree.cc (user_omp_clause_code_name): New function.
17682
17683 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
17684
17685 PR middle-end/98420
17686 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
17687 (the defaut) or -fno-signed-zeros.
17688
17689 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
17690
17691 PR target/104868
17692 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
17693 moving from a GPR register to an Altivec register.
17694
17695 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
17696
17697 PR tree-optimization/98335
17698 * config/i386/i386.md (peephole2): Eliminate redundant insv.
17699 Combine movl followed by movb. Transform xorl followed by
17700 a suitable movb or movw into the equivalent movz[bw]l.
17701
17702 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
17703 Richard Biener <rguenther@suse.de>
17704
17705 PR tree-optimization/98335
17706 * builtins.cc (get_object_alignment_2): Export.
17707 * builtins.h (get_object_alignment_2): Likewise.
17708 * tree-ssa-alias.cc (ao_ref_alignment): New.
17709 * tree-ssa-alias.h (ao_ref_alignment): Declare.
17710 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
17711 to align head/tail, writing more bytes but using fewer store insns.
17712
17713 2022-03-11 Richard Biener <rguenther@suse.de>
17714
17715 PR tree-optimization/104880
17716 * tree-ssa.cc (execute_update_address_taken): Remember if we
17717 optimistically made something not addressable and
17718 prepare to undo it.
17719
17720 2022-03-11 Richard Biener <rguenther@suse.de>
17721
17722 PR target/104762
17723 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
17724 cost the first lane of SSE pieces as inserts for vec_construct.
17725
17726 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
17727
17728 PR c++/84964
17729 * calls.cc (expand_call): Ignore stack adjustments after sorry.
17730
17731 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
17732
17733 PR target/103074
17734 * lra-constraints.cc (split_reg): Set up
17735 check_and_force_assignment_correctness_p when splitting hard
17736 register live range.
17737
17738 2022-03-10 Martin Jambor <mjambor@suse.cz>
17739
17740 PR ipa/104813
17741 * ipa-cp.cc (create_specialized_node): Move removal of
17742 self-recursive calls from callers vector before refrence
17743 adjustments.
17744
17745 2022-03-10 Richard Biener <rguenther@suse.de>
17746
17747 PR tree-optimization/102943
17748 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
17749 Make a bitmap_head.
17750 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
17751 to tree view.
17752 (sbr_sparse_bitmap::set_bb_range): Adjust.
17753 (sbr_sparse_bitmap::get_bb_range): Likewise.
17754
17755 2022-03-10 Richard Biener <rguenther@suse.de>
17756
17757 PR tree-optimization/102943
17758 * tree-ssa-dom.cc (back_propagate_equivalences): Only
17759 populate the dominance bitmap if fast queries are not
17760 available. Use a tree view bitmap.
17761 (record_temporary_equivalences): Cache the dominance bitmap
17762 across all equivalences on the edge.
17763
17764 2022-03-10 Tom de Vries <tdevries@suse.de>
17765
17766 PR target/104840
17767 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
17768 of false,true.
17769
17770 2022-03-10 Tom de Vries <tdevries@suse.de>
17771
17772 PR target/104783
17773 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
17774 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
17775 (nvptx_get_unisimt_outside_simt_predicate): New function.
17776 (predicate_insn): New function, factored out of ...
17777 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
17778 * config/nvptx/nvptx.h (struct machine_function): Add
17779 unisimt_outside_simt_predicate field.
17780 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
17781 (define_insn "nvptx_uniform_warp_check"): Make predicable.
17782
17783 2022-03-10 Tom de Vries <tdevries@suse.de>
17784
17785 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
17786 result.
17787
17788 2022-03-10 Tom de Vries <tdevries@suse.de>
17789
17790 PR target/104815
17791 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
17792 modifier.
17793 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
17794
17795 2022-03-10 Tom de Vries <tdevries@suse.de>
17796
17797 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
17798 Emit atom.and.b64 instead of atom.b64.and.
17799
17800 2022-03-10 Tom de Vries <tdevries@suse.de>
17801
17802 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
17803 (MULTILIB_OPTIONS): ... here.
17804
17805 2022-03-10 Tom de Vries <tdevries@suse.de>
17806
17807 PR target/104758
17808 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
17809 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
17810
17811 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
17812
17813 PR middle-end/90115
17814 PR middle-end/102330
17815 PR middle-end/104774
17816 * omp-low.cc (oacc_privatization_candidate_p)
17817 (oacc_privatization_scan_clause_chain)
17818 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
17819 Analyze 'lookup_decl'-translated DECL.
17820
17821 2022-03-10 Jakub Jelinek <jakub@redhat.com>
17822
17823 PR target/99708
17824 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
17825 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
17826 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
17827 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
17828 "**NULL**" if type_node is NULL first. Handle
17829 ieee128_float_type_node.
17830 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
17831 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
17832 ieee128_float_type_node to NULL rather than long_double_type_node if
17833 they aren't supported. Do support __ibm128 even if
17834 !TARGET_FLOAT128_TYPE when long double is double double.
17835 (rs6000_expand_builtin): Error if bif_is_ibm128 and
17836 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
17837 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
17838 for it.
17839 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
17840 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
17841 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
17842 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
17843 Formatting fix.
17844 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
17845 (struct attrinfo): Add isibm128 member.
17846 (TYPE_MAP_SIZE): Remove.
17847 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
17848 ibm128_float_type_node only if it is non-NULL, otherwise fall back
17849 to long_double_type_node. Remove "pif" entry.
17850 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
17851 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
17852 (write_type_node): Use sizeof type_map / sizeof type_map[0]
17853 instead of TYPE_MAP_SIZE.
17854 (write_bif_static_init): Handle isibm128.
17855 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
17856 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
17857 attribute.
17858
17859 2022-03-09 Richard Biener <rguenther@suse.de>
17860
17861 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
17862 with non-decl operand, avoiding a copy.
17863
17864 2022-03-09 Jakub Jelinek <jakub@redhat.com>
17865
17866 PR target/104781
17867 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
17868
17869 2022-03-09 Richard Biener <rguenther@suse.de>
17870
17871 PR middle-end/104786
17872 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
17873 for VLAs without an upper size bound.
17874
17875 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
17876
17877 PR tree-optimization/104851
17878 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
17879 error.
17880
17881 2022-03-09 Jakub Jelinek <jakub@redhat.com>
17882
17883 PR c/104711
17884 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
17885 is enabled by it only for C++11 to C++17 rather than for C++03 or
17886 later.
17887 (-Wshift-negative-value): Similarly (except here we stated
17888 that it is enabled for C++11 or later).
17889
17890 2022-03-09 Jakub Jelinek <jakub@redhat.com>
17891
17892 PR rtl-optimization/104839
17893 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
17894 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
17895 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
17896 instead of incorrect 0 in SUBREG_PROMOTED_SET.
17897
17898 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
17899
17900 PR target/104842
17901 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
17902 value before adding an offset.
17903
17904 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
17905
17906 * config/arm/arm-builtins.cc
17907 (arm_binop_none_none_unone_qualifiers): Delete.
17908 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
17909
17910 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
17911
17912 PR translation/104552
17913 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
17914 the PCH out of memory error message punctuation and wording.
17915
17916 2022-03-08 Marek Polacek <polacek@redhat.com>
17917
17918 PR rtl-optimization/104777
17919 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
17920 ASM_OPERANDS_LABEL_VEC has at least one element.
17921
17922 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
17923
17924 PR target/104781
17925 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
17926 stack realignment or regparm nested function with EH return.
17927
17928 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
17929
17930 PR target/104790
17931 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
17932 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
17933 register for non widening loads or narrowing stores.
17934
17935 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
17936
17937 PR translation/104552
17938 * params.opt: Fix typo.
17939
17940 2022-03-08 Richard Biener <rguenther@suse.de>
17941
17942 PR tree-optimization/84201
17943 * params.opt (-param=vect-induction-float): Add.
17944 * doc/invoke.texi (vect-induction-float): Document.
17945 * tree-vect-loop.cc (vectorizable_induction): Honor
17946 param_vect_induction_float.
17947
17948 2022-03-08 Martin Jambor <mjambor@suse.cz>
17949
17950 PR translation/104552
17951 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
17952 "that" in the description.
17953
17954 2022-03-08 Richard Biener <rguenther@suse.de>
17955
17956 PR tree-optimization/104825
17957 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
17958 guard modref get_ao_ref on a pointer typed argument.
17959
17960 2022-03-08 liuhongt <hongtao.liu@intel.com>
17961
17962 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
17963 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
17964
17965 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
17966
17967 * doc/invoke.texi (C++ Modules): Remove anachronism.
17968
17969 2022-03-07 Martin Liska <mliska@suse.cz>
17970
17971 PR middle-end/104381
17972 * opts.cc (finish_options): If debug info is disabled
17973 (debug_info_level) and -fvar-tracking is unset, disable it.
17974
17975 2022-03-07 Jakub Jelinek <jakub@redhat.com>
17976
17977 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
17978 * config/riscv/riscv.cc: Likewise.
17979 * config/darwin.h: Likewise.
17980 * config/i386/i386.cc: Likewise.
17981 * config/aarch64/thunderx3t110.md: Likewise.
17982 * config/aarch64/fractional-cost.h: Likewise.
17983 * config/vax/vax.cc: Likewise.
17984 * config/rs6000/pcrel-opt.md: Likewise.
17985 * config/rs6000/predicates.md: Likewise.
17986 * ctfc.h: Likewise.
17987 * tree-ssa-uninit.cc: Likewise.
17988 * value-relation.h: Likewise.
17989 * gimple-range-gori.cc: Likewise.
17990 * ipa-polymorphic-call.cc: Likewise.
17991 * pointer-query.cc: Likewise.
17992 * ipa-sra.cc: Likewise.
17993 * internal-fn.cc: Likewise.
17994 * varasm.cc: Likewise.
17995 * gimple-ssa-warn-access.cc: Likewise.
17996
17997 2022-03-07 Martin Liska <mliska@suse.cz>
17998
17999 PR target/104794
18000 * config/arm/arm.cc (arm_option_override_internal): Add missing
18001 space.
18002
18003 2022-03-07 Richard Biener <rguenther@suse.de>
18004
18005 PR tree-optimization/104782
18006 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
18007 Re-instantiate r10-5979 fix, add comment.
18008
18009 2022-03-07 Martin Liska <mliska@suse.cz>
18010
18011 PR target/104797
18012 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
18013 parenthesis from built-in name.
18014
18015 2022-03-07 Martin Liska <mliska@suse.cz>
18016
18017 PR target/104794
18018 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
18019 of options in error messages.
18020 (arm_option_reconfigure_globals): Likewise.
18021
18022 2022-03-07 Martin Liska <mliska@suse.cz>
18023
18024 PR target/104794
18025 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
18026 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
18027 have only range [0,32].
18028
18029 2022-03-07 Jakub Jelinek <jakub@redhat.com>
18030
18031 PR target/104775
18032 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
18033 S constraint instead of T in the last alternative.
18034
18035 2022-03-07 Martin Liska <mliska@suse.cz>
18036
18037 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
18038 message.
18039
18040 2022-03-07 Martin Liska <mliska@suse.cz>
18041
18042 PR translation/90148
18043 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
18044 quote to a proper place.
18045 * plugin.cc (default_plugin_dir_name): Likewise.
18046
18047 2022-03-07 Martin Liska <mliska@suse.cz>
18048
18049 PR target/99297
18050 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
18051 string.
18052
18053 2022-03-07 Jakub Jelinek <jakub@redhat.com>
18054
18055 PR target/104779
18056 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
18057 define_expand pattern. Rename define_insn to ...
18058 (*avx512dq_mul<mode>3<mask_name>): ... this.
18059 (<code><mode>3_mask): New any_logic define_expand pattern.
18060 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
18061 (*<code><mode>3<mask_name>): ... this.
18062
18063 2022-03-05 Jakub Jelinek <jakub@redhat.com>
18064
18065 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
18066 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
18067
18068 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
18069 Uroš Bizjak <ubizjak@gmail.com>
18070
18071 PR testsuite/104732
18072 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
18073 Include DI mode unconditionally.
18074 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
18075 i.e. always split on !TARGET_64BIT.
18076 (*<any_or>di3_doubleword): Likewise.
18077 (*one_cmpldi2_doubleword): Likewise.
18078 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
18079 (<any_or><mode>3 expander): Likewise.
18080 (one_cmpl<mode>2 expander): Likewise.
18081
18082 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
18083
18084 PR target/104698
18085 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
18086 (mtvsrdd_diti_w1): Delete.
18087 (extendditi2): Convert from define_expand to
18088 define_insn_and_split. Replace with code to deal with both GPR
18089 registers and with altivec registers.
18090
18091 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
18092
18093 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
18094 bit. Handle most older CPUs.
18095
18096 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
18097
18098 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
18099 avoid a mismatch with DECL_MD_FUNCTION_CODE().
18100
18101 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
18102
18103 PR target/104117
18104 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
18105 (@machopic_low_<mode>): New.
18106 * config/rs6000/predicates.md (macho_pic_address): New.
18107 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
18108 apply the TLS processing to Darwin.
18109 * lra-constraints.cc (process_address_1): Revert the changes
18110 in r12-7209.
18111
18112 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
18113
18114 PR target/87496
18115 PR target/104208
18116 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
18117 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
18118 -mlong-double-128.
18119 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
18120 from here...
18121 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
18122 ... to here.
18123
18124 2022-03-04 Jakub Jelinek <jakub@redhat.com>
18125
18126 PR middle-end/104529
18127 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
18128 on automatic objects which will be runtime initialized.
18129
18130 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18131
18132 PR middle-end/100280
18133 PR middle-end/104132
18134 PR middle-end/104133
18135 * omp-low.cc (task_shared_vars): Rename to
18136 'make_addressable_vars'. Adjust all users.
18137 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
18138 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
18139
18140 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18141
18142 PR middle-end/100280
18143 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
18144 * tree-core.h: Document it.
18145 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
18146 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
18147 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
18148 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
18149 'TREE_ADDRESSABLE'.
18150
18151 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18152
18153 PR middle-end/100280
18154 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
18155 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
18156 '[...]' declared in block made addressable".
18157
18158 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
18159
18160 PR middle-end/100400
18161 PR middle-end/103836
18162 PR middle-end/104061
18163 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
18164 Catch 'GIMPLE_DEBUG'.
18165
18166 2022-03-04 Jakub Jelinek <jakub@redhat.com>
18167
18168 PR c/104627
18169 * tree.cc (warn_deprecated_use): For types prefer to use node
18170 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
18171 NULL.
18172
18173 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
18174
18175 PR target/104704
18176 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
18177 a pseudo register.
18178
18179 2022-03-03 Martin Sebor <msebor@redhat.com>
18180
18181 PR middle-end/104761
18182 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
18183 mark_dfs_back_edges.
18184
18185 2022-03-03 Martin Liska <mliska@suse.cz>
18186
18187 * configure.ac: Use linker plug-in by default.
18188 * configure: Regenerate.
18189
18190 2022-03-03 Martin Liska <mliska@suse.cz>
18191
18192 * configure.ac: Now ld.mold support LTO plugin API, use it.
18193 * configure: Regenerate.
18194
18195 2022-03-03 Tom de Vries <tdevries@suse.de>
18196
18197 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
18198
18199 2022-03-03 Tom de Vries <tdevries@suse.de>
18200
18201 PR target/104758
18202 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
18203
18204 2022-03-03 Tom de Vries <tdevries@suse.de>
18205
18206 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
18207
18208 2022-03-03 Jakub Jelinek <jakub@redhat.com>
18209
18210 PR middle-end/104757
18211 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
18212 gimplify_omp_for.
18213 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
18214 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
18215
18216 2022-03-03 Jakub Jelinek <jakub@redhat.com>
18217
18218 PR middle-end/104558
18219 * calls.cc (store_one_arg): When not calling emit_push_insn
18220 because size_rtx is const0_rtx, call at least anti_adjust_stack
18221 on arg->locate.alignment_pad if !argblock and the alignment might
18222 be non-zero.
18223
18224 2022-03-02 Alexandre Oliva <oliva@adacore.com>
18225
18226 * lra-constraints.cc (undo_optional_reloads): Recognize and
18227 drop insns of multi-word move sequences, tolerate removal
18228 iteration on an already-removed clobber, and refuse to
18229 substitute original pseudos into clobbers.
18230
18231 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
18232
18233 PR middle-end/102276
18234 * common.opt (-Wtrivial-auto-var-init): New option.
18235 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
18236 (-ftrivial-auto-var-init): Update option;
18237 * gimplify.cc (emit_warn_switch_unreachable): New function.
18238 (warn_switch_unreachable_r): Rename to ...
18239 (warn_switch_unreachable_and_auto_init_r): This.
18240 (maybe_warn_switch_unreachable): Rename to ...
18241 (maybe_warn_switch_unreachable_and_auto_init): This.
18242 (gimplify_switch_expr): Update calls to renamed function.
18243
18244 2022-03-02 Richard Biener <rguenther@suse.de>
18245
18246 PR rtl-optimization/104686
18247 * ira-color.cc (object_conflicts_with_allocno_p): New function
18248 using a bitvector test instead of iterating when possible.
18249 (allocnos_conflict_p): Choose the best allocno to iterate over
18250 object conflicts.
18251 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
18252 last.
18253
18254 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18255
18256 * cfg.cc (dump_edge_info): Dump goto_locus if present.
18257
18258 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18259
18260 PR rtl-optimization/104589
18261 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
18262 INSN_LOCATION comparison with goto_locus.
18263
18264 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18265
18266 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
18267 strlen_pass::before_dom_children): Comment spelling fixes.
18268
18269 2022-03-02 Jakub Jelinek <jakub@redhat.com>
18270
18271 * ipa-modref-tree.cc (modref_access_node::contains,
18272 modref_access_node::closer_pair_p, modref_access_node::insert,
18273 modref_access_node::insert_kill): Comment spelling fixes.
18274 * ipa-modref.cc: Likewise.
18275 (modref_summary::finalize, ignore_nondeterminism_p,
18276 class modref_access_analysis,
18277 modref_access_analysis::set_side_effects,
18278 modref_access_analysis::set_nondeterministic,
18279 modref_access_analysis::record_global_memory_load,
18280 modref_access_analysis::propagate, modref_access_analysis::analyze,
18281 struct escape_point, class modref_lattice, modref_lattice::merge,
18282 modref_lattice::merge_deref, class modref_eaf_analysis,
18283 modref_eaf_analysis::merge_call_lhs_flags,
18284 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
18285 modref_eaf_analysis::record_escape_points, remap_kills,
18286 update_escape_summary, remove_useless_summaries,
18287 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
18288 Likewise.
18289 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
18290 Likewise.
18291 * ipa-modref-tree.h (enum modref_special_parms,
18292 struct modref_access_node): Likewise.
18293
18294 2022-03-01 Jakub Jelinek <jakub@redhat.com>
18295
18296 PR tree-optimization/104715
18297 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
18298 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
18299 of a call if gimple_call_return_arg is equal to ptr, not just when it
18300 is non-NULL.
18301
18302 2022-03-01 Jakub Jelinek <jakub@redhat.com>
18303
18304 * gimple-ssa-warn-access.cc (warn_string_no_nul,
18305 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
18306 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
18307 pass_waccess::check_alloca, pass_waccess::check_strcat,
18308 memmodel_to_uhwi, fntype_argno_type,
18309 pass_waccess::maybe_check_access_sizes,
18310 pass_waccess::check_call_access,
18311 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
18312 Comment spelling fixes.
18313
18314 2022-03-01 Richard Biener <rguenther@suse.de>
18315
18316 PR tree-optimization/104716
18317 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
18318 Check if we can copy the loop.
18319
18320 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
18321
18322 PR middle-end/104721
18323 * cfgexpand.cc (expand_gimple_basic_block): Clear
18324 currently_expanding_gimple_stmt when returning inside the loop.
18325
18326 2022-03-01 Martin Liska <mliska@suse.cz>
18327
18328 PR ipa/104533
18329 * multiple_target.cc (get_attr_len): Move to tree.c.
18330 (expand_target_clones): Remove single value checking.
18331 * tree.cc (get_target_clone_attr_len): New fn.
18332 * tree.h (get_target_clone_attr_len): Likewise.
18333
18334 2022-03-01 Martin Liska <mliska@suse.cz>
18335
18336 PR gcov-profile/104677
18337 * doc/invoke.texi: Document more .gcda file name generation.
18338
18339 2022-03-01 Tom de Vries <tdevries@suse.de>
18340
18341 PR target/102429
18342 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
18343 * config/nvptx/nvptx.md
18344 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
18345 New predicate.
18346 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
18347 Use nvptx_register_or_complex_di_df_register_operand.
18348
18349 2022-03-01 Tom de Vries <tdevries@suse.de>
18350
18351 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
18352 * config/nvptx/gen-copyright.sh: New file.
18353 * config/nvptx/gen-h.sh: New file.
18354 * config/nvptx/gen-opt.sh: New file.
18355 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
18356 (TARGET_SM75, TARGET_SM80): Move ...
18357 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
18358 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
18359 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
18360 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
18361 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
18362
18363 2022-03-01 Tom de Vries <tdevries@suse.de>
18364
18365 * config/nvptx/gen-omp-device-properties.sh: New file.
18366 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
18367
18368 2022-03-01 Tom de Vries <tdevries@suse.de>
18369
18370 * config/nvptx/nvptx-sm.def: New file.
18371 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
18372 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
18373 * config/nvptx/nvptx.cc (sm_version_to_string)
18374 (nvptx_omp_device_kind_arch_isa): Same.
18375
18376 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
18377
18378 PR rtl-optimization/104154
18379 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
18380 comparison ifcvt passed us.
18381
18382 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
18383
18384 PR target/104664
18385 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
18386 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
18387
18388 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
18389
18390 PR tree-optimization/91384
18391 * config/i386/i386.md (peephole2): Eliminate final testl insn
18392 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
18393 transforming using *negsi_2 for the negation.
18394
18395 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
18396 Eric Botcazou <ebotcazou@adacore.com>
18397
18398 PR middle-end/80270
18399 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
18400 register, copy it to a pseudo before calling simplify_gen_subreg.
18401
18402 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
18403
18404 PR rtl-optimization/104637
18405 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
18406 as possible on one subpass.
18407
18408 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
18409
18410 PR middle-end/104550
18411 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
18412 created uses.
18413
18414 2022-02-28 Martin Liska <mliska@suse.cz>
18415
18416 PR ipa/104648
18417 * main.cc (main): Use flag_checking instead of CHECKING_P
18418 and run toplev::finalize only if there is not error seen.
18419
18420 2022-02-28 Richard Biener <rguenther@suse.de>
18421
18422 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
18423
18424 2022-02-28 Richard Biener <rguenther@suse.de>
18425
18426 PR tree-optimization/104700
18427 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
18428 into ...
18429 (find_or_generate_expression): ... here, simplifying code.
18430
18431 2022-02-28 Tom de Vries <tdevries@suse.de>
18432
18433 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
18434 PTX_VERSION_default.
18435 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
18436 PTX_VERSION_default.
18437 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
18438
18439 2022-02-28 Richard Biener <rguenther@suse.de>
18440
18441 PR rtl-optimization/104686
18442 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
18443 skipping bits that are zero.
18444 (ira_object_conflict_iter_cond): Likewise.
18445
18446 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
18447
18448 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
18449 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
18450 char to avoid error when using ~enum as parameter.
18451 (_mm512_mask_ternarylogic_epi64): Likewise.
18452 (_mm512_maskz_ternarylogic_epi64): Likewise.
18453 (_mm512_ternarylogic_epi32): Likewise.
18454 (_mm512_mask_ternarylogic_epi32): Likewise.
18455 (_mm512_maskz_ternarylogic_epi32): Likewise.
18456 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
18457 Adjust imm param type to unsigned char.
18458 (_mm256_mask_ternarylogic_epi64): Likewise.
18459 (_mm256_maskz_ternarylogic_epi64): Likewise.
18460 (_mm256_ternarylogic_epi32): Likewise.
18461 (_mm256_mask_ternarylogic_epi32): Likewise.
18462 (_mm256_maskz_ternarylogic_epi32): Likewise.
18463 (_mm_ternarylogic_epi64): Likewise.
18464 (_mm_mask_ternarylogic_epi64): Likewise.
18465 (_mm_maskz_ternarylogic_epi64): Likewise.
18466 (_mm_ternarylogic_epi32): Likewise.
18467 (_mm_mask_ternarylogic_epi32): Likewise.
18468 (_mm_maskz_ternarylogic_epi32): Likewise.
18469
18470 2022-02-25 Jakub Jelinek <jakub@redhat.com>
18471 Marc Glisse <marc.glisse@inria.fr>
18472
18473 PR tree-optimization/104675
18474 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
18475 Restrict simplifications to INTEGRAL_TYPE_P.
18476
18477 2022-02-25 Jakub Jelinek <jakub@redhat.com>
18478
18479 PR target/104681
18480 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
18481
18482 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
18483
18484 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
18485 comparison is not valid.
18486 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
18487 (movdicc): Likewise.
18488 (movsfcc): Likewise.
18489 (movdfcc): Likewise.
18490
18491 2022-02-25 Richard Biener <rguenther@suse.de>
18492
18493 PR tree-optimization/103037
18494 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
18495 (vn_nary_length_from_stmt): Likewise.
18496 (init_vn_nary_op_from_stmt): Likewise.
18497 (vn_nary_op_compute_hash): Likewise.
18498 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
18499 (vn_nary_length_from_stmt): Likewise.
18500 (init_vn_nary_op_from_stmt): Likewise.
18501 (vn_nary_op_compute_hash): Likewise.
18502 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
18503 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
18504 (re-)compute the hash value and if the expression is not
18505 found allocate it from pre_expr_obstack.
18506 (phi_translate_1): Do not insert the NARY found in the
18507 VN tables but build a PRE expression from the valueized
18508 NARY with the value-id we eventually found.
18509 (find_or_generate_expression): Assert we have an entry
18510 for constant values.
18511 (compute_avail): Insert not valueized expressions into
18512 EXP_GEN using the value-id from the VN tables.
18513 (init_pre): Allocate pre_expr_obstack.
18514 (fini_pre): Free pre_expr_obstack.
18515
18516 2022-02-25 Jakub Jelinek <jakub@redhat.com>
18517
18518 PR target/104674
18519 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
18520 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
18521 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
18522
18523 2022-02-25 Jakub Jelinek <jakub@redhat.com>
18524
18525 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
18526
18527 2022-02-25 Jakub Jelinek <jakub@redhat.com>
18528
18529 PR middle-end/104679
18530 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
18531
18532 2022-02-25 Jakub Jelinek <jakub@redhat.com>
18533
18534 PR tree-optimization/104675
18535 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
18536 COMPLEX_TYPE.
18537
18538 2022-02-25 Alexandre Oliva <oliva@adacore.com>
18539
18540 PR target/104121
18541 PR target/103302
18542 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
18543
18544 2022-02-25 Alexandre Oliva <oliva@adacore.com>
18545
18546 PR middle-end/104540
18547 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
18548 dw_cfi_cfa_loc.
18549
18550 2022-02-25 Alexandre Oliva <oliva@adacore.com>
18551
18552 PR tree-optimization/103856
18553 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
18554 eh edge to be requested through an extra parameter.
18555 (pass_harden_compares::execute): Copy PHI args in the EH dest
18556 block for the new EH edge added for the inverted compare.
18557
18558 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
18559
18560 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
18561 of position independence that -mcmodel=medany affords.
18562
18563 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
18564
18565 PR target/104656
18566 * configure.ac: --disable-gcov if targetting bpf-*.
18567 * configure: Regenerate.
18568
18569 2022-02-24 Richard Biener <rguenther@suse.de>
18570
18571 PR tree-optimization/104676
18572 * tree-loop-distribution.cc (loop_distribution::execute):
18573 Do a full scev_reset.
18574
18575 2022-02-24 Jakub Jelinek <jakub@redhat.com>
18576
18577 PR tree-optimization/104601
18578 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
18579 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
18580 vuse value number.
18581
18582 2022-02-24 Tom de Vries <tdevries@suse.de>
18583 Tobias Burnus <tobias@codesourcery.com>
18584
18585 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
18586 sm_70, sm_75 and sm_80.
18587 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
18588
18589 2022-02-24 Tom de Vries <tdevries@suse.de>
18590
18591 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
18592 "rotrsi3"): New define_insn.
18593
18594 2022-02-24 Tom de Vries <tdevries@suse.de>
18595
18596 * config/nvptx/nvptx.cc (gen_comment): Use
18597 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
18598
18599 2022-02-24 liuhongt <hongtao.liu@intel.com>
18600
18601 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
18602 isa attr of alternative 2 from avx to avx512vl.
18603
18604 2022-02-23 Richard Biener <rguenther@suse.de>
18605 Jakub Jelinek <jakub@redhat.com>
18606
18607 PR tree-optimization/104644
18608 * doc/match-and-simplify.texi: Amend ! documentation.
18609 * genmatch.cc (expr::gen_transform): Code-generate ! support
18610 for GENERIC.
18611 (parser::parse_expr): Allow ! for GENERIC.
18612 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
18613 bswap.
18614
18615 2022-02-23 Richard Biener <rguenther@suse.de>
18616
18617 PR tree-optimization/101636
18618 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
18619 vector type of the node.
18620 (vect_slp_analyze_operations): Make sure the CTOR
18621 is vectorized with an expected type.
18622 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
18623
18624 2022-02-23 Jakub Jelinek <jakub@redhat.com>
18625
18626 PR c/104633
18627 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
18628 Don't warn about calls to corresponding builtin from extern inline
18629 gnu_inline wrappers.
18630
18631 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
18632
18633 PR target/104489
18634 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
18635
18636 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
18637
18638 PR target/100757
18639 PR target/101325
18640 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
18641 typo.
18642
18643 2022-02-23 Cui,Lili <lili.cui@intel.com>
18644
18645 * doc/invoke.texi: Update documents for Intel architectures.
18646
18647 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
18648
18649 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
18650 bootstrap.
18651
18652 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
18653
18654 * omp-low.cc (omp_build_component_ref): Move function...
18655 * omp-general.cc (omp_build_component_ref): ... here. Remove
18656 'static'.
18657 * omp-general.h (omp_build_component_ref): Declare function.
18658 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
18659 function.
18660 (build_receiver_ref, build_sender_ref): Call
18661 'omp_build_component_ref' instead.
18662
18663 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
18664
18665 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
18666 simplify. Adjust all users.
18667
18668 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
18669
18670 PR target/88134
18671 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
18672 atomic_update_decl): Add GTY markup.
18673
18674 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18675
18676 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
18677
18678 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18679
18680 PR target/100757
18681 PR target/101325
18682 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
18683 predicate.
18684 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
18685 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
18686 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
18687 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
18688 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
18689 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
18690 * config/arm/mve.md: Use VxBI instead of HI.
18691
18692 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18693
18694 PR target/100757
18695 PR target/101325
18696 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
18697 qualifier.
18698 (STRSBU_P_QUALIFIERS): Likewise.
18699 (LDRGBS_Z_QUALIFIERS): Likewise.
18700 (LDRGBU_Z_QUALIFIERS): Likewise.
18701 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
18702 (LDRGBWBS_Z_QUALIFIERS): Likewise.
18703 (LDRGBWBU_Z_QUALIFIERS): Likewise.
18704 (STRSBWBS_P_QUALIFIERS): Likewise.
18705 (STRSBWBU_P_QUALIFIERS): Likewise.
18706 * config/arm/mve.md: Use VxBI instead of HI.
18707
18708 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18709
18710 PR target/100757
18711 PR target/101325
18712 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
18713 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
18714 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
18715 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
18716 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
18717 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
18718 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
18719 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
18720 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
18721 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
18722 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
18723 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
18724 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
18725 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
18726 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
18727 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
18728 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
18729 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
18730 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
18731 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
18732 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
18733 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
18734 (STRS_P_QUALIFIERS): Use predicate qualifier.
18735 (STRU_P_QUALIFIERS): Likewise.
18736 (STRSU_P_QUALIFIERS): Likewise.
18737 (STRSS_P_QUALIFIERS): Likewise.
18738 (LDRGS_Z_QUALIFIERS): Likewise.
18739 (LDRGU_Z_QUALIFIERS): Likewise.
18740 (LDRS_Z_QUALIFIERS): Likewise.
18741 (LDRU_Z_QUALIFIERS): Likewise.
18742 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
18743 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
18744 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
18745 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
18746 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
18747 * config/arm/mve.md: Use MVE_VPRED instead of HI.
18748
18749 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18750
18751 PR target/100757
18752 PR target/101325
18753 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
18754 Delete.
18755 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
18756 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
18757 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
18758 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
18759 predicated qualifiers.
18760 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
18761 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
18762
18763 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18764
18765 PR target/100757
18766 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
18767 (arm_expand_vector_compare): Update prototype.
18768 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
18769 (arm_vector_mode_supported_p): Add support for VxBI modes.
18770 (arm_expand_vector_compare): Remove useless generation of vpsel.
18771 (arm_expand_vcond): Fix select operands.
18772 (arm_get_mask_mode): New.
18773 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
18774 (vec_cmpu<mode><MVE_vpred>): New.
18775 (vcond_mask_<mode><MVE_vpred>): New.
18776 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
18777 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
18778 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
18779 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
18780 and disable for MVE.
18781 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
18782
18783 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18784
18785 PR target/100757
18786 PR target/101325
18787 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
18788 (BINOP_PRED_NONE_NONE_QUALIFIERS)
18789 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
18790 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
18791 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
18792 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
18793 modes.
18794 (arm_mode_to_pred_mode): New.
18795 (arm_expand_vector_compare): Use the right VxBI mode instead of
18796 HI.
18797 (arm_expand_vcond): Likewise.
18798 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
18799 (mve_bool_vec_to_const): New.
18800 (neon_make_constant): Call mve_bool_vec_to_const when needed.
18801 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
18802 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
18803 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
18804 (vpselq_s, vpselq_f): Use new predicated qualifiers.
18805 * config/arm/constraints.md (DB): New.
18806 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
18807 (MVE_VPRED, MVE_vpred): New attribute iterators.
18808 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
18809 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
18810 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
18811 (@mve_vpselq_<supf>v2di): Define separately.
18812 (mov<mode>): New expander for VxBI modes.
18813 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
18814 MVE_7_HI iterator and add support for DB constraint.
18815
18816 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18817 Richard Sandiford <richard.sandiford@arm.com>
18818
18819 PR target/100757
18820 PR target/101325
18821 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
18822 VNx2BI): Update definition.
18823 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
18824 simd types.
18825 (arm_init_builtin): Map predicate vectors arguments to HImode.
18826 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
18827 rtx. Move return value to HImode rtx.
18828 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
18829 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
18830 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
18831 Pred2x8_t,Pred4x4_t): New.
18832 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
18833 * genmodes.cc (mode_data): Add boolean field.
18834 (blank_mode): Initialize it.
18835 (make_complex_modes): Fix handling of boolean modes.
18836 (make_vector_modes): Likewise.
18837 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
18838 (make_vector_bool_mode): Likewise.
18839 (BOOL_MODE): New.
18840 (make_bool_mode): New.
18841 (emit_insn_modes_h): Fix generation of boolean modes.
18842 (emit_class_narrowest_mode): Likewise.
18843 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
18844 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
18845 define BImode.
18846 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
18847 Fix handling of constm1_rtx for VECTOR_BOOL.
18848 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
18849 (native_decode_vector_rtx): Likewise.
18850 (test_vector_ops_duplicate): Skip vec_merge test
18851 with vectors of booleans.
18852 * varasm.cc (output_constant_pool_2): Likewise.
18853
18854 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18855
18856 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
18857 for operand 1.
18858
18859 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18860
18861 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
18862
18863 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
18864
18865 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
18866 (REG_CLASS_NAMES): Likewise.
18867 (REG_CLASS_CONTENTS): Likewise.
18868 (CLASS_MAX_NREGS): Handle VPR.
18869 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
18870
18871 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
18872 Tom de Vries <tdevries@suse.de>
18873
18874 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
18875 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
18876 Likewise.
18877 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
18878
18879 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
18880 Tom de Vries <tdevries@suse.de>
18881
18882 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
18883 * doc/invoke.texi (-mptx): Update for new values and defaults.
18884
18885 2022-02-22 Tom de Vries <tdevries@suse.de>
18886
18887 * config/nvptx/nvptx.cc (gen_comment): New function.
18888 (workaround_uninit_method_1, workaround_uninit_method_2)
18889 (workaround_uninit_method_3): : Use gen_comment.
18890 * config/nvptx/nvptx.opt (mptx-comment): New option.
18891
18892 2022-02-22 Richard Biener <rguenther@suse.de>
18893
18894 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
18895 for a splat.
18896
18897 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
18898 Richard Biener <rguenther@suse.de>
18899
18900 * fold-const.cc (ctor_single_nonzero_element): New function to
18901 return the single non-zero element of a (vector) constructor.
18902 * fold-const.h (ctor_single_nonzero_element): Prototype here.
18903 * match.pd (reduc (constructor@0)): Simplify reductions of a
18904 constructor containing a single non-zero element.
18905 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
18906 reductions of vector operations of the same operator with
18907 constant vector operands.
18908
18909 2022-02-22 Jakub Jelinek <jakub@redhat.com>
18910
18911 PR tree-optimization/104604
18912 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
18913 Only check if gimple_assign_rhs1 is COMPLEX_CST if
18914 gimple_assign_rhs_code is COMPLEX_CST.
18915
18916 2022-02-22 Jakub Jelinek <jakub@redhat.com>
18917
18918 PR target/104612
18919 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
18920 on input operands before calling lowpart_subreg on it. For output
18921 operand, use a vmode pseudo as destination and then move its lowpart
18922 subreg into operands[0] if lowpart_subreg fails on dest.
18923 (ix86_expand_xorsign): Likewise.
18924
18925 2022-02-22 Richard Biener <rguenther@suse.de>
18926
18927 PR tree-optimization/104582
18928 PR target/99881
18929 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
18930 Cost GPR to vector register moves for integer vector construction.
18931
18932 2022-02-22 Richard Biener <rguenther@suse.de>
18933
18934 PR tree-optimization/104582
18935 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
18936 (vector_costs::add_stmt_cost): Add SLP node parameter.
18937 (dump_stmt_cost): Likewise.
18938 (add_stmt_cost): Likewise, new overload and adjust.
18939 (add_stmt_costs): Adjust.
18940 (record_stmt_cost): New overload.
18941 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
18942 (vector_costs::add_stmt_cost): Adjust.
18943 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
18944 Adjust.
18945 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
18946 the SLP node for costing.
18947 (vectorizable_slp_permutation): Likewise.
18948 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
18949 new overloads.
18950 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
18951 Adjust.
18952 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
18953 Adjust.
18954 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
18955 Adjust.
18956 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
18957
18958 2022-02-22 Richard Biener <rguenther@suse.de>
18959
18960 PR tree-optimization/104582
18961 * tree-vectorizer.h (add_stmt_cost): New overload.
18962 (record_stmt_cost): Likewise.
18963 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
18964 Use add_stmt_costs.
18965 (vect_get_known_peeling_cost): Use new overloads.
18966 (vect_estimate_min_profitable_iters): Likewise. Consistently
18967 use scalar_stmt for costing versioning checks.
18968 * tree-vect-stmts.cc (record_stmt_cost): New overload.
18969
18970 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
18971
18972 PR target/103069
18973 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
18974 Split atomic fetch and loop part.
18975 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
18976 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
18977 prototype.
18978 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
18979 expander under TARGET_RELAX_CMPXCHG_LOOP.
18980 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
18981
18982 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
18983
18984 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
18985 Change wb_candidate[12] to wb_push_candidate[12].
18986 (aarch64_layout_frame): Likewise, and
18987 change callee_adjust when scs is enabled.
18988 (aarch64_save_callee_saves):
18989 Change wb_candidate[12] to wb_push_candidate[12].
18990 (aarch64_restore_callee_saves):
18991 Change wb_candidate[12] to wb_pop_candidate[12].
18992 (aarch64_get_separate_components):
18993 Change wb_candidate[12] to wb_push_candidate[12].
18994 (aarch64_expand_prologue): Push x30 onto SCS before it's
18995 pushed onto stack.
18996 (aarch64_expand_epilogue): Pop x30 frome SCS, while
18997 preventing it from being popped from the regular stack again.
18998 (aarch64_override_options_internal): Add SCS compile option check.
18999 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
19000 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
19001 wb_pop_candidate[12], and rename wb_candidate[12] to
19002 wb_push_candidate[12].
19003 * config/aarch64/aarch64.md (scs_push): New template.
19004 (scs_pop): Likewise.
19005 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
19006 * doc/tm.texi: Regenerate.
19007 * doc/tm.texi.in: Add hook have_shadow_call_stack.
19008 * flag-types.h (enum sanitize_code):
19009 Add SANITIZE_SHADOW_CALL_STACK.
19010 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
19011 and exclude SANITIZE_SHADOW_CALL_STACK.
19012 * target.def: New hook.
19013 * toplev.cc (process_options): Add SCS compile option check.
19014 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
19015
19016 2022-02-21 Tom de Vries <tdevries@suse.de>
19017
19018 PR target/104440
19019 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
19020 (workaround_uninit_method_2, workaround_uninit_method_3)
19021 (workaround_uninit): New function.
19022 (nvptx_reorg): Use workaround_uninit.
19023 * config/nvptx/nvptx.opt (minit-regs): New option.
19024
19025 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
19026
19027 PR rtl-optimization/104498
19028 * alias.cc (compare_base_symbol_refs): Correct distance computation
19029 when swapping x and y.
19030
19031 2022-02-21 Andrew Pinski <apinski@marvell.com>
19032
19033 PR c/104506
19034 * tree-ssa.cc (tree_ssa_useless_type_conversion):
19035 Check the inner type before calling useless_type_conversion_p.
19036
19037 2022-02-19 Tom de Vries <tdevries@suse.de>
19038
19039 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
19040 * config/nvptx/nvptx.md
19041 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
19042 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
19043 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
19044 (define_expand "atomic_store<mode>"): Handle rename. Use
19045 nvptx_atomic_store instead of atomic_exchange.
19046
19047 2022-02-19 Tom de Vries <tdevries@suse.de>
19048
19049 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
19050 insns with atomic attribute. Assert that all handled insns are
19051 PARALLELs.
19052 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
19053 Set atomic attribute to false.
19054
19055 2022-02-19 Tom de Vries <tdevries@suse.de>
19056
19057 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
19058 type to bool.
19059 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
19060 nvptx_warpsync, if necessary.
19061
19062 2022-02-19 Jakub Jelinek <jakub@redhat.com>
19063
19064 PR sanitizer/102656
19065 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
19066 known to be within bounds, treat it like automatic variables.
19067 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
19068 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
19069 it addressable.
19070
19071 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
19072
19073 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
19074 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
19075 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
19076 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
19077 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
19078 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
19079 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
19080 power10_sched_reorder): Likewise.
19081 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
19082 gen_addadd): Likewise
19083 * config/rs6000/fusion.md: Regenerate.
19084
19085 2022-02-18 Jakub Jelinek <jakub@redhat.com>
19086
19087 PR target/104257
19088 PR target/104598
19089 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
19090 rather than __posix_memalign.
19091
19092 2022-02-18 Richard Biener <rguenther@suse.de>
19093
19094 PR target/104581
19095 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
19096 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
19097 of calling ix86_avx_u128_mode_source which would eventually
19098 have returned AVX_U128_ANY in some very special case.
19099
19100 2022-02-18 Richard Biener <rguenther@suse.de>
19101
19102 PR tree-optimization/96881
19103 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
19104 CLOBBER handling.
19105 (control_parents_preserved_p): New function.
19106 (eliminate_unnecessary_stmts): Check that we preserved control
19107 parents before retaining a CLOBBER.
19108 (perform_tree_ssa_dce): Pass down aggressive flag
19109 to eliminate_unnecessary_stmts.
19110
19111 2022-02-17 Jason Merrill <jason@redhat.com>
19112
19113 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
19114 on TYPE_MAIN_VARIANT.
19115
19116 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
19117
19118 PR target/104257
19119 * config/rs6000/bmi2intrin.h: Uglify local variables.
19120 * config/rs6000/emmintrin.h: Likewise.
19121 * config/rs6000/mm_malloc.h: Likewise.
19122 * config/rs6000/mmintrin.h: Likewise.
19123 * config/rs6000/pmmintrin.h: Likewise.
19124 * config/rs6000/smmintrin.h: Likewise.
19125 * config/rs6000/tmmintrin.h: Likewise.
19126 * config/rs6000/xmmintrin.h: Likewise.
19127
19128 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
19129
19130 PR target/104335
19131 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
19132 if the expected comparison's first operand is of mode MODE_CC.
19133
19134 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
19135
19136 PR rtl-optimization/104447
19137 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
19138 hard reg set by lra_no_alloc_regs.
19139
19140 2022-02-17 liuhongt <hongtao.liu@intel.com>
19141
19142 PR tree-optimization/104551
19143 PR tree-optimization/103771
19144 * match.pd (cond_expr_convert_p): Add types_match check when
19145 convert is extension.
19146 * tree-vect-patterns.cc
19147 (gimple_cond_expr_convert_p): Adjust comments.
19148 (vect_recog_cond_expr_convert_pattern): Ditto.
19149
19150 2022-02-17 Jakub Jelinek <jakub@redhat.com>
19151
19152 PR debug/104557
19153 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
19154 if expr has VOIDmode.
19155
19156 2022-02-17 liuhongt <hongtao.liu@intel.com>
19157
19158 * config/i386/cpuid.h (bit_MPX): Removed.
19159 (bit_BNDREGS): Ditto.
19160 (bit_BNDCSR): Ditto.
19161
19162 2022-02-17 Michael Meissner <meissner@the-meissners.org>
19163
19164 PR target/99708
19165 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
19166 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
19167 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
19168 is created.
19169
19170 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
19171
19172 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
19173 range_compatible_p instead of direct type comparison.
19174
19175 2022-02-16 Jakub Jelinek <jakub@redhat.com>
19176
19177 PR rtl-optimization/104544
19178 * combine.cc (try_combine): When looking for insn whose links
19179 should be updated from i3 to i2, don't stop on debug insns, instead
19180 skip over them.
19181
19182 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
19183
19184 PR target/100056
19185 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
19186 * config/aarch64/aarch64.md: Extend the PR100056 patterns
19187 to handle plus in the same way as ior, if the operands have
19188 no set bits in common.
19189
19190 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
19191
19192 PR tree-optimization/104526
19193 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
19194 new routine.
19195 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
19196 of dependency chain if there isn't one.
19197 (gori_compute::condexpr_adjust): New.
19198 * gimple-range-gori.h (class gori_compute): New prototype.
19199
19200 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
19201
19202 PR target/100874
19203 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
19204 Declare.
19205 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
19206 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
19207
19208 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
19209
19210 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
19211 (vect_scalar_ops_slice_hash): Likewise.
19212 (vect_scalar_ops_slice::op): New function.
19213 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
19214 (vect_scalar_ops_slice_hash::hash): Likewise.
19215 (vect_scalar_ops_slice_hash::equal): Likewise.
19216 (vect_prologue_cost_for_slp): Check for duplicate vectors.
19217 * config/aarch64/aarch64.cc
19218 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
19219 (aarch64_aligned_constant_offset_p): New function.
19220 (aarch64_stp_sequence_cost): Likewise.
19221 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
19222 (aarch64_vector_costs::finish_cost): Likewise.
19223
19224 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
19225
19226 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
19227 use after free.
19228
19229 2022-02-15 Richard Biener <rguenther@suse.de>
19230
19231 PR tree-optimization/104543
19232 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
19233 come after the inner loop.
19234
19235 2022-02-15 Jakub Jelinek <jakub@redhat.com>
19236
19237 PR target/104536
19238 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
19239 cannot instead of can%'t in diagnostics. Formatting fixes.
19240
19241 2022-02-15 Jakub Jelinek <jakub@redhat.com>
19242
19243 PR middle-end/104522
19244 * fold-const.h (native_interpret_real): Declare.
19245 * fold-const.cc (native_interpret_real): No longer static. Don't
19246 perform MODE_COMPOSITE_P verification here.
19247 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
19248 for all modes.
19249 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
19250 instead of native_interpret_expr.
19251 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
19252 and comparison verification for all FLOAT_MODE_P modes, not just
19253 MODE_COMPOSITE_P.
19254
19255 2022-02-15 Richard Biener <rguenther@suse.de>
19256
19257 PR tree-optimization/104519
19258 * fold-const.cc (multiple_of_p): Remove never true condition.
19259 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
19260 the appropriate types for determining whether the difference
19261 of final and base is a multiple of the step.
19262
19263 2022-02-15 Jakub Jelinek <jakub@redhat.com>
19264
19265 PR debug/104517
19266 * omp-low.cc (task_cpyfns): New variable.
19267 (delete_omp_context): Don't call finalize_task_copyfn from here.
19268 (create_task_copyfn): Push task_stmt into task_cpyfns.
19269 (execute_lower_omp): Call finalize_task_copyfn here on entries from
19270 task_cpyfns vector and release the vector.
19271
19272 2022-02-14 Martin Sebor <msebor@redhat.com>
19273
19274 PR middle-end/104355
19275 * doc/invoke.texi (-Warray-bounds): Update documentation.
19276
19277 2022-02-14 Michael Meissner <meissner@the-meissners.org>
19278
19279 PR target/104253
19280 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
19281 conversion functions used to convert IFmode types.
19282
19283 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
19284
19285 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
19286
19287 2022-02-14 Richard Biener <rguenther@suse.de>
19288
19289 PR tree-optimization/104528
19290 * tree-ssa.h (find_released_ssa_name): Declare.
19291 * tree-ssa.cc (find_released_ssa_name): Export.
19292 * cfgloop.cc (verify_loop_structure): Look for released
19293 SSA names in loops nb_iterations.
19294 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
19295 estimates.
19296
19297 2022-02-14 Richard Biener <rguenther@suse.de>
19298
19299 PR tree-optimization/104511
19300 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
19301 touching DFP <-> FP conversions.
19302
19303 2022-02-14 Richard Biener <rguenther@suse.de>
19304
19305 PR middle-end/104497
19306 * gimplify.cc (gimplify_compound_lval): Make sure the
19307 base is a non-register if needed and possible.
19308
19309 2022-02-13 liuhongt <hongtao.liu@intel.com>
19310
19311 PR target/103771
19312 * match.pd (cond_expr_convert_p): New match.
19313 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
19314 (vect_recog_cond_expr_convert_pattern): New.
19315
19316 2022-02-12 Jakub Jelinek <jakub@redhat.com>
19317
19318 PR sanitizer/104449
19319 * asan.cc: Include tree-eh.h.
19320 (handle_builtin_alloca): Handle the case when __builtin_alloca or
19321 __builtin_alloca_with_align can throw.
19322
19323 2022-02-12 Jakub Jelinek <jakub@redhat.com>
19324
19325 PR target/104502
19326 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
19327 and AVX512VL isn't available, move operands[1] to operands[0] first.
19328
19329 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
19330
19331 PR target/79754
19332 * config/i386/i386.cc (type_natural_mode):
19333 Skip decimal float vector modes.
19334
19335 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
19336 Vladimir Makarov <vmakarov@redhat.com>
19337
19338 PR target/104117
19339 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
19340 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
19341 emitting PIC code.
19342 (legitimate_lo_sum_address_p): Likewise.
19343 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
19344 load from an invalid lo_sum address.
19345
19346 2022-02-11 Jakub Jelinek <jakub@redhat.com>
19347
19348 PR tree-optimization/104499
19349 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
19350 of convert.
19351
19352 2022-02-11 Jakub Jelinek <jakub@redhat.com>
19353
19354 * tree.cc (build_common_builtin_nodes): Fix up formatting in
19355 __builtin_clear_padding decl creation.
19356 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
19357 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
19358 argument rather than in 3rd argument.
19359 (gimplify_call_expr): Likewise. Fix up comment formatting.
19360 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
19361 2 arguments instead of 3, take for_auto_init from the value
19362 of 2nd argument.
19363
19364 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
19365
19366 PR rtl-optimization/104400
19367 * lra-constraints.cc (process_alt_operands): Don't make union of
19368 this_alternative_exclude_start_hard_regs when reg class in insn
19369 alternative covers other reg classes in the same alternative.
19370
19371 2022-02-11 Jakub Jelinek <jakub@redhat.com>
19372
19373 PR middle-end/104446
19374 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
19375 operands.
19376
19377 2022-02-11 Richard Biener <rguenther@suse.de>
19378
19379 PR middle-end/104496
19380 * internal-fn.cc (vectorized_internal_fn_supported_p):
19381 Bail out for integer mode vector types.
19382
19383 2022-02-11 Jakub Jelinek <jakub@redhat.com>
19384
19385 PR rtl-optimization/104459
19386 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
19387 moving DEBUG_INSNs between bbs.
19388
19389 2022-02-11 liuhongt <hongtao.liu@intel.com>
19390
19391 PR tree-optimization/104479
19392 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
19393 for the dest of uncond_op.
19394
19395 2022-02-11 Tom de Vries <tdevries@suse.de>
19396
19397 PR target/104456
19398 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
19399 insn.
19400
19401 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
19402
19403 PR middle-end/100775
19404 * function.cc (gen_call_used_regs_seq): Call
19405 df_update_exit_block_uses when updating df.
19406
19407 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
19408
19409 PR target/104469
19410 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
19411 Change operand 1 constraint to register_operand.
19412
19413 2022-02-10 Richard Biener <rguenther@suse.de>
19414
19415 PR tree-optimization/104373
19416 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
19417 walk kind.
19418 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
19419 walk kind as argument.
19420 (run_rpo_vn): Adjust.
19421 (pass_fre::execute): Likewise.
19422 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
19423 blocks not reachable.
19424 (execute_late_warn_uninitialized): Mark all edges as
19425 executable.
19426 (execute_early_warn_uninitialized): Use VN to compute
19427 executable edges.
19428 (pass_data_early_warn_uninitialized): Enable a dump file,
19429 change dump name to warn_uninit.
19430
19431 2022-02-10 Richard Biener <rguenther@suse.de>
19432
19433 PR middle-end/104467
19434 * match.pd (vector extract simplification): Multiply the
19435 number of CTOR elements with the number of element elements.
19436
19437 2022-02-10 Richard Biener <rguenther@suse.de>
19438
19439 PR tree-optimization/104466
19440 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
19441 for the MR_DEPENDENCE checks as intended.
19442
19443 2022-02-10 Tom de Vries <tdevries@suse.de>
19444
19445 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
19446 define_insn.
19447 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
19448 TARGET_SM70.
19449 (define_c_enum "unspecv"): Add UNSPECV_ST.
19450
19451 2022-02-10 Tom de Vries <tdevries@suse.de>
19452
19453 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
19454 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
19455 (nvptx_mem_maybe_shared_p): New function.
19456 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
19457 define_expand.
19458
19459 2022-02-10 Tom de Vries <tdevries@suse.de>
19460
19461 PR target/97005
19462 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
19463 driver JIT bug by using sub.s16 instead of sub.u16.
19464
19465 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
19466
19467 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
19468 floating point constants as operands 1 and/or 2.
19469
19470 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
19471
19472 PR target/104345
19473 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
19474 (sel_false<mode>): Likewise.
19475 (define_code_iterator eqne): New code iterator for EQ and NE.
19476 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
19477 the negation of a selp instruction.
19478 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
19479 the bitwise not of a selp instruction.
19480 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
19481
19482 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
19483
19484 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
19485 in machine description.
19486 (logic): Move code attribute earlier in machine description.
19487 (ilogic): New code attribute, like logic but "ior" for IOR.
19488 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
19489 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
19490 (<ilogic>bi3): New define_insn for BI mode logic operations.
19491 (define_split): Lower logic operations from integer modes to
19492 BI mode predicate operations.
19493
19494 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
19495
19496 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
19497 (one_cmplbi2): New define_insn for not.pred.
19498 (mulditi3): New define_expand for signed widening multiply.
19499 (umulditi3): New define_expand for unsigned widening multiply.
19500 (smul<mode>3_highpart): New define_insn for signed highpart mult.
19501 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
19502 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
19503 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
19504 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
19505 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
19506 (*setcc<mode>_from_not_bi): New define_insn.
19507 (*setcc_isinf<mode>): New define_insn for testp.infinite.
19508 (isinf<mode>2): New define_expand.
19509
19510 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
19511
19512 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
19513 (setcc<mode>_from_bi): Additionally support QImode.
19514 (extendbi<mode>2): Additionally support QImode.
19515 (zero_extendbi<mode>2): Additionally support QImode.
19516 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
19517 iterators for signed and unsigned, binary and unary operations.
19518 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
19519 expanders to perform QImode operations using SImode instructions.
19520 (cstoreqi4): New define_expand.
19521 (*ext_truncsi2_qi): New define_insn.
19522 (*zext_truncsi2_qi): New define_insn.
19523
19524 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
19525
19526 * config/nvptx/nvptx.md (*cmpf): New define_insn.
19527 (cstorehf4): New define_expand.
19528 (fmahf4): New define_insn.
19529 (neghf2): New define_insn.
19530 (abshf2): New define_insn.
19531
19532 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
19533
19534 * doc/install.texi (Specific): Change the www.bitwizard.nl
19535 reference to use https.
19536
19537 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
19538
19539 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
19540 OMP_CLAUSE_HAS_DEVICE_ADDR
19541 and handle array sections.
19542 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
19543 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
19544 (lower_omp_target): Same.
19545 * tree-core.h (enum omp_clause_code): Same.
19546 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
19547 (convert_local_omp_clauses): Same.
19548 * tree-pretty-print.cc (dump_omp_clause): Same.
19549 * tree.cc: Same.
19550
19551 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
19552
19553 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
19554 that will result in direct recursive calls.
19555
19556 2022-02-10 Andrew Pinski <apinski@marvell.com>
19557
19558 PR target/104474
19559 * config/aarch64/aarch64.cc
19560 (aarch64_sve_expand_vector_init_handle_trailing_constants):
19561 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
19562
19563 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
19564
19565 PR target/104462
19566 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
19567 Also include OPTION_MASK_ISA2_AVX2_UNSET.
19568
19569 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
19570
19571 PR target/104458
19572 * config/i386/i386-expand.cc (ix86_split_idivmod):
19573 Force operands[2] and operands[3] into a register..
19574
19575 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
19576
19577 PR target/97040
19578 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
19579 (*v850_fnmssf4): Renamed from fnmssf4
19580
19581 2022-02-09 Ian Lance Taylor <iant@golang.org>
19582
19583 * godump.cc (go_force_record_alignment): Really name the alignment
19584 field "_" (complete 2021-12-29 change).
19585
19586 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
19587
19588 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
19589 function prototype.
19590 (VREPLACE_UN_UV4SI): Likewise.
19591 (VREPLACE_UN_V2DF): Likewise.
19592 (VREPLACE_UN_V2DI): Likewise.
19593 (VREPLACE_UN_V4SF): Likewise.
19594 (VREPLACE_UN_V4SI): Likewise.
19595 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
19596 function prototypes.
19597 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
19598 (vreplace_un_<mode>): New define_insn.
19599
19600 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19601
19602 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
19603 (VDBL): Handle SF.
19604 (single_wx, single_type, single_dtype, dblq): New mode attributes.
19605 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
19606 from VDC to VDCSIF.
19607 (store_pair_lanes<mode>): Likewise.
19608 (*aarch64_combine_internal<mode>): Likewise.
19609 (*aarch64_combine_internal_be<mode>): Likewise.
19610 (*aarch64_combinez<mode>): Likewise.
19611 (*aarch64_combinez_be<mode>): Likewise.
19612 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
19613 8-byte modes for ADDR_QUERY_LDP_STP_N.
19614 (aarch64_print_operand): Likewise for %y.
19615
19616 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19617
19618 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
19619 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
19620 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
19621 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
19622 (vec_pack_trunc_<mode>): Take general_operand elements and use
19623 aarch64_combine rather than move_lo/hi_quad to combine them.
19624 (vec_pack_trunc_df): Likewise.
19625
19626 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19627
19628 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
19629 Delete.
19630 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
19631 to...
19632 (*aarch64_combinez<mode>): ...this.
19633 (@aarch64_combinez_be<mode>): Rename to...
19634 (*aarch64_combinez_be<mode>): ...this.
19635 (@aarch64_vec_concat<mode>): New expander.
19636 (aarch64_combine<mode>): Use it.
19637 (@aarch64_simd_combine<mode>): Delete.
19638 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
19639 (aarch64_expand_vector_init): Use aarch64_vec_concat.
19640
19641 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19642
19643 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
19644 New predicate.
19645 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
19646 (*aarch64_combine_internal_be<mode>): New patterns.
19647
19648 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19649
19650 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
19651 (move_lo_quad_internal_be_<mode>): Delete.
19652 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
19653
19654 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19655
19656 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
19657 Declare.
19658 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
19659 aarch64_mergeable_load_pair_p instead of inline check.
19660 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
19661 (aarch64_check_consecutive_mems): Allow the reversed parameter
19662 to be null.
19663 (aarch64_mergeable_load_pair_p): New function.
19664
19665 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19666
19667 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
19668 element to be an aarch64_simd_nonimmediate_operand.
19669
19670 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
19671
19672 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
19673 aarch64_simd_nonimmediate_operand instead of
19674 aarch64_simd_general_operand.
19675 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
19676 general_operand.
19677 (@aarch64_combinez_be<mode>): Likewise.
19678
19679 2022-02-09 Richard Biener <rguenther@suse.de>
19680
19681 PR middle-end/104464
19682 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
19683 throwing check to after unproblematic replacement.
19684
19685 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
19686
19687 PR tree-optimization/104420
19688 * match.pd (mult @0 real_zerop): Tweak conditions for constant
19689 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
19690
19691 2022-02-09 Jakub Jelinek <jakub@redhat.com>
19692
19693 PR debug/104407
19694 * dwarf2out.cc (mangle_referenced_decls): New function.
19695 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
19696 early_dwarf. Instead walk the initializer and try to mangle vars or
19697 functions referenced from it.
19698
19699 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
19700
19701 PR tree-optimization/104288
19702 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
19703 (non_null_ref::adjust_range): Move to header.
19704 (ranger_cache::range_of_def): Don't check non-null.
19705 (ranger_cache::entry_range): Don't check non-null.
19706 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
19707 (ranger_cache::update_to_nonnull): New.
19708 (non_null_loadstore): New.
19709 (ranger_cache::block_apply_nonnull): New.
19710 * gimple-range-cache.h (class non_null_ref): Update prototypes.
19711 (non_null_ref::adjust_range): Move to here and inline.
19712 (class ranger_cache): Update prototypes.
19713 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
19714 not search dominators.
19715 (path_range_query::adjust_for_non_null_uses): Ditto.
19716 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
19717 def overrides. Do not check nonnull.
19718 (gimple_ranger::range_on_entry): Check dominators for nonnull.
19719 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
19720 (gimple_ranger::register_side_effects): New.
19721 * gimple-range.h (gimple_ranger::register_side_effects): New.
19722 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
19723
19724 2022-02-09 Richard Biener <rguenther@suse.de>
19725
19726 PR tree-optimization/104445
19727 PR tree-optimization/102832
19728 * optabs-query.h (can_vec_extract): New.
19729 * optabs-query.cc (can_vec_extract): Likewise.
19730 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
19731 we can extract a hi/lo part from the larger vector, rework
19732 check iteration from larger to smaller sizes.
19733
19734 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
19735
19736 PR target/35513
19737 PR target/100593
19738 * config/i386/gnu-property.cc: Include "i386-protos.h".
19739 (file_end_indicate_exec_stack_and_gnu_property): Generate
19740 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
19741 nodirect_extern_access attribute.
19742 * config/i386/i386-options.cc
19743 (handle_nodirect_extern_access_attribute): New function.
19744 (ix86_attribute_table): Add nodirect_extern_access attribute.
19745 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
19746 bool argument.
19747 (ix86_has_no_direct_extern_access): New.
19748 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
19749 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
19750 call operand. Force non-call load from GOT for
19751 -mno-direct-extern-access or nodirect_extern_access attribute.
19752 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
19753 for -mno-direct-extern-access or nodirect_extern_access attribute.
19754 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
19755 for call operand.
19756 (asm_preferred_eh_data_format): Use PC-relative format for
19757 -mno-direct-extern-access to avoid copy relocation. Check
19758 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
19759 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
19760 true for -mno-direct-extern-access or nodirect_extern_access
19761 attribute. Don't treat protected data as extern and avoid copy
19762 relocation on common symbol with -mno-direct-extern-access or
19763 nodirect_extern_access attribute.
19764 (ix86_reloc_rw_mask): New to avoid copy relocation for
19765 -mno-direct-extern-access.
19766 (TARGET_ASM_RELOC_RW_MASK): New.
19767 * config/i386/i386.opt: Add -mdirect-extern-access.
19768 * doc/extend.texi: Document nodirect_extern_access attribute.
19769 * doc/invoke.texi: Document -m[no-]direct-extern-access.
19770
19771 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
19772
19773 PR target/104441
19774 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
19775 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
19776 Call ix86_avx_u128_mode_source to check mode for each component
19777 of source operand.
19778
19779 2022-02-09 liuhongt <hongtao.liu@intel.com>
19780
19781 PR target/104451
19782 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
19783 operands[2] from SImode to QImode.
19784
19785 2022-02-09 Richard Biener <rguenther@suse.de>
19786
19787 PR middle-end/104450
19788 * gimple-isel.cc: Pass cfun around.
19789 (+gimple_expand_vec_cond_expr): Do not combine a throwing
19790 comparison with the select.
19791
19792 2022-02-09 Richard Biener <rguenther@suse.de>
19793
19794 PR target/104453
19795 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
19796 folding for NULL LHS.
19797
19798 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
19799
19800 PR rtl-optimization/104198
19801 PR rtl-optimization/104153
19802 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
19803 using it directly. Rework comparison handling and always
19804 perform a second pass.
19805
19806 2022-02-08 Jakub Jelinek <jakub@redhat.com>
19807
19808 PR target/102140
19809 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
19810 split1 pass has finished already.
19811
19812 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
19813
19814 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
19815 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
19816 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
19817 (vmsumcud): New define_insn.
19818
19819 2022-02-08 Tom de Vries <tdevries@suse.de>
19820
19821 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
19822 * config/nvptx/nvptx.h (TARGET_SM70): Define.
19823
19824 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
19825
19826 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
19827 on condition.
19828 * config/s390/s390.md: Use paradoxical subreg.
19829
19830 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
19831
19832 * combine.cc (reg_subword_p): Check for paradoxical subreg.
19833
19834 2022-02-08 Tom de Vries <tdevries@suse.de>
19835
19836 PR target/104283
19837 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
19838 and PTX_VERSION_4_2.
19839 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
19840 (default_ptx_version_option, ptx_version_to_string)
19841 (sm_version_to_string, handle_ptx_version_option): New function.
19842 (nvptx_option_override): Call handle_ptx_version_option.
19843 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
19844 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
19845 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
19846 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
19847
19848 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
19849
19850 * doc/install.texi (Configuration): Document `--with-isa-spec='
19851 RISC-V option.
19852 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
19853 option.
19854 (RISC-V Options): Document it.
19855
19856 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
19857
19858 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
19859
19860 2022-02-08 Tom de Vries <tdevries@suse.de>
19861
19862 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
19863
19864 2022-02-08 Tom de Vries <tdevries@suse.de>
19865
19866 PR target/104364
19867 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
19868 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
19869 change is validated.
19870 (nvptx_mem_local_p): New function.
19871 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
19872 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
19873 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
19874 non-atomic, non-predicable define_insn, factored out of ...
19875 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
19876 Make predicable again.
19877 (define_expand "atomic_compare_and_swap<mode>"): Use
19878 atomic_compare_and_swap<mode>_1_local.
19879
19880 2022-02-08 liuhongt <hongtao.liu@intel.com>
19881
19882 PR rtl-optimization/104059
19883 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
19884 for a more expensive reg-reg move.
19885
19886 2022-02-07 Tamar Christina <tamar.christina@arm.com>
19887
19888 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
19889 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
19890 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
19891 (usdot_laneq, sudot_laneq): New.
19892 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
19893 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
19894
19895 2022-02-07 Tamar Christina <tamar.christina@arm.com>
19896
19897 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
19898 vdot_laneq_s32, vdotq_laneq_s32): New.
19899 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
19900 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
19901 (<sup>dot_prod<vsi2qi>): Re-order rtl.
19902 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
19903 (neon_<sup>dot_laneq<vsi2qi>): New.
19904
19905 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
19906
19907 PR target/104327
19908 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
19909 if always_inline is set. Don't inline when tune differs without
19910 always_inline.
19911
19912 2022-02-07 Richard Biener <rguenther@suse.de>
19913
19914 PR middle-end/104402
19915 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
19916 compares are not valid.
19917 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
19918 check is_gimple_condexpr.
19919
19920 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
19921
19922 PR target/103627
19923 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
19924 hunk affecting VSX and ALTIVEC to appropriate place.
19925
19926 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
19927
19928 PR target/103627
19929 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
19930 MMA if !TARGET_VSX.
19931
19932 2022-02-06 Jakub Jelinek <jakub@redhat.com>
19933
19934 PR c++/89074
19935 PR c++/104033
19936 * fold-const.h (folding_initializer): Adjust comment.
19937 (folding_cxx_constexpr): Declare.
19938 * fold-const.cc (folding_initializer): Adjust comment.
19939 (folding_cxx_constexpr): New variable.
19940 (address_compare): Restrict the decl vs. STRING_CST
19941 or vice versa or STRING_CST vs. STRING_CST or
19942 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
19943 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
19944 assume non-aliased functions have non-zero size and have different
19945 addresses. For folding_cxx_constexpr, punt on comparisons of start
19946 of some object and end of another one, regardless whether it is a decl
19947 or string literal. Also punt for folding_cxx_constexpr on
19948 STRING_CST vs. STRING_CST comparisons if the two literals could be
19949 overlapping.
19950
19951 2022-02-05 Jakub Jelinek <jakub@redhat.com>
19952
19953 PR tree-optimization/104389
19954 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
19955 honored.
19956
19957 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
19958
19959 * configure.ac: Fix detection for zifencei support.
19960 * configure: Regenerate.
19961
19962 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
19963
19964 PR target/104219
19965 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
19966 (all_defaults): Add isa_spec.
19967 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
19968
19969 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
19970
19971 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
19972 parameters instead of arglist and nargs. Simplify accordingly. Remove
19973 unnecessary test for argument count mismatch.
19974 (resolve_vec_cmpne): Likewise.
19975 (resolve_vec_adde_sube): Likewise.
19976 (resolve_vec_addec_subec): Likewise.
19977 (altivec_resolve_overloaded_builtin): Move overload special handling
19978 after the gathering of arguments into args[] and types[] and the test
19979 for correct number of arguments. Don't perform the test for correct
19980 number of arguments for certain special cases. Call the other special
19981 cases with args and types instead of arglist and nargs.
19982
19983 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
19984
19985 PR target/100808
19986 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
19987 3.1): Provide consistent type names. Remove unnecessary semicolons.
19988 Fix bad line breaks.
19989
19990 2022-02-04 Jakub Jelinek <jakub@redhat.com>
19991
19992 PR target/104380
19993 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
19994 adjust mangling of __builtin*printf_chk.
19995
19996 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
19997
19998 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
19999
20000 2022-02-04 Richard Biener <rguenther@suse.de>
20001 Bin Cheng <bin.cheng@linux.alibaba.com>
20002
20003 PR tree-optimization/100499
20004 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
20005 to true.
20006 * fold-const.cc (multiple_of_p): Likewise. Honor it for
20007 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
20008 switching to false for conversions.
20009 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
20010 claim the outermost expression does not wrap when calling
20011 multiple_of_p. Refactor the check done to check the
20012 original IV, avoiding a bias that might wrap.
20013
20014 2022-02-04 Richard Biener <rguenther@suse.de>
20015
20016 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
20017 handling.
20018
20019 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
20020
20021 PR debug/104366
20022 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
20023 (dwarf2out_early_finish): Likewise.
20024
20025 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
20026
20027 PR tree-optimization/104356
20028 * match.pd (X / bool_range_Y is X): Add guard.
20029 (X / X is one): Likewise.
20030 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
20031 (X / -X is -1): Likewise.
20032 (1 / X -> X == 1): Likewise.
20033
20034 2022-02-04 Richard Biener <rguenther@suse.de>
20035
20036 PR tree-optimization/103641
20037 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
20038 Pass the vector mode to choose_mult_variant.
20039
20040 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
20041
20042 PR rtl-optimization/101885
20043 * combine.cc (try_combine): When splitting a parallel into two
20044 sequential sets, check not only that the first doesn't clobber
20045 the second but also that the second doesn't clobber the first.
20046
20047 2022-02-04 Richard Biener <rguenther@suse.de>
20048
20049 PR middle-end/90348
20050 PR middle-end/104092
20051 * tree-core.h (clobber_kind): New enum.
20052 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
20053 * tree.h (CLOBBER_KIND): Add.
20054 (build_clobber): Add clobber kind argument, defaulted to
20055 CLOBBER_UNDEF.
20056 * tree.cc (build_clobber): Likewise.
20057 * gimple.h (gimple_clobber_p): New overload with specified kind.
20058 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
20059 CLOBBER_KIND.
20060 * tree-streamer-out.cc (streamer_write_tree_bitfields):
20061 Likewise.
20062 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
20063 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
20064 with CLOBBER_EOL.
20065 (gimplify_target_expr): Likewise.
20066 * tree-inline.cc (expand_call_inline): Likewise.
20067 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
20068 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
20069 CLOBBER_EOL clobbers as ending lifetime of storage.
20070
20071 2022-02-04 Martin Sebor <msebor@redhat.com>
20072
20073 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
20074 cleanup.
20075
20076 2022-02-03 Martin Sebor <msebor@redhat.com>
20077
20078 PR middle-end/104260
20079 * passes.def (pass_warn_access): Adjust pass placement.
20080
20081 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
20082
20083 PR target/104362
20084 * config/i386/i386.cc (find_drap_reg): For 32bit targets
20085 return DI_REG if function uses __builtin_eh_return.
20086
20087 2022-02-03 Martin Sebor <msebor@redhat.com>
20088
20089 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
20090 (pass_wrestrict::m_ptr_qry): New member.
20091 (wrestrict_walk): Rename...
20092 (pass_wrestrict::check_block): ...to this.
20093 (pass_wrestrict::execute): Set up and tear down pointer_query and
20094 ranger.
20095 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
20096 (builtin_access::builtin_access): Same.
20097 (builtin_access::m_ptr_qry): New member.
20098 (check_call): Rename...
20099 (pass_wrestrict::check_call): ...to this.
20100 (check_bounds_or_overlap): Change argument.
20101 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
20102
20103 2022-02-03 Martin Sebor <msebor@redhat.com>
20104
20105 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
20106 Define ctor.
20107 (array_bounds_checker::get_value_range): Use new member.
20108 (array_bounds_checker::check_mem_ref): Same.
20109 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
20110 Outline ctor.
20111 (array_bounds_checker::m_ptr_query): New member.
20112
20113 2022-02-03 Martin Sebor <msebor@redhat.com>
20114
20115 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
20116 pointer_query cache.
20117 * pointer-query.cc (pointer_query::pointer_query): Remove cache
20118 argument. Zero-initialize new cache member.
20119 (pointer_query::get_ref): Replace cache pointer with direct access.
20120 (pointer_query::put_ref): Same.
20121 (pointer_query::flush_cache): Same.
20122 (pointer_query::dump): Same.
20123 * pointer-query.h (class pointer_query): Remove cache argument from
20124 ctor. Change cache pointer to cache subobject member.
20125 * tree-ssa-strlen.cc: Remove pointer_query cache.
20126
20127 2022-02-03 Martin Sebor <msebor@redhat.com>
20128
20129 PR tree-optimization/104119
20130 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
20131 (format_none): Same.
20132 (format_percent): Same.
20133 (format_integer): Same.
20134 (format_floating): Same.
20135 (get_string_length): Same.
20136 (format_character): Same.
20137 (format_string): Same.
20138 (format_plain): Same.
20139 (format_directive): Same.
20140 (compute_format_length): Same.
20141 (handle_printf_call): Same.
20142 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
20143 get_maxbound.
20144 (get_range_strlen_phi): Same.
20145 (get_maxbound): New function.
20146 (strlen_pass::get_len_or_size): Adjust to parameter change.
20147 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
20148
20149 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20150
20151 PR target/103686
20152 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
20153 test for !rs6000_fold_gimple.
20154 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
20155 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
20156
20157 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20158
20159 PR target/95082
20160 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
20161 endianness for vclzlsbb and vctzlsbb.
20162 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
20163 default pattern and indicate a different pattern will be used for
20164 big endian.
20165 (VCLZLSBB_V4SI): Likewise.
20166 (VCLZLSBB_V8HI): Likewise.
20167 (VCTZLSBB_V16QI): Likewise.
20168 (VCTZLSBB_V4SI): Likewise.
20169 (VCTZLSBB_V8HI): Likewise.
20170
20171 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20172
20173 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
20174 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
20175 from other files.
20176 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
20177 rs6000-builtin.cc.
20178 (cpu_supports_info): Likewise.
20179 (rs6000_type_string): Likewise.
20180 (altivec_expand_predicate_builtin): Likewise.
20181 (rs6000_htm_spr_icode): Likewise.
20182 (altivec_expand_vec_init_builtin): Likewise.
20183 (get_element_number): Likewise.
20184 (altivec_expand_vec_set_builtin): Likewise.
20185 (altivec_expand_vec_ext_builtin): Likewise.
20186 (rs6000_invalid_builtin): Likewise.
20187 (rs6000_fold_builtin): Likewise.
20188 (fold_build_vec_cmp): Likewise.
20189 (fold_compare_helper): Likewise.
20190 (map_to_integral_tree_type): Likewise.
20191 (fold_mergehl_helper): Likewise.
20192 (fold_mergeeo_helper): Likewise.
20193 (rs6000_builtin_valid_without_lhs): Likewise.
20194 (rs6000_builtin_is_supported): Likewise.
20195 (rs6000_gimple_fold_mma_builtin): Likewise.
20196 (rs6000_gimple_fold_builtin): Likewise.
20197 (rs6000_expand_ldst_mask): Likewise.
20198 (cpu_expand_builtin): Likewise.
20199 (elemrev_icode): Likewise.
20200 (ldv_expand_builtin): Likewise.
20201 (lxvrse_expand_builtin): Likewise.
20202 (lxvrze_expand_builtin): Likewise.
20203 (stv_expand_builtin): Likewise.
20204 (mma_expand_builtin): Likewise.
20205 (htm_spr_num): Likewise.
20206 (htm_expand_builtin): Likewise.
20207 (rs6000_expand_builtin): Likewise.
20208 (rs6000_vector_type): Likewise.
20209 (rs6000_init_builtins): Likewise. Remove initialization of
20210 builtin_mode_to_type entries.
20211 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
20212 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
20213 external declaration.
20214 (rs6000_builtin_md_vectorized_function): Likewise.
20215 (rs6000_builtin_reciprocal): Likewise.
20216 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
20217 (rs6000_builtin_types): Likewise.
20218 (builtin_mode_to_type): Remove.
20219 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
20220 static qualifier.
20221 (rs6000_builtin_md_vectorized_function): Likewise.
20222 (rs6000_builtin_reciprocal): Likewise.
20223 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
20224 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
20225
20226 2022-02-03 Richard Biener <rguenther@suse.de>
20227
20228 PR debug/104337
20229 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
20230 together via DECL_ABSTRACT_ORIGIN.
20231
20232 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
20233
20234 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
20235 message for RES_BITS case.
20236
20237 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
20238
20239 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
20240
20241 2022-02-03 Jakub Jelinek <jakub@redhat.com>
20242
20243 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
20244 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
20245
20246 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
20247
20248 * cfganal.cc (verify_marked_backedges): New.
20249 * cfganal.h (verify_marked_backedges): New.
20250 * gimple-range-path.cc (path_range_query::path_range_query):
20251 Verify freshness of back edges.
20252 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
20253 mark_dfs_back_edges.
20254 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
20255 path_range_query construction after backedges have been
20256 updated.
20257
20258 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
20259
20260 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
20261 VALL to VALL_F16.
20262
20263 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
20264
20265 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
20266 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
20267 of VALL_F16MOV.
20268
20269 2022-02-03 Martin Liska <mliska@suse.cz>
20270
20271 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
20272 Change subject and object in the error message.
20273 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
20274 Likewise.
20275
20276 2022-02-03 Martin Liska <mliska@suse.cz>
20277
20278 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
20279 Use the error message for i386 target.
20280
20281 2022-02-03 Jakub Jelinek <jakub@redhat.com>
20282
20283 PR tree-optimization/104334
20284 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
20285 and rh_range type to widest_int and subtract in widest_int. Remove
20286 ov_rh, ov_lh and sign vars, always perform comparisons as signed
20287 and use >, < and == operators for it.
20288
20289 2022-02-03 Martin Sebor <msebor@redhat.com>
20290
20291 * common.opt (-Wuse-after-free): Correct typos.
20292
20293 2022-02-02 David Malcolm <dmalcolm@redhat.com>
20294
20295 PR analyzer/104270
20296 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
20297 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
20298 -ftrivial-auto-var-init= doesn't suppress warnings.
20299
20300 2022-02-02 Martin Liska <mliska@suse.cz>
20301
20302 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
20303
20304 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
20305
20306 PR target/94372
20307 * config/or1k/linux.h (CPP_SPEC): Define.
20308
20309 2022-02-02 Tamar Christina <tamar.christina@arm.com>
20310
20311 PR tree-optimization/102819
20312 PR tree-optimization/103169
20313 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
20314 canonical order.
20315
20316 2022-02-02 Tamar Christina <tamar.christina@arm.com>
20317
20318 PR tree-optimization/102819
20319 PR tree-optimization/103169
20320 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
20321 canonical order.
20322 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
20323
20324 2022-02-02 Tamar Christina <tamar.christina@arm.com>
20325
20326 PR tree-optimization/102819
20327 PR tree-optimization/103169
20328 * doc/md.texi: Update docs for cfms, cfma.
20329 * tree-data-ref.h (same_data_refs): Accept optional offset.
20330 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
20331 patterns.
20332 (vect_normalize_conj_loc): Remove.
20333 (is_eq_or_top): Change to take two nodes.
20334 (enum _conj_status, compatible_complex_nodes_p,
20335 vect_validate_multiplication): New.
20336 (class complex_add_pattern, complex_add_pattern::matches,
20337 complex_add_pattern::recognize, class complex_mul_pattern,
20338 complex_mul_pattern::recognize, class complex_fms_pattern,
20339 complex_fms_pattern::recognize, class complex_operations_pattern,
20340 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
20341 new cache.
20342 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
20343 cache and use new validation code.
20344 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
20345 vect_analyze_slp): Pass along cache.
20346 (compatible_calls_p): Expose.
20347 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
20348 slp_compat_nodes_map_t): New.
20349 (class vect_pattern): Update signatures include new cache.
20350
20351 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
20352
20353 * config/cris/cris.cc (cris_preferred_reload_class): Reject
20354 "eliminated" registers and small-enough constants unless
20355 reloaded into a class that is a subset of GENERAL_REGS.
20356 * config/cris/cris.md (attribute "cpu_variant"): New.
20357 (attribute "enabled"): Conditionalize on a matching attribute
20358 cpu_variant, if specified.
20359 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
20360 memory, add cpu-variant-enabled variants for "r" alternatives on
20361 the far side of the "x" alternatives, preferring the "x" ones
20362 only for variants where MOF is present (in addition to SRP).
20363
20364 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
20365
20366 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
20367 extra cost for ALL_REGS.
20368
20369 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
20370
20371 * config/cris/constraints.md (define_register_constraint "b"): Now
20372 GENERAL_REGS.
20373 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
20374 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
20375 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
20376 and SPEC_GENNONACR_REGS.
20377 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
20378 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
20379
20380 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
20381
20382 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
20383 Conditionalize on (sub-)register operands or operand 1 being 0.
20384
20385 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
20386
20387 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
20388 (MUL_BUG_ASM_DEFAULT): New macro.
20389 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
20390 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
20391 accordingly.
20392
20393 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
20394
20395 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
20396 to 10 for AutoFDO.
20397
20398 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
20399
20400 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
20401
20402 2022-02-01 Andrew Pinski <apinski@marvell.com>
20403
20404 * doc/install.texi:
20405
20406 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
20407
20408 * config/s390/s390.cc (s390_code_end): Do not switch back to
20409 code section.
20410
20411 2022-02-01 Jakub Jelinek <jakub@redhat.com>
20412
20413 PR target/104323
20414 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
20415 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
20416 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
20417 GTY((user)) for struct bifdata and struct ovlddata. Instead add
20418 GTY((skip(""))) to members with pointer and enum types that don't need
20419 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
20420 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
20421 (write_extern_fntype, write_fntype): Remove.
20422 (write_fntype_init): Emit the fntype vars as automatic vars instead
20423 of file scope ones.
20424 (write_header_file): Don't iterate with write_extern_fntype.
20425 (write_init_file): Don't iterate with write_fntype. Don't emit
20426 gt_ggc_mx and gt_pch_nx definitions.
20427
20428 2022-02-01 Jason Merrill <jason@redhat.com>
20429
20430 * tree.h (struct tree_vec_map_cache_hasher): Move from...
20431 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
20432
20433 2022-02-01 Tom de Vries <tdevries@suse.de>
20434
20435 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
20436 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
20437 UNSPECV_UNIFORM_WARP_CHECK.
20438 (define_insn "nvptx_uniform_warp_check"): New define_insn.
20439
20440 2022-02-01 Tom de Vries <tdevries@suse.de>
20441
20442 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
20443 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
20444 UNSPECV_WARPSYNC.
20445 (define_insn "nvptx_warpsync"): New define_insn.
20446
20447 2022-02-01 Tom de Vries <tdevries@suse.de>
20448
20449 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
20450
20451 2022-02-01 Tom de Vries <tdevries@suse.de>
20452
20453 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
20454 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
20455 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
20456 insn for TARGET_PTX_6_0.
20457
20458 2022-02-01 Tom de Vries <tdevries@suse.de>
20459
20460 PR target/100428
20461 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
20462 insn.
20463
20464 2022-02-01 Tom de Vries <tdevries@suse.de>
20465
20466 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
20467 (define_insn "atomic_exchange<mode>")
20468 (define_insn "atomic_fetch_add<mode>")
20469 (define_insn "atomic_fetch_addsf")
20470 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
20471 if memory operands is frame-relative.
20472
20473 2022-02-01 Tom de Vries <tdevries@suse.de>
20474
20475 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
20476 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
20477 (VOID): New macro.
20478 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
20479 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
20480 NVPTX_BUILTIN_MEMBAR_CTA.
20481 (nvptx_lockfull_update): Add level parameter. Emit barriers.
20482 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
20483 nvptx_lockfull_update.
20484 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
20485 UNSPECV_MEMBAR_GL.
20486 (define_expand "nvptx_membar_gl"): New expand.
20487 (define_insn "*nvptx_membar_gl"): New insn.
20488
20489 2022-02-01 Martin Liska <mliska@suse.cz>
20490
20491 * doc/install.texi: Remove option for GCC < 4.8.
20492
20493 2022-02-01 Jakub Jelinek <jakub@redhat.com>
20494
20495 PR middle-end/104307
20496 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
20497 stmts to uses vector, just set vec_cond_expr_only to false for
20498 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
20499 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
20500 like non-VEC_COND_EXPRs.
20501
20502 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
20503
20504 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
20505 (VEC_BLENDV): Likewise.
20506 (VEC_BPERM): Likewise.
20507 (VEC_CFUGE): Likewise.
20508 (VEC_CIPHER_BE): Likewise.
20509 (VEC_CIPHERLAST_BE): Likewise.
20510 (VEC_CLRL): Likewise.
20511 (VEC_CLRR): Likewise.
20512 (VEC_CMPNEZ): Likewise.
20513 (VEC_CNTLZ): Likewise.
20514 (VEC_CNTLZM): Likewise.
20515 (VEC_CNTTZM): Likewise.
20516 (VEC_CNTLZ_LSBB): Likewise.
20517 (VEC_CNTM): Likewise.
20518 (VEC_CNTTZ): Likewise.
20519 (VEC_CNTTZ_LSBB): Likewise.
20520 (VEC_CONVERT_4F32_8F16): Likewise.
20521 (VEC_DIV): Likewise.
20522 (VEC_DIVE): Likewise.
20523 (VEC_EQV): Likewise.
20524 (VEC_EXPANDM): Likewise.
20525 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
20526 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
20527 (VEC_EXTRACTH): Likewise.
20528 (VEC_EXTRACTL): Likewise.
20529 (VEC_EXTRACTM): Likewise.
20530 (VEC_EXTRACT4B): Likewise.
20531 (VEC_EXTULX): Likewise.
20532 (VEC_EXTURX): Likewise.
20533 (VEC_FIRSTMATCHINDEX): Likewise.
20534 (VEC_FIRSTMACHOREOSINDEX): Likewise.
20535 (VEC_FIRSTMISMATCHINDEX): Likewise.
20536 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
20537 (VEC_GB): Likewise.
20538 (VEC_GENBM): Likewise.
20539 (VEC_GENHM): Likewise.
20540 (VEC_GENWM): Likewise.
20541 (VEC_GENDM): Likewise.
20542 (VEC_GENQM): Likewise.
20543 (VEC_GENPCVM): Likewise.
20544 (VEC_GNB): Likewise.
20545 (VEC_INSERTH): Likewise.
20546 (VEC_INSERTL): Likewise.
20547 (VEC_INSERT4B): Likewise.
20548 (VEC_LXVL): Likewise.
20549 (VEC_MERGEE): Likewise.
20550 (VEC_MERGEO): Likewise.
20551 (VEC_MOD): Likewise.
20552 (VEC_MSUB): Likewise.
20553 (VEC_MULH): Likewise.
20554 (VEC_NAND): Likewise.
20555 (VEC_NCIPHER_BE): Likewise.
20556 (VEC_NCIPHERLAST_BE): Likewise.
20557 (VEC_NEARBYINT): Likewise.
20558 (VEC_NMADD): Likewise.
20559 (VEC_ORC): Likewise.
20560 (VEC_PDEP): Likewise.
20561 (VEC_PERMX): Likewise.
20562 (VEC_PEXT): Likewise.
20563 (VEC_POPCNT): Likewise.
20564 (VEC_PARITY_LSBB): Likewise.
20565 (VEC_REPLACE_ELT): Likewise.
20566 (VEC_REPLACE_UN): Likewise.
20567 (VEC_REVB): Likewise.
20568 (VEC_RINT): Likewise.
20569 (VEC_RLMI): Likewise.
20570 (VEC_RLNM): Likewise.
20571 (VEC_SBOX_BE): Likewise.
20572 (VEC_SIGNEXTI): Likewise.
20573 (VEC_SIGNEXTLL): Likewise.
20574 (VEC_SIGNEXTQ): Likewise.
20575 (VEC_SLDB): Likewise.
20576 (VEC_SLV): Likewise.
20577 (VEC_SPLATI): Likewise.
20578 (VEC_SPLATID): Likewise.
20579 (VEC_SPLATI_INS): Likewise.
20580 (VEC_SQRT): Likewise.
20581 (VEC_SRDB): Likewise.
20582 (VEC_SRV): Likewise.
20583 (VEC_STRIL): Likewise.
20584 (VEC_STRIL_P): Likewise.
20585 (VEC_STRIR): Likewise.
20586 (VEC_STRIR_P): Likewise.
20587 (VEC_STXVL): Likewise.
20588 (VEC_TERNARYLOGIC): Likewise.
20589 (VEC_TEST_LSBB_ALL_ONES): Likewise.
20590 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
20591 (VEC_VEE): Likewise.
20592 (VEC_VES): Likewise.
20593 (VEC_VIE): Likewise.
20594 (VEC_VPRTYB): Likewise.
20595 (VEC_VSCEEQ): Likewise.
20596 (VEC_VSCEGT): Likewise.
20597 (VEC_VSCELT): Likewise.
20598 (VEC_VSCEUO): Likewise.
20599 (VEC_VSEE): Likewise.
20600 (VEC_VSES): Likewise.
20601 (VEC_VSIE): Likewise.
20602 (VEC_VSTDC): Likewise.
20603 (VEC_VSTDCN): Likewise.
20604 (VEC_VTDC): Likewise.
20605 (VEC_XL): Likewise.
20606 (VEC_XL_BE): Likewise.
20607 (VEC_XL_LEN_R): Likewise.
20608 (VEC_XL_SEXT): Likewise.
20609 (VEC_XL_ZEXT): Likewise.
20610 (VEC_XST): Likewise.
20611 (VEC_XST_BE): Likewise.
20612 (VEC_XST_LEN_R): Likewise.
20613 (VEC_XST_TRUNC): Likewise.
20614 (VEC_XXPERMDI): Likewise.
20615 (VEC_XXSLDWI): Likewise.
20616 (VEC_TSTSFI_EQ_DD): Likewise.
20617 (VEC_TSTSFI_EQ_TD): Likewise.
20618 (VEC_TSTSFI_GT_DD): Likewise.
20619 (VEC_TSTSFI_GT_TD): Likewise.
20620 (VEC_TSTSFI_LT_DD): Likewise.
20621 (VEC_TSTSFI_LT_TD): Likewise.
20622 (VEC_TSTSFI_OV_DD): Likewise.
20623 (VEC_TSTSFI_OV_TD): Likewise.
20624 (VEC_VADDCUQ): Likewise.
20625 (VEC_VADDECUQ): Likewise.
20626 (VEC_VADDEUQM): Likewise.
20627 (VEC_VADDUDM): Likewise.
20628 (VEC_VADDUQM): Likewise.
20629 (VEC_VBPERMQ): Likewise.
20630 (VEC_VCLZB): Likewise.
20631 (VEC_VCLZD): Likewise.
20632 (VEC_VCLZH): Likewise.
20633 (VEC_VCLZW): Likewise.
20634 (VEC_VCTZB): Likewise.
20635 (VEC_VCTZD): Likewise.
20636 (VEC_VCTZH): Likewise.
20637 (VEC_VCTZW): Likewise.
20638 (VEC_VEEDP): Likewise.
20639 (VEC_VEESP): Likewise.
20640 (VEC_VESDP): Likewise.
20641 (VEC_VESSP): Likewise.
20642 (VEC_VIEDP): Likewise.
20643 (VEC_VIESP): Likewise.
20644 (VEC_VPKSDSS): Likewise.
20645 (VEC_VPKSDUS): Likewise.
20646 (VEC_VPKUDUM): Likewise.
20647 (VEC_VPKUDUS): Likewise.
20648 (VEC_VPOPCNT): Likewise.
20649 (VEC_VPOPCNTB): Likewise.
20650 (VEC_VPOPCNTD): Likewise.
20651 (VEC_VPOPCNTH): Likewise.
20652 (VEC_VPOPCNTW): Likewise.
20653 (VEC_VPRTYBD): Likewise.
20654 (VEC_VPRTYBQ): Likewise.
20655 (VEC_VPRTYBW): Likewise.
20656 (VEC_VRLD): Likewise.
20657 (VEC_VSLD): Likewise.
20658 (VEC_VSRAD): Likewise.
20659 (VEC_VSRD): Likewise.
20660 (VEC_VSTDCDP): Likewise.
20661 (VEC_VSTDCNDP): Likewise.
20662 (VEC_VSTDCNQP): Likewise.
20663 (VEC_VSTDCNSP): Likewise.
20664 (VEC_VSTDCQP): Likewise.
20665 (VEC_VSTDCSP): Likewise.
20666 (VEC_VSUBECUQ): Likewise.
20667 (VEC_VSUBEUQM): Likewise.
20668 (VEC_VSUBUDM): Likewise.
20669 (VEC_VSUBUQM): Likewise.
20670 (VEC_VTDCDP): Likewise.
20671 (VEC_VTDCSP): Likewise.
20672 (VEC_VUPKHSW): Likewise.
20673 (VEC_VUPKLSW): Likewise.
20674
20675 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
20676
20677 PR rtl-optimization/101260
20678 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
20679 copy_regno.
20680
20681 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
20682
20683 PR middle-end/95115
20684 * fold-const.cc (const_binop): Do not fold NaN result from
20685 non-NaN operands.
20686
20687 2022-02-01 Tom de Vries <tdevries@suse.de>
20688
20689 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
20690 -ftree-loop-distribute-patterns.
20691 (loop_distribution::execute): Don't call transform_reduction_loop for
20692 -fno-tree-loop-distribute-patterns.
20693
20694 2022-01-31 Andrew Pinski <apinski@marvell.com>
20695
20696 * fold-const.h (operand_compare::operand_equal_p):
20697 Fix comment about OEP_* flags.
20698
20699 2022-01-31 Jakub Jelinek <jakub@redhat.com>
20700
20701 PR target/104298
20702 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
20703 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
20704 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
20705 if not already defined.
20706
20707 2022-01-31 Martin Sebor <msebor@redhat.com>
20708
20709 PR middle-end/104232
20710 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
20711 Handle PHIs. Add a synonymous overload.
20712 (pass_waccess::check_pointer_uses): Call pointers_related_p.
20713
20714 2022-01-31 Richard Biener <rguenther@suse.de>
20715
20716 PR tree-optimization/100499
20717 * fold-const.cc (multiple_of_p): Pass the correct type of
20718 the expression to the recursive invocation of multiple_of_p
20719 for conversions and use CASE_CONVERT.
20720
20721 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
20722
20723 PR target/104189
20724 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
20725
20726 2022-01-31 Richard Biener <rguenther@suse.de>
20727
20728 PR tree-optimization/100499
20729 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
20730 on poly-ints instead of multiple_of_p.
20731 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
20732 (non_rewritable_mem_ref_base): Likewise.
20733 (non_rewritable_lvalue_p): Likewise.
20734 (execute_update_addresses_taken): Likewise.
20735
20736 2022-01-29 Jakub Jelinek <jakub@redhat.com>
20737 Andrew Pinski <apinski@marvell.com>
20738
20739 PR tree-optimization/104279
20740 PR tree-optimization/104280
20741 PR tree-optimization/104281
20742 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
20743 boolean_type_node and convert to type. Formatting fixes.
20744
20745 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
20746
20747 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
20748
20749 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
20750
20751 PR tree-optimization/103514
20752 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
20753 (a & b) == (a ^ b) -> !(a | b): New optimization.
20754
20755 2022-01-28 Marek Polacek <polacek@redhat.com>
20756
20757 * doc/invoke.texi: Update -Wbidi-chars documentation.
20758
20759 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
20760
20761 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
20762
20763 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
20764
20765 PR tree-optimization/95424
20766 * match.pd: Simplify 1 / X where X is an integer.
20767
20768 2022-01-28 Jakub Jelinek <jakub@redhat.com>
20769
20770 PR tree-optimization/104263
20771 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
20772 cfun->can_throw_non_call_exceptions && cfun->eh test whether
20773 last non-debug stmt in the bb is store_valid_for_store_merging_p
20774 rather than last stmt.
20775
20776 2022-01-28 Martin Liska <mliska@suse.cz>
20777
20778 * diagnostic.cc (diagnostic_action_after_output): Remove extra
20779 newline.
20780
20781 2022-01-28 Martin Liska <mliska@suse.cz>
20782
20783 * config/rs6000/host-darwin.cc (segv_crash_handler):
20784 Do not use leading capital letter.
20785 (segv_handler): Likewise.
20786 * ipa-sra.cc (verify_splitting_accesses): Likewise.
20787 * varasm.cc (get_section): Likewise.
20788
20789 2022-01-28 Richard Biener <rguenther@suse.de>
20790
20791 PR tree-optimization/104267
20792 * tree-vect-stmts.cc (vectorizable_call): Properly use the
20793 per-argument determined vector type for externals and
20794 invariants.
20795
20796 2022-01-28 Richard Biener <rguenther@suse.de>
20797
20798 PR tree-optimization/104263
20799 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
20800 Purge edges also when !cfun->has_nonlocal_label
20801 and !cfun->calls_setjmp.
20802
20803 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
20804
20805 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
20806 attributes.
20807
20808 2022-01-28 Jakub Jelinek <jakub@redhat.com>
20809
20810 PR lto/104237
20811 * cfgrtl.cc (loc_equal): New function.
20812 (unique_locus_on_edge_between_p): Use it.
20813
20814 2022-01-28 Richard Biener <rguenther@suse.de>
20815
20816 * cfganal.h (mark_dfs_back_edges): Provide API with struct
20817 function argument.
20818 * cfganal.cc (mark_dfs_back_edges): Take a struct function
20819 to work on, add a wrapper passing cfun.
20820 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
20821 uses with fun which is already passed.
20822 (draw_cfg_edges): Likewise.
20823 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
20824 for fun != cfun.
20825
20826 2022-01-27 Patrick Palka <ppalka@redhat.com>
20827
20828 PR c++/99895
20829 * tree.cc (build_call_vec): Add const to second parameter.
20830 * tree.h (build_call_vec): Likewise.
20831
20832 2022-01-27 Martin Liska <mliska@suse.cz>
20833
20834 PR web/104254
20835 * diagnostic.cc (diagnostic_initialize):
20836 Initialize report_bug flag.
20837 (diagnostic_action_after_output):
20838 Explain that -freport-bug option can be used for pre-processed
20839 file creation. Make the message shorter.
20840 (error_recursion): Rename Internal to internal.
20841 * diagnostic.h (struct diagnostic_context): New field.
20842 * opts.cc (common_handle_option): Init the field here.
20843
20844 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
20845
20846 PR target/103702
20847 * config/rs6000/rs6000.cc
20848 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
20849 assertion with early return.
20850
20851 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
20852
20853 PR middle-end/103642
20854 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
20855 for non-pointer or non-reference-to-pointer cases.
20856
20857 2022-01-27 Jakub Jelinek <jakub@redhat.com>
20858
20859 PR tree-optimization/104196
20860 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
20861 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
20862 return NULL and emit needed stmts before and after stmt.
20863 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
20864 pick as operand_entry that will hold the merged test the one feeding
20865 earliest condition, ensure that by swapping range->idx with some
20866 other range's idx if needed. If seq is non-NULL, don't actually swap
20867 it but instead rewrite stmts with undefined overflow in between
20868 the two locations.
20869 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
20870 corresponding condition even if they have non-NULL ops[]->op.
20871 Formatting fix.
20872
20873 2022-01-26 Jakub Jelinek <jakub@redhat.com>
20874
20875 PR target/104239
20876 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
20877 asm.
20878 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
20879 before for loop instead of for init clause.
20880 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
20881
20882 2022-01-26 Jakub Jelinek <jakub@redhat.com>
20883
20884 PR target/104239
20885 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
20886 _X86INTRIN_H_INCLUDED and adjust #error wording.
20887 * config/rs6000/bmi2intrin.h: Likewise.
20888
20889 2022-01-26 Jakub Jelinek <jakub@redhat.com>
20890
20891 PR debug/104194
20892 * dwarf2out.cc (long_double_as_float128): New function.
20893 (modified_type_die): For powerpc64le IEEE 754 quad long double
20894 and complex long double emit those as DW_TAG_typedef to
20895 _Float128 or complex _Float128 base type.
20896
20897 2022-01-26 Marek Polacek <polacek@redhat.com>
20898
20899 PR target/104213
20900 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
20901 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
20902
20903 2022-01-26 Martin Liska <mliska@suse.cz>
20904
20905 * ipa-modref-tree.cc (modref_access_node::update):
20906 Remove "--param param=foo" with "--param foo".
20907 (modref_access_node::insert): Likewise.
20908 (modref_access_node::insert_kill): Likewise.
20909 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
20910 (struct modref_base_node): Likewise.
20911 (struct modref_tree): Likewise.
20912
20913 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
20914
20915 PR target/94193
20916 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
20917 predicate check.
20918
20919 2022-01-25 Martin Sebor <msebor@redhat.com>
20920
20921 PR tree-optimization/104203
20922 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
20923 TV_WARN_ACCESS.
20924 * pointer-query.cc (access_ref::merge_ref): Change return type.
20925 Convert failure to a conservative success.
20926 (access_ref::get_ref): Adjust to the change above. Short-circuit
20927 PHI evaluation after first failure turned into conservative success.
20928 * pointer-query.h (access_ref::merge_ref): Change return type.
20929 * timevar.def (TV_WARN_ACCESS): New timer variable.
20930
20931 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
20932
20933 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
20934
20935 2022-01-25 Richard Biener <rguenther@suse.de>
20936
20937 PR tree-optimization/104214
20938 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
20939 stronger guarantees for relational pointer compares when
20940 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
20941 BASE0 + STEP0 - STEP1 cmp BASE1.
20942
20943 2022-01-25 Jakub Jelinek <jakub@redhat.com>
20944
20945 PR target/104172
20946 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
20947 declare.
20948 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
20949 ieee128_mangling_gcc_8_1): Remove.
20950 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
20951 (rs6000_mangle_type): Return "u9__ieee128" instead of
20952 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
20953 (rs6000_globalize_decl_name): Remove.
20954 * config/rs6000/rs6000-call.cc (init_cumulative_args,
20955 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
20956
20957 2022-01-24 Martin Sebor <msebor@redhat.com>
20958
20959 * pointer-query.cc (pointer_query::dump): Remove duplicate
20960 block.
20961
20962 2022-01-24 Marek Polacek <polacek@redhat.com>
20963
20964 PR preprocessor/104030
20965 * doc/invoke.texi: Update documentation for -Wbidi-chars.
20966
20967 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
20968
20969 PR target/94193
20970 * builtins.cc (expand_builtin_fegetround): New function.
20971 (expand_builtin_feclear_feraise_except): New function.
20972 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
20973 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
20974 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
20975 (feclearexceptsi): New Pattern.
20976 (feraiseexceptsi): New Pattern.
20977 * doc/extend.texi: Add a new introductory paragraph about the
20978 new builtins.
20979 * doc/md.texi: (fegetround@var{m}): Document new optab.
20980 (feclearexcept@var{m}): Document new optab.
20981 (feraiseexcept@var{m}): Document new optab.
20982 * optabs.def (fegetround_optab): New optab.
20983 (feclearexcept_optab): New optab.
20984 (feraiseexcept_optab): New optab.
20985
20986 2022-01-24 Richard Biener <rguenther@suse.de>
20987 Jiufu Guo <guojiufu@linux.ibm.com>
20988
20989 PR tree-optimization/100740
20990 PR tree-optimization/101508
20991 PR tree-optimization/101972
20992 PR tree-optimization/102131
20993 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
20994 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
20995 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
20996
20997 2022-01-24 Jakub Jelinek <jakub@redhat.com>
20998
20999 PR sanitizer/104158
21000 * opt-functions.awk (var_set): Handle EnumBitSet property.
21001 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
21002 specified.
21003 * opts.h (enum cl_enum_var_value): New type.
21004 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
21005 Handle CLEV_BITSET.
21006 (cmdline_handle_error): Handle CLEV_BITSET.
21007 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
21008 * doc/options.texi (EnumBitSet): Document.
21009 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
21010 EnumSet.
21011 (trace-pc, trace-cmp): Drop Set properties.
21012
21013 2022-01-24 Jakub Jelinek <jakub@redhat.com>
21014
21015 PR sanitizer/104158
21016 * common.opt (flag_sanitize_coverage): Remove Variable entry.
21017 (fsanitize-coverage=): Remove RejectNegative property, add
21018 Var(flag_sanitize_coverage) and EnumSet properties.
21019 (trace-pc): Add Set(1) property.
21020 (trace-cmp): Add Set(2) property.
21021 * opts.cc (common_handle_option): Don't handle
21022 OPT_fsanitize_coverage_.
21023
21024 2022-01-24 Jakub Jelinek <jakub@redhat.com>
21025
21026 PR sanitizer/104158
21027 * opt-functions.awk (var_set): Handle EnumSet property.
21028 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
21029 specified.
21030 * opt-read.awk: Handle Set property.
21031 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
21032 (struct cl_decoded_option): Mention enum in value description.
21033 Add mask member.
21034 (set_option): Add mask argument defaulted to 0.
21035 * opts.cc (test_enum_sets): New function.
21036 (opts_cc_tests): Call it.
21037 * opts-common.cc (enum_arg_to_value): Change return argument
21038 from bool to int, on success return index into the cl_enum_arg
21039 array, on failure -1. Add len argument, if non-0, use strncmp
21040 instead of strcmp.
21041 (opt_enum_arg_to_value): Adjust caller.
21042 (decode_cmdline_option): Handle EnumSet represented as
21043 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
21044 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
21045 (handle_option): Pass decoded->mask to set_options last argument.
21046 (generate_option): Clear decoded->mask.
21047 (generate_option_input_file): Likewise.
21048 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
21049 (set_option): Add mask argument, use it for CLVC_ENUM.
21050 (control_warning_option): Adjust enum_arg_to_value caller.
21051 * doc/options.texi: Document Set and EnumSet properties.
21052
21053 2022-01-24 Jakub Jelinek <jakub@redhat.com>
21054
21055 PR bootstrap/104170
21056 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21057 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21058 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21059 using OPTION_*_P macros.
21060 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21061 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21062 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21063 using OPTION_*_P macros.
21064 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21065 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21066 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21067 using OPTION_*_P macros.
21068 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
21069 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
21070 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
21071 using OPTION_*_P macros.
21072 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
21073 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
21074 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
21075 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
21076 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
21077 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
21078 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
21079 otherwise assume if (true).
21080
21081 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
21082
21083 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
21084 Skip zicsr and zifencei if I-ext is 2.0.
21085
21086 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
21087
21088 * config.gcc: Modify default isa_spec version.
21089
21090 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
21091
21092 PR tree-optimization/102087
21093 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
21094 Correct PLUS result type.
21095
21096 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
21097
21098 PR target/104188
21099 * config/i386/predicates.md (bcst_mem_operand): Also check mode
21100 of memory broadcast.
21101
21102 2022-01-23 Andrew Pinski <apinski@marvell.com>
21103
21104 PR target/64821
21105 * config/aarch64/aarch64-builtins.cc
21106 (aarch64_general_gimple_fold_builtin): Handle
21107 __builtin_aarch64_sqrt* and simplify into SQRT internal
21108 function.
21109
21110 2022-01-22 Jakub Jelinek <jakub@redhat.com>
21111
21112 PR other/104176
21113 * opts-global.cc (handle_common_deferred_options): Quote
21114 --enable-plugin in diagnostics to avoid -Werror=format-diag.
21115
21116 2022-01-21 Michael Meissner <meissner@the-meissners.org>
21117
21118 PR target/104136
21119 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
21120 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
21121 * config/rs6000/rs6000.md (prefixed attribute): Delete section
21122 that sets the prefixed attribute for xxspltiw, xxspltidp, and
21123 xxsplti32dx instructions.
21124 (movsf_hardfloat): Explicitly set the prefixed attribute
21125 when xxspltiw and xxspltidp instructions are generated.
21126 (mov<mode>_hardfloat32): Likewise.
21127 (mov<mode>_hardfloat64): Likewise.
21128 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
21129 prefixed attribute for xxspltiw and xxspltidp instructions.
21130 (vsx_mov<mode>_32bit): Likewise.
21131
21132 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
21133
21134 PR bootstrap/104170
21135 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
21136 Return true only on glibc.
21137 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
21138 Revert commit c163647ffbc.
21139 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
21140
21141 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
21142
21143 * common/config/s390/s390-common.cc (s390_supports_split_stack):
21144 Only support split-stack on glibc targets.
21145 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
21146 * config/i386/gnu.h (defined): Ditto.
21147
21148 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
21149
21150 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
21151 vector float and vector double.
21152
21153 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
21154
21155 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
21156 Fix mention of ifunc in string.
21157
21158 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
21159
21160 PR middle-end/104140
21161 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
21162 operands of the widening multiplication are either both signed or
21163 both unsigned, and abort the conversion if mismatched.
21164 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
21165 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
21166 signedness.
21167 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
21168 integer types with the same precision and signedness.
21169 (WIDEN_MULT_EXPR): Document that operands must have integer types
21170 with the same precision, but possibly differing signedness.
21171 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
21172 riscv_current_subset_list returning a NULL pointer (empty list).
21173
21174 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
21175
21176 PR target/103676
21177 * ira.h (struct target_ira): Add member
21178 x_ira_exclude_class_mode_regs.
21179 (ira_exclude_class_mode_regs): New macro.
21180 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
21181 move from here ...
21182 * lra-int.h: ... to here.
21183 (lra_create_new_reg_with_unique_value): Add arg
21184 exclude_start_hard_regs.
21185 (class lra_reg): Add member exclude_start_hard_regs.
21186 * lra-assigns.cc (find_hard_regno_for_1): Setup
21187 impossible_start_hard_regs from exclude_start_hard_regs.
21188 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
21189 it lra_create_new_reg[_with_unique_value].
21190 (match_reload): Ditto.
21191 (check_and_process_move): Pass NULL
21192 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
21193 (goal_alt_exclude_start_hard_regs): New static variable.
21194 (process_addr_reg, simplify_operand_subreg): Pass NULL
21195 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
21196 and get_reload_reg.
21197 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
21198 Use this_alternative_exclude_start_hard_regs additionally to find
21199 winning operand alternative.
21200 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
21201 exclude_start_hard_regs to lra_create_new_reg.
21202 (process_address_1, emit_inc): Ditto.
21203 (curr_insn_transform): Pass exclude_start_hard_regs value to
21204 lra_create_new_reg, get_reload_reg, match_reload.
21205 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
21206 to lra_create_new_reg.
21207 (process_invariant_for_inheritance): Ditto.
21208 * lra-remat.cc (update_scratch_ops): Ditto.
21209 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
21210 exclude_start_hard_regs. Setup the corresponding member of
21211 lra reg info.
21212 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
21213 to lra_create_new_reg_with_unique_value.
21214 (initialize_lra_reg_info_element): Initialize member
21215 exclude_start_hard_regs.
21216 (get_scratch_reg): Pass NULL to lra_create_new_reg.
21217 * ira.cc (setup_prohibited_class_mode_regs): Rename to
21218 setup_prohibited_and_exclude_class_mode_regs and calculate
21219 ira_exclude_class_mode_regs.
21220
21221 2022-01-21 Martin Liska <mliska@suse.cz>
21222
21223 * configure.ac: Detect ld_is_mold and use it for
21224 comdat_group=yes and gcc_cv_ld_hidden=yes.
21225 * configure: Regenerate.
21226
21227 2022-01-21 Richard Biener <rguenther@suse.de>
21228
21229 PR tree-optimization/100089
21230 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
21231 of if-converted loops with unvectorized COND_EXPRs for
21232 all but the unlimited cost models.
21233
21234 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
21235
21236 * config/arm/arm-opts.h (enum stack_protector_guard): New.
21237 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
21238 New.
21239 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
21240 (arm_option_override_internal): Handle and put in error checks.
21241 for stack protector guard options.
21242 (arm_option_reconfigure_globals): Likewise.
21243 (arm_stack_protect_tls_canary_mem): New.
21244 (arm_stack_protect_guard): New.
21245 * config/arm/arm.md (stack_protect_set): New.
21246 (stack_protect_set_tls): Likewise.
21247 (stack_protect_test): Likewise.
21248 (stack_protect_test_tls): Likewise.
21249 (reload_tp_hard): Likewise.
21250 * config/arm/arm.opt (-mstack-protector-guard): New
21251 (-mstack-protector-guard-offset): New.
21252 * doc/invoke.texi: Document new options.
21253
21254 2022-01-21 Richard Biener <rguenther@suse.de>
21255
21256 PR tree-optimization/104156
21257 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
21258 Collect and reset debug stmts with out-of-loop uses when
21259 hoisting guards.
21260 (find_loop_guard): Adjust.
21261 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
21262 (used_outside_loop_p): Push debug uses to a vector of
21263 debug stmts to reset.
21264 (hoist_guard): Adjust -fopt-info category.
21265
21266 2022-01-21 Richard Biener <rguenther@suse.de>
21267
21268 PR tree-optimization/104152
21269 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
21270 can_duplicate_and_interleave_p check.
21271
21272 2022-01-21 Jakub Jelinek <jakub@redhat.com>
21273
21274 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
21275 Avoid passing var to warning_at when the format string doesn't
21276 refer to it.
21277
21278 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
21279
21280 PR tree-optimization/103721
21281 * gimple-range-path.cc
21282 (path_range_query::relations_may_be_invalidated): New.
21283 (path_range_query::compute_ranges_in_block): Reset relations if
21284 they may be invalidated.
21285 (path_range_query::maybe_register_phi_relation): Exit if relations
21286 may be invalidated on incoming edge.
21287 (path_range_query::compute_phi_relations): Pass incoming PHI edge
21288 to maybe_register_phi_relation.
21289 * gimple-range-path.h (relations_may_be_invalidated): New.
21290 (maybe_register_phi_relation): Pass edge instead of tree.
21291 * tree-ssa-threadbackward.cc (back_threader::back_threader):
21292 Mark DFS edges.
21293 * value-relation.cc (path_oracle::path_oracle): Call
21294 mark_dfs_back_edges.
21295 (path_oracle::register_relation): Add SSA names to m_registered
21296 bitmap.
21297 (path_oracle::reset_path): Clear m_registered bitmap.
21298 * value-relation.h (path_oracle::set_root_oracle): New.
21299
21300 2022-01-21 Jakub Jelinek <jakub@redhat.com>
21301
21302 PR rtl-optimization/102478
21303 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
21304 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
21305 would be needed.
21306
21307 2022-01-20 Richard Biener <rguenther@suse.de>
21308
21309 PR middle-end/100786
21310 * gimple-fold.cc (get_symbol_constant_value): Only return
21311 values of compatible type to the symbol.
21312
21313 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
21314
21315 * value-relation.cc (relation_oracle::valid_equivs): Query and add
21316 if valid members of a set.
21317 (equiv_oracle::register_equiv): Call valid_equivs rather than
21318 bitmap direct operations.
21319 (path_oracle::register_equiv): Ditto.
21320 * value-relation.h (relation_oracle::valid_equivs): New prototype.
21321
21322 2022-01-20 Richard Biener <rguenther@suse.de>
21323
21324 PR target/100784
21325 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
21326 LHS before folding __builtin_ia32_shufpd and friends.
21327
21328 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
21329
21330 * config/arm/crypto.md (aes_op_protect): Allow moves from core
21331 registers and from memory.
21332 (aes_op_protect_misalign_load): New pattern.
21333 (aes_op_protect_neon_vld1v16qi): New pattern.
21334
21335 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
21336
21337 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
21338 New pattern.
21339 (aarch32_crypto_aese_fused_protected): Likewise.
21340 (aarch32_crypto_aesd_fused_protected): Likewise.
21341
21342 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
21343
21344 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
21345 to define_expand. Add mitigation for the Cortex-A AES erratum
21346 when enabled.
21347 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
21348 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
21349 (aes_op_protect): New pattern.
21350 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
21351
21352 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
21353
21354 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
21355 (ALL_QUIRKS): Add it.
21356 (cortex-a57, cortex-a72): Enable it.
21357 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
21358 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
21359 option.
21360 (mfix-cortex-a72-aes-1655431): New option alias.
21361 * config/arm/arm.cc (arm_option_override): Handle default settings
21362 for AES erratum switch.
21363 * doc/invoke.texi (Arm Options): Document new options.
21364
21365 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
21366
21367 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
21368 <crypto_mode> rather than hard-coding the mode.
21369 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
21370 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
21371 (*aarch32_crypto_aese_fused): Likewise.
21372 (*aarch32_crypto_aesd_fused): Likewise.
21373 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
21374 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
21375 (crypto_sha1h_lb): Likewise.
21376 (crypto_vmullp64): Likewise.
21377 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
21378 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
21379
21380 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
21381
21382 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
21383 iterator to pattern name to disambiguate.
21384 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
21385 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
21386 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
21387 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
21388 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
21389
21390 2022-01-20 Martin Liska <mliska@suse.cz>
21391
21392 PR bootstrap/104135
21393 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
21394 * rtl.cc: Partially disable -Wformat-diag for RTL checking
21395 error messages.
21396
21397 2022-01-20 Jakub Jelinek <jakub@redhat.com>
21398
21399 PR debug/103874
21400 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
21401 block_num > 0, index entry even if !have_multiple_function_sections.
21402
21403 2022-01-20 liuhongt <hongtao.liu@intel.com>
21404
21405 PR target/103771
21406 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
21407 integral mode mask pack by multi steps which takes
21408 vec_pack_sbool_trunc_optab as start when elements number is
21409 less than BITS_PER_UNITS.
21410
21411 2022-01-20 Richard Biener <rguenther@suse.de>
21412
21413 PR tree-optimization/104114
21414 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
21415 single element vector decomposition.
21416
21417 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
21418
21419 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
21420 (noce_convert_multiple_sets): Call function a second time if we can
21421 improve the first try.
21422
21423 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
21424
21425 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
21426 reversed comparison.
21427 (try_emit_cmove_seq): New function to facilitate creating a cmov
21428 sequence.
21429 (noce_convert_multiple_sets): Create two sequences and use the less
21430 expensive one.
21431
21432 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
21433
21434 * rtl.h (struct rtx_comparison): New struct that holds an rtx
21435 comparison.
21436 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
21437 single parameters.
21438 (rs6000_emit_swsqrt): Likewise.
21439 * expmed.cc (expand_sdiv_pow2): Likewise.
21440 (emit_store_flag): Likewise.
21441 * expr.cc (expand_cond_expr_using_cmove): Likewise.
21442 (expand_expr_real_2): Likewise.
21443 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
21444 parameters.
21445 * optabs.cc (emit_conditional_move_1): New function.
21446 (expand_doubleword_shift_condmove): Use struct.
21447 (emit_conditional_move): Use struct and allow to call directly
21448 without going through preparation steps.
21449 * optabs.h (emit_conditional_move): Use struct.
21450
21451 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
21452
21453 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
21454 (noce_process_if_block): Use potential costs.
21455
21456 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
21457
21458 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
21459 (bb_ok_for_noce_convert_multiple_sets): Likewise.
21460
21461 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
21462
21463 * ifcvt.cc (need_cmov_or_rewire): New function.
21464 (noce_convert_multiple_sets): Call it.
21465
21466 2022-01-19 David Malcolm <dmalcolm@redhat.com>
21467
21468 * attribs.cc (attribute_c_tests): Rename to...
21469 (attribs_cc_tests): ...this.
21470 * bitmap.cc (bitmap_c_tests): Rename to...
21471 (bitmap_cc_tests): ...this.
21472 * cgraph.cc (cgraph_c_finalize): Rename to...
21473 (cgraph_cc_finalize): ...this.
21474 (cgraph_c_tests): Rename to...
21475 (cgraph_cc_tests): ...this.
21476 * cgraph.h (cgraph_c_finalize): Rename to...
21477 (cgraph_cc_finalize): ...this.
21478 (cgraphunit_c_finalize): Rename to...
21479 (cgraphunit_cc_finalize): ...this.
21480 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
21481 (cgraphunit_cc_finalize): ...this.
21482 * convert.cc (convert_c_tests): Rename to...
21483 (convert_cc_tests): ...this.
21484 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
21485 (dbgcnt_cc_tests): ...this.
21486 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
21487 (diagnostic_show_locus_cc_tests): ...this.
21488 * diagnostic.cc (diagnostic_c_tests): Rename to...
21489 (diagnostic_cc_tests): ...this.
21490 * dumpfile.cc (dumpfile_c_tests): Rename to...
21491 (dumpfile_cc_tests): ...this.
21492 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
21493 (dwarf2out_cc_finalize): ...this.
21494 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
21495 (dwarf2out_cc_finalize): ...this.
21496 * edit-context.cc (edit_context_c_tests): Rename to...
21497 (edit_context_cc_tests): ...this.
21498 * et-forest.cc (et_forest_c_tests): Rename to...
21499 (et_forest_cc_tests): ...this.
21500 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
21501 (fibonacci_heap_cc_tests): ...this.
21502 * fold-const.cc (fold_const_c_tests): Rename to...
21503 (fold_const_cc_tests): ...this.
21504 * function-tests.cc (function_tests_c_tests): Rename to...
21505 (function_tests_cc_tests): ...this.
21506 * gcse.cc (gcse_c_finalize): Rename to...
21507 (gcse_cc_finalize): ...this.
21508 * gcse.h (gcse_c_finalize): Rename to...
21509 (gcse_cc_finalize): ...this.
21510 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
21511 (ggc_tests_cc_tests): ...this.
21512 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
21513 (store_merging_cc_tests): ...this.
21514 * gimple.cc (gimple_c_tests): Rename to...
21515 (gimple_cc_tests): ...this.
21516 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
21517 (hash_map_tests_cc_tests): ...this.
21518 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
21519 (hash_set_tests_cc_tests): ...this.
21520 * input.cc (input_c_tests): Rename to...
21521 (input_cc_tests): ...this.
21522 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
21523 (ipa_cp_cc_finalize): ...this.
21524 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
21525 (ipa_fnsummary_cc_finalize): ...this.
21526 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
21527 (ipa_fnsummary_cc_finalize): ...this.
21528 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
21529 (ipa_modref_tree_cc_tests): ...this.
21530 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
21531 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
21532 (ipa_modref_cc_finalize): ...this.
21533 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
21534 (ipa_modref_cc_finalize): ...this.
21535 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
21536 (ipa_cp_cc_finalize): ...this.
21537 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
21538 (ipa_reference_cc_finalize): ...this.
21539 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
21540 (ipa_reference_cc_finalize): ...this.
21541 * ira-costs.cc (ira_costs_c_finalize): Rename to...
21542 (ira_costs_cc_finalize): ...this.
21543 * ira.h (ira_costs_c_finalize): Rename to...
21544 (ira_costs_cc_finalize): ...this.
21545 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
21546 (opt_suggestions_cc_tests): ...this.
21547 * opts.cc (opts_c_tests): Rename to...
21548 (opts_cc_tests): ...this.
21549 * predict.cc (predict_c_tests): Rename to...
21550 (predict_cc_tests): ...this.
21551 * pretty-print.cc (pretty_print_c_tests): Rename to...
21552 (pretty_print_cc_tests): ...this.
21553 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
21554 (read_rtl_function_cc_tests): ...this.
21555 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
21556 (rtl_tests_cc_tests): ...this.
21557 * sbitmap.cc (sbitmap_c_tests): Rename to...
21558 (sbitmap_cc_tests): ...this.
21559 * selftest-run-tests.cc (selftest::run_tests): Update calls for
21560 _c_ to _cc_ function renamings; fix names of attribs and
21561 opt-suggestions tests.
21562 * selftest.cc (selftest_c_tests): Rename to...
21563 (selftest_cc_tests): ...this.
21564 * selftest.h (attribute_c_tests): Rename to...
21565 (attribs_cc_tests): ...this.
21566 (bitmap_c_tests): Rename to...
21567 (bitmap_cc_tests): ...this.
21568 (cgraph_c_tests): Rename to...
21569 (cgraph_cc_tests): ...this.
21570 (convert_c_tests): Rename to...
21571 (convert_cc_tests): ...this.
21572 (diagnostic_c_tests): Rename to...
21573 (diagnostic_cc_tests): ...this.
21574 (diagnostic_show_locus_c_tests): Rename to...
21575 (diagnostic_show_locus_cc_tests): ...this.
21576 (dumpfile_c_tests): Rename to...
21577 (dumpfile_cc_tests): ...this.
21578 (edit_context_c_tests): Rename to...
21579 (edit_context_cc_tests): ...this.
21580 (et_forest_c_tests): Rename to...
21581 (et_forest_cc_tests): ...this.
21582 (fibonacci_heap_c_tests): Rename to...
21583 (fibonacci_heap_cc_tests): ...this.
21584 (fold_const_c_tests): Rename to...
21585 (fold_const_cc_tests): ...this.
21586 (function_tests_c_tests): Rename to...
21587 (function_tests_cc_tests): ...this.
21588 (ggc_tests_c_tests): Rename to...
21589 (ggc_tests_cc_tests): ...this.
21590 (gimple_c_tests): Rename to...
21591 (gimple_cc_tests): ...this.
21592 (hash_map_tests_c_tests): Rename to...
21593 (hash_map_tests_cc_tests): ...this.
21594 (hash_set_tests_c_tests): Rename to...
21595 (hash_set_tests_cc_tests): ...this.
21596 (input_c_tests): Rename to...
21597 (input_cc_tests): ...this.
21598 (opts_c_tests): Rename to...
21599 (opts_cc_tests): ...this.
21600 (predict_c_tests): Rename to...
21601 (predict_cc_tests): ...this.
21602 (pretty_print_c_tests): Rename to...
21603 (pretty_print_cc_tests): ...this.
21604 (read_rtl_function_c_tests): Rename to...
21605 (read_rtl_function_cc_tests): ...this.
21606 (rtl_tests_c_tests): Rename to...
21607 (rtl_tests_cc_tests): ...this.
21608 (sbitmap_c_tests): Rename to...
21609 (sbitmap_cc_tests): ...this.
21610 (selftest_c_tests): Rename to...
21611 (selftest_cc_tests): ...this.
21612 (simplify_rtx_c_tests): Rename to...
21613 (simplify_rtx_cc_tests): ...this.
21614 (spellcheck_c_tests): Rename to...
21615 (spellcheck_cc_tests): ...this.
21616 (spellcheck_tree_c_tests): Rename to...
21617 (spellcheck_tree_cc_tests): ...this.
21618 (sreal_c_tests): Rename to...
21619 (sreal_cc_tests): ...this.
21620 (store_merging_c_tests): Rename to...
21621 (store_merging_cc_tests): ...this.
21622 (tree_c_tests): Rename to...
21623 (tree_cc_tests): ...this.
21624 (tree_cfg_c_tests): Rename to...
21625 (tree_cfg_cc_tests): ...this.
21626 (typed_splay_tree_c_tests): Rename to...
21627 (typed_splay_tree_cc_tests): ...this.
21628 (vec_c_tests): Rename to...
21629 (vec_cc_tests): ...this.
21630 (vec_perm_indices_c_tests): Rename to...
21631 (vec_perm_indices_cc_tests): ..this.
21632 (opt_proposer_c_tests): Rename to...
21633 (opt_suggestions_cc_tests): ...this.
21634 (dbgcnt_c_tests): Rename to...
21635 (dbgcnt_cc_tests): ...this.
21636 (ipa_modref_tree_c_tests): Rename to...
21637 (ipa_modref_tree_cc_tests): ...this.
21638 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
21639 (simplify_rtx_cc_tests): ...this.
21640 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
21641 (spellcheck_tree_cc_tests): ...this.
21642 * spellcheck.cc (spellcheck_c_tests): Rename to...
21643 (spellcheck_cc_tests): ...this.
21644 * sreal.cc (sreal_c_tests): Rename to...
21645 (sreal_cc_tests): ...this.
21646 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
21647 function renamings.
21648 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
21649 (tree_cfg_cc_tests): ...this.
21650 * tree.cc (tree_c_tests): Rename to...
21651 (tree_cc_tests): ...this.
21652 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
21653 (typed_splay_tree_cc_tests): ...this.
21654 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
21655 (vec_perm_indices_cc_tests): ...this.
21656 * vec.cc (vec_c_tests): Rename to...
21657 (vec_cc_tests): ...this.
21658
21659 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
21660
21661 PR tree-optimization/103997
21662 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
21663 vectorization.
21664
21665 2022-01-19 Jakub Jelinek <jakub@redhat.com>
21666
21667 PR middle-end/102860
21668 * match.pd (x %[fl] y -> x % y): New simplification for
21669 unsigned integral types.
21670 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
21671 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
21672
21673 2022-01-19 Richard Biener <rguenther@suse.de>
21674
21675 PR tree-optimization/104112
21676 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
21677 for required intermediate vector types.
21678
21679 2022-01-19 Jakub Jelinek <jakub@redhat.com>
21680
21681 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
21682
21683 2022-01-19 Martin Liska <mliska@suse.cz>
21684
21685 * configure.ac: Remove -Wno-error=format-diag.
21686 * configure: Regenerate.
21687
21688 2022-01-19 Martin Liska <mliska@suse.cz>
21689
21690 * config/riscv/riscv.cc (riscv_handle_type_attribute):
21691 Update one -Wformat-diag string in warning message.
21692
21693 2022-01-19 Jakub Jelinek <jakub@redhat.com>
21694
21695 PR middle-end/104103
21696 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
21697 .ASAN_MARK calls.
21698
21699 2022-01-19 Jakub Jelinek <jakub@redhat.com>
21700
21701 PR c++/89074
21702 * fold-const.cc (address_compare): Consider different STRING_CSTs
21703 with the same lengths that memcmp the same as equal, not different.
21704
21705 2022-01-19 Jakub Jelinek <jakub@redhat.com>
21706
21707 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
21708 {%0}.
21709
21710 2022-01-19 Martin Liska <mliska@suse.cz>
21711 Thomas Schwinge <thomas@codesourcery.com>
21712
21713 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
21714 warning messages.
21715
21716 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
21717
21718 PR target/104090
21719 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
21720 rs6000_cpu.
21721
21722 2022-01-19 Jakub Jelinek <jakub@redhat.com>
21723
21724 PR target/104104
21725 * config/i386/sse.md
21726 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
21727 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
21728 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
21729 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
21730 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
21731 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
21732 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
21733 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
21734 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
21735
21736 2022-01-19 Martin Sebor <msebor@redhat.com>
21737
21738 PR middle-end/104069
21739 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
21740 an unknown result as documented.
21741
21742 2022-01-18 Andrew Pinski <apinski@marvell.com>
21743
21744 * ipa-split.cc (visit_bb): Fix comment before the
21745 warning/error attribute checking code.
21746
21747 2022-01-18 David Faust <david.faust@oracle.com>
21748
21749 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
21750 for base strtab offset yet as it may change.
21751 (output_asm_btfext_core_reloc): Do so here instead.
21752 (output_btfext_core_sections): Likewise.
21753
21754 2022-01-18 David Faust <david.faust@oracle.com>
21755
21756 * config/bpf/coreout.cc (output_btfext_header): Account for
21757 4-byte record size in core_relo_len.
21758 (output_btfext_core_sections): Only write record size once.
21759 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
21760 member.
21761
21762 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
21763
21764 * common/config/riscv/riscv-common.cc
21765 (riscv_subset_list::parse_multiletter_ext): Move pointer
21766 arithmetic ahead of `free'.
21767
21768 2022-01-18 Jason Merrill <jason@redhat.com>
21769
21770 PR c++/104007
21771 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
21772 context.
21773
21774 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
21775
21776 PR middle-end/103163
21777 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
21778 (init_emit_once): ...not here.
21779
21780 2022-01-18 Martin Liska <mliska@suse.cz>
21781
21782 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
21783 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
21784 * config/arc/arc.md: Likewise.
21785 * config/avr/avr.cc (avr_section_type_flags): Likewise.
21786 * config/bfin/bfin.cc (bfin_option_override): Likewise.
21787 (bfin_handle_longcall_attribute): Likewise.
21788 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
21789 * config/frv/frv.cc (frv_expand_builtin): Likewise.
21790 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
21791 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
21792 (iq2000_print_operand_address): Likewise.
21793 (iq2000_print_operand): Likewise.
21794 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
21795 (m32c_pragma_address): Likewise.
21796 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
21797 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
21798 (mips_set_compression_mode): Likewise.
21799 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
21800 (mmix_print_operand): Likewise.
21801 (mmix_output_shiftvalue_op_from_str): Likewise.
21802 (mmix_output_shifted_value): Likewise.
21803 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
21804 * config/msp430/msp430.cc (msp430_option_override): Likewise.
21805 (msp430_attr): Likewise.
21806 (msp430_expand_delay_cycles): Likewise.
21807 (msp430_expand_builtin): Likewise.
21808 * config/rs6000/aix73.h: Likewise.
21809 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
21810 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
21811 (valid_psw_flag): Likewise.
21812 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
21813 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
21814 (xstormy16_expand_builtin_va_start): Likewise.
21815 (xstormy16_handle_below100_attribute): Likewise.
21816
21817 2022-01-18 Martin Liska <mliska@suse.cz>
21818
21819 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
21820 warning.
21821 (vms_pragma_standard): Likewise.
21822 (vms_pragma_extern_prefix): Likewise.
21823
21824 2022-01-18 Martin Liska <mliska@suse.cz>
21825
21826 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
21827 (print_operand_address): Likewise.
21828 (xtensa_multibss_section_type_flags): Likewise.
21829
21830 2022-01-18 Martin Liska <mliska@suse.cz>
21831
21832 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
21833 wording of an error message.
21834
21835 2022-01-18 Martin Liska <mliska@suse.cz>
21836
21837 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
21838 warning.
21839 (ghs_pragma_section): Likewise.
21840 (ghs_pragma_interrupt): Likewise.
21841 (ghs_pragma_starttda): Likewise.
21842 (ghs_pragma_startsda): Likewise.
21843 (ghs_pragma_startzda): Likewise.
21844 (ghs_pragma_endtda): Likewise.
21845 (ghs_pragma_endsda): Likewise.
21846 (ghs_pragma_endzda): Likewise.
21847
21848 2022-01-18 Martin Liska <mliska@suse.cz>
21849
21850 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
21851 Fix warnings.
21852 * config/nds32/nds32-intrinsic.md: Likewise.
21853 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
21854 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
21855 (nds32_insert_attributes): Likewise.
21856
21857 2022-01-18 Martin Liska <mliska@suse.cz>
21858
21859 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
21860 keyword.
21861 * config/nvptx/nvptx.md: Remove trailing dot.
21862
21863 2022-01-18 Martin Liska <mliska@suse.cz>
21864
21865 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
21866 Wrap keywords with quotes and remove trailing dots.
21867 (riscv_subset_list::parsing_subset_version): Likewise.
21868 (riscv_subset_list::parse_std_ext): Likewise.
21869 (riscv_subset_list::parse_multiletter_ext): Likewise.
21870 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
21871
21872 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
21873
21874 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
21875 argument suggested_unroll_factor.
21876 (vect_analyze_loop_costing): Likewise.
21877 (_loop_vec_info::_loop_vec_info): Initialize new member
21878 suggested_unroll_factor.
21879 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
21880 main loop use partial vectors.
21881 (vect_analyze_loop_2): Pass and use new argument
21882 suggested_unroll_factor.
21883 (vect_analyze_loop_1): Change to intialize local
21884 suggested_unroll_factor and use it.
21885 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
21886 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
21887 suggested_unroll_factor.
21888 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
21889 (vector_costs::suggested_unroll_factor): New getter function.
21890 (finish_cost): Set return argument suggested_unroll_factor.
21891
21892 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
21893
21894 PR tree-optimization/104038
21895 * doc/invoke.texi (relation-block-limit): New.
21896 * params.opt (relation-block-limit): New.
21897 * value-relation.cc (dom_oracle::register_relation): Check for NULL
21898 record before invoking transitive registery.
21899 (dom_oracle::set_one_relation): Check limit before creating record.
21900 (dom_oracle::register_transitives): Stop when no record created.
21901 * value-relation.h (relation_chain_head::m_num_relations): New.
21902
21903 2022-01-18 Richard Biener <rguenther@suse.de>
21904
21905 PR ipa/103989
21906 * ipa-inline.cc (inline_small_functions): Do not enqueue call
21907 edges originating in functions compiled with -Og.
21908
21909 2022-01-18 Richard Biener <rguenther@suse.de>
21910
21911 PR ipa/103989
21912 * passes.def (pass_all_optimizations_g): Remove pass_modref
21913 and pass_local_pure_const.
21914
21915 2022-01-18 Martin Liska <mliska@suse.cz>
21916
21917 * config/s390/s390.cc: Fix -Wformat-diag warnings.
21918
21919 2022-01-18 Martin Liska <mliska@suse.cz>
21920
21921 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
21922 keyword in quotes.
21923 (s390_resolve_overloaded_builtin): Remove trailing dot.
21924 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
21925 (s390_expand_builtin): Remove trailing dot.
21926 (s390_emit_prologue): Likewise, use semicolon.
21927 (s390_option_override_internal): Update keyword.
21928 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
21929
21930 2022-01-18 Martin Liska <mliska@suse.cz>
21931
21932 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
21933 keywords and use %qs instead of %<%s%>.
21934
21935 2022-01-18 Richard Biener <rguenther@suse.de>
21936
21937 PR tree-optimization/103987
21938 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
21939 query with a pointer check.
21940
21941 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
21942
21943 PR target/104005
21944 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
21945 When using MEM_EXPR, require the base to be a decl.
21946
21947 2022-01-18 Richard Biener <rguenther@suse.de>
21948
21949 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
21950 avoid padding.
21951 * function.h (struct function): Likewise.
21952
21953 2022-01-18 Arnaud Charlet <charlet@adacore.com>
21954
21955 * doc/install.texi: Update prerequisites for GNAT
21956
21957 2022-01-18 Andrew Pinski <apinski@marvell.com>
21958
21959 PR tree-optimization/101941
21960 * ipa-split.cc (visit_bb): Disallow function calls where
21961 the function has either error or warning attribute.
21962
21963 2022-01-18 Richard Biener <rguenther@suse.de>
21964
21965 PR tree-optimization/104064
21966 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
21967 DR_INIT fits in a signed HWI, represent the difference from the
21968 first DR in unsigned.
21969
21970 2022-01-17 Martin Liska <mliska@suse.cz>
21971
21972 * Makefile.in: Rename .c names to .cc.
21973 * config.gcc: Likewise.
21974 * configure: Regenerate. Likewise.
21975 * configure.ac: Likewise.
21976 * gengtype.cc (set_gc_used): Likewise.
21977 (source_dot_c_frul): Likewise.
21978 (source_dot_cc_frul): Likewise.
21979 (struct file_rule_st): Likewise.
21980 (close_output_files): Likewise.
21981 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
21982
21983 2022-01-17 Martin Liska <mliska@suse.cz>
21984
21985 * Makefile.in: Rename .c names to .cc.
21986 * alias.h: Likewise.
21987 * asan.cc: Likewise.
21988 * auto-profile.h: Likewise.
21989 * basic-block.h (struct basic_block_d): Likewise.
21990 * btfout.cc: Likewise.
21991 * builtins.cc (expand_builtin_longjmp): Likewise.
21992 (validate_arg): Likewise.
21993 (access_ref::offset_bounded): Likewise.
21994 * caller-save.cc (reg_restore_code): Likewise.
21995 (setup_save_areas): Likewise.
21996 * calls.cc (initialize_argument_information): Likewise.
21997 (expand_call): Likewise.
21998 (emit_library_call_value_1): Likewise.
21999 * cfg-flags.def (RTL): Likewise.
22000 (SIBCALL): Likewise.
22001 (CAN_FALLTHRU): Likewise.
22002 * cfganal.cc (post_order_compute): Likewise.
22003 * cfgcleanup.cc (try_simplify_condjump): Likewise.
22004 (merge_blocks_move_predecessor_nojumps): Likewise.
22005 (merge_blocks_move_successor_nojumps): Likewise.
22006 (merge_blocks_move): Likewise.
22007 (old_insns_match_p): Likewise.
22008 (try_crossjump_bb): Likewise.
22009 * cfgexpand.cc (expand_gimple_stmt): Likewise.
22010 * cfghooks.cc (split_block_before_cond_jump): Likewise.
22011 (profile_record_check_consistency): Likewise.
22012 * cfghooks.h: Likewise.
22013 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
22014 (rtl_can_merge_blocks): Likewise.
22015 (try_redirect_by_replacing_jump): Likewise.
22016 (make_pass_outof_cfg_layout_mode): Likewise.
22017 (cfg_layout_can_merge_blocks_p): Likewise.
22018 * cgraph.cc (release_function_body): Likewise.
22019 (cgraph_node::get_fun): Likewise.
22020 * cgraph.h (struct cgraph_node): Likewise.
22021 (asmname_hasher::equal): Likewise.
22022 (cgraph_inline_failed_type): Likewise.
22023 (thunk_adjust): Likewise.
22024 (dump_callgraph_transformation): Likewise.
22025 (record_references_in_initializer): Likewise.
22026 (ipa_discover_variable_flags): Likewise.
22027 * cgraphclones.cc (GTY): Likewise.
22028 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
22029 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
22030 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
22031 * collect2.cc (maybe_run_lto_and_relink): Likewise.
22032 * combine-stack-adj.cc: Likewise.
22033 * combine.cc (setup_incoming_promotions): Likewise.
22034 (combine_simplify_rtx): Likewise.
22035 (count_rtxs): Likewise.
22036 * common.opt: Likewise.
22037 * common/config/aarch64/aarch64-common.cc: Likewise.
22038 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
22039 * common/config/avr/avr-common.cc: Likewise.
22040 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
22041 * conditions.h: Likewise.
22042 * config.gcc: Likewise.
22043 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
22044 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
22045 (aarch64_get_extension_string_for_isa_flags): Likewise.
22046 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
22047 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
22048 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
22049 (aarch64_option_valid_attribute_p): Likewise.
22050 (aarch64_short_vector_p): Likewise.
22051 (aarch64_float_const_representable_p): Likewise.
22052 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
22053 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
22054 (GTY): Likewise.
22055 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
22056 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
22057 * config/aarch64/t-aarch64: Likewise.
22058 * config/aarch64/x-aarch64: Likewise.
22059 * config/aarch64/x-darwin: Likewise.
22060 * config/alpha/alpha-protos.h: Likewise.
22061 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
22062 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
22063 (enum reg_class): Likewise.
22064 * config/alpha/alpha.md: Likewise.
22065 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
22066 * config/alpha/x-alpha: Likewise.
22067 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
22068 * config/arc/arc.cc (ARC_OPT): Likewise.
22069 (arc_ccfsm_advance): Likewise.
22070 (arc_arg_partial_bytes): Likewise.
22071 (conditionalize_nonjump): Likewise.
22072 * config/arc/arc.md: Likewise.
22073 * config/arc/builtins.def: Likewise.
22074 * config/arc/t-arc: Likewise.
22075 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
22076 (arm_pragma_target_parse): Likewise.
22077 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
22078 (arm_cpu_cpp_builtins): Likewise.
22079 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
22080 (shift_op): Likewise.
22081 (thumb2_final_prescan_insn): Likewise.
22082 (arm_final_prescan_insn): Likewise.
22083 (arm_asm_output_labelref): Likewise.
22084 (arm_small_register_classes_for_mode_p): Likewise.
22085 * config/arm/arm.h: Likewise.
22086 * config/arm/arm.md: Likewise.
22087 * config/arm/driver-arm.cc: Likewise.
22088 * config/arm/symbian.h: Likewise.
22089 * config/arm/t-arm: Likewise.
22090 * config/arm/thumb1.md: Likewise.
22091 * config/arm/x-arm: Likewise.
22092 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
22093 * config/avr/avr-fixed.md: Likewise.
22094 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
22095 * config/avr/avr-mcus.def: Likewise.
22096 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
22097 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
22098 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
22099 * config/avr/avr.cc (avr_option_override): Likewise.
22100 (avr_build_builtin_va_list): Likewise.
22101 (avr_mode_dependent_address_p): Likewise.
22102 (avr_function_arg_advance): Likewise.
22103 (avr_asm_output_aligned_decl_common): Likewise.
22104 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
22105 (SUPPORTS_INIT_PRIORITY): Likewise.
22106 * config/avr/avr.md: Likewise.
22107 * config/avr/builtins.def: Likewise.
22108 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
22109 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
22110 (main): Likewise.
22111 * config/avr/t-avr: Likewise.
22112 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
22113 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
22114 * config/bpf/bpf.h (enum reg_class): Likewise.
22115 * config/bpf/t-bpf: Likewise.
22116 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
22117 * config/cr16/cr16-protos.h: Likewise.
22118 * config/cris/cris.cc (cris_address_cost): Likewise.
22119 (cris_side_effect_mode_ok): Likewise.
22120 (cris_init_machine_status): Likewise.
22121 (cris_emit_movem_store): Likewise.
22122 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
22123 (enum reg_class): Likewise.
22124 (struct cum_args): Likewise.
22125 * config/cris/cris.opt: Likewise.
22126 * config/cris/sync.md: Likewise.
22127 * config/csky/csky.cc (csky_expand_prologue): Likewise.
22128 * config/darwin-c.cc: Likewise.
22129 * config/darwin-f.cc: Likewise.
22130 * config/darwin-sections.def (zobj_const_section): Likewise.
22131 * config/darwin.cc (output_objc_section_asm_op): Likewise.
22132 (fprintf): Likewise.
22133 * config/darwin.h (GTY): Likewise.
22134 * config/elfos.h: Likewise.
22135 * config/epiphany/epiphany-sched.md: Likewise.
22136 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
22137 * config/epiphany/epiphany.h (GTY): Likewise.
22138 (NO_FUNCTION_CSE): Likewise.
22139 * config/epiphany/mode-switch-use.cc: Likewise.
22140 * config/epiphany/predicates.md: Likewise.
22141 * config/epiphany/t-epiphany: Likewise.
22142 * config/fr30/fr30-protos.h: Likewise.
22143 * config/frv/frv-protos.h: Likewise.
22144 * config/frv/frv.cc (TLS_BIAS): Likewise.
22145 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
22146 * config/ft32/ft32-protos.h: Likewise.
22147 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
22148 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
22149 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
22150 * config/gcn/t-gcn-hsa: Likewise.
22151 * config/gcn/t-omp-device: Likewise.
22152 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
22153 (same_cmp_following_p): Likewise.
22154 * config/h8300/h8300.cc (F): Likewise.
22155 * config/h8300/h8300.h (struct cum_arg): Likewise.
22156 (BRANCH_COST): Likewise.
22157 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
22158 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
22159 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
22160 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
22161 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
22162 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
22163 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
22164 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
22165 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
22166 (ix86_register_pragmas): Likewise.
22167 (ix86_d_has_stdcall_convention): Likewise.
22168 (i386_pe_seh_init_sections): Likewise.
22169 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
22170 (ix86_function_value_regno_p): Likewise.
22171 (ix86_compute_frame_layout): Likewise.
22172 (legitimize_pe_coff_symbol): Likewise.
22173 (output_pic_addr_const): Likewise.
22174 * config/i386/i386.h (defined): Likewise.
22175 (host_detect_local_cpu): Likewise.
22176 (CONSTANT_ADDRESS_P): Likewise.
22177 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
22178 (struct machine_frame_state): Likewise.
22179 * config/i386/i386.md: Likewise.
22180 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
22181 * config/i386/mmx.md: Likewise.
22182 * config/i386/sse.md: Likewise.
22183 * config/i386/t-cygming: Likewise.
22184 * config/i386/t-djgpp: Likewise.
22185 * config/i386/t-gnu-property: Likewise.
22186 * config/i386/t-i386: Likewise.
22187 * config/i386/t-intelmic: Likewise.
22188 * config/i386/t-omp-device: Likewise.
22189 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
22190 (i386_pe_adjust_class_at_definition): Likewise.
22191 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
22192 (i386_pe_mangle_decl_assembler_name): Likewise.
22193 (i386_pe_encode_section_info): Likewise.
22194 * config/i386/x-cygwin: Likewise.
22195 * config/i386/x-darwin: Likewise.
22196 * config/i386/x-i386: Likewise.
22197 * config/i386/x-mingw32: Likewise.
22198 * config/i386/x86-tune-sched-core.cc: Likewise.
22199 * config/i386/x86-tune.def: Likewise.
22200 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
22201 * config/ia64/freebsd.h: Likewise.
22202 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
22203 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
22204 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
22205 (ia64_secondary_reload_class): Likewise.
22206 (bundling): Likewise.
22207 * config/ia64/ia64.h: Likewise.
22208 * config/ia64/ia64.md: Likewise.
22209 * config/ia64/predicates.md: Likewise.
22210 * config/ia64/sysv4.h: Likewise.
22211 * config/ia64/t-ia64: Likewise.
22212 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
22213 * config/iq2000/iq2000.md: Likewise.
22214 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
22215 (if): Likewise.
22216 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
22217 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
22218 * config/m32c/t-m32c: Likewise.
22219 * config/m32r/m32r-protos.h: Likewise.
22220 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
22221 * config/m32r/m32r.h: Likewise.
22222 * config/m32r/m32r.md: Likewise.
22223 * config/m68k/m68k-isas.def: Likewise.
22224 * config/m68k/m68k-microarchs.def: Likewise.
22225 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
22226 (m68k_epilogue_uses): Likewise.
22227 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
22228 (m68k_sched_adjust_cost): Likewise.
22229 (m68k_sched_md_init): Likewise.
22230 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
22231 (enum m68k_function_kind): Likewise.
22232 * config/m68k/m68k.md: Likewise.
22233 * config/m68k/m68kemb.h: Likewise.
22234 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
22235 * config/mcore/mcore-protos.h: Likewise.
22236 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
22237 (mcore_expand_prolog): Likewise.
22238 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
22239 * config/mcore/mcore.md: Likewise.
22240 * config/microblaze/microblaze-protos.h: Likewise.
22241 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
22242 (microblaze_function_prologue): Likewise.
22243 (microblaze_function_epilogue): Likewise.
22244 (microblaze_select_section): Likewise.
22245 (microblaze_asm_output_mi_thunk): Likewise.
22246 (microblaze_eh_return): Likewise.
22247 * config/microblaze/microblaze.h: Likewise.
22248 * config/microblaze/microblaze.md: Likewise.
22249 * config/microblaze/t-microblaze: Likewise.
22250 * config/mips/driver-native.cc: Likewise.
22251 * config/mips/loongson2ef.md: Likewise.
22252 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
22253 * config/mips/mips.cc (mips_rtx_costs): Likewise.
22254 (mips_output_filename): Likewise.
22255 (mips_output_function_prologue): Likewise.
22256 (mips_output_function_epilogue): Likewise.
22257 (mips_output_mi_thunk): Likewise.
22258 * config/mips/mips.h: Likewise.
22259 * config/mips/mips.md: Likewise.
22260 * config/mips/t-mips: Likewise.
22261 * config/mips/x-native: Likewise.
22262 * config/mmix/mmix-protos.h: Likewise.
22263 * config/mmix/mmix.cc (mmix_option_override): Likewise.
22264 (mmix_dbx_register_number): Likewise.
22265 (mmix_expand_prologue): Likewise.
22266 * config/mmix/mmix.h: Likewise.
22267 * config/mmix/mmix.md: Likewise.
22268 * config/mmix/predicates.md: Likewise.
22269 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
22270 (mn10300_legitimate_pic_operand_p): Likewise.
22271 * config/mn10300/mn10300.h (enum reg_class): Likewise.
22272 (NO_FUNCTION_CSE): Likewise.
22273 * config/moxie/moxie-protos.h: Likewise.
22274 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
22275 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
22276 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
22277 (msp430_incoming_return_addr_rtx): Likewise.
22278 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
22279 * config/msp430/t-msp430: Likewise.
22280 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
22281 (nds32_rtx_costs_size_prefer): Likewise.
22282 (nds32_init_rtx_costs): Likewise.
22283 * config/nds32/nds32-doubleword.md: Likewise.
22284 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
22285 (nds32_builtin_decl): Likewise.
22286 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
22287 (enum nds32_isr_nested_type): Likewise.
22288 (enum reg_class): Likewise.
22289 * config/nds32/predicates.md: Likewise.
22290 * config/nds32/t-nds32: Likewise.
22291 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
22292 * config/nvptx/nvptx-protos.h: Likewise.
22293 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
22294 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
22295 * config/nvptx/t-nvptx: Likewise.
22296 * config/nvptx/t-omp-device: Likewise.
22297 * config/pa/elf.h: Likewise.
22298 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
22299 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
22300 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
22301 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
22302 (pa_legitimize_reload_address): Likewise.
22303 (pa_can_use_return_insn): Likewise.
22304 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
22305 (som_output_text_section_asm_op): Likewise.
22306 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
22307 * config/pa/pa.md: Likewise.
22308 * config/pa/som.h: Likewise.
22309 * config/pa/t-pa: Likewise.
22310 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
22311 * config/pdp11/pdp11.h: Likewise.
22312 * config/pdp11/pdp11.md: Likewise.
22313 * config/pdp11/t-pdp11: Likewise.
22314 * config/pru/pru.md: Likewise.
22315 * config/pru/t-pru: Likewise.
22316 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
22317 (riscv_gpr_save_operation_p): Likewise.
22318 (riscv_d_register_target_info): Likewise.
22319 (riscv_init_builtins): Likewise.
22320 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
22321 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
22322 * config/riscv/t-riscv: Likewise.
22323 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
22324 * config/rl78/t-rl78: Likewise.
22325 * config/rs6000/aix.h: Likewise.
22326 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
22327 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
22328 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
22329 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
22330 * config/rs6000/driver-rs6000.cc: Likewise.
22331 * config/rs6000/freebsd.h: Likewise.
22332 * config/rs6000/freebsd64.h: Likewise.
22333 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
22334 * config/rs6000/rbtree.cc: Likewise.
22335 * config/rs6000/rbtree.h: Likewise.
22336 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
22337 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
22338 (rs6000_expand_builtin): Likewise.
22339 (rs6000_init_builtins): Likewise.
22340 * config/rs6000/rs6000-cpus.def: Likewise.
22341 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
22342 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
22343 (quad_address_offset_p): Likewise.
22344 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
22345 (rs6000_emit_epilogue): Likewise.
22346 * config/rs6000/rs6000-overload.def: Likewise.
22347 * config/rs6000/rs6000-p8swap.cc: Likewise.
22348 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
22349 (rs6000_const_f32_to_i32): Likewise.
22350 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
22351 (rs6000_debug_legitimize_address): Likewise.
22352 (rs6000_mode_dependent_address): Likewise.
22353 (rs6000_adjust_priority): Likewise.
22354 (rs6000_c_mode_for_suffix): Likewise.
22355 * config/rs6000/rs6000.h (defined): Likewise.
22356 (LONG_DOUBLE_TYPE_SIZE): Likewise.
22357 * config/rs6000/rs6000.md: Likewise.
22358 * config/rs6000/sysv4.h: Likewise.
22359 * config/rs6000/t-linux: Likewise.
22360 * config/rs6000/t-linux64: Likewise.
22361 * config/rs6000/t-rs6000: Likewise.
22362 * config/rs6000/x-darwin: Likewise.
22363 * config/rs6000/x-darwin64: Likewise.
22364 * config/rs6000/x-rs6000: Likewise.
22365 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
22366 * config/rx/rx.cc (rx_expand_builtin): Likewise.
22367 * config/s390/constraints.md: Likewise.
22368 * config/s390/driver-native.cc: Likewise.
22369 * config/s390/htmxlintrin.h: Likewise.
22370 * config/s390/s390-builtins.def (B_DEF): Likewise.
22371 (OB_DEF_VAR): Likewise.
22372 * config/s390/s390-builtins.h: Likewise.
22373 * config/s390/s390-c.cc: Likewise.
22374 * config/s390/s390-opts.h: Likewise.
22375 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
22376 (s390_register_target_pragmas): Likewise.
22377 * config/s390/s390.cc (s390_init_builtins): Likewise.
22378 (s390_expand_plus_operand): Likewise.
22379 (s390_expand_atomic): Likewise.
22380 (s390_valid_target_attribute_inner_p): Likewise.
22381 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
22382 * config/s390/s390.md: Likewise.
22383 * config/s390/t-s390: Likewise.
22384 * config/s390/vx-builtins.md: Likewise.
22385 * config/s390/x-native: Likewise.
22386 * config/sh/divtab-sh4-300.cc (main): Likewise.
22387 * config/sh/divtab-sh4.cc (main): Likewise.
22388 * config/sh/divtab.cc (main): Likewise.
22389 * config/sh/elf.h: Likewise.
22390 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
22391 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
22392 (sh_struct_value_rtx): Likewise.
22393 (sh_remove_reg_dead_or_unused_notes): Likewise.
22394 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
22395 * config/sh/t-sh: Likewise.
22396 * config/sol2-protos.h (solaris_override_options): Likewise.
22397 * config/sol2.h: Likewise.
22398 * config/sparc/driver-sparc.cc: Likewise.
22399 * config/sparc/freebsd.h: Likewise.
22400 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
22401 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
22402 (sparc_asan_shadow_offset): Likewise.
22403 * config/sparc/sparc.h: Likewise.
22404 * config/sparc/sparc.md: Likewise.
22405 * config/sparc/t-sparc: Likewise.
22406 * config/sparc/x-sparc: Likewise.
22407 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
22408 * config/t-darwin: Likewise.
22409 * config/t-dragonfly: Likewise.
22410 * config/t-freebsd: Likewise.
22411 * config/t-glibc: Likewise.
22412 * config/t-linux: Likewise.
22413 * config/t-netbsd: Likewise.
22414 * config/t-openbsd: Likewise.
22415 * config/t-pnt16-warn: Likewise.
22416 * config/t-sol2: Likewise.
22417 * config/t-vxworks: Likewise.
22418 * config/t-winnt: Likewise.
22419 * config/tilegx/t-tilegx: Likewise.
22420 * config/tilegx/tilegx-c.cc: Likewise.
22421 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
22422 * config/tilegx/tilegx.md: Likewise.
22423 * config/tilepro/t-tilepro: Likewise.
22424 * config/tilepro/tilepro-c.cc: Likewise.
22425 * config/v850/t-v850: Likewise.
22426 * config/v850/v850-protos.h: Likewise.
22427 * config/v850/v850.cc (F): Likewise.
22428 * config/v850/v850.h (enum reg_class): Likewise.
22429 (SLOW_BYTE_ACCESS): Likewise.
22430 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
22431 * config/vax/vax.h (enum reg_class): Likewise.
22432 * config/vax/vax.md: Likewise.
22433 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
22434 * config/visium/visium.h: Likewise.
22435 * config/vms/t-vms: Likewise.
22436 * config/vms/vms-crtlmap.map: Likewise.
22437 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
22438 * config/vx-common.h: Likewise.
22439 * config/x-darwin: Likewise.
22440 * config/x-hpux: Likewise.
22441 * config/x-linux: Likewise.
22442 * config/x-netbsd: Likewise.
22443 * config/x-openbsd: Likewise.
22444 * config/x-solaris: Likewise.
22445 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
22446 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
22447 * config/xtensa/xtensa.h: Likewise.
22448 * configure.ac: Likewise.
22449 * context.cc: Likewise.
22450 * convert.h: Likewise.
22451 * coretypes.h: Likewise.
22452 * coverage.cc: Likewise.
22453 * coverage.h: Likewise.
22454 * cppdefault.h (struct default_include): Likewise.
22455 * cprop.cc (local_cprop_pass): Likewise.
22456 (one_cprop_pass): Likewise.
22457 * cse.cc (hash_rtx_cb): Likewise.
22458 (fold_rtx): Likewise.
22459 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
22460 * data-streamer.h (bp_unpack_var_len_int): Likewise.
22461 (streamer_write_widest_int): Likewise.
22462 * dbgcnt.def: Likewise.
22463 * dbxout.cc (dbxout_early_global_decl): Likewise.
22464 (dbxout_common_check): Likewise.
22465 * dbxout.h: Likewise.
22466 * debug.h (struct gcc_debug_hooks): Likewise.
22467 (dump_go_spec_init): Likewise.
22468 * df-core.cc: Likewise.
22469 * df-scan.cc (df_insn_info_delete): Likewise.
22470 (df_insn_delete): Likewise.
22471 * df.h (debug_df_chain): Likewise.
22472 (can_move_insns_across): Likewise.
22473 * dfp.cc (decimal_from_binary): Likewise.
22474 * diagnostic-color.cc: Likewise.
22475 * diagnostic-event-id.h: Likewise.
22476 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
22477 * diagnostic.cc (bt_callback): Likewise.
22478 (num_digits): Likewise.
22479 * doc/avr-mmcu.texi: Likewise.
22480 * doc/cfg.texi: Likewise.
22481 * doc/contrib.texi: Likewise.
22482 * doc/cppinternals.texi: Likewise.
22483 * doc/extend.texi: Likewise.
22484 * doc/generic.texi: Likewise.
22485 * doc/gimple.texi: Likewise.
22486 * doc/gty.texi: Likewise.
22487 * doc/invoke.texi: Likewise.
22488 * doc/loop.texi: Likewise.
22489 * doc/lto.texi: Likewise.
22490 * doc/match-and-simplify.texi: Likewise.
22491 * doc/md.texi: Likewise.
22492 * doc/optinfo.texi: Likewise.
22493 * doc/options.texi: Likewise.
22494 * doc/passes.texi: Likewise.
22495 * doc/plugins.texi: Likewise.
22496 * doc/rtl.texi: Likewise.
22497 * doc/sourcebuild.texi: Likewise.
22498 * doc/tm.texi: Likewise.
22499 * doc/tm.texi.in: Likewise.
22500 * doc/tree-ssa.texi: Likewise.
22501 * dojump.cc (do_jump): Likewise.
22502 * dojump.h: Likewise.
22503 * dumpfile.cc (test_impl_location): Likewise.
22504 (test_capture_of_dump_calls): Likewise.
22505 * dumpfile.h (enum dump_kind): Likewise.
22506 (class dump_location_t): Likewise.
22507 (dump_enabled_p): Likewise.
22508 (enable_rtl_dump_file): Likewise.
22509 (dump_combine_total_stats): Likewise.
22510 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
22511 * dwarf2ctf.h (ctf_debug_finish): Likewise.
22512 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
22513 (struct loc_descr_context): Likewise.
22514 (rtl_for_decl_location): Likewise.
22515 (gen_subprogram_die): Likewise.
22516 (gen_label_die): Likewise.
22517 (is_trivial_indirect_ref): Likewise.
22518 (dwarf2out_late_global_decl): Likewise.
22519 (dwarf_file_hasher::hash): Likewise.
22520 (dwarf2out_end_source_file): Likewise.
22521 (dwarf2out_define): Likewise.
22522 (dwarf2out_early_finish): Likewise.
22523 * dwarf2out.h (struct dw_fde_node): Likewise.
22524 (struct dw_discr_list_node): Likewise.
22525 (output_loc_sequence_raw): Likewise.
22526 * emit-rtl.cc (gen_raw_REG): Likewise.
22527 (maybe_set_max_label_num): Likewise.
22528 * emit-rtl.h (struct rtl_data): Likewise.
22529 * errors.cc (internal_error): Likewise.
22530 (trim_filename): Likewise.
22531 * et-forest.cc: Likewise.
22532 * except.cc (init_eh_for_function): Likewise.
22533 * explow.cc (promote_ssa_mode): Likewise.
22534 (get_dynamic_stack_size): Likewise.
22535 * explow.h: Likewise.
22536 * expmed.h: Likewise.
22537 * expr.cc (safe_from_p): Likewise.
22538 (expand_expr_real_2): Likewise.
22539 (expand_expr_real_1): Likewise.
22540 * file-prefix-map.cc (remap_filename): Likewise.
22541 * final.cc (app_enable): Likewise.
22542 (make_pass_compute_alignments): Likewise.
22543 (final_scan_insn_1): Likewise.
22544 (final_scan_insn): Likewise.
22545 * fixed-value.h (fixed_from_string): Likewise.
22546 * flag-types.h (NO_DEBUG): Likewise.
22547 (DWARF2_DEBUG): Likewise.
22548 (VMS_DEBUG): Likewise.
22549 (BTF_DEBUG): Likewise.
22550 (enum ctf_debug_info_levels): Likewise.
22551 * fold-const.cc (const_binop): Likewise.
22552 (fold_binary_loc): Likewise.
22553 (fold_checksum_tree): Likewise.
22554 * fp-test.cc: Likewise.
22555 * function.cc (expand_function_end): Likewise.
22556 * function.h (struct function): Likewise.
22557 * fwprop.cc (should_replace_address): Likewise.
22558 * gcc-main.cc: Likewise.
22559 * gcc-rich-location.h (class gcc_rich_location): Likewise.
22560 * gcc-symtab.h: Likewise.
22561 * gcc.cc (MIN_FATAL_STATUS): Likewise.
22562 (driver_handle_option): Likewise.
22563 (quote_spec_arg): Likewise.
22564 (driver::finalize): Likewise.
22565 * gcc.h (set_input): Likewise.
22566 * gcov-dump.cc: Likewise.
22567 * gcov.cc (solve_flow_graph): Likewise.
22568 * gcse-common.cc: Likewise.
22569 * gcse.cc (make_pass_rtl_hoist): Likewise.
22570 * genattr-common.cc: Likewise.
22571 * genattrtab.cc (min_fn): Likewise.
22572 (write_const_num_delay_slots): Likewise.
22573 * genautomata.cc: Likewise.
22574 * genconditions.cc (write_one_condition): Likewise.
22575 * genconstants.cc: Likewise.
22576 * genemit.cc (gen_exp): Likewise.
22577 * generic-match-head.cc: Likewise.
22578 * genextract.cc: Likewise.
22579 * gengenrtl.cc (always_void_p): Likewise.
22580 * gengtype-parse.cc (gtymarker_opt): Likewise.
22581 * gengtype-state.cc (state_writer::state_writer): Likewise.
22582 (write_state_trailer): Likewise.
22583 (equals_type_number): Likewise.
22584 (read_state): Likewise.
22585 * gengtype.cc (open_base_files): Likewise.
22586 (struct file_rule_st): Likewise.
22587 (header_dot_h_frul): Likewise.
22588 * gengtype.h: Likewise.
22589 * genmatch.cc (main): Likewise.
22590 * genmddeps.cc: Likewise.
22591 * genmodes.cc (emit_mode_inner): Likewise.
22592 (emit_mode_unit_size): Likewise.
22593 * genpeep.cc (gen_peephole): Likewise.
22594 * genpreds.cc (write_tm_preds_h): Likewise.
22595 * genrecog.cc (validate_pattern): Likewise.
22596 (write_header): Likewise.
22597 (main): Likewise.
22598 * gensupport.cc (change_subst_attribute): Likewise.
22599 (traverse_c_tests): Likewise.
22600 (add_predicate): Likewise.
22601 (init_predicate_table): Likewise.
22602 * gensupport.h (struct optab_pattern): Likewise.
22603 (get_num_insn_codes): Likewise.
22604 (maybe_eval_c_test): Likewise.
22605 (struct pred_data): Likewise.
22606 * ggc-internal.h: Likewise.
22607 * gimple-fold.cc (maybe_fold_reference): Likewise.
22608 (get_range_strlen_tree): Likewise.
22609 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
22610 * gimple-low.cc: Likewise.
22611 * gimple-match-head.cc (directly_supported_p): Likewise.
22612 * gimple-pretty-print.h: Likewise.
22613 * gimple-ssa-sprintf.cc (format_percent): Likewise.
22614 (adjust_range_for_overflow): Likewise.
22615 * gimple-streamer.h: Likewise.
22616 * gimple.h (struct GTY): Likewise.
22617 (is_gimple_resx): Likewise.
22618 * gimplify.cc (gimplify_expr): Likewise.
22619 (gimplify_init_constructor): Likewise.
22620 (omp_construct_selector_matches): Likewise.
22621 (gimplify_omp_target_update): Likewise.
22622 (gimplify_omp_ordered): Likewise.
22623 (gimplify_va_arg_expr): Likewise.
22624 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
22625 * haifa-sched.cc (increase_insn_priority): Likewise.
22626 (try_ready): Likewise.
22627 (sched_create_recovery_edges): Likewise.
22628 * ifcvt.cc (find_if_case_1): Likewise.
22629 (find_if_case_2): Likewise.
22630 * inchash.h: Likewise.
22631 * incpath.cc (add_env_var_paths): Likewise.
22632 * input.cc (dump_location_info): Likewise.
22633 (assert_loceq): Likewise.
22634 (test_lexer_string_locations_concatenation_1): Likewise.
22635 (test_lexer_string_locations_concatenation_2): Likewise.
22636 (test_lexer_string_locations_concatenation_3): Likewise.
22637 * input.h (BUILTINS_LOCATION): Likewise.
22638 (class string_concat_db): Likewise.
22639 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
22640 (expand_LOOP_VECTORIZED): Likewise.
22641 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
22642 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
22643 (ipa_fn_summary_t::duplicate): Likewise.
22644 (make_pass_ipa_fn_summary): Likewise.
22645 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
22646 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
22647 (free_lang_data_in_decl): Likewise.
22648 * ipa-inline.cc (compute_inlined_call_time): Likewise.
22649 (inline_always_inline_functions): Likewise.
22650 * ipa-inline.h (free_growth_caches): Likewise.
22651 (inline_account_function_p): Likewise.
22652 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
22653 (modref_eaf_analysis::analyze_ssa_name): Likewise.
22654 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
22655 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
22656 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
22657 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
22658 (unadjusted_ptr_and_unit_offset): Likewise.
22659 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
22660 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
22661 * ipa-split.cc (consider_split): Likewise.
22662 * ipa-sra.cc (isra_read_node_info): Likewise.
22663 * ipa-utils.h (struct ipa_dfs_info): Likewise.
22664 (recursive_call_p): Likewise.
22665 (ipa_make_function_pure): Likewise.
22666 * ira-build.cc (ira_create_allocno): Likewise.
22667 (ira_flattening): Likewise.
22668 * ira-color.cc (do_coloring): Likewise.
22669 (update_curr_costs): Likewise.
22670 * ira-conflicts.cc (process_regs_for_copy): Likewise.
22671 * ira-int.h (struct ira_emit_data): Likewise.
22672 (ira_prohibited_mode_move_regs): Likewise.
22673 (ira_get_dup_out_num): Likewise.
22674 (ira_destroy): Likewise.
22675 (ira_tune_allocno_costs): Likewise.
22676 (ira_implicitly_set_insn_hard_regs): Likewise.
22677 (ira_build_conflicts): Likewise.
22678 (ira_color): Likewise.
22679 * ira-lives.cc (process_bb_node_lives): Likewise.
22680 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
22681 (setup_uniform_class_p): Likewise.
22682 (def_dominates_uses): Likewise.
22683 * ira.h (ira_nullify_asm_goto): Likewise.
22684 * langhooks.cc (lhd_post_options): Likewise.
22685 * langhooks.h (class substring_loc): Likewise.
22686 (struct lang_hooks_for_tree_inlining): Likewise.
22687 (struct lang_hooks_for_types): Likewise.
22688 (struct lang_hooks): Likewise.
22689 * libfuncs.h (synchronize_libfunc): Likewise.
22690 * loop-doloop.cc (doloop_condition_get): Likewise.
22691 * loop-init.cc (fix_loop_structure): Likewise.
22692 * loop-invariant.cc: Likewise.
22693 * lower-subreg.h: Likewise.
22694 * lra-constraints.cc (curr_insn_transform): Likewise.
22695 * lra-int.h (struct lra_insn_reg): Likewise.
22696 (lra_undo_inheritance): Likewise.
22697 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
22698 (lra_split_hard_reg_for): Likewise.
22699 (lra_coalesce): Likewise.
22700 (lra_final_code_change): Likewise.
22701 * lra-spills.cc (lra_final_code_change): Likewise.
22702 * lra.cc (lra_process_new_insns): Likewise.
22703 * lto-compress.h (struct lto_compression_stream): Likewise.
22704 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
22705 (write_symbol): Likewise.
22706 * lto-streamer.h (enum LTO_tags): Likewise.
22707 (lto_value_range_error): Likewise.
22708 (lto_append_block): Likewise.
22709 (lto_streamer_hooks_init): Likewise.
22710 (stream_read_tree_ref): Likewise.
22711 (lto_prepare_function_for_streaming): Likewise.
22712 (select_what_to_stream): Likewise.
22713 (omp_lto_input_declare_variant_alt): Likewise.
22714 (cl_optimization_stream_in): Likewise.
22715 * lto-wrapper.cc (append_compiler_options): Likewise.
22716 * machmode.def: Likewise.
22717 * machmode.h (struct int_n_data_t): Likewise.
22718 * main.cc (main): Likewise.
22719 * match.pd: Likewise.
22720 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
22721 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
22722 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
22723 (make_pass_expand_omp_ssa): Likewise.
22724 * omp-low.cc (struct omp_context): Likewise.
22725 (struct omp_taskcopy_context): Likewise.
22726 (lower_omp): Likewise.
22727 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
22728 (mask_name): Likewise.
22729 (omp_sese_dump_pars): Likewise.
22730 (worker_single_simple): Likewise.
22731 * omp-offload.cc (omp_finish_file): Likewise.
22732 (execute_oacc_loop_designation): Likewise.
22733 * optabs-query.cc (lshift_cheap_p): Likewise.
22734 * optc-gen.awk: Likewise.
22735 * optc-save-gen.awk: Likewise.
22736 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
22737 * opts-common.cc: Likewise.
22738 * output.h (app_enable): Likewise.
22739 (output_operand_lossage): Likewise.
22740 (insn_current_reference_address): Likewise.
22741 (get_insn_template): Likewise.
22742 (output_quoted_string): Likewise.
22743 * pass_manager.h (struct register_pass_info): Likewise.
22744 * plugin.cc: Likewise.
22745 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
22746 * plugin.h (invoke_plugin_callbacks): Likewise.
22747 * pointer-query.cc (handle_mem_ref): Likewise.
22748 * postreload-gcse.cc (alloc_mem): Likewise.
22749 * predict.h (enum prediction): Likewise.
22750 (add_reg_br_prob_note): Likewise.
22751 * prefix.h: Likewise.
22752 * profile.h (get_working_sets): Likewise.
22753 * read-md.cc: Likewise.
22754 * read-md.h (struct mapping): Likewise.
22755 (class md_reader): Likewise.
22756 (class noop_reader): Likewise.
22757 * read-rtl-function.cc (function_reader::create_function): Likewise.
22758 (function_reader::extra_parsing_for_operand_code_0): Likewise.
22759 * read-rtl.cc (initialize_iterators): Likewise.
22760 * real.cc: Likewise.
22761 * real.h (struct real_value): Likewise.
22762 (format_helper::format_helper): Likewise.
22763 (real_hash): Likewise.
22764 (real_can_shorten_arithmetic): Likewise.
22765 * recog.cc (struct target_recog): Likewise.
22766 (offsettable_nonstrict_memref_p): Likewise.
22767 (constrain_operands): Likewise.
22768 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
22769 (which_op_alt): Likewise.
22770 (struct insn_gen_fn): Likewise.
22771 * reg-notes.def (REG_NOTE): Likewise.
22772 * reg-stack.cc: Likewise.
22773 * regs.h (reg_is_parm_p): Likewise.
22774 * regset.h: Likewise.
22775 * reload.cc (push_reload): Likewise.
22776 (find_reloads): Likewise.
22777 (find_reloads_address_1): Likewise.
22778 (find_replacement): Likewise.
22779 (refers_to_regno_for_reload_p): Likewise.
22780 (refers_to_mem_for_reload_p): Likewise.
22781 * reload.h (push_reload): Likewise.
22782 (deallocate_reload_reg): Likewise.
22783 * reload1.cc (emit_input_reload_insns): Likewise.
22784 * reorg.cc (relax_delay_slots): Likewise.
22785 * rtl.def (UNKNOWN): Likewise.
22786 (SEQUENCE): Likewise.
22787 (BARRIER): Likewise.
22788 (ASM_OPERANDS): Likewise.
22789 (EQ_ATTR_ALT): Likewise.
22790 * rtl.h (struct GTY): Likewise.
22791 (LABEL_NAME): Likewise.
22792 (LABEL_ALT_ENTRY_P): Likewise.
22793 (SUBREG_BYTE): Likewise.
22794 (get_stack_check_protect): Likewise.
22795 (dump_rtx_statistics): Likewise.
22796 (unwrap_const_vec_duplicate): Likewise.
22797 (subreg_promoted_mode): Likewise.
22798 (gen_lowpart_common): Likewise.
22799 (operand_subword): Likewise.
22800 (immed_wide_int_const): Likewise.
22801 (decide_function_section): Likewise.
22802 (active_insn_p): Likewise.
22803 (delete_related_insns): Likewise.
22804 (try_split): Likewise.
22805 (val_signbit_known_clear_p): Likewise.
22806 (simplifiable_subregs): Likewise.
22807 (set_insn_deleted): Likewise.
22808 (subreg_get_info): Likewise.
22809 (remove_free_EXPR_LIST_node): Likewise.
22810 (finish_subregs_of_mode): Likewise.
22811 (get_mem_attrs): Likewise.
22812 (lookup_constant_def): Likewise.
22813 (rtx_to_tree_code): Likewise.
22814 (hash_rtx): Likewise.
22815 (condjump_in_parallel_p): Likewise.
22816 (validate_subreg): Likewise.
22817 (make_compound_operation): Likewise.
22818 (schedule_ebbs): Likewise.
22819 (print_inline_rtx): Likewise.
22820 (fixup_args_size_notes): Likewise.
22821 (expand_dec): Likewise.
22822 (prepare_copy_insn): Likewise.
22823 (mark_elimination): Likewise.
22824 (valid_mode_changes_for_regno): Likewise.
22825 (make_debug_expr_from_rtl): Likewise.
22826 (delete_vta_debug_insns): Likewise.
22827 (simplify_using_condition): Likewise.
22828 (set_insn_locations): Likewise.
22829 (fatal_insn_not_found): Likewise.
22830 (word_register_operation_p): Likewise.
22831 * rtlanal.cc (get_call_fndecl): Likewise.
22832 (side_effects_p): Likewise.
22833 (subreg_nregs): Likewise.
22834 (rtx_cost): Likewise.
22835 (canonicalize_condition): Likewise.
22836 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
22837 * run-rtl-passes.cc (run_rtl_passes): Likewise.
22838 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
22839 * sched-deps.cc (add_dependence_1): Likewise.
22840 * sched-ebb.cc (begin_move_insn): Likewise.
22841 (add_deps_for_risky_insns): Likewise.
22842 (advance_target_bb): Likewise.
22843 * sched-int.h (reemit_notes): Likewise.
22844 (struct _haifa_insn_data): Likewise.
22845 (HID): Likewise.
22846 (DEP_CANCELLED): Likewise.
22847 (debug_ds): Likewise.
22848 (number_in_ready): Likewise.
22849 (schedule_ebbs_finish): Likewise.
22850 (find_modifiable_mems): Likewise.
22851 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
22852 * sel-sched-dump.cc (dump_lv_set): Likewise.
22853 * sel-sched-dump.h: Likewise.
22854 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
22855 (setup_id_reg_sets): Likewise.
22856 (has_dependence_p): Likewise.
22857 (sel_num_cfg_preds_gt_1): Likewise.
22858 (bb_ends_ebb_p): Likewise.
22859 * sel-sched-ir.h (struct _list_node): Likewise.
22860 (struct idata_def): Likewise.
22861 (bb_next_bb): Likewise.
22862 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
22863 (choose_best_pseudo_reg): Likewise.
22864 (verify_target_availability): Likewise.
22865 (can_speculate_dep_p): Likewise.
22866 (sel_rank_for_schedule): Likewise.
22867 * selftest-run-tests.cc (selftest::run_tests): Likewise.
22868 * selftest.h (class auto_fix_quotes): Likewise.
22869 * shrink-wrap.cc (handle_simple_exit): Likewise.
22870 * shrink-wrap.h: Likewise.
22871 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
22872 (simplify_context::simplify_gen_vec_select): Likewise.
22873 * spellcheck-tree.h: Likewise.
22874 * spellcheck.h: Likewise.
22875 * statistics.h (struct function): Likewise.
22876 * stmt.cc (conditional_probability): Likewise.
22877 * stmt.h: Likewise.
22878 * stor-layout.h: Likewise.
22879 * streamer-hooks.h: Likewise.
22880 * stringpool.h: Likewise.
22881 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
22882 * target.def (HOOK_VECTOR_END): Likewise.
22883 (type.): Likewise.
22884 * target.h (union cumulative_args_t): Likewise.
22885 (by_pieces_ninsns): Likewise.
22886 (class predefined_function_abi): Likewise.
22887 * targhooks.cc (default_translate_mode_attribute): Likewise.
22888 * timevar.def: Likewise.
22889 * timevar.h (class timer): Likewise.
22890 * toplev.h (enable_rtl_dump_file): Likewise.
22891 * trans-mem.cc (collect_bb2reg): Likewise.
22892 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
22893 * tree-cfg.cc (remove_bb): Likewise.
22894 (verify_gimple_debug): Likewise.
22895 (remove_edge_and_dominated_blocks): Likewise.
22896 (push_fndecl): Likewise.
22897 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
22898 * tree-complex.cc (expand_complex_multiplication): Likewise.
22899 (expand_complex_div_straight): Likewise.
22900 * tree-core.h (enum tree_index): Likewise.
22901 (enum operand_equal_flag): Likewise.
22902 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
22903 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
22904 * tree-inline.cc (initialize_inlined_parameters): Likewise.
22905 * tree-inline.h (force_value_to_type): Likewise.
22906 * tree-nested.cc (get_chain_decl): Likewise.
22907 (walk_all_functions): Likewise.
22908 * tree-object-size.h: Likewise.
22909 * tree-outof-ssa.cc: Likewise.
22910 * tree-parloops.cc (create_parallel_loop): Likewise.
22911 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
22912 (dump_generic_node): Likewise.
22913 * tree-profile.cc (tree_profiling): Likewise.
22914 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
22915 * tree-ssa-address.cc: Likewise.
22916 * tree-ssa-alias.cc: Likewise.
22917 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
22918 (dump_alias_stats): Likewise.
22919 * tree-ssa-ccp.cc: Likewise.
22920 * tree-ssa-coalesce.h: Likewise.
22921 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
22922 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
22923 * tree-ssa-loop-unswitch.cc: Likewise.
22924 * tree-ssa-math-opts.cc: Likewise.
22925 * tree-ssa-operands.cc (class operands_scanner): Likewise.
22926 * tree-ssa-pre.cc: Likewise.
22927 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
22928 (debug_range_entry): Likewise.
22929 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
22930 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
22931 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
22932 (equal_mem_array_ref_p): Likewise.
22933 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
22934 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
22935 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
22936 * tree-ssa-ter.h: Likewise.
22937 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
22938 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
22939 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
22940 (write_ts_block_tree_pointers): Likewise.
22941 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
22942 (streamer_read_tree_bitfields): Likewise.
22943 (streamer_write_integer_cst): Likewise.
22944 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
22945 (vect_synth_mult_by_constant): Likewise.
22946 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
22947 * tree-vectorizer.cc: Likewise.
22948 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
22949 (vect_update_inits_of_drs): Likewise.
22950 (vect_get_mask_type_for_stmt): Likewise.
22951 (vect_rgroup_iv_might_wrap_p): Likewise.
22952 (cse_and_gimplify_to_preheader): Likewise.
22953 (vect_free_slp_tree): Likewise.
22954 (vect_pattern_recog): Likewise.
22955 (vect_stmt_dominates_stmt_p): Likewise.
22956 * tree.cc (initialize_tree_contains_struct): Likewise.
22957 (need_assembler_name_p): Likewise.
22958 (type_with_interoperable_signedness): Likewise.
22959 * tree.def (SWITCH_EXPR): Likewise.
22960 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
22961 (poly_int_tree_p): Likewise.
22962 (inlined_function_outer_scope_p): Likewise.
22963 (tree_code_for_canonical_type_merging): Likewise.
22964 * value-prof.cc: Likewise.
22965 * value-prof.h (get_nth_most_common_value): Likewise.
22966 (find_func_by_profile_id): Likewise.
22967 * value-range.cc (vrp_operand_equal_p): Likewise.
22968 * value-range.h: Likewise.
22969 * var-tracking.cc: Likewise.
22970 * varasm.cc (default_function_section): Likewise.
22971 (function_section_1): Likewise.
22972 (assemble_variable): Likewise.
22973 (handle_vtv_comdat_section): Likewise.
22974 * vec.h (struct vec_prefix): Likewise.
22975 * vmsdbgout.cc (full_name): Likewise.
22976 * vtable-verify.cc: Likewise.
22977 * vtable-verify.h (struct vtv_graph_node): Likewise.
22978 * xcoffout.cc: Likewise.
22979 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
22980
22981 2022-01-17 Martin Liska <mliska@suse.cz>
22982
22983 * adjust-alignment.c: Moved to...
22984 * adjust-alignment.cc: ...here.
22985 * alias.c: Moved to...
22986 * alias.cc: ...here.
22987 * alloc-pool.c: Moved to...
22988 * alloc-pool.cc: ...here.
22989 * asan.c: Moved to...
22990 * asan.cc: ...here.
22991 * attribs.c: Moved to...
22992 * attribs.cc: ...here.
22993 * auto-inc-dec.c: Moved to...
22994 * auto-inc-dec.cc: ...here.
22995 * auto-profile.c: Moved to...
22996 * auto-profile.cc: ...here.
22997 * bb-reorder.c: Moved to...
22998 * bb-reorder.cc: ...here.
22999 * bitmap.c: Moved to...
23000 * bitmap.cc: ...here.
23001 * btfout.c: Moved to...
23002 * btfout.cc: ...here.
23003 * builtins.c: Moved to...
23004 * builtins.cc: ...here.
23005 * caller-save.c: Moved to...
23006 * caller-save.cc: ...here.
23007 * calls.c: Moved to...
23008 * calls.cc: ...here.
23009 * ccmp.c: Moved to...
23010 * ccmp.cc: ...here.
23011 * cfg.c: Moved to...
23012 * cfg.cc: ...here.
23013 * cfganal.c: Moved to...
23014 * cfganal.cc: ...here.
23015 * cfgbuild.c: Moved to...
23016 * cfgbuild.cc: ...here.
23017 * cfgcleanup.c: Moved to...
23018 * cfgcleanup.cc: ...here.
23019 * cfgexpand.c: Moved to...
23020 * cfgexpand.cc: ...here.
23021 * cfghooks.c: Moved to...
23022 * cfghooks.cc: ...here.
23023 * cfgloop.c: Moved to...
23024 * cfgloop.cc: ...here.
23025 * cfgloopanal.c: Moved to...
23026 * cfgloopanal.cc: ...here.
23027 * cfgloopmanip.c: Moved to...
23028 * cfgloopmanip.cc: ...here.
23029 * cfgrtl.c: Moved to...
23030 * cfgrtl.cc: ...here.
23031 * cgraph.c: Moved to...
23032 * cgraph.cc: ...here.
23033 * cgraphbuild.c: Moved to...
23034 * cgraphbuild.cc: ...here.
23035 * cgraphclones.c: Moved to...
23036 * cgraphclones.cc: ...here.
23037 * cgraphunit.c: Moved to...
23038 * cgraphunit.cc: ...here.
23039 * collect-utils.c: Moved to...
23040 * collect-utils.cc: ...here.
23041 * collect2-aix.c: Moved to...
23042 * collect2-aix.cc: ...here.
23043 * collect2.c: Moved to...
23044 * collect2.cc: ...here.
23045 * combine-stack-adj.c: Moved to...
23046 * combine-stack-adj.cc: ...here.
23047 * combine.c: Moved to...
23048 * combine.cc: ...here.
23049 * common/common-targhooks.c: Moved to...
23050 * common/common-targhooks.cc: ...here.
23051 * common/config/aarch64/aarch64-common.c: Moved to...
23052 * common/config/aarch64/aarch64-common.cc: ...here.
23053 * common/config/alpha/alpha-common.c: Moved to...
23054 * common/config/alpha/alpha-common.cc: ...here.
23055 * common/config/arc/arc-common.c: Moved to...
23056 * common/config/arc/arc-common.cc: ...here.
23057 * common/config/arm/arm-common.c: Moved to...
23058 * common/config/arm/arm-common.cc: ...here.
23059 * common/config/avr/avr-common.c: Moved to...
23060 * common/config/avr/avr-common.cc: ...here.
23061 * common/config/bfin/bfin-common.c: Moved to...
23062 * common/config/bfin/bfin-common.cc: ...here.
23063 * common/config/bpf/bpf-common.c: Moved to...
23064 * common/config/bpf/bpf-common.cc: ...here.
23065 * common/config/c6x/c6x-common.c: Moved to...
23066 * common/config/c6x/c6x-common.cc: ...here.
23067 * common/config/cr16/cr16-common.c: Moved to...
23068 * common/config/cr16/cr16-common.cc: ...here.
23069 * common/config/cris/cris-common.c: Moved to...
23070 * common/config/cris/cris-common.cc: ...here.
23071 * common/config/csky/csky-common.c: Moved to...
23072 * common/config/csky/csky-common.cc: ...here.
23073 * common/config/default-common.c: Moved to...
23074 * common/config/default-common.cc: ...here.
23075 * common/config/epiphany/epiphany-common.c: Moved to...
23076 * common/config/epiphany/epiphany-common.cc: ...here.
23077 * common/config/fr30/fr30-common.c: Moved to...
23078 * common/config/fr30/fr30-common.cc: ...here.
23079 * common/config/frv/frv-common.c: Moved to...
23080 * common/config/frv/frv-common.cc: ...here.
23081 * common/config/gcn/gcn-common.c: Moved to...
23082 * common/config/gcn/gcn-common.cc: ...here.
23083 * common/config/h8300/h8300-common.c: Moved to...
23084 * common/config/h8300/h8300-common.cc: ...here.
23085 * common/config/i386/i386-common.c: Moved to...
23086 * common/config/i386/i386-common.cc: ...here.
23087 * common/config/ia64/ia64-common.c: Moved to...
23088 * common/config/ia64/ia64-common.cc: ...here.
23089 * common/config/iq2000/iq2000-common.c: Moved to...
23090 * common/config/iq2000/iq2000-common.cc: ...here.
23091 * common/config/lm32/lm32-common.c: Moved to...
23092 * common/config/lm32/lm32-common.cc: ...here.
23093 * common/config/m32r/m32r-common.c: Moved to...
23094 * common/config/m32r/m32r-common.cc: ...here.
23095 * common/config/m68k/m68k-common.c: Moved to...
23096 * common/config/m68k/m68k-common.cc: ...here.
23097 * common/config/mcore/mcore-common.c: Moved to...
23098 * common/config/mcore/mcore-common.cc: ...here.
23099 * common/config/microblaze/microblaze-common.c: Moved to...
23100 * common/config/microblaze/microblaze-common.cc: ...here.
23101 * common/config/mips/mips-common.c: Moved to...
23102 * common/config/mips/mips-common.cc: ...here.
23103 * common/config/mmix/mmix-common.c: Moved to...
23104 * common/config/mmix/mmix-common.cc: ...here.
23105 * common/config/mn10300/mn10300-common.c: Moved to...
23106 * common/config/mn10300/mn10300-common.cc: ...here.
23107 * common/config/msp430/msp430-common.c: Moved to...
23108 * common/config/msp430/msp430-common.cc: ...here.
23109 * common/config/nds32/nds32-common.c: Moved to...
23110 * common/config/nds32/nds32-common.cc: ...here.
23111 * common/config/nios2/nios2-common.c: Moved to...
23112 * common/config/nios2/nios2-common.cc: ...here.
23113 * common/config/nvptx/nvptx-common.c: Moved to...
23114 * common/config/nvptx/nvptx-common.cc: ...here.
23115 * common/config/or1k/or1k-common.c: Moved to...
23116 * common/config/or1k/or1k-common.cc: ...here.
23117 * common/config/pa/pa-common.c: Moved to...
23118 * common/config/pa/pa-common.cc: ...here.
23119 * common/config/pdp11/pdp11-common.c: Moved to...
23120 * common/config/pdp11/pdp11-common.cc: ...here.
23121 * common/config/pru/pru-common.c: Moved to...
23122 * common/config/pru/pru-common.cc: ...here.
23123 * common/config/riscv/riscv-common.c: Moved to...
23124 * common/config/riscv/riscv-common.cc: ...here.
23125 * common/config/rs6000/rs6000-common.c: Moved to...
23126 * common/config/rs6000/rs6000-common.cc: ...here.
23127 * common/config/rx/rx-common.c: Moved to...
23128 * common/config/rx/rx-common.cc: ...here.
23129 * common/config/s390/s390-common.c: Moved to...
23130 * common/config/s390/s390-common.cc: ...here.
23131 * common/config/sh/sh-common.c: Moved to...
23132 * common/config/sh/sh-common.cc: ...here.
23133 * common/config/sparc/sparc-common.c: Moved to...
23134 * common/config/sparc/sparc-common.cc: ...here.
23135 * common/config/tilegx/tilegx-common.c: Moved to...
23136 * common/config/tilegx/tilegx-common.cc: ...here.
23137 * common/config/tilepro/tilepro-common.c: Moved to...
23138 * common/config/tilepro/tilepro-common.cc: ...here.
23139 * common/config/v850/v850-common.c: Moved to...
23140 * common/config/v850/v850-common.cc: ...here.
23141 * common/config/vax/vax-common.c: Moved to...
23142 * common/config/vax/vax-common.cc: ...here.
23143 * common/config/visium/visium-common.c: Moved to...
23144 * common/config/visium/visium-common.cc: ...here.
23145 * common/config/xstormy16/xstormy16-common.c: Moved to...
23146 * common/config/xstormy16/xstormy16-common.cc: ...here.
23147 * common/config/xtensa/xtensa-common.c: Moved to...
23148 * common/config/xtensa/xtensa-common.cc: ...here.
23149 * compare-elim.c: Moved to...
23150 * compare-elim.cc: ...here.
23151 * config/aarch64/aarch64-bti-insert.c: Moved to...
23152 * config/aarch64/aarch64-bti-insert.cc: ...here.
23153 * config/aarch64/aarch64-builtins.c: Moved to...
23154 * config/aarch64/aarch64-builtins.cc: ...here.
23155 * config/aarch64/aarch64-c.c: Moved to...
23156 * config/aarch64/aarch64-c.cc: ...here.
23157 * config/aarch64/aarch64-d.c: Moved to...
23158 * config/aarch64/aarch64-d.cc: ...here.
23159 * config/aarch64/aarch64.c: Moved to...
23160 * config/aarch64/aarch64.cc: ...here.
23161 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
23162 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
23163 * config/aarch64/driver-aarch64.c: Moved to...
23164 * config/aarch64/driver-aarch64.cc: ...here.
23165 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
23166 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
23167 * config/aarch64/host-aarch64-darwin.c: Moved to...
23168 * config/aarch64/host-aarch64-darwin.cc: ...here.
23169 * config/alpha/alpha.c: Moved to...
23170 * config/alpha/alpha.cc: ...here.
23171 * config/alpha/driver-alpha.c: Moved to...
23172 * config/alpha/driver-alpha.cc: ...here.
23173 * config/arc/arc-c.c: Moved to...
23174 * config/arc/arc-c.cc: ...here.
23175 * config/arc/arc.c: Moved to...
23176 * config/arc/arc.cc: ...here.
23177 * config/arc/driver-arc.c: Moved to...
23178 * config/arc/driver-arc.cc: ...here.
23179 * config/arm/aarch-common.c: Moved to...
23180 * config/arm/aarch-common.cc: ...here.
23181 * config/arm/arm-builtins.c: Moved to...
23182 * config/arm/arm-builtins.cc: ...here.
23183 * config/arm/arm-c.c: Moved to...
23184 * config/arm/arm-c.cc: ...here.
23185 * config/arm/arm-d.c: Moved to...
23186 * config/arm/arm-d.cc: ...here.
23187 * config/arm/arm.c: Moved to...
23188 * config/arm/arm.cc: ...here.
23189 * config/arm/driver-arm.c: Moved to...
23190 * config/arm/driver-arm.cc: ...here.
23191 * config/avr/avr-c.c: Moved to...
23192 * config/avr/avr-c.cc: ...here.
23193 * config/avr/avr-devices.c: Moved to...
23194 * config/avr/avr-devices.cc: ...here.
23195 * config/avr/avr-log.c: Moved to...
23196 * config/avr/avr-log.cc: ...here.
23197 * config/avr/avr.c: Moved to...
23198 * config/avr/avr.cc: ...here.
23199 * config/avr/driver-avr.c: Moved to...
23200 * config/avr/driver-avr.cc: ...here.
23201 * config/avr/gen-avr-mmcu-specs.c: Moved to...
23202 * config/avr/gen-avr-mmcu-specs.cc: ...here.
23203 * config/avr/gen-avr-mmcu-texi.c: Moved to...
23204 * config/avr/gen-avr-mmcu-texi.cc: ...here.
23205 * config/bfin/bfin.c: Moved to...
23206 * config/bfin/bfin.cc: ...here.
23207 * config/bpf/bpf.c: Moved to...
23208 * config/bpf/bpf.cc: ...here.
23209 * config/bpf/coreout.c: Moved to...
23210 * config/bpf/coreout.cc: ...here.
23211 * config/c6x/c6x.c: Moved to...
23212 * config/c6x/c6x.cc: ...here.
23213 * config/cr16/cr16.c: Moved to...
23214 * config/cr16/cr16.cc: ...here.
23215 * config/cris/cris.c: Moved to...
23216 * config/cris/cris.cc: ...here.
23217 * config/csky/csky.c: Moved to...
23218 * config/csky/csky.cc: ...here.
23219 * config/darwin-c.c: Moved to...
23220 * config/darwin-c.cc: ...here.
23221 * config/darwin-d.c: Moved to...
23222 * config/darwin-d.cc: ...here.
23223 * config/darwin-driver.c: Moved to...
23224 * config/darwin-driver.cc: ...here.
23225 * config/darwin-f.c: Moved to...
23226 * config/darwin-f.cc: ...here.
23227 * config/darwin.c: Moved to...
23228 * config/darwin.cc: ...here.
23229 * config/default-c.c: Moved to...
23230 * config/default-c.cc: ...here.
23231 * config/default-d.c: Moved to...
23232 * config/default-d.cc: ...here.
23233 * config/dragonfly-d.c: Moved to...
23234 * config/dragonfly-d.cc: ...here.
23235 * config/epiphany/epiphany.c: Moved to...
23236 * config/epiphany/epiphany.cc: ...here.
23237 * config/epiphany/mode-switch-use.c: Moved to...
23238 * config/epiphany/mode-switch-use.cc: ...here.
23239 * config/epiphany/resolve-sw-modes.c: Moved to...
23240 * config/epiphany/resolve-sw-modes.cc: ...here.
23241 * config/fr30/fr30.c: Moved to...
23242 * config/fr30/fr30.cc: ...here.
23243 * config/freebsd-d.c: Moved to...
23244 * config/freebsd-d.cc: ...here.
23245 * config/frv/frv.c: Moved to...
23246 * config/frv/frv.cc: ...here.
23247 * config/ft32/ft32.c: Moved to...
23248 * config/ft32/ft32.cc: ...here.
23249 * config/gcn/driver-gcn.c: Moved to...
23250 * config/gcn/driver-gcn.cc: ...here.
23251 * config/gcn/gcn-run.c: Moved to...
23252 * config/gcn/gcn-run.cc: ...here.
23253 * config/gcn/gcn-tree.c: Moved to...
23254 * config/gcn/gcn-tree.cc: ...here.
23255 * config/gcn/gcn.c: Moved to...
23256 * config/gcn/gcn.cc: ...here.
23257 * config/gcn/mkoffload.c: Moved to...
23258 * config/gcn/mkoffload.cc: ...here.
23259 * config/glibc-c.c: Moved to...
23260 * config/glibc-c.cc: ...here.
23261 * config/glibc-d.c: Moved to...
23262 * config/glibc-d.cc: ...here.
23263 * config/h8300/h8300.c: Moved to...
23264 * config/h8300/h8300.cc: ...here.
23265 * config/host-darwin.c: Moved to...
23266 * config/host-darwin.cc: ...here.
23267 * config/host-hpux.c: Moved to...
23268 * config/host-hpux.cc: ...here.
23269 * config/host-linux.c: Moved to...
23270 * config/host-linux.cc: ...here.
23271 * config/host-netbsd.c: Moved to...
23272 * config/host-netbsd.cc: ...here.
23273 * config/host-openbsd.c: Moved to...
23274 * config/host-openbsd.cc: ...here.
23275 * config/host-solaris.c: Moved to...
23276 * config/host-solaris.cc: ...here.
23277 * config/i386/djgpp.c: Moved to...
23278 * config/i386/djgpp.cc: ...here.
23279 * config/i386/driver-i386.c: Moved to...
23280 * config/i386/driver-i386.cc: ...here.
23281 * config/i386/driver-mingw32.c: Moved to...
23282 * config/i386/driver-mingw32.cc: ...here.
23283 * config/i386/gnu-property.c: Moved to...
23284 * config/i386/gnu-property.cc: ...here.
23285 * config/i386/host-cygwin.c: Moved to...
23286 * config/i386/host-cygwin.cc: ...here.
23287 * config/i386/host-i386-darwin.c: Moved to...
23288 * config/i386/host-i386-darwin.cc: ...here.
23289 * config/i386/host-mingw32.c: Moved to...
23290 * config/i386/host-mingw32.cc: ...here.
23291 * config/i386/i386-builtins.c: Moved to...
23292 * config/i386/i386-builtins.cc: ...here.
23293 * config/i386/i386-c.c: Moved to...
23294 * config/i386/i386-c.cc: ...here.
23295 * config/i386/i386-d.c: Moved to...
23296 * config/i386/i386-d.cc: ...here.
23297 * config/i386/i386-expand.c: Moved to...
23298 * config/i386/i386-expand.cc: ...here.
23299 * config/i386/i386-features.c: Moved to...
23300 * config/i386/i386-features.cc: ...here.
23301 * config/i386/i386-options.c: Moved to...
23302 * config/i386/i386-options.cc: ...here.
23303 * config/i386/i386.c: Moved to...
23304 * config/i386/i386.cc: ...here.
23305 * config/i386/intelmic-mkoffload.c: Moved to...
23306 * config/i386/intelmic-mkoffload.cc: ...here.
23307 * config/i386/msformat-c.c: Moved to...
23308 * config/i386/msformat-c.cc: ...here.
23309 * config/i386/winnt-cxx.c: Moved to...
23310 * config/i386/winnt-cxx.cc: ...here.
23311 * config/i386/winnt-d.c: Moved to...
23312 * config/i386/winnt-d.cc: ...here.
23313 * config/i386/winnt-stubs.c: Moved to...
23314 * config/i386/winnt-stubs.cc: ...here.
23315 * config/i386/winnt.c: Moved to...
23316 * config/i386/winnt.cc: ...here.
23317 * config/i386/x86-tune-sched-atom.c: Moved to...
23318 * config/i386/x86-tune-sched-atom.cc: ...here.
23319 * config/i386/x86-tune-sched-bd.c: Moved to...
23320 * config/i386/x86-tune-sched-bd.cc: ...here.
23321 * config/i386/x86-tune-sched-core.c: Moved to...
23322 * config/i386/x86-tune-sched-core.cc: ...here.
23323 * config/i386/x86-tune-sched.c: Moved to...
23324 * config/i386/x86-tune-sched.cc: ...here.
23325 * config/ia64/ia64-c.c: Moved to...
23326 * config/ia64/ia64-c.cc: ...here.
23327 * config/ia64/ia64.c: Moved to...
23328 * config/ia64/ia64.cc: ...here.
23329 * config/iq2000/iq2000.c: Moved to...
23330 * config/iq2000/iq2000.cc: ...here.
23331 * config/linux.c: Moved to...
23332 * config/linux.cc: ...here.
23333 * config/lm32/lm32.c: Moved to...
23334 * config/lm32/lm32.cc: ...here.
23335 * config/m32c/m32c-pragma.c: Moved to...
23336 * config/m32c/m32c-pragma.cc: ...here.
23337 * config/m32c/m32c.c: Moved to...
23338 * config/m32c/m32c.cc: ...here.
23339 * config/m32r/m32r.c: Moved to...
23340 * config/m32r/m32r.cc: ...here.
23341 * config/m68k/m68k.c: Moved to...
23342 * config/m68k/m68k.cc: ...here.
23343 * config/mcore/mcore.c: Moved to...
23344 * config/mcore/mcore.cc: ...here.
23345 * config/microblaze/microblaze-c.c: Moved to...
23346 * config/microblaze/microblaze-c.cc: ...here.
23347 * config/microblaze/microblaze.c: Moved to...
23348 * config/microblaze/microblaze.cc: ...here.
23349 * config/mips/driver-native.c: Moved to...
23350 * config/mips/driver-native.cc: ...here.
23351 * config/mips/frame-header-opt.c: Moved to...
23352 * config/mips/frame-header-opt.cc: ...here.
23353 * config/mips/mips-d.c: Moved to...
23354 * config/mips/mips-d.cc: ...here.
23355 * config/mips/mips.c: Moved to...
23356 * config/mips/mips.cc: ...here.
23357 * config/mmix/mmix.c: Moved to...
23358 * config/mmix/mmix.cc: ...here.
23359 * config/mn10300/mn10300.c: Moved to...
23360 * config/mn10300/mn10300.cc: ...here.
23361 * config/moxie/moxie.c: Moved to...
23362 * config/moxie/moxie.cc: ...here.
23363 * config/msp430/driver-msp430.c: Moved to...
23364 * config/msp430/driver-msp430.cc: ...here.
23365 * config/msp430/msp430-c.c: Moved to...
23366 * config/msp430/msp430-c.cc: ...here.
23367 * config/msp430/msp430-devices.c: Moved to...
23368 * config/msp430/msp430-devices.cc: ...here.
23369 * config/msp430/msp430.c: Moved to...
23370 * config/msp430/msp430.cc: ...here.
23371 * config/nds32/nds32-cost.c: Moved to...
23372 * config/nds32/nds32-cost.cc: ...here.
23373 * config/nds32/nds32-fp-as-gp.c: Moved to...
23374 * config/nds32/nds32-fp-as-gp.cc: ...here.
23375 * config/nds32/nds32-intrinsic.c: Moved to...
23376 * config/nds32/nds32-intrinsic.cc: ...here.
23377 * config/nds32/nds32-isr.c: Moved to...
23378 * config/nds32/nds32-isr.cc: ...here.
23379 * config/nds32/nds32-md-auxiliary.c: Moved to...
23380 * config/nds32/nds32-md-auxiliary.cc: ...here.
23381 * config/nds32/nds32-memory-manipulation.c: Moved to...
23382 * config/nds32/nds32-memory-manipulation.cc: ...here.
23383 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
23384 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
23385 * config/nds32/nds32-predicates.c: Moved to...
23386 * config/nds32/nds32-predicates.cc: ...here.
23387 * config/nds32/nds32-relax-opt.c: Moved to...
23388 * config/nds32/nds32-relax-opt.cc: ...here.
23389 * config/nds32/nds32-utils.c: Moved to...
23390 * config/nds32/nds32-utils.cc: ...here.
23391 * config/nds32/nds32.c: Moved to...
23392 * config/nds32/nds32.cc: ...here.
23393 * config/netbsd-d.c: Moved to...
23394 * config/netbsd-d.cc: ...here.
23395 * config/netbsd.c: Moved to...
23396 * config/netbsd.cc: ...here.
23397 * config/nios2/nios2.c: Moved to...
23398 * config/nios2/nios2.cc: ...here.
23399 * config/nvptx/mkoffload.c: Moved to...
23400 * config/nvptx/mkoffload.cc: ...here.
23401 * config/nvptx/nvptx-c.c: Moved to...
23402 * config/nvptx/nvptx-c.cc: ...here.
23403 * config/nvptx/nvptx.c: Moved to...
23404 * config/nvptx/nvptx.cc: ...here.
23405 * config/openbsd-d.c: Moved to...
23406 * config/openbsd-d.cc: ...here.
23407 * config/or1k/or1k.c: Moved to...
23408 * config/or1k/or1k.cc: ...here.
23409 * config/pa/pa-d.c: Moved to...
23410 * config/pa/pa-d.cc: ...here.
23411 * config/pa/pa.c: Moved to...
23412 * config/pa/pa.cc: ...here.
23413 * config/pdp11/pdp11.c: Moved to...
23414 * config/pdp11/pdp11.cc: ...here.
23415 * config/pru/pru-passes.c: Moved to...
23416 * config/pru/pru-passes.cc: ...here.
23417 * config/pru/pru-pragma.c: Moved to...
23418 * config/pru/pru-pragma.cc: ...here.
23419 * config/pru/pru.c: Moved to...
23420 * config/pru/pru.cc: ...here.
23421 * config/riscv/riscv-builtins.c: Moved to...
23422 * config/riscv/riscv-builtins.cc: ...here.
23423 * config/riscv/riscv-c.c: Moved to...
23424 * config/riscv/riscv-c.cc: ...here.
23425 * config/riscv/riscv-d.c: Moved to...
23426 * config/riscv/riscv-d.cc: ...here.
23427 * config/riscv/riscv-shorten-memrefs.c: Moved to...
23428 * config/riscv/riscv-shorten-memrefs.cc: ...here.
23429 * config/riscv/riscv-sr.c: Moved to...
23430 * config/riscv/riscv-sr.cc: ...here.
23431 * config/riscv/riscv.c: Moved to...
23432 * config/riscv/riscv.cc: ...here.
23433 * config/rl78/rl78-c.c: Moved to...
23434 * config/rl78/rl78-c.cc: ...here.
23435 * config/rl78/rl78.c: Moved to...
23436 * config/rl78/rl78.cc: ...here.
23437 * config/rs6000/driver-rs6000.c: Moved to...
23438 * config/rs6000/driver-rs6000.cc: ...here.
23439 * config/rs6000/host-darwin.c: Moved to...
23440 * config/rs6000/host-darwin.cc: ...here.
23441 * config/rs6000/host-ppc64-darwin.c: Moved to...
23442 * config/rs6000/host-ppc64-darwin.cc: ...here.
23443 * config/rs6000/rbtree.c: Moved to...
23444 * config/rs6000/rbtree.cc: ...here.
23445 * config/rs6000/rs6000-c.c: Moved to...
23446 * config/rs6000/rs6000-c.cc: ...here.
23447 * config/rs6000/rs6000-call.c: Moved to...
23448 * config/rs6000/rs6000-call.cc: ...here.
23449 * config/rs6000/rs6000-d.c: Moved to...
23450 * config/rs6000/rs6000-d.cc: ...here.
23451 * config/rs6000/rs6000-gen-builtins.c: Moved to...
23452 * config/rs6000/rs6000-gen-builtins.cc: ...here.
23453 * config/rs6000/rs6000-linux.c: Moved to...
23454 * config/rs6000/rs6000-linux.cc: ...here.
23455 * config/rs6000/rs6000-logue.c: Moved to...
23456 * config/rs6000/rs6000-logue.cc: ...here.
23457 * config/rs6000/rs6000-p8swap.c: Moved to...
23458 * config/rs6000/rs6000-p8swap.cc: ...here.
23459 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
23460 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
23461 * config/rs6000/rs6000-string.c: Moved to...
23462 * config/rs6000/rs6000-string.cc: ...here.
23463 * config/rs6000/rs6000.c: Moved to...
23464 * config/rs6000/rs6000.cc: ...here.
23465 * config/rx/rx.c: Moved to...
23466 * config/rx/rx.cc: ...here.
23467 * config/s390/driver-native.c: Moved to...
23468 * config/s390/driver-native.cc: ...here.
23469 * config/s390/s390-c.c: Moved to...
23470 * config/s390/s390-c.cc: ...here.
23471 * config/s390/s390-d.c: Moved to...
23472 * config/s390/s390-d.cc: ...here.
23473 * config/s390/s390.c: Moved to...
23474 * config/s390/s390.cc: ...here.
23475 * config/sh/divtab-sh4-300.c: Moved to...
23476 * config/sh/divtab-sh4-300.cc: ...here.
23477 * config/sh/divtab-sh4.c: Moved to...
23478 * config/sh/divtab-sh4.cc: ...here.
23479 * config/sh/divtab.c: Moved to...
23480 * config/sh/divtab.cc: ...here.
23481 * config/sh/sh-c.c: Moved to...
23482 * config/sh/sh-c.cc: ...here.
23483 * config/sh/sh.c: Moved to...
23484 * config/sh/sh.cc: ...here.
23485 * config/sol2-c.c: Moved to...
23486 * config/sol2-c.cc: ...here.
23487 * config/sol2-cxx.c: Moved to...
23488 * config/sol2-cxx.cc: ...here.
23489 * config/sol2-d.c: Moved to...
23490 * config/sol2-d.cc: ...here.
23491 * config/sol2-stubs.c: Moved to...
23492 * config/sol2-stubs.cc: ...here.
23493 * config/sol2.c: Moved to...
23494 * config/sol2.cc: ...here.
23495 * config/sparc/driver-sparc.c: Moved to...
23496 * config/sparc/driver-sparc.cc: ...here.
23497 * config/sparc/sparc-c.c: Moved to...
23498 * config/sparc/sparc-c.cc: ...here.
23499 * config/sparc/sparc-d.c: Moved to...
23500 * config/sparc/sparc-d.cc: ...here.
23501 * config/sparc/sparc.c: Moved to...
23502 * config/sparc/sparc.cc: ...here.
23503 * config/stormy16/stormy16.c: Moved to...
23504 * config/stormy16/stormy16.cc: ...here.
23505 * config/tilegx/mul-tables.c: Moved to...
23506 * config/tilegx/mul-tables.cc: ...here.
23507 * config/tilegx/tilegx-c.c: Moved to...
23508 * config/tilegx/tilegx-c.cc: ...here.
23509 * config/tilegx/tilegx.c: Moved to...
23510 * config/tilegx/tilegx.cc: ...here.
23511 * config/tilepro/mul-tables.c: Moved to...
23512 * config/tilepro/mul-tables.cc: ...here.
23513 * config/tilepro/tilepro-c.c: Moved to...
23514 * config/tilepro/tilepro-c.cc: ...here.
23515 * config/tilepro/tilepro.c: Moved to...
23516 * config/tilepro/tilepro.cc: ...here.
23517 * config/v850/v850-c.c: Moved to...
23518 * config/v850/v850-c.cc: ...here.
23519 * config/v850/v850.c: Moved to...
23520 * config/v850/v850.cc: ...here.
23521 * config/vax/vax.c: Moved to...
23522 * config/vax/vax.cc: ...here.
23523 * config/visium/visium.c: Moved to...
23524 * config/visium/visium.cc: ...here.
23525 * config/vms/vms-c.c: Moved to...
23526 * config/vms/vms-c.cc: ...here.
23527 * config/vms/vms-f.c: Moved to...
23528 * config/vms/vms-f.cc: ...here.
23529 * config/vms/vms.c: Moved to...
23530 * config/vms/vms.cc: ...here.
23531 * config/vxworks-c.c: Moved to...
23532 * config/vxworks-c.cc: ...here.
23533 * config/vxworks.c: Moved to...
23534 * config/vxworks.cc: ...here.
23535 * config/winnt-c.c: Moved to...
23536 * config/winnt-c.cc: ...here.
23537 * config/xtensa/xtensa.c: Moved to...
23538 * config/xtensa/xtensa.cc: ...here.
23539 * context.c: Moved to...
23540 * context.cc: ...here.
23541 * convert.c: Moved to...
23542 * convert.cc: ...here.
23543 * coverage.c: Moved to...
23544 * coverage.cc: ...here.
23545 * cppbuiltin.c: Moved to...
23546 * cppbuiltin.cc: ...here.
23547 * cppdefault.c: Moved to...
23548 * cppdefault.cc: ...here.
23549 * cprop.c: Moved to...
23550 * cprop.cc: ...here.
23551 * cse.c: Moved to...
23552 * cse.cc: ...here.
23553 * cselib.c: Moved to...
23554 * cselib.cc: ...here.
23555 * ctfc.c: Moved to...
23556 * ctfc.cc: ...here.
23557 * ctfout.c: Moved to...
23558 * ctfout.cc: ...here.
23559 * data-streamer-in.c: Moved to...
23560 * data-streamer-in.cc: ...here.
23561 * data-streamer-out.c: Moved to...
23562 * data-streamer-out.cc: ...here.
23563 * data-streamer.c: Moved to...
23564 * data-streamer.cc: ...here.
23565 * dbgcnt.c: Moved to...
23566 * dbgcnt.cc: ...here.
23567 * dbxout.c: Moved to...
23568 * dbxout.cc: ...here.
23569 * dce.c: Moved to...
23570 * dce.cc: ...here.
23571 * ddg.c: Moved to...
23572 * ddg.cc: ...here.
23573 * debug.c: Moved to...
23574 * debug.cc: ...here.
23575 * df-core.c: Moved to...
23576 * df-core.cc: ...here.
23577 * df-problems.c: Moved to...
23578 * df-problems.cc: ...here.
23579 * df-scan.c: Moved to...
23580 * df-scan.cc: ...here.
23581 * dfp.c: Moved to...
23582 * dfp.cc: ...here.
23583 * diagnostic-color.c: Moved to...
23584 * diagnostic-color.cc: ...here.
23585 * diagnostic-show-locus.c: Moved to...
23586 * diagnostic-show-locus.cc: ...here.
23587 * diagnostic-spec.c: Moved to...
23588 * diagnostic-spec.cc: ...here.
23589 * diagnostic.c: Moved to...
23590 * diagnostic.cc: ...here.
23591 * dojump.c: Moved to...
23592 * dojump.cc: ...here.
23593 * dominance.c: Moved to...
23594 * dominance.cc: ...here.
23595 * domwalk.c: Moved to...
23596 * domwalk.cc: ...here.
23597 * double-int.c: Moved to...
23598 * double-int.cc: ...here.
23599 * dse.c: Moved to...
23600 * dse.cc: ...here.
23601 * dumpfile.c: Moved to...
23602 * dumpfile.cc: ...here.
23603 * dwarf2asm.c: Moved to...
23604 * dwarf2asm.cc: ...here.
23605 * dwarf2cfi.c: Moved to...
23606 * dwarf2cfi.cc: ...here.
23607 * dwarf2ctf.c: Moved to...
23608 * dwarf2ctf.cc: ...here.
23609 * dwarf2out.c: Moved to...
23610 * dwarf2out.cc: ...here.
23611 * early-remat.c: Moved to...
23612 * early-remat.cc: ...here.
23613 * edit-context.c: Moved to...
23614 * edit-context.cc: ...here.
23615 * emit-rtl.c: Moved to...
23616 * emit-rtl.cc: ...here.
23617 * errors.c: Moved to...
23618 * errors.cc: ...here.
23619 * et-forest.c: Moved to...
23620 * et-forest.cc: ...here.
23621 * except.c: Moved to...
23622 * except.cc: ...here.
23623 * explow.c: Moved to...
23624 * explow.cc: ...here.
23625 * expmed.c: Moved to...
23626 * expmed.cc: ...here.
23627 * expr.c: Moved to...
23628 * expr.cc: ...here.
23629 * fibonacci_heap.c: Moved to...
23630 * fibonacci_heap.cc: ...here.
23631 * file-find.c: Moved to...
23632 * file-find.cc: ...here.
23633 * file-prefix-map.c: Moved to...
23634 * file-prefix-map.cc: ...here.
23635 * final.c: Moved to...
23636 * final.cc: ...here.
23637 * fixed-value.c: Moved to...
23638 * fixed-value.cc: ...here.
23639 * fold-const-call.c: Moved to...
23640 * fold-const-call.cc: ...here.
23641 * fold-const.c: Moved to...
23642 * fold-const.cc: ...here.
23643 * fp-test.c: Moved to...
23644 * fp-test.cc: ...here.
23645 * function-tests.c: Moved to...
23646 * function-tests.cc: ...here.
23647 * function.c: Moved to...
23648 * function.cc: ...here.
23649 * fwprop.c: Moved to...
23650 * fwprop.cc: ...here.
23651 * gcc-ar.c: Moved to...
23652 * gcc-ar.cc: ...here.
23653 * gcc-main.c: Moved to...
23654 * gcc-main.cc: ...here.
23655 * gcc-rich-location.c: Moved to...
23656 * gcc-rich-location.cc: ...here.
23657 * gcc.c: Moved to...
23658 * gcc.cc: ...here.
23659 * gcov-dump.c: Moved to...
23660 * gcov-dump.cc: ...here.
23661 * gcov-io.c: Moved to...
23662 * gcov-io.cc: ...here.
23663 * gcov-tool.c: Moved to...
23664 * gcov-tool.cc: ...here.
23665 * gcov.c: Moved to...
23666 * gcov.cc: ...here.
23667 * gcse-common.c: Moved to...
23668 * gcse-common.cc: ...here.
23669 * gcse.c: Moved to...
23670 * gcse.cc: ...here.
23671 * genattr-common.c: Moved to...
23672 * genattr-common.cc: ...here.
23673 * genattr.c: Moved to...
23674 * genattr.cc: ...here.
23675 * genattrtab.c: Moved to...
23676 * genattrtab.cc: ...here.
23677 * genautomata.c: Moved to...
23678 * genautomata.cc: ...here.
23679 * gencfn-macros.c: Moved to...
23680 * gencfn-macros.cc: ...here.
23681 * gencheck.c: Moved to...
23682 * gencheck.cc: ...here.
23683 * genchecksum.c: Moved to...
23684 * genchecksum.cc: ...here.
23685 * gencodes.c: Moved to...
23686 * gencodes.cc: ...here.
23687 * genconditions.c: Moved to...
23688 * genconditions.cc: ...here.
23689 * genconfig.c: Moved to...
23690 * genconfig.cc: ...here.
23691 * genconstants.c: Moved to...
23692 * genconstants.cc: ...here.
23693 * genemit.c: Moved to...
23694 * genemit.cc: ...here.
23695 * genenums.c: Moved to...
23696 * genenums.cc: ...here.
23697 * generic-match-head.c: Moved to...
23698 * generic-match-head.cc: ...here.
23699 * genextract.c: Moved to...
23700 * genextract.cc: ...here.
23701 * genflags.c: Moved to...
23702 * genflags.cc: ...here.
23703 * gengenrtl.c: Moved to...
23704 * gengenrtl.cc: ...here.
23705 * gengtype-parse.c: Moved to...
23706 * gengtype-parse.cc: ...here.
23707 * gengtype-state.c: Moved to...
23708 * gengtype-state.cc: ...here.
23709 * gengtype.c: Moved to...
23710 * gengtype.cc: ...here.
23711 * genhooks.c: Moved to...
23712 * genhooks.cc: ...here.
23713 * genmatch.c: Moved to...
23714 * genmatch.cc: ...here.
23715 * genmddeps.c: Moved to...
23716 * genmddeps.cc: ...here.
23717 * genmddump.c: Moved to...
23718 * genmddump.cc: ...here.
23719 * genmodes.c: Moved to...
23720 * genmodes.cc: ...here.
23721 * genopinit.c: Moved to...
23722 * genopinit.cc: ...here.
23723 * genoutput.c: Moved to...
23724 * genoutput.cc: ...here.
23725 * genpeep.c: Moved to...
23726 * genpeep.cc: ...here.
23727 * genpreds.c: Moved to...
23728 * genpreds.cc: ...here.
23729 * genrecog.c: Moved to...
23730 * genrecog.cc: ...here.
23731 * gensupport.c: Moved to...
23732 * gensupport.cc: ...here.
23733 * gentarget-def.c: Moved to...
23734 * gentarget-def.cc: ...here.
23735 * genversion.c: Moved to...
23736 * genversion.cc: ...here.
23737 * ggc-common.c: Moved to...
23738 * ggc-common.cc: ...here.
23739 * ggc-none.c: Moved to...
23740 * ggc-none.cc: ...here.
23741 * ggc-page.c: Moved to...
23742 * ggc-page.cc: ...here.
23743 * ggc-tests.c: Moved to...
23744 * ggc-tests.cc: ...here.
23745 * gimple-builder.c: Moved to...
23746 * gimple-builder.cc: ...here.
23747 * gimple-expr.c: Moved to...
23748 * gimple-expr.cc: ...here.
23749 * gimple-fold.c: Moved to...
23750 * gimple-fold.cc: ...here.
23751 * gimple-iterator.c: Moved to...
23752 * gimple-iterator.cc: ...here.
23753 * gimple-laddress.c: Moved to...
23754 * gimple-laddress.cc: ...here.
23755 * gimple-loop-jam.c: Moved to...
23756 * gimple-loop-jam.cc: ...here.
23757 * gimple-low.c: Moved to...
23758 * gimple-low.cc: ...here.
23759 * gimple-match-head.c: Moved to...
23760 * gimple-match-head.cc: ...here.
23761 * gimple-pretty-print.c: Moved to...
23762 * gimple-pretty-print.cc: ...here.
23763 * gimple-ssa-backprop.c: Moved to...
23764 * gimple-ssa-backprop.cc: ...here.
23765 * gimple-ssa-evrp-analyze.c: Moved to...
23766 * gimple-ssa-evrp-analyze.cc: ...here.
23767 * gimple-ssa-evrp.c: Moved to...
23768 * gimple-ssa-evrp.cc: ...here.
23769 * gimple-ssa-isolate-paths.c: Moved to...
23770 * gimple-ssa-isolate-paths.cc: ...here.
23771 * gimple-ssa-nonnull-compare.c: Moved to...
23772 * gimple-ssa-nonnull-compare.cc: ...here.
23773 * gimple-ssa-split-paths.c: Moved to...
23774 * gimple-ssa-split-paths.cc: ...here.
23775 * gimple-ssa-sprintf.c: Moved to...
23776 * gimple-ssa-sprintf.cc: ...here.
23777 * gimple-ssa-store-merging.c: Moved to...
23778 * gimple-ssa-store-merging.cc: ...here.
23779 * gimple-ssa-strength-reduction.c: Moved to...
23780 * gimple-ssa-strength-reduction.cc: ...here.
23781 * gimple-ssa-warn-alloca.c: Moved to...
23782 * gimple-ssa-warn-alloca.cc: ...here.
23783 * gimple-ssa-warn-restrict.c: Moved to...
23784 * gimple-ssa-warn-restrict.cc: ...here.
23785 * gimple-streamer-in.c: Moved to...
23786 * gimple-streamer-in.cc: ...here.
23787 * gimple-streamer-out.c: Moved to...
23788 * gimple-streamer-out.cc: ...here.
23789 * gimple-walk.c: Moved to...
23790 * gimple-walk.cc: ...here.
23791 * gimple-warn-recursion.c: Moved to...
23792 * gimple-warn-recursion.cc: ...here.
23793 * gimple.c: Moved to...
23794 * gimple.cc: ...here.
23795 * gimplify-me.c: Moved to...
23796 * gimplify-me.cc: ...here.
23797 * gimplify.c: Moved to...
23798 * gimplify.cc: ...here.
23799 * godump.c: Moved to...
23800 * godump.cc: ...here.
23801 * graph.c: Moved to...
23802 * graph.cc: ...here.
23803 * graphds.c: Moved to...
23804 * graphds.cc: ...here.
23805 * graphite-dependences.c: Moved to...
23806 * graphite-dependences.cc: ...here.
23807 * graphite-isl-ast-to-gimple.c: Moved to...
23808 * graphite-isl-ast-to-gimple.cc: ...here.
23809 * graphite-optimize-isl.c: Moved to...
23810 * graphite-optimize-isl.cc: ...here.
23811 * graphite-poly.c: Moved to...
23812 * graphite-poly.cc: ...here.
23813 * graphite-scop-detection.c: Moved to...
23814 * graphite-scop-detection.cc: ...here.
23815 * graphite-sese-to-poly.c: Moved to...
23816 * graphite-sese-to-poly.cc: ...here.
23817 * graphite.c: Moved to...
23818 * graphite.cc: ...here.
23819 * haifa-sched.c: Moved to...
23820 * haifa-sched.cc: ...here.
23821 * hash-map-tests.c: Moved to...
23822 * hash-map-tests.cc: ...here.
23823 * hash-set-tests.c: Moved to...
23824 * hash-set-tests.cc: ...here.
23825 * hash-table.c: Moved to...
23826 * hash-table.cc: ...here.
23827 * hooks.c: Moved to...
23828 * hooks.cc: ...here.
23829 * host-default.c: Moved to...
23830 * host-default.cc: ...here.
23831 * hw-doloop.c: Moved to...
23832 * hw-doloop.cc: ...here.
23833 * hwint.c: Moved to...
23834 * hwint.cc: ...here.
23835 * ifcvt.c: Moved to...
23836 * ifcvt.cc: ...here.
23837 * inchash.c: Moved to...
23838 * inchash.cc: ...here.
23839 * incpath.c: Moved to...
23840 * incpath.cc: ...here.
23841 * init-regs.c: Moved to...
23842 * init-regs.cc: ...here.
23843 * input.c: Moved to...
23844 * input.cc: ...here.
23845 * internal-fn.c: Moved to...
23846 * internal-fn.cc: ...here.
23847 * intl.c: Moved to...
23848 * intl.cc: ...here.
23849 * ipa-comdats.c: Moved to...
23850 * ipa-comdats.cc: ...here.
23851 * ipa-cp.c: Moved to...
23852 * ipa-cp.cc: ...here.
23853 * ipa-devirt.c: Moved to...
23854 * ipa-devirt.cc: ...here.
23855 * ipa-fnsummary.c: Moved to...
23856 * ipa-fnsummary.cc: ...here.
23857 * ipa-icf-gimple.c: Moved to...
23858 * ipa-icf-gimple.cc: ...here.
23859 * ipa-icf.c: Moved to...
23860 * ipa-icf.cc: ...here.
23861 * ipa-inline-analysis.c: Moved to...
23862 * ipa-inline-analysis.cc: ...here.
23863 * ipa-inline-transform.c: Moved to...
23864 * ipa-inline-transform.cc: ...here.
23865 * ipa-inline.c: Moved to...
23866 * ipa-inline.cc: ...here.
23867 * ipa-modref-tree.c: Moved to...
23868 * ipa-modref-tree.cc: ...here.
23869 * ipa-modref.c: Moved to...
23870 * ipa-modref.cc: ...here.
23871 * ipa-param-manipulation.c: Moved to...
23872 * ipa-param-manipulation.cc: ...here.
23873 * ipa-polymorphic-call.c: Moved to...
23874 * ipa-polymorphic-call.cc: ...here.
23875 * ipa-predicate.c: Moved to...
23876 * ipa-predicate.cc: ...here.
23877 * ipa-profile.c: Moved to...
23878 * ipa-profile.cc: ...here.
23879 * ipa-prop.c: Moved to...
23880 * ipa-prop.cc: ...here.
23881 * ipa-pure-const.c: Moved to...
23882 * ipa-pure-const.cc: ...here.
23883 * ipa-ref.c: Moved to...
23884 * ipa-ref.cc: ...here.
23885 * ipa-reference.c: Moved to...
23886 * ipa-reference.cc: ...here.
23887 * ipa-split.c: Moved to...
23888 * ipa-split.cc: ...here.
23889 * ipa-sra.c: Moved to...
23890 * ipa-sra.cc: ...here.
23891 * ipa-utils.c: Moved to...
23892 * ipa-utils.cc: ...here.
23893 * ipa-visibility.c: Moved to...
23894 * ipa-visibility.cc: ...here.
23895 * ipa.c: Moved to...
23896 * ipa.cc: ...here.
23897 * ira-build.c: Moved to...
23898 * ira-build.cc: ...here.
23899 * ira-color.c: Moved to...
23900 * ira-color.cc: ...here.
23901 * ira-conflicts.c: Moved to...
23902 * ira-conflicts.cc: ...here.
23903 * ira-costs.c: Moved to...
23904 * ira-costs.cc: ...here.
23905 * ira-emit.c: Moved to...
23906 * ira-emit.cc: ...here.
23907 * ira-lives.c: Moved to...
23908 * ira-lives.cc: ...here.
23909 * ira.c: Moved to...
23910 * ira.cc: ...here.
23911 * jump.c: Moved to...
23912 * jump.cc: ...here.
23913 * langhooks.c: Moved to...
23914 * langhooks.cc: ...here.
23915 * lcm.c: Moved to...
23916 * lcm.cc: ...here.
23917 * lists.c: Moved to...
23918 * lists.cc: ...here.
23919 * loop-doloop.c: Moved to...
23920 * loop-doloop.cc: ...here.
23921 * loop-init.c: Moved to...
23922 * loop-init.cc: ...here.
23923 * loop-invariant.c: Moved to...
23924 * loop-invariant.cc: ...here.
23925 * loop-iv.c: Moved to...
23926 * loop-iv.cc: ...here.
23927 * loop-unroll.c: Moved to...
23928 * loop-unroll.cc: ...here.
23929 * lower-subreg.c: Moved to...
23930 * lower-subreg.cc: ...here.
23931 * lra-assigns.c: Moved to...
23932 * lra-assigns.cc: ...here.
23933 * lra-coalesce.c: Moved to...
23934 * lra-coalesce.cc: ...here.
23935 * lra-constraints.c: Moved to...
23936 * lra-constraints.cc: ...here.
23937 * lra-eliminations.c: Moved to...
23938 * lra-eliminations.cc: ...here.
23939 * lra-lives.c: Moved to...
23940 * lra-lives.cc: ...here.
23941 * lra-remat.c: Moved to...
23942 * lra-remat.cc: ...here.
23943 * lra-spills.c: Moved to...
23944 * lra-spills.cc: ...here.
23945 * lra.c: Moved to...
23946 * lra.cc: ...here.
23947 * lto-cgraph.c: Moved to...
23948 * lto-cgraph.cc: ...here.
23949 * lto-compress.c: Moved to...
23950 * lto-compress.cc: ...here.
23951 * lto-opts.c: Moved to...
23952 * lto-opts.cc: ...here.
23953 * lto-section-in.c: Moved to...
23954 * lto-section-in.cc: ...here.
23955 * lto-section-out.c: Moved to...
23956 * lto-section-out.cc: ...here.
23957 * lto-streamer-in.c: Moved to...
23958 * lto-streamer-in.cc: ...here.
23959 * lto-streamer-out.c: Moved to...
23960 * lto-streamer-out.cc: ...here.
23961 * lto-streamer.c: Moved to...
23962 * lto-streamer.cc: ...here.
23963 * lto-wrapper.c: Moved to...
23964 * lto-wrapper.cc: ...here.
23965 * main.c: Moved to...
23966 * main.cc: ...here.
23967 * mcf.c: Moved to...
23968 * mcf.cc: ...here.
23969 * mode-switching.c: Moved to...
23970 * mode-switching.cc: ...here.
23971 * modulo-sched.c: Moved to...
23972 * modulo-sched.cc: ...here.
23973 * multiple_target.c: Moved to...
23974 * multiple_target.cc: ...here.
23975 * omp-expand.c: Moved to...
23976 * omp-expand.cc: ...here.
23977 * omp-general.c: Moved to...
23978 * omp-general.cc: ...here.
23979 * omp-low.c: Moved to...
23980 * omp-low.cc: ...here.
23981 * omp-offload.c: Moved to...
23982 * omp-offload.cc: ...here.
23983 * omp-simd-clone.c: Moved to...
23984 * omp-simd-clone.cc: ...here.
23985 * opt-suggestions.c: Moved to...
23986 * opt-suggestions.cc: ...here.
23987 * optabs-libfuncs.c: Moved to...
23988 * optabs-libfuncs.cc: ...here.
23989 * optabs-query.c: Moved to...
23990 * optabs-query.cc: ...here.
23991 * optabs-tree.c: Moved to...
23992 * optabs-tree.cc: ...here.
23993 * optabs.c: Moved to...
23994 * optabs.cc: ...here.
23995 * opts-common.c: Moved to...
23996 * opts-common.cc: ...here.
23997 * opts-global.c: Moved to...
23998 * opts-global.cc: ...here.
23999 * opts.c: Moved to...
24000 * opts.cc: ...here.
24001 * passes.c: Moved to...
24002 * passes.cc: ...here.
24003 * plugin.c: Moved to...
24004 * plugin.cc: ...here.
24005 * postreload-gcse.c: Moved to...
24006 * postreload-gcse.cc: ...here.
24007 * postreload.c: Moved to...
24008 * postreload.cc: ...here.
24009 * predict.c: Moved to...
24010 * predict.cc: ...here.
24011 * prefix.c: Moved to...
24012 * prefix.cc: ...here.
24013 * pretty-print.c: Moved to...
24014 * pretty-print.cc: ...here.
24015 * print-rtl-function.c: Moved to...
24016 * print-rtl-function.cc: ...here.
24017 * print-rtl.c: Moved to...
24018 * print-rtl.cc: ...here.
24019 * print-tree.c: Moved to...
24020 * print-tree.cc: ...here.
24021 * profile-count.c: Moved to...
24022 * profile-count.cc: ...here.
24023 * profile.c: Moved to...
24024 * profile.cc: ...here.
24025 * read-md.c: Moved to...
24026 * read-md.cc: ...here.
24027 * read-rtl-function.c: Moved to...
24028 * read-rtl-function.cc: ...here.
24029 * read-rtl.c: Moved to...
24030 * read-rtl.cc: ...here.
24031 * real.c: Moved to...
24032 * real.cc: ...here.
24033 * realmpfr.c: Moved to...
24034 * realmpfr.cc: ...here.
24035 * recog.c: Moved to...
24036 * recog.cc: ...here.
24037 * ree.c: Moved to...
24038 * ree.cc: ...here.
24039 * reg-stack.c: Moved to...
24040 * reg-stack.cc: ...here.
24041 * regcprop.c: Moved to...
24042 * regcprop.cc: ...here.
24043 * reginfo.c: Moved to...
24044 * reginfo.cc: ...here.
24045 * regrename.c: Moved to...
24046 * regrename.cc: ...here.
24047 * regstat.c: Moved to...
24048 * regstat.cc: ...here.
24049 * reload.c: Moved to...
24050 * reload.cc: ...here.
24051 * reload1.c: Moved to...
24052 * reload1.cc: ...here.
24053 * reorg.c: Moved to...
24054 * reorg.cc: ...here.
24055 * resource.c: Moved to...
24056 * resource.cc: ...here.
24057 * rtl-error.c: Moved to...
24058 * rtl-error.cc: ...here.
24059 * rtl-tests.c: Moved to...
24060 * rtl-tests.cc: ...here.
24061 * rtl.c: Moved to...
24062 * rtl.cc: ...here.
24063 * rtlanal.c: Moved to...
24064 * rtlanal.cc: ...here.
24065 * rtlhash.c: Moved to...
24066 * rtlhash.cc: ...here.
24067 * rtlhooks.c: Moved to...
24068 * rtlhooks.cc: ...here.
24069 * rtx-vector-builder.c: Moved to...
24070 * rtx-vector-builder.cc: ...here.
24071 * run-rtl-passes.c: Moved to...
24072 * run-rtl-passes.cc: ...here.
24073 * sancov.c: Moved to...
24074 * sancov.cc: ...here.
24075 * sanopt.c: Moved to...
24076 * sanopt.cc: ...here.
24077 * sbitmap.c: Moved to...
24078 * sbitmap.cc: ...here.
24079 * sched-deps.c: Moved to...
24080 * sched-deps.cc: ...here.
24081 * sched-ebb.c: Moved to...
24082 * sched-ebb.cc: ...here.
24083 * sched-rgn.c: Moved to...
24084 * sched-rgn.cc: ...here.
24085 * sel-sched-dump.c: Moved to...
24086 * sel-sched-dump.cc: ...here.
24087 * sel-sched-ir.c: Moved to...
24088 * sel-sched-ir.cc: ...here.
24089 * sel-sched.c: Moved to...
24090 * sel-sched.cc: ...here.
24091 * selftest-diagnostic.c: Moved to...
24092 * selftest-diagnostic.cc: ...here.
24093 * selftest-rtl.c: Moved to...
24094 * selftest-rtl.cc: ...here.
24095 * selftest-run-tests.c: Moved to...
24096 * selftest-run-tests.cc: ...here.
24097 * selftest.c: Moved to...
24098 * selftest.cc: ...here.
24099 * sese.c: Moved to...
24100 * sese.cc: ...here.
24101 * shrink-wrap.c: Moved to...
24102 * shrink-wrap.cc: ...here.
24103 * simplify-rtx.c: Moved to...
24104 * simplify-rtx.cc: ...here.
24105 * sparseset.c: Moved to...
24106 * sparseset.cc: ...here.
24107 * spellcheck-tree.c: Moved to...
24108 * spellcheck-tree.cc: ...here.
24109 * spellcheck.c: Moved to...
24110 * spellcheck.cc: ...here.
24111 * sreal.c: Moved to...
24112 * sreal.cc: ...here.
24113 * stack-ptr-mod.c: Moved to...
24114 * stack-ptr-mod.cc: ...here.
24115 * statistics.c: Moved to...
24116 * statistics.cc: ...here.
24117 * stmt.c: Moved to...
24118 * stmt.cc: ...here.
24119 * stor-layout.c: Moved to...
24120 * stor-layout.cc: ...here.
24121 * store-motion.c: Moved to...
24122 * store-motion.cc: ...here.
24123 * streamer-hooks.c: Moved to...
24124 * streamer-hooks.cc: ...here.
24125 * stringpool.c: Moved to...
24126 * stringpool.cc: ...here.
24127 * substring-locations.c: Moved to...
24128 * substring-locations.cc: ...here.
24129 * symtab.c: Moved to...
24130 * symtab.cc: ...here.
24131 * target-globals.c: Moved to...
24132 * target-globals.cc: ...here.
24133 * targhooks.c: Moved to...
24134 * targhooks.cc: ...here.
24135 * timevar.c: Moved to...
24136 * timevar.cc: ...here.
24137 * toplev.c: Moved to...
24138 * toplev.cc: ...here.
24139 * tracer.c: Moved to...
24140 * tracer.cc: ...here.
24141 * trans-mem.c: Moved to...
24142 * trans-mem.cc: ...here.
24143 * tree-affine.c: Moved to...
24144 * tree-affine.cc: ...here.
24145 * tree-call-cdce.c: Moved to...
24146 * tree-call-cdce.cc: ...here.
24147 * tree-cfg.c: Moved to...
24148 * tree-cfg.cc: ...here.
24149 * tree-cfgcleanup.c: Moved to...
24150 * tree-cfgcleanup.cc: ...here.
24151 * tree-chrec.c: Moved to...
24152 * tree-chrec.cc: ...here.
24153 * tree-complex.c: Moved to...
24154 * tree-complex.cc: ...here.
24155 * tree-data-ref.c: Moved to...
24156 * tree-data-ref.cc: ...here.
24157 * tree-dfa.c: Moved to...
24158 * tree-dfa.cc: ...here.
24159 * tree-diagnostic.c: Moved to...
24160 * tree-diagnostic.cc: ...here.
24161 * tree-dump.c: Moved to...
24162 * tree-dump.cc: ...here.
24163 * tree-eh.c: Moved to...
24164 * tree-eh.cc: ...here.
24165 * tree-emutls.c: Moved to...
24166 * tree-emutls.cc: ...here.
24167 * tree-if-conv.c: Moved to...
24168 * tree-if-conv.cc: ...here.
24169 * tree-inline.c: Moved to...
24170 * tree-inline.cc: ...here.
24171 * tree-into-ssa.c: Moved to...
24172 * tree-into-ssa.cc: ...here.
24173 * tree-iterator.c: Moved to...
24174 * tree-iterator.cc: ...here.
24175 * tree-loop-distribution.c: Moved to...
24176 * tree-loop-distribution.cc: ...here.
24177 * tree-nested.c: Moved to...
24178 * tree-nested.cc: ...here.
24179 * tree-nrv.c: Moved to...
24180 * tree-nrv.cc: ...here.
24181 * tree-object-size.c: Moved to...
24182 * tree-object-size.cc: ...here.
24183 * tree-outof-ssa.c: Moved to...
24184 * tree-outof-ssa.cc: ...here.
24185 * tree-parloops.c: Moved to...
24186 * tree-parloops.cc: ...here.
24187 * tree-phinodes.c: Moved to...
24188 * tree-phinodes.cc: ...here.
24189 * tree-predcom.c: Moved to...
24190 * tree-predcom.cc: ...here.
24191 * tree-pretty-print.c: Moved to...
24192 * tree-pretty-print.cc: ...here.
24193 * tree-profile.c: Moved to...
24194 * tree-profile.cc: ...here.
24195 * tree-scalar-evolution.c: Moved to...
24196 * tree-scalar-evolution.cc: ...here.
24197 * tree-sra.c: Moved to...
24198 * tree-sra.cc: ...here.
24199 * tree-ssa-address.c: Moved to...
24200 * tree-ssa-address.cc: ...here.
24201 * tree-ssa-alias.c: Moved to...
24202 * tree-ssa-alias.cc: ...here.
24203 * tree-ssa-ccp.c: Moved to...
24204 * tree-ssa-ccp.cc: ...here.
24205 * tree-ssa-coalesce.c: Moved to...
24206 * tree-ssa-coalesce.cc: ...here.
24207 * tree-ssa-copy.c: Moved to...
24208 * tree-ssa-copy.cc: ...here.
24209 * tree-ssa-dce.c: Moved to...
24210 * tree-ssa-dce.cc: ...here.
24211 * tree-ssa-dom.c: Moved to...
24212 * tree-ssa-dom.cc: ...here.
24213 * tree-ssa-dse.c: Moved to...
24214 * tree-ssa-dse.cc: ...here.
24215 * tree-ssa-forwprop.c: Moved to...
24216 * tree-ssa-forwprop.cc: ...here.
24217 * tree-ssa-ifcombine.c: Moved to...
24218 * tree-ssa-ifcombine.cc: ...here.
24219 * tree-ssa-live.c: Moved to...
24220 * tree-ssa-live.cc: ...here.
24221 * tree-ssa-loop-ch.c: Moved to...
24222 * tree-ssa-loop-ch.cc: ...here.
24223 * tree-ssa-loop-im.c: Moved to...
24224 * tree-ssa-loop-im.cc: ...here.
24225 * tree-ssa-loop-ivcanon.c: Moved to...
24226 * tree-ssa-loop-ivcanon.cc: ...here.
24227 * tree-ssa-loop-ivopts.c: Moved to...
24228 * tree-ssa-loop-ivopts.cc: ...here.
24229 * tree-ssa-loop-manip.c: Moved to...
24230 * tree-ssa-loop-manip.cc: ...here.
24231 * tree-ssa-loop-niter.c: Moved to...
24232 * tree-ssa-loop-niter.cc: ...here.
24233 * tree-ssa-loop-prefetch.c: Moved to...
24234 * tree-ssa-loop-prefetch.cc: ...here.
24235 * tree-ssa-loop-split.c: Moved to...
24236 * tree-ssa-loop-split.cc: ...here.
24237 * tree-ssa-loop-unswitch.c: Moved to...
24238 * tree-ssa-loop-unswitch.cc: ...here.
24239 * tree-ssa-loop.c: Moved to...
24240 * tree-ssa-loop.cc: ...here.
24241 * tree-ssa-math-opts.c: Moved to...
24242 * tree-ssa-math-opts.cc: ...here.
24243 * tree-ssa-operands.c: Moved to...
24244 * tree-ssa-operands.cc: ...here.
24245 * tree-ssa-phiopt.c: Moved to...
24246 * tree-ssa-phiopt.cc: ...here.
24247 * tree-ssa-phiprop.c: Moved to...
24248 * tree-ssa-phiprop.cc: ...here.
24249 * tree-ssa-pre.c: Moved to...
24250 * tree-ssa-pre.cc: ...here.
24251 * tree-ssa-propagate.c: Moved to...
24252 * tree-ssa-propagate.cc: ...here.
24253 * tree-ssa-reassoc.c: Moved to...
24254 * tree-ssa-reassoc.cc: ...here.
24255 * tree-ssa-sccvn.c: Moved to...
24256 * tree-ssa-sccvn.cc: ...here.
24257 * tree-ssa-scopedtables.c: Moved to...
24258 * tree-ssa-scopedtables.cc: ...here.
24259 * tree-ssa-sink.c: Moved to...
24260 * tree-ssa-sink.cc: ...here.
24261 * tree-ssa-strlen.c: Moved to...
24262 * tree-ssa-strlen.cc: ...here.
24263 * tree-ssa-structalias.c: Moved to...
24264 * tree-ssa-structalias.cc: ...here.
24265 * tree-ssa-tail-merge.c: Moved to...
24266 * tree-ssa-tail-merge.cc: ...here.
24267 * tree-ssa-ter.c: Moved to...
24268 * tree-ssa-ter.cc: ...here.
24269 * tree-ssa-threadbackward.c: Moved to...
24270 * tree-ssa-threadbackward.cc: ...here.
24271 * tree-ssa-threadedge.c: Moved to...
24272 * tree-ssa-threadedge.cc: ...here.
24273 * tree-ssa-threadupdate.c: Moved to...
24274 * tree-ssa-threadupdate.cc: ...here.
24275 * tree-ssa-uncprop.c: Moved to...
24276 * tree-ssa-uncprop.cc: ...here.
24277 * tree-ssa-uninit.c: Moved to...
24278 * tree-ssa-uninit.cc: ...here.
24279 * tree-ssa.c: Moved to...
24280 * tree-ssa.cc: ...here.
24281 * tree-ssanames.c: Moved to...
24282 * tree-ssanames.cc: ...here.
24283 * tree-stdarg.c: Moved to...
24284 * tree-stdarg.cc: ...here.
24285 * tree-streamer-in.c: Moved to...
24286 * tree-streamer-in.cc: ...here.
24287 * tree-streamer-out.c: Moved to...
24288 * tree-streamer-out.cc: ...here.
24289 * tree-streamer.c: Moved to...
24290 * tree-streamer.cc: ...here.
24291 * tree-switch-conversion.c: Moved to...
24292 * tree-switch-conversion.cc: ...here.
24293 * tree-tailcall.c: Moved to...
24294 * tree-tailcall.cc: ...here.
24295 * tree-vect-data-refs.c: Moved to...
24296 * tree-vect-data-refs.cc: ...here.
24297 * tree-vect-generic.c: Moved to...
24298 * tree-vect-generic.cc: ...here.
24299 * tree-vect-loop-manip.c: Moved to...
24300 * tree-vect-loop-manip.cc: ...here.
24301 * tree-vect-loop.c: Moved to...
24302 * tree-vect-loop.cc: ...here.
24303 * tree-vect-patterns.c: Moved to...
24304 * tree-vect-patterns.cc: ...here.
24305 * tree-vect-slp-patterns.c: Moved to...
24306 * tree-vect-slp-patterns.cc: ...here.
24307 * tree-vect-slp.c: Moved to...
24308 * tree-vect-slp.cc: ...here.
24309 * tree-vect-stmts.c: Moved to...
24310 * tree-vect-stmts.cc: ...here.
24311 * tree-vector-builder.c: Moved to...
24312 * tree-vector-builder.cc: ...here.
24313 * tree-vectorizer.c: Moved to...
24314 * tree-vectorizer.cc: ...here.
24315 * tree-vrp.c: Moved to...
24316 * tree-vrp.cc: ...here.
24317 * tree.c: Moved to...
24318 * tree.cc: ...here.
24319 * tsan.c: Moved to...
24320 * tsan.cc: ...here.
24321 * typed-splay-tree.c: Moved to...
24322 * typed-splay-tree.cc: ...here.
24323 * ubsan.c: Moved to...
24324 * ubsan.cc: ...here.
24325 * valtrack.c: Moved to...
24326 * valtrack.cc: ...here.
24327 * value-prof.c: Moved to...
24328 * value-prof.cc: ...here.
24329 * var-tracking.c: Moved to...
24330 * var-tracking.cc: ...here.
24331 * varasm.c: Moved to...
24332 * varasm.cc: ...here.
24333 * varpool.c: Moved to...
24334 * varpool.cc: ...here.
24335 * vec-perm-indices.c: Moved to...
24336 * vec-perm-indices.cc: ...here.
24337 * vec.c: Moved to...
24338 * vec.cc: ...here.
24339 * vmsdbgout.c: Moved to...
24340 * vmsdbgout.cc: ...here.
24341 * vr-values.c: Moved to...
24342 * vr-values.cc: ...here.
24343 * vtable-verify.c: Moved to...
24344 * vtable-verify.cc: ...here.
24345 * web.c: Moved to...
24346 * web.cc: ...here.
24347 * xcoffout.c: Moved to...
24348 * xcoffout.cc: ...here.
24349
24350 2022-01-17 qing zhao <qing.zhao@oracle.com>
24351
24352 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
24353 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
24354 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
24355 specially.
24356 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
24357 (warn_uninitialized_vars): Likewise.
24358 (warn_uninitialized_phi): Likewise.
24359
24360 2022-01-17 Jason Merrill <jason@redhat.com>
24361
24362 * diagnostic.h (struct diagnostic_context): Add includes_seen.
24363 * diagnostic.c (diagnostic_initialize): Initialize it.
24364 (diagnostic_finish): Clean it up.
24365 (includes_seen): New function.
24366 (diagnostic_report_current_module): Use it.
24367
24368 2022-01-17 Richard Biener <rguenther@suse.de>
24369
24370 PR middle-end/101292
24371 * diagnostic-spec.c (copy_warning): Make sure to not
24372 reference old hashtable content on possible resize.
24373 * warning-control.cc (copy_warning): Likewise.
24374
24375 2022-01-17 Jakub Jelinek <jakub@redhat.com>
24376
24377 PR target/103973
24378 * tree-cfg.h (cond_only_block_p): Declare.
24379 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
24380 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
24381 * optabs.def (spaceship_optab): New optab.
24382 * internal-fn.def (SPACESHIP): New internal function.
24383 * internal-fn.h (expand_SPACESHIP): Declare.
24384 * internal-fn.c (expand_PHI): Formatting fix.
24385 (expand_SPACESHIP): New function.
24386 * tree-ssa-math-opts.c (optimize_spaceship): New function.
24387 (math_opts_dom_walker::after_dom_children): Use it.
24388 * config/i386/i386.md (spaceship<mode>3): New define_expand.
24389 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
24390 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
24391 * doc/md.texi (spaceship@var{m}3): Document.
24392
24393 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
24394
24395 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
24396 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
24397 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
24398 known constant values to simplify code.
24399
24400 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
24401
24402 PR target/103124
24403 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
24404
24405 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
24406
24407 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
24408 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
24409 Insert zero-idiom in output template when attr enabled, set new attribute to
24410 true for non-mask/maskz insn.
24411 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
24412 Likewise.
24413 (avx512dq_mul<mode>3<mask_name>): Likewise.
24414 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
24415 (avx2_perm<mode>_1<mask_name>): Likewise.
24416 (avx512f_perm<mode>_1<mask_name>): Likewise.
24417 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
24418 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
24419 Likewise.
24420 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
24421 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
24422 Likewise.
24423 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
24424 subst_attr.
24425 (mask4_dest_false_dep_for_glc_cond): Likewise.
24426 (mask6_dest_false_dep_for_glc_cond): Likewise.
24427 (mask10_dest_false_dep_for_glc_cond): Likewise.
24428 (maskc_dest_false_dep_for_glc_cond): Likewise.
24429 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
24430 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
24431 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
24432 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
24433
24434 2022-01-15 Martin Sebor <msebor@redhat.com>
24435
24436 PR c/63272
24437 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
24438 -Wdangling-pointer.
24439 * doc/invoke.texi (-Wdangling-pointer): Document new option.
24440 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
24441 (pass_waccess::check_pointer_uses): New function.
24442 (pass_waccess::gimple_call_return_arg): New function.
24443 (pass_waccess::gimple_call_return_arg_ref): New function.
24444 (pass_waccess::check_call_dangling): New function.
24445 (pass_waccess::check_dangling_uses): New function overloads.
24446 (pass_waccess::check_dangling_stores): New function.
24447 (pass_waccess::check_dangling_stores): New function.
24448 (pass_waccess::m_clobbers): New data member.
24449 (pass_waccess::m_func): New data member.
24450 (pass_waccess::m_run_number): New data member.
24451 (pass_waccess::m_check_dangling_p): New data member.
24452 (pass_waccess::check_alloca): Check m_early_checks_p.
24453 (pass_waccess::check_alloc_size_call): Same.
24454 (pass_waccess::check_strcat): Same.
24455 (pass_waccess::check_strncat): Same.
24456 (pass_waccess::check_stxcpy): Same.
24457 (pass_waccess::check_stxncpy): Same.
24458 (pass_waccess::check_strncmp): Same.
24459 (pass_waccess::check_memop_access): Same.
24460 (pass_waccess::check_read_access): Same.
24461 (pass_waccess::check_builtin): Call check_pointer_uses.
24462 (pass_waccess::warn_invalid_pointer): Add arguments.
24463 (is_auto_decl): New function.
24464 (pass_waccess::check_stmt): New function.
24465 (pass_waccess::check_block): Call check_stmt.
24466 (pass_waccess::execute): Call check_dangling_uses,
24467 check_dangling_stores. Empty m_clobbers.
24468 * passes.def (pass_warn_access): Invoke pass two more times.
24469
24470 2022-01-15 Martin Sebor <msebor@redhat.com>
24471
24472 PR tree-optimization/80532
24473 * common.opt (-Wuse-after-free): New options.
24474 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
24475 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
24476 * diagnostic-spec.h (NW_DANGLING): New enumerator.
24477 * doc/invoke.texi (-Wuse-after-free): Document new option.
24478 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
24479 (pass_waccess::check_call_access): ...to this.
24480 (pass_waccess::check): Rename...
24481 (pass_waccess::check_block): ...to this.
24482 (pass_waccess::check_pointer_uses): New function.
24483 (pass_waccess::gimple_call_return_arg): New function.
24484 (pass_waccess::warn_invalid_pointer): New function.
24485 (pass_waccess::check_builtin): Handle free and realloc.
24486 (gimple_use_after_inval_p): New function.
24487 (get_realloc_lhs): New function.
24488 (maybe_warn_mismatched_realloc): New function.
24489 (pointers_related_p): New function.
24490 (pass_waccess::check_call): Call check_pointer_uses.
24491 (pass_waccess::execute): Compute and free dominance info.
24492
24493 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
24494
24495 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
24496 expand_simple_unop and expand_simple_binop instead of manually
24497 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
24498 consistently. Eliminate common subexpressions and simplify code.
24499 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
24500 (<any_logic:code><MODEF:mode>3): Make public.
24501
24502 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
24503
24504 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
24505 reverse flag as "reverse" for the sake of consistency.
24506 * ipa-sra.c: Fix copyright year.
24507 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
24508 (dump_isra_access): Tweak dump line.
24509 (isra_write_node_summary): Write the reverse flag.
24510 (isra_read_node_info): Read it.
24511 (pull_accesses_from_callee): Test its consistency and copy it.
24512
24513 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
24514
24515 PR middle-end/104026
24516 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
24517 partial_load_store_bias.
24518
24519 2022-01-14 Martin Sebor <msebor@redhat.com>
24520
24521 PR middle-end/101475
24522 * pointer-query.cc (handle_component_ref): Use the size of
24523 the enclosing object if it's smaller than the member.
24524
24525 2022-01-14 Martin Liska <mliska@suse.cz>
24526
24527 * configure: Regenerate.
24528
24529 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
24530
24531 * config/i386/i386.md (*add<mode>_1_slp"):
24532 Mark alternative 1 output operand earlyclobbered.
24533 (*sub<mode>_1_slp): Ditto.
24534 (*and<mode>_1_slp): Ditto.
24535 (*<code><mode>_1_slp): Ditto.
24536 (*neg<mode>_1_slp): Ditto.
24537 (*one_cmpl<mode>_1_slp): Ditto.
24538 (*ashl<mode>3_1_slp): Ditto.
24539 (*<insn><mode>3_1_slp): Ditto.
24540 (*<insn><mode>3_1_slp): Ditto.
24541
24542 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
24543
24544 PR tree-optimization/104015
24545 * tree-vect-loop.c (vect_analyze_loop): Check
24546 param_vect_partial_vector_usage for supports_partial_vectors.
24547
24548 2022-01-14 Jakub Jelinek <jakub@redhat.com>
24549
24550 PR c++/89074
24551 * fold-const.c (address_compare): Punt on comparison of address of
24552 one object with address of end of another object if
24553 folding_initializer.
24554
24555 2022-01-14 Jakub Jelinek <jakub@redhat.com>
24556
24557 PR target/98737
24558 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
24559 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
24560 and __atomic_op_fetch (p, x, y) iop x into
24561 __atomic_fetch_op (p, x, y).
24562
24563 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
24564
24565 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
24566 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
24567 (INCOMING_RETURN_ADDR_RTX): Likewise.
24568 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
24569
24570 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
24571
24572 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
24573 computin checking accumulator regs.
24574 (arc_expand_prologue): Update comments.
24575 (arc_expand_epilogue): Likewise.
24576
24577 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
24578 Uroš Bizjak <ubizjak@gmail.com>
24579
24580 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
24581 (ix86_expand_ti_to_v1ti): Use force_reg.
24582 (ix86_expand_v1ti_shift): Use force_reg.
24583 (ix86_expand_v1ti_rotate): Use force_reg.
24584 (ix86_expand_v1ti_ashiftrt): Provide new three operation
24585 implementations for shifts by 111..126 bits. Use force_reg.
24586
24587 2022-01-14 Martin Liska <mliska@suse.cz>
24588
24589 * common/config/arm/arm-common.c (arm_target_mode): Fix
24590 warning: unterminated quoting directive [-Wformat=].
24591
24592 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
24593
24594 PR tree-optimization/104009
24595 * tree-object-size.c (compute_builtin_object_size): Bail out on
24596 negative offset.
24597 (plus_stmt_object_size): Return maximum of wholesize and minimum
24598 of 0 for negative offset.
24599
24600 2022-01-14 liuhongt <hongtao.liu@intel.com>
24601
24602 PR target/104001
24603 PR target/94790
24604 PR target/104014
24605 * config/i386/i386.md (*xor2andn): Refine predicate of
24606 operands[0] from nonimmediate_operand to
24607 register_operand, remove TARGET_AVX512BW from condition.
24608
24609 2022-01-14 David Malcolm <dmalcolm@redhat.com>
24610
24611 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
24612 be used on field decls.
24613 (Common Function Attributes): Add entry on "tainted_args" attribute.
24614
24615 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
24616 Jason Merrill <jason@redhat.com>
24617
24618 PR c++/70417
24619 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
24620
24621 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
24622
24623 PR target/103861
24624 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
24625 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
24626 * config/i386/mmx.md (<any_shift:insn>v2qi):
24627 New insn_and_split pattern.
24628
24629 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
24630
24631 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
24632 (expand_partial_store_optab_fn): Likewise.
24633 (internal_len_load_store_bias): New function.
24634 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
24635 (internal_len_load_store_bias): New function.
24636 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
24637 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
24638 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
24639 (vect_estimate_min_profitable_iters): Account for bias.
24640 (vect_get_loop_len): Add bias-adjusted length.
24641 * tree-vect-stmts.c (vectorizable_store): Use.
24642 (vectorizable_load): Use.
24643 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
24644 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
24645 * config/rs6000/vsx.md: Use const0 bias predicate.
24646 * doc/md.texi: Document bias value.
24647
24648 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
24649
24650 PR tree-optimization/83072
24651 PR tree-optimization/83073
24652 PR tree-optimization/97909
24653 * fold-const.c (expr_not_equal_to): Use a multi-range class.
24654
24655 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
24656
24657 PR tree-optimization/96707
24658 * range-op.cc (operator_rshift::lhs_op1_relation): New.
24659
24660 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
24661
24662 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
24663 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
24664 (negv2qi splitters): Use lowpart_subreg instead of
24665 gen_lowpart to create subreg.
24666 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
24667 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
24668 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
24669 gen_lowpart to create subreg.
24670 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
24671
24672 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
24673
24674 PR target/104003
24675 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
24676
24677 2022-01-13 Martin Liska <mliska@suse.cz>
24678
24679 * common/config/arm/arm-common.c (arm_target_mode): Wrap
24680 keywords with %<, %> and remove trailing punctuation char.
24681 (arm_canon_arch_option_1): Likewise.
24682 (arm_asm_auto_mfpu): Likewise.
24683 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
24684 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
24685 (use_vfp_abi): Likewise.
24686 (aapcs_vfp_is_call_or_return_candidate): Likewise.
24687 (arm_handle_cmse_nonsecure_entry): Likewise.
24688 (arm_handle_cmse_nonsecure_call): Likewise.
24689 (thumb1_md_asm_adjust): Likewise.
24690
24691 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
24692
24693 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
24694 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
24695 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
24696 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
24697 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
24698 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
24699 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
24700 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
24701 macro.
24702
24703 2022-01-13 Jakub Jelinek <jakub@redhat.com>
24704
24705 PR tree-optimization/103989
24706 * tree-inline.c (setup_one_parameter): Don't copy parms with
24707 empty type.
24708
24709 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
24710
24711 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
24712 'TYPE_ADDR_SPACE' for offloading.
24713 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
24714 'TYPE_ADDR_SPACE' for offloading.
24715
24716 2022-01-13 Julian Brown <julian@codesourcery.com>
24717 Thomas Schwinge <thomas@codesourcery.com>
24718
24719 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
24720 of...
24721 (add_async_clauses_and_wait): ...here. Call new outlined function.
24722 (decompose_kernels_region_body): Add wait at the end of
24723 explicitly-asynchronous kernels regions.
24724
24725 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
24726
24727 PR middle-end/100280
24728 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
24729 Mark variables used in synthesized data clauses as addressable.
24730
24731 2022-01-13 Martin Liska <mliska@suse.cz>
24732
24733 * config/epiphany/epiphany.c (epiphany_mode_priority):
24734 Use gcc_unreachable for not handled cases.
24735
24736 2022-01-13 Martin Liska <mliska@suse.cz>
24737
24738 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
24739 Use %qs format specifier.
24740 (epiphany_override_options): Wrap keyword in %<, %>.
24741
24742 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
24743
24744 PR target/94790
24745 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
24746
24747 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
24748
24749 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
24750
24751 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
24752
24753 PR target/100637
24754 PR target/103861
24755 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
24756 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
24757 when constructing vector logic RTXes.
24758 (expand_vec_perm_pshufb2): Ditto.
24759 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
24760 (<plusminus:insn>v2qi3): Ditto.
24761 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
24762 (vcondu<mode><mode>): Ditto.
24763 (vcond_mask_<mode><mode>): Ditto.
24764 (one_cmpl<VI_32:mode>2): Remove expander.
24765 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
24766 Use VI_16_32 mode iterator.
24767 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
24768 Use lowpart_subreg instead of gen_lowpart to create subreg.
24769 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
24770 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
24771 Disparage GPR alternative a bit. Add CC clobber.
24772 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
24773 Use lowpart_subreg instead of gen_lowpart to create subreg.
24774 (*<any_logic:code><VI_16_32:mode>3): Merge from
24775 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
24776 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
24777 Add CC clobber.
24778 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
24779 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
24780
24781 2022-01-12 Clément Chigot <clement.chigot@atos.net>
24782
24783 * configure.ac: Check sizeof ino_t and dev_t.
24784 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
24785 syscall being able to handle 64bit inodes.
24786 * config.in: Regenerate.
24787 * configure: Regenerate.
24788 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
24789 (remove_duplicates): Use it.
24790
24791 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
24792
24793 PR tree-optimization/103551
24794 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
24795
24796 2022-01-12 Richard Biener <rguenther@suse.de>
24797
24798 PR tree-optimization/103990
24799 * tree-pass.h (tail_merge_optimize): Drop unused argument.
24800 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
24801 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
24802 and adjust call to tail_merge_optimize.
24803
24804 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
24805
24806 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
24807 does not add autovectorize_vector_modes.
24808
24809 2022-01-12 Martin Liska <mliska@suse.cz>
24810
24811 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
24812 %qs where possible.
24813 (aarch64_parse_sve_width_string): Likewise.
24814 (aarch64_override_options_internal): Likewise.
24815 (aarch64_print_hint_for_extensions): Likewise.
24816 (aarch64_validate_sls_mitigation): Likewise.
24817 (aarch64_handle_attr_arch): Likewise.
24818 (aarch64_handle_attr_cpu): Likewise.
24819 (aarch64_handle_attr_tune): Likewise.
24820 (aarch64_handle_attr_isa_flags): Likewise.
24821
24822 2022-01-12 Martin Liska <mliska@suse.cz>
24823
24824 * config.gcc: Include elfos.h before ${tm_file}.
24825
24826 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
24827
24828 * config/cris/cris.c: Quote identifiers in parameters to error
24829 and internal_error, and remove extraneous spaces with punctuation.
24830 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
24831 expression to internal_error, pass it as a parameter instead of
24832 appending it to the format part.
24833
24834 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
24835
24836 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
24837 parameter to as_a.
24838
24839 2022-01-11 qing zhao <qing.zhao@oracle.com>
24840
24841 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
24842 Change the 3rd argument of function .DEFERRED_INIT to the name of the
24843 decl.
24844 (gimplify_decl_expr): Delete the 3rd argument when call
24845 gimple_add_init_for_auto_var.
24846 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
24847 the 3rd argument change of function .DEFERRED_INIT.
24848 * tree-cfg.c (verify_gimple_call): Update comments and verification
24849 to reflect the 3rd argument change of function .DEFERRED_INIT.
24850 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
24851 (sra_modify_deferred_init): Change the 3rd argument of function
24852 .DEFERRED_INIT to the name of the decl.
24853
24854 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
24855
24856 * flag-types.h (enum gfc_convert): Add flags for
24857 conversion.
24858
24859 2022-01-11 Michael Meissner <meissner@the-meissners.org>
24860
24861 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
24862 checks for only C/C++ front ends before allowing the long double
24863 format to change without a warning.
24864
24865 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
24866
24867 PR rtl-optimization/103974
24868 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
24869 extra argument, default true, that says whether old-reload
24870 targets should be excluded.
24871 * ira-color.c (color_pass): Pass false.
24872
24873 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
24874
24875 PR target/103861
24876 * config/i386/mmx.md (vcond<mode><mode>):
24877 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
24878 (vcondu<mode><mode>): Ditto.
24879 (vcond_mask_<mode><mode>): Ditto.
24880 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
24881 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
24882 Use VI_16_32 mode iterator.
24883 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
24884 Update for rename. Handle V2QImode.
24885 (expand_vec_perm_blend): Update for rename.
24886
24887 2022-01-11 Jakub Jelinek <jakub@redhat.com>
24888
24889 PR c++/101597
24890 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
24891
24892 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
24893
24894 PR middle-end/70090
24895 * tree-object-size.c (size_valid_p): New function.
24896 (size_for_offset): Remove OFFSET constness assertion.
24897 (addr_object_size): Build dynamic expressions for object
24898 sizes and use size_valid_p to decide if it is valid for the
24899 given OBJECT_SIZE_TYPE.
24900 (compute_builtin_object_size): Allow dynamic offsets when
24901 computing size at O0.
24902 (call_object_size): Call size_valid_p.
24903 (plus_stmt_object_size): Allow non-constant offset and use
24904 size_valid_p to decide if it is valid for the given
24905 OBJECT_SIZE_TYPE.
24906
24907 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
24908
24909 PR middle-end/70090
24910 * tree-object-size.c (alloc_object_size): Make and return
24911 non-constant size expression.
24912 (call_object_size): Return expression or unknown based on
24913 whether dynamic object size is requested.
24914
24915 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
24916
24917 PR middle-end/70090
24918 * tree-object-size.c: Include tree-dfa.h.
24919 (parm_object_size): New function.
24920 (collect_object_sizes_for): Call it.
24921
24922 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
24923
24924 PR middle-end/70090
24925 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
24926 expressions.
24927 * tree-object-size.c: Include gimplify-me.h.
24928 (struct object_size_info): New member UNKNOWNS.
24929 (size_initval_p, size_usable_p, object_sizes_get_raw): New
24930 functions.
24931 (object_sizes_get): Return suitable gimple variable for
24932 object size.
24933 (bundle_sizes): New function.
24934 (object_sizes_set): Use it and handle dynamic object size
24935 expressions.
24936 (object_sizes_set_temp): New function.
24937 (size_for_offset): Adjust for dynamic size expressions.
24938 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
24939 New functions.
24940 (compute_builtin_object_size): Call gimplify_size_expressions
24941 for OST_DYNAMIC.
24942 (dynamic_object_size): New function.
24943 (cond_expr_object_size): Use it.
24944 (phi_dynamic_object_size): New function.
24945 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
24946 accommodate dynamic object sizes.
24947
24948 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
24949 Jakub Jelinek <jakub@redhat.com>
24950
24951 PR tree-optimization/103961
24952 * tree-object-size.c (plus_stmt_object_size): Always avoid
24953 computing offset for -1 size.
24954
24955 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
24956
24957 PR tree-optimization/103821
24958 * range-op.cc (range_operator::fold_range): Only do precise ranges
24959 when there are not too many subranges.
24960
24961 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
24962
24963 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
24964 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
24965
24966 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
24967 Richard Biener <rguenther@suse.de>
24968
24969 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
24970 highpart_mults_inserted field.
24971 (convert_mult_to_highpart): New function to convert right shift
24972 of a widening multiply into a MULT_HIGHPART_EXPR.
24973 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
24974 Call new convert_mult_to_highpart function.
24975 (pass_optimize_widening_mul::execute): Add a statistics counter
24976 for tracking "highpart multiplications inserted" events.
24977
24978 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
24979
24980 PR target/102239
24981 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
24982 declare.
24983 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
24984 function.
24985 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
24986
24987 2022-01-11 Olivier Hainque <hainque@adacore.com>
24988
24989 * gcc.c (driver_handle_option): State --sysroot as
24990 validated.
24991
24992 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
24993
24994 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
24995 useless related to option -mno-power10.
24996
24997 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
24998
24999 PR target/53652
25000 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
25001 operands[1] from register_operand to vector_operand.
25002
25003 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
25004
25005 PR target/103861
25006 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
25007 Handle V2QImode.
25008 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
25009 Use VI1_16_32 mode iterator.
25010 (*eq<mode>3): Ditto.
25011 (*gt<mode>3): Ditto.
25012 (*xop_maskcmp<mode>3): Ditto.
25013 (*xop_maskcmp_uns<mode>3): Ditto.
25014 (vec_cmp<mode><mode>): Ditto.
25015 (vec_cmpu<mode><mode>): Ditto.
25016
25017 2022-01-10 Richard Biener <rguenther@suse.de>
25018
25019 PR tree-optimization/103948
25020 * tree-vect-generic.c (expand_vector_condition): Return true if
25021 all ones vector is returned for true, all zeros vector for false
25022 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
25023
25024 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
25025
25026 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
25027 when _ARCH_PWR10. Use signed types.
25028 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
25029 (_mm_blendv_pd): Likewise.
25030
25031 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
25032
25033 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
25034 epilogue costing.
25035 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
25036 epilogues, unless we are guaranteed that we can't have partial vectors.
25037 * genopinit.c: (partial_vectors_supported): Generate new function.
25038
25039 2022-01-10 Jakub Jelinek <jakub@redhat.com>
25040
25041 PR target/102024
25042 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
25043 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
25044 always ignore them, when seeing other zero sized bitfields, either
25045 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
25046 it. Pass it to recursive calls. Add wrapper
25047 with old arguments and diagnose ABI differences for C structures
25048 with zero width bitfields. Formatting fixes.
25049
25050 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25051
25052 PR rtl-optimization/98782
25053 * ira-int.h (ira_soft_conflict): Declare.
25054 * ira-color.c (max_soft_conflict_loop_depth): New constant.
25055 (ira_soft_conflict): New function.
25056 (spill_soft_conflicts): Likewise.
25057 (assign_hard_reg): Use them to handle the case described by
25058 the comment above ira_soft_conflict.
25059 (improve_allocation): Likewise.
25060 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
25061 to share the same register.
25062
25063 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25064
25065 PR rtl-optimization/98782
25066 * ira-int.h (ira_caller_save_cost): New function.
25067 (ira_caller_save_loop_spill_p): Likewise.
25068 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
25069 cheaper to spill a call-clobbered register throughout a loop rather
25070 than spill it around each individual call. If so, treat all
25071 call-clobbered registers as conflicts and...
25072 (propagate_allocno_info): ...do not propagate call information
25073 from the child to the parent.
25074 * ira-color.c (move_spill_restore): Update accordingly.
25075 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
25076
25077 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25078
25079 PR rtl-optimization/98782
25080 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
25081 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
25082 (ira_single_region_allocno_p): New function.
25083 (ira_total_conflict_hard_regs): Likewise.
25084 * ira-build.c (ira_create_allocno): Initialize
25085 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
25086 (ira_propagate_hard_reg_costs): New function.
25087 (propagate_allocno_info): Use it. Try to avoid propagating
25088 hard register conflicts to parent allocnos if we can handle
25089 the conflicts by spilling instead. Limit the propagated
25090 register costs to the cost of spilling throughout the child loop.
25091 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
25092 test whether a child and parent allocno can share the same
25093 register.
25094 (move_spill_restore): Adjust for the new behavior of
25095 propagate_allocno_info.
25096
25097 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25098
25099 PR rtl-optimization/98782
25100 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
25101 extracted from...
25102 * ira-color.c (color_pass): ...here.
25103
25104 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25105
25106 PR rtl-optimization/98782
25107 * ira-color.c (color_pass): Add comments to describe the spill costs.
25108 (move_spill_restore): Likewise. Fix reversed calculation.
25109
25110 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
25111
25112 PR rtl-optimization/98782
25113 * ira-int.h (ira_loop_border_costs): New class.
25114 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
25115 New constructor.
25116 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
25117 (color_pass): Likewise.
25118 (move_spill_restore): Likewise.
25119
25120 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
25121
25122 PR target/103465
25123 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
25124
25125 2022-01-10 Richard Biener <rguenther@suse.de>
25126
25127 PR tree-optimization/100359
25128 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
25129 Allow non-growing peeling with !allow_peel and UL_ALL.
25130
25131 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
25132
25133 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
25134 special case for TImode to V1TImode moves, going via V2DImode.
25135
25136 2022-01-08 Jakub Jelinek <jakub@redhat.com>
25137
25138 PR c++/89074
25139 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
25140 simplification.
25141
25142 2022-01-08 David Malcolm <dmalcolm@redhat.com>
25143
25144 * doc/analyzer.texi
25145 (Special Functions for Debugging the Analyzer): Document
25146 __analyzer_dump_escaped.
25147
25148 2022-01-08 David Malcolm <dmalcolm@redhat.com>
25149
25150 * doc/analyzer.texi (Other Debugging Techniques): Document
25151 region::is_named_decl_p.
25152
25153 2022-01-07 Andrew Pinski <apinski@marvell.com>
25154
25155 PR target/102941
25156 * config/arm/aarch-common.c (arm_md_asm_adjust):
25157 Use a temp if !REG_P.
25158
25159 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
25160
25161 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
25162 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
25163
25164 2022-01-07 liuhongt <hongtao.liu@intel.com>
25165
25166 PR rtl-optimization/103750
25167 * fwprop.c (forward_propagate_into): Allow propagations from
25168 inner loop to outer loop.
25169
25170 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
25171
25172 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
25173
25174 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
25175
25176 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
25177 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
25178 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
25179
25180 2022-01-07 liuhongt <hongtao.liu@intel.com>
25181
25182 * config/i386/sse.md
25183 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
25184 UNSPEC_PCMP_UNSIGNED.
25185
25186 2022-01-07 liuhongt <hongtao.liu@intel.com>
25187
25188 PR target/103753
25189 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
25190 gen_avx2_pblendph_1 when elt == 0.
25191 * config/i386/sse.md (avx2_pblendph): Rename to ..
25192 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
25193 (*avx2_pblendw): Rename to ..
25194 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
25195 (avx2_pblendw): Rename to ..
25196 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
25197 (blendsuf): Removed.
25198 (sse4_1_pblend<blendsuf>): Renamed to ..
25199 (sse4_1_pblend<ssemodesuffix>): .. this.
25200
25201 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
25202
25203 PR target/103925
25204 * config/i386/i386.c (ix86_output_indirect_function_return):
25205 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
25206
25207 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
25208
25209 PR target/102952
25210 * config/i386/i386-opts.h (harden_sls): Replace
25211 harden_sls_indirect_branch with harden_sls_indirect_jmp.
25212 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
25213 Likewise.
25214 (ix86_output_indirect_jmp): Likewise.
25215 (ix86_output_call_insn): Likewise.
25216 * config/i386/i386.opt: Replace indirect-branch with
25217 indirect-jmp. Replace harden_sls_indirect_branch with
25218 harden_sls_indirect_jmp.
25219 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
25220 indirect-jmp.
25221
25222 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
25223
25224 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
25225 Add %q modifier for operands in general registers.
25226 <MODE_SI>: Add %q modifier for operands in general registers.
25227 * config/i386/i386.md (*movhi_internal): Change type attribute of
25228 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
25229 to SImode for non-avx512fp16 targets.
25230 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
25231 * config/i386/mmx.md (*movv2qi_internal):
25232 Ditto for xmm-gpr interunit alternatives 8,9.
25233
25234 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
25235
25236 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
25237 vector extensions.
25238 (riscv_ext_version_table): Add version info for vector extensions.
25239 (riscv_ext_flag_table): Add option mask for vector extensions.
25240 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
25241 (MASK_VECTOR_EEW_64): New.
25242 (MASK_VECTOR_EEW_FP_32): New.
25243 (MASK_VECTOR_EEW_FP_64): New.
25244 (MASK_ZVL32B): New.
25245 (MASK_ZVL64B): New.
25246 (MASK_ZVL128B): New.
25247 (MASK_ZVL256B): New.
25248 (MASK_ZVL512B): New.
25249 (MASK_ZVL1024B): New.
25250 (MASK_ZVL2048B): New.
25251 (MASK_ZVL4096B): New.
25252 (MASK_ZVL8192B): New.
25253 (MASK_ZVL16384B): New.
25254 (MASK_ZVL32768B): New.
25255 (MASK_ZVL65536B): New.
25256 (TARGET_ZVL32B): New.
25257 (TARGET_ZVL64B): New.
25258 (TARGET_ZVL128B): New.
25259 (TARGET_ZVL256B): New.
25260 (TARGET_ZVL512B): New.
25261 (TARGET_ZVL1024B): New.
25262 (TARGET_ZVL2048B): New.
25263 (TARGET_ZVL4096B): New.
25264 (TARGET_ZVL8192B): New.
25265 (TARGET_ZVL16384B): New.
25266 (TARGET_ZVL32768B): New.
25267 (TARGET_ZVL65536B): New.
25268 * config/riscv/riscv.opt (Mask(VECTOR)): New.
25269 (riscv_vector_eew_flags): New.
25270 (riscv_zvl_flags): New.
25271
25272 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
25273
25274 * common/config/riscv/riscv-common.c
25275 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
25276 digit.
25277
25278 2022-01-06 Jakub Jelinek <jakub@redhat.com>
25279
25280 PR tree-optimization/103899
25281 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
25282 warning by moving context variable to the only spot where it is used
25283 and moving gcc_assert into if body.
25284
25285 2022-01-06 Jakub Jelinek <jakub@redhat.com>
25286
25287 PR rtl-optimization/103908
25288 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
25289 asm goto.
25290
25291 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
25292
25293 PR target/103622
25294 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25295 Skip over instances with undefined function types.
25296
25297 2022-01-05 Andrew Pinski <apinski@marvell.com>
25298
25299 PR target/103910
25300 * config/i386/i386.h (x86_mfence): Mark with GTY.
25301
25302 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
25303
25304 PR target/103861
25305 * config/i386/mmx.md (VI_16_32): New mode iterator.
25306 (VI1_16_32): Ditto.
25307 (mmxvecsize): Handle V2QI mode.
25308 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
25309 Use VI1_16_32 mode iterator.
25310 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
25311 Use VI1_16_32 mode iterator.
25312 (abs<mode>2): Use VI_16_32 mode iterator.
25313 (uavgv2qi3_ceil): New insn pattern.
25314
25315 2022-01-05 Martin Sebor <msebor@redhat.com>
25316
25317 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
25318 %qs to avoid -Wformat-diag.
25319
25320 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
25321
25322 PR target/103915
25323 * config/i386/mmx.md (one_cmplv2qi2): Change
25324 alternatives 1,2 type from sselog to sselog1.
25325
25326 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
25327
25328 PR target/103905
25329 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
25330 narrow mode remapped elements for !one_operand_p case.
25331
25332 2022-01-05 Richard Biener <rguenther@suse.de>
25333
25334 PR tree-optimization/103816
25335 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
25336 check DR_GROUP_GAP compute for overflow and representability.
25337
25338 2022-01-05 Jakub Jelinek <jakub@redhat.com>
25339
25340 PR fortran/103691
25341 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
25342 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
25343 it can do unwanted rhs folding like &a[0] into &2.0 etc.
25344
25345 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
25346
25347 PR ipa/102059
25348 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
25349 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
25350 (rs6000_need_ipa_fn_target_info): New function.
25351 (rs6000_update_ipa_fn_target_info): Likewise.
25352 (rs6000_can_inline_p): Adjust for ipa function summary target info.
25353 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
25354 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
25355 summary target info.
25356 (analyze_function_body): Adjust for ipa function summary target info
25357 and call hook rs6000_need_ipa_fn_target_info and
25358 rs6000_update_ipa_fn_target_info.
25359 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
25360 target info.
25361 (inline_read_section): Likewise.
25362 (ipa_fn_summary_write): Likewise.
25363 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
25364 * doc/tm.texi: Regenerate.
25365 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
25366 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
25367 * target.def (update_ipa_fn_target_info): New hook.
25368 (need_ipa_fn_target_info): Likewise.
25369 * targhooks.c (default_need_ipa_fn_target_info): New function.
25370 (default_update_ipa_fn_target_info): Likewise.
25371 * targhooks.h (default_update_ipa_fn_target_info): New declare.
25372 (default_need_ipa_fn_target_info): Likewise.
25373
25374 2022-01-04 Martin Sebor <msebor@redhat.com>
25375
25376 PR middle-end/99612
25377 * builtins.c (get_memmodel): Move warning code to
25378 gimple-ssa-warn-access.cc.
25379 (expand_builtin_atomic_compare_exchange): Same.
25380 (expand_ifn_atomic_compare_exchange): Same.
25381 (expand_builtin_atomic_load): Same.
25382 (expand_builtin_atomic_store): Same.
25383 (expand_builtin_atomic_clear): Same.
25384 * doc/extend.texi (__atomic_exchange_n): Update valid memory
25385 models.
25386 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
25387 (struct memmodel_pair): New struct.
25388 (memmodel_name): New function.
25389 (pass_waccess::maybe_warn_memmodel): New function.
25390 (pass_waccess::check_atomic_memmodel): New function.
25391 (pass_waccess::check_atomic_builtin): Handle memory model.
25392 * input.c (expansion_point_location_if_in_system_header): Return
25393 original location if expansion location is in a system header.
25394
25395 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
25396
25397 PR target/103861
25398 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
25399 (one_cmplv2qi3 splitters): New post-reload splitters.
25400 (*andnotv2qi3): New insn pattern.
25401 (andnotv2qi3 splitters): New post-reload splitters.
25402 (<any_logic:code>v2qi3): New insn pattern.
25403 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
25404
25405 2022-01-04 Richard Biener <rguenther@suse.de>
25406
25407 PR tree-optimization/103800
25408 * tree-vect-loop.c (vectorizable_phi): Remove assert and
25409 expand comment.
25410
25411 2022-01-04 Richard Biener <rguenther@suse.de>
25412
25413 PR tree-optimization/103690
25414 * tree-pass.h (tail_merge_optimize): Adjust.
25415 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
25416 to re-split critical edges, move CFG cleanup ...
25417 * tree-ssa-pre.c (pass_pre::execute): ... here, before
25418 simple_dce_from_worklist and delay freeing inserted_exprs from
25419 ...
25420 (fini_pre): .. here.
25421
25422 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
25423
25424 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
25425 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
25426 (setcc_from_bi): Remove SImode specific pattern.
25427 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
25428 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
25429 for sign- and zero-extending BImode predicates to integers.
25430 (setcc_int<mode>): Remove previous (-1-based) instructions.
25431 (cstorebi4): Remove BImode to SImode specific expander.
25432 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
25433 (cstore<mode>4): For both integer and floating point modes.
25434
25435 2022-01-04 Olivier Hainque <hainque@adacore.com>
25436
25437 * gcc.c (driver_handle_option): do_save --sysroot.
25438
25439 2022-01-04 Richard Biener <rguenther@suse.de>
25440
25441 PR tree-optimization/103864
25442 PR tree-optimization/103544
25443 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
25444 reductions wrapped in conversions from SLP handling.
25445 (vect_analyze_slp): Revert PR103544 change.
25446
25447 2022-01-04 Jakub Jelinek <jakub@redhat.com>
25448
25449 PR rtl-optimization/103860
25450 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
25451 uselessly for blocks for which it has been called already.
25452
25453 2022-01-04 Cui,Lili <lili.cui@intel.com>
25454
25455 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
25456 to Alderlake and Rocketlake.
25457
25458 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
25459
25460 PR middle-end/103643
25461 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
25462 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
25463
25464 2022-01-04 liuhongt <hongtao.liu@intel.com>
25465
25466 PR target/103895
25467 * config/i386/sse.md (*bit_and_float_vector_all_ones):
25468 Force_reg operand 1 to avoid ICE.
25469
25470 2022-01-04 Jason Merrill <jason@redhat.com>
25471
25472 * tree-pretty-print.c (do_niy): Add spc parameter.
25473 (NIY): Pass it.
25474 (print_call_name): Add spc local variable.
25475
25476 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
25477
25478 PR target/103894
25479 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
25480 (mov<V_32:mode>_internal): Ditto.
25481 (*push<V_32:mode>_rex64): Ditto.
25482 (movmisalign<V_32:mode>): Ditto.
25483 (*push<V_32:mode>_rex64 splitter): Enable for
25484 TARGET_64BIT && TARGET_SSE.
25485 (*push<V_32:mode>2): Remove insn pattern.
25486
25487 2022-01-03 Andrew Pinski <apinski@marvell.com>
25488
25489 PR c/33193
25490 * doc/extend.texi: Extend the documentation about Complex
25491 types for casting and also rewrite the __real__/__imag__
25492 expression portion to use tables.
25493 Move __builtin_complex to the Complex type section.
25494
25495 2022-01-03 Jakub Jelinek <jakub@redhat.com>
25496
25497 PR target/98737
25498 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
25499 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
25500 New internal fns.
25501 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
25502 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
25503 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
25504 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
25505 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
25506 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
25507 functions.
25508 * optabs.def (atomic_add_fetch_cmp_0_optab,
25509 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
25510 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
25511 direct optabs.
25512 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
25513 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
25514 * tree-ssa-ccp.c: Include internal-fn.h.
25515 (optimize_atomic_bit_test_and): Add . before internal fn call
25516 in function comment. Change return type from void to bool and
25517 return true only if successfully replaced.
25518 (optimize_atomic_op_fetch_cmp_0): New function.
25519 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
25520 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
25521 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
25522 for *XOR* ones only if optimize_atomic_bit_test_and failed.
25523 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
25524 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
25525 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
25526 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
25527 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
25528 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
25529 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
25530 new named patterns.
25531
25532 2022-01-03 Richard Biener <rguenther@suse.de>
25533
25534 PR middle-end/103851
25535 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
25536
25537 2022-01-03 Jakub Jelinek <jakub@redhat.com>
25538
25539 PR c++/94716
25540 * symtab.c: Include fold-const.h.
25541 (symtab_node::equal_address_to): If folding_initializer is true,
25542 handle it like memory_accessed. Simplify.
25543
25544 2022-01-03 Martin Liska <mliska@suse.cz>
25545
25546 * doc/extend.texi: Use ; for function declarations.
25547
25548 2022-01-03 Jakub Jelinek <jakub@redhat.com>
25549
25550 PR c++/103600
25551 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
25552 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
25553
25554 2022-01-03 Jakub Jelinek <jakub@redhat.com>
25555
25556 * gcc.c (process_command): Update copyright notice dates.
25557 * gcov-dump.c (print_version): Ditto.
25558 * gcov.c (print_version): Ditto.
25559 * gcov-tool.c (print_version): Ditto.
25560 * gengtype.c (create_file): Ditto.
25561 * doc/cpp.texi: Bump @copying's copyright year.
25562 * doc/cppinternals.texi: Ditto.
25563 * doc/gcc.texi: Ditto.
25564 * doc/gccint.texi: Ditto.
25565 * doc/gcov.texi: Ditto.
25566 * doc/install.texi: Ditto.
25567 * doc/invoke.texi: Ditto.
25568
25569 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
25570
25571 PR target/103861
25572 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
25573 (VALID_INT_MODE_P): Ditto.
25574 * config/i386/i386.c (ix86_secondary_reload): Handle
25575 V2QImode reloads from SSE register to memory.
25576 (vector_mode_supported_p): Always return true for V2QImode.
25577 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
25578 (*negqi_ext<mode>_2): Ditto.
25579 * config/i386/mmx.md (movv2qi): New expander.
25580 (movmisalignv2qi): Ditto.
25581 (*movv2qi_internal): New insn pattern.
25582 (*pushv2qi2): Ditto.
25583 (negv2qi2 and splitters): Ditto.
25584 (<plusminus:insn>v2qi3 and splitters): Ditto.
25585
25586 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
25587
25588 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
25589 sync_lock_test_and_set libfunc. Call convert_memory_address to
25590 convert memory address to Pmode.
25591 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
25592
25593 \f
25594 Copyright (C) 2022 Free Software Foundation, Inc.
25595
25596 Copying and distribution of this file, with or without modification,
25597 are permitted in any medium without royalty provided the copyright
25598 notice and this notice are preserved.