1 2022-11-09 Martin Liska <mliska@suse.cz>
2 Sinan <sinan.lin@linux.alibaba.com>
4 * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst:
5 Add missing variable name.
7 2022-11-09 Aldy Hernandez <aldyh@redhat.com>
9 * value-range-storage.cc (frange_storage_slot::get_frange): Clear
11 * value-range.cc (range_tests_floats): New test.
13 2022-11-09 Aldy Hernandez <aldyh@redhat.com>
15 * range-op-float.cc (class foperator_plus): Remove op[12]_range.
16 (class foperator_minus): Same.
18 2022-11-09 Qing Zhao <qing.zhao@oracle.com>
20 * gimple-array-bounds.cc (trailing_array): Replace
21 array_at_struct_end_p with new name and update comments.
22 * gimple-fold.cc (get_range_strlen_tree): Likewise.
23 * gimple-ssa-warn-restrict.cc (builtin_memref::builtin_memref):
25 * graphite-sese-to-poly.cc (bounds_are_valid): Likewise.
26 * tree-if-conv.cc (idx_within_array_bound): Likewise.
27 * tree-object-size.cc (addr_object_size): Likewise.
28 * tree-ssa-alias.cc (component_ref_to_zero_sized_trailing_array_p):
30 (stmt_kills_ref_p): Likewise.
31 * tree-ssa-loop-niter.cc (idx_infer_loop_bounds): Likewise.
32 * tree-ssa-strlen.cc (maybe_set_strlen_range): Likewise.
33 * tree.cc (array_at_struct_end_p): Rename to ...
34 (array_ref_flexible_size_p): ... this.
35 (component_ref_size): Replace array_at_struct_end_p with new name.
36 * tree.h (array_at_struct_end_p): Rename to ...
37 (array_ref_flexible_size_p): ... this.
39 2022-11-09 Martin Liska <mliska@suse.cz>
41 * Makefile.in: Use new install URL.
42 * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst:
44 * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
46 * doc/gccint/source-tree-structure-and-build-system.rst: Use
48 * doc/install/host-target-specific-installation-notes-for-gcc.rst: Likewise.
49 * doc/install/installing-gcc.rst: Likewise.
51 2022-11-09 Richard Biener <rguenther@suse.de>
53 PR tree-optimization/84646
54 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
55 Remove premature cycle rejection.
57 2022-11-09 Martin Liska <mliska@suse.cz>
59 * doc/cpp/character-sets.rst:
61 * doc/cpp/conditional-syntax.rst:
63 * doc/cpp/conditional-uses.rst:
65 * doc/cpp/conditionals.rst:
67 * doc/cpp/copyright.rst:
69 * doc/cpp/deleted-code.rst:
71 * doc/cpp/diagnostics.rst:
73 * doc/cpp/environment-variables.rst:
75 * doc/cpp/gnu-free-documentation-license.rst:
77 * doc/cpp/header-files.rst:
79 * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst:
81 * doc/cpp/header-files/computed-includes.rst:
83 * doc/cpp/header-files/include-operation.rst:
85 * doc/cpp/header-files/include-syntax.rst:
87 * doc/cpp/header-files/once-only-headers.rst:
89 * doc/cpp/header-files/search-path.rst:
91 * doc/cpp/header-files/system-headers.rst:
93 * doc/cpp/header-files/wrapper-headers.rst:
95 * doc/cpp/implementation-defined-behavior.rst:
97 * doc/cpp/implementation-details.rst:
99 * doc/cpp/implementation-limits.rst:
100 Add trailing newline.
102 Add trailing newline.
103 * doc/cpp/indices-and-tables.rst:
104 Add trailing newline.
105 * doc/cpp/initial-processing.rst:
106 Add trailing newline.
107 * doc/cpp/invocation.rst:
108 Add trailing newline.
109 * doc/cpp/line-control.rst:
110 Add trailing newline.
111 * doc/cpp/macros.rst:
112 Add trailing newline.
113 * doc/cpp/macros/concatenation.rst:
114 Add trailing newline.
115 * doc/cpp/macros/directives-within-macro-arguments.rst:
116 Add trailing newline.
117 * doc/cpp/macros/function-like-macros.rst:
118 Add trailing newline.
119 * doc/cpp/macros/macro-arguments.rst:
120 Add trailing newline.
121 * doc/cpp/macros/macro-pitfalls.rst:
122 Add trailing newline.
123 * doc/cpp/macros/object-like-macros.rst:
124 Add trailing newline.
125 * doc/cpp/macros/predefined-macros.rst:
126 Add trailing newline.
127 * doc/cpp/macros/stringizing.rst:
128 Add trailing newline.
129 * doc/cpp/macros/undefining-and-redefining-macros.rst:
130 Add trailing newline.
131 * doc/cpp/macros/variadic-macros.rst:
132 Add trailing newline.
133 * doc/cpp/obsolete-features.rst:
134 Add trailing newline.
135 * doc/cpp/other-directives.rst:
136 Add trailing newline.
137 * doc/cpp/overview.rst:
138 Add trailing newline.
139 * doc/cpp/pragmas.rst:
140 Add trailing newline.
141 * doc/cpp/preprocessor-output.rst:
142 Add trailing newline.
143 * doc/cpp/the-preprocessing-language.rst:
144 Add trailing newline.
145 * doc/cpp/tokenization.rst:
146 Add trailing newline.
147 * doc/cpp/traditional-lexical-analysis.rst:
148 Add trailing newline.
149 * doc/cpp/traditional-macros.rst:
150 Add trailing newline.
151 * doc/cpp/traditional-miscellany.rst:
152 Add trailing newline.
153 * doc/cpp/traditional-mode.rst:
154 Add trailing newline.
155 * doc/cpp/traditional-warnings.rst:
156 Add trailing newline.
157 * doc/cppinternals/copyright.rst:
158 Add trailing newline.
159 * doc/cppinternals/cppinternals.rst:
160 Add trailing newline.
161 * doc/cppinternals/cpplib.rst:
162 Add trailing newline.
163 * doc/cppinternals/files.rst:
164 Add trailing newline.
165 * doc/cppinternals/index.rst:
166 Add trailing newline.
167 * doc/cppinternals/indices-and-tables.rst:
168 Add trailing newline.
169 * doc/cppinternals/internal-representation-of-macros.rst:
170 Add trailing newline.
171 * doc/cppinternals/just-which-line-number-anyway.rst:
172 Add trailing newline.
173 * doc/cppinternals/lexing-a-line.rst:
174 Add trailing newline.
175 * doc/cppinternals/lexing-a-token.rst:
176 Add trailing newline.
177 * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst:
178 Add trailing newline.
179 * doc/cppinternals/macro-expansion-overview.rst:
180 Add trailing newline.
181 * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst:
182 Add trailing newline.
183 * doc/cppinternals/multiple-include-optimization.rst:
184 Add trailing newline.
185 * doc/cppinternals/overview.rst:
186 Add trailing newline.
187 * doc/cppinternals/representation-of-line-numbers.rst:
188 Add trailing newline.
189 * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst:
190 Add trailing newline.
191 * doc/gcc/binary-compatibility.rst:
192 Add trailing newline.
193 * doc/gcc/c++-implementation-defined-behavior.rst:
194 Add trailing newline.
195 * doc/gcc/c-implementation-defined-behavior.rst:
196 Add trailing newline.
197 * doc/gcc/c-implementation-defined-behavior/architecture.rst:
198 Add trailing newline.
199 * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst:
200 Add trailing newline.
201 * doc/gcc/c-implementation-defined-behavior/characters.rst:
202 Add trailing newline.
203 * doc/gcc/c-implementation-defined-behavior/declarators.rst:
204 Add trailing newline.
205 * doc/gcc/c-implementation-defined-behavior/environment.rst:
206 Add trailing newline.
207 * doc/gcc/c-implementation-defined-behavior/floating-point.rst:
208 Add trailing newline.
209 * doc/gcc/c-implementation-defined-behavior/hints.rst:
210 Add trailing newline.
211 * doc/gcc/c-implementation-defined-behavior/identifiers.rst:
212 Add trailing newline.
213 * doc/gcc/c-implementation-defined-behavior/integers.rst:
214 Add trailing newline.
215 * doc/gcc/c-implementation-defined-behavior/library-functions.rst:
216 Add trailing newline.
217 * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst:
218 Add trailing newline.
219 * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst:
220 Add trailing newline.
221 * doc/gcc/c-implementation-defined-behavior/qualifiers.rst:
222 Add trailing newline.
223 * doc/gcc/c-implementation-defined-behavior/statements.rst:
224 Add trailing newline.
225 * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst:
226 Add trailing newline.
227 * doc/gcc/c-implementation-defined-behavior/translation.rst:
228 Add trailing newline.
229 * doc/gcc/conditionally-supported-behavior.rst:
230 Add trailing newline.
231 * doc/gcc/contributing-to-gcc-development.rst:
232 Add trailing newline.
233 * doc/gcc/contributors-to-gcc.rst:
234 Add trailing newline.
235 * doc/gcc/copyright.rst:
236 Add trailing newline.
237 * doc/gcc/exception-handling.rst:
238 Add trailing newline.
239 * doc/gcc/extensions-to-the-c++-language.rst:
240 Add trailing newline.
241 * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst:
242 Add trailing newline.
243 * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst:
244 Add trailing newline.
245 * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst:
246 Add trailing newline.
247 * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst:
248 Add trailing newline.
249 * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst:
250 Add trailing newline.
251 * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst:
252 Add trailing newline.
253 * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst:
254 Add trailing newline.
255 * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst:
256 Add trailing newline.
257 * doc/gcc/extensions-to-the-c++-language/type-traits.rst:
258 Add trailing newline.
259 * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst:
260 Add trailing newline.
261 * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst:
262 Add trailing newline.
263 * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst:
264 Add trailing newline.
265 * doc/gcc/extensions-to-the-c-language-family.rst:
266 Add trailing newline.
267 * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst:
268 Add trailing newline.
269 * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst:
270 Add trailing newline.
271 * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst:
272 Add trailing newline.
273 * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst:
274 Add trailing newline.
275 * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst:
276 Add trailing newline.
277 * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst:
278 Add trailing newline.
279 * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst:
280 Add trailing newline.
281 * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst:
282 Add trailing newline.
283 * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst:
284 Add trailing newline.
285 * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst:
286 Add trailing newline.
287 * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst:
288 Add trailing newline.
289 * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst:
290 Add trailing newline.
291 * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst:
292 Add trailing newline.
293 * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst:
294 Add trailing newline.
295 * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst:
296 Add trailing newline.
297 * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst:
298 Add trailing newline.
299 * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst:
300 Add trailing newline.
301 * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst:
302 Add trailing newline.
303 * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst:
304 Add trailing newline.
305 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst:
306 Add trailing newline.
307 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst:
308 Add trailing newline.
309 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst:
310 Add trailing newline.
311 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst:
312 Add trailing newline.
313 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst:
314 Add trailing newline.
315 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst:
316 Add trailing newline.
317 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst:
318 Add trailing newline.
319 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst:
320 Add trailing newline.
321 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst:
322 Add trailing newline.
323 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst:
324 Add trailing newline.
325 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst:
326 Add trailing newline.
327 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst:
328 Add trailing newline.
329 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst:
330 Add trailing newline.
331 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst:
332 Add trailing newline.
333 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst:
334 Add trailing newline.
335 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst:
336 Add trailing newline.
337 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst:
338 Add trailing newline.
339 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst:
340 Add trailing newline.
341 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst:
342 Add trailing newline.
343 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst:
344 Add trailing newline.
345 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst:
346 Add trailing newline.
347 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst:
348 Add trailing newline.
349 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst:
350 Add trailing newline.
351 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst:
352 Add trailing newline.
353 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst:
354 Add trailing newline.
355 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst:
356 Add trailing newline.
357 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst:
358 Add trailing newline.
359 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst:
360 Add trailing newline.
361 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst:
362 Add trailing newline.
363 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst:
364 Add trailing newline.
365 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst:
366 Add trailing newline.
367 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst:
368 Add trailing newline.
369 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst:
370 Add trailing newline.
371 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst:
372 Add trailing newline.
373 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst:
374 Add trailing newline.
375 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst:
376 Add trailing newline.
377 * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst:
378 Add trailing newline.
379 * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst:
380 Add trailing newline.
381 * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst:
382 Add trailing newline.
383 * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst:
384 Add trailing newline.
385 * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst:
386 Add trailing newline.
387 * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst:
388 Add trailing newline.
389 * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst:
390 Add trailing newline.
391 * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst:
392 Add trailing newline.
393 * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst:
394 Add trailing newline.
395 * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst:
396 Add trailing newline.
397 * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst:
398 Add trailing newline.
399 * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst:
400 Add trailing newline.
401 * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst:
402 Add trailing newline.
403 * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst:
404 Add trailing newline.
405 * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst:
406 Add trailing newline.
407 * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst:
408 Add trailing newline.
409 * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst:
410 Add trailing newline.
411 * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst:
412 Add trailing newline.
413 * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst:
414 Add trailing newline.
415 * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst:
416 Add trailing newline.
417 * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst:
418 Add trailing newline.
419 * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst:
420 Add trailing newline.
421 * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst:
422 Add trailing newline.
423 * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst:
424 Add trailing newline.
425 * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst:
426 Add trailing newline.
427 * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst:
428 Add trailing newline.
429 * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst:
430 Add trailing newline.
431 * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst:
432 Add trailing newline.
433 * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst:
434 Add trailing newline.
435 * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst:
436 Add trailing newline.
437 * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst:
438 Add trailing newline.
439 * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst:
440 Add trailing newline.
441 * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst:
442 Add trailing newline.
443 * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst:
444 Add trailing newline.
445 * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst:
446 Add trailing newline.
447 * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst:
448 Add trailing newline.
449 * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst:
450 Add trailing newline.
451 * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst:
452 Add trailing newline.
453 * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst:
454 Add trailing newline.
455 * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst:
456 Add trailing newline.
457 * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst:
458 Add trailing newline.
459 * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst:
460 Add trailing newline.
461 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst:
462 Add trailing newline.
463 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst:
464 Add trailing newline.
465 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst:
466 Add trailing newline.
467 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst:
468 Add trailing newline.
469 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst:
470 Add trailing newline.
471 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst:
472 Add trailing newline.
473 * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst:
474 Add trailing newline.
475 * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst:
476 Add trailing newline.
477 * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst:
478 Add trailing newline.
479 * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst:
480 Add trailing newline.
481 * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst:
482 Add trailing newline.
483 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst:
484 Add trailing newline.
485 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst:
486 Add trailing newline.
487 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst:
488 Add trailing newline.
489 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst:
490 Add trailing newline.
491 * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst:
492 Add trailing newline.
493 * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst:
494 Add trailing newline.
495 * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst:
496 Add trailing newline.
497 * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst:
498 Add trailing newline.
499 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst:
500 Add trailing newline.
501 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst:
502 Add trailing newline.
503 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst:
504 Add trailing newline.
505 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst:
506 Add trailing newline.
507 * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst:
508 Add trailing newline.
509 * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst:
510 Add trailing newline.
511 * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst:
512 Add trailing newline.
513 * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst:
514 Add trailing newline.
515 * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst:
516 Add trailing newline.
517 * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst:
518 Add trailing newline.
519 * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst:
520 Add trailing newline.
521 * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst:
522 Add trailing newline.
523 * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst:
524 Add trailing newline.
525 * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst:
526 Add trailing newline.
527 * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst:
528 Add trailing newline.
529 * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst:
530 Add trailing newline.
531 * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst:
532 Add trailing newline.
533 * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst:
534 Add trailing newline.
535 * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst:
536 Add trailing newline.
537 * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst:
538 Add trailing newline.
539 * doc/gcc/funding.rst:
540 Add trailing newline.
541 * doc/gcc/gcc-command-options.rst:
542 Add trailing newline.
543 * doc/gcc/gcc-command-options/compiling-c++-programs.rst:
544 Add trailing newline.
545 * doc/gcc/gcc-command-options/description.rst:
546 Add trailing newline.
547 * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst:
548 Add trailing newline.
549 * doc/gcc/gcc-command-options/gcc-developer-options.rst:
550 Add trailing newline.
551 * doc/gcc/gcc-command-options/machine-dependent-options.rst:
552 Add trailing newline.
553 * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst:
554 Add trailing newline.
555 * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst:
556 Add trailing newline.
557 * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst:
558 Add trailing newline.
559 * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst:
560 Add trailing newline.
561 * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst:
562 Add trailing newline.
563 * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst:
564 Add trailing newline.
565 * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst:
566 Add trailing newline.
567 * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst:
568 Add trailing newline.
569 * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst:
570 Add trailing newline.
571 * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst:
572 Add trailing newline.
573 * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst:
574 Add trailing newline.
575 * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst:
576 Add trailing newline.
577 * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst:
578 Add trailing newline.
579 * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst:
580 Add trailing newline.
581 * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst:
582 Add trailing newline.
583 * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst:
584 Add trailing newline.
585 * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst:
586 Add trailing newline.
587 * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst:
588 Add trailing newline.
589 * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst:
590 Add trailing newline.
591 * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst:
592 Add trailing newline.
593 * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst:
594 Add trailing newline.
595 * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst:
596 Add trailing newline.
597 * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst:
598 Add trailing newline.
599 * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst:
600 Add trailing newline.
601 * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst:
602 Add trailing newline.
603 * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst:
604 Add trailing newline.
605 * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst:
606 Add trailing newline.
607 * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst:
608 Add trailing newline.
609 * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst:
610 Add trailing newline.
611 * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst:
612 Add trailing newline.
613 * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst:
614 Add trailing newline.
615 * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst:
616 Add trailing newline.
617 * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst:
618 Add trailing newline.
619 * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst:
620 Add trailing newline.
621 * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst:
622 Add trailing newline.
623 * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst:
624 Add trailing newline.
625 * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst:
626 Add trailing newline.
627 * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst:
628 Add trailing newline.
629 * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst:
630 Add trailing newline.
631 * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst:
632 Add trailing newline.
633 * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst:
634 Add trailing newline.
635 * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst:
636 Add trailing newline.
637 * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst:
638 Add trailing newline.
639 * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst:
640 Add trailing newline.
641 * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst:
642 Add trailing newline.
643 * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst:
644 Add trailing newline.
645 * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst:
646 Add trailing newline.
647 * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst:
648 Add trailing newline.
649 * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst:
650 Add trailing newline.
651 * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst:
652 Add trailing newline.
653 * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst:
654 Add trailing newline.
655 * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst:
656 Add trailing newline.
657 * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst:
658 Add trailing newline.
659 * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst:
660 Add trailing newline.
661 * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst:
662 Add trailing newline.
663 * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst:
664 Add trailing newline.
665 * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst:
666 Add trailing newline.
667 * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst:
668 Add trailing newline.
669 * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst:
670 Add trailing newline.
671 * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst:
672 Add trailing newline.
673 * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst:
674 Add trailing newline.
675 * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst:
676 Add trailing newline.
677 * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst:
678 Add trailing newline.
679 * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst:
680 Add trailing newline.
681 * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst:
682 Add trailing newline.
683 * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst:
684 Add trailing newline.
685 * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst:
686 Add trailing newline.
687 * doc/gcc/gcc-command-options/options-for-directory-search.rst:
688 Add trailing newline.
689 * doc/gcc/gcc-command-options/options-for-linking.rst:
690 Add trailing newline.
691 * doc/gcc/gcc-command-options/options-that-control-optimization.rst:
692 Add trailing newline.
693 * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
694 Add trailing newline.
695 * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
696 Add trailing newline.
697 * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst:
698 Add trailing newline.
699 * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst:
700 Add trailing newline.
701 * doc/gcc/gcc-command-options/program-instrumentation-options.rst:
702 Add trailing newline.
703 * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst:
704 Add trailing newline.
705 * doc/gcc/gcc-command-options/using-precompiled-headers.rst:
706 Add trailing newline.
708 Add trailing newline.
709 * doc/gcc/gcov-dump.rst:
710 Add trailing newline.
711 * doc/gcc/gcov-tool.rst:
712 Add trailing newline.
714 Add trailing newline.
715 * doc/gcc/gcov/brief-description-of-gcov-data-files.rst:
716 Add trailing newline.
717 * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst:
718 Add trailing newline.
719 * doc/gcc/gcov/introduction-to-gcov.rst:
720 Add trailing newline.
721 * doc/gcc/gcov/invoking-gcov.rst:
722 Add trailing newline.
723 * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst:
724 Add trailing newline.
725 * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst:
726 Add trailing newline.
727 * doc/gcc/general-public-license-3.rst:
728 Add trailing newline.
729 * doc/gcc/gnu-free-documentation-license.rst:
730 Add trailing newline.
731 * doc/gcc/gnu-objective-c-features.rst:
732 Add trailing newline.
733 * doc/gcc/gnu-objective-c-features/compatibilityalias.rst:
734 Add trailing newline.
735 * doc/gcc/gnu-objective-c-features/constant-string-objects.rst:
736 Add trailing newline.
737 * doc/gcc/gnu-objective-c-features/exceptions.rst:
738 Add trailing newline.
739 * doc/gcc/gnu-objective-c-features/fast-enumeration.rst:
740 Add trailing newline.
741 * doc/gcc/gnu-objective-c-features/garbage-collection.rst:
742 Add trailing newline.
743 * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst:
744 Add trailing newline.
745 * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst:
746 Add trailing newline.
747 * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst:
748 Add trailing newline.
749 * doc/gcc/gnu-objective-c-features/synchronization.rst:
750 Add trailing newline.
751 * doc/gcc/gnu-objective-c-features/type-encoding.rst:
752 Add trailing newline.
754 Add trailing newline.
755 * doc/gcc/have-you-found-a-bug.rst:
756 Add trailing newline.
757 * doc/gcc/how-and-where-to-report-bugs.rst:
758 Add trailing newline.
759 * doc/gcc/how-to-get-help-with-gcc.rst:
760 Add trailing newline.
762 Add trailing newline.
763 * doc/gcc/indices-and-tables.rst:
764 Add trailing newline.
765 * doc/gcc/known-causes-of-trouble-with-gcc.rst:
766 Add trailing newline.
767 * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst:
768 Add trailing newline.
769 * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst:
770 Add trailing newline.
771 * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst:
772 Add trailing newline.
773 * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst:
774 Add trailing newline.
775 * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst:
776 Add trailing newline.
777 * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst:
778 Add trailing newline.
779 * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst:
780 Add trailing newline.
781 * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst:
782 Add trailing newline.
783 * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst:
784 Add trailing newline.
785 * doc/gcc/language-standards-supported-by-gcc.rst:
786 Add trailing newline.
787 * doc/gcc/language-standards-supported-by-gcc/c++-language.rst:
788 Add trailing newline.
789 * doc/gcc/language-standards-supported-by-gcc/c-language.rst:
790 Add trailing newline.
791 * doc/gcc/language-standards-supported-by-gcc/d-language.rst:
792 Add trailing newline.
793 * doc/gcc/language-standards-supported-by-gcc/go-language.rst:
794 Add trailing newline.
795 * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst:
796 Add trailing newline.
797 * doc/gcc/lto-dump.rst:
798 Add trailing newline.
799 * doc/gcc/programming-languages-supported-by-gcc.rst:
800 Add trailing newline.
801 * doc/gcc/reporting-bugs.rst:
802 Add trailing newline.
803 * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst:
804 Add trailing newline.
805 * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst:
806 Add trailing newline.
807 * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst:
808 Add trailing newline.
809 * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst:
810 Add trailing newline.
811 * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst:
812 Add trailing newline.
813 * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst:
814 Add trailing newline.
815 * doc/gccint/analysis-and-representation-of-loops.rst:
816 Add trailing newline.
817 * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst:
818 Add trailing newline.
819 * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst:
820 Add trailing newline.
821 * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst:
822 Add trailing newline.
823 * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst:
824 Add trailing newline.
825 * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst:
826 Add trailing newline.
827 * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst:
828 Add trailing newline.
829 * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst:
830 Add trailing newline.
831 * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst:
832 Add trailing newline.
833 * doc/gccint/analyzer-internals.rst:
834 Add trailing newline.
835 * doc/gccint/collect2.rst:
836 Add trailing newline.
837 * doc/gccint/contributing-to-gcc-development.rst:
838 Add trailing newline.
839 * doc/gccint/contributors-to-gcc.rst:
840 Add trailing newline.
841 * doc/gccint/control-flow-graph.rst:
842 Add trailing newline.
843 * doc/gccint/control-flow-graph/basic-blocks.rst:
844 Add trailing newline.
845 * doc/gccint/control-flow-graph/edges.rst:
846 Add trailing newline.
847 * doc/gccint/control-flow-graph/liveness-information.rst:
848 Add trailing newline.
849 * doc/gccint/control-flow-graph/maintaining-the-cfg.rst:
850 Add trailing newline.
851 * doc/gccint/control-flow-graph/profile-information.rst:
852 Add trailing newline.
853 * doc/gccint/copyright.rst:
854 Add trailing newline.
855 * doc/gccint/debugging-the-analyzer.rst:
856 Add trailing newline.
857 * doc/gccint/funding.rst:
858 Add trailing newline.
859 * doc/gccint/gcc-and-portability.rst:
860 Add trailing newline.
861 * doc/gccint/general-public-license-3.rst:
862 Add trailing newline.
863 * doc/gccint/generic.rst:
864 Add trailing newline.
865 * doc/gccint/generic/attributes-in-trees.rst:
866 Add trailing newline.
867 * doc/gccint/generic/c-and-c++-trees.rst:
868 Add trailing newline.
869 * doc/gccint/generic/declarations.rst:
870 Add trailing newline.
871 * doc/gccint/generic/deficiencies.rst:
872 Add trailing newline.
873 * doc/gccint/generic/expressions.rst:
874 Add trailing newline.
875 * doc/gccint/generic/functions.rst:
876 Add trailing newline.
877 * doc/gccint/generic/language-dependent-trees.rst:
878 Add trailing newline.
879 * doc/gccint/generic/overview.rst:
880 Add trailing newline.
881 * doc/gccint/generic/statements.rst:
882 Add trailing newline.
883 * doc/gccint/generic/types.rst:
884 Add trailing newline.
885 * doc/gccint/gimple-api.rst:
886 Add trailing newline.
887 * doc/gccint/gimple.rst:
888 Add trailing newline.
889 * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst:
890 Add trailing newline.
891 * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst:
892 Add trailing newline.
893 * doc/gccint/gimple/exception-handling.rst:
894 Add trailing newline.
895 * doc/gccint/gimple/gimple-instruction-set.rst:
896 Add trailing newline.
897 * doc/gccint/gimple/gimple-sequences.rst:
898 Add trailing newline.
899 * doc/gccint/gimple/manipulating-gimple-statements.rst:
900 Add trailing newline.
901 * doc/gccint/gimple/operands.rst:
902 Add trailing newline.
903 * doc/gccint/gimple/sequence-iterators.rst:
904 Add trailing newline.
905 * doc/gccint/gimple/statement-and-operand-traversals.rst:
906 Add trailing newline.
907 * doc/gccint/gimple/temporaries.rst:
908 Add trailing newline.
909 * doc/gccint/gimple/tuple-representation.rst:
910 Add trailing newline.
911 * doc/gccint/gimple/tuple-specific-accessors.rst:
912 Add trailing newline.
913 * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst:
914 Add trailing newline.
915 * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst:
916 Add trailing newline.
917 * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst:
918 Add trailing newline.
919 * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst:
920 Add trailing newline.
921 * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst:
922 Add trailing newline.
923 * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst:
924 Add trailing newline.
925 * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst:
926 Add trailing newline.
927 * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst:
928 Add trailing newline.
929 * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst:
930 Add trailing newline.
931 * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst:
932 Add trailing newline.
933 * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst:
934 Add trailing newline.
935 * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst:
936 Add trailing newline.
937 * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst:
938 Add trailing newline.
939 * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst:
940 Add trailing newline.
941 * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst:
942 Add trailing newline.
943 * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst:
944 Add trailing newline.
945 * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst:
946 Add trailing newline.
947 * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst:
948 Add trailing newline.
949 * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst:
950 Add trailing newline.
951 * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst:
952 Add trailing newline.
953 * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst:
954 Add trailing newline.
955 * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst:
956 Add trailing newline.
957 * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst:
958 Add trailing newline.
959 * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst:
960 Add trailing newline.
961 * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst:
962 Add trailing newline.
963 * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst:
964 Add trailing newline.
965 * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst:
966 Add trailing newline.
967 * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst:
968 Add trailing newline.
969 * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst:
970 Add trailing newline.
971 * doc/gccint/gnu-free-documentation-license.rst:
972 Add trailing newline.
973 * doc/gccint/guidelines-for-diagnostics.rst:
974 Add trailing newline.
975 * doc/gccint/guidelines-for-options.rst:
976 Add trailing newline.
977 * doc/gccint/host-common.rst:
978 Add trailing newline.
979 * doc/gccint/host-configuration.rst:
980 Add trailing newline.
981 * doc/gccint/host-filesystem.rst:
982 Add trailing newline.
983 * doc/gccint/host-makefile-fragments.rst:
984 Add trailing newline.
985 * doc/gccint/host-misc.rst:
986 Add trailing newline.
987 * doc/gccint/index.rst:
988 Add trailing newline.
989 * doc/gccint/indices-and-tables.rst:
990 Add trailing newline.
991 * doc/gccint/interfacing-to-gcc-output.rst:
992 Add trailing newline.
993 * doc/gccint/introduction.rst:
994 Add trailing newline.
995 * doc/gccint/language-front-ends-in-gcc.rst:
996 Add trailing newline.
997 * doc/gccint/link-time-optimization.rst:
998 Add trailing newline.
999 * doc/gccint/link-time-optimization/design-overview.rst:
1000 Add trailing newline.
1001 * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst:
1002 Add trailing newline.
1003 * doc/gccint/link-time-optimization/lto-file-sections.rst:
1004 Add trailing newline.
1005 * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst:
1006 Add trailing newline.
1007 * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst:
1008 Add trailing newline.
1009 * doc/gccint/machine-descriptions.rst:
1010 Add trailing newline.
1011 * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst:
1012 Add trailing newline.
1013 * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst:
1014 Add trailing newline.
1015 * doc/gccint/machine-descriptions/conditional-execution.rst:
1016 Add trailing newline.
1017 * doc/gccint/machine-descriptions/constant-definitions.rst:
1018 Add trailing newline.
1019 * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst:
1020 Add trailing newline.
1021 * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst:
1022 Add trailing newline.
1023 * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst:
1024 Add trailing newline.
1025 * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst:
1026 Add trailing newline.
1027 * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst:
1028 Add trailing newline.
1029 * doc/gccint/machine-descriptions/example-of-defineinsn.rst:
1030 Add trailing newline.
1031 * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst:
1032 Add trailing newline.
1033 * doc/gccint/machine-descriptions/instruction-attributes.rst:
1034 Add trailing newline.
1035 * doc/gccint/machine-descriptions/interdependence-of-patterns.rst:
1036 Add trailing newline.
1037 * doc/gccint/machine-descriptions/iterators.rst:
1038 Add trailing newline.
1039 * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst:
1040 Add trailing newline.
1041 * doc/gccint/machine-descriptions/operand-constraints.rst:
1042 Add trailing newline.
1043 * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst:
1044 Add trailing newline.
1045 * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst:
1046 Add trailing newline.
1047 * doc/gccint/machine-descriptions/predicates.rst:
1048 Add trailing newline.
1049 * doc/gccint/machine-descriptions/rtl-template.rst:
1050 Add trailing newline.
1051 * doc/gccint/machine-descriptions/rtl-templates-transformations.rst:
1052 Add trailing newline.
1053 * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst:
1054 Add trailing newline.
1055 * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst:
1056 Add trailing newline.
1057 * doc/gccint/makefile-fragments.rst:
1058 Add trailing newline.
1059 * doc/gccint/match-and-simplify.rst:
1060 Add trailing newline.
1061 * doc/gccint/memory-management-and-type-information.rst:
1062 Add trailing newline.
1063 * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst:
1064 Add trailing newline.
1065 * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst:
1066 Add trailing newline.
1067 * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst:
1068 Add trailing newline.
1069 * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst:
1070 Add trailing newline.
1071 * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst:
1072 Add trailing newline.
1073 * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst:
1074 Add trailing newline.
1075 * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst:
1076 Add trailing newline.
1077 * doc/gccint/option-file-format.rst:
1078 Add trailing newline.
1079 * doc/gccint/option-properties.rst:
1080 Add trailing newline.
1081 * doc/gccint/option-specification-files.rst:
1082 Add trailing newline.
1083 * doc/gccint/passes-and-files-of-the-compiler.rst:
1084 Add trailing newline.
1085 * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst:
1086 Add trailing newline.
1087 * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst:
1088 Add trailing newline.
1089 * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst:
1090 Add trailing newline.
1091 * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst:
1092 Add trailing newline.
1093 * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst:
1094 Add trailing newline.
1095 * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst:
1096 Add trailing newline.
1097 * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst:
1098 Add trailing newline.
1099 * doc/gccint/plugins.rst:
1100 Add trailing newline.
1101 * doc/gccint/plugins/building-gcc-plugins.rst:
1102 Add trailing newline.
1103 * doc/gccint/plugins/controlling-which-passes-are-being-run.rst:
1104 Add trailing newline.
1105 * doc/gccint/plugins/giving-information-about-a-plugin.rst:
1106 Add trailing newline.
1107 * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst:
1108 Add trailing newline.
1109 * doc/gccint/plugins/interacting-with-the-pass-manager.rst:
1110 Add trailing newline.
1111 * doc/gccint/plugins/keeping-track-of-available-passes.rst:
1112 Add trailing newline.
1113 * doc/gccint/plugins/loading-plugins.rst:
1114 Add trailing newline.
1115 * doc/gccint/plugins/plugin-api.rst:
1116 Add trailing newline.
1117 * doc/gccint/plugins/recording-information-about-pass-execution.rst:
1118 Add trailing newline.
1119 * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst:
1120 Add trailing newline.
1121 * doc/gccint/rtl-representation.rst:
1122 Add trailing newline.
1123 * doc/gccint/rtl-representation/access-to-operands.rst:
1124 Add trailing newline.
1125 * doc/gccint/rtl-representation/access-to-special-operands.rst:
1126 Add trailing newline.
1127 * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst:
1128 Add trailing newline.
1129 * doc/gccint/rtl-representation/bit-fields.rst:
1130 Add trailing newline.
1131 * doc/gccint/rtl-representation/comparison-operations.rst:
1132 Add trailing newline.
1133 * doc/gccint/rtl-representation/constant-expression-types.rst:
1134 Add trailing newline.
1135 * doc/gccint/rtl-representation/conversions.rst:
1136 Add trailing newline.
1137 * doc/gccint/rtl-representation/declarations.rst:
1138 Add trailing newline.
1139 * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst:
1140 Add trailing newline.
1141 * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst:
1142 Add trailing newline.
1143 * doc/gccint/rtl-representation/insns.rst:
1144 Add trailing newline.
1145 * doc/gccint/rtl-representation/machine-modes.rst:
1146 Add trailing newline.
1147 * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst:
1148 Add trailing newline.
1149 * doc/gccint/rtl-representation/reading-rtl.rst:
1150 Add trailing newline.
1151 * doc/gccint/rtl-representation/registers-and-memory.rst:
1152 Add trailing newline.
1153 * doc/gccint/rtl-representation/rtl-classes-and-formats.rst:
1154 Add trailing newline.
1155 * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst:
1156 Add trailing newline.
1157 * doc/gccint/rtl-representation/rtl-object-types.rst:
1158 Add trailing newline.
1159 * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst:
1160 Add trailing newline.
1161 * doc/gccint/rtl-representation/side-effect-expressions.rst:
1162 Add trailing newline.
1163 * doc/gccint/rtl-representation/structure-sharing-assumptions.rst:
1164 Add trailing newline.
1165 * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst:
1166 Add trailing newline.
1167 * doc/gccint/rtl-representation/vector-operations.rst:
1168 Add trailing newline.
1169 * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst:
1170 Add trailing newline.
1171 * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst:
1172 Add trailing newline.
1173 * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst:
1174 Add trailing newline.
1175 * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst:
1176 Add trailing newline.
1177 * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst:
1178 Add trailing newline.
1179 * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst:
1180 Add trailing newline.
1181 * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst:
1182 Add trailing newline.
1183 * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst:
1184 Add trailing newline.
1185 * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst:
1186 Add trailing newline.
1187 * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst:
1188 Add trailing newline.
1189 * doc/gccint/source-tree-structure-and-build-system.rst:
1190 Add trailing newline.
1191 * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst:
1192 Add trailing newline.
1193 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst:
1194 Add trailing newline.
1195 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst:
1196 Add trailing newline.
1197 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst:
1198 Add trailing newline.
1199 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst:
1200 Add trailing newline.
1201 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst:
1202 Add trailing newline.
1203 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst:
1204 Add trailing newline.
1205 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst:
1206 Add trailing newline.
1207 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst:
1208 Add trailing newline.
1209 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst:
1210 Add trailing newline.
1211 * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst:
1212 Add trailing newline.
1213 * doc/gccint/standard-header-file-directories.rst:
1214 Add trailing newline.
1215 * doc/gccint/static-analyzer.rst:
1216 Add trailing newline.
1217 * doc/gccint/target-macros.rst:
1218 Add trailing newline.
1219 * doc/gccint/target-macros/controlling-debugging-information-format.rst:
1220 Add trailing newline.
1221 * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst:
1222 Add trailing newline.
1223 * doc/gccint/target-macros/cross-compilation-and-floating-point.rst:
1224 Add trailing newline.
1225 * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst:
1226 Add trailing newline.
1227 * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst:
1228 Add trailing newline.
1229 * doc/gccint/target-macros/defining-the-output-assembler-language.rst:
1230 Add trailing newline.
1231 * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst:
1232 Add trailing newline.
1233 * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst:
1234 Add trailing newline.
1235 * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
1236 Add trailing newline.
1237 * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
1238 Add trailing newline.
1239 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
1240 Add trailing newline.
1241 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
1242 Add trailing newline.
1243 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst:
1244 Add trailing newline.
1245 * doc/gccint/target-macros/implicit-calls-to-library-routines.rst:
1246 Add trailing newline.
1247 * doc/gccint/target-macros/layout-of-source-language-data-types.rst:
1248 Add trailing newline.
1249 * doc/gccint/target-macros/position-independent-code.rst:
1250 Add trailing newline.
1251 * doc/gccint/target-macros/register-usage.rst:
1252 Add trailing newline.
1253 * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst:
1254 Add trailing newline.
1255 * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
1256 Add trailing newline.
1257 * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst:
1258 Add trailing newline.
1259 * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst:
1260 Add trailing newline.
1261 * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
1262 Add trailing newline.
1263 * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
1264 Add trailing newline.
1265 * doc/gccint/target-macros/support-for-nested-functions.rst:
1266 Add trailing newline.
1267 * doc/gccint/target-macros/the-global-targetm-variable.rst:
1268 Add trailing newline.
1269 * doc/gccint/target-makefile-fragments.rst:
1270 Add trailing newline.
1271 * doc/gccint/testsuites.rst:
1272 Add trailing newline.
1273 * doc/gccint/testsuites/ada-language-testsuites.rst:
1274 Add trailing newline.
1275 * doc/gccint/testsuites/c-language-testsuites.rst:
1276 Add trailing newline.
1277 * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst:
1278 Add trailing newline.
1279 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst:
1280 Add trailing newline.
1281 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst:
1282 Add trailing newline.
1283 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst:
1284 Add trailing newline.
1285 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst:
1286 Add trailing newline.
1287 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst:
1288 Add trailing newline.
1289 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst:
1290 Add trailing newline.
1291 * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst:
1292 Add trailing newline.
1293 * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst:
1294 Add trailing newline.
1295 * doc/gccint/testsuites/support-for-testing-gcov.rst:
1296 Add trailing newline.
1297 * doc/gccint/testsuites/support-for-testing-gimple-passes.rst:
1298 Add trailing newline.
1299 * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst:
1300 Add trailing newline.
1301 * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst:
1302 Add trailing newline.
1303 * doc/gccint/testsuites/support-for-testing-rtl-passes.rst:
1304 Add trailing newline.
1305 * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst:
1306 Add trailing newline.
1307 * doc/gccint/the-gcc-low-level-runtime-library.rst:
1308 Add trailing newline.
1309 * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst:
1310 Add trailing newline.
1311 * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst:
1312 Add trailing newline.
1313 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst:
1314 Add trailing newline.
1315 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst:
1316 Add trailing newline.
1317 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst:
1318 Add trailing newline.
1319 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst:
1320 Add trailing newline.
1321 * doc/gccint/the-language.rst:
1322 Add trailing newline.
1323 * doc/gccint/user-experience-guidelines.rst:
1324 Add trailing newline.
1325 * doc/install/binaries.rst:
1326 Add trailing newline.
1327 * doc/install/building.rst:
1328 Add trailing newline.
1329 * doc/install/building/building-a-cross-compiler.rst:
1330 Add trailing newline.
1331 * doc/install/building/building-a-native-compiler.rst:
1332 Add trailing newline.
1333 * doc/install/building/building-in-parallel.rst:
1334 Add trailing newline.
1335 * doc/install/building/building-the-ada-compiler.rst:
1336 Add trailing newline.
1337 * doc/install/building/building-the-d-compiler.rst:
1338 Add trailing newline.
1339 * doc/install/building/building-with-profile-feedback.rst:
1340 Add trailing newline.
1341 * doc/install/configuration.rst:
1342 Add trailing newline.
1343 * doc/install/copyright.rst:
1344 Add trailing newline.
1345 * doc/install/downloading-gcc.rst:
1346 Add trailing newline.
1347 * doc/install/final-installation.rst:
1348 Add trailing newline.
1349 * doc/install/gnu-free-documentation-license.rst:
1350 Add trailing newline.
1351 * doc/install/host-target-specific-installation-notes-for-gcc.rst:
1352 Add trailing newline.
1353 * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst:
1354 Add trailing newline.
1355 * doc/install/how-to-interpret-test-results.rst:
1356 Add trailing newline.
1357 * doc/install/index.rst:
1358 Add trailing newline.
1359 * doc/install/indices-and-tables.rst:
1360 Add trailing newline.
1361 * doc/install/installing-gcc.rst:
1362 Add trailing newline.
1363 * doc/install/passing-options-and-running-multiple-testsuites.rst:
1364 Add trailing newline.
1365 * doc/install/prerequisites.rst:
1366 Add trailing newline.
1367 * doc/install/submitting-test-results.rst:
1368 Add trailing newline.
1369 * doc/install/testing.rst:
1370 Add trailing newline.
1372 2022-11-09 Martin Liska <mliska@suse.cz>
1374 * opts.cc (get_option_html_page): Port to sphinx URLs.
1375 (get_option_url): Likewise.
1376 (test_get_option_html_page): Likewise.
1378 2022-11-09 Jakub Jelinek <jakub@redhat.com>
1380 PR tree-optimization/107569
1381 * range-op-float.cc (foperator_abs::op1_range): Clear NaNs
1382 from the negatives frange before unioning it into r.
1384 2022-11-09 Martin Liska <mliska@suse.cz>
1386 * Makefile.in: Add vpath default for .rst files.
1387 * config/avr/avr-devices.cc: For port RST.
1388 * config/avr/avr-mcus.def: Update path.
1389 * config/avr/gen-avr-mmcu-texi.cc: Moved to...
1390 * config/avr/gen-avr-mmcu-rst.cc: ...here.
1391 * config/avr/t-avr: Update to rst.
1392 * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: Re-generate.
1394 2022-11-09 Philipp Tomsich <philipp.tomsich@vrull.eu>
1396 * config/riscv/riscv.cc (riscv_rtx_costs): Add BSWAP.
1398 2022-11-09 Xi Ruoyao <xry111@xry111.site>
1400 * config/loongarch/loongarch.cc (loongarch_emit_int_compare):
1401 Avoid signed overflow.
1403 2022-11-09 Aldy Hernandez <aldyh@redhat.com>
1405 * range-op-float.cc (foperator_plus::op1_range): New.
1406 (foperator_plus::op2_range): New.
1407 (foperator_minus::op1_range): New.
1408 (foperator_minus::op2_range): New.
1410 2022-11-09 Martin Liska <mliska@suse.cz>
1412 * Makefile.in: Support installation if sphinx-build is missing.
1414 2022-11-09 Martin Liska <mliska@suse.cz>
1416 * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
1418 * doc/gccint/target-macros/storage-layout.rst: Likewise.
1419 * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: Sync with master.
1420 * doc/gcc/gcc-command-options/option-summary.rst: Likewise.
1422 2022-11-09 Martin Liska <mliska@suse.cz>
1424 * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
1425 Do not include tm.rst.in.
1426 * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
1428 * doc/gccint/target-macros/run-time-target-specification.rst:
1431 2022-11-09 Martin Liska <mliska@suse.cz>
1433 * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst:
1434 Fix cross manual refs.
1435 * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst:
1438 2022-11-09 Martin Liska <mliska@suse.cz>
1440 * Makefile.in: Support --with-sphinx-build.
1442 * configure: Regenerate.
1444 2022-11-09 Martin Liska <mliska@suse.cz>
1446 * target.def: Use proper lexers for target macros.
1447 * doc/gccint/target-macros/tm.rst.in: Re-generate.
1449 2022-11-09 Martin Liska <mliska@suse.cz>
1451 * doc/analyzer.texi: Removed.
1452 * doc/avr-mmcu.texi: Removed.
1453 * doc/bugreport.texi: Removed.
1454 * doc/cfg.texi: Removed.
1455 * doc/collect2.texi: Removed.
1456 * doc/compat.texi: Removed.
1457 * doc/configfiles.texi: Removed.
1458 * doc/configterms.texi: Removed.
1459 * doc/contrib.texi: Removed.
1460 * doc/contribute.texi: Removed.
1461 * doc/cpp.texi: Removed.
1462 * doc/cppdiropts.texi: Removed.
1463 * doc/cppenv.texi: Removed.
1464 * doc/cppinternals.texi: Removed.
1465 * doc/cppopts.texi: Removed.
1466 * doc/cppwarnopts.texi: Removed.
1467 * doc/extend.texi: Removed.
1468 * doc/fragments.texi: Removed.
1469 * doc/frontends.texi: Removed.
1470 * doc/gcc.texi: Removed.
1471 * doc/gccint.texi: Removed.
1472 * doc/gcov-dump.texi: Removed.
1473 * doc/gcov-tool.texi: Removed.
1474 * doc/gcov.texi: Removed.
1475 * doc/generic.texi: Removed.
1476 * doc/gimple.texi: Removed.
1477 * doc/gnu.texi: Removed.
1478 * doc/gty.texi: Removed.
1479 * doc/headerdirs.texi: Removed.
1480 * doc/hostconfig.texi: Removed.
1481 * doc/implement-c.texi: Removed.
1482 * doc/implement-cxx.texi: Removed.
1483 * doc/include/fdl.texi: Removed.
1484 * doc/include/funding.texi: Removed.
1485 * doc/include/gcc-common.texi: Removed.
1486 * doc/include/gpl_v3.texi: Removed.
1487 * doc/install.texi: Removed.
1488 * doc/interface.texi: Removed.
1489 * doc/invoke.texi: Removed.
1490 * doc/languages.texi: Removed.
1491 * doc/libgcc.texi: Removed.
1492 * doc/loop.texi: Removed.
1493 * doc/lto-dump.texi: Removed.
1494 * doc/lto.texi: Removed.
1495 * doc/makefile.texi: Removed.
1496 * doc/match-and-simplify.texi: Removed.
1497 * doc/md.texi: Removed.
1498 * doc/objc.texi: Removed.
1499 * doc/optinfo.texi: Removed.
1500 * doc/options.texi: Removed.
1501 * doc/passes.texi: Removed.
1502 * doc/plugins.texi: Removed.
1503 * doc/poly-int.texi: Removed.
1504 * doc/portability.texi: Removed.
1505 * doc/rtl.texi: Removed.
1506 * doc/service.texi: Removed.
1507 * doc/sourcebuild.texi: Removed.
1508 * doc/standards.texi: Removed.
1509 * doc/tm.texi: Removed.
1510 * doc/tree-ssa.texi: Removed.
1511 * doc/trouble.texi: Removed.
1512 * doc/ux.texi: Removed.
1513 * doc/tm.texi.in: Removed.
1515 2022-11-09 Martin Liska <mliska@suse.cz>
1517 * doc/gccint/target-macros/tm.rst.in: New file.
1519 2022-11-09 Martin Liska <mliska@suse.cz>
1521 * Makefile.in: Support Sphinx based documentation.
1522 * configure: Regenerate.
1523 * configure.ac: Support Sphinx based documentation.
1524 * genhooks.cc (struct s_hook): Emit tm.rst.in file.
1526 2022-11-09 Martin Liska <mliska@suse.cz>
1528 * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: Use tm.rst.in file.
1529 * doc/gccint/target-macros/addressing-modes.rst: Likewise.
1530 * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: Likewise.
1531 * doc/gccint/target-macros/anchored-addresses.rst: Likewise.
1532 * doc/gccint/target-macros/c++-abi-parameters.rst: Likewise.
1533 * doc/gccint/target-macros/condition-code-status.rst: Likewise.
1534 * doc/gccint/target-macros/controlling-debugging-information-format.rst: Likewise.
1535 * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: Likewise.
1536 * doc/gccint/target-macros/d-abi-parameters.rst: Likewise.
1537 * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: Likewise.
1538 * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
1540 * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
1542 * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
1544 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
1546 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
1548 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst:
1550 * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
1552 * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: Likewise.
1553 * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: Likewise.
1554 * doc/gccint/target-macros/emulating-tls.rst: Likewise.
1555 * doc/gccint/target-macros/implementing-the-varargs-macros.rst: Likewise.
1556 * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: Likewise.
1557 * doc/gccint/target-macros/layout-of-source-language-data-types.rst: Likewise.
1558 * doc/gccint/target-macros/miscellaneous-parameters.rst: Likewise.
1559 * doc/gccint/target-macros/mode-switching-instructions.rst: Likewise.
1560 * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst:
1562 * doc/gccint/target-macros/register-classes.rst: Likewise.
1563 * doc/gccint/target-macros/register-usage.rst: Likewise.
1564 * doc/gccint/target-macros/run-time-target-specification.rst: Likewise.
1565 * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
1567 * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst:
1569 * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst:
1571 * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst:
1573 * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst:
1575 * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst:
1577 * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst:
1579 * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
1581 * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
1583 * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst:
1585 * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
1587 * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst:
1589 * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst:
1591 * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst:
1593 * doc/gccint/target-macros/storage-layout.rst: Likewise.
1594 * doc/gccint/target-macros/support-for-nested-functions.rst: Likewise.
1596 2022-11-09 Martin Liska <mliska@suse.cz>
1598 * common/common-target.def: Port to RST.
1599 * target.def: Port to RST.
1601 2022-11-09 Martin Liska <mliska@suse.cz>
1603 * doc/cpp/character-sets.rst: New file.
1604 * doc/cpp/conditional-syntax.rst: New file.
1605 * doc/cpp/conditional-uses.rst: New file.
1606 * doc/cpp/conditionals.rst: New file.
1607 * doc/cpp/conf.py: New file.
1608 * doc/cpp/copyright.rst: New file.
1609 * doc/cpp/deleted-code.rst: New file.
1610 * doc/cpp/diagnostics.rst: New file.
1611 * doc/cpp/environment-variables.rst: New file.
1612 * doc/cpp/gnu-free-documentation-license.rst: New file.
1613 * doc/cpp/header-files.rst: New file.
1614 * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: New file.
1615 * doc/cpp/header-files/computed-includes.rst: New file.
1616 * doc/cpp/header-files/include-operation.rst: New file.
1617 * doc/cpp/header-files/include-syntax.rst: New file.
1618 * doc/cpp/header-files/once-only-headers.rst: New file.
1619 * doc/cpp/header-files/search-path.rst: New file.
1620 * doc/cpp/header-files/system-headers.rst: New file.
1621 * doc/cpp/header-files/wrapper-headers.rst: New file.
1622 * doc/cpp/implementation-defined-behavior.rst: New file.
1623 * doc/cpp/implementation-details.rst: New file.
1624 * doc/cpp/implementation-limits.rst: New file.
1625 * doc/cpp/index.rst: New file.
1626 * doc/cpp/indices-and-tables.rst: New file.
1627 * doc/cpp/initial-processing.rst: New file.
1628 * doc/cpp/invocation.rst: New file.
1629 * doc/cpp/line-control.rst: New file.
1630 * doc/cpp/macros.rst: New file.
1631 * doc/cpp/macros/concatenation.rst: New file.
1632 * doc/cpp/macros/directives-within-macro-arguments.rst: New file.
1633 * doc/cpp/macros/function-like-macros.rst: New file.
1634 * doc/cpp/macros/macro-arguments.rst: New file.
1635 * doc/cpp/macros/macro-pitfalls.rst: New file.
1636 * doc/cpp/macros/object-like-macros.rst: New file.
1637 * doc/cpp/macros/predefined-macros.rst: New file.
1638 * doc/cpp/macros/stringizing.rst: New file.
1639 * doc/cpp/macros/undefining-and-redefining-macros.rst: New file.
1640 * doc/cpp/macros/variadic-macros.rst: New file.
1641 * doc/cpp/obsolete-features.rst: New file.
1642 * doc/cpp/other-directives.rst: New file.
1643 * doc/cpp/overview.rst: New file.
1644 * doc/cpp/pragmas.rst: New file.
1645 * doc/cpp/preprocessor-output.rst: New file.
1646 * doc/cpp/the-preprocessing-language.rst: New file.
1647 * doc/cpp/tokenization.rst: New file.
1648 * doc/cpp/traditional-lexical-analysis.rst: New file.
1649 * doc/cpp/traditional-macros.rst: New file.
1650 * doc/cpp/traditional-miscellany.rst: New file.
1651 * doc/cpp/traditional-mode.rst: New file.
1652 * doc/cpp/traditional-warnings.rst: New file.
1653 * doc/cppinternals/conf.py: New file.
1654 * doc/cppinternals/copyright.rst: New file.
1655 * doc/cppinternals/cppinternals.rst: New file.
1656 * doc/cppinternals/cpplib.rst: New file.
1657 * doc/cppinternals/files.rst: New file.
1658 * doc/cppinternals/index.rst: New file.
1659 * doc/cppinternals/indices-and-tables.rst: New file.
1660 * doc/cppinternals/internal-representation-of-macros.rst: New file.
1661 * doc/cppinternals/just-which-line-number-anyway.rst: New file.
1662 * doc/cppinternals/lexing-a-line.rst: New file.
1663 * doc/cppinternals/lexing-a-token.rst: New file.
1664 * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: New file.
1665 * doc/cppinternals/macro-expansion-overview.rst: New file.
1666 * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: New file.
1667 * doc/cppinternals/multiple-include-optimization.rst: New file.
1668 * doc/cppinternals/overview.rst: New file.
1669 * doc/cppinternals/representation-of-line-numbers.rst: New file.
1670 * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: New file.
1671 * doc/gcc/binary-compatibility.rst: New file.
1672 * doc/gcc/c++-implementation-defined-behavior.rst: New file.
1673 * doc/gcc/c-implementation-defined-behavior.rst: New file.
1674 * doc/gcc/c-implementation-defined-behavior/architecture.rst: New file.
1675 * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: New file.
1676 * doc/gcc/c-implementation-defined-behavior/characters.rst: New file.
1677 * doc/gcc/c-implementation-defined-behavior/declarators.rst: New file.
1678 * doc/gcc/c-implementation-defined-behavior/environment.rst: New file.
1679 * doc/gcc/c-implementation-defined-behavior/floating-point.rst: New file.
1680 * doc/gcc/c-implementation-defined-behavior/hints.rst: New file.
1681 * doc/gcc/c-implementation-defined-behavior/identifiers.rst: New file.
1682 * doc/gcc/c-implementation-defined-behavior/integers.rst: New file.
1683 * doc/gcc/c-implementation-defined-behavior/library-functions.rst: New file.
1684 * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: New file.
1685 * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: New file.
1686 * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: New file.
1687 * doc/gcc/c-implementation-defined-behavior/statements.rst: New file.
1688 * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst:
1690 * doc/gcc/c-implementation-defined-behavior/translation.rst: New file.
1691 * doc/gcc/conditionally-supported-behavior.rst: New file.
1692 * doc/gcc/conf.py: New file.
1693 * doc/gcc/contributing-to-gcc-development.rst: New file.
1694 * doc/gcc/contributors-to-gcc.rst: New file.
1695 * doc/gcc/copyright.rst: New file.
1696 * doc/gcc/exception-handling.rst: New file.
1697 * doc/gcc/extensions-to-the-c++-language.rst: New file.
1698 * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: New file.
1699 * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: New file.
1700 * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst:
1702 * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst:
1704 * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: New file.
1705 * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst:
1707 * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: New file.
1708 * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: New file.
1709 * doc/gcc/extensions-to-the-c++-language/type-traits.rst: New file.
1710 * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: New file.
1711 * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst:
1713 * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: New file.
1714 * doc/gcc/extensions-to-the-c-language-family.rst: New file.
1715 * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: New file.
1716 * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: New file.
1717 * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: New file.
1718 * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst:
1720 * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst:
1722 * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: New file.
1723 * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: New file.
1724 * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: New file.
1725 * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst:
1727 * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst:
1729 * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst:
1731 * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: New file.
1732 * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: New file.
1733 * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: New file.
1734 * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: New file.
1735 * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: New file.
1736 * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst:
1738 * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: New file.
1739 * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: New file.
1740 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst:
1742 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst:
1744 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst:
1746 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst:
1748 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst:
1750 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst:
1752 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst:
1754 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst:
1756 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst:
1758 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst:
1760 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst:
1762 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst:
1764 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst:
1766 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst:
1768 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst:
1770 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst:
1772 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst:
1774 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst:
1776 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst:
1778 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst:
1780 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst:
1782 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst:
1784 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst:
1786 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst:
1788 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst:
1790 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst:
1792 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst:
1794 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst:
1796 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst:
1798 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst:
1800 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst:
1802 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst:
1804 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst:
1806 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst:
1808 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst:
1810 * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst:
1812 * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: New file.
1813 * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst:
1815 * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst:
1817 * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: New file.
1818 * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: New file.
1819 * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: New file.
1820 * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst:
1822 * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: New file.
1823 * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst:
1825 * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: New file.
1826 * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: New file.
1827 * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst:
1829 * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: New file.
1830 * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: New file.
1831 * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: New file.
1832 * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst:
1834 * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: New file.
1835 * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst:
1837 * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst:
1839 * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: New file.
1840 * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: New file.
1841 * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: New file.
1842 * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst:
1844 * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: New file.
1845 * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst:
1847 * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst:
1849 * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst:
1851 * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst:
1853 * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: New file.
1854 * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst:
1856 * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: New file.
1857 * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst:
1859 * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: New file.
1860 * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst:
1862 * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: New file.
1863 * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst:
1865 * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: New file.
1866 * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: New file.
1867 * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: New file.
1868 * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst:
1870 * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst:
1872 * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst:
1874 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst:
1876 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst:
1878 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst:
1880 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst:
1882 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst:
1884 * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst:
1886 * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst:
1888 * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst:
1890 * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst:
1892 * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst:
1894 * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst:
1896 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst:
1898 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst:
1900 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst:
1902 * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst:
1904 * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst:
1906 * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst:
1908 * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst:
1910 * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst:
1912 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst:
1914 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst:
1916 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst:
1918 * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst:
1920 * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst:
1922 * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst:
1924 * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst:
1926 * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst:
1928 * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst:
1930 * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst:
1932 * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst:
1934 * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst:
1936 * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst:
1938 * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst:
1940 * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: New file.
1941 * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: New file.
1942 * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst:
1944 * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst:
1946 * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst:
1948 * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst:
1950 * doc/gcc/funding.rst: New file.
1951 * doc/gcc/gcc-command-options.rst: New file.
1952 * doc/gcc/gcc-command-options/c++-modules.rst: New file.
1953 * doc/gcc/gcc-command-options/compiling-c++-programs.rst: New file.
1954 * doc/gcc/gcc-command-options/description.rst: New file.
1955 * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: New file.
1956 * doc/gcc/gcc-command-options/gcc-developer-options.rst: New file.
1957 * doc/gcc/gcc-command-options/machine-dependent-options.rst: New file.
1958 * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: New file.
1959 * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst:
1961 * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: New file.
1962 * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: New file.
1963 * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: New file.
1964 * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: New file.
1965 * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: New file.
1966 * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: New file.
1967 * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: New file.
1968 * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: New file.
1969 * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: New file.
1970 * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: New file.
1971 * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: New file.
1972 * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: New file.
1973 * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: New file.
1974 * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: New file.
1975 * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: New file.
1976 * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: New file.
1977 * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: New file.
1978 * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: New file.
1979 * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: New file.
1980 * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst:
1982 * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: New file.
1983 * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: New file.
1984 * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: New file.
1985 * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: New file.
1986 * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: New file.
1987 * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: New file.
1988 * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: New file.
1989 * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: New file.
1990 * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: New file.
1991 * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: New file.
1992 * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: New file.
1993 * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: New file.
1994 * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: New file.
1995 * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: New file.
1996 * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: New file.
1997 * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: New file.
1998 * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: New file.
1999 * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: New file.
2000 * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: New file.
2001 * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: New file.
2002 * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: New file.
2003 * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: New file.
2004 * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: New file.
2005 * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: New file.
2006 * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: New file.
2007 * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst:
2009 * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: New file.
2010 * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: New file.
2011 * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: New file.
2012 * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: New file.
2013 * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: New file.
2014 * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: New file.
2015 * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: New file.
2016 * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: New file.
2017 * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: New file.
2018 * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: New file.
2019 * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: New file.
2020 * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: New file.
2021 * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: New file.
2022 * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: New file.
2023 * doc/gcc/gcc-command-options/option-summary.rst: New file.
2024 * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: New file.
2025 * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: New file.
2026 * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst:
2028 * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: New file.
2029 * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: New file.
2030 * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: New file.
2031 * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: New file.
2032 * doc/gcc/gcc-command-options/options-for-directory-search.rst: New file.
2033 * doc/gcc/gcc-command-options/options-for-linking.rst: New file.
2034 * doc/gcc/gcc-command-options/options-that-control-optimization.rst: New file.
2035 * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: New file.
2036 * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
2038 * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: New file.
2039 * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: New file.
2040 * doc/gcc/gcc-command-options/program-instrumentation-options.rst: New file.
2041 * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst:
2043 * doc/gcc/gcc-command-options/using-precompiled-headers.rst: New file.
2044 * doc/gcc/gcc.rst: New file.
2045 * doc/gcc/gcov-dump.rst: New file.
2046 * doc/gcc/gcov-tool.rst: New file.
2047 * doc/gcc/gcov.rst: New file.
2048 * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: New file.
2049 * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: New file.
2050 * doc/gcc/gcov/introduction-to-gcov.rst: New file.
2051 * doc/gcc/gcov/invoking-gcov.rst: New file.
2052 * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: New file.
2053 * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: New file.
2054 * doc/gcc/general-public-license-3.rst: New file.
2055 * doc/gcc/gnu-free-documentation-license.rst: New file.
2056 * doc/gcc/gnu-objective-c-features.rst: New file.
2057 * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: New file.
2058 * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: New file.
2059 * doc/gcc/gnu-objective-c-features/exceptions.rst: New file.
2060 * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: New file.
2061 * doc/gcc/gnu-objective-c-features/garbage-collection.rst: New file.
2062 * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: New file.
2063 * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: New file.
2064 * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: New file.
2065 * doc/gcc/gnu-objective-c-features/synchronization.rst: New file.
2066 * doc/gcc/gnu-objective-c-features/type-encoding.rst: New file.
2067 * doc/gcc/gnu.rst: New file.
2068 * doc/gcc/have-you-found-a-bug.rst: New file.
2069 * doc/gcc/how-and-where-to-report-bugs.rst: New file.
2070 * doc/gcc/how-to-get-help-with-gcc.rst: New file.
2071 * doc/gcc/index.rst: New file.
2072 * doc/gcc/indices-and-tables.rst: New file.
2073 * doc/gcc/known-causes-of-trouble-with-gcc.rst: New file.
2074 * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: New file.
2075 * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst:
2077 * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst:
2079 * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst:
2081 * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: New file.
2082 * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: New file.
2083 * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: New file.
2084 * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: New file.
2085 * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst:
2087 * doc/gcc/language-standards-supported-by-gcc.rst: New file.
2088 * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: New file.
2089 * doc/gcc/language-standards-supported-by-gcc/c-language.rst: New file.
2090 * doc/gcc/language-standards-supported-by-gcc/d-language.rst: New file.
2091 * doc/gcc/language-standards-supported-by-gcc/go-language.rst: New file.
2092 * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst:
2094 * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: New file.
2095 * doc/gcc/lto-dump.rst: New file.
2096 * doc/gcc/programming-languages-supported-by-gcc.rst: New file.
2097 * doc/gcc/reporting-bugs.rst: New file.
2098 * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: New file.
2099 * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: New file.
2100 * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: New file.
2101 * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: New file.
2102 * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: New file.
2103 * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst:
2105 * doc/gccint/analysis-and-representation-of-loops.rst: New file.
2106 * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: New file.
2107 * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: New file.
2108 * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: New file.
2109 * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: New file.
2110 * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: New file.
2111 * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: New file.
2112 * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst:
2114 * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: New file.
2115 * doc/gccint/analyzer-internals.rst: New file.
2116 * doc/gccint/collect2.rst: New file.
2117 * doc/gccint/conf.py: New file.
2118 * doc/gccint/contributing-to-gcc-development.rst: New file.
2119 * doc/gccint/contributors-to-gcc.rst: New file.
2120 * doc/gccint/control-flow-graph.rst: New file.
2121 * doc/gccint/control-flow-graph/basic-blocks.rst: New file.
2122 * doc/gccint/control-flow-graph/edges.rst: New file.
2123 * doc/gccint/control-flow-graph/liveness-information.rst: New file.
2124 * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: New file.
2125 * doc/gccint/control-flow-graph/profile-information.rst: New file.
2126 * doc/gccint/copyright.rst: New file.
2127 * doc/gccint/debugging-the-analyzer.rst: New file.
2128 * doc/gccint/funding.rst: New file.
2129 * doc/gccint/gcc-and-portability.rst: New file.
2130 * doc/gccint/general-public-license-3.rst: New file.
2131 * doc/gccint/generic.rst: New file.
2132 * doc/gccint/generic/attributes-in-trees.rst: New file.
2133 * doc/gccint/generic/c-and-c++-trees.rst: New file.
2134 * doc/gccint/generic/declarations.rst: New file.
2135 * doc/gccint/generic/deficiencies.rst: New file.
2136 * doc/gccint/generic/expressions.rst: New file.
2137 * doc/gccint/generic/functions.rst: New file.
2138 * doc/gccint/generic/language-dependent-trees.rst: New file.
2139 * doc/gccint/generic/overview.rst: New file.
2140 * doc/gccint/generic/statements.rst: New file.
2141 * doc/gccint/generic/types.rst: New file.
2142 * doc/gccint/gimple-api.rst: New file.
2143 * doc/gccint/gimple.rst: New file.
2144 * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: New file.
2145 * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: New file.
2146 * doc/gccint/gimple/exception-handling.rst: New file.
2147 * doc/gccint/gimple/gimple-instruction-set.rst: New file.
2148 * doc/gccint/gimple/gimple-sequences.rst: New file.
2149 * doc/gccint/gimple/manipulating-gimple-statements.rst: New file.
2150 * doc/gccint/gimple/operands.rst: New file.
2151 * doc/gccint/gimple/sequence-iterators.rst: New file.
2152 * doc/gccint/gimple/statement-and-operand-traversals.rst: New file.
2153 * doc/gccint/gimple/temporaries.rst: New file.
2154 * doc/gccint/gimple/tuple-representation.rst: New file.
2155 * doc/gccint/gimple/tuple-specific-accessors.rst: New file.
2156 * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: New file.
2157 * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: New file.
2158 * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: New file.
2159 * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: New file.
2160 * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: New file.
2161 * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: New file.
2162 * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: New file.
2163 * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: New file.
2164 * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: New file.
2165 * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: New file.
2166 * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: New file.
2167 * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: New file.
2168 * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: New file.
2169 * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: New file.
2170 * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: New file.
2171 * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: New file.
2172 * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: New file.
2173 * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: New file.
2174 * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: New file.
2175 * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: New file.
2176 * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: New file.
2177 * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: New file.
2178 * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: New file.
2179 * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: New file.
2180 * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: New file.
2181 * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: New file.
2182 * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: New file.
2183 * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: New file.
2184 * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: New file.
2185 * doc/gccint/gnu-free-documentation-license.rst: New file.
2186 * doc/gccint/guidelines-for-diagnostics.rst: New file.
2187 * doc/gccint/guidelines-for-options.rst: New file.
2188 * doc/gccint/host-common.rst: New file.
2189 * doc/gccint/host-configuration.rst: New file.
2190 * doc/gccint/host-filesystem.rst: New file.
2191 * doc/gccint/host-makefile-fragments.rst: New file.
2192 * doc/gccint/host-misc.rst: New file.
2193 * doc/gccint/index.rst: New file.
2194 * doc/gccint/indices-and-tables.rst: New file.
2195 * doc/gccint/interfacing-to-gcc-output.rst: New file.
2196 * doc/gccint/introduction.rst: New file.
2197 * doc/gccint/language-front-ends-in-gcc.rst: New file.
2198 * doc/gccint/link-time-optimization.rst: New file.
2199 * doc/gccint/link-time-optimization/design-overview.rst: New file.
2200 * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: New file.
2201 * doc/gccint/link-time-optimization/lto-file-sections.rst: New file.
2202 * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: New file.
2203 * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst:
2205 * doc/gccint/machine-descriptions.rst: New file.
2206 * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: New file.
2207 * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: New file.
2208 * doc/gccint/machine-descriptions/conditional-execution.rst: New file.
2209 * doc/gccint/machine-descriptions/constant-definitions.rst: New file.
2210 * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: New file.
2211 * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: New file.
2212 * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: New file.
2213 * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: New file.
2214 * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: New file.
2215 * doc/gccint/machine-descriptions/example-of-defineinsn.rst: New file.
2216 * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: New file.
2217 * doc/gccint/machine-descriptions/instruction-attributes.rst: New file.
2218 * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: New file.
2219 * doc/gccint/machine-descriptions/iterators.rst: New file.
2220 * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: New file.
2221 * doc/gccint/machine-descriptions/operand-constraints.rst: New file.
2222 * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: New file.
2223 * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst:
2225 * doc/gccint/machine-descriptions/predicates.rst: New file.
2226 * doc/gccint/machine-descriptions/rtl-template.rst: New file.
2227 * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: New file.
2228 * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: New file.
2229 * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: New file.
2230 * doc/gccint/makefile-fragments.rst: New file.
2231 * doc/gccint/match-and-simplify.rst: New file.
2232 * doc/gccint/memory-management-and-type-information.rst: New file.
2233 * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst:
2235 * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst:
2237 * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst:
2239 * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: New file.
2240 * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst:
2242 * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: New file.
2243 * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst:
2245 * doc/gccint/option-file-format.rst: New file.
2246 * doc/gccint/option-properties.rst: New file.
2247 * doc/gccint/option-specification-files.rst: New file.
2248 * doc/gccint/passes-and-files-of-the-compiler.rst: New file.
2249 * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: New file.
2250 * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst:
2252 * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: New file.
2253 * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: New file.
2254 * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: New file.
2255 * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: New file.
2256 * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: New file.
2257 * doc/gccint/plugins.rst: New file.
2258 * doc/gccint/plugins/building-gcc-plugins.rst: New file.
2259 * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: New file.
2260 * doc/gccint/plugins/giving-information-about-a-plugin.rst: New file.
2261 * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: New file.
2262 * doc/gccint/plugins/interacting-with-the-pass-manager.rst: New file.
2263 * doc/gccint/plugins/keeping-track-of-available-passes.rst: New file.
2264 * doc/gccint/plugins/loading-plugins.rst: New file.
2265 * doc/gccint/plugins/plugin-api.rst: New file.
2266 * doc/gccint/plugins/recording-information-about-pass-execution.rst: New file.
2267 * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: New file.
2268 * doc/gccint/rtl-representation.rst: New file.
2269 * doc/gccint/rtl-representation/access-to-operands.rst: New file.
2270 * doc/gccint/rtl-representation/access-to-special-operands.rst: New file.
2271 * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: New file.
2272 * doc/gccint/rtl-representation/bit-fields.rst: New file.
2273 * doc/gccint/rtl-representation/comparison-operations.rst: New file.
2274 * doc/gccint/rtl-representation/constant-expression-types.rst: New file.
2275 * doc/gccint/rtl-representation/conversions.rst: New file.
2276 * doc/gccint/rtl-representation/declarations.rst: New file.
2277 * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: New file.
2278 * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: New file.
2279 * doc/gccint/rtl-representation/insns.rst: New file.
2280 * doc/gccint/rtl-representation/machine-modes.rst: New file.
2281 * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: New file.
2282 * doc/gccint/rtl-representation/reading-rtl.rst: New file.
2283 * doc/gccint/rtl-representation/registers-and-memory.rst: New file.
2284 * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: New file.
2285 * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: New file.
2286 * doc/gccint/rtl-representation/rtl-object-types.rst: New file.
2287 * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: New file.
2288 * doc/gccint/rtl-representation/side-effect-expressions.rst: New file.
2289 * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: New file.
2290 * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: New file.
2291 * doc/gccint/rtl-representation/vector-operations.rst: New file.
2292 * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: New file.
2293 * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: New file.
2294 * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: New file.
2295 * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst:
2297 * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst:
2299 * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst:
2301 * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: New file.
2302 * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst:
2304 * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst:
2306 * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: New file.
2307 * doc/gccint/source-tree-structure-and-build-system.rst: New file.
2308 * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst:
2310 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: New file.
2311 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst:
2313 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst:
2315 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst:
2317 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/building-documentation.rst:
2319 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst:
2321 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst:
2323 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst:
2325 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst:
2327 * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst:
2329 * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst:
2331 * doc/gccint/standard-header-file-directories.rst: New file.
2332 * doc/gccint/static-analyzer.rst: New file.
2333 * doc/gccint/target-macros.rst: New file.
2334 * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: New file.
2335 * doc/gccint/target-macros/addressing-modes.rst: New file.
2336 * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: New file.
2337 * doc/gccint/target-macros/anchored-addresses.rst: New file.
2338 * doc/gccint/target-macros/c++-abi-parameters.rst: New file.
2339 * doc/gccint/target-macros/condition-code-status.rst: New file.
2340 * doc/gccint/target-macros/controlling-debugging-information-format.rst: New file.
2341 * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: New file.
2342 * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: New file.
2343 * doc/gccint/target-macros/d-abi-parameters.rst: New file.
2344 * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: New file.
2345 * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst:
2347 * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: New file.
2348 * doc/gccint/target-macros/defining-the-output-assembler-language.rst: New file.
2349 * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst:
2351 * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
2353 * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst:
2355 * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
2357 * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
2359 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
2361 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
2363 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst:
2365 * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst:
2367 * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
2369 * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: New file.
2370 * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: New file.
2371 * doc/gccint/target-macros/emulating-tls.rst: New file.
2372 * doc/gccint/target-macros/implementing-the-varargs-macros.rst: New file.
2373 * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: New file.
2374 * doc/gccint/target-macros/layout-of-source-language-data-types.rst: New file.
2375 * doc/gccint/target-macros/miscellaneous-parameters.rst: New file.
2376 * doc/gccint/target-macros/mode-switching-instructions.rst: New file.
2377 * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst:
2379 * doc/gccint/target-macros/position-independent-code.rst: New file.
2380 * doc/gccint/target-macros/register-classes.rst: New file.
2381 * doc/gccint/target-macros/register-usage.rst: New file.
2382 * doc/gccint/target-macros/run-time-target-specification.rst: New file.
2383 * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: New file.
2384 * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
2386 * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst:
2388 * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst:
2390 * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst:
2392 * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst:
2394 * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst:
2396 * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst:
2398 * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst:
2400 * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst:
2402 * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
2404 * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
2406 * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst:
2408 * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
2410 * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst:
2412 * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst:
2414 * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst:
2416 * doc/gccint/target-macros/storage-layout.rst: New file.
2417 * doc/gccint/target-macros/support-for-nested-functions.rst: New file.
2418 * doc/gccint/target-macros/the-global-targetm-variable.rst: New file.
2419 * doc/gccint/target-makefile-fragments.rst: New file.
2420 * doc/gccint/testsuites.rst: New test.
2421 * doc/gccint/testsuites/ada-language-testsuites.rst: New test.
2422 * doc/gccint/testsuites/c-language-testsuites.rst: New test.
2423 * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: New test.
2424 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst:
2426 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst:
2428 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst:
2430 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst:
2432 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst:
2434 * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst:
2436 * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: New test.
2437 * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: New test.
2438 * doc/gccint/testsuites/support-for-testing-gcov.rst: New test.
2439 * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: New test.
2440 * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: New test.
2441 * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: New test.
2442 * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: New test.
2443 * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: New test.
2444 * doc/gccint/the-gcc-low-level-runtime-library.rst: New file.
2445 * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst:
2447 * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst:
2449 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst:
2451 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst:
2453 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst:
2455 * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst:
2457 * doc/gccint/the-language.rst: New file.
2458 * doc/gccint/user-experience-guidelines.rst: New file.
2459 * doc/install/binaries.rst: New file.
2460 * doc/install/building.rst: New file.
2461 * doc/install/building/building-a-cross-compiler.rst: New file.
2462 * doc/install/building/building-a-native-compiler.rst: New file.
2463 * doc/install/building/building-in-parallel.rst: New file.
2464 * doc/install/building/building-the-ada-compiler.rst: New file.
2465 * doc/install/building/building-the-d-compiler.rst: New file.
2466 * doc/install/building/building-with-profile-feedback.rst: New file.
2467 * doc/install/conf.py: New file.
2468 * doc/install/configuration.rst: New file.
2469 * doc/install/copyright.rst: New file.
2470 * doc/install/downloading-gcc.rst: New file.
2471 * doc/install/final-installation.rst: New file.
2472 * doc/install/gnu-free-documentation-license.rst: New file.
2473 * doc/install/host-target-specific-installation-notes-for-gcc.rst: New file.
2474 * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: New test.
2475 * doc/install/how-to-interpret-test-results.rst: New file.
2476 * doc/install/index.rst: New file.
2477 * doc/install/indices-and-tables.rst: New file.
2478 * doc/install/installing-gcc.rst: New file.
2479 * doc/install/passing-options-and-running-multiple-testsuites.rst: New test.
2480 * doc/install/prerequisites.rst: New file.
2481 * doc/install/submitting-test-results.rst: New file.
2482 * doc/install/testing.rst: New file.
2484 2022-11-09 Aldy Hernandez <aldyh@redhat.com>
2486 * range-op-float.cc (class foperator_minus): New.
2487 (floating_op_table::floating_op_table): Add MINUS_EXPR entry.
2489 2022-11-09 Aldy Hernandez <aldyh@redhat.com>
2491 * range-op-float.cc (range_operator_float::fold_range): Abstract
2492 out from foperator_plus.
2493 (range_operator_float::rv_fold): New.
2494 (foperator_plus::fold_range): Remove.
2495 (foperator_plus::rv_fold): New.
2496 (propagate_nans): Remove.
2497 * range-op.h (class range_operator_float): Add rv_fold.
2499 2022-11-09 Aldy Hernandez <aldyh@redhat.com>
2501 * range-op-float.cc (foperator_plus::fold_range): Set NAN for
2502 addition of different signed infinities.
2503 (range_op_float_tests): New test.
2505 2022-11-09 liuhongt <hongtao.liu@intel.com>
2508 * config/i386/sse.md (avx512f_movddup512<mask_name>): Change
2509 type from sselog to sselog1.
2510 (avx_movddup256<mask_name>): Ditto.
2512 2022-11-08 David Faust <david.faust@oracle.com>
2514 * config/bpf/bpf.cc (struct core_walk_data): Add field `which'...
2515 (bpf_resolve_overloaded_builtin): ... set it here. Use values of enum
2516 bpf_builtins for error checks.
2517 (bpf_core_walk): Use values of enum bpf_builtins.
2518 (bpf_core_newdecl): Likewise.
2519 (bpf_expand_builtin): Likewise.
2521 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
2523 PR tree-optimization/24021
2524 * range-op-float.cc (propagate_nans): New.
2525 (frange_nextafter): New.
2526 (frange_arithmetic): New.
2527 (class foperator_plus): New.
2528 (floating_op_table::floating_op_table): Add PLUS_EXPR entry.
2530 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
2532 * real.cc (real_isdenormal): New.
2533 (encode_ieee_single): Call real_isdenormal.
2534 (encode_ieee_double): Same.
2535 (encode_ieee_extended): Same.
2536 (encode_ieee_quad): Same.
2537 (encode_ieee_half): Same.
2538 (encode_arm_bfloat_half): Same.
2539 * real.h (real_isdenormal): Add mode argument. Rewrite for
2541 * value-range.cc (frange::flush_denormals_to_zero): Pass mode to
2544 2022-11-08 Richard Biener <rguenther@suse.de>
2546 PR tree-optimization/107389
2547 * gimple-low.cc (lower_builtin_assume_aligned): New.
2548 (lower_stmt): Call it.
2550 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
2552 * range-op.cc (operator_div::fold_range): Call
2553 update_known_bitmask.
2554 * tree-ssa-ccp.cc (bit_value_binop): Handle divisions by powers of
2557 2022-11-08 Kwok Cheung Yeung <kcy@codesourcery.com>
2559 * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand first argument
2560 of GCN_BUILTIN_LDEXPV to V64DFmode.
2562 2022-11-08 Kwok Cheung Yeung <kcy@codesourcery.com>
2564 * config/gcn/gcn-builtins.def (FABSV, FLOORVF, FLOORV): New builtins.
2565 * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand GCN_BUILTIN_FABSV,
2566 GCN_BUILTIN_FLOORVF and GCN_BUILTIN_FLOORV.
2568 2022-11-08 Aldy Hernandez <aldyh@redhat.com>
2570 * range-op.cc (irange_to_masked_value): New.
2571 (update_known_bitmask): New.
2572 (operator_mult::fold_range): Call update_known_bitmask.
2574 2022-11-08 Jakub Jelinek <jakub@redhat.com>
2576 PR tree-optimization/107547
2577 * tree-call-cdce.cc (get_no_error_domain): Handle CASE_FLT_FN_FLOATN_NX
2578 of BUILT_IN_{ACOS,ASIN,ACOSH,ATANH,LOG,LOG2,LOG10,LOG1P}. Handle
2579 BUILT_IN_{COSH,SINH,EXP,EXPM1,EXP2}F{16,32,64,128}.
2581 2022-11-08 Jakub Jelinek <jakub@redhat.com>
2584 * config/i386/predicates.md (vector_or_const_vector_operand): New
2586 * config/i386/sse.md (vec_cmp<mode><sseintvecmodelower>,
2587 vec_cmpv2div2di, vec_cmpu<mode><sseintvecmodelower>,
2588 vec_cmpuv2div2di): Use nonimmediate_or_const_vector_operand
2589 predicate instead of nonimmediate_operand and
2590 vector_or_const_vector_operand instead of vector_operand.
2591 * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): For
2592 LE/LEU or GE/GEU with CONST_VECTOR cop1 try to transform those
2593 into LE/LEU or GT/GTU with larger or smaller by one cop1 if
2594 there is no wrap-around. Force CONST_VECTOR cop0 or cop1 into
2595 REG. Formatting fix.
2597 2022-11-08 Max Filippov <jcmvbkbc@gmail.com>
2599 PR rtl-optimization/107482
2600 * ira-color.cc (assign_hard_reg): Only call
2601 update_costs_from_copies when retry_p is false.
2603 2022-11-08 konglin1 <lingling.kong@intel.com>
2606 2022-11-07 konglin1 <lingling.kong@intel.com>
2608 * config/i386/i386.opt:Add -mprefer-remote-atomic.
2609 * config/i386/sync.md (atomic_<plus_logic><mode>):
2611 (atomic_add<mode>): Rename to below one.
2612 (atomic_add<mode>_1): To this.
2613 (atomic_<logic><mode>): Ditto.
2614 (atomic_<logic><mode>_1): Ditto.
2615 * doc/invoke.texi: Add -mprefer-remote-atomic.
2617 2022-11-08 Haochen Jiang <haochen.jiang@intel.com>
2619 * config/i386/i386-options.cc (m_CORE_ATOM): New.
2620 * config/i386/x86-tune.def
2621 (X86_TUNE_SCHEDULE): Initial tune for CORE_ATOM.
2622 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
2623 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
2624 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
2625 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
2626 (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Ditto.
2627 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
2628 (X86_TUNE_USE_LEAVE): Ditto.
2629 (X86_TUNE_PUSH_MEMORY): Ditto.
2630 (X86_TUNE_USE_INCDEC): Ditto.
2631 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
2632 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
2633 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
2634 (X86_TUNE_USE_SAHF): Ditto.
2635 (X86_TUNE_USE_BT): Ditto.
2636 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
2637 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
2638 (X86_TUNE_AVOID_MFENCE): Ditto.
2639 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
2640 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
2641 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
2642 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
2643 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
2644 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
2645 (X86_TUNE_AVOID_4BYTE_PREFIXES): Ditto.
2646 (X86_TUNE_USE_GATHER_2PARTS): Ditto.
2647 (X86_TUNE_USE_GATHER_4PARTS): Ditto.
2648 (X86_TUNE_USE_GATHER): Ditto.
2650 2022-11-08 Andrew MacLeod <amacleod@redhat.com>
2652 PR tree-optimization/104530
2653 * gimple-range-cache.cc (ranger_cache::register_inferred_value):
2655 (ranger_cache::apply_inferred_ranges): Move setting cache to
2657 * gimple-range-cache.h (register_inferred_value): New prototype.
2658 * gimple-range-infer.cc (infer_range_manager::has_range_p): New.
2659 * gimple-range-infer.h (has_range_p): New prototype.
2660 * gimple-range.cc (register_transitive_inferred_ranges): New.
2661 * gimple-range.h (register_transitive_inferred_ranges): New proto.
2662 * tree-vrp.cc (rvrp_folder::fold_stmt): Check for transitive inferred
2663 ranges at the end of the block before folding final stmt.
2665 2022-11-07 David Faust <david.faust@oracle.com>
2667 * config/bpf/bpf.cc (handle_attr_preserve): Use maybe_make_core_relo().
2669 2022-11-07 Aldy Hernandez <aldyh@redhat.com>
2671 PR tree-optimization/55157
2672 * range-op.cc (operator_mult::wi_fold): Optimize multiplications
2675 2022-11-07 H.J. Lu <hjl.tools@gmail.com>
2677 PR middle-end/102566
2678 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and): Also handle
2679 if (_5 < 0) and if (_5 >= 0).
2681 2022-11-07 Richard Purdie <richard.purdie@linuxfoundation.org>
2683 * file-prefix-map.cc (remap_filename): Handle NULL filenames.
2685 2022-11-07 Alexander Monakov <amonakov@ispras.ru>
2687 PR tree-optimization/107505
2688 * tree-ssa-sink.cc (statement_sink_location): Additionally
2689 reject ECF_RETURNS_TWICE calls.
2691 2022-11-07 Aldy Hernandez <aldyh@redhat.com>
2693 PR tree-optimization/107541
2694 * range-op.cc (operator_div::fold_range): Restrict power of 2
2695 optimization to positive numbers.
2697 2022-11-07 Richard Biener <rguenther@suse.de>
2699 * tree-ssa-loop-unswitch.cc (unswitch_predicate::count): New.
2700 (unswitch_predicate::unswitch_predicate): Initialize count.
2701 (init_loop_unswitch_info): First collect candidates and
2702 determine the outermost loop to unswitch.
2703 (tree_ssa_unswitch_loops): First perform all guard hoisting,
2704 then perform unswitching on innermost loop predicates.
2705 (find_unswitching_predicates_for_bb): Keep track of the
2706 most profitable predicate to unswitch on.
2707 (tree_unswitch_single_loop): Unswitch given predicate if
2710 2022-11-07 Martin Liska <mliska@suse.cz>
2711 Gerald Pfeifer <gerald@pfeifer.com>
2713 * doc/invoke.texi: Improve wording.
2715 2022-11-07 Martin Liska <mliska@suse.cz>
2717 * range-op.cc: Add final override keywords.
2719 2022-11-07 Kewen Lin <linkw@linux.ibm.com>
2721 PR tree-optimization/107412
2722 * gimple-fold.cc (gimple_fold_mask_load_store_mem_ref): Rename to ...
2723 (gimple_fold_partial_load_store_mem_ref): ... this, add one parameter
2724 mask_p indicating it's for mask or length, and add some handlings for
2725 IFN LEN_{LOAD,STORE}.
2726 (gimple_fold_mask_load): Rename to ...
2727 (gimple_fold_partial_load): ... this, add one parameter mask_p.
2728 (gimple_fold_mask_store): Rename to ...
2729 (gimple_fold_partial_store): ... this, add one parameter mask_p.
2730 (gimple_fold_call): Add the handlings for IFN LEN_{LOAD,STORE},
2731 and adjust calls on gimple_fold_mask_load_store_mem_ref to
2732 gimple_fold_partial_load_store_mem_ref.
2734 2022-11-07 Hu, Lin1 <lin1.hu@intel.com>
2736 * common/config/i386/cpuinfo.h
2737 (get_intel_cpu): Handle Grand Ridge.
2738 * common/config/i386/i386-common.cc
2739 (processor_names): Add grandridge.
2740 (processor_alias_table): Ditto.
2741 * common/config/i386/i386-cpuinfo.h:
2742 (enum processor_types): Add INTEL_GRANDRIDGE.
2743 * config.gcc: Add -march=grandridge.
2744 * config/i386/driver-i386.cc (host_detect_local_cpu):
2746 * config/i386/i386-c.cc (ix86_target_macros_internal):
2748 * config/i386/i386-options.cc (m_GRANDRIDGE): New define.
2749 (processor_cost_table): Add grandridge.
2750 * config/i386/i386.h (enum processor_type):
2751 Add PROCESSOR_GRANDRIDGE.
2752 (PTA_GRANDRIDGE): Ditto.
2753 * doc/extend.texi: Add grandridge.
2754 * doc/invoke.texi: Ditto.
2756 2022-11-07 konglin1 <lingling.kong@intel.com>
2758 * config/i386/i386.opt:Add -mprefer-remote-atomic.
2759 * config/i386/sync.md (atomic_<plus_logic><mode>):
2761 (atomic_add<mode>): Rename to below one.
2762 (atomic_add<mode>_1): To this.
2763 (atomic_<logic><mode>): Ditto.
2764 (atomic_<logic><mode>_1): Ditto.
2765 * doc/invoke.texi: Add -mprefer-remote-atomic.
2767 2022-11-07 konglin1 <lingling.kong@intel.com>
2769 * common/config/i386/cpuinfo.h (get_available_features):
2771 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_RAOINT_SET,
2772 OPTION_MASK_ISA2_RAOINT_UNSET): New.
2773 (ix86_handle_option): Handle -mraoint.
2774 * common/config/i386/i386-cpuinfo.h (enum processor_features):
2776 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
2778 * config.gcc: Add raointintrin.h
2779 * config/i386/cpuid.h (bit_RAOINT): New.
2780 * config/i386/i386-builtin.def (BDESC): Add new builtins.
2781 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
2783 * config/i386/i386-isa.def (RAOINT): Add DEF_PTA(RAOINT).
2784 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
2786 * config/i386/sync.md (rao_a<raointop><mode>): New define insn.
2787 * config/i386/i386.opt: Add option -mraoint.
2788 * config/i386/x86gprintrin.h: Include raointintrin.h.
2789 * doc/extend.texi: Document raoint.
2790 * doc/invoke.texi: Document -mraoint.
2791 * doc/sourcebuild.texi: Document target raoint.
2792 * config/i386/raointintrin.h: New file.
2794 2022-11-07 Haochen Jiang <haochen.jiang@intel.com>
2796 * common/config/i386/cpuinfo.h
2797 (get_intel_cpu): Handle Granite Rapids.
2798 * common/config/i386/i386-common.cc:
2799 (processor_names): Add graniterapids.
2800 (processor_alias_table): Ditto.
2801 * common/config/i386/i386-cpuinfo.h
2802 (enum processor_subtypes): Add INTEL_GRANTIERAPIDS.
2803 * config.gcc: Add -march=graniterapids.
2804 * config/i386/driver-i386.cc (host_detect_local_cpu):
2805 Handle graniterapids.
2806 * config/i386/i386-c.cc (ix86_target_macros_internal):
2808 * config/i386/i386-options.cc (m_GRANITERAPIDS): New.
2809 (processor_cost_table): Add graniterapids.
2810 * config/i386/i386.h (enum processor_type):
2811 Add PROCESSOR_GRANITERAPIDS.
2812 (PTA_GRANITERAPIDS): Ditto.
2813 * doc/extend.texi: Add graniterapids.
2814 * doc/invoke.texi: Ditto.
2816 2022-11-07 Haochen Jiang <haochen.jiang@intel.com>
2817 Hongtao Liu <hongtao.liu@intel.com>
2819 * common/config/i386/cpuinfo.h (get_available_features):
2821 * common/config/i386/i386-common.cc
2822 (OPTION_MASK_ISA2_PREFETCHI_SET,
2823 OPTION_MASK_ISA2_PREFETCHI_UNSET): New.
2824 (ix86_handle_option): Handle -mprefetchi.
2825 * common/config/i386/i386-cpuinfo.h
2826 (enum processor_features): Add FEATURE_PREFETCHI.
2827 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY
2829 * config.gcc: Add prfchiintrin.h.
2830 * config/i386/cpuid.h (bit_PREFETCHI): New.
2831 * config/i386/i386-builtin-types.def:
2832 Add DEF_FUNCTION_TYPE (VOID, PCVOID, INT)
2833 and DEF_FUNCTION_TYPE (VOID, PCVOID, INT, INT, INT).
2834 * config/i386/i386-builtin.def (BDESC): Add new builtins.
2835 * config/i386/i386-c.cc (ix86_target_macros_internal):
2836 Define __PREFETCHI__.
2837 * config/i386/i386-expand.cc: Handle new builtins.
2838 * config/i386/i386-isa.def (PREFETCHI):
2839 Add DEF_PTA(PREFETCHI).
2840 * config/i386/i386-options.cc
2841 (ix86_valid_target_attribute_inner_p): Handle prefetchi.
2842 * config/i386/i386.md (prefetchi): New define_insn.
2843 * config/i386/i386.opt: Add option -mprefetchi.
2844 * config/i386/predicates.md (local_func_symbolic_operand):
2846 * config/i386/x86gprintrin.h: Include prfchiintrin.h.
2847 * config/i386/xmmintrin.h (enum _mm_hint): New enum for
2849 (_mm_prefetch): Handle the highest bit of enum.
2850 * doc/extend.texi: Document prefetchi.
2851 * doc/invoke.texi: Document -mprefetchi.
2852 * doc/sourcebuild.texi: Document target prefetchi.
2853 * config/i386/prfchiintrin.h: New file.
2855 2022-11-06 Uroš Bizjak <ubizjak@gmail.com>
2857 * optabs.cc (can_vec_set_var_idx_p): Use operand[2]
2858 mode when checking vec_set_optab.
2860 2022-11-06 Xi Ruoyao <xry111@xry111.site>
2862 * config/loongarch/loongarch.md (UNSPEC_FCOPYSIGN): New unspec.
2863 (type): Add fcopysign.
2864 (copysign<mode>3): New instruction template.
2866 2022-11-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2868 * multiple_target.cc (expand_target_clones): Free memory.
2870 2022-11-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2872 * cgraph.cc (cgraph_node::make_local): Remove redundant set_section.
2873 * multiple_target.cc (create_dispatcher_calls): Likewise.
2875 2022-11-05 Jonathan Wakely <jwakely@redhat.com>
2878 * doc/cppopts.texi: Document -fwide-exec-charset defaults
2881 2022-11-05 Alexandre Oliva <oliva@adacore.com>
2883 * common.opt (fmultiflags): New.
2884 * doc/invoke.texi: Document it.
2885 * gcc.cc (driver_self_specs): Discard it.
2886 * opts.cc (common_handle_option): Ignore it in the driver.
2888 2022-11-04 Jeff Chapman II <jchapman@lock3software.com>
2889 Jason Merrill <jason@redhat.com>
2891 * input.cc (get_source_text_between): New fn.
2892 * input.h (get_source_text_between): Declare.
2894 2022-11-04 Aldy Hernandez <aldyh@redhat.com>
2896 PR tree-optimization/107342
2897 * range-op.cc (operator_mult::fold_range): New.
2898 (operator_div::fold_range): New.
2900 2022-11-04 Eric Botcazou <ebotcazou@adacore.com>
2902 * fold-const.cc (operand_compare::operand_equal_p) <COMPONENT_REF>:
2903 Do not take into account operand 2.
2904 (operand_compare::hash_operand) <COMPONENT_REF>: Likewise.
2906 2022-11-04 Eric Botcazou <ebotcazou@adacore.com>
2908 * expr.cc (emit_group_store): Do not use subword paradoxical subregs
2910 2022-11-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2912 * config/aarch64/aarch64-sve2.md: Fix typo in Cryptographic
2915 2022-11-04 Thomas Schwinge <thomas@codesourcery.com>
2917 * config.gcc [target *-intelmic-* | *-intelmicemul-*]: Remove.
2918 * config/i386/i386-options.cc (ix86_omp_device_kind_arch_isa)
2919 [ACCEL_COMPILER]: Remove.
2920 * config/i386/intelmic-mkoffload.cc: Remove.
2921 * config/i386/intelmic-offload.h: Likewise.
2922 * config/i386/t-intelmic: Likewise.
2923 * config/i386/t-omp-device: Likewise.
2924 * configure.ac [target *-intelmic-* | *-intelmicemul-*]: Remove.
2925 * configure: Regenerate.
2926 * doc/install.texi (--enable-offload-targets=[...]): Update.
2927 * doc/sourcebuild.texi: Remove 'liboffloadmic' documentation.
2929 2022-11-04 Thomas Schwinge <thomas@codesourcery.com>
2931 * Makefile.in (OBJS): Remove 'dbxout.o'.
2932 * config/nvptx/nvptx.cc: Don't '#include "dbxout.h"'.
2933 * dbxout.cc: Remove.
2934 * dbxout.h: Likewise.
2935 * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR):
2936 Default to 'default_asm_out_constructor',
2937 'default_asm_out_destructor'.
2938 * targhooks.cc (default_asm_out_constructor)
2939 (default_asm_out_destructor): New.
2940 * targhooks.h (default_asm_out_constructor)
2941 (default_asm_out_destructor): Declare.
2943 2022-11-04 Thomas Schwinge <thomas@codesourcery.com>
2945 * Makefile.in (OBJS): Add 'dbxout.o'.
2946 * config/nvptx/nvptx.cc: '#include "dbxout.h"'.
2948 * dbxout.h: Likewise.
2949 * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR):
2950 Default to 'default_stabs_asm_out_constructor',
2951 'default_stabs_asm_out_destructor'.
2953 2022-11-04 Hongyu Wang <hongyu.wang@intel.com>
2954 Haochen Jiang <haochen.jiang@intel.com>
2956 * common/config/i386/cpuinfo.h (get_available_features): Detect
2958 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_FP16_SET,
2959 OPTION_MASK_ISA2_AMX_FP16_UNSET): New macros.
2960 (ix86_handle_option): Handle -mamx-fp16.
2961 * common/config/i386/i386-cpuinfo.h (enum processor_features):
2962 Add FEATURE_AMX_FP16.
2963 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
2965 * config.gcc: Add amxfp16intrin.h.
2966 * config/i386/cpuid.h (bit_AMX_FP16): New.
2967 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
2969 * config/i386/i386-isa.def: Add DEF_PTA for AMX_FP16.
2970 * config/i386/i386-options.cc (isa2_opts): Add -mamx-fp16.
2971 (ix86_valid_target_attribute_inner_p): Add new ATTR.
2972 (ix86_option_override_internal): Handle AMX-FP16.
2973 * config/i386/i386.opt: Add -mamx-fp16.
2974 * config/i386/immintrin.h: Include amxfp16intrin.h.
2975 * doc/extend.texi: Document -mamx-fp16.
2976 * doc/invoke.texi: Document amx-fp16.
2977 * doc/sourcebuild.texi: Document amx_fp16.
2978 * config/i386/amxfp16intrin.h: New file.
2980 2022-11-04 Haochen Jiang <haochen.jiang@intel.com>
2982 * common/config/i386/cpuinfo.h (get_intel_cpu):
2984 * common/config/i386/i386-common.cc
2985 (processor_names): Add Sierra Forest.
2986 (processor_alias_table): Ditto.
2987 * common/config/i386/i386-cpuinfo.h
2988 (enum processor_types): Add INTEL_SIERRAFOREST.
2989 * config.gcc: Add -march=sierraforest.
2990 * config/i386/driver-i386.cc (host_detect_local_cpu):
2991 Handle Sierra Forest.
2992 * config/i386/i386-c.cc (ix86_target_macros_internal):
2994 * config/i386/i386-options.cc (m_SIERRAFOREST): New define.
2995 (processor_cost_table): Add sierra forest.
2996 * config/i386/i386.h (enum processor_type):
2997 Add PROCESSOR_SIERRA_FOREST.
2998 (PTA_SIERRAFOREST): Ditto.
2999 * doc/extend.texi: Add sierra forest.
3000 * doc/invoke.texi: Ditto.
3002 2022-11-04 Haochen Jiang <haochen.jiang@intel.com>
3004 * common/config/i386/cpuinfo.h (get_available_features):
3006 * common/config/i386/i386-common.cc
3007 (OPTION_MASK_ISA2_CMPCCXADD_SET,
3008 OPTION_MASK_ISA2_CMPCCXADD_UNSET): New.
3009 (ix86_handle_option): Handle -mcmpccxadd.
3010 * common/config/i386/i386-cpuinfo.h (enum processor_features):
3011 Add FEATURE_CMPCCXADD.
3012 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
3014 * config.gcc: Add cmpccxaddintrin.h.
3015 * config/i386/cpuid.h (bit_CMPCCXADD): New.
3016 * config/i386/i386-builtin-types.def:
3017 Add DEF_FUNCTION_TYPE(INT, PINT, INT, INT, INT)
3018 and DEF_FUNCTION_TYPE(LONGLONG, PLONGLONG, LONGLONG, LONGLONG, INT).
3019 * config/i386/i386-builtin.def (BDESC): Add new builtins.
3020 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
3022 * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
3023 Add new parameter to indicate constant position.
3024 Handle INT_FTYPE_PINT_INT_INT_INT
3025 and LONGLONG_FTYPE_PLONGLONG_LONGLONG_LONGLONG_INT.
3026 * config/i386/i386-isa.def (CMPCCXADD): Add DEF_PTA(CMPCCXADD).
3027 * config/i386/i386-options.cc (isa2_opts): Add -mcmpccxadd.
3028 (ix86_valid_target_attribute_inner_p): Handle cmpccxadd.
3029 * config/i386/i386.opt: Add option -mcmpccxadd.
3030 * config/i386/sync.md (cmpccxadd_<mode>): New define insn.
3031 * config/i386/x86gprintrin.h: Include cmpccxaddintrin.h.
3032 * doc/extend.texi: Document cmpccxadd.
3033 * doc/invoke.texi: Document -mcmpccxadd.
3034 * doc/sourcebuild.texi: Document target cmpccxadd.
3035 * config/i386/cmpccxaddintrin.h: New file.
3037 2022-11-03 Jason Merrill <jason@redhat.com>
3039 * doc/invoke.texi: -fconcepts no longer implies
3040 -fconcepts-ts before C++20.
3042 2022-11-03 Kwok Cheung Yeung <kcy@codesourcery.com>
3044 * config/gcn/gcn-valu.md (math_unop_insn): New attribute.
3045 (<math_unop><mode>2, <math_unop><mode>2<exec>, <math_unop><mode>2,
3046 <math_unop><mode>2<exec>, *<math_unop><mode>2_insn,
3047 *<math_unop><mode>2<exec>_insn): Use math_unop_insn to generate
3050 2022-11-03 Andrew MacLeod <amacleod@redhat.com>
3052 * gimple-range.cc (gimple_ranger::update_stmt): New.
3053 * gimple-range.h (gimple_ranger::update_stmt): New prototype.
3054 * tree-ssa-operands.cc (update_stmt_operands): Notify range
3055 query that stmt has changed.
3056 * value-query.h (range_query::update_stmt): New.
3058 2022-11-03 David Malcolm <dmalcolm@redhat.com>
3060 * make-unique.h: New file.
3062 2022-11-03 Uroš Bizjak <ubizjak@gmail.com>
3065 * config/i386/i386.md (eliminate reg-reg move by inverting the
3066 condition of a cmove #2 peephole2): Check if eliminated move
3067 initialized a register, used in the moved instruction.
3069 2022-11-03 Andrew Stubbs <ams@codesourcery.com>
3072 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Remove duplicate
3073 UNSPEC_SMIN_DPP_SHR conditionals.
3075 2022-11-02 Christoph Müllner <christoph.muellner@vrull.eu>
3077 * common/config/riscv/riscv-common.cc: Add zawrs extension.
3078 * config/riscv/riscv-opts.h (MASK_ZAWRS): New.
3079 (TARGET_ZAWRS): New.
3080 * config/riscv/riscv.opt: New.
3082 2022-11-02 Rasmus Villemoes <rv@rasmusvillemoes.dk>
3085 * gcc.cc (ASM_MAP): Honour -ffile-prefix-map.
3087 2022-11-02 Aldy Hernandez <aldyh@redhat.com>
3089 * value-range.cc (frange::contains_p): Fix signed zero handling.
3090 (range_tests_signed_zeros): New test.
3092 2022-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3094 * builtins.cc (mathfn_built_in_2): #undef HUGE_VAL, NAN.
3096 2022-11-02 Xionghu Luo <xionghuluo@tencent.com>
3099 * config/rs6000/altivec.md: (*altivec_vrl<VI_char>): Named to...
3100 (altivec_vrl<VI_char>): ...this.
3101 * config/rs6000/vsx.md (revb_<mode>): Call vspltish and vrlh when
3102 target is Power8 and mode is V8HI.
3104 2022-11-01 David Seifert <soap@gentoo.org>
3106 * configure.ac: Add AC_CACHE_CHECK(..., gcc_cv_sys_sdt_h).
3107 * configure: Regenerate.
3109 2022-11-01 Richard Purdie <richard.purdie@linuxfoundation.org>
3111 * file-prefix-map.cc (remap_filename): Allow remapping of relative paths.
3113 2022-11-01 Aldy Hernandez <aldyh@redhat.com>
3115 PR tree-optimization/107490
3116 * range-op-float.cc (foperator_unordered_lt::op1_range): Handle
3118 (foperator_unordered_lt::op2_range): Same.
3119 (foperator_unordered_le::op1_range): Same.
3120 (foperator_unordered_le::op2_range): Same.
3121 (foperator_unordered_gt::op1_range): Same.
3122 (foperator_unordered_gt::op2_range): Same.
3123 (foperator_unordered_ge::op1_range): Same.
3124 (foperator_unordered_ge::op2_range): Same.
3126 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
3128 PR tree-optimization/107497
3129 * tree-vrp.cc (remove_unreachable::remove_and_update_globals):
3130 Check that ssa-name still exists before accessing it.
3132 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
3134 * params.opt (param_vrp1_mode): Make ranger default.
3136 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
3138 * tree-vrp.cc (class remove_unreachable): New.
3139 (remove_unreachable::maybe_register_block): New.
3140 (remove_unreachable::remove_and_update_globals): New.
3141 (rvrp_folder::rvrp_folder): Initialize m_unreachable.
3142 (rvrp_folder::post_fold_bb): Maybe register unreachable block.
3143 (rvrp_folder::m_unreachable): New member.
3144 (execute_ranger_vrp): Add final_pass flag, remove unreachables.
3146 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
3148 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Allow
3149 exit block to be specified.
3150 (ranger_cache::range_from_dom): If exit block is specified, use
3151 the immediate predecessor instead of the dominator to start.
3152 * gimple-range.cc (gimple_ranger::range_on_exit): Allow query
3155 2022-11-01 Andrew MacLeod <amacleod@redhat.com>
3157 * value-range.cc (irange::intersect_nonzero_bits): If new
3158 non-zero mask is the same as original, flag no change.
3160 2022-11-01 Alexander Monakov <amonakov@ispras.ru>
3163 * config/i386/znver.md (znver1_idiv): New automaton.
3164 (znver1-idiv): New unit.
3165 (znver1_idiv_DI): Correct unit and cycles in the reservation.
3166 (znver1_idiv_SI): Ditto.
3167 (znver1_idiv_HI): Ditto.
3168 (znver1_idiv_QI): Ditto.
3169 (znver1_idiv_mem_DI): Ditto.
3170 (znver1_idiv_mem_SI): Ditto.
3171 (znver1_idiv_mem_HI): Ditto.
3172 (znver1_idiv_mem_QI): Ditto.
3173 (znver3_idiv_DI): Ditto.
3174 (znver3_idiv_SI): Ditto.
3175 (znver3_idiv_HI): Ditto.
3176 (znver3_idiv_QI): Ditto.
3177 (znver3_idiv_mem_DI): Ditto.
3178 (znver3_idiv_mem_SI): Ditto.
3179 (znver3_idiv_mem_HI): Ditto.
3180 (znver3_idiv_mem_QI): Ditto.
3182 2022-11-01 liuhongt <hongtao.liu@intel.com>
3185 * config/i386/sse.md (*vec_interleave_highv2df): Remove
3187 (*vec_interleave_lowv2df): Ditto.
3188 (vec_concatv2df): Ditto.
3189 (*avx512f_unpcklpd512<mask_name>): Ditto and renamed to ..
3190 (avx512f_unpcklpd512<mask_name>): .. this.
3191 (avx512f_movddup512<mask_name>): Change to define_insn.
3192 (avx_movddup256<mask_name>): Ditto.
3193 (*avx_unpcklpd256<mask_name>): Remove constraint 1 and renamed
3195 (avx_unpcklpd256<mask_name>): .. this.
3196 * config/i386/i386.cc (ix86_vec_interleave_v2df_operator_ok):
3197 Disallow MEM_P (op1) && MEM_P (op2).
3199 2022-11-01 liuhongt <hongtao.liu@intel.com>
3202 * config/i386/i386.md (*x86_64_shld_1): Rename to ..
3203 (x86_64_shld_1): .. this.
3204 (*x86_shld_1): Rename to ..
3205 (x86_shld_1): .. this.
3206 (*x86_64_shrd_1): Rename to ..
3207 (x86_64_shrd_1): .. this.
3208 (*x86_shrd_1): Rename to ..
3209 (x86_shrd_1): .. this.
3210 (*x86_64_shld_shrd_1_nozext): New pre_reload splitter.
3211 (*x86_shld_shrd_1_nozext): Ditto.
3212 (*x86_64_shrd_shld_1_nozext): Ditto.
3213 (*x86_shrd_shld_1_nozext): Ditto.
3215 2022-11-01 Cui,Lili <lili.cui@intel.com>
3217 * ipa-inline-analysis.cc (do_estimate_edge_time): Add function attribute
3218 judgement for INLINE_HINT_known_hot hint.
3220 2022-10-31 Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
3222 * btfout.cc (btf_calc_num_vbytes): Compute enumeration size depending of
3223 enumerator type btf_enum{,64}.
3224 (btf_asm_type): Update btf_kflag according to enumeration type sign
3225 using dtd_enum_unsigned field for both: BTF_KIND_ENUM{,64}.
3226 (btf_asm_enum_const): New argument to represent the size of
3227 the BTF enum type, writing the enumerator constant value for
3228 32 bits, if it's 64 bits then explicitly writes lower 32-bits
3229 value and higher 32-bits value.
3230 (output_asm_btf_enum_list): Add enumeration size argument.
3231 * ctfc.cc (ctf_add_enum): New argument to represent CTF enum
3233 (ctf_add_generic): Use of ei_{name. size, unsigned} to build the
3234 dtd structure containing enumeration information.
3235 (ctf_add_enumerator): Update comment mention support for BTF
3236 enumeration in 64-bits.
3237 * dwarf2ctf.cc (gen_ctf_enumeration_type): Extract signedness
3238 for enumeration type and use it in ctf_add_enum.
3239 * ctfc.h (ctf_dmdef): Update dmd_value to HOST_WIDE_INT to allow
3240 use 32/64 bits enumerators.
3242 (ctf_dtdef): New field to describe enum signedness.
3244 2022-10-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3246 * config/riscv/riscv-vector-builtins-bases.cc: Change constexpr back to CONSTEXPR.
3247 * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Ditto.
3248 * config/riscv/riscv-vector-builtins.cc (struct registered_function_hasher): Ditto.
3249 * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): Ditto.
3251 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
3253 * config/gcn/gcn-valu.md (fminmaxop): New iterator.
3254 (<fexpander><mode>3): New define_expand.
3255 (<fexpander><mode>3<exec>): Likewise.
3256 (reduc_<fexpander>_scal_<mode>): Likewise.
3257 * config/gcn/gcn.md (fexpander): New attribute.
3259 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
3261 * config/gcn/gcn-valu.md (V64_SI): Delete iterator.
3263 (V64_1REG): Likewise.
3264 (V64_INT_1REG): Likewise.
3265 (V64_2REG): Likewise.
3266 (V64_ALL): Likewise.
3268 (reduc_<reduc_op>_scal_<mode>): Use V_ALL. Use gen_vec_extract.
3269 (fold_left_plus_<mode>): Use V_FP.
3270 (*<reduc_op>_dpp_shr_<mode>): Use V_1REG.
3271 (*<reduc_op>_dpp_shr_<mode>): Use V_DI.
3272 (*plus_carry_dpp_shr_<mode>): Use V_INT_1REG.
3273 (*plus_carry_in_dpp_shr_<mode>): Use V_SI.
3274 (*plus_carry_dpp_shr_<mode>): Use V_DI.
3275 (mov_from_lane63_<mode>): Delete.
3276 (mov_from_lane63_<mode>): Delete.
3277 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Support partial vectors.
3278 * config/gcn/gcn.md (unspec): Remove UNSPEC_MOV_FROM_LANE63.
3280 2022-10-31 Andrew Stubbs <ams@codesourcery.com>
3282 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
3283 Set base_type as ARG_UNUSED.
3285 2022-10-31 Jakub Jelinek <jakub@redhat.com>
3287 * builtin-types.def (BT_COMPLEX_FLOAT16, BT_COMPLEX_FLOAT32,
3288 BT_COMPLEX_FLOAT64, BT_COMPLEX_FLOAT128, BT_COMPLEX_FLOAT32X,
3289 BT_COMPLEX_FLOAT64X, BT_COMPLEX_FLOAT128X,
3290 BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
3291 BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
3292 BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
3293 BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
3294 BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
3295 BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
3296 BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X,
3297 BT_FN_FLOAT16_COMPLEX_FLOAT16, BT_FN_FLOAT32_COMPLEX_FLOAT32,
3298 BT_FN_FLOAT64_COMPLEX_FLOAT64, BT_FN_FLOAT128_COMPLEX_FLOAT128,
3299 BT_FN_FLOAT32X_COMPLEX_FLOAT32X, BT_FN_FLOAT64X_COMPLEX_FLOAT64X,
3300 BT_FN_FLOAT128X_COMPLEX_FLOAT128X,
3301 BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
3302 BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
3303 BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
3304 BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
3305 BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
3306 BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
3307 BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X): New.
3308 * builtins.def (CABS_TYPE, CACOSH_TYPE, CARG_TYPE, CASINH_TYPE,
3309 CPOW_TYPE, CPROJ_TYPE): Define and undefine later.
3310 (BUILT_IN_CABS, BUILT_IN_CACOSH, BUILT_IN_CACOS, BUILT_IN_CARG,
3311 BUILT_IN_CASINH, BUILT_IN_CASIN, BUILT_IN_CATANH, BUILT_IN_CATAN,
3312 BUILT_IN_CCOSH, BUILT_IN_CCOS, BUILT_IN_CEXP, BUILT_IN_CLOG,
3313 BUILT_IN_CPOW, BUILT_IN_CPROJ, BUILT_IN_CSINH, BUILT_IN_CSIN,
3314 BUILT_IN_CSQRT, BUILT_IN_CTANH, BUILT_IN_CTAN): Add
3315 DEF_EXT_LIB_FLOATN_NX_BUILTINS.
3316 * fold-const-call.cc (fold_const_call_sc, fold_const_call_cc,
3317 fold_const_call_ccc): Add various CASE_CFN_*_FN: cases when
3318 CASE_CFN_* is present.
3319 * gimple-ssa-backprop.cc (backprop::process_builtin_call_use):
3321 * builtins.cc (expand_builtin, fold_builtin_1): Likewise.
3322 * fold-const.cc (negate_mathfn_p, tree_expr_finite_p,
3323 tree_expr_maybe_signaling_nan_p, tree_expr_maybe_nan_p,
3324 tree_expr_maybe_real_minus_zero_p, tree_call_nonnegative_warnv_p):
3327 2022-10-31 Jakub Jelinek <jakub@redhat.com>
3329 * builtin-types.def (BT_FN_BFLOAT16_BFLOAT16_BFLOAT16): New.
3330 * builtins.def (BUILT_IN_NEXTAFTERF16B): New builtin.
3331 * fold-const-call.cc (fold_const_call_sss): Handle
3332 CFN_BUILT_IN_NEXTAFTERF16B.
3334 2022-10-31 Jakub Jelinek <jakub@redhat.com>
3336 * builtin-types.def (BT_FLOAT16_PTR, BT_FLOAT32_PTR, BT_FLOAT64_PTR,
3337 BT_FLOAT128_PTR, BT_FLOAT32X_PTR, BT_FLOAT64X_PTR, BT_FLOAT128X_PTR):
3338 New DEF_PRIMITIVE_TYPE.
3339 (BT_FN_INT_FLOAT16, BT_FN_INT_FLOAT32, BT_FN_INT_FLOAT64,
3340 BT_FN_INT_FLOAT128, BT_FN_INT_FLOAT32X, BT_FN_INT_FLOAT64X,
3341 BT_FN_INT_FLOAT128X, BT_FN_LONG_FLOAT16, BT_FN_LONG_FLOAT32,
3342 BT_FN_LONG_FLOAT64, BT_FN_LONG_FLOAT128, BT_FN_LONG_FLOAT32X,
3343 BT_FN_LONG_FLOAT64X, BT_FN_LONG_FLOAT128X, BT_FN_LONGLONG_FLOAT16,
3344 BT_FN_LONGLONG_FLOAT32, BT_FN_LONGLONG_FLOAT64,
3345 BT_FN_LONGLONG_FLOAT128, BT_FN_LONGLONG_FLOAT32X,
3346 BT_FN_LONGLONG_FLOAT64X, BT_FN_LONGLONG_FLOAT128X): New
3347 DEF_FUNCTION_TYPE_1.
3348 (BT_FN_FLOAT16_FLOAT16_FLOAT16PTR, BT_FN_FLOAT32_FLOAT32_FLOAT32PTR,
3349 BT_FN_FLOAT64_FLOAT64_FLOAT64PTR, BT_FN_FLOAT128_FLOAT128_FLOAT128PTR,
3350 BT_FN_FLOAT32X_FLOAT32X_FLOAT32XPTR,
3351 BT_FN_FLOAT64X_FLOAT64X_FLOAT64XPTR,
3352 BT_FN_FLOAT128X_FLOAT128X_FLOAT128XPTR, BT_FN_FLOAT16_FLOAT16_INT,
3353 BT_FN_FLOAT32_FLOAT32_INT, BT_FN_FLOAT64_FLOAT64_INT,
3354 BT_FN_FLOAT128_FLOAT128_INT, BT_FN_FLOAT32X_FLOAT32X_INT,
3355 BT_FN_FLOAT64X_FLOAT64X_INT, BT_FN_FLOAT128X_FLOAT128X_INT,
3356 BT_FN_FLOAT16_FLOAT16_INTPTR, BT_FN_FLOAT32_FLOAT32_INTPTR,
3357 BT_FN_FLOAT64_FLOAT64_INTPTR, BT_FN_FLOAT128_FLOAT128_INTPTR,
3358 BT_FN_FLOAT32X_FLOAT32X_INTPTR, BT_FN_FLOAT64X_FLOAT64X_INTPTR,
3359 BT_FN_FLOAT128X_FLOAT128X_INTPTR, BT_FN_FLOAT16_FLOAT16_LONG,
3360 BT_FN_FLOAT32_FLOAT32_LONG, BT_FN_FLOAT64_FLOAT64_LONG,
3361 BT_FN_FLOAT128_FLOAT128_LONG, BT_FN_FLOAT32X_FLOAT32X_LONG,
3362 BT_FN_FLOAT64X_FLOAT64X_LONG, BT_FN_FLOAT128X_FLOAT128X_LONG): New
3363 DEF_FUNCTION_TYPE_2.
3364 (BT_FN_FLOAT16_FLOAT16_FLOAT16_INTPTR,
3365 BT_FN_FLOAT32_FLOAT32_FLOAT32_INTPTR,
3366 BT_FN_FLOAT64_FLOAT64_FLOAT64_INTPTR,
3367 BT_FN_FLOAT128_FLOAT128_FLOAT128_INTPTR,
3368 BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_INTPTR,
3369 BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_INTPTR,
3370 BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_INTPTR): New DEF_FUNCTION_TYPE_3.
3371 * builtins.def (ACOSH_TYPE, ATAN2_TYPE, ATANH_TYPE, COSH_TYPE,
3372 FDIM_TYPE, HUGE_VAL_TYPE, HYPOT_TYPE, ILOGB_TYPE, LDEXP_TYPE,
3373 LGAMMA_TYPE, LLRINT_TYPE, LOG10_TYPE, LRINT_TYPE, MODF_TYPE,
3374 NEXTAFTER_TYPE, REMQUO_TYPE, SCALBLN_TYPE, SCALBN_TYPE, SINH_TYPE):
3375 Define and undefine later.
3376 (FMIN_TYPE, SQRT_TYPE): Undefine at a later line.
3377 (INF_TYPE): Define at a later line.
3378 (BUILT_IN_ACOSH, BUILT_IN_ACOS, BUILT_IN_ASINH, BUILT_IN_ASIN,
3379 BUILT_IN_ATAN2, BUILT_IN_ATANH, BUILT_IN_ATAN, BUILT_IN_CBRT,
3380 BUILT_IN_COSH, BUILT_IN_COS, BUILT_IN_ERFC, BUILT_IN_ERF,
3381 BUILT_IN_EXP2, BUILT_IN_EXP, BUILT_IN_EXPM1, BUILT_IN_FDIM,
3382 BUILT_IN_FMOD, BUILT_IN_FREXP, BUILT_IN_HYPOT, BUILT_IN_ILOGB,
3383 BUILT_IN_LDEXP, BUILT_IN_LGAMMA, BUILT_IN_LLRINT, BUILT_IN_LLROUND,
3384 BUILT_IN_LOG10, BUILT_IN_LOG1P, BUILT_IN_LOG2, BUILT_IN_LOGB,
3385 BUILT_IN_LOG, BUILT_IN_LRINT, BUILT_IN_LROUND, BUILT_IN_MODF,
3386 BUILT_IN_NEXTAFTER, BUILT_IN_POW, BUILT_IN_REMAINDER, BUILT_IN_REMQUO,
3387 BUILT_IN_SCALBLN, BUILT_IN_SCALBN, BUILT_IN_SINH, BUILT_IN_SIN,
3388 BUILT_IN_TANH, BUILT_IN_TAN, BUILT_IN_TGAMMA): Add
3389 DEF_EXT_LIB_FLOATN_NX_BUILTINS.
3390 (BUILT_IN_HUGE_VAL): Use HUGE_VAL_TYPE instead of INF_TYPE in
3391 DEF_GCC_FLOATN_NX_BUILTINS.
3392 * fold-const-call.cc (fold_const_call_ss): Add various CASE_CFN_*_FN:
3393 cases when CASE_CFN_* is present.
3394 (fold_const_call_sss): Likewise.
3395 * builtins.cc (mathfn_built_in_2): Use CASE_MATHFN_FLOATN instead of
3396 CASE_MATHFN for various builtins in SEQ_OF_CASE_MATHFN macro.
3397 (builtin_with_linkage_p): Add CASE_FLT_FN_FLOATN_NX for various
3398 builtins next to CASE_FLT_FN.
3399 * fold-const.cc (tree_call_nonnegative_warnv_p): Add CASE_CFN_*_FN:
3400 next to CASE_CFN_*: for various builtins.
3401 * tree-call-cdce.cc (can_test_argument_range): Add
3402 CASE_FLT_FN_FLOATN_NX next to CASE_FLT_FN for various builtins.
3403 (edom_only_function): Likewise.
3405 2022-10-31 konglin1 <lingling.kong@intel.com>
3407 * common/config/i386/i386-common.cc
3408 (OPTION_MASK_ISA2_AVXNECONVERT_SET,
3409 OPTION_MASK_ISA2_AVXNECONVERT_UNSET): New.
3410 (ix86_handle_option): Handle -mavxneconvert, unset
3411 avxneconvert when avx2 is disabled.
3412 * common/config/i386/i386-cpuinfo.h (processor_types): Add
3413 FEATURE_AVXNECONVERT.
3414 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
3416 * common/config/i386/cpuinfo.h (get_available_features):
3417 Detect avxneconvert.
3418 * config.gcc: Add avxneconvertintrin.h
3419 * config/i386/avxneconvertintrin.h: New.
3420 * config/i386/avx512bf16vlintrin.h (_mm256_cvtneps_pbh):
3421 Unified builtin with avxneconvert.
3422 (_mm_cvtneps_pbh): Ditto.
3423 * config/i386/cpuid.h (bit_AVXNECONVERT): New.
3424 * config/i386/i386-builtin-types.def: Add
3425 DEF_POINTER_TYPE (PCV8HF, V8HF, CONST),
3426 DEF_POINTER_TYPE (PCV8BF, V8BF, CONST),
3427 DEF_POINTER_TYPE (PCV16HF, V16HF, CONST),
3428 DEF_POINTER_TYPE (PCV16BF, V16BF, CONST),
3429 DEF_FUNCTION_TYPE (V4SF, PCBFLOAT16),
3430 DEF_FUNCTION_TYPE (V4SF, PCFLOAT16),
3431 DEF_FUNCTION_TYPE (V8SF, PCBFLOAT16),
3432 DEF_FUNCTION_TYPE (V8SF, PCFLOAT16),
3433 DEF_FUNCTION_TYPE (V4SF, PCV8BF),
3434 DEF_FUNCTION_TYPE (V4SF, PCV8HF),
3435 DEF_FUNCTION_TYPE (V8SF, PCV16HF),
3436 DEF_FUNCTION_TYPE (V8SF, PCV16BF),
3437 * config/i386/i386-builtin.def: Add new builtins.
3438 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
3440 * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
3441 Handle V4SF_FTYPE_PCBFLOAT16,V8SF_FTYPE_PCBFLOAT16, V4SF_FTYPE_PCFLOAT16,
3442 V8SF_FTYPE_PCFLOAT16,V4SF_FTYPE_PCV8BF,
3443 V4SF_FTYPE_PCV8HF,V8SF_FTYPE_PCV16BF,V8SF_FTYPE_PCV16HF.
3444 * config/i386/i386-isa.def : Add DEF_PTA(AVXNECONVERT) New.
3445 * config/i386/i386-options.cc (isa2_opts): Add -mavxneconvert.
3446 (ix86_valid_target_attribute_inner_p): Handle avxneconvert.
3447 * config/i386/i386.md: Add attr avx512bf16vl and avxneconvert.
3448 * config/i386/i386.opt: Add option -mavxneconvert.
3449 * config/i386/immintrin.h: Inculde avxneconvertintrin.h.
3450 * config/i386/sse.md (vbcstnebf162ps_<mode>): New define_insn.
3451 (vbcstnesh2ps_<mode>): Ditto.
3452 (vcvtnee<bf16_ph>2ps_<mode>):Ditto.
3453 (vcvtneo<bf16_ph>2ps_<mode>):Ditto.
3454 (vcvtneps2bf16_v4sf): Ditto.
3455 (*vcvtneps2bf16_v4sf): Ditto.
3456 (vcvtneps2bf16_v8sf): Ditto.
3457 * doc/invoke.texi: Document -mavxneconvert.
3458 * doc/extend.texi: Document avxneconvert.
3459 * doc/sourcebuild.texi: Document target avxneconvert.
3461 2022-10-31 konglin1 <lingling.kong@intel.com>
3463 * config/i386/avx512bf16intrin.h (__attribute__): Change short to bf16.
3464 (_mm_cvtsbh_ss): Ditto.
3465 (_mm512_cvtne2ps_pbh): Ditto.
3466 (_mm512_mask_cvtne2ps_pbh): Ditto.
3467 (_mm512_maskz_cvtne2ps_pbh): Ditto.
3468 * config/i386/avx512bf16vlintrin.h (__attribute__): Ditto.
3469 (_mm256_cvtne2ps_pbh): Ditto.
3470 (_mm256_mask_cvtne2ps_pbh): Ditto.
3471 (_mm256_maskz_cvtne2ps_pbh): Ditto.
3472 (_mm_cvtne2ps_pbh): Ditto.
3473 (_mm_mask_cvtne2ps_pbh): Ditto.
3474 (_mm_maskz_cvtne2ps_pbh): Ditto.
3475 (_mm_cvtness_sbh): Ditto.
3476 * config/i386/i386-builtin-types.def (V8BF): Add new
3477 DEF_VECTOR_TYPE for BFmode.
3480 * config/i386/i386-builtin.def (BDESC): Fixed builtins.
3481 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Changed
3482 avx512bf16 ix86_builtin_func_type included HI to BF.
3483 * config/i386/immintrin.h: Add SSE2 depend for avx512bf16.
3484 * config/i386/sse.md (TARGET_AVX512VL): Changed HI vector to BF
3486 (avx512f_cvtneps2bf16_v4sf): New define_expand.
3487 (*avx512f_cvtneps2bf16_v4sf): New define_insn.
3488 (avx512f_cvtneps2bf16_v4sf_maskz):Ditto.
3489 (avx512f_cvtneps2bf16_v4sf_mask): Ditto.
3490 (avx512f_cvtneps2bf16_v4sf_mask_1): Ditto.
3492 2022-10-31 liuhongt <hongtao.liu@intel.com>
3495 * config/i386/i386-modes.def (VECTOR_MODE): Support V2BFmode.
3496 * config/i386/i386.cc (classify_argument): Handle V4BFmode and
3498 (ix86_convert_const_vector_to_integer): Ditto.
3499 * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Remove
3501 (VALID_SSE2_REG_MODE): Add V4BFmode and V2BFmode.
3502 (VALID_MMX_REG_MODE): Add V4BFmode.
3503 * config/i386/i386.md (mode): Add V4BF and V2BF.
3505 * config/i386/mmx.md (MMXMODE) Add V4BF.
3507 (V_16_32_64): Add V4BF and V2BF.
3508 (mmxinsnmode): Add V4BF and V2BF.
3509 (*mov<mode>_internal): Hanlde V4BFmode and V2BFmode.
3511 2022-10-29 Eric Botcazou <ebotcazou@adacore.com>
3513 * configure.ac (sjlj-exceptions): Restore dropped line.
3514 * configure: Regenerate.
3516 2022-10-29 Eric Botcazou <ebotcazou@adacore.com>
3518 * alias.cc (init_alias_analysis): Do not record sets to the hard
3519 frame pointer if the frame pointer has not been eliminated.
3521 2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org>
3523 * config/darwin-d.cc (TARGET_D_MINFO_START_NAME): Rename to ...
3524 (TARGET_D_MINFO_SECTION_START): ...this.
3525 (TARGET_D_MINFO_END_NAME): Rename to ...
3526 (TARGET_D_MINFO_SECTION_END): ... this.
3527 * config/elfos.h (TARGET_D_MINFO_SECTION): Remove.
3528 (TARGET_D_MINFO_START_NAME): Remove.
3529 (TARGET_D_MINFO_END_NAME): Remove.
3530 * config/i386/cygwin-d.cc (TARGET_D_MINFO_SECTION): Remove.
3531 (TARGET_D_MINFO_START_NAME): Remove.
3532 (TARGET_D_MINFO_END_NAME): Remove.
3533 * config/i386/winnt-d.cc (TARGET_D_MINFO_SECTION): Remove.
3534 (TARGET_D_MINFO_START_NAME): Remove.
3535 (TARGET_D_MINFO_END_NAME): Remove.
3536 * doc/tm.texi: Regenerate.
3537 * doc/tm.texi.in (TARGET_D_MINFO_START_NAME): Rename to ...
3538 (TARGET_D_MINFO_SECTION_START): ...this.
3539 (TARGET_D_MINFO_END_NAME): Rename to ...
3540 (TARGET_D_MINFO_SECTION_END): ...this.
3542 2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org>
3544 * config.gcc: Split out glibc-d.o into linux-d.o, kfreebsd-d.o,
3545 kopensolaris-d.o, and gnu-d.o. Split out cygwin-d.o from winnt-d.o.
3546 * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
3547 * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
3548 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
3549 * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
3550 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
3551 * config/i386/t-cygming: Add cygwin-d.o.
3552 * config/i386/winnt-d.cc (winnt_d_os_builtins): Only add
3553 MinGW-specific version condition.
3554 * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
3555 * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
3556 * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Remove.
3557 * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
3558 * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
3559 * config/t-glibc: Remove glibc-d.o, add gnu-d.o, kfreebsd-d.o,
3561 * config/t-linux: Add linux-d.o.
3562 * config/glibc-d.cc: Remove file.
3563 * config/gnu-d.cc: New file.
3564 * config/i386/cygwin-d.cc: New file.
3565 * config/kfreebsd-d.cc: New file.
3566 * config/kopensolaris-d.cc: New file.
3567 * config/linux-d.cc: New file.
3569 2022-10-29 Jeff Law <jeffreyalaw@gmail.com>
3571 * config/h8300/h8300.cc (pre_incdec_with_reg): Make reg argument
3573 * config/h8300/h8300-protos.h (pre_incdec_with_reg): Adjust prototype.
3575 2022-10-28 Joseph Myers <joseph@codesourcery.com>
3577 * config/aarch64/aarch64.cc (aarch64_setup_incoming_varargs):
3578 Check TYPE_NO_NAMED_ARGS_STDARG_P.
3579 * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Likewise.
3580 * config/arc/arc.cc (arc_setup_incoming_varargs): Likewise.
3581 * config/arm/arm.cc (arm_setup_incoming_varargs): Likewise.
3582 * config/csky/csky.cc (csky_setup_incoming_varargs): Likewise.
3583 * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs):
3585 * config/fr30/fr30.cc (fr30_setup_incoming_varargs): Likewise.
3586 * config/frv/frv.cc (frv_setup_incoming_varargs): Likewise.
3587 * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Likewise.
3588 * config/i386/i386.cc (ix86_setup_incoming_varargs): Likewise.
3589 * config/ia64/ia64.cc (ia64_setup_incoming_varargs): Likewise.
3590 * config/loongarch/loongarch.cc
3591 (loongarch_setup_incoming_varargs): Likewise.
3592 * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Likewise.
3593 * config/mcore/mcore.cc (mcore_setup_incoming_varargs): Likewise.
3594 * config/mips/mips.cc (mips_setup_incoming_varargs): Likewise.
3595 * config/mmix/mmix.cc (mmix_setup_incoming_varargs): Likewise.
3596 * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Likewise.
3597 * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Likewise.
3598 * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Likewise.
3599 * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Likewise.
3600 * config/sh/sh.cc (sh_setup_incoming_varargs): Likewise.
3601 * config/visium/visium.cc (visium_setup_incoming_varargs):
3603 * config/vms/vms-c.cc (vms_c_common_override_options): Do not set
3604 flag_allow_parameterless_variadic_functions.
3605 * doc/invoke.texi (-fallow-parameterless-variadic-functions): Do
3606 not document option.
3607 * function.cc (assign_parms): Call assign_parms_setup_varargs for
3608 TYPE_NO_NAMED_ARGS_STDARG_P case.
3609 * ginclude/stdarg.h [__STDC_VERSION__ > 201710L] (va_start): Make
3610 variadic macro. Pass second argument of 0 to __builtin_va_start.
3611 * target.def (setup_incoming_varargs): Update documentation.
3612 * doc/tm.texi: Regenerate.
3613 * tree-core.h (struct tree_type_common): Add
3614 no_named_args_stdarg_p.
3615 * tree-streamer-in.cc (unpack_ts_type_common_value_fields): Unpack
3616 TYPE_NO_NAMED_ARGS_STDARG_P.
3617 * tree-streamer-out.cc (pack_ts_type_common_value_fields): Pack
3618 TYPE_NO_NAMED_ARGS_STDARG_P.
3619 * tree.cc (type_cache_hasher::equal): Compare
3620 TYPE_NO_NAMED_ARGS_STDARG_P.
3621 (build_function_type): Add argument no_named_args_stdarg_p.
3622 (build_function_type_list_1, build_function_type_array_1)
3623 (reconstruct_complex_type): Update calls to build_function_type.
3624 (stdarg_p, prototype_p): Return true for (...) functions.
3625 (gimple_canonical_types_compatible_p): Compare
3626 TYPE_NO_NAMED_ARGS_STDARG_P.
3627 * tree.h (TYPE_NO_NAMED_ARGS_STDARG_P): New.
3628 (build_function_type): Update prototype.
3630 2022-10-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
3632 PR tree-optimization/107346
3633 * tree-vect-data-refs.cc (vect_check_gather_scatter): Reject offsets
3634 that aren't multiples of BITS_PER_UNIT.
3636 2022-10-28 Richard Biener <rguenther@suse.de>
3638 PR tree-optimization/107407
3639 * tree-ssa-dse.cc (dse_classify_store): Perform backedge
3640 varying index check when collecting PHI uses rather than
3641 after optimizing processing of the candidate defs.
3643 2022-10-28 Richard Biener <rguenther@suse.de>
3645 PR tree-optimization/107447
3646 * tree-ssa-loop-im.cc (determine_max_movement): Do not
3647 hoist returns-twice calls.
3649 2022-10-28 Richard Biener <rguenther@suse.de>
3651 PR tree-optimization/107435
3652 * tree-vect-loop.cc (vectorizable_recurr): Convert initial
3653 value to vector component type.
3655 2022-10-28 Julian Brown <julian@codesourcery.com>
3656 Thomas Schwinge <thomas@codesourcery.com>
3659 * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not
3660 privatization candidates.
3662 2022-10-28 Martin Liska <mliska@suse.cz>
3665 * doc/invoke.texi: Document sanitizers can trigger warnings.
3667 2022-10-28 Thomas Schwinge <thomas@codesourcery.com>
3669 * doc/makefile.texi (Makefile Targets): Document
3670 'distclean-stage[N]'.
3672 2022-10-28 Aldy Hernandez <aldyh@redhat.com>
3674 * value-range.cc (range_tests_floats): Use HONOR_INFINITIES.
3676 2022-10-27 Eric Botcazou <ebotcazou@adacore.com>
3678 * config/aarch64/aarch64.h (DONT_USE_BUILTIN_SETJMP): Delete.
3680 2022-10-27 H.J. Lu <hjl.tools@gmail.com>
3683 * config/i386/i386.md (UNSPEC_CC_NE): New.
3684 Replace ne:CCC/ne:CCO with UNSPEC_CC_NE in neg patterns.
3686 2022-10-27 Andrew Pinski <apinski@marvell.com>
3688 * tree-ssa-phiopt.cc: Include tree-ssa-dce.h
3689 (replace_phi_edge_with_variable):
3690 New argument, dce_ssa_names. Call simple_dce_from_worklist.
3691 (match_simplify_replacement): If we inserted a sequence,
3692 mark the lhs of the new sequence to be possible dce.
3693 Always move the statement and mark the lhs (if it is a name)
3694 as possible to remove.
3696 2022-10-27 Richard Sandiford <richard.sandiford@arm.com>
3698 * config/aarch64/aarch64-protos.h: Replace constexpr with
3700 * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
3701 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
3702 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
3703 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
3704 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
3705 * config/aarch64/aarch64.cc: Likewise.
3706 * config/aarch64/driver-aarch64.cc: Likewise
3708 2022-10-27 Aldy Hernandez <aldyh@redhat.com>
3710 PR tree-optimization/107394
3711 * value-range-storage.cc (frange_storage_slot::get_frange): Use
3714 2022-10-27 Thomas Schwinge <thomas@codesourcery.com>
3716 * optc-save-gen.awk: Clarify 'Init' option property usage for
3717 streaming optimization.
3719 2022-10-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
3720 Yvan ROUX <yvan.roux@foss.st.com>
3722 * ira.cc: Resize array after reg number increased.
3724 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
3725 Sinan Lin <sinan@isrc.iscas.ac.cn>
3727 * config/riscv/constraints.md (TARGET_ZFINX ? GR_REGS): Set GPRS
3728 use while Zfinx is enable.
3729 * config/riscv/riscv.cc (riscv_hard_regno_mode_ok): Limit odd
3730 registers use when Zdinx enable in RV32 cases.
3731 (riscv_option_override): New target enable MASK_FDIV.
3732 (riscv_libgcc_floating_mode_supported_p): New error info when
3733 use incompatible arch&abi.
3734 (riscv_excess_precision): New target enable FLOAT16.
3736 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
3738 * config/riscv/iterators.md (TARGET_ZFINX):New target.
3739 (TARGET_ZDINX): Ditto.
3740 (TARGET_ZHINX): Ditto.
3741 * config/riscv/riscv-builtins.cc (AVAIL): Ditto.
3742 (riscv_atomic_assign_expand_fenv): Ditto.
3743 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Ditto.
3744 * config/riscv/riscv.md: Ditto.
3746 2022-10-27 Jiawei <jiawei@iscas.ac.cn>
3747 Sinan Lin <sinan@isrc.iscas.ac.cn>
3749 * common/config/riscv/riscv-common.cc: New extensions.
3750 * config/riscv/arch-canonicalize: New imply relations.
3751 * config/riscv/riscv-opts.h (MASK_ZFINX): New mask.
3752 (MASK_ZDINX): Ditto.
3753 (MASK_ZHINX): Ditto.
3754 (MASK_ZHINXMIN): Ditto.
3755 (TARGET_ZFINX): New target.
3756 (TARGET_ZDINX): Ditto.
3757 (TARGET_ZHINX): Ditto.
3758 (TARGET_ZHINXMIN): Ditto.
3759 * config/riscv/riscv.opt: New target variable.
3761 2022-10-26 David Faust <david.faust@oracle.com>
3763 * config/bpf/bpf.cc: Support __builtin_preserve_field_info.
3764 (enum bpf_builtins): Add new builtin.
3765 (bpf_init_builtins): Likewise.
3766 (bpf_core_field_info): New function.
3767 (bpf_expand_builtin): Accomodate new builtin. Refactor adding new
3769 (maybe_make_core_relo): ... here. New function.
3770 (bpf_resolve_overloaded_builtin): Accomodate new builtin.
3771 (bpf_core_newdecl): Likewise.
3772 (bpf_core_walk): Likewise.
3773 (bpf_core_is_maybe_aggregate_access): Improve logic.
3774 (struct core_walk_data): New.
3775 * config/bpf/coreout.cc (bpf_core_reloc_add): Allow adding different
3777 * config/bpf/coreout.h: Analogous change.
3778 * doc/extend.texi: Document BPF __builtin_preserve_field_info.
3780 2022-10-26 Marek Polacek <polacek@redhat.com>
3783 * doc/invoke.texi: Document -Wdangling-reference.
3785 2022-10-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3787 * config/xtensa/xtensa.md (movdi):
3788 Copy operands[0...1] to ops[0...3] and then use the latter before
3789 calling xtensa_split_DI_reg_imm() and emitting insns.
3791 2022-10-26 Alexander Monakov <amonakov@ispras.ru>
3794 * ipa-visibility.cc (function_and_variable_visibility):
3795 Conditionally upgrade TLS model instead of asserting.
3797 2022-10-26 Andrew MacLeod <amacleod@redhat.com>
3799 * gimple-range-fold.cc (fold_using_range::fold_stmt): Check if
3800 stmt is non-negative and adjust the range.
3802 2022-10-26 Martin Liska <mliska@suse.cz>
3804 * common/config/i386/cpuinfo.h (has_cpu_feature): Add comment.
3805 (reset_cpu_feature): New.
3806 (get_zhaoxin_cpu): Use reset_cpu_feature.
3808 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3810 * config/riscv/riscv.cc (riscv_expand_epilogue): Fix statement.
3812 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3815 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Set to minimum size.
3816 (ADJUST_NUNITS): Adjust according to -march.
3817 (ADJUST_BYTESIZE): Ditto.
3818 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p):
3820 (riscv_v_ext_vector_mode_p): Change function implementation.
3821 * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher):
3822 Change to riscv_v_ext_vector_mode_p.
3823 (register_builtin_type): Ditto.
3824 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): Change to enabled
3827 (riscv_v_ext_enabled_vector_mode_p): Remove.
3828 (riscv_v_adjust_nunits): New function.
3829 (riscv_vector_mode_supported_p): Use riscv_v_ext_vector_mode_p instead.
3830 * config/riscv/riscv.h (riscv_v_adjust_nunits): New function.
3832 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3834 * config.gcc (riscv*): Add riscv-v.o to extra_objs.
3835 * config/riscv/constraints.md (vu): New constraint.
3839 * config/riscv/predicates.md (vector_length_operand): New.
3840 (reg_or_mem_operand): Ditto.
3841 (vector_move_operand): Ditto.
3842 (vector_mask_operand): Ditto.
3843 (vector_merge_operand): Ditto.
3844 * config/riscv/riscv-protos.h (riscv_regmode_natural_size) New.
3845 (riscv_vector::const_vec_all_same_in_range_p): Ditto.
3846 (riscv_vector::legitimize_move): Ditto.
3847 (tail_policy): Ditto.
3848 (mask_policy): Ditto.
3849 * config/riscv/riscv-v.cc: New.
3850 * config/riscv/riscv-vector-builtins-bases.cc
3851 (vsetvl::expand): Refactor how LMUL encoding.
3852 * config/riscv/riscv.cc (riscv_print_operand): Update how LMUL
3853 print and mask operand print.
3854 (riscv_regmode_natural_size): New.
3855 * config/riscv/riscv.h (REGMODE_NATURAL_SIZE): New.
3856 * config/riscv/riscv.md (mode): Add vector modes.
3857 * config/riscv/t-riscv (riscv-v.o) New.
3858 * config/riscv/vector-iterators.md: New.
3859 * config/riscv/vector.md (vundefined<mode>): New.
3862 (@vsetvl<mode>_no_side_effects): New.
3863 (@pred_mov<mode>): New.
3865 2022-10-26 Monk Chiang <monk.chiang@sifive.com>
3867 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
3868 Add svinval and svnapot extension.
3869 (riscv_ext_flag_table): Ditto.
3870 * config/riscv/riscv-opts.h (MASK_SVINVAL): New.
3871 (MASK_SVNAPOT): Ditto.
3872 (TARGET_SVINVAL): Ditto.
3873 (TARGET_SVNAPOT): Ditto.
3874 * config/riscv/riscv.opt (riscv_sv_subext): New.
3876 2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3878 * config/riscv/riscv-modes.def: Adjust table indentation in commnet.
3880 2022-10-26 Martin Liska <mliska@suse.cz>
3882 * configure: Regenerate.
3884 2022-10-26 Aldy Hernandez <aldyh@redhat.com>
3886 * value-range.cc (frange::set): Use HONOR_*.
3887 (frange::verify_range): Same.
3888 * value-range.h (frange_val_min): Same.
3889 (frange_val_max): Same.
3891 2022-10-26 Jiufu Guo <guojiufu@linux.ibm.com>
3894 * config/rs6000/rs6000.cc (rs6000_cannot_force_const_mem): Return true
3897 2022-10-26 Kito Cheng <kito.cheng@sifive.com>
3899 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
3901 (riscv_supported_std_ext): Ditto.
3902 (multi_letter_subset_rank): Remove `h`.
3903 (riscv_subset_list::parse_std_ext): Handle `h` as single letter
3905 (riscv_subset_list::parse): Ditto.
3907 2022-10-25 Eugene Rozenfeld <erozen@microsoft.com>
3909 * auto-profile.cc (get_combined_location): Include discriminator in the
3910 returned combined location.
3911 (read_function_instance): Read discriminators from profiles.
3913 2022-10-25 H.J. Lu <hjl.tools@gmail.com>
3916 * expr.cc (get_inner_reference): Always use TYPE_MODE for vector
3917 field with vector raw mode.
3919 2022-10-25 Segher Boessenkool <segher@kernel.crashing.org>
3921 * config/rs6000/rs6000.md (CCEITHER): Delete.
3924 (isel_<un>signed_<GPR:mode>): Rename to...
3925 (isel_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
3926 (*isel_reversed_<un>signed_<GPR:mode>): Rename to...
3927 (*isel_reversed_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
3928 (setbc_<un>signed_<GPR:mode>): Rename to...
3929 (setbc_<CCANY:mode>_<GPR:mode>C): ... this. Adjust."
3930 (*setbcr_<un>signed_<GPR:mode>): Rename to ...
3931 (*setbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
3932 (*setnbc_<un>signed_<GPR:mode>): Rename to ...
3933 (*setnbc_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
3934 (*setnbcr_<un>signed_<GPR:mode>): Rename to ...
3935 (*setnbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust.
3936 (eq<mode>3 for GPR): Adjust.
3937 (ne<mode>3 for GPR): Adjust.
3938 * config/rs6000/rs6000-string.cc (do_isel): Adjust.
3939 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Adjust.
3941 2022-10-25 Richard Biener <rguenther@suse.de>
3943 PR tree-optimization/107176
3944 PR tree-optimization/66375
3945 PR tree-optimization/42512
3946 * tree-scalar-evolution.cc (follow_ssa_edge_expr): Revert
3947 the PR66375 fix, do not not associate PLUS_EXPR to be able
3948 to use tail-recursion.
3949 (follow_ssa_edge_binary): Likewise.
3950 (interpret_loop_phi): Revert PR42512 fix, do not throw
3951 away analyze_evolution_in_loop result after the fact.
3952 (follow_ssa_edge_expr): When reaching halting_phi initalize
3953 the evolution to the symbolic value of the PHI result.
3954 (add_to_evolution_1): When adding the first evolution verify
3955 we can handle the expression wrapping the symbolic evolution
3956 and replace that in full using the initial condition.
3957 (class scev_dfs): New, contains ...
3958 (follow_ssa_edge_expr, follow_ssa_edge_binary,
3959 follow_ssa_edge_in_condition_phi_branch,
3960 follow_ssa_edge_in_condition_phi,
3961 follow_ssa_edge_inner_loop_phi,
3962 add_to_evolution, add_to_evolution_1): ... these with
3963 loop and halting_phi arguments in class data.
3964 (scev_dfs::get_ev): New toplevel DFS entry, start with
3965 a chrec_dont_know evolution.
3966 (analyze_evolution_in_loop): Use scev_dfs.
3968 2022-10-25 Eric Botcazou <ebotcazou@adacore.com>
3970 * profile.cc (branch_prob): Be prepared for ignored functions with
3971 DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION.
3973 2022-10-25 Richard Biener <rguenther@suse.de>
3975 * tree-scalar-evolution.cc (follow_ssa_edge_expr): Move
3976 STRIP_USELESS_TYPE_CONVERSIONS to where it matters.
3978 2022-10-25 Tejas Joshi <TejasSanjay.Joshi@amd.com>
3980 * common/config/i386/i386-common.cc (processor_alias_table): Use
3981 CPU_ZNVER3 for znver4.
3982 * config/i386/znver.md: Remove znver4 reservations.
3984 2022-10-25 Jakub Jelinek <jakub@redhat.com>
3986 * gimplify.cc (gimple_boolify): Fix comment typos, prduce -> produce
3989 2022-10-25 Jakub Jelinek <jakub@redhat.com>
3991 PR tree-optimization/107368
3992 * gimplify.cc (gimplify_call_expr): For complex IFN_ASSUME
3993 conditions call gimple_boolify on the condition.
3995 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
3997 * config.gcc: add -with-compact-branches=policy build option.
3998 * doc/install.texi: Likewise.
3999 * config/mips/mips.h: Likewise.
4001 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
4003 * config/mips/mips.cc (mips_option_override): not trigger error
4004 for compact-branches=always for pre-R6.
4005 * config/mips/mips.h (TARGET_RTP_PIC): not trigger error for
4006 compact-branches=always for pre-R6.
4007 (TARGET_CB_NEVER): Likewise.
4008 (TARGET_CB_ALWAYS): Likewise.
4009 (struct mips_cpu_info): define macros for compact branch policy.
4010 * doc/invoke.texi: Document "always" with pre-R6.
4012 2022-10-25 Jakub Jelinek <jakub@redhat.com>
4014 PR tree-optimization/107369
4015 * gimplify.cc (gimplify_call_expr): If seen_error, handle complex
4016 IFN_ASSUME the same as for -O0.
4018 2022-10-25 YunQiang Su <yunqiang.su@cipunited.com>
4020 * configure.ac: AC_DEFINE(ENABLE_MULTIARCH, 1)
4021 * configure: Regenerated.
4022 * config.in: Regenerated.
4023 * config/mips/mips.h: don't define STANDARD_STARTFILE_PREFIX_1
4024 if ENABLE_MULTIARCH is defined.
4025 * config/mips/t-linux64: define correct multiarch path when
4026 multiarch is enabled.
4028 2022-10-25 Richard Biener <rguenther@suse.de>
4030 PR tree-optimization/100756
4031 * tree-ssa-loop-niter.cc (expand_simple_operations): Also
4032 expand multiplications by invariants.
4034 2022-10-25 Kewen Lin <linkw@linux.ibm.com>
4036 PR tree-optimization/107338
4037 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Move
4038 shfit_n calculation before the adjustments for widening loads.
4040 2022-10-25 Martin Liska <mliska@suse.cz>
4042 * common/config/riscv/riscv-common.cc
4043 (riscv_get_valid_option_values): Get out of ifdef.
4045 2022-10-25 Martin Liska <mliska@suse.cz>
4048 * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
4049 Fix pedantic warning.
4051 2022-10-24 Martin Liska <mliska@suse.cz>
4054 * diagnostic-format-sarif.cc
4055 (sarif_builder::maybe_make_physical_location_object): Gracefully
4056 reject locations with NULL filename.
4058 2022-10-24 David Malcolm <dmalcolm@redhat.com>
4061 * doc/invoke.texi (Static Analyzer Options): Add "pipe" and
4062 "pipe2" to the list of functions the analyzer has hardcoded
4065 2022-10-24 Jason Merrill <jason@redhat.com>
4067 * tree.h (build_string_literal): New one-argument overloads that
4068 take tree (identifier) and const char *.
4069 * builtins.cc (fold_builtin_FILE)
4070 (fold_builtin_FUNCTION)
4071 * gimplify.cc (gimple_add_init_for_auto_var)
4072 * vtable-verify.cc (verify_bb_vtables): Simplify calls.
4074 2022-10-24 Martin Liska <mliska@suse.cz>
4077 * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
4078 Reorder enum values as BUILTIN_VENDOR_MAX should not point
4079 in the middle of the valid enum values.
4081 2022-10-24 Marek Polacek <polacek@redhat.com>
4084 * tree.cc (maybe_wrap_with_location): Don't create a location wrapper
4085 when the type is erroneous.
4087 2022-10-24 Wilco Dijkstra <wdijkstr@arm.com>
4090 * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
4091 Add support for a bitmask immediate with 2 MOVKs.
4092 (aarch64_check_bitmask): New function after refactorization.
4093 (aarch64_bitmask_imm): Simplify replication of small modes.
4094 Split function into 64-bit only version for efficiency.
4095 (aarch64_move_imm): Move near other immediate functions.
4096 (aarch64_uimm12_shift): Likewise.
4097 (aarch64_clamp_to_uimm12_shift): Likewise.
4098 (aarch64_movk_shift): Likewise.
4099 (aarch64_replicate_bitmask_imm): Likewise.
4100 (aarch64_and_split_imm1): Likewise.
4101 (aarch64_and_split_imm2): Likewise.
4102 (aarch64_and_bitmask_imm): Likewise.
4103 (aarch64_movw_imm): Likewise.
4105 2022-10-24 Aldy Hernandez <aldyh@redhat.com>
4107 PR tree-optimization/107355
4108 * range-op-float.cc (foperator_abs::op1_range): Handle NAN.
4110 2022-10-24 Tobias Burnus <tobias@codesourcery.com>
4112 PR middle-end/107236
4113 * omp-expand.cc (expand_omp_target): Set calls_declare_variant_alt
4114 in DECL_CONTEXT and not to cfun->decl.
4115 * cgraphclones.cc (cgraph_node::create_clone): Copy also the
4116 node's calls_declare_variant_alt value.
4118 2022-10-24 Kito Cheng <kito.cheng@sifive.com>
4120 * common/config/riscv/riscv-common.cc (riscv_tunes): New.
4121 (riscv_get_valid_option_values): New.
4122 (TARGET_GET_VALID_OPTION_VALUES): New.
4123 * config/riscv/riscv-cores.def (RISCV_TUNE): New, define options
4125 (RISCV_CORE): Fix comment.
4126 * config/riscv/riscv.cc (riscv_tune_info_table): Move definition to
4129 2022-10-24 Aldy Hernandez <aldyh@redhat.com>
4131 PR tree-optimization/107365
4132 * value-range.cc (frange::verify_range): Predicate NAN check in
4133 VARYING range on HONOR_NANS instead of flag_finite_math_only.
4134 (range_tests_floats): Same.
4135 (range_tests_floats_various): New.
4136 (range_tests): Call range_tests_floats_various.
4138 2022-10-24 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
4139 Yvan ROUX <yvan.roux@foss.st.com>
4141 * lto-wrapper.cc: Quote paths in makefile.
4143 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4145 * config/riscv/riscv.cc (riscv_legitimize_move): Support (set (mem) (const_poly_int)).
4147 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4149 * config/riscv/riscv-vector-builtins-bases.cc: Replace CONSTEXPR
4150 with constexpr throughout.
4151 * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Likewise.
4152 * config/riscv/riscv-vector-builtins.cc
4153 (struct registered_function_hasher): Likewise.
4154 * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info):
4157 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4159 * config/riscv/riscv-vector-switch.def (ENTRY): Remove unused TI/TF vector modes.
4161 2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4163 * config/riscv/riscv.h (REG_CLASS_CONTENTS): Fix ALL_REGS.
4165 2022-10-22 Michael Eager <eager@eagercon.com>
4167 * config/microblaze/microblaze.cc
4168 (microblaze_legitimize_address): Initialize 'reg' to NULL, check for NULL.
4169 (microblaze_address_insns): Replace abort() with gcc_unreachable().
4170 (print_operand_address): Same.
4171 (microblaze_expand_move): Initialize 'p1' to NULL, check for NULL.
4172 (get_branch_target): Replace abort() with gcc_unreachable().
4174 2022-10-22 Aldy Hernandez <aldyh@redhat.com>
4176 * value-range.cc (range_tests_floats): Predicate [-Inf, +Inf] test
4177 with !flag_finite_math_only.
4179 2022-10-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4181 * config/xtensa/xtensa.cc (xtensa_conditional_register_usage):
4182 Remove register A0 from FIXED_REGS if the CALL0 ABI.
4183 (xtensa_expand_epilogue): Change to emit '(use (reg:SI A0_REG))'
4184 unconditionally after restoring callee-saved registers for
4185 sibling-call functions, in order to prevent misleading that
4186 register A0 is free to use.
4188 2022-10-21 Jakub Jelinek <jakub@redhat.com>
4191 * config/i386/i386-expand.cc (ix86_prepare_fp_compare_args): For
4192 BFmode comparisons promote arguments to SFmode and recurse.
4193 (ix86_expand_int_movcc, ix86_expand_fp_movcc): Return false early
4194 if comparison operands are BFmode and operands[1] is not
4195 ix86_fp_comparison_operator.
4197 2022-10-21 Tejas Joshi <TejasSanjay.Joshi@amd.com>
4199 * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver4.
4200 * common/config/i386/i386-common.cc (processor_names): Add znver4.
4201 (processor_alias_table): Add znver4 and modularize old znvers.
4202 * common/config/i386/i386-cpuinfo.h (processor_subtypes):
4204 * config.gcc (x86_64-*-* |...): Likewise.
4205 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
4206 -march=native recognize znver4 cpus.
4207 * config/i386/i386-c.cc (ix86_target_macros_internal): Add znver4.
4208 * config/i386/i386-options.cc (m_ZNVER4): New definition.
4209 (m_ZNVER): Include m_ZNVER4.
4210 (processor_cost_table): Add znver4.
4211 * config/i386/i386.cc (ix86_reassociation_width): Likewise.
4212 * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER4.
4213 (PTA_ZNVER1): New definition.
4214 (PTA_ZNVER2): Likewise.
4215 (PTA_ZNVER3): Likewise.
4216 (PTA_ZNVER4): Likewise.
4217 * config/i386/i386.md (define_attr "cpu"): Add znver4 and rename
4219 * config/i386/x86-tune-costs.h (znver4_cost): New definition.
4220 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver4.
4221 (ix86_adjust_cost): Likewise.
4222 * config/i386/znver1.md: Rename to znver.md.
4223 * config/i386/znver.md: Add new reservations for znver4.
4224 * doc/extend.texi: Add details about znver4.
4225 * doc/invoke.texi: Likewise.
4227 2022-10-21 Richard Biener <rguenther@suse.de>
4229 PR tree-optimization/107323
4230 * tree-loop-distribution.cc (pg_unmark_merged_alias_ddrs):
4232 (loop_distribution::break_alias_scc_partitions): Revert
4233 postorder save/restore from the PR94125 fix. Instead
4234 make sure to not ignore edges from SCCs we are going to
4237 2022-10-21 Monk Chiang <monk.chiang@sifive.com>
4239 * config/riscv/riscv.md: Add atomic type attribute.
4240 * config/riscv/sync.md: Add atomic type for atomic instructions.
4242 2022-10-21 Jakub Jelinek <jakub@redhat.com>
4244 PR tree-optimization/54346
4245 * match.pd ((vec_perm (vec_perm@0 @1 @2 VECTOR_CST) @0 VECTOR_CST)):
4246 Optimize nested VEC_PERM_EXPRs even if target can't handle the
4247 new one provided we don't increase number of VEC_PERM_EXPRs the
4248 target can't handle.
4250 2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4252 * config.gcc: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
4253 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New macro.
4254 (DEF_RVV_FUNCTION): Ditto.
4255 (handle_pragma_vector): Add intrinsic framework.
4256 * config/riscv/riscv.cc (riscv_print_operand): Add operand print for vsetvl/vsetvlmax.
4257 * config/riscv/riscv.md: include vector.md.
4258 * config/riscv/t-riscv: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
4259 * config/riscv/riscv-vector-builtins-bases.cc: New file.
4260 * config/riscv/riscv-vector-builtins-bases.h: New file.
4261 * config/riscv/riscv-vector-builtins-functions.def: New file.
4262 * config/riscv/riscv-vector-builtins-shapes.cc: New file.
4263 * config/riscv/riscv-vector-builtins-shapes.h: New file.
4264 * config/riscv/riscv-vector-builtins-types.def: New file.
4265 * config/riscv/vector.md: New file.
4267 2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4269 * config.gcc: Add gt files since function_instance is GTY ((user)).
4270 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV intrinsic framework.
4271 (riscv_builtin_decl): Ditto.
4272 (riscv_expand_builtin): Ditto.
4273 * config/riscv/riscv-protos.h (builtin_decl): New function.
4274 (expand_builtin): Ditto.
4275 (enum riscv_builtin_class): New enum to classify RVV intrinsic and RISC-V general built-in.
4276 * config/riscv/riscv-vector-builtins.cc (class GTY): New declaration.
4277 (struct registered_function_hasher): New struct.
4278 (DEF_RVV_OP_TYPE): New macro.
4279 (DEF_RVV_TYPE): Ditto.
4280 (DEF_RVV_PRED_TYPE): Ditto.
4281 (GTY): New declaration.
4282 (add_attribute): New function.
4283 (check_required_extensions): Ditto.
4284 (rvv_arg_type_info::get_tree_type): Ditto.
4285 (function_instance::function_instance): Ditto.
4286 (function_instance::operator==): Ditto.
4287 (function_instance::any_type_float_p): Ditto.
4288 (function_instance::get_return_type): Ditto.
4289 (function_instance::get_arg_type): Ditto.
4290 (function_instance::hash): Ditto.
4291 (function_instance::call_properties): Ditto.
4292 (function_instance::reads_global_state_p): Ditto.
4293 (function_instance::modifies_global_state_p): Ditto.
4294 (function_instance::could_trap_p): Ditto.
4295 (function_builder::function_builder): Ditto.
4296 (function_builder::~function_builder): Ditto.
4297 (function_builder::allocate_argument_types): Ditto.
4298 (function_builder::register_function_group): Ditto.
4299 (function_builder::append_name): Ditto.
4300 (function_builder::finish_name): Ditto.
4301 (function_builder::get_attributes): Ditto.
4302 (function_builder::add_function): Ditto.
4303 (function_builder::add_unique_function): Ditto.
4304 (function_call_info::function_call_info): Ditto.
4305 (function_expander::function_expander): Ditto.
4306 (function_expander::add_input_operand): Ditto.
4307 (function_expander::generate_insn): Ditto.
4308 (registered_function_hasher::hash): Ditto.
4309 (registered_function_hasher::equal): Ditto.
4310 (builtin_decl): Ditto.
4311 (expand_builtin): Ditto.
4312 (gt_ggc_mx): Define for using GCC garbage collect.
4313 (gt_pch_nx): Define for using GCC garbage collect.
4314 * config/riscv/riscv-vector-builtins.def (DEF_RVV_OP_TYPE): New macro.
4315 (DEF_RVV_PRED_TYPE): Ditto.
4316 (vbool64_t): Add suffix.
4323 (vint8mf8_t): Ditto.
4324 (vuint8mf8_t): Ditto.
4325 (vint8mf4_t): Ditto.
4326 (vuint8mf4_t): Ditto.
4327 (vint8mf2_t): Ditto.
4328 (vuint8mf2_t): Ditto.
4330 (vuint8m1_t): Ditto.
4332 (vuint8m2_t): Ditto.
4334 (vuint8m4_t): Ditto.
4336 (vuint8m8_t): Ditto.
4337 (vint16mf4_t): Ditto.
4338 (vuint16mf4_t): Ditto.
4339 (vint16mf2_t): Ditto.
4340 (vuint16mf2_t): Ditto.
4341 (vint16m1_t): Ditto.
4342 (vuint16m1_t): Ditto.
4343 (vint16m2_t): Ditto.
4344 (vuint16m2_t): Ditto.
4345 (vint16m4_t): Ditto.
4346 (vuint16m4_t): Ditto.
4347 (vint16m8_t): Ditto.
4348 (vuint16m8_t): Ditto.
4349 (vint32mf2_t): Ditto.
4350 (vuint32mf2_t): Ditto.
4351 (vint32m1_t): Ditto.
4352 (vuint32m1_t): Ditto.
4353 (vint32m2_t): Ditto.
4354 (vuint32m2_t): Ditto.
4355 (vint32m4_t): Ditto.
4356 (vuint32m4_t): Ditto.
4357 (vint32m8_t): Ditto.
4358 (vuint32m8_t): Ditto.
4359 (vint64m1_t): Ditto.
4360 (vuint64m1_t): Ditto.
4361 (vint64m2_t): Ditto.
4362 (vuint64m2_t): Ditto.
4363 (vint64m4_t): Ditto.
4364 (vuint64m4_t): Ditto.
4365 (vint64m8_t): Ditto.
4366 (vuint64m8_t): Ditto.
4367 (vfloat32mf2_t): Ditto.
4368 (vfloat32m1_t): Ditto.
4369 (vfloat32m2_t): Ditto.
4370 (vfloat32m4_t): Ditto.
4371 (vfloat32m8_t): Ditto.
4372 (vfloat64m1_t): Ditto.
4373 (vfloat64m2_t): Ditto.
4374 (vfloat64m4_t): Ditto.
4375 (vfloat64m8_t): Ditto.
4408 * config/riscv/riscv-vector-builtins.h (GCC_RISCV_VECTOR_BUILTINS_H): New macro.
4409 (RVV_REQUIRE_RV64BIT): Ditto.
4410 (RVV_REQUIRE_ZVE64): Ditto.
4411 (RVV_REQUIRE_ELEN_FP_32): Ditto.
4412 (RVV_REQUIRE_ELEN_FP_64): Ditto.
4413 (enum operand_type_index): New enum.
4414 (DEF_RVV_OP_TYPE): New macro.
4415 (enum predication_type_index): New enum.
4416 (DEF_RVV_PRED_TYPE): New macro.
4417 (enum rvv_base_type): New enum.
4418 (struct rvv_builtin_suffixes): New struct.
4419 (struct rvv_arg_type_info): Ditto.
4420 (struct rvv_type_info): Ditto.
4421 (struct rvv_op_info): Ditto.
4422 (class registered_function): New class.
4423 (class function_base): Ditto.
4424 (class function_shape): Ditto.
4425 (struct function_group_info): New struct.
4426 (class GTY): New class.
4427 (class function_builder): Ditto.
4428 (class function_call_info): Ditto.
4429 (function_call_info::function_returns_void_p): New function.
4430 (class function_expander): New class.
4431 (function_instance::operator!=): New function.
4432 (function_expander::expand): Ditto.
4433 (function_expander::add_input_operand): Ditto.
4434 (function_base::call_properties): Ditto.
4436 2022-10-21 Haochen Jiang <haochen.jiang@intel.com>
4438 * config/i386/sse.md (ssedvecmode): Rename from VI1SI.
4439 (ssedvecmodelower): Rename from vi1si.
4440 (sdot_prod<mode>): New define_expand.
4441 (udot_prod<mode>): Ditto.
4443 2022-10-21 Kong Lingling <lingling.kong@intel.com>
4444 Hongyu Wang <hongyu.wang@intel.com>
4445 Haochen Jiang <haochen.jiang@intel.com>
4447 * common/config/i386/cpuinfo.h (get_available_features): Detect
4449 * common/config/i386/i386-common.cc
4450 (OPTION_MASK_ISA2_AVXVNNIINT8_SET): New.
4451 (OPTION_MASK_ISA2_AVXVNNIINT8_UNSET): Ditto.
4452 (ix86_handle_option): Handle -mavxvnniint8.
4453 * common/config/i386/i386-cpuinfo.h (enum processor_features):
4454 Add FEATURE_AVXVNNIINT8.
4455 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
4457 * config.gcc: Add avxvnniint8intrin.h.
4458 * config/i386/avxvnniint8intrin.h: New file.
4459 * config/i386/cpuid.h (bit_AVXVNNIINT8): New.
4460 * config/i386/i386-builtin.def: Add new builtins.
4461 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
4463 * config/i386/i386-options.cc (isa2_opts): Add -mavxvnniint8.
4464 (ix86_valid_target_attribute_inner_p): Handle avxvnniint8.
4465 * config/i386/i386-isa.def: Add DEF_PTA(AVXVNNIINT8) New..
4466 * config/i386/i386.opt: Add option -mavxvnniint8.
4467 * config/i386/immintrin.h: Include avxvnniint8intrin.h.
4468 * config/i386/sse.md (UNSPEC_VPMADDUBSWACCD
4469 UNSPEC_VPMADDUBSWACCSSD,UNSPEC_VPMADDWDACCD,
4470 UNSPEC_VPMADDWDACCSSD): Rename according to new style.
4471 (vpdp<vpdotprodtype>_<mode>): New define_insn.
4472 * doc/extend.texi: Document avxvnniint8.
4473 * doc/invoke.texi: Document -mavxvnniint8.
4474 * doc/sourcebuild.texi: Document target avxvnniint8.
4476 2022-10-21 Hongyu Wang <hongyu.wang@intel.com>
4478 * common/config/i386/i386-common.cc
4479 (OPTION_MASK_ISA_AVXIFMA_SET, OPTION_MASK_ISA2_AVXIFMA_UNSET,
4480 OPTION_MASK_ISA2_AVX2_UNSET): New macro.
4481 (ix86_handle_option): Handle -mavxifma.
4482 * common/config/i386/i386-cpuinfo.h (processor_types): Add
4484 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
4486 * common/config/i386/cpuinfo.h (get_available_features):
4488 * config.gcc: Add avxifmaintrin.h
4489 * config/i386/avx512ifmavlintrin.h: (_mm_madd52lo_epu64): Change
4491 (_mm_madd52hi_epu64): Likewise.
4492 (_mm256_madd52lo_epu64): Likewise.
4493 (_mm256_madd52hi_epu64): Likewise.
4494 * config/i386/avxifmaintrin.h: New header.
4495 * config/i386/cpuid.h (bit_AVXIFMA): New.
4496 * config/i386/i386-builtin.def: Add new builtins, and correct
4497 pattern names for AVX512IFMA.
4498 * config/i386/i386-builtins.cc (def_builtin): Handle AVX-IFMA
4499 builtins like AVX-VNNI.
4500 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
4502 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
4503 Relax ISA masks for AVXIFMA.
4504 * config/i386/i386-isa.def: Add AVXIFMA.
4505 * config/i386/i386-options.cc (isa2_opts): Add -mavxifma.
4506 (ix86_valid_target_attribute_inner_p): Handle avxifma.
4507 * config/i386/i386.md (isa): Add attr avxifma and avxifmavl.
4508 * config/i386/i386.opt: Add option -mavxifma.
4509 * config/i386/immintrin.h: Inculde avxifmaintrin.h.
4510 * config/i386/sse.md (avx_vpmadd52<vpmadd52type>_<mode>):
4512 (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Remove.
4513 (vpamdd52huq<mode>_maskz): Rename to ...
4514 (vpmadd52huq<mode>_maskz): ... this.
4515 (vpamdd52luq<mode>_maskz): Rename to ...
4516 (vpmadd52luq<mode>_maskz): ... this.
4517 (vpmadd52<vpmadd52type><mode>): New define_insn.
4518 (vpmadd52<vpmadd52type>v8di): Likewise.
4519 (vpmadd52<vpmadd52type><mode>_maskz_1): Likewise.
4520 (vpamdd52<vpmadd52type><mode>_mask): Rename to ...
4521 (vpmadd52<vpmadd52type><mode>_mask): ... this.
4522 * doc/invoke.texi: Document -mavxifma.
4523 * doc/extend.texi: Document avxifma.
4524 * doc/sourcebuild.texi: Document target avxifma.
4526 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
4529 * value-query.cc (get_range_global): Handle non integer ranges for
4530 default def SSA names.
4532 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
4534 * range-op-float.cc (foperator_unordered_lt::op1_range): New.
4535 (foperator_unordered_lt::op2_range): New.
4537 2022-10-20 Artem Klimov <jakmobius@gmail.com>
4538 Alexander Monakov <amonakov@gcc.gnu.org>
4541 * ipa-visibility.cc (function_and_variable_visibility): Promote
4542 TLS access model afer visibility optimizations.
4543 * varasm.cc (have_optimized_refs): New helper.
4544 (optimize_dyn_tls_for_decl_p): New helper. Use it ...
4545 (decl_default_tls_model): ... here in place of 'optimize' check.
4547 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
4549 * range-op-float.cc (foperator_unordered_le::op1_range): Adjust
4550 false side with a NAN operand.
4551 (foperator_unordered_le::op2_range): Same.
4552 (foperator_unordered_gt::op1_range): Same.
4553 (foperator_unordered_gt::op2_range): Same.
4554 (foperator_unordered_ge::op1_range): Same.
4555 (foperator_unordered_ge::op2_range): Same.
4556 (foperator_unordered_equal::op1_range): Same.
4558 2022-10-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
4560 PR tree-optimization/107326
4561 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Change
4562 vectype when widening container.
4564 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
4566 * value-range.h (frange::set_varying): Do not set NAN flags for
4568 * value-range.cc (frange::normalize_kind): Adjust for no NAN when
4570 (frange::verify_range): Same.
4571 * range-op-float.cc (maybe_isnan): Remove flag_finite_math_only check.
4573 2022-10-20 Aldy Hernandez <aldyh@redhat.com>
4575 * range-op-float.cc (finite_operand_p): Remove.
4576 (finite_operands_p): Rename to...
4577 (maybe_isnan): ...this.
4578 (frelop_early_resolve): Use maybe_isnan instead of finite_operands_p.
4579 (foperator_equal::fold_range): Same.
4580 (foperator_equal::op1_range): Same.
4581 (foperator_not_equal::fold_range): Same.
4582 (foperator_lt::fold_range): Same.
4583 (foperator_le::fold_range): Same.
4584 (foperator_gt::fold_range): Same.
4585 (foperator_ge::fold_range): Same.
4587 2022-10-20 Jakub Jelinek <jakub@redhat.com>
4589 * passes.cc (pass_manager::register_pass): Fix a comment
4590 typo - copmilation -> compilation.
4592 2022-10-20 Richard Biener <rguenther@suse.de>
4594 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
4595 Disallow latch PHI defs.
4596 (vectorizable_recurr): Revert previous change.
4598 2022-10-20 Julian Brown <julian@codesourcery.com>
4601 * config/gcn/gcn.cc (gcn_detect_incoming_pointer_arg): Any pointer
4602 argument forces FLAT addressing mode, not just
4603 pointer-to-non-aggregate.
4605 2022-10-20 Thomas Schwinge <thomas@codesourcery.com>
4607 * configure.ac (AC_CONFIG_MACRO_DIRS): Instantiate.
4608 * configure: Regenerate.
4610 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
4612 * config/aarch64/aarch64-sve-builtins.h
4613 (gimple_folder::fold_to_cstu): New member function.
4614 * config/aarch64/aarch64-sve-builtins.cc
4615 (gimple_folder::fold_to_cstu): Define.
4616 * config/aarch64/aarch64-sve-builtins-base.cc
4617 (svcnt_bhwd_impl::fold): Use it.
4619 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
4621 * config/aarch64/aarch64-sve-builtins-functions.h (quiet)
4622 (rtx_code_function, rtx_code_function_rotated, unspec_based_function)
4623 (unspec_based_function_rotated, unspec_based_function_exact_insn)
4624 (unspec_based_fused_function, unspec_based_fused_lane_function):
4625 Replace constructors with using directives.
4626 * config/aarch64/aarch64-sve-builtins-base.cc (svcnt_bhwd_pat_impl)
4627 (svcreate_impl, svdotprod_lane_impl, svget_impl, svld1_extend_impl)
4628 (svld1_gather_extend_impl, svld234_impl, svldff1_gather_extend)
4629 (svset_impl, svst1_scatter_truncate_impl, svst1_truncate_impl)
4630 (svst234_impl, svundef_impl): Likewise.
4631 * config/aarch64/aarch64-sve-builtins-sve2.cc
4632 (svldnt1_gather_extend_impl, svmovl_lb_impl): Likewise.
4633 (svstnt1_scatter_truncate_impl): Likewise.
4635 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
4637 * config/aarch64/aarch64-sve-builtins-base.cc: Replace CONSTEXPR
4638 with constexpr throughout.
4639 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
4640 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
4641 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
4642 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
4644 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
4646 * config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
4647 merging alternative.
4648 (*aarch64_brk<brk_op>_ptest): Likewise.
4650 2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
4652 * config/aarch64/iterators.md (SVE_BRKP): New iterator.
4653 * config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
4654 (*aarch64_brkn_ptest): Likewise.
4655 (*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
4656 (*aarch64_brk<brk_op>_ptest): Likewise.
4658 2022-10-20 Richard Biener <rguenther@suse.de>
4662 * tree-cfg.h (verify_gimple_in_seq): Add parameter to
4663 indicate whether to emit an ICE. Add return value.
4664 (verify_gimple_in_cfg): Likewise.
4665 * tree-cfg.cc (verify_gimple_in_seq): Likewise.
4666 (verify_gimple_in_cfg): Likewise.
4668 2022-10-20 Richard Biener <rguenther@suse.de>
4670 PR tree-optimization/107240
4671 * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Attempt to
4672 simplify shifted value first.
4674 2022-10-20 Andrew MacLeod <amacleod@redhat.com>
4676 * gimple-range-gori.h (compute_operand_range): Make public.
4677 * gimple-range-infer.cc (gimple_infer_range::check_assume_func): New.
4678 (gimple_infer_range::gimple_infer_range): Check for assume calls.
4679 * gimple-range-infer.h (check_assume_func): Add prototype.
4680 * gimple-range.cc (assume_query::assume_range_p): New.
4681 (assume_query::range_of_expr): New.
4682 (assume_query::assume_query): New.
4683 (assume_query::calculate_op): New.
4684 (assume_query::calculate_phi): New.
4685 (assume_query::check_taken_edge): New.
4686 (assume_query::calculate_stmt): New.
4687 (assume_query::dump): New.
4688 * gimple-range.h (class assume_query): New.
4689 * tree-vrp.cc (pass_assumptions::execute): Add processing.
4691 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
4693 * range-op-float.cc (build_le): Document result.
4696 (foperator_ge::op2_range): Check result of build_*.
4697 (foperator_unordered_le::op1_range): Same.
4698 (foperator_unordered_le::op2_range): Same.
4699 (foperator_unordered_gt::op1_range): Same.
4700 (foperator_unordered_gt::op2_range): Same.
4701 (foperator_unordered_ge::op1_range): Same.
4702 (foperator_unordered_ge::op2_range): Same.
4704 2022-10-19 Marek Polacek <polacek@redhat.com>
4707 * doc/invoke.texi: Update documentation of -Wuseless-cast.
4709 2022-10-19 Andrew MacLeod <amacleod@redhat.com>
4711 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
4712 Value_Range not int_range_max.
4714 2022-10-19 Aldy Hernandez <aldyh@redhat.com>
4716 PR tree-optimization/107312
4717 * range.h (range_true_and_false): Special case 1-bit signed types.
4718 * value-range.cc (range_tests_misc): New test.
4720 2022-10-19 LIU Hao <lh_mouse@126.com>
4722 * config/i386/mingw-mcfgthread.h: New file
4723 * config/i386/mingw32.h: Add builtin macro and default libraries
4724 for mcfgthread when thread model is `mcf`
4725 * config.gcc: Include 'i386/mingw-mcfgthread.h' when thread model
4727 * configure.ac: Recognize `mcf` as a valid thread model
4728 * config.in: Regenerate
4729 * configure: Regenerate
4731 2022-10-19 Lewis Hyatt <lhyatt@gmail.com>
4733 * gengtype.cc (output_escaped_param): Add missing const.
4734 (get_string_option): Add missing check for option type.
4735 (walk_type): Support new "string_length" GTY option.
4736 (write_types_process_field): Likewise.
4737 * ggc-common.cc (gt_pch_note_object): Add optional length argument.
4738 * ggc.h (gt_pch_note_object): Adjust prototype for new argument.
4739 (gt_pch_n_S2): Declare...
4740 * stringpool.cc (gt_pch_n_S2): ...new function.
4741 * doc/gty.texi: Document new GTY((string_length)) option.
4743 2022-10-19 Martin Liska <mliska@suse.cz>
4745 * doc/extend.texi: Remove useless @tie{} directives.
4747 2022-10-19 Martin Jambor <mjambor@suse.cz>
4749 PR tree-optimization/107206
4750 * tree-sra.cc (struct access): New field grp_result_of_prop_from_lhs.
4751 (analyze_access_subtree): Do not create replacements for accesses with
4752 this flag when not toally scalarizing.
4753 (propagate_subaccesses_from_lhs): Set the new flag.
4755 2022-10-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4758 * config/s390/s390.cc (s390_call_saved_register_used): For a
4759 parameter with BLKmode fix determining number of consecutive
4762 2022-10-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4764 * config/xtensa/xtensa-protos.h
4765 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm): New prototypes.
4766 * config/xtensa/xtensa.cc
4767 (xtensa_split1_finished_p, xtensa_split_DI_reg_imm, xtensa_lra_p):
4769 (TARGET_LRA_P): Replace the dummy hook with xtensa_lra_p.
4770 (xt_true_regnum): Rework.
4771 * config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS):
4772 Switch from CALL_USED_REGISTERS, and revise the comment.
4773 * config/xtensa/constraints.md (Y):
4774 Use !xtensa_split1_finished_p() instead of can_create_pseudo_p().
4775 * config/xtensa/predicates.md (move_operand): Ditto.
4776 * config/xtensa/xtensa.md: Add two new split patterns:
4777 - splits DImode immediate load into two SImode ones
4778 - puts out-of-constraint SImode constants into the constant pool
4779 * config/xtensa/xtensa.opt (-mlra): New target-specific option
4780 for testing purpose.
4782 2022-10-19 Robin Dapp <rdapp@linux.ibm.com>
4784 * config/s390/s390.md: Move reload_completed and check operands for REG_P.
4786 2022-10-19 Jakub Jelinek <jakub@redhat.com>
4788 PR middle-end/107262
4789 * expr.cc (convert_mode_scalar): For BFmode -> SFmode conversions
4790 of constants, use simplify_unary_operation if fromi has VOIDmode
4791 instead of recursive convert_mode_scalar.
4793 2022-10-19 Jakub Jelinek <jakub@redhat.com>
4795 PR tree-optimization/106990
4796 * match.pd ((~X - ~Y) -> Y - X, -x & 1 -> x & 1): Guard with
4797 !TYPE_OVERFLOW_SANITIZED (type).
4799 2022-10-19 Jakub Jelinek <jakub@redhat.com>
4801 * config/i386/i386-builtins.cc (ix86_bf16_ptr_type_node): Remove.
4802 (ix86_bf16_type_node): New variable.
4803 (ix86_register_bf16_builtin_type): If bfloat16_type_node is NULL
4804 from generic code, set only ix86_bf16_type_node to a new REAL_TYPE
4805 rather than bfloat16_type_node, otherwise set ix86_bf16_type_node
4806 to bfloat16_type_node. Register __bf16 on ix86_bf16_type_node
4807 rather than bfloat16_type_node. Don't initialize unused
4808 ix86_bf16_ptr_type_node.
4809 * config/i386/i386-builtin-types.def (BFLOAT16): Use
4810 ix86_bf16_type_node rather than bfloat16_type_node.
4812 2022-10-19 Richard Biener <rguenther@suse.de>
4814 PR tree-optimization/106781
4815 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Copy
4816 LHS removal from fixup_noreturn_call.
4818 2022-10-19 liuhongt <hongtao.liu@intel.com>
4821 * config/i386/i386-expand.cc (ix86_vec_perm_index_canon): New.
4822 (expand_vec_perm_shufps_shufps): Call
4823 ix86_vec_perm_index_canon
4825 2022-10-18 Martin Jambor <mjambor@suse.cz>
4827 * ipa-prop.h (ipa_agg_value): Remove type.
4828 (ipa_agg_value_set): Likewise.
4829 (ipa_copy_agg_values): Remove function.
4830 (ipa_release_agg_values): Likewise.
4831 (ipa_auto_call_arg_values) Add a forward declaration.
4832 (ipa_call_arg_values): Likewise.
4833 (class ipa_argagg_value_list): New constructors, added member function
4835 (class ipa_auto_call_arg_values): Removed the destructor and member
4836 function safe_aggval_at. Use ipa_argagg_values for m_known_aggs.
4837 (class ipa_call_arg_values): Removed member function safe_aggval_at.
4838 Use ipa_argagg_values for m_known_aggs.
4839 (ipa_get_indirect_edge_target): Removed declaration.
4840 (ipa_find_agg_cst_for_param): Likewise.
4841 (ipa_find_agg_cst_from_init): New declaration.
4842 (ipa_agg_value_from_jfunc): Likewise.
4843 (ipa_agg_value_set_from_jfunc): Removed declaration.
4844 (ipa_push_agg_values_from_jfunc): New declaration.
4845 * ipa-cp.cc (ipa_agg_value_from_node): Renamed to
4846 ipa_agg_value_from_jfunc, made public.
4847 (ipa_agg_value_set_from_jfunc): Removed.
4848 (ipa_push_agg_values_from_jfunc): New function.
4849 (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use
4850 avs for this purpose too.
4851 (ipa_get_indirect_edge_target): Removed the overload working on
4852 ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining
4854 (devirtualization_time_bonus): Use ipa_argagg_value_list and
4855 ipa_get_indirect_edge_target_1 instead of
4856 ipa_get_indirect_edge_target.
4857 (context_independent_aggregate_values): Removed function.
4858 (gather_context_independent_values): Work on ipa_argagg_value_list.
4859 (estimate_local_effects): Likewise, define some iterator variables
4860 only in the construct where necessary.
4861 (ipcp_discover_new_direct_edges): Adjust the call to
4862 ipa_get_indirect_edge_target_1.
4863 (push_agg_values_for_index_from_edge): Adjust the call
4864 ipa_agg_value_from_node which has been renamed to
4865 ipa_agg_value_from_jfunc.
4866 * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on
4867 ipa_argagg_value_list.
4868 (evaluate_properties_for_edge): Replace manual filling in aggregate
4869 values with call to ipa_push_agg_values_from_jfunc.
4870 (estimate_calls_size_and_time): Work on ipa_argagg_value_list.
4871 (ipa_cached_call_context::duplicate_from): Likewise.
4872 (ipa_cached_call_context::release): Likewise.
4873 (ipa_call_context::equal_to): Likewise.
4874 * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public.
4875 (ipa_find_agg_cst_for_param): Removed function.
4876 (ipa_find_agg_cst_from_jfunc_items): New function.
4877 (try_make_edge_direct_simple_call): Replace calls to
4878 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
4879 ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items.
4880 (try_make_edge_direct_virtual_call): Replace calls to
4881 ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
4882 simple query of constant jump function and a call to
4883 ipa_find_agg_cst_from_jfunc_items.
4884 (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed.
4886 2022-10-18 Martin Jambor <mjambor@suse.cz>
4888 * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New.
4889 (ipcp_transformation): Added forward declaration.
4890 (ipa_argagg_value): New type.
4891 (ipa_argagg_value_list): New type.
4892 (ipa_agg_replacement_value): Removed type.
4893 (ipcp_transformation): Switch from using ipa_agg_replacement_value
4894 to ipa_argagg_value_list.
4895 (ipa_get_agg_replacements_for_node): Removed.
4896 (ipa_dump_agg_replacement_values): Removed declaration.
4897 * ipa-cp.cc: Define INCLUDE_ALGORITHM.
4898 (values_equal_for_ipcp_p): Moved up in the file.
4899 (ipa_argagg_value_list::dump): New function.
4900 (ipa_argagg_value_list::debug): Likewise.
4901 (ipa_argagg_value_list::get_elt): Likewise.
4902 (ipa_argagg_value_list::get_elt_for_index): Likewise.
4903 (ipa_argagg_value_list::get_value): New overloaded functions.
4904 (ipa_argagg_value_list::superset_of_p): New function.
4905 (new ipa_argagg_value_list::push_adjusted_values): Likewise.
4906 (push_agg_values_from_plats): Likewise.
4907 (intersect_argaggs_with): Likewise.
4908 (get_clone_agg_value): Removed.
4909 (ipa_agg_value_from_node): Make last parameter const, use
4910 ipa_argagg_value_list to search values coming from clones.
4911 (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search
4912 values coming from clones.
4913 (ipcp_discover_new_direct_edges): Pass around a vector of
4914 ipa_argagg_values rather than a link list of replacement values.
4915 (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search
4916 values coming from clones.
4917 (create_specialized_node): Work with a vector of ipa_argagg_values
4918 rather than a link list of replacement values.
4919 (self_recursive_agg_pass_through_p): Make the pointer parameters
4921 (copy_plats_to_inter): Removed.
4922 (intersect_with_plats): Likewise.
4923 (agg_replacements_to_vector): Likewise.
4924 (intersect_with_agg_replacements): Likewise.
4925 (intersect_aggregates_with_edge): Likewise.
4926 (push_agg_values_for_index_from_edge): Likewise.
4927 (push_agg_values_from_edge): Likewise.
4928 (find_aggregate_values_for_callers_subset): Rewrite.
4929 (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
4930 (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search
4932 (decide_about_value): Work with a vector of ipa_argagg_values rather
4933 than a link list of replacement values.
4934 (decide_whether_version_node): Likewise.
4935 (ipa_analyze_node): Check number of parameters, assert that there
4936 are no descriptors when bailing out.
4937 * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of
4939 (ipa_node_params_t::duplicate): Removed superfluous handling of
4940 ipa_agg_replacement_values. Name of src parameter removed because
4941 it is no longer used.
4942 (ipcp_transformation_t::duplicate): Replaced duplication of
4943 ipa_agg_replacement_values with copying vector m_agg_values.
4944 (ipa_dump_agg_replacement_values): Removed.
4945 (write_ipcp_transformation_info): Stream the new data-structure
4947 (read_ipcp_transformation_info): Likewise.
4948 (adjust_agg_replacement_values): Work with ipa_argagg_values instead
4949 of linked lists of ipa_agg_replacement_values, copy the items and
4950 truncate the vector as necessary to keep it sorted instead of marking
4951 items as invalid. Return one bool if CFG should be updated.
4952 (ipcp_modif_dom_walker): Store ipcp_transformation instead of
4953 linked list of ipa_agg_replacement_values.
4954 (ipcp_modif_dom_walker::before_dom_children): Use
4955 ipa_argagg_value_list instead of walking a list of
4956 ipa_agg_replacement_values.
4957 (ipcp_transform_function): Switch to the new data structure, adjust
4960 2022-10-18 Richard Biener <rguenther@suse.de>
4962 PR tree-optimization/107302
4963 * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm
4964 placement for a PHI latch def.
4966 2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
4968 PR tree-optimization/107275
4969 * tree-if-conv.cc (if_convertible_loop_p_1): Move
4970 find_data_references_in_loop call from here...
4971 (if_convertible_loop_p): And move data-reference vector initialization
4973 (tree_if_conversion):... to here.
4975 2022-10-18 Jakub Jelinek <jakub@redhat.com>
4978 * gimple.def (GIMPLE_ASSUME): New statement kind.
4979 * gimple.h (struct gimple_statement_assume): New type.
4980 (is_a_helper <gimple_statement_assume *>::test,
4981 is_a_helper <const gimple_statement_assume *>::test): New.
4982 (gimple_build_assume): Declare.
4983 (gimple_has_substatements): Return true for GIMPLE_ASSUME.
4984 (gimple_assume_guard, gimple_assume_set_guard,
4985 gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body):
4986 New inline functions.
4987 * gsstruct.def (GSS_ASSUME): New.
4988 * gimple.cc (gimple_build_assume): New function.
4989 (gimple_copy): Handle GIMPLE_ASSUME.
4990 * gimple-pretty-print.cc (dump_gimple_assume): New function.
4991 (pp_gimple_stmt_1): Handle GIMPLE_ASSUME.
4992 * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME.
4993 * omp-low.cc (WALK_SUBSTMTS): Likewise.
4994 (lower_omp_1): Likewise.
4995 * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn):
4997 * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise.
4998 * function.h (struct function): Add assume_function bitfield.
4999 * gimplify.cc (gimplify_call_expr): If the assumption isn't
5000 simple enough, expand it into GIMPLE_ASSUME wrapped block or
5002 * gimple-low.cc: Include attribs.h.
5003 (create_assumption_fn): New function.
5004 (struct lower_assumption_data): New type.
5005 (find_assumption_locals_r, assumption_copy_decl,
5006 adjust_assumption_stmt_r, adjust_assumption_stmt_op,
5007 lower_assumption): New functions.
5008 (lower_stmt): Handle GIMPLE_ASSUME.
5009 * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove
5011 * lto-streamer-out.cc (output_struct_function_base): Pack
5012 assume_function bit.
5013 * lto-streamer-in.cc (input_struct_function_base): And unpack it.
5014 * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function
5015 has TREE_ASM_WRITTEN set and don't release its body.
5016 (symbol_table::compile): Allow assume functions not to have released
5018 * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable.
5019 * passes.cc (execute_one_pass): For TODO_discard_function don't
5020 release body of assume functions.
5021 * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes
5022 of PROP_assumptions_done functions.
5023 * tree-pass.h (PROP_assumptions_done): Define.
5024 (TODO_discard_function): Adjust comment.
5025 (make_pass_assumptions): Declare.
5026 * passes.def (pass_assumptions): Add.
5027 * timevar.def (TV_TREE_ASSUMPTIONS): New.
5028 * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME.
5029 * tree-vrp.cc (pass_data_assumptions): New variable.
5030 (pass_assumptions): New class.
5031 (make_pass_assumptions): New function.
5033 2022-10-18 Richard Biener <rguenther@suse.de>
5035 PR tree-optimization/107301
5036 * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
5037 Check whether we can duplicate the block.
5038 (find_implicit_erroneous_behavior): Likewise.
5040 2022-10-18 Andrew MacLeod <amacleod@redhat.com>
5042 PR tree-optimization/107273
5043 * value-relation.cc (equiv_oracle::add_partial_equiv): Merge
5044 instead of copying precison of each member.
5046 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
5049 * config/h8300/combiner.md: Replace '<' preincment constraint with
5050 ZA/Z1..ZH/Z7 combinations.
5051 * config/h8300/movepush.md: Similarly
5053 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
5055 * config/h8300/constraints.md (Za..Zh): New constraints for
5056 autoinc addresses using a specific register.
5057 * config/h8300/h8300.cc (pre_incdec_with_reg): New function.
5058 * config/h8300/h8300-protos.h (pre_incdec_with_reg): Add prototype.
5060 2022-10-17 Jeff Law <jlaw@ventanamicro.com>
5062 * config/i386/cet.c: Remove accidental commit.
5063 * config/i386/driver-mingw32.c: Likewise.
5064 * config/i386/i386-builtins.c: Likewise.
5065 * config/i386/i386-d.c: Likewise.
5066 * config/i386/i386-expand.c: Likewise.
5067 * config/i386/i386-features.c: Likewise.
5068 * config/i386/i386-options.c: Likewise.
5069 * config/i386/t-cet: Likewise.
5070 * config/i386/x86-tune-sched-atom.c: Likewise.
5071 * config/i386/x86-tune-sched-bd.c: Likewise.
5072 * config/i386/x86-tune-sched-core.c: Likewise.
5073 * config/i386/x86-tune-sched.c: Likewise.
5075 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
5077 * common/config/h8300/h8300-common.cc (h8300_option_optimization_table):
5078 Enable redundant extension elimination at -O2 and above.
5079 * config/i386/cet.c: New file.
5080 * config/i386/driver-mingw32.c: New file.
5081 * config/i386/i386-builtins.c: New file.
5082 * config/i386/i386-d.c: New file.
5083 * config/i386/i386-expand.c: New file.
5084 * config/i386/i386-features.c: New file.
5085 * config/i386/i386-options.c: New file.
5086 * config/i386/t-cet: New file.
5087 * config/i386/x86-tune-sched-atom.c: New file.
5088 * config/i386/x86-tune-sched-bd.c: New file.
5089 * config/i386/x86-tune-sched-core.c: New file.
5090 * config/i386/x86-tune-sched.c: New file.
5092 2022-10-17 Jeff Law <jeffreyalaw@gmail.com>
5094 * config/h8300/extensions.md (CCZN setting zero extended load): Add
5097 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
5099 PR tree-optimization/107293
5101 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
5102 Check that condition post-dominates the definition point.
5104 2022-10-17 Aldy Hernandez <aldyh@redhat.com>
5106 PR tree-optimization/107286
5107 * value-range.cc (range_tests_floats): Do not test for -Inf when
5108 flag_finite_math_only.
5110 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
5112 * gimple-range-fold.cc (fold_using_range::range_of_range_op):
5113 Provide relation_trio class.
5114 * gimple-range-gori.cc (gori_compute::refine_using_relation):
5115 Provide relation_trio class.
5116 (gori_compute::refine_using_relation): Ditto.
5117 (gori_compute::compute_operand1_range): Provide lhs_op2 and
5118 op1_op2 relations via relation_trio class.
5119 (gori_compute::compute_operand2_range): Ditto.
5120 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
5121 relation_trio instead of relation_kind.
5122 (gimple_range_op_handler::calc_op2): Ditto.
5123 (*::fold_range): Ditto.
5124 * gimple-range-op.h (gimple_range_op::calc_op1): Adjust prototypes.
5125 (gimple_range_op::calc_op2): Adjust prototypes.
5126 * range-op-float.cc (*::fold_range): Use relation_trio instead of
5128 (*::op1_range): Ditto.
5129 (*::op2_range): Ditto.
5130 * range-op.cc (*::fold_range): Use relation_trio instead of
5132 (*::op1_range): Ditto.
5133 (*::op2_range): Ditto.
5134 * range-op.h (class range_operator): Adjust prototypes.
5135 (class range_operator_float): Ditto.
5136 (class range_op_handler): Adjust prototypes.
5137 (relop_early_resolve): Pickup op1_op2 relation from relation_trio.
5138 * value-relation.cc (VREL_LAST): Adjust use to be one past the end of
5140 (relation_oracle::validate_relation): Use relation_trio in call
5142 * value-relation.h (enum relation_kind_t): Add VREL_LAST as
5144 (class relation_trio): New.
5145 (TRIO_VARYING, TRIO_SHIFT, TRIO_MASK): New.
5147 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
5149 * range-op-float.cc (foperator_not_equal::op1_range): Check for
5150 VREL_EQ after singleton.
5151 (foperator_unordered::op1_range): Set VARYING before calling
5153 (foperator_ordered::op1_range): Set rather than clear NAN if both
5154 operands are the same.
5156 2022-10-17 Andrew MacLeod <amacleod@redhat.com>
5158 * value-relation.cc (value_relation::dump): Change message.
5159 * value-relation.h (value_relation::set_relation): If op1 is the
5160 same as op2 do not create a relation.
5162 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
5164 * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
5165 'case QImode:', etc.
5167 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
5169 * gimple-expr.cc (mark_addressable_2): Tag as 'static'.
5171 2022-10-17 Richard Biener <rguenther@suse.de>
5172 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5174 PR tree-optimization/99409
5175 PR tree-optimization/99394
5176 * tree-vectorizer.h (vect_def_type::vect_first_order_recurrence): Add.
5177 (stmt_vec_info_type::recurr_info_type): Likewise.
5178 (vectorizable_recurr): New function.
5179 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p): New
5181 (vect_analyze_scalar_cycles_1): Look for first order
5183 (vect_analyze_loop_operations): Handle them.
5184 (vect_transform_loop): Likewise.
5185 (vectorizable_recurr): New function.
5186 (maybe_set_vectorized_backedge_value): Handle the backedge value
5187 setting in the first order recurrence PHI and the permutes.
5188 * tree-vect-stmts.cc (vect_analyze_stmt): Handle first order
5190 (vect_transform_stmt): Likewise.
5191 (vect_is_simple_use): Likewise.
5192 (vect_is_simple_use): Likewise.
5193 * tree-vect-slp.cc (vect_get_and_check_slp_defs): Likewise.
5194 (vect_build_slp_tree_2): Likewise.
5195 (vect_schedule_scc): Handle the backedge value setting in the
5196 first order recurrence PHI and the permutes.
5198 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5200 * config/riscv/t-riscv: Change Tab into 2 space.
5202 2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5204 * config/riscv/riscv-vector-builtins.cc (mangle_builtin_type): Move down the function.
5206 2022-10-17 Arsen Arsenovic <arsen@aarsen.me>
5208 * config.gcc: --target=*-elf --without-{newlib,headers} should
5211 2022-10-17 Hu, Lin1 <lin1.hu@intel.com>
5213 * common/config/i386/cpuinfo.h:
5214 (get_intel_cpu): Handle Meteorlake.
5215 * common/config/i386/i386-common.cc:
5216 (processor_alias_table): Add Meteorlake.
5218 2022-10-17 Haochen Jiang <haochen.jiang@intel.com>
5220 * common/config/i386/cpuinfo.h:
5221 (get_intel_cpu): Handle Raptorlake.
5222 * common/config/i386/i386-common.cc:
5223 (processor_alias_table): Add Raptorlake.
5225 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
5227 * config/h8300/constraints.md (Z0..Z7): New register
5229 * config/h8300/h8300.h (reg_class): Add new classes.
5230 (REG_CLASS_NAMES): Similarly.
5231 (REG_CLASS_CONTENTS): Similarly.
5233 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
5235 * config/h8300/constraints.md (Zz constraint): Renamed
5237 * config/h8300/movepush.md (movqi_h8sx, movhi_h8sx): Adjust
5238 constraint to use Zz instead of Z.
5240 2022-10-16 Jeff Law <jeffreyalaw@gmail.com>
5242 * config/h8300/h8300.cc (h8300_register_move_cost): Fix typo.
5244 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
5246 * value-range.cc (frange::set): Implement distinction between
5247 HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS.
5249 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
5251 * gimple-range-op.cc (class cfn_copysign): New.
5252 (gimple_range_op_handler::maybe_builtin_call): Add
5253 CFN_BUILT_IN_COPYSIGN*.
5255 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
5257 * real.h (real_isdenormal): Check rvc_normal.
5258 * value-range.cc (range_tests_floats): New test.
5260 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
5262 * gimple-range-op.cc
5263 (gimple_range_op_handler::maybe_builtin_call): Replace
5264 CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN.
5266 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
5268 * value-range.cc (frange::set): Normalize ranges for both bounds.
5270 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
5272 * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS.
5274 2022-10-14 Aldy Hernandez <aldyh@redhat.com>
5276 * gimple-range-op.cc
5277 (gimple_range_op_handler::maybe_builtin_call): Add
5278 CFN_BUILT_IN_SIGNBIT[FL]* entries.
5280 2022-10-14 Richard Biener <rguenther@suse.de>
5282 PR tree-optimization/107254
5283 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
5284 For permutes also analyze live lanes.
5285 (vect_schedule_slp_node): For permutes also code generate
5288 2022-10-14 Eric Botcazou <ebotcazou@adacore.com>
5291 * config/sparc/sparc.cc (sparc_expand_prologue): Emit a frame
5292 blockage for leaf functions.
5293 (sparc_flat_expand_prologue): Emit frame instead of full blockage.
5294 (sparc_expand_epilogue): Emit a frame blockage for leaf functions.
5295 (sparc_flat_expand_epilogue): Emit frame instead of full blockage.
5297 2022-10-14 Jakub Jelinek <jakub@redhat.com>
5299 * tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE.
5300 * tree.h (bfloat16_type_node): Define.
5301 * tree.cc (excess_precision_type): Promote bfloat16_type_mode
5302 like float16_type_mode.
5303 (build_common_tree_nodes): Initialize bfloat16_type_node if
5304 BFmode is supported.
5305 * expmed.h (maybe_expand_shift): Declare.
5306 * expmed.cc (maybe_expand_shift): No longer static.
5307 * expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF
5308 conversions. If there is no optab, handle BF -> {DF,XF,TF,HF}
5309 conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add
5310 -ffast-math generic implementation for BF -> SF and SF -> BF
5312 * builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New.
5313 * builtins.def (BUILT_IN_NANSF16B): New builtin.
5314 * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B.
5315 * config/i386/i386.cc (classify_argument): Handle E_BCmode.
5316 (ix86_libgcc_floating_mode_supported_p): Also return true for BFmode
5318 (ix86_mangle_type): Mangle BFmode as DF16b.
5319 (ix86_invalid_conversion, ix86_invalid_unary_op,
5320 ix86_invalid_binary_op): Remove.
5321 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP,
5322 TARGET_INVALID_BINARY_OP): Don't redefine.
5323 * config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove.
5324 (ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than
5325 ix86_bf16_type_node, only create it if still NULL.
5326 * config/i386/i386-builtin-types.def (BFLOAT16): Likewise.
5327 * config/i386/i386.md (cbranchbf4, cstorebf4): New expanders.
5329 2022-10-14 Jakub Jelinek <jakub@redhat.com>
5333 * doc/invoke.texi (-fexcess-precision=standard): Mention that the
5334 option now also works in C++.
5336 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
5338 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return
5339 early for calls made from thunks.
5341 2022-10-13 Eric Botcazou <ebotcazou@adacore.com>
5343 * expr.cc (emit_group_stote): Fix handling of modes of different
5344 sizes for big-endian targets in latest change and add commentary.
5346 2022-10-13 Martin Liska <mliska@suse.cz>
5348 * output.h (assemble_vtv_preinit_initializer): Remove.
5349 * varasm.cc (assemble_vtv_preinit_initializer): Remove.
5351 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
5353 PR tree-optimization/102540
5354 PR tree-optimization/102872
5355 * gimple-range-cache.cc (ranger_cache::fill_block_cache):
5356 Handle partial equivs.
5357 (ranger_cache::range_from_dom): Cleanup dump output.
5359 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
5361 * range-op.cc (operator_cast::lhs_op1_relation): New.
5362 (operator_bitwise_and::lhs_op1_relation): New.
5364 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
5366 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Use
5369 (equiv_relation_iterator::equiv_relation_iterator): New.
5370 (equiv_relation_iterator::next): New.
5371 (equiv_relation_iterator::get_name): New.
5372 * value-relation.h (class relation_oracle): Privatize some methods.
5373 (class equiv_relation_iterator): New.
5374 (FOR_EACH_EQUIVALENCE): New.
5375 (FOR_EACH_PARTIAL_EQUIV): New.
5376 (FOR_EACH_PARTIAL_AND_FULL_EQUIV): New.
5378 2022-10-13 Andrew MacLeod <amacleod@redhat.com>
5380 * value-relation.cc (equiv_chain::dump): Don't print empty
5382 (equiv_oracle::equiv_oracle): Allocate a partial equiv table.
5383 (equiv_oracle::~equiv_oracle): Release the partial equiv table.
5384 (equiv_oracle::add_partial_equiv): New.
5385 (equiv_oracle::partial_equiv_set): New.
5386 (equiv_oracle::partial_equiv): New.
5387 (equiv_oracle::query_relation): Check for partial equivs too.
5388 (equiv_oracle::dump): Also dump partial equivs.
5389 (dom_oracle::register_relation): Handle partial equivs.
5390 (dom_oracle::query_relation): Check for partial equivs.
5391 * value-relation.h (enum relation_kind_t): Add partial equivs.
5392 (relation_partial_equiv_p): New.
5393 (relation_equiv_p): New.
5394 (class pe_slice): New.
5395 (class equiv_oracle): Add prototypes.
5400 2022-10-13 Richard Biener <rguenther@suse.de>
5402 PR tree-optimization/107247
5403 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
5404 Reduce multi vector SLP reduction accumulators. Check
5405 the adjusted number of accumulator vectors against
5406 one for the re-use in the epilogue.
5408 2022-10-13 Jakub Jelinek <jakub@redhat.com>
5410 * genmodes.cc (emit_mode_wider): Emit previous content of
5411 mode_wider array into mode_next array and for mode_wider
5412 emit always VOIDmode for !CLASS_HAS_WIDER_MODES_P classes,
5413 otherwise skip through modes with the same precision.
5414 * machmode.h (mode_next): Declare.
5415 (GET_MODE_NEXT_MODE): New inline function.
5416 (mode_iterator::get_next, mode_iterator::get_known_next): New
5418 (FOR_EACH_MODE_IN_CLASS): Use get_next instead of get_wider.
5419 (FOR_EACH_MODE): Use get_known_next instead of get_known_wider.
5420 (FOR_EACH_MODE_FROM): Use get_next instead of get_wider.
5421 (FOR_EACH_WIDER_MODE_FROM): Define.
5422 (FOR_EACH_NEXT_MODE): Define.
5423 * expmed.cc (emit_store_flag_1): Use FOR_EACH_WIDER_MODE_FROM
5424 instead of FOR_EACH_MODE_FROM.
5425 * optabs.cc (prepare_cmp_insn): Likewise. Remove redundant
5426 !CLASS_HAS_WIDER_MODES_P check.
5427 (prepare_float_lib_cmp): Use FOR_EACH_WIDER_MODE_FROM instead of
5429 * config/i386/i386-expand.cc (get_mode_wider_vector): Use
5430 GET_MODE_NEXT_MODE instead of GET_MODE_WIDER_MODE.
5432 2022-10-13 Wilco Dijkstra <wdijkstr@arm.com>
5435 * config/aarch64/aarch64.cc (aarch64_select_cc_mode): Allow
5436 GT/LE for merging compare with zero into AND.
5437 (aarch64_get_condition_code_1): Add CC_NZVmode support.
5438 * config/aarch64/aarch64-modes.def: Add CC_NZV.
5439 * config/aarch64/aarch64.md: Use CC_NZV in cmp+and patterns.
5441 2022-10-13 Richard Biener <rguenther@suse.de>
5443 PR tree-optimization/107160
5444 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
5445 Do not register accumulator if we failed to reduce it
5448 2022-10-13 Aldy Hernandez <aldyh@redhat.com>
5450 * range-op-float.cc (range_operator_float::op1_op2_relation): New.
5451 (class foperator_equal): Add using.
5452 (class foperator_not_equal): Same.
5453 (class foperator_lt): Same.
5454 (class foperator_le): Same.
5455 (class foperator_gt): Same.
5456 (class foperator_ge): Same.
5457 * range-op.cc (range_op_handler::op1_op2_relation): New.
5458 * range-op.h (range_operator_float::op1_op2_relation): New.
5460 2022-10-13 Richard Biener <rguenther@suse.de>
5462 * genmatch.cc (parser::parse_c_expr): Diagnose 'return'.
5463 * match.pd: Replace 'return' statements in with expressions
5464 with appropriate variants.
5466 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
5468 PR tree-optimization/107229
5469 * tree-if-conv.cc (get_bitfield_rep): Fix bitposition calculation.
5471 2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
5473 PR tree-optimization/107226
5474 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Reject
5475 BITFIELD_REF's with non integral typed first operands.
5477 2022-10-13 Joseph Myers <joseph@codesourcery.com>
5479 * ginclude/float.h (FLT_IS_IEC_60559, DBL_IS_IEC_60559)
5480 (LDBL_IS_IEC_60559): Update comment.
5482 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
5484 * range-op-float.cc (class foperator_negate): New.
5485 (floating_op_table::floating_op_table): Add NEGATE_EXPR
5486 (range_op_float_tests): Add negate tests.
5488 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5490 * config/riscv/riscv-vector-builtins.h: Remove unused macro.
5492 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5494 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Apply
5496 (add_vector_type_attribute): Ditto.
5497 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Apply
5499 * config/riscv/riscv-vector-builtins.h (DEF_RVV_TYPE): Apply
5502 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5504 * config/riscv/riscv-vector-builtins.cc (builtin_types): Redefine
5506 (build_const_pointer): New function.
5507 (register_builtin_type): Ditto.
5508 (DEF_RVV_TYPE): Simplify macro.
5509 (register_vector_type): Refine implementation.
5510 * config/riscv/riscv-vector-builtins.h (rvv_builtin_types_t): New.
5512 2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5514 * config/riscv/riscv-vector-builtins.h (class rvv_switcher): Move to
5516 * config/riscv/riscv-vector-builtins.cc (class rvv_switcher):
5519 2022-10-12 Cui,Lili <lili.cui@intel.com>
5521 * config/i386/driver-i386.cc (host_detect_local_cpu):
5522 Move sapphirerapids out of AVX512_VP2INTERSECT.
5523 * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
5524 * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS
5526 2022-10-12 Martin Liska <mliska@suse.cz>
5528 * gcov-io.cc (gcov_write_summary): Rename to ...
5529 (gcov_write_object_summary): ... this.
5530 * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY_LENGTH): Rename from ...
5531 (GCOV_TAG_SUMMARY_LENGTH): ... this.
5533 2022-10-12 Martin Liska <mliska@suse.cz>
5535 * configure: Regenerate.
5537 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
5539 * range-op-float.cc (frange_float): New.
5540 (range_op_float_tests): New.
5541 * range-op.cc (range_op_tests): Call range_op_float_tests.
5543 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
5545 * value-range.h (frange::nan_signbit_p): New.
5547 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
5549 * value-range.cc (frange::set_nonnegative): Pass bool to
5551 * value-range.h: Disallow conversion to bool in update_nan().
5553 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
5555 * value-range.h (frange::frange): Add constructor taking type.
5557 2022-10-12 Aldy Hernandez <aldyh@redhat.com>
5559 * range-op-float.cc: Add relation_kind = VREL_VARYING to all
5562 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
5564 * gimple-range-gori.cc (gori_compute::logical_combine): Avoid
5565 calling tracer.trailer().
5567 2022-10-11 Jakub Jelinek <jakub@redhat.com>
5570 * config/i386/i386.md (*notxor<mode>_1): Use MASK_REG_P (x) instead of
5571 MASK_REGNO_P (REGNO (x)).
5573 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
5575 * range-op-float.cc (class foperator_abs): New.
5576 (floating_op_table::floating_op_table): Add ABS_EXPR entry.
5578 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
5580 * range-op-float.cc (foperator_unordered_le::op1_range): New.
5581 (foperator_unordered_le::op2_range): New.
5582 (foperator_unordered_gt::op1_range): New.
5583 (foperator_unordered_gt::op2_range): New.
5584 (foperator_unordered_ge::op1_range): New.
5585 (foperator_unordered_ge::op2_range): New.
5586 (foperator_unordered_equal::op1_range): New.
5588 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
5590 * range-op-float.cc (class foperator_unordered_lt): New.
5591 (class foperator_relop_unknown): Remove
5592 (class foperator_unordered_le): New.
5593 (class foperator_unordered_gt): New.
5594 (class foperator_unordered_ge): New.
5595 (class foperator_unordered_equal): New.
5596 (floating_op_table::floating_op_table): Replace all UN_EXPR
5597 entries with their appropriate fop_unordered_* counterpart.
5599 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
5601 * range-op.cc (operator_equal::op1_range): Move BRS_TRUE case up.
5602 (operator_lt::op2_range): Same.
5603 (operator_le::op2_range): Same.
5604 (operator_gt::op2_range): Same.
5605 (operator_ge::op2_range): Same.
5607 2022-10-11 Richard Biener <rguenther@suse.de>
5609 PR tree-optimization/107212
5610 * tree-vect-loop.cc (vectorizable_reduction): Make sure to
5611 set STMT_VINFO_REDUC_DEF for all live lanes in a SLP
5613 (vectorizable_live_operation): Do not pun to the SLP
5614 node representative for reduction epilogue generation.
5616 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
5618 * config/gcn/gcn-valu.md (neg<mode>2): New define_expand.
5620 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
5622 * config/gcn/gcn-valu.md (vec_init<V_ALL:mode><V_ALL_ALT:mode>): New.
5623 * config/gcn/gcn.cc (GEN_VN): Add andvNsi3, subvNsi3.
5624 (GEN_VNM): Add gathervNm_expr.
5625 (GEN_VN_NOEXEC): Add vec_seriesvNsi.
5626 (gcn_expand_vector_init): Add initialization of vectors from smaller
5629 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
5631 * config/gcn/gcn-protos.h (get_exec): Add prototypes for two variants.
5632 * config/gcn/gcn-valu.md
5633 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): New define_expand.
5634 * config/gcn/gcn.cc (get_exec): Export the existing function. Add a
5635 new overload variant.
5637 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
5639 * config/gcn/gcn-valu.md
5640 (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): Use MODE_VF.
5641 (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): Likewise.
5642 * config/gcn/gcn.h (MODE_VF): New macro.
5644 2022-10-11 Andrew Stubbs <ams@codesourcery.com>
5646 * config/gcn/gcn-modes.def (VECTOR_MODE): Add new modes
5647 V32QI, V32HI, V32SI, V32DI, V32TI, V32HF, V32SF, V32DF,
5648 V16QI, V16HI, V16SI, V16DI, V16TI, V16HF, V16SF, V16DF,
5649 V8QI, V8HI, V8SI, V8DI, V8TI, V8HF, V8SF, V8DF,
5650 V4QI, V4HI, V4SI, V4DI, V4TI, V4HF, V4SF, V4DF,
5651 V2QI, V2HI, V2SI, V2DI, V2TI, V2HF, V2SF, V2DF.
5652 (ADJUST_ALIGNMENT): Likewise.
5653 * config/gcn/gcn-protos.h (gcn_full_exec): Delete.
5654 (gcn_full_exec_reg): Delete.
5655 (gcn_scalar_exec): Delete.
5656 (gcn_scalar_exec_reg): Delete.
5657 (vgpr_1reg_mode_p): Use inner mode to identify vector registers.
5658 (vgpr_2reg_mode_p): Likewise.
5659 (vgpr_vector_mode_p): Use VECTOR_MODE_P.
5660 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF,
5661 V_QIHI, V_1REG, V_INT_1REG, V_INT_1REG_ALT, V_FP_1REG, V_2REG, V_noQI,
5662 V_noHI, V_INT_noQI, V_INT_noHI, V_ALL, V_ALL_ALT, V_INT, V_FP):
5663 Add additional vector modes.
5664 (V64_SI, V64_DI, V64_ALL, V64_FP): New iterators.
5665 (scalar_mode, SCALAR_MODE, vnsi, VnSI, vndi, VnDI, sdwa):
5666 Add additional vector mode mappings.
5667 (mov<mode>): Implement vector length conversions.
5668 (ldexp<mode>3<exec>): Use VnSI.
5669 (frexp<mode>_exp2<exec>): Likewise.
5670 (VCVT_MODE, VCVT_FMODE, VCVT_IMODE): Add additional vector modes.
5671 (reduc_<reduc_op>_scal_<mode>): Use V64_ALL.
5672 (fold_left_plus_<mode>): Use V64_FP.
5673 (*<reduc_op>_dpp_shr_<mode>): Use V64_1REG.
5674 (*<reduc_op>_dpp_shr_<mode>): Use V64_DI.
5675 (*plus_carry_dpp_shr_<mode>): Use V64_INT_1REG.
5676 (*plus_carry_in_dpp_shr_<mode>): Use V64_SI.
5677 (*plus_carry_dpp_shr_<mode>): Use V64_DI.
5678 (mov_from_lane63_<mode>): Use V64_2REG.
5679 * config/gcn/gcn.cc (VnMODE): New function.
5680 (gcn_can_change_mode_class): Support multiple vector sizes.
5681 (gcn_modes_tieable_p): Likewise.
5682 (gcn_operand_part): Likewise.
5683 (gcn_scalar_exec): Delete function.
5684 (gcn_scalar_exec_reg): Delete function.
5685 (gcn_full_exec): Delete function.
5686 (gcn_full_exec_reg): Delete function.
5687 (gcn_inline_fp_constant_p): Support multiple vector sizes.
5688 (gcn_fp_constant_p): Likewise.
5690 (GEN_VN_NOEXEC): New macro.
5691 (GEN_VNM_NOEXEC): New macro.
5692 (GEN_VN): New macro.
5693 (GEN_VNM): New macro.
5694 (GET_VN_FN): New macro.
5695 (CODE_FOR): New macro.
5696 (CODE_FOR_OP): New macro.
5697 (gen_mov_with_exec): Delete function.
5698 (gen_duplicate_load): Delete function.
5699 (gcn_expand_vector_init): Support multiple vector sizes.
5700 (strided_constant): Likewise.
5701 (gcn_addr_space_legitimize_address): Likewise.
5702 (gcn_expand_scalar_to_vector_address): Likewise.
5703 (gcn_expand_scaled_offsets): Likewise.
5704 (gcn_secondary_reload): Likewise.
5705 (gcn_valid_cvt_p): Likewise.
5706 (gcn_expand_builtin_1): Likewise.
5707 (gcn_make_vec_perm_address): Likewise.
5708 (gcn_vectorize_vec_perm_const): Likewise.
5709 (gcn_vector_mode_supported_p): Likewise.
5710 (gcn_autovectorize_vector_modes): New hook.
5711 (gcn_related_vector_mode): Support multiple vector sizes.
5712 (gcn_expand_dpp_shr_insn): Add FIXME comment.
5713 (gcn_md_reorg): Support multiple vector sizes.
5714 (print_reg): Likewise.
5715 (print_operand): Likewise.
5716 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): New hook.
5718 2022-10-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
5720 * tree-if-conv.cc (if_convertible_loop_p_1): Move ordering of loop bb's from
5722 (tree_if_conversion): ... to here. Also call bitfield lowering when
5724 (version_loop_for_if_conversion): Adapt to enable loop versioning when we only
5725 need to lower bitfields.
5726 (ifcvt_split_critical_edges): Relax condition of expected loop form as this is
5728 (get_bitfield_rep): New function.
5729 (lower_bitfield): Likewise.
5730 (bitfields_to_lower_p): Likewise.
5731 (need_to_lower_bitfields): New global boolean.
5732 (need_to_ifcvt): Likewise.
5733 * tree-vect-data-refs.cc (vect_find_stmt_data_reference): Improve diagnostic
5735 * tree-vect-patterns.cc (vect_recog_temp_ssa_var): Add default value for last
5737 (vect_recog_bitfield_ref_pattern): New.
5738 (vect_recog_bit_insert_pattern): New.
5740 2022-10-11 liuhongt <hongtao.liu@intel.com>
5743 * config/i386/i386.md (*notxor<mode>_1): New post_reload
5744 define_insn_and_split.
5745 (*notxorqi_1): Ditto.
5747 2022-10-11 Aldy Hernandez <aldyh@redhat.com>
5749 PR tree-optimization/107195
5750 * value-range.cc (irange::set_range_from_nonzero_bits): Set range
5751 to [0,0] when nonzero mask is 0.
5753 2022-10-11 Olivier Hainque <hainque@adacore.com>
5754 Olivier Hainque <hainque@adacore.com>
5756 * configure: Regenerate.
5758 2022-10-11 Olivier Hainque <hainque@adacore.com>
5760 * config.gcc (*vxworks*): Add t-slibgcc fragment
5763 2022-10-11 Olivier Hainque <hainque@adacore.com>
5765 * config/vxworks.h (VX_LGCC_EH_SO0, VX_LGCC_EH_SO1): New
5767 (VXWORKS_LIBGCC_SPEC): Use them and document.
5769 2022-10-11 Martin Liska <mliska@suse.cz>
5771 * gimple-range-op.cc: Add override keyword.
5773 2022-10-11 Eugene Rozenfeld <erozen@microsoft.com>
5776 * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e
5779 2022-10-11 Liwei Xu <liwei.xu@intel.com>
5780 liuhongt <hongtao.liu@intel.com>
5782 PR tree-optimization/54346
5783 * match.pd: Merge the index of VCST then generates the new vec_perm.
5785 2022-10-11 Jeff Law <jeffreyalaw@gmail.com>
5787 PR rtl-optimization/107182
5788 * cfgrtl.cc (fixup_reorder_chain): When optimizing a jump to a
5789 return, clear EDGE_CROSSING on the appropriate edge.
5791 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5793 * config/riscv/riscv-vector-builtins.cc (struct vector_type_info): Move
5794 from config/riscv/riscv-vector-builtins.h.
5795 (DEF_RVV_TYPE): Change USER_NAME to NAME.
5796 (register_vector_type): Change user_name to name.
5797 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Change
5799 * config/riscv/riscv-vector-builtins.h (struct vector_type_info): Move
5800 to riscv-vector-builtins.cc.
5801 (DEF_RVV_TYPE): Change USER_NAME to NAME.
5803 2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5805 * config/riscv/riscv.md: Add vsetvl instruction type.
5807 2022-10-10 Nathan Sidwell <nathan@acm.org>
5809 * common.opt (-fabi-version=): Document 18.
5810 * doc/invoke.texi (-fabi-version): Document 18.
5812 2022-10-10 Andrea Corallo <andrea.corallo@arm.com>
5815 * toplev.cc (toplev::main): Don't run self tests in case of
5818 2022-10-10 Kito Cheng <kito.cheng@sifive.com>
5820 * config/riscv/riscv-c.cc: Add newline to the end of file.
5822 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
5824 * range-op-float.cc (class foperator_identity): Make members public.
5825 (class foperator_equal): Same.
5826 (class foperator_not_equal): Same.
5827 (class foperator_lt): Same.
5828 (class foperator_le): Same.
5829 (class foperator_gt): Same.
5830 (class foperator_ge): Same.
5831 (class foperator_unordered): Same.
5832 (class foperator_ordered): Same.
5834 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
5836 * value-range.h (frange::maybe_isnan): New.
5838 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
5840 * range-op-float.cc (foperator_not_equal::op1_range): Set NAN on
5841 TRUE side for x != x.
5843 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
5845 * range-op-float.cc (foperator_unordered::op1_range): Set NAN when
5846 operands are equal and result is TRUE.
5848 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
5850 * range.h (range_true): Return int_range<2>.
5851 (range_false): Same.
5852 (range_true_and_false): Same.
5854 2022-10-10 Aldy Hernandez <aldyh@redhat.com>
5856 * gimple-range-op.cc: Add op1_range entry for __builtin_signbit.
5858 2022-10-10 liuhongt <hongtao.liu@intel.com>
5861 * config/i386/i386.md (lrint<MODEF:mode><SWI48:mode>2): Swap
5862 predicate of operands[0] and operands[1].
5864 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
5866 * common/config/arc/arc-common.cc (arc_option_optimization_table):
5867 Remove Rcq and Rcw options.
5868 * config/arc/arc.opt (mRcq): Ignore option, preserve it for
5869 backwards compatibility.
5871 * doc/invoke.texi (mRcw, mRcq): Update document.
5873 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
5875 * config/arc/arc.cc (arc_check_short_reg_p): New function.
5876 (arc_address_cost): Replace satisfies_constraint_Rcq with the
5878 (arc_output_addsi): Likewise.
5879 (split_addsi): Likewise.
5880 (split_subsi): Likewise.
5881 * config/arc/arc.md (movqi_insn): Remove Rcq constraint.
5882 (movhi_insn): Likewise.
5883 (movsi_insn): Likewise.
5884 (tst_movb): Likewise.
5886 (tst_bitfield): Likewise.
5888 (addsi3_mixed): Likewise.
5889 (mulhisi3_reg): Likewise.
5890 (umulhisi3_reg): Likewise.
5891 (mulsi_600): Likewise.
5893 (subsi3_insn): Likewise.
5894 (bicsi3_insn): Likewise.
5897 (one_cmplsi2): Likewise.
5898 (lshrsi3_insn): Likewise.
5899 (cmpsi_cc_insn_mixed): Likewise.
5900 (cmpsi_cc_zn_insn): Likewise.
5902 (cmpsi_cc_z_insn): Likewise.
5903 (cmpsi_cc_c_insn): Likewise.
5904 (indirect_jump): Likewise.
5905 (casesi_jump): Likewise.
5907 (call_value_i): Likewise.
5910 (ashlsi2_cnt1): Likewise.
5911 (lshrsi3_cnt1): Likewise.
5912 (ashrsi3_cnt1): Likewise.
5913 * config/arc/constraints.md (Rcq): Remove.
5915 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
5917 * config/arc/arc.md (smaxsi3): Remove Rcw.
5918 (sminsi3): Likewise.
5919 (addsi3_mixed): Likewise.
5920 (add_f_2): Likewise.
5921 (subsi3_insn): Likewise.
5927 (bset_insn): Likewise.
5928 (bxor_insn): Likewise.
5929 (bclr_insn): Likewise.
5930 (bmsk_insn): Likewise.
5931 (bicsi3_insn): Likewise.
5934 (lshrsi3_insn): Likewise.
5937 * config/arc/constraints.md(Rcw): Remove it.
5939 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
5941 * config/arc/arc.md(mulsi3_700): Remove Rcr.
5942 (mulsi3_highpart): Likewise.
5943 (umulsi3_highpart_i): Likewise.
5944 (umulsi3_highpart_int): Likewise.
5947 * config/arc/constraints.md (Rcr): Remove it.
5949 2022-10-10 Claudiu Zissulescu <claziss@gmail.com>
5951 * config/arc/arc.cc (arc_save_callee_enter): Use negative offsets.
5953 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
5956 * config/pru/pru-protos.h (pru_noteq_condition): New
5957 function declaration.
5958 * config/pru/pru.cc (pru_noteq_condition): New function.
5959 * config/pru/pru.md (cbranchdi4): Define new pattern.
5961 2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu>
5963 * config/pru/pru.md (lshrdi3): New expand pattern.
5966 2022-10-09 YunQiang Su <yunqiang.su@cipunited.com>
5968 * config.gcc: set with_arch to default_mips_arch if no defined.
5969 * config/mips/driver-native.cc (host_detect_local_cpu):
5970 try getauxval(AT_BASE_PLATFORM) and _MIPS_ARCH, too.
5971 pass -mnan=2008 if __mips_nan2008__ is defined.
5972 * config.in: define HAVE_SYS_AUXV_H and HAVE_GETAUXVAL.
5973 * configure.ac: detect sys/auxv.h and getauxval.
5974 * configure: regenerated.
5976 2022-10-07 Eugene Rozenfeld <erozen@microsoft.com>
5978 * tree-cfg.cc (assign_discriminators): Set discriminators for call stmts
5979 on the same line within the same basic block.
5981 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
5983 PR tree-optimization/101836
5984 * tree-object-size.cc (addr_object_size): Use array_at_struct_end_p
5985 to determine a flexible array member reference.
5987 2022-10-07 Qing Zhao <qing.zhao@oracle.com>
5989 * doc/extend.texi: Document strict_flex_array attribute.
5990 * doc/invoke.texi: Document -fstrict-flex-arrays[=n] option.
5991 * print-tree.cc (print_node): Print new bit decl_not_flexarray.
5992 * tree-core.h (struct tree_decl_common): New bit field
5994 * tree-streamer-in.cc (unpack_ts_decl_common_value_fields): Stream
5995 in new bit decl_not_flexarray.
5996 * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream
5997 out new bit decl_not_flexarray.
5998 * tree.cc (array_at_struct_end_p): Update it with the new bit field
6000 * tree.h (DECL_NOT_FLEXARRAY): New flag.
6002 2022-10-07 Olivier Hainque <hainque@adacore.com>
6004 * config/vxworks/_vxworks-versions.h: Use OS specific
6005 paths in #include of version.h.
6007 2022-10-07 Martin Liska <mliska@suse.cz>
6009 * opts.cc (finish_options): Print sorry message only
6010 for -flive-patching=inline-only-static.
6012 2022-10-07 Jason Merrill <jason@redhat.com>
6014 * gimplify.cc (gimplify_modify_expr_rhs): Don't optimize
6015 x = *(A*)&<expr> to x = <expr> for a TREE_ADDRESSABLE type.
6017 2022-10-07 Richard Biener <rguenther@suse.de>
6019 PR tree-optimization/107153
6020 * tree-cfg.cc (gimple_duplicate_sese_tail): Do not update
6022 * tree-parloops.cc (gen_parallel_loop): Update SSA form
6023 after to-exit-first transform, no PHI insertion is necessary.
6024 (pass_parallelize_loops::execute): Force re-write of the
6025 virtual operand SSA web.
6027 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
6029 * value-range.cc (irange::irange_contains_p): Fix comment typo.
6031 2022-10-07 Eric Botcazou <ebotcazou@adacore.com>
6033 * function.cc (thread_prologue_and_epilogue_insns): Update only
6034 entry and exit blocks when not optimizing. Remove dead statement.
6036 2022-10-07 Aldy Hernandez <aldyh@redhat.com>
6038 * value-range.cc (irange::irange_set): Convert nonzero mask to
6040 (irange::irange_set_anti_range): Same.
6041 (irange::set): Same.
6042 (irange::verify_range): Same.
6043 (irange::contains_p): Same.
6044 (irange::invert): Same.
6045 (irange::set_range_from_nonzero_bits): Same.
6046 (irange::set_nonzero_bits): Same.
6048 (irange::intersect_nonzero_bits): Same.
6049 (irange::union_nonzero_bits): Same.
6050 * value-range.h (irange::varying_compatible_p): Same.
6053 (irange::set_undefined): Same.
6054 (irange::set_varying): Same.
6056 2022-10-07 Martin Liska <mliska@suse.cz>
6058 * config/i386/i386-protos.h (ix86_binary_operator_ok): Add array
6059 size to function parameter.
6060 (ix86_unary_operator_ok): Likewise.
6062 2022-10-07 Martin Liska <mliska@suse.cz>
6064 * auto-profile.cc (get_inline_stack): Remove unused variable.
6066 2022-10-07 Jakub Jelinek <jakub@redhat.com>
6068 * ipa-prop.h (ipa_constant_data): Fix comment typo.
6069 * value-range.cc (irange::irange_contains_p): Likewise.
6070 * value-relation.cc (dom_oracle::set_one_relation): Likewise.
6071 * gimple-predicate-analysis.cc (predicate::simplify_4): Likewise.
6072 * tree-inline.cc (remap_ssa_name): Likewise.
6074 2022-10-07 Jakub Jelinek <jakub@redhat.com>
6076 * attribs.h (is_attribute_namespace_p): New inline function.
6077 (lookup_attribute): Document meaning of ATTR_NS equal to "".
6078 * attribs.cc (remove_attribute): Use is_attribute_namespace_p.
6079 (private_lookup_attribute): For ATTR_NS "" match either standard
6080 attribute or "gnu" namespace one.
6082 2022-10-07 Olivier Hainque <hainque@adacore.com>
6084 * config/vxworks.h (DWARF_VERSION_DEFAULT): Adjust from
6085 4 to 3 for VxWorks >= 7.
6087 2022-10-07 Olivier Hainque <hainque@adacore.com>
6089 * defaults.h (DWARF_DEFAULT_VERSION): Define if not
6091 * common.opt (gdwarf-): Use it.
6092 * doc/tm.texi.in (DWARF_DEFAULT_VERSION): Document.
6093 * doc/tm.texi: Update accordingly.
6094 * config/vxworks.h (DWARF_DEFAULT_VERSION): Redefine.
6095 * config/vxworks.cc: Remove code setting dwarf_version, now
6096 handled by the DWARF_DEFAULT_VERSION redefinition.
6098 2022-10-07 Olivier Hainque <hainque@adacore.com>
6100 * ginclude/stddef.h: #undef offsetof before #define.
6102 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
6104 PR tree-optimization/107170
6105 * vr-values.cc (vr_values::range_of_expr): Do not die on
6108 2022-10-06 Joseph Myers <joseph@codesourcery.com>
6110 * doc/invoke.texi (-fno-asm): Update description of effects on
6113 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
6115 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Bail out for a self
6116 dependency that is a write-after-write if the access function is not
6119 2022-10-06 Eric Botcazou <ebotcazou@adacore.com>
6121 * df-scan.cc (df_ref_create_structure): Minor cleanup.
6123 2022-10-06 Richard Biener <rguenther@suse.de>
6125 PR middle-end/107115
6126 * expr.cc (store_expr): Check mems_same_for_tbaa_p before
6127 eliding a seemingly redundant store.
6129 2022-10-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6131 * config/aarch64/atomics.md (*atomic_load<ALLX:mode>_zext<SD_HSDI:mode>):
6134 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
6136 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
6137 Ampere-1 core entry.
6139 2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
6141 * config/aarch64/driver-aarch64.cc (readline): Fix off-by-one.
6143 2022-10-06 Richard Biener <rguenther@suse.de>
6145 PR tree-optimization/107107
6146 * tree-ssa-sccvn.cc (visit_reference_op_store): Do not
6147 affect value-numbering when doing the tail merging
6150 2022-10-06 Claudiu Zissulescu <claziss@synopsys.com>
6152 * config/arc/linux.h (LINK_SPEC): Remove max-page-size and
6155 2022-10-06 Jakub Jelinek <jakub@redhat.com>
6158 * internal-fn.def (ASSUME): New internal function.
6159 * internal-fn.h (expand_ASSUME): Declare.
6160 * internal-fn.cc (expand_ASSUME): Define.
6161 * gimplify.cc (gimplify_call_expr): Gimplify IFN_ASSUME.
6162 * fold-const.h (simple_condition_p): Declare.
6163 * fold-const.cc (simple_operand_p_2): Rename to ...
6164 (simple_condition_p): ... this. Remove forward declaration.
6165 No longer static. Adjust function comment and fix a typo in it.
6166 Adjust recursive call.
6167 (simple_operand_p): Adjust function comment.
6168 (fold_truth_andor): Adjust simple_operand_p_2 callers to call
6170 * doc/extend.texi: Document assume attribute. Move fallthrough
6171 attribute example to its section.
6173 2022-10-06 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
6175 PR rtl-optimization/107088
6176 * cselib.cc (new_cselib_val): Skip BImode while keeping track of
6179 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
6181 * value-range.cc (frange::set): Call set_nan unconditionally.
6182 (range_tests_nan): Adjust tests.
6183 (range_tests_signed_zeros): Same.
6184 (range_tests_floats): Same.
6185 * value-range.h (frange::update_nan): Guard with HONOR_NANS.
6186 (frange::set_nan): Set undefined if !HONOR_NANS.
6188 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
6190 * range-op-float.cc (foperator_lt::fold_range): Remove extra check
6191 to finite_operands_p.
6192 (foperator_le::fold_range): Same.
6193 (foperator_gt::fold_range): Same.
6194 (foperator_ge::fold_range): Same.
6196 2022-10-06 Aldy Hernandez <aldyh@redhat.com>
6198 * value-range-pretty-print.cc (vrange_printer::print_real_value):
6199 Avoid printing INF and NAN twice.
6201 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
6203 * config/rs6000/constraints.md (wD): Delete.
6204 * doc/md.texi (Machine Constraints): Adjust.
6206 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
6208 * config/rs6000/vsx.md (vsx_extract_<mode>): Replace define_insn by a
6209 define_expand. Split the contents to...
6210 (*vsx_extract_<mode>_0): ... this. Rewrite.
6211 (*vsx_extract_<mode>_1): ... and this. Rewrite.
6213 2022-10-05 Segher Boessenkool <segher@kernel.crashing.org>
6215 * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of
6218 2022-10-05 David Malcolm <dmalcolm@redhat.com>
6221 * doc/analyzer.texi (__analyzer_get_unknown_ptr): Document.
6223 2022-10-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6225 * config.gcc: Add riscv_vector.h.
6226 * config/riscv/riscv-builtins.cc: Add RVV builtin types support.
6227 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): New function.
6228 (riscv_register_pragmas): Ditto.
6229 * config/riscv/riscv-protos.h (riscv_register_pragmas): Ditto.
6230 (init_builtins): Move declaration from riscv-vector-builtins.h to riscv-protos.h.
6231 (mangle_builtin_type): Ditto.
6232 (verify_type_context): Ditto.
6233 (handle_pragma_vector): New function.
6234 * config/riscv/riscv-vector-builtins.cc (GTY): New variable.
6235 (register_vector_type): New function.
6236 (init_builtins): Add RVV builtin types support.
6237 (handle_pragma_vector): New function.
6238 * config/riscv/riscv-vector-builtins.h (GCC_RISCV_V_BUILTINS_H): Change
6239 name according to file name.
6240 (GCC_RISCV_VECTOR_BUILTINS_H): Ditto.
6241 (init_builtins): Remove declaration in riscv-vector-builtins.h.
6242 (mangle_builtin_type): Ditto.
6243 (verify_type_context): Ditto.
6244 * config/riscv/riscv.cc: Adjust for RVV builtin types support.
6245 * config/riscv/riscv.h (REGISTER_TARGET_PRAGMAS): New macro.
6246 * config/riscv/t-riscv: Remove redundant file including.
6247 * config/riscv/riscv_vector.h: New file.
6249 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
6251 * range-op.cc (operator_cast::fold_range): Handle truncating casts
6254 2022-10-05 Martin Liska <mliska@suse.cz>
6257 * attribs.h (lookup_attribute_by_prefix): Support the attribute
6258 starting with underscore (_Noreturn).
6260 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
6262 PR tree-optimization/107052
6263 * gimple-range-op.cc (cfn_popcount::fold_range): Take into account
6266 2022-10-05 Aldy Hernandez <aldyh@redhat.com>
6268 PR tree-optimization/107052
6269 * range-op.cc (operator_cast::fold_range): Set nonzero mask.
6271 2022-10-05 Eric Botcazou <ebotcazou@adacore.com>
6273 PR tree-optimization/106698
6274 * pointer-query.cc (handle_array_ref): Fix handling of low bound.
6276 2022-10-05 Vineet Gupta <vineetg@rivosinc.com>
6278 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
6279 Remove __riscv_cmodel_pic, that deprecated in last version.
6281 2022-10-05 David Malcolm <dmalcolm@redhat.com>
6284 * Makefile.in (ANALYZER_OBJS): Add analyzer/call-summary.o.
6286 2022-10-04 Jakub Jelinek <jakub@redhat.com>
6288 * attribs.h (remove_attribute): Declare overload with additional
6290 (private_lookup_attribute): Declare overload with additional
6291 attr_ns and attr_ns_len arguments.
6292 (lookup_attribute): New overload with additional attr_ns argument.
6293 * attribs.cc (remove_attribute): New overload with additional
6295 (private_lookup_attribute): New overload with additional
6296 attr_ns and attr_ns_len arguments.
6298 2022-10-04 Jakub Jelinek <jakub@redhat.com>
6300 * attribs.cc (handle_ignored_attributes_option, decl_attributes,
6301 common_function_versions): Use auto_diagnostic_group.
6303 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
6305 * value-range.cc (irange::set_nonzero_bits): Remove assert.
6307 2022-10-04 Richard Sandiford <richard.sandiford@arm.com>
6309 * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New macro.
6310 * config/aarch64/aarch64-arches.def (armv8.3-a): Include RCPC.
6311 * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
6312 (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
6313 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
6314 __ARM_FEATURE_RCPC when appropriate.
6316 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
6318 * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax.
6319 (-fopenmp-simd): Likewise; update permitted directives.
6321 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
6323 * doc/install.texi (Specific): Add missing items to bullet list.
6324 (amdgcn): Update LLVM requirements, use version not date for newlib.
6325 (nvptx): Use version not git hash for newlib.
6327 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
6329 * value-range-storage.cc (irange_storage_slot::set_irange): Remove
6331 * value-range.cc (irange::irange_set): Adjust for nonzero mask
6333 (irange::irange_set_anti_range): Same.
6334 (irange::set): Same.
6335 (irange::verify_range): Same.
6336 (irange::legacy_equal_p): Same.
6337 (irange::operator==): Same.
6338 (irange::contains_p): Same.
6339 (irange::legacy_intersect): Same.
6340 (irange::legacy_union): Same.
6341 (irange::irange_single_pair_union): Call union_nonzero_bits.
6342 (irange::irange_union): Same.
6343 (irange::irange_intersect): Call intersect_nonzero_bits.
6344 (irange::intersect): Adjust for nonzero mask being a wide int.
6345 (irange::invert): Same.
6346 (irange::set_nonzero_bits): Same.
6347 (irange::get_nonzero_bits_from_range): New.
6348 (irange::set_range_from_nonzero_bits): New.
6349 (irange::get_nonzero_bits): Adjust for nonzero mask being a wide
6351 (irange::intersect_nonzero_bits): Same.
6352 (irange::union_nonzero_bits): Same.
6353 (range_tests_nonzero_bits): Remove test.
6354 * value-range.h (irange::varying_compatible_p): Adjust for nonzero
6355 mask being a wide int.
6358 (irange::set_undefined): Same.
6359 (irange::set_varying): Same.
6360 (irange::normalize_kind): Same.
6362 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
6364 PR tree-optimization/107130
6365 * gimple-range-op.cc (class cfn_popcount): Call op_cfn_ffs.
6366 (class cfn_ffs): New.
6367 (gimple_range_op_handler::maybe_builtin_call): Separate out
6368 CASE_CFN_FFS into its own case.
6370 2022-10-03 Sergei Trofimovich <siarheit@google.com>
6372 * config/i386/t-i386: Add build-time dependencies against
6373 i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
6376 2022-10-03 Andrew Stubbs <ams@codesourcery.com>
6378 * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
6380 * doc/md.texi (while_ult): Document new operand 3 usage.
6381 * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
6382 maps to a non-vector mode.
6384 2022-10-03 Andrew MacLeod <amacleod@redhat.com>
6386 PR tree-optimization/107109
6387 * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
6389 2022-10-03 Christophe Lyon <christophe.lyon@arm.com>
6391 * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
6393 (mve_vrev64q_m_f<mode>): Likewise.
6395 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
6397 * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
6398 (range_tests_nonzero_bits): New test.
6400 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
6402 * value-range.cc (irange::operator==): Early bail on m_num_ranges
6405 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
6407 * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
6408 check when comparing VR_VARYING ranges.
6410 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
6412 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
6413 incompatible ranges in ipa-prop.
6415 2022-10-02 Jakub Jelinek <jakub@redhat.com>
6417 PR tree-optimization/107121
6418 * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
6419 DEFFERED_INIT -> DEFERRED_INIT.
6421 2022-10-02 Marc Poulhiès <poulhies@adacore.com>
6423 * config/vxworks-driver.cc: New.
6424 * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs.
6425 * config/t-vxworks: Add vxworks-driver.o.
6426 * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New.
6428 2022-10-02 Olivier Hainque <hainque@adacore.com>
6430 * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If
6431 HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless
6432 of ENABLE_SHARED_LIBGCC.
6434 2022-10-01 Stafford Horne <shorne@gmail.com>
6436 * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
6437 HAVE_AS_TLS is defined.
6439 2022-10-01 Julian Brown <julian@codesourcery.com>
6441 * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
6444 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
6446 * config/h8300/h8300.md (HSI2): New iterator.
6447 (eqne_invert): Similarly.
6448 * config/h8300/testcompare.md (testhi_upper_z): New pattern.
6449 (cmpqi_z, cmphi_z, cmpsi_z): Likewise.
6450 (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New
6451 define_insn_and_splits and/or define_insns.
6452 (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise.
6453 (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise.
6455 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
6457 * tree-ssa-dom.cc (record_edge_info): Install correct version of
6460 2022-10-01 Eugene Rozenfeld <erozen@microsoft.com>
6462 * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
6464 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
6466 * tree-ssa-dom.cc (single_block_loop_p): New function.
6467 (record_edge_info): Also record equivalences for the outgoing
6468 edge of a single block loop where the condition is an invariant.
6470 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
6472 * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
6473 (free_all_edge_infos): Do not clear e->aux here.
6475 2022-09-30 H.J. Lu <hjl.tools@gmail.com>
6477 * target.def (TARGET_C_EXCESS_PRECISION): Document
6478 -fexcess-precision=16.
6480 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
6482 * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
6484 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
6487 * config/riscv/riscv.cc (riscv_excess_precision): Add support
6488 for EXCESS_PRECISION_TYPE_FLOAT16.
6490 2022-09-30 Jakub Jelinek <jakub@redhat.com>
6493 * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh
6494 and _Float16 as DF16_.
6495 * config/csky/csky.cc (csky_init_builtins): Fix a comment typo.
6496 (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_
6497 rather than mangling __fp16 as __fp16.
6499 2022-09-30 Lewis Hyatt <lhyatt@gmail.com>
6501 PR preprocessor/69543
6502 * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking
6503 information away from the diagnostic location.
6504 (maybe_warn_read_write_only): Likewise.
6505 (maybe_warn_operand): Likewise.
6507 2022-09-30 Jakub Jelinek <jakub@redhat.com>
6510 * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
6511 as Dh and _Float16 as DF16_.
6513 2022-09-30 Jakub Jelinek <jakub@redhat.com>
6516 * config/i386/i386.cc (ix86_mangle_type): Always return NULL
6517 for float128_type_node or float64x_type_node, don't check
6518 float128t_type_node later on.
6519 * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL
6520 for float128_type_node or float64x_type_node.
6521 * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise.
6522 Don't check float128_type_node later on.
6523 * config/s390/s390.cc (s390_mangle_type): Don't use
6524 TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT
6525 a few lines earlier.
6527 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
6528 Yvan ROUX <yvan.roux@foss.st.com>
6530 * doc/sourcebuild.texi: Document new vma_equals_lma effective
6533 2022-09-30 Jiawei <jiawei@iscas.ac.cn>
6535 * config/riscv/riscv.cc (riscv_file_start): New .option.
6536 * config/riscv/riscv.opt: New options.
6537 * doc/invoke.texi: New definations.
6539 2022-09-30 Kewen Lin <linkw@linux.ibm.com>
6543 * doc/invoke.texi (option -fpatchable-function-entry): Adjust the
6544 documentation for PowerPC ELFv2 ABI dual entry points.
6545 * config/rs6000/rs6000-internal.h
6546 (rs6000_print_patchable_function_entry): New function declaration.
6547 * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
6548 Support patchable-function-entry by emitting nops before and after
6549 local entry for the function that needs global entry.
6550 * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip
6551 the function that needs global entry till global entry has been
6553 * config/rs6000/rs6000.h (struct machine_function): New bool member
6554 global_entry_emitted.
6556 2022-09-30 Richard Biener <rguenther@suse.de>
6558 PR tree-optimization/107095
6559 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
6560 for .MASK_STORE size.
6562 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
6564 * range-op.cc (plus_minus_ranges): New.
6565 (adjust_op1_for_overflow): New.
6566 (operator_plus::op1_range): Use new adjustment.
6567 (operator_plus::op2_range): Ditto.
6568 (operator_minus::op1_range): Ditto.
6569 * value-relation.h (relation_lt_le_gt_ge_p): New.
6571 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
6573 * gimple-range-gori.cc (gori_compute::refine_using_relation): New.
6574 (gori_compute::compute_operand1_range): Invoke
6575 refine_using_relation when applicable.
6576 (gori_compute::compute_operand2_range): Ditto.
6577 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
6579 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
6581 * gimple-range-gori.cc (ori_compute::compute_operand_range):
6582 Create a relation record and pass it along when possible.
6583 (gori_compute::compute_operand1_range): Pass relation along.
6584 (gori_compute::compute_operand2_range): Ditto.
6585 (gori_compute::compute_operand1_and_operand2_range): Ditto.
6586 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
6587 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass
6588 relation to op1_range call.
6589 (gimple_range_op_handler::calc_op2): Pass relation to op2_range call.
6590 * gimple-range-op.h (class gimple_range_op_handler): Adjust
6593 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
6595 * value-relation.cc (class value_relation): Move to .h file.
6596 (value_relation::set_relation): Ditto.
6597 (value_relation::value_relation): ditto.
6598 * value-relation.h (class value_relation): Move from .cc file.
6599 (value_relation::set_relation): Ditto
6600 (value_relation::value_relation): Ditto.
6602 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
6604 * range-op.cc (operator_minus::op2_range): Check for undefined.
6605 (operator_mult::op1_range): Ditto.
6606 (operator_exact_divide::op1_range): Ditto.
6607 (operator_lshift::op1_range): Ditto.
6608 (operator_rshift::op1_range): Ditto.
6609 (operator_cast::op1_range): Ditto.
6610 (operator_bitwise_and::op1_range): Ditto.
6611 (operator_bitwise_or::op1_range): Ditto.
6612 (operator_trunc_mod::op1_range): Ditto.
6613 (operator_trunc_mod::op2_range): Ditto.
6614 (operator_bitwise_not::op1_range): Ditto.
6615 (pointer_or_operator::op1_range): Ditto.
6616 (range_op_handler::op1_range): Ditto.
6617 (range_op_handler::op2_range): Ditto.
6619 2022-09-29 Andrew Stubbs <ams@codesourcery.com>
6621 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
6622 Remove unused elt_bits variable.
6624 2022-09-29 Olivier Hainque <hainque@adacore.com>
6626 * config/vxworks.h: Add comment on our use of
6627 HAVE_INITFINI_ARRAY_SUPPORT.
6629 2022-09-29 Olivier Hainque <hainque@adacore.com>
6631 * config/aarch64/t-aarch64-vxworks: Request multilib
6632 variants for mcmodel=large.
6634 2022-09-29 Olivier Hainque <hainque@adacore.com>
6636 * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
6639 2022-09-29 Olivier Hainque <hainque@adacore.com>
6641 * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
6642 when ARM_UNWIND_INFO is set.
6644 2022-09-29 Julian Brown <julian@codesourcery.com>
6646 PR middle-end/107028
6647 * gimplify.cc (omp_check_mapping_compatibility,
6648 oacc_resolve_clause_dependencies): New functions.
6649 (omp_accumulate_sibling_list): Remove redundant duplicate clause
6650 detection for OpenACC.
6651 (build_struct_sibling_lists): Skip deleted groups. Don't build sibling
6652 list for struct variables that are fully mapped on the same directive
6654 (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
6656 2022-09-29 Jose E. Marchesi <jose.marchesi@oracle.com>
6659 * varasm.cc (categorize_decl_for_section): Place `const volatile'
6660 objects in read-only sections.
6661 (default_select_section): Likewise.
6663 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6665 * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
6668 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6670 * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4)
6671 (TARGET_DOTPROD): Don't depend on TARGET_SIMD.
6672 (TARGET_AES, TARGET_SHA2): Likewise. Remove TARGET_CRYPTO test.
6673 (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT.
6674 (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend
6676 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
6677 (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2.
6678 (TARGET_F32MM, TARGET_F64MM): Delete.
6679 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard
6680 float macros with just TARGET_FLOAT rather than TARGET_FLOAT
6682 * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend
6683 only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD.
6684 (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES,
6685 rather than TARGET_SIMD && TARGET_AES.
6686 (aarch64_crypto_aes<aesmc_op>v16qi): Likewise.
6687 (*aarch64_crypto_aese_fused): Likewise.
6688 (*aarch64_crypto_aesd_fused): Likewise.
6689 (aarch64_crypto_pmulldi): Likewise.
6690 (aarch64_crypto_pmullv2di): Likewise.
6691 (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2.
6692 (aarch64_crypto_sha1hv4si): Likewise.
6693 (aarch64_be_crypto_sha1hv4si): Likewise.
6694 (aarch64_crypto_sha1su1v4si): Likewise.
6695 (aarch64_crypto_sha1<sha1_op>v4si): Likewise.
6696 (aarch64_crypto_sha1su0v4si): Likewise.
6697 (aarch64_crypto_sha256h<sha256_op>v4si): Likewise.
6698 (aarch64_crypto_sha256su0v4si): Likewise.
6699 (aarch64_crypto_sha256su1v4si): Likewise.
6700 (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3.
6701 (aarch64_crypto_sha512su0qv2di): Likewise.
6702 (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise.
6703 (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise.
6704 (aarch64_sm3ss1qv4si): Likewise TARGET_SM4.
6705 (aarch64_sm3tt<sm3tt_op>qv4si): Likewise.
6706 (aarch64_sm3partw<sm3part_op>qv4si): Likewise.
6707 (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise.
6708 * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2)
6709 (copysign<GPF:mode>3, copysign<GPF:mode>3_insn)
6710 (xorsign<mode>3): Remove redundant TARGET_FLOAT condition.
6712 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6714 * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable.
6715 * config/aarch64/aarch64.h (aarch64_asm_isa_flags)
6716 (aarch64_isa_flags): Redefine as read-only macros.
6717 (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on
6718 !TARGET_GENERAL_REGS_ONLY.
6719 * common/config/aarch64/aarch64-common.cc
6720 (aarch64_set_asm_isa_flags): New function.
6721 (aarch64_handle_option): Call it when updating -mgeneral-regs.
6722 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace
6723 m_old_isa_flags with m_old_asm_isa_flags.
6724 (aarch64_set_asm_isa_flags): Declare.
6725 * config/aarch64/aarch64-builtins.cc
6726 (aarch64_simd_switcher::aarch64_simd_switcher)
6727 (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore
6728 aarch64_asm_isa_flags instead of aarch64_isa_flags.
6729 * config/aarch64/aarch64-sve-builtins.cc
6730 (check_required_extensions): Use aarch64_asm_isa_flags instead
6731 of aarch64_isa_flags.
6732 * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function.
6733 (aarch64_override_options, aarch64_handle_attr_arch)
6734 (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use
6735 aarch64_set_asm_isa_flags to set the ISA flags.
6736 (aarch64_option_print, aarch64_declare_function_name)
6737 (aarch64_start_file): Use aarch64_asm_isa_flags instead
6738 of aarch64_isa_flags.
6739 (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as
6742 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6744 * common/config/aarch64/aarch64-common.cc (all_extensions):
6745 Include the feature flag in flags_on and flags_off.
6746 (aarch64_parse_extension): Update accordingly.
6747 (aarch64_get_extension_string_for_isa_flags): Likewise.
6749 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6751 * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags
6752 for feature flags throughout.
6753 * config/aarch64/aarch64-protos.h: Likewise.
6754 * config/aarch64/aarch64-sve-builtins.h: Likewise.
6755 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
6756 * config/aarch64/aarch64.cc: Likewise.
6757 * config/aarch64/aarch64.opt: Likewise.
6758 * config/aarch64/driver-aarch64.cc: Likewise.
6760 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6762 * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
6763 (processor_name_to_arch, arch_to_arch_name): Remove const from
6765 (all_extensions, all_cores, all_architectures): Make a constexpr.
6766 * config/aarch64/aarch64.cc (processor): Remove const from
6768 (all_architectures): Make a constexpr.
6769 * config/aarch64/driver-aarch64.cc (aarch64_core_data)
6770 (aarch64_arch_driver_info): Remove const from member variables.
6771 (aarch64_cpu_data, aarch64_arches): Make a constexpr.
6772 (get_arch_from_id): Return a pointer to const.
6773 (host_detect_local_cpu): Update accordingly.
6775 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6777 * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
6778 (arch_to_arch_name): Use const char * instead of std::string.
6780 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6782 * common/config/aarch64/aarch64-common.cc
6783 (TARGET_OPTION_INIT_STRUCT): Delete.
6784 (aarch64_option_extension): Remove is_synthetic_flag.
6785 (all_extensions): Update accordingly.
6786 (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete.
6787 (aarch64_option_init_struct, aarch64_contains_opt): Delete.
6788 (aarch64_get_extension_string_for_isa_flags): Rewrite to use
6789 all_extensions instead of all_extensions_on.
6791 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6793 * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
6794 * config/aarch64/aarch64-cores.def: Use the same format to specify
6796 * config/aarch64/aarch64-arches.def: Likewise, moving that information
6798 * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef.
6799 * config/aarch64/aarch64.h (aarch64_feature): New class enum.
6800 Turn AARCH64_FL_* macros into constexprs, getting the definitions
6801 from aarch64-option-extensions.def. Remove AARCH64_FL_FOR_* macros.
6802 * common/config/aarch64/aarch64-common.cc: Include
6803 aarch64-feature-deps.h.
6804 (all_extensions): Update for new .def format.
6805 (all_extensions_by_on, all_cores, all_architectures): Likewise.
6806 * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h.
6807 (aarch64_extensions): Update for new .def format.
6808 (aarch64_cpu_data, aarch64_arches): Likewise.
6809 * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h.
6810 (all_architectures, all_cores): Update for new .def format.
6811 * config/aarch64/aarch64-sve-builtins.cc
6812 (check_required_extensions): Likewise.
6813 * config/aarch64/aarch64-feature-deps.h: New file.
6815 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6817 * config/aarch64/aarch64-option-extensions.def: Move crypto
6820 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6822 * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
6823 on fp as well as simd.
6825 (aes): Likewise. Make +noaes disable crypto.
6826 (sha2): Likewise +nosha2. Also make +nosha2 disable sha3 and
6828 (sve2-sha3): Depend on sha2 as well as sha3.
6830 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6833 * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
6834 (AARCH64_FL_FOR_V8_4A): Update accordingly.
6835 (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
6836 * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
6839 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6841 * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH>
6842 from the flags field.
6843 * common/config/aarch64/aarch64-common.cc (all_cores): Add it
6845 * config/aarch64/aarch64.cc (all_cores): Likewise.
6846 * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
6848 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6850 * config.gcc: Remove dead aarch64-option-extensions.def code.
6851 * config/aarch64/aarch64-arches.def: Update comment.
6853 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6855 * config/aarch64/aarch64-arches.def: Add a leading "V" to the
6857 * config/aarch64/aarch64-cores.def: Update accordingly.
6858 * common/config/aarch64/aarch64-common.cc (all_cores): Likewise.
6859 * config/aarch64/aarch64.cc (all_cores): Likewise.
6860 * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the
6863 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6865 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to...
6866 (AARCH64_FL_FOR_V8A): ...this.
6867 (AARCH64_FL_FOR_ARCH8_1): Rename to...
6868 (AARCH64_FL_FOR_V8_1A): ...this.
6869 (AARCH64_FL_FOR_ARCH8_2): Rename to...
6870 (AARCH64_FL_FOR_V8_2A): ...this.
6871 (AARCH64_FL_FOR_ARCH8_3): Rename to...
6872 (AARCH64_FL_FOR_V8_3A): ...this.
6873 (AARCH64_FL_FOR_ARCH8_4): Rename to...
6874 (AARCH64_FL_FOR_V8_4A): ...this.
6875 (AARCH64_FL_FOR_ARCH8_5): Rename to...
6876 (AARCH64_FL_FOR_V8_5A): ...this.
6877 (AARCH64_FL_FOR_ARCH8_6): Rename to...
6878 (AARCH64_FL_FOR_V8_6A): ...this.
6879 (AARCH64_FL_FOR_ARCH8_7): Rename to...
6880 (AARCH64_FL_FOR_V8_7A): ...this.
6881 (AARCH64_FL_FOR_ARCH8_8): Rename to...
6882 (AARCH64_FL_FOR_V8_8A): ...this.
6883 (AARCH64_FL_FOR_ARCH8_R): Rename to...
6884 (AARCH64_FL_FOR_V8R): ...this.
6885 (AARCH64_FL_FOR_ARCH9): Rename to...
6886 (AARCH64_FL_FOR_V9A): ...this.
6887 (AARCH64_FL_FOR_ARCH9_1): Rename to...
6888 (AARCH64_FL_FOR_V9_1A): ...this.
6889 (AARCH64_FL_FOR_ARCH9_2): Rename to...
6890 (AARCH64_FL_FOR_V9_2A): ...this.
6891 (AARCH64_FL_FOR_ARCH9_3): Rename to...
6892 (AARCH64_FL_FOR_V9_3A): ...this.
6893 * common/config/aarch64/aarch64-common.cc (all_cores): Update
6895 * config/aarch64/aarch64-arches.def: Likewise.
6896 * config/aarch64/aarch64-cores.def: Likewise.
6897 * config/aarch64/aarch64.cc (all_cores): Likewise.
6899 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6901 * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2)
6902 (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6)
6903 (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1)
6904 (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name.
6905 (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R.
6906 (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly.
6907 (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise.
6908 (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise.
6909 (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise.
6910 (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise.
6911 (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise.
6912 (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A)
6913 (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise.
6914 (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise.
6915 (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise.
6917 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6919 * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3)
6920 (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6)
6921 (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2)
6922 (AARCH64_ISA_V9_3): Add "A" to the end of the name.
6923 (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R.
6924 (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update
6926 * common/config/aarch64/aarch64-common.cc
6927 (aarch64_get_extension_string_for_isa_flags): Likewise.
6928 * config/aarch64/aarch64-c.cc
6929 (aarch64_define_unconditional_macros): Likewise.
6931 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
6933 * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
6935 2022-09-29 Jakub Jelinek <jakub@redhat.com>
6938 * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
6939 isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
6940 before FIXED_INCLUDE_DIR entry with multilib flag 0.
6941 * gcc.cc (do_spec_1): If multiarch_dir, add
6942 include-fixed/multiarch_dir paths before include-fixed paths.
6944 2022-09-29 Martin Liska <mliska@suse.cz>
6947 * common.opt: Add -gz=zstd value.
6948 * configure.ac: Detect --compress-debug-sections=zstd
6949 for both linker and assembler.
6950 * configure: Regenerate.
6951 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd.
6952 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
6954 2022-09-29 Richard Biener <rguenther@suse.de>
6956 PR tree-optimization/105646
6957 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
6958 the set of fallthru reachable blocks from function entry
6959 and use that to determine wlims.always_executed.
6961 2022-09-29 liuhongt <hongtao.liu@intel.com>
6963 PR tree-optimization/107055
6964 * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for
6965 nonlinear induction variables.
6966 * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New
6968 (vectorizable_nonlinear_induction): Put part codes into
6969 vect_can_peel_nonlinear_iv_p.
6970 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare.
6972 2022-09-28 Eugene Rozenfeld <erozen@microsoft.com>
6974 * basic-block.h: Remove discriminator from basic blocks.
6975 * cfghooks.cc (split_block_1): Remove discriminator from basic blocks.
6976 * final.cc (final_start_function_1): Switch from per-bb to per statement
6978 (final_scan_insn_1): Don't keep track of basic block discriminators.
6979 (compute_discriminator): Switch from basic block discriminators to
6980 instruction discriminators.
6981 (insn_discriminator): New function to return instruction discriminator.
6982 (notice_source_line): Use insn_discriminator.
6983 * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of
6984 basic block discriminators.
6985 * gimple-streamer-in.cc (input_bb): Remove reading of basic block
6987 * gimple-streamer-out.cc (output_bb): Remove writing of basic block
6989 * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
6990 (location_with_discriminator): New function to combine locus with
6992 (has_discriminator): New function to check if a location has a discriminator.
6993 (get_discriminator_from_loc): New function to get the discriminator
6995 * input.h: Declarations of new functions.
6996 * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison.
6997 (apply_location_cache): Keep track of current discriminator.
6998 (input_location_and_block): Read discriminator from stream.
6999 * lto-streamer-out.cc (clear_line_info): Set current discriminator to
7001 (lto_output_location_1): Write discriminator to stream.
7002 * lto-streamer.h: Add discriminator to cached_location.
7003 Add current_discr to lto_location_cache.
7004 Add current_discr to output_block.
7005 * print-rtl.cc (print_rtx_operand_code_i): Print discriminator.
7006 * rtl.h: Add extern declaration of insn_discriminator.
7007 * tree-cfg.cc (assign_discriminator): New function to assign a unique
7008 discriminator value to all statements in a basic block that have the given
7010 (assign_discriminators): Assign discriminators to statement locations.
7011 * tree-pretty-print.cc (dump_location): Dump discriminators.
7012 * tree.cc (set_block): Preserve discriminator when setting block.
7013 (set_source_range): Preserve discriminator when setting source range.
7015 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
7018 * config/i386/predicates.md (encodekey128_operation): Check
7019 XMM4-XMM6 as clobbered.
7020 (encodekey256_operation): Likewise.
7021 * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
7022 (encodekey256u32): Likewise.
7024 2022-09-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7026 * config.gcc: Add riscv-vector-builtins.o.
7027 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function.
7028 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function.
7029 * config/riscv/riscv.cc (ENTRY): New macro.
7030 (riscv_v_ext_enabled_vector_mode_p): New function.
7031 (riscv_mangle_type): Add RVV mangle.
7032 (riscv_vector_mode_supported_p): Adjust RVV machine mode.
7033 (riscv_verify_type_context): Add context check for RVV.
7034 (riscv_vector_alignment): Add RVV alignment target hook support.
7035 (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support.
7036 (TARGET_VERIFY_TYPE_CONTEXT): Ditto.
7037 (TARGET_VECTOR_ALIGNMENT): Ditto.
7038 * config/riscv/t-riscv: Add riscv-vector-builtins.o
7039 * config/riscv/riscv-vector-builtins.cc: New file.
7040 * config/riscv/riscv-vector-builtins.def: New file.
7041 * config/riscv/riscv-vector-builtins.h: New file.
7042 * config/riscv/riscv-vector-switch.def: New file.
7044 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
7046 * var-tracking.cc (vt_add_function_parameter): Add entry values
7047 up to maximal register mode.
7049 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
7051 * cselib.cc (new_cselib_val): Keep track of further subvalue
7054 2022-09-28 Andrea Corallo <andrea.corallo@arm.com>
7056 * config/arm/arm-c.cc (arm_cpu_builtins): Define
7057 __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
7059 2022-09-28 Xi Ruoyao <xry111@xry111.site>
7061 PR tree-optimization/105414
7062 * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec.
7063 (UNSPEC_FMIN): Likewise.
7064 (fmax<mode>3): Use UNSPEC_FMAX instead of smax.
7065 (fmin<mode>3): Use UNSPEC_FMIN instead of smin.
7067 2022-09-28 Lulu Cheng <chenglulu@loongson.cn>
7069 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
7070 Fixed typo in "asan_mapping.h".
7072 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
7075 * calls.cc: Include "tree-eh.h".
7076 (expand_call): Check stack canary before throwing exception.
7078 2022-09-27 Eugene Rozenfeld <erozen@microsoft.com>
7080 * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
7082 2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com>
7084 * doc/invoke.texi: Update ABI version info.
7086 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
7088 * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
7091 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
7093 * value-range.cc (irange::set_nonzero_bits): Set range when known.
7095 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
7097 * value-range.h (irange::set): New version taking wide_int_ref.
7099 2022-09-27 Jakub Jelinek <jakub@redhat.com>
7101 PR tree-optimization/107029
7102 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
7103 OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
7104 signed and so can trigger even the (b % 4) == 3 case.
7106 2022-09-27 Jeff Law <jeffreyalaw@gmail.com>
7108 * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
7109 and return are available before trying to use them.
7111 2022-09-27 Jakub Jelinek <jakub@redhat.com>
7115 * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
7117 * tree.h (float128t_type_node): Define.
7118 * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
7119 * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
7120 _Float<N> is supported in C++ too.
7121 * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
7122 float128t_type_node.
7123 * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
7124 float128t_type_node for __float128 instead of float128_type_node
7125 and create it if NULL.
7126 * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
7127 _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
7129 * config/ia64/ia64.cc (ia64_init_builtins): Use
7130 float128t_type_node for __float128 instead of float128_type_node
7131 and create it if NULL.
7132 * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
7133 for float128t_type_node if non-NULL.
7134 * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
7135 float128_type_node as "u9__ieee128".
7136 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
7137 float128t_type_node for __float128 instead of float128_type_node
7138 and create it if NULL.
7140 2022-09-26 Martin Liska <mliska@suse.cz>
7142 * doc/invoke.texi: Add missing dash for
7143 Wanalyzer-exposure-through-uninit-copy.
7145 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
7147 PR tree-optimization/107009
7148 * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK.
7149 (range_op_bitwise_and_tests): New test.
7151 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
7153 PR tree-optimization/107009
7155 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
7156 Iterate over exports.
7158 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
7160 * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
7162 * config/nvptx/gen-multilib-matches.sh: New.
7163 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
7164 (MULTILIB_EXCEPTIONS): Handle this.
7165 * doc/install.texi (Specific) <nvptx-*-none>: Document this.
7166 * doc/invoke.texi (Nvidia PTX Options): Likewise.
7168 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
7170 * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'.
7171 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
7172 (MULTILIB_EXCEPTIONS): Handle it.
7174 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
7176 * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
7177 * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
7179 * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
7180 * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
7182 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
7184 * config/nvptx/nvptx.h (ASM_SPEC): Define.
7186 2022-09-26 Jeff Law <jeffreyalaw@gmail.com>
7188 * cfgcleanup.cc (bb_is_just_return): No longer static.
7189 * cfgcleanup.h (bb_is_just_return): Add prototype.
7190 * cfgrtl.cc (fixup_reorder_chain): Do not create an
7191 unconditional jump to a return block. Conditionally
7192 remove unreachable blocks.
7194 2022-09-26 Tobias Burnus <tobias@codesourcery.com>
7196 PR middle-end/106982
7197 * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
7199 2022-09-26 Martin Liska <mliska@suse.cz>
7201 * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
7204 2022-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7206 * config/aarch64/aarch64-arches.def (armv9.1-a): Define.
7207 (armv9.2-a): Likewise.
7208 (armv9.3-a): Likewise.
7209 * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise.
7210 (AARCH64_FL_V9_2): Likewise.
7211 (AARCH64_FL_V9_3): Likewise.
7212 (AARCH64_FL_FOR_ARCH9_1): Likewise.
7213 (AARCH64_FL_FOR_ARCH9_2): Likewise.
7214 (AARCH64_FL_FOR_ARCH9_3): Likewise.
7215 (AARCH64_ISA_V9_1): Likewise.
7216 (AARCH64_ISA_V9_2): Likewise.
7217 (AARCH64_ISA_V9_3): Likewise.
7218 * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a,
7219 armv9.3-a values to -march.
7221 2022-09-26 Martin Liska <mliska@suse.cz>
7223 * value-range.cc (tree_compare): Remove unused function.
7225 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
7228 * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the
7229 condition for adding REG_CFA_DEF_CFA reg note with
7230 frame_pointer_needed_indeed.
7232 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
7235 * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
7236 TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
7238 2022-09-26 Hongtao Liu <hongtao.liu@intel.com>
7239 Liwei Xu <liwei.xu@intel.com>
7242 * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
7244 (ix86_expand_vec_perm_const_1): Insert
7245 expand_vec_perm_shufps_shufps at the end of 2-instruction
7248 2022-09-25 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
7250 * doc/sourcebuild.texi: Fix chapter level.
7252 2022-09-24 Jakub Jelinek <jakub@redhat.com>
7255 * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
7257 * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
7258 is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't
7260 (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
7261 cur_region back after new_omp_region.
7263 2022-09-23 Vineet Gupta <vineetg@rivosinc.com>
7265 * config/riscv/riscv.h (LOCAL_SYM_P): New.
7266 (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
7268 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
7270 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
7271 (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
7272 (ADJUST_ALIGNMENT): Adjust alignment.
7273 (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
7274 (RVV_MODES): New macro.
7275 (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
7276 (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
7278 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
7280 * common/config/riscv/riscv-common.cc: Change "static void" to "void".
7281 * config.gcc: Add riscv-selftests.o
7282 * config/riscv/predicates.md: Allow const_poly_int.
7283 * config/riscv/riscv-protos.h (riscv_reinit): New function.
7284 (riscv_parse_arch_string): change as exten function.
7285 (riscv_run_selftests): New function.
7286 * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
7288 (riscv_report_v_required): New function.
7289 (riscv_expand_op): New function.
7290 (riscv_expand_mult_with_const_int): New function.
7291 (riscv_legitimize_poly_move): Ditto.
7292 (riscv_legitimize_move): New function.
7293 (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
7295 (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
7297 (riscv_reinit): New function.
7298 (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
7299 * config/riscv/t-riscv: Add riscv-selftests.o.
7300 * config/riscv/riscv-selftests.cc: New file.
7302 2022-09-23 Richard Biener <rguenther@suse.de>
7304 PR tree-optimization/106922
7305 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
7306 an arbitrary number of same valued skipped stores.
7308 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
7310 * value-range.cc (frange::set): Swap setters such that the one
7311 accepting REAL_VALUE_TYPE does all the work.
7313 2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7315 * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
7316 (demeter): Update tunings to neoversev2.
7317 * config/aarch64/aarch64-tune.md: Regenerate.
7318 * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
7319 neoversev2_addrcost_table.
7320 (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
7321 (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
7322 (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
7323 (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
7324 (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
7325 (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
7326 (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
7327 Update references to above.
7328 (demeter_vector_cost): Rename to neoversev2_vector_cost.
7329 (demeter_tunings): Rename to neoversev2_tunings.
7330 (aarch64_vec_op_count::rename_cycles_per_iter): Use
7331 neoversev2_sve_issue_info instead of demeter_sve_issue_info.
7332 * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
7334 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
7336 * range-op-float.cc (build_le): Use vrp_val_*.
7340 * value-range.cc (frange::set): Chop ranges outside of the
7341 representable numbers for -ffinite-math-only.
7342 (frange::normalize_kind): Use vrp_val*.
7343 (frange::verify_range): Same.
7344 (frange::set_nonnegative): Same.
7345 (range_tests_floats): Remove tests that depend on -INF and +INF.
7346 * value-range.h (real_max_representable): Add prototype.
7347 (real_min_representable): Same.
7348 (vrp_val_max): Set max representable number for
7350 (vrp_val_min): Same but for min.
7351 (frange::set_varying): Use vrp_val*.
7353 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
7355 * real.cc (debug): New.
7357 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
7359 * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
7360 (vrange_printer::visit): Call print_real_value.
7361 * value-range-pretty-print.h: New print_real_value.
7363 2022-09-23 Martin Liska <mliska@suse.cz>
7365 * common.opt: Update -flto-compression-level documentation.
7366 * opts.cc (print_filtered_help): Do not append range to an
7367 option that uses \t syntax.
7369 2022-09-23 Jakub Jelinek <jakub@redhat.com>
7371 * attribs.cc (decl_attributes): Improve diagnostics, instead of
7372 saying expected between 1 and 1, found 2 just say expected 1, found 2.
7374 2022-09-23 Hu, Lin1 <lin1.hu@intel.com>
7377 * config/i386/constraints.md (BH): New define_constraint.
7378 * config/i386/i386.cc (standard_sse_constant_p): Add return
7379 3/4 when operand matches new predicate.
7380 (standard_sse_constant_opcode): Add new alternative branch to
7382 * config/i386/predicates.md
7383 (vector_all_ones_zero_extend_half_operand): New define_predicate.
7384 (vector_all_ones_zero_extend_quarter_operand): Ditto.
7385 * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
7387 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7389 * gimple-range-fold.cc (range_of_range_op): Handle no operands.
7390 (range_of_call): Do not check for builtins.
7391 (fold_using_range::range_of_builtin_call): Delete.
7392 (fold_using_range::range_of_builtin_int_call): Delete.
7393 * gimple-range-fold.h: Adjust prototypes.
7394 * gimple-range-op.cc (class cfn_parity): New.
7395 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7397 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7399 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
7400 for CFN_GOACC_DIM_*.
7401 * gimple-range-op.cc (class cfn_goacc_dim): New.
7402 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7404 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7406 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
7407 for CFN_BUILT_IN_STRLEN.
7408 * gimple-range-op.cc (class cfn_strlen): New.
7409 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7411 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7413 * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
7414 (range_of_builtin_int_call): Remove cases for
7415 CFN_BUILT_IN_UBSAN_CHECK.
7416 * gimple-range-op.cc (class cfn_ubsan): New.
7417 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7419 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7421 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
7422 for CFN_BUILT_IN_CLRSB.
7423 * gimple-range-op.cc (class cfn_clrsb): New.
7424 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7426 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7428 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
7430 * gimple-range-op.cc (class cfn_ctz): New.
7431 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7433 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7435 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
7437 * gimple-range-op.cc (class cfn_clz): New.
7438 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7440 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7442 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
7443 for CFN_FFS and CFN_POPCOUNT.
7444 * gimple-range-op.cc (class cfn_pocount): New.
7445 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7447 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7449 * gimple-range-fold.cc (get_letter_range): Move to new class.
7450 (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
7451 and CFN_BUILT_IN_TOLOWER.
7452 * gimple-range-op.cc (class cfn_toupper_tolower): New.
7453 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7455 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7457 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
7458 for CFN_BUILT_IN_SIGNBIT.
7459 * gimple-range-op.cc (class cfn_signbit): New.
7460 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
7462 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7464 * gimple-range-fold.cc
7465 (fold_using_range::range_of_builtin_int_call): Remove case for
7466 CFN_BUILT_IN_CONSTANT_P.
7467 * gimple-range-op.cc (gimple_range_op_handler::supported_p):
7468 Check if a call also creates a range-op object.
7469 (gimple_range_op_handler): Also check builtin calls.
7470 (class cfn_constant_float_p): New. Float CFN_BUILT_IN_CONSTANT_P.
7471 (class cfn_constant_p): New. Integral CFN_BUILT_IN_CONSTANT_P.
7472 (gimple_range_op_handler::maybe_builtin_call): Set arguments and
7473 handler for supported built-in calls.
7474 * gimple-range-op.h (maybe_builtin_call): New prototype.
7476 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7478 * gimple-range-fold.cc (range_of_range_op): Set result to
7479 VARYING if the call to fold_range fails.
7480 * tree-data-ref.cc (compute_distributive_range): Ditto.
7481 * tree-vrp.cc (range_fold_binary_expr): Ditto.
7482 (range_fold_unary_expr): Ditto.
7483 * value-query.cc (range_query::get_tree_range): Ditto.
7485 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7487 * range-op-float.cc (range_operator_float::fold_range): New base
7488 method for "int = float op int".
7489 * range-op.cc (range_op_handler::fold_range): New case.
7490 * range-op.h: Update prototypes.
7492 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7494 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
7495 operand 1 for second range if there is no operand 2.
7497 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7499 * Makefile.in (OBJS): Add gimple-range-op.o.
7500 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
7501 gimple_range_op_handler.
7502 * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
7503 to a method in gimple_range_op_handler.
7504 (gimple_range_operand1): Ditto.
7505 (gimple_range_operand2): Ditto.
7506 (fold_using_range::fold_stmt): Use gimple_range_op_handler.
7507 (fold_using_range::range_of_range_op): Ditto.
7508 (fold_using_range::relation_fold_and_or): Ditto.
7509 (fur_source::register_outgoing_edges): Ditto.
7510 (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
7511 * gimple-range-fold.h: Adjust prototypes.
7512 * gimple-range-gori.cc (gimple_range_calc_op1): Move
7513 to a method in gimple_range_op_handler.
7514 (gimple_range_calc_op2): Ditto.
7515 (gori_compute::compute_operand_range): Use
7516 gimple_range_op_handler.
7517 (gori_compute::compute_logical_operands): Ditto.
7518 (compute_operand1_range): Ditto.
7519 (gori_compute::compute_operand2_range): Ditto.
7520 (gori_compute::compute_operand1_and_operand2_range): Ditto.
7521 * gimple-range-gori.h: Adjust protoypes.
7522 * gimple-range-op.cc: New. Supply gimple_range_op_handler methods.
7523 * gimple-range-op.h: New. Supply gimple_range_op_handler class.
7524 * gimple-range.cc (gimple_ranger::prefill_name): Use
7525 gimple_range_op_handler.
7526 (gimple_ranger::prefill_stmt_dependencies): Ditto.
7527 * gimple-range.h: Include gimple-range-op.h.
7528 * range-op.cc (range_op_handler::range_op_handler): Adjust and
7529 remove gimple * parameter option.
7530 * range-op.h: Adjust prototypes.
7532 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7534 * range-op.cc (range_op_handler::set_op_handler): Set new fields.
7535 (ange_op_handler::range_op_handler): Likewise.
7536 (range_op_handler::operator bool): Remove.
7537 (range_op_handler::fold_range): Use appropriate handler.
7538 (range_op_handler::op1_range): Likewise.
7539 (range_op_handler::op2_range): Likewise.
7540 (range_op_handler::lhs_op1_relation): Likewise.
7541 (range_op_handler::lhs_op2_relation): Likewise.
7542 (range_op_handler::op1_op2_relation): Likewise.
7543 * range-op.h (class range_op_handler): Store handler pointers.
7544 (range_op_handler:: operator bool): Inline.
7546 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
7548 * tree-ssa-threadbackward.cc
7549 (back_threader::find_paths_to_names): Replace sequence with
7550 a call to gimple_range_ssa_names.
7552 2022-09-22 Martin Liska <mliska@suse.cz>
7553 Fangrui Song <i@maskray.me>
7555 * configure: Regenerate.
7556 * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
7557 and gcc_cv_as_compress_debug={0,1}.
7558 * doc/invoke.texi: Document the removal.
7559 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
7561 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
7563 2022-09-22 Richard Biener <rguenther@suse.de>
7565 PR tree-optimization/106922
7566 * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
7567 (vn_walk_cb_data::finish): Perform delayed verification of
7568 a skipped may-alias.
7569 (vn_reference_lookup_pieces): Likewise.
7570 (vn_reference_lookup): Likewise.
7571 (vn_reference_lookup_3): When skipping stores of the same
7572 value also handle constant stores that are more than a
7573 single VDEF away by delaying the verification.
7575 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
7577 * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
7580 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
7582 * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
7583 (xtensa_output_mi_thunk): New functions.
7584 (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
7585 (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
7586 (xtensa_prepare_expand_call): Use fixed register a8 as temporary
7587 when called with reload_completed set to 1.
7589 2022-09-22 Richard Biener <rguenther@suse.de>
7591 PR tree-optimization/99407
7592 * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
7593 (dse_classify_store): Use data-ref analysis to disambiguate more uses.
7594 (pass_dse::use_dr_analysis_p): New pass parameter.
7595 (pass_dse::set_pass_param): Implement.
7596 (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
7597 * passes.def: Allow DR analysis for the DSE pass before loop.
7599 2022-09-22 Richard Biener <rguenther@suse.de>
7601 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
7602 function split out from ...
7603 (vn_nary_op_insert_pieces_predicated): ... here.
7605 2022-09-22 liuhongt <hongtao.liu@intel.com>
7608 * config/i386/mmx.md (floorv2sf2): Fix typo, use
7609 register_operand instead of vector_operand for operands[1].
7611 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
7613 PR tree-optimization/106967
7614 * value-range.cc (frange::set): Set known NANs to undefined for
7615 flag_finite_math_only.
7617 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
7619 * value-range.cc (frange::combine_zeros): Call set_undefined.
7620 (frange::intersect_nans): Same.
7621 (frange::intersect): Same.
7622 (frange::verify_range): Undefined ranges do not have a type.
7623 * value-range.h (frange::set_undefined): Clear NAN flags and type.
7625 2022-09-21 Richard Biener <rguenther@suse.de>
7627 PR tree-optimization/106984
7628 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
7629 a separate statement.
7631 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7633 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
7634 EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
7635 OPTION_DEFAULT_SPECS.
7636 (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
7637 local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
7639 (CONFIG_TUNE_SPEC): Define.
7640 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
7642 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
7644 PR tree-optimization/106967
7645 * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
7646 (foperator_equal::op1_range): Same.
7647 (foperator_not_equal::fold_range): Same.
7648 (foperator_not_equal::op1_range): Same.
7649 (foperator_lt::fold_range): Same.
7650 (foperator_lt::op1_range): Same.
7651 (foperator_lt::op2_range): Same.
7652 (foperator_le::fold_range): Same.
7653 (foperator_le::op1_range): Same.
7654 (foperator_le::op2_range): Same.
7655 (foperator_gt::fold_range): Same.
7656 (foperator_gt::op1_range): Same.
7657 (foperator_gt::op2_range): Same.
7658 (foperator_ge::fold_range): Same.
7659 (foperator_ge::op1_range): Same.
7660 (foperator_ge::op2_range): Same.
7661 (foperator_unordered::op1_range): Same.
7662 (foperator_ordered::fold_range): Same.
7663 (foperator_ordered::op1_range): Same.
7664 (build_le): Assert that we don't have a NAN.
7669 2022-09-21 liuhongt <hongtao.liu@intel.com>
7671 PR tree-optimization/106963
7672 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
7673 vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
7675 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
7677 * value-range.h (frange::maybe_isnan): Return false for
7680 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
7682 * value-range.cc (frange::set_nonnegative): Set +NAN.
7683 (range_tests_signed_zeros): New test.
7684 * value-range.h (frange::update_nan): New overload to set NAN sign.
7686 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
7689 * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
7690 (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
7691 markup to (new) extern declarations instead of to the main
7694 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
7696 PR tree-optimization/106794
7697 PR tree-optimization/106914
7698 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
7699 Only consider loads that already have a permutation.
7700 (vect_optimize_slp_pass::start_choosing_layouts): Assert that
7701 loads with permutations are leaf nodes. Prevent any kind of grouped
7702 access from changing layout if it doesn't have a load permutation.
7704 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
7706 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
7707 early-out optimisation to SSA_NAMEs.
7709 2022-09-20 Martin Liska <mliska@suse.cz>
7711 * ctfc.cc (ctf_add_string): Replace "the the" with "the".
7712 * doc/md.texi: Likewise.
7713 * gimple-range-infer.cc (non_null_loadstore): Likewise.
7715 2022-09-20 liuhongt <hongtao.liu@intel.com>
7718 * config/i386/mmx.md (nearbyintv2sf2): New expander.
7721 (lceilv2sfv2si2): Ditto.
7722 (floorv2sf2): Ditto.
7723 (lfloorv2sfv2si2): Ditto.
7724 (btruncv2sf2): Ditto.
7725 (lrintv2sfv2si2): Ditto.
7726 (roundv2sf2): Ditto.
7727 (lroundv2sfv2si2): Ditto.
7728 (*mmx_roundv2sf2): New define_insn.
7730 2022-09-20 konglin1 <lingling.kong@intel.com>
7732 PR middle-end/105735
7733 * tree-scalar-evolution.cc
7734 (analyze_and_compute_bitop_with_inv_effect): New function.
7735 (final_value_replacement_loop): Enhanced to handle bitop
7738 2022-09-20 Xi Ruoyao <xry111@xry111.site>
7740 * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
7741 -static-pie, pass -static -pie --no-dynamic-linker -z text to
7742 the linker, and do not pass --dynamic-linker.
7744 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
7746 * value-range.cc (frange::flush_denormals_to_zero): New.
7747 (frange::set): Call flush_denormals_to_zero.
7748 * value-range.h (class frange): Add flush_denormals_to_zero.
7750 2022-09-20 liuhongt <hongtao.liu@intel.com>
7752 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
7753 latest Intel processors.
7755 2022-09-20 konglin1 <lingling.kong@intel.com>
7758 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
7759 Fixed V16BF mode case.
7761 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
7763 * targhooks.cc (default_zero_call_used_regs): Improve sorry
7766 2022-09-18 Julian Brown <julian@codesourcery.com>
7768 * gimplify.cc (omp_segregate_mapping_groups): Update comment.
7769 (gimplify_adjust_omp_clauses): Move ATTACH and
7770 ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
7771 for offloaded OpenMP regions.
7773 2022-09-18 Jakub Jelinek <jakub@redhat.com>
7775 PR middle-end/106831
7776 * value-range.cc (frange::singleton_p): Avoid propagating long
7777 doubles that may have multiple representations.
7779 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
7781 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
7783 * value-query.cc (range_query::get_tree_range): Remove set_signbit
7785 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
7787 (vrange_printer::print_frange_nan): New.
7788 * value-range-pretty-print.h (print_frange_prop): Remove.
7789 (print_frange_nan): New.
7790 * value-range-storage.cc (frange_storage_slot::set_frange): Set
7791 kind and NAN fields.
7792 (frange_storage_slot::get_frange): Restore kind and NAN fields.
7793 * value-range-storage.h (class frange_storage_slot): Add kind and
7795 * value-range.cc (frange::update_nan): Remove.
7796 (frange::set_signbit): Remove.
7797 (frange::set): Adjust for NAN fields.
7798 (frange::normalize_kind): Remove m_props.
7799 (frange::combine_zeros): New.
7800 (frange::union_nans): New.
7801 (frange::union_): Handle new NAN fields.
7802 (frange::intersect_nans): New.
7803 (frange::intersect): Handle new NAN fields.
7804 (frange::operator=): Same.
7805 (frange::operator==): Same.
7806 (frange::contains_p): Same.
7807 (frange::singleton_p): Remove special case for signed zeros.
7808 (frange::verify_range): Adjust for new NAN fields.
7809 (frange::set_zero): Handle signed zeros.
7810 (frange::set_nonnegative): Same.
7811 (range_tests_nan): Adjust tests.
7812 (range_tests_signed_zeros): Same.
7813 (range_tests_signbit): Same.
7814 (range_tests_floats): Same.
7815 * value-range.h (class fp_prop): Remove.
7816 (FP_PROP_ACCESSOR): Remove.
7817 (class frange_props): Remove
7818 (frange::lower_bound): NANs don't have endpoints.
7819 (frange::upper_bound): Same.
7820 (frange_props::operator==): Remove.
7821 (frange_props::union_): Remove.
7822 (frange_props::intersect): Remove.
7823 (frange::update_nan): New.
7824 (frange::clear_nan): New.
7825 (frange::undefined_p): New.
7826 (frange::set_nan): New.
7827 (frange::known_finite): Adjust for new NAN representation.
7828 (frange::maybe_isnan): Same.
7829 (frange::known_isnan): Same.
7830 (frange::signbit_p): Same.
7831 * gimple-range-fold.cc (range_of_builtin_int_call): Rename
7832 known_signbit_p into signbit_p.
7834 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7836 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
7839 2022-09-17 Jakub Jelinek <jakub@redhat.com>
7841 PR tree-optimization/106958
7842 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
7843 id >= l, cast op to type1, otherwise to pointer_sized_int_node.
7844 If type has pointer type, cast exp to pointer_sized_int_node
7847 2022-09-16 liuhongt <hongtao.liu@intel.com>
7850 * config/i386/i386-builtins.cc
7851 (ix86_builtin_vectorized_function): Modernized with
7852 corresponding expanders.
7853 * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
7855 (floor<mode>2): Ditto.
7856 (lfloor<mode><sseintvecmodelower>2): Ditto.
7857 (ceil<mode>2): Ditto.
7858 (lceil<mode><sseintvecmodelower>2): Ditto.
7859 (btrunc<mode>2): Ditto.
7860 (lround<mode><sseintvecmodelower>2): Ditto.
7861 (exp2<mode>2): Ditto.
7863 2022-09-15 Joseph Myers <joseph@codesourcery.com>
7865 * ginclude/float.h (INFINITY): Define only if
7866 [__FLT_HAS_INFINITY__].
7868 2022-09-15 Richard Biener <rguenther@suse.de>
7870 PR tree-optimization/106922
7871 * tree-ssa-pre.cc (translate_vuse_through_block): Only
7872 keep the VUSE if its def dominates PHIBLOCK.
7873 (prune_clobbered_mems): Rewrite logic so we check whether
7874 a value dies in a block when the VUSE def doesn't dominate it.
7876 2022-09-15 Richard Biener <rguenther@suse.de>
7878 * tree.cc (build_common_tree_nodes): Initialize void_list_node
7881 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
7884 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
7886 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
7888 * range-op-float.cc (frange_add_zeros): New.
7889 (build_le): Call frange_add_zeros.
7891 (foperator_equal::op1_range): Same.
7892 (foperator_not_equal::op1_range): Same.
7894 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
7896 * range-op-float.cc (build_le): Accept frange instead of number.
7900 (foperator_lt::op1_range): Pass full range to build_*.
7901 (foperator_lt::op2_range): Same.
7902 (foperator_le::op1_range): Same.
7903 (foperator_le::op2_range): Same.
7904 (foperator_gt::op1_range): Same.
7905 (foperator_gt::op2_range): Same.
7906 (foperator_ge::op1_range): Same.
7907 (foperator_ge::op2_range): Same.
7909 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
7911 * value-range.cc (frange::set): Use set_nan.
7912 * value-range.h (frange::set_nan): Inline code originally in
7915 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
7917 * range-op-float.cc (frange_set_nan): Remove.
7918 (build_lt): Use set_nan, update_nan, clear_nan.
7920 (foperator_equal::op1_range): Same.
7921 (foperator_not_equal::op1_range): Same.
7922 (foperator_lt::op1_range): Same.
7923 (foperator_lt::op2_range): Same.
7924 (foperator_le::op1_range): Same.
7925 (foperator_le::op2_range): Same.
7926 (foperator_gt::op1_range): Same.
7927 (foperator_gt::op2_range): Same.
7928 (foperator_ge::op1_range): Same.
7929 (foperator_ge::op2_range): Same.
7930 (foperator_unordered::op1_range): Same.
7931 (foperator_ordered::op1_range): Same.
7932 * value-query.cc (range_query::get_tree_range): Same.
7933 * value-range.cc (frange::set_nan): Same.
7934 (frange::update_nan): Same.
7935 (frange::union_): Same.
7936 (frange::intersect): Same.
7937 (range_tests_nan): Same.
7938 (range_tests_signed_zeros): Same.
7939 (range_tests_signbit): Same.
7940 (range_tests_floats): Same.
7941 * value-range.h (class frange): Add update_nan and clear_nan.
7942 (frange::set_nan): New.
7944 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
7946 * value-query.cc (range_query::get_tree_range): Remove check for overflow.
7947 * value-range-pretty-print.cc (vrange_printer::visit): Move read
7948 of type until after undefined_p is checked.
7949 * value-range.cc (frange::set): Remove asserts for REAL_CST.
7950 (frange::contains_p): Tidy up.
7951 (range_tests_nan): Add comment.
7952 * value-range.h (frange::type): Check for undefined_p.
7953 (frange::set_undefined): Remove set of endpoints.
7955 2022-09-14 Julian Brown <julian@codesourcery.com>
7957 * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
7958 GOMP_MAP_STRUCT (for reindexing).
7959 (omp_gather_mapping_groups): Reimplement using...
7960 (omp_gather_mapping_groups_1): This new function. Stop processing at
7962 (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
7963 (omp_index_mapping_groups): Reimplement using...
7964 (omp_index_mapping_groups_1): This new function. Handle
7966 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
7968 (omp_tsort_mapping_groups_1): Adjust handling of base group being the
7969 same as current group. Use omp_mapped_by_containing_struct.
7970 (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
7971 and omp_reindex_mapping_groups. Robustify group deletion for reordered
7973 (gimplify_scan_omp_clauses): Update calls to
7974 omp_build_struct_sibling_lists.
7976 2022-09-14 Julian Brown <julian@codesourcery.com>
7978 * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
7979 (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
7980 (insert_struct_comp_map): Refactor function into...
7981 (build_omp_struct_comp_nodes): This new function. Remove list handling
7982 and improve self-documentation.
7983 (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move
7984 code to strip outer parts of address out of function, but strip no-op
7986 (omp_mapping_group): Add DELETED field for use during reindexing.
7987 (omp_strip_components_and_deref, omp_strip_indirections): New functions.
7988 (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
7989 (omp_gather_mapping_groups): Initialise DELETED field for new groups.
7990 (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
7991 (omp_siblist_insert_node_after, omp_siblist_move_node_after,
7992 omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
7994 (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
7995 node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
7996 (omp_build_struct_sibling_lists): New function.
7997 (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
7998 struct_seen_clause, struct_deref_set. Call
7999 omp_build_struct_sibling_lists as pre-pass instead of handling sibling
8000 lists in the function's main processing loop.
8001 (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
8002 handling, unused now.
8003 * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
8004 struct references, and references to pointers to structs also.
8006 2022-09-14 Richard Biener <rguenther@suse.de>
8008 PR tree-optimization/106938
8009 * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
8010 edges for all last stmts in a block. Do EH cleanup
8011 only on the last stmt in a block.
8013 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
8015 PR tree-optimization/106936
8016 * value-query.cc (range_query::get_value_range): Remove assert.
8018 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8020 * config/mips/mips.cc (mips_option_override): Drop unused variable.
8022 2022-09-14 Julian Brown <julian@codesourcery.com>
8024 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
8026 (omp_tsort_mark): Add enum.
8027 (omp_mapping_group): Add struct.
8028 (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
8029 omp_group_last, omp_gather_mapping_groups, omp_group_base,
8030 omp_index_mapping_groups, omp_containing_struct,
8031 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
8032 omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
8034 (gimplify_scan_omp_clauses): Call above functions instead of
8035 omp_target_reorder_clauses, unless we've seen an error.
8036 * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
8037 sorted mapping groups.
8039 2022-09-14 Jakub Jelinek <jakub@redhat.com>
8041 PR tree-optimization/106878
8042 * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
8043 reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
8044 the second argument is INTEGER_CST, BIT_AND_EXPR.
8045 * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
8046 (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
8047 POINTER_TYPE_P or OFFSET_TYPE.
8048 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
8049 pointers cast them to pointer sized integers first.
8051 2022-09-14 Richard Biener <rguenther@suse.de>
8053 PR tree-optimization/106934
8054 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
8056 (maybe_rewrite_mem_ref_base): Likewise.
8058 2022-09-14 liuhongt <hongtao.liu@intel.com>
8060 PR tree-optimization/106905
8061 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
8062 false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
8063 LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
8065 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
8068 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
8071 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
8074 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8076 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
8077 New macro definition.
8078 (xtensa_constant_ok_for_cprop_p):
8079 Implement the hook as mentioned above.
8081 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
8084 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
8085 the equality check for argument number, and move this hunk ahead.
8087 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
8090 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
8091 the handling for unresolved overloaded builtin function.
8092 (rs6000_expand_builtin): Likewise.
8094 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
8096 * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
8097 m_nstores, m_reduc_factor, m_gather_load and member function
8098 determine_suggested_unroll_factor.
8099 (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
8100 m_reduc_factor and m_gather_load.
8101 (rs6000_cost_data::determine_suggested_unroll_factor): New function.
8102 (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
8103 * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
8104 (rs6000-vect-unroll-issue): Likewise.
8105 (rs6000-vect-unroll-reduc-threshold): Likewise.
8106 * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
8108 2022-09-13 Richard Biener <rguenther@suse.de>
8110 PR middle-end/106909
8111 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
8112 flag of a unreachable call.
8114 2022-09-13 Richard Biener <rguenther@suse.de>
8116 PR tree-optimization/106913
8117 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
8118 ft_reachable on EXIT_BLOCK.
8120 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
8122 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
8123 TARGET_FLOAT instead of TARGET_SIMD.
8124 (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
8126 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
8128 (aarch64_classify_address): Treat little-endian structure moves
8129 like big-endian for TARGET_FLOAT && !TARGET_SIMD.
8130 (aarch64_secondary_memory_needed): New function.
8131 (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
8132 in the same way as TF, TI and TD.
8133 (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
8134 (aarch64_rtx_costs): Likewise.
8135 (aarch64_register_move_cost): Treat a pair of 64-bit vectors
8136 separately from a single 128-bit vector. Handle the cost implied
8137 by aarch64_secondary_memory_needed.
8138 (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
8140 (aarch64_expand_vec_perm_const_1): Likewise.
8141 (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
8142 * config/aarch64/iterators.md (VTX): New iterator.
8143 * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
8144 (arch_enabled): Adjust accordingly.
8145 (@aarch64_reload_mov<TX:mode>): Extend to...
8146 (@aarch64_reload_mov<VTX:mode>): ...this.
8147 * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
8148 rather than TARGET_SIMD.
8149 (movmisalign<mode>): Likewise.
8150 (load_pair<DREG:mode><DREG2:mode>): Likewise.
8151 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
8152 (load_pair<VQ:mode><VQ2:mode>): Likewise.
8153 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
8154 (@aarch64_split_simd_mov<mode>): Likewise.
8155 (aarch64_get_low<mode>): Likewise.
8156 (aarch64_get_high<mode>): Likewise.
8157 (aarch64_get_half<mode>): Likewise. Canonicalize to a move for
8159 (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
8160 TARGET_SIMD. Use different w<-w and r<-w instructions for
8161 !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but
8162 add an alternative specifically for w<-Z.
8163 (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
8164 TARGET_SIMD. Likewise for the associated define_splits. Disable
8165 FPR moves and immediate moves for !TARGET_SIMD but add an alternative
8166 specifically for w<-Z.
8167 (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
8168 TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD
8169 but add a new r<-w one for !TARGET_SIMD.
8170 (*aarch64_get_high<mode>): New pattern.
8171 (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
8172 (store_pair_lanes<mode>): Likewise.
8173 (*aarch64_combine_internal<mode>): Likewise. Restrict existing
8174 w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
8175 alternative for !TARGET_SIMD.
8176 (*aarch64_combine_internal_be<mode>): Likewise.
8177 (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
8178 Remove bogus arch attribute.
8179 (*aarch64_combinez_be<mode>): Likewise.
8180 (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
8182 (aarch64_combine<mode>): Likewise.
8183 (aarch64_rev_reglist<mode>): Likewise.
8184 (mov<mode>): Likewise.
8185 (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
8186 !TARGET_SIMD, regardless of endianness. Extend associated
8187 define_splits in the same way, both for this pattern and the
8189 (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w
8190 alternative to TARGET_SIMD.
8191 (*aarch64_be_movoi): Likewise.
8192 (*aarch64_be_movci): Likewise.
8193 (*aarch64_be_movxi): Likewise.
8194 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
8195 && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative
8196 to TARGET_SIMD for tuples of 128-bit vectors.
8197 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
8198 * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
8199 from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in
8200 the VQ and VP_2E LDP and STP peepholes.
8202 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
8204 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
8205 condition. Likewise for the related define_split. Tweak formatting.
8207 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8209 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
8210 New macro definition.
8211 (xtensa_constant_ok_for_cprop_p):
8212 Implement the hook as mentioned above.
8214 2022-09-12 Joseph Myers <joseph@codesourcery.com>
8216 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
8217 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
8219 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
8221 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
8222 a warning + not enabling offloading if -misa=sm_30 prevents
8224 (main): Use tool_name as progname for diagnostic.
8225 * config/gcn/mkoffload.cc (main): Likewise.
8227 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
8229 * value-range.cc (frange::set_signbit): Avoid changing sign when
8230 already in the correct sign.
8232 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
8234 * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
8235 Recognize all 4 return registers.
8236 * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
8237 * config/xtensa/xtensa.md (untyped_call): New pattern.
8239 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
8241 * doc/extend.texi (Floating Types): Fix "_float128" typo.
8243 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8245 * config/xtensa/xtensa.cc (xtensa_constantsynth):
8246 Add new pattern for the abovementioned case.
8248 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
8249 Segher Boessenkool <segher@kernel.crashing.org>
8251 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
8253 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8255 * config/xtensa/xtensa.md: Rewrite the split pattern that performs
8256 the abovementioned process so that insns that overwrite clobbered
8257 register no longer need to be contiguous.
8258 (DSC): Remove as no longer needed.
8260 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8262 * config/xtensa/xtensa.cc (machine_function): New boolean member as
8263 a flag that controls whether to emit the insns for stack pointer
8264 adjustment inside of the pro/epilogue.
8265 (xtensa_emit_adjust_stack_ptr): New function to share the common
8266 codes and to emit insns if not inhibited.
8267 (xtensa_expand_epilogue): Change to use the function mentioned
8268 above when using the CALL0 ABI.
8269 (xtensa_expand_prologue): Ditto.
8270 And also change to set the inhibit flag used by
8271 xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
8272 used for its own adjustment.
8274 2022-09-09 David Malcolm <dmalcolm@redhat.com>
8276 * doc/invoke.texi (Static Analyzer Options): Add
8277 -Wanalyzer-exposure-through-uninit-copy.
8279 2022-09-09 David Malcolm <dmalcolm@redhat.com>
8281 * Makefile.in (ANALYZER_OBJS): Add
8282 analyzer/known-function-manager.o.
8284 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
8286 * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
8287 (record_id): Store func name without quotes, store dim separately.
8288 (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
8289 at least sm_35, create '$offload_func_table' global array and init
8290 with reverse-offload function addresses.
8291 * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
8292 force_public attribute to force .visible.
8293 (nvptx_declare_function_name): For "omp target
8294 device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
8296 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
8298 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
8299 similar to pre-existing .offload_var_table.
8301 2022-09-09 Joseph Myers <joseph@codesourcery.com>
8303 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
8306 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
8308 PR middle-end/106833
8309 * tree.cc (verify_opaque_type): New function.
8310 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
8312 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
8314 * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
8315 FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
8316 * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
8317 * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
8318 MATH_UNOP_TRIG): New iterators.
8319 (math_unop): New attributes.
8320 (<math_unop><mode>2, <math_unop><mode>2<exec>,
8321 <math_unop><mode>2, <math_unop><mode>2<exec>,
8322 *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
8323 ldexp<mode>3, ldexp<mode>3<exec>,
8324 frexp<mode>_exp2, frexp<mode>_mant2,
8325 frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
8326 (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
8327 * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
8329 (gcn_dconst1over2pi): New.
8330 (gcn_builtin_type_index): Add entry for v64df type.
8331 (v64df_type_node): New.
8332 (gcn_init_builtin_types): Initialize v64df_type_node.
8333 (gcn_expand_builtin_1): Expand new builtins to instructions.
8334 (print_operand): Fix assembler output for 1/(2*PI) constant.
8335 * config/gcn/gcn.md (unspec): Add new entries.
8337 2022-09-09 Richard Biener <rguenther@suse.de>
8339 PR tree-optimization/106722
8340 * tree-predcom.cc (ref_at_iteration): Do not associate the
8341 constant part of the offset into the MEM_REF offset
8342 operand, across a non-zero offset.
8344 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
8346 * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
8347 Move forward for cover all all necessary functions for suppress
8348 unused function warnings.
8349 (riscv_multi_lib_check): Move forward, and tweak message to suppress
8350 -Werror=format-diag warning.
8352 2022-09-09 Richard Biener <rguenther@suse.de>
8354 PR tree-optimization/106881
8355 * gimple-predicate-analysis.cc (simple_control_dep_chain):
8356 Add only non-fallthru edges and avoid the same set of edges
8357 as compute_control_dep_chain_pdom does.
8359 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8361 * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
8362 of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
8363 * doc/tm.texi: Regenerate.
8365 2022-09-09 Martin Liska <mliska@suse.cz>
8367 * optc-save-gen.awk: Always compare array option values with memcmp.
8369 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
8372 * doc/extend.texi (Type Traits): Fix requirements. Document
8373 __is_aggregate and __is_final.
8375 2022-09-08 Tim Lange <mail@tim-lange.me>
8379 State that the checker also reasons about symbolic values.
8381 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
8383 PR tree-optimization/106886
8384 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
8385 Fix copying of scalar stmts.
8387 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
8389 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
8391 2022-09-08 Richard Biener <rguenther@suse.de>
8393 PR middle-end/106870
8394 * gimple-harden-conditionals.cc (insert_check_and_trap):
8395 Set the control-altering flag on the built IFN_TRAP.
8396 * gimple.cc (gimple_build_builtin_unreachable): Likewise.
8397 * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
8398 flag on the .ABNORMAL_DISPATCHER call.
8399 * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
8400 resetting the control altering flag for ECF_NORETURN calls.
8401 (cleanup_control_flow_bb): Set the control altering flag on
8402 discovered noreturn calls.
8403 * symtab-thunks.cc (expand_thunk): Set the control altering
8404 flag for the noreturn tailcall case.
8405 * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
8408 2022-09-08 Jakub Jelinek <jakub@redhat.com>
8410 * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
8411 Add doacross(sink:omp_cur_iteration-1) support.
8412 (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
8413 Adjust expand_omp_ordered_sink caller.
8414 (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
8415 non-NULL, set that variable to true at the start of outermost
8416 non-collapsed loop and set it to false at the end of innermost
8418 (expand_omp_for_generic): If fd->ordered, allocate
8419 1 + (fd->ordered - fd->collapse) further elements in counts array.
8420 Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
8421 fd->ordered - 1 loop if any.
8423 2022-09-08 Richard Biener <rguenther@suse.de>
8425 PR tree-optimization/106881
8426 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
8427 Add only non-fallthru edges and avoid the same set of edges
8430 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
8432 * gimple-range-fold.cc
8433 (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
8434 * range-op-float.cc (finite_operand_p): Same.
8435 (finite_operands_p): Same.
8436 (foperator_lt::fold_range): Same.
8437 (foperator_le::fold_range): Same.
8438 (foperator_gt::fold_range): Same.
8439 (foperator_ge::fold_range): Same.
8440 (foperator_unordered::fold_range): Same.
8441 (foperator_unordered::op1_range): Same.
8442 (foperator_ordered::fold_range): Same.
8443 * value-range.cc (frange::set_nan): Same.
8444 (frange::set_signbit): Same.
8445 (frange::union_): Same.
8446 (frange::intersect): Same.
8447 (frange::operator==): Same.
8448 (frange::singleton_p): Same.
8449 (frange::verify_range): Same.
8450 (range_tests_nan): Same.
8451 (range_tests_floats): Same.
8452 * value-range.h(frange::known_finite): New.
8453 (frange::maybe_inf): New.
8454 (frange::known_inf): New.
8455 (frange::maybe_nan): New.
8456 (frange::known_nan): New.
8457 (frange::known_signbit): New.
8459 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
8461 * config/darwin-d.cc: Include tm.h.
8462 * config/dragonfly-d.cc: Likewise.
8463 * config/freebsd-d.cc: Remove memmodel.h.
8464 * config/glibc-d.cc: Likewise.
8465 * config/netbsd-d.cc: Include tm.h.
8466 * config/openbsd-d.cc: Likewise.
8467 * config/sol2-d.cc: Likewise.
8469 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
8471 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
8472 MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
8473 (mve_vqshluq_m_n_s<mode>): Likewise.
8474 (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
8475 instead of mve_imm_8/Rb.
8476 (mve_vqrshrunbq_n_s<mode>): Likewise.
8477 (mve_vqrshrntq_n_<supf><mode>): Likewise.
8478 (mve_vqrshruntq_n_s<mode>): Likewise.
8479 (mve_vrshrnbq_n_<supf><mode>): Likewise.
8480 (mve_vrshrntq_n_<supf><mode>): Likewise.
8481 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
8482 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
8483 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
8484 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
8485 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
8486 (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
8487 of mve_imm_selective_upto_8/Rg.
8488 (mve_vsriq_m_n_<supf><mode>): Likewise.
8490 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
8492 * config/rs6000/rs6000.md (splitter for set to and_mask constants):
8493 Use int_reg_operand (instead of int_reg_operand_not_pseudo).
8494 (splitter for multi-insn constant loads): Ditto.
8496 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
8498 * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
8499 -mvrsave is present.
8500 * config/rs6000/t-rtems: Add -mvrsave multilib variants for
8503 2022-09-07 Martin Liska <mliska@suse.cz>
8505 * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS.
8506 * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
8507 * configure: Regenerate.
8508 * config.in: Regenerate.
8510 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
8512 PR rtl-optimization/105586
8513 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
8514 (schedule_region): Use it for all blocks.
8516 2022-09-07 Joseph Myers <joseph@codesourcery.com>
8518 * ginclude/stdalign.h [defined __STDC_VERSION__ &&
8519 __STDC_VERSION__ > 201710L]: Disable all content.
8520 * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
8521 > 201710L] (bool, true, false): Do not define.
8523 2022-09-07 Martin Liska <mliska@suse.cz>
8526 * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
8527 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
8528 Restore usage of XCOFF_DEBUGGING_INFO.
8529 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
8530 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
8531 XCOFF_DEBUGGING_INFO.
8532 (dw2_asm_output_nstring): Likewise.
8533 (USE_LINKONCE_INDIRECT): Likewise.
8534 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
8535 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
8536 (output_fde): Likewise.
8537 (output_call_frame_info): Likewise.
8538 (have_macinfo): Likewise.
8539 (add_AT_loc_list): Likewise.
8540 (add_AT_view_list): Likewise.
8541 (output_compilation_unit_header): Likewise.
8542 (output_pubnames): Likewise.
8543 (output_aranges): Likewise.
8544 (output_line_info): Likewise.
8545 (output_macinfo): Likewise.
8546 (dwarf2out_finish): Likewise.
8547 (dwarf2out_early_finish): Likewise.
8549 2022-09-07 Richard Biener <rguenther@suse.de>
8551 PR tree-optimization/106866
8552 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
8553 we changed cfun->calls_setjmp make sure to purge all
8554 abnormal call edges.
8556 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8558 * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
8559 float LE comparing with zero for fpuv3.
8560 * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
8561 features are enabled.
8563 2022-09-07 Richard Biener <rguenther@suse.de>
8565 PR tree-optimization/106860
8566 * tree-ssa-loop-split.cc (split_loop): Find the exit to
8567 latch edge from the loop exit edge instead of from the
8568 latch. Verify we're going to find it.
8570 2022-09-07 Richard Biener <rguenther@suse.de>
8572 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
8573 Adjust to take the region exit source as argument.
8574 (uninit_analysis::init_from_phi_def): Adjust.
8575 (uninit_analysis::init_use_preds): Mark the dominating region
8576 before computing control dependences.
8578 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
8580 * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
8581 w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
8582 in that case. Extend w<-r to w<-Z.
8583 (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
8584 (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
8586 (define_split): Do not apply the floating-point immediate-to-register
8587 split to zeros, even if MOVI is not available.
8589 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
8591 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
8592 Disallow use of FPRs in register asms for !TARGET_FLOAT.
8594 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
8597 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
8598 (TARGET_ASAN_SHADOW_OFFSET): New.
8600 2022-09-07 Jakub Jelinek <jakub@redhat.com>
8602 * doc/invoke.texi (-Wno-unicode): Document.
8604 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
8606 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
8608 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
8610 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
8613 2022-09-07 liuhongt <hongtao.liu@intel.com>
8615 PR tree-optimization/103144
8616 * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
8617 (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
8618 (vect_create_nonlinear_iv_init): New function.
8619 (vect_peel_nonlinear_iv_init): Ditto.
8620 (vect_create_nonlinear_iv_step): Ditto
8621 (vect_create_nonlinear_iv_vec_step): Ditto
8622 (vect_update_nonlinear_iv): Ditto
8623 (vectorizable_nonlinear_induction): Ditto.
8624 (vectorizable_induction): Call
8625 vectorizable_nonlinear_induction when induction_type is not
8627 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
8628 Update nonlinear iv for epilogue loop.
8629 * tree-vectorizer.h (enum vect_induction_op_type): New enum.
8630 (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
8632 2022-09-06 Richard Biener <rguenther@suse.de>
8634 PR tree-optimization/106754
8635 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
8636 New function, split out from compute_control_dep_chain. Handle
8637 loop-exit like conditions here by pushing to the control vector.
8638 (compute_control_dep_chain): Adjust and streamline dumping.
8639 In the wrapper perform a post-dominator walk as well.
8640 (uninit_analysis::init_use_preds): Remove premature early exit.
8642 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
8644 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
8646 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
8648 * range-op-float.cc (build_le): Handle NANs and going past infinity.
8652 (foperator_lt::op1_range): Avoid adjustments to range if build_*
8654 (foperator_lt::op2_range): Same.
8655 (foperator_le::op1_range): Same.
8656 (foperator_le::op2_range): Same.
8657 (foperator_gt::op1_range): Same.
8658 (foperator_gt::op2_range): Same.
8660 2022-09-06 Richard Biener <rguenther@suse.de>
8662 * gimple-predicate-analysis.cc (compute_control_dep_chain):
8663 Add output flag to indicate whether we possibly have dropped
8664 any chains. Return whether the info is complete from the
8666 (uninit_analysis::init_use_preds): Adjust accordingly, with
8667 a workaround for PR106754.
8668 (uninit_analysis::init_from_phi_def): Properly guard the
8669 case where we complete an empty chain.
8671 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8673 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
8675 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8677 * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
8678 type with same element type as arg0, and length as op2.
8680 2022-09-06 Richard Biener <rguenther@suse.de>
8682 PR tree-optimization/106844
8683 * gimple-predicate-analysis.cc (compute_control_dep_chain):
8684 Return whether we found a chain.
8686 2022-09-06 Richard Biener <rguenther@suse.de>
8688 PR tree-optimization/106841
8689 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
8690 scatter/gather offset.
8692 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8694 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
8696 2022-09-06 Jakub Jelinek <jakub@redhat.com>
8698 * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
8699 (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of
8700 GIMPLE_OMP_TEAMS as upper bound.
8701 (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
8703 * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
8704 NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
8705 (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
8706 with NULL OMP_ORDERED_BODY.
8707 * omp-low.cc (check_omp_nesting_restrictions): Use
8708 gimple_omp_ordered_standalone_p test instead of
8709 omp_find_clause (..., OMP_CLAUSE_DOACROSS).
8710 (lower_omp_ordered): Likewise.
8711 * omp-expand.cc (expand_omp, build_omp_regions_1,
8712 omp_make_gimple_edges): Likewise.
8714 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8716 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
8717 (cskyv2_addcc_invert): Likewise.
8719 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
8721 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
8723 (bpf_expand_epilogue): Likewise.
8725 2022-09-06 liuhongt <hongtao.liu@intel.com>
8727 * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
8728 Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
8729 * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
8730 (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
8731 (avx512f_vcvtps2ph512_mask_sae): New expander
8733 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
8735 * gimple-range-fold.cc
8736 (fold_using_range::range_of_builtin_int_call): Ignore sign bit
8737 when there's the possibility of a NAN.
8739 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
8741 * gimple-range-fold.cc
8742 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
8743 in __builtin_signbit to nonzero.
8745 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
8748 * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
8749 bits of operand 0 are consumed, and the result is zero-extended
8752 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
8754 PR middle-end/106831
8755 * value-range.h (frange::supports_p): Disable decimal floats.
8756 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
8758 (frange_drop_ninf): Same.
8760 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
8762 PR middle-end/106824
8763 * value-range.cc (frange::set_nan): Set undefined when updating a
8766 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
8768 * config/riscv/riscv.cc (riscv_option_override): Fix wrong
8769 condition for MASK_DIV and simplify incompatible checking.
8770 * config/riscv/riscv.md (muldi3): Adding parentheses.
8772 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8774 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
8775 string is a valid -mcpu string and emit hint.
8777 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
8779 * common/config/riscv/riscv-common.cc: Add Zmmul.
8780 * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
8781 (TARGET_ZMMUL): Ditto.
8782 * config/riscv/riscv.cc (riscv_option_override):Ditto.
8783 * config/riscv/riscv.md: Add Zmmul
8784 * config/riscv/riscv.opt: Ditto.
8786 2022-09-05 Richard Biener <rguenther@suse.de>
8788 * tree-cfg.h (get_cases_for_edge): Declare.
8789 * tree-cfg.cc (get_cases_for_edge): Export.
8790 * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
8791 Start and end recording case labels.
8792 * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
8793 (predicate::init_from_control_deps): Use get_cases_for_edge.
8795 2022-09-05 Richard Biener <rguenther@suse.de>
8797 * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
8798 (compute_control_dep_chain): Move uninit-control-dep-attempts
8799 checking where it also counts the post-dominator check
8802 2022-09-05 Richard Biener <rguenther@suse.de>
8804 * gimple-predicate-analysis.h (predicate::debug): New.
8805 (predicate::dump): Add FILE * argument, add base overload.
8806 * gimple-predicate-analysis.cc (debug): New.
8807 (dump_pred_info): Add FILE * argument.
8808 (dump_pred_chain): Likewise.
8809 (predicate::dump): Split out preamble into overload. Add
8811 (predicate::debug): New.
8812 (predicate::simplify): Adjust.
8813 (predicate::normalize): Likewise.
8814 (predicate::init_from_control_deps): Likewise.
8816 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
8818 * config/aarch64/aarch64-protos.h
8819 (aarch64_init_simd_builtins): Remove prototype.
8820 * config/aarch64/aarch64-builtins.cc
8821 (aarch64_simd_builtins_initialized_p): Delete.
8822 (aarch64_init_simd_builtins): Make static. Remove protection
8823 against multiple calls.
8824 * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
8825 lazy SIMD builtin initialization.
8826 * config/aarch64/aarch64.cc
8827 (aarch64_option_valid_attribute_p): Likewise.
8829 2022-09-05 Xi Ruoyao <xry111@xry111.site>
8831 * config/loongarch/genopts/loongarch.opt.in: Add
8832 -mdirect-extern-access option.
8833 * config/loongarch/loongarch.opt: Regenerate.
8834 * config/loongarch/loongarch.cc
8835 (loongarch_symbol_binds_local_p): Return true if
8836 TARGET_DIRECT_EXTERN_ACCESS.
8837 (loongarch_option_override_internal): Complain if
8838 -mdirect-extern-access is used with -fPIC or -fpic.
8839 * doc/invoke.texi: Document -mdirect-extern-access for
8842 2022-09-05 Martin Liska <mliska@suse.cz>
8844 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
8846 * doc/tm.texi: Regenerate.
8848 2022-09-05 Martin Liska <mliska@suse.cz>
8850 * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
8851 Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
8852 (aarch64_debugger_regno): Likewise.
8853 * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
8854 (aarch64_debugger_regno): Likewise.
8855 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
8856 (DEBUGGER_REGNO): Likewise.
8857 (DWARF_FRAME_REGNUM): Likewise.
8858 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
8859 * config/arc/arc.cc (arc_init_reg_tables): Likewise.
8860 * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
8861 (DEBUGGER_REGNO): Likewise.
8862 * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
8863 (arm_debugger_regno): Likewise.
8864 * config/arm/arm.cc (arm_dbx_regno): Likewise.
8865 (arm_debugger_regno): Likewise.
8866 * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
8867 (DEBUGGER_REGNO): Likewise.
8868 * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
8869 (DEBUGGER_REGNO): Likewise.
8870 * config/c6x/c6x.cc: Likewise.
8871 * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
8872 (DEBUGGER_REGNO): Likewise.
8873 * config/cris/cris.h (enum reg_class): Likewise.
8874 (DBX_REGISTER_NUMBER): Likewise.
8875 (DEBUGGER_REGNO): Likewise.
8876 * config/csky/csky.cc (enum reg_class): Likewise.
8877 * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
8878 (DBX_REGISTER_NUMBER): Likewise.
8879 (DEBUGGER_REGNO): Likewise.
8880 * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
8881 (DEBUGGER_REGNO): Likewise.
8882 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
8883 (DEBUGGER_REGNO): Likewise.
8884 * config/gcn/gcn.cc (print_operand): Likewise.
8885 * config/i386/bsd.h (ASM_QUAD): Likewise.
8886 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
8887 (DEBUGGER_REGNO): Likewise.
8888 (DWARF_FRAME_REGNUM): Likewise.
8889 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
8890 (DEBUGGER_REGNO): Likewise.
8891 * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
8892 (DEBUGGER_REGNO): Likewise.
8893 * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
8894 (DEBUGGER_REGNO): Likewise.
8895 * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
8896 (DEBUGGER_REGNO): Likewise.
8897 * config/i386/gas.h: Likewise.
8898 * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
8899 (DEBUGGER_REGNO): Likewise.
8900 * config/i386/i386.cc (enum reg_class): Likewise.
8901 * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
8902 (DEBUGGER_REGNO): Likewise.
8903 * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
8904 (DEBUGGER_REGNO): Likewise.
8905 * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
8906 (DEBUGGER_REGNO): Likewise.
8907 * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
8908 (DEBUGGER_REGNO): Likewise.
8909 * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
8910 (DEBUGGER_REGNO): Likewise.
8911 * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
8912 (DEBUGGER_REGNO): Likewise.
8913 * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
8914 (DEBUGGER_REGNO): Likewise.
8915 * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
8916 (DEBUGGER_REGNO): Likewise.
8917 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
8918 (DEBUGGER_REGNO): Likewise.
8919 * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
8920 (DEBUGGER_REGNO): Likewise.
8921 * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
8922 (ia64_debugger_regno): Likewise.
8923 * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
8924 (ia64_dbx_regno): Likewise.
8925 (ia64_debugger_regno): Likewise.
8926 (process_cfa_adjust_cfa): Likewise.
8927 (process_cfa_register): Likewise.
8928 (ia64_asm_unwind_emit): Likewise.
8929 * config/ia64/ia64.h: Likewise.
8930 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
8931 (DEBUGGER_REGNO): Likewise.
8932 * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
8933 (DEBUGGER_REGNO): Likewise.
8934 * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
8935 * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
8936 (DEBUGGER_REGNO): Likewise.
8937 * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
8938 (DEBUGGER_REGNO): Likewise.
8939 * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
8940 (DEBUGGER_REGNO): Likewise.
8941 (__transfer_from_trampoline): Likewise.
8942 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
8943 (DEBUGGER_REGNO): Likewise.
8944 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
8945 (DBX_REGISTER_NUMBER): Likewise.
8946 (DEBUGGER_REGNO): Likewise.
8947 * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
8948 * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
8949 (DEBUGGER_REGNO): Likewise.
8950 (GP_DBX_FIRST): Likewise.
8951 (GP_DEBUGGER_FIRST): Likewise.
8952 * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
8953 (DEBUGGER_REGNO): Likewise.
8954 * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
8955 (mmix_debugger_regno): Likewise.
8956 * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
8957 (mmix_debugger_regno): Likewise.
8958 * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
8959 (DEBUGGER_REGNO): Likewise.
8960 * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
8961 (nds32_debugger_regno): Likewise.
8962 * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
8963 (nds32_debugger_regno): Likewise.
8964 (nds32_use_blocks_for_constant_p): Likewise.
8965 * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
8966 (DEBUGGER_REGNO): Likewise.
8967 * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
8968 (DEBUGGER_REGNO): Likewise.
8969 * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
8970 (DEBUGGER_REGNO): Likewise.
8971 * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
8972 (DEBUGGER_REGNO): Likewise.
8973 * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
8974 (DEBUGGER_REGNO): Likewise.
8975 * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
8976 (rs6000_debugger_regno): Likewise.
8977 * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
8978 (rs6000_debugger_regno): Likewise.
8979 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
8980 (DEBUGGER_REGNO): Likewise.
8981 (DWARF2_FRAME_REG_OUT): Likewise.
8982 * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
8983 (DEBUGGER_REGNO): Likewise.
8984 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
8985 (DEBUGGER_REGNO): Likewise.
8986 * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
8987 (DEBUGGER_REGNO): Likewise.
8988 * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
8989 (DEBUGGER_REGNO): Likewise.
8990 (SH_DBX_REGISTER_NUMBER): Likewise.
8991 (SH_DEBUGGER_REGNO): Likewise.
8992 * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
8993 (DEBUGGER_REGNO): Likewise.
8994 * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
8995 (DEBUGGER_REGNO): Likewise.
8996 * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
8997 (DEBUGGER_REGNO): Likewise.
8998 * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
8999 (DEBUGGER_REGNO): Likewise.
9000 * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
9001 (xtensa_debugger_regno): Likewise.
9002 * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
9003 (xtensa_debugger_regno): Likewise.
9004 * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
9005 (DEBUGGER_REGNO): Likewise.
9006 * defaults.h (DBX_REGISTER_NUMBER): Likewise.
9007 (DEBUGGER_REGNO): Likewise.
9008 (DWARF_FRAME_REGNUM): Likewise.
9009 * doc/tm.texi: Likewise.
9010 * doc/tm.texi.in: Likewise.
9011 * dwarf2out.cc (dbx_reg_number): Likewise.
9012 (debugger_reg_number): Likewise.
9013 (reg_loc_descriptor): Likewise.
9014 (multiple_reg_loc_descriptor): Likewise.
9015 (mem_loc_descriptor): Likewise.
9016 * except.cc: Likewise.
9018 2022-09-05 konglin1 <lingling.kong@intel.com>
9021 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
9023 (expand_vec_perm_broadcast_1): Ditto.
9024 * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
9025 (vec_set<mode>_0): Add @ to it.
9026 (@vec_set<mode>_0): Ditto.
9027 (vec_interleave_high<mode><mask_name>): Ditto.
9028 (@vec_interleave_high<mode><mask_name>): Ditto.
9029 (vec_interleave_low<mode><mask_name>): Ditto.
9030 (@vec_interleave_low<mode><mask_name>): Ditto.
9031 * config/i386/subst.md (SUBST_V): Add BF vector mode.
9033 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
9035 * value-range.cc (early_nan_resolve): Remove.
9036 (frange::intersect): Handle NANs.
9038 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
9040 * value-range.cc (frange::union_): Do not drop properties when
9041 unioning a NAN with something else.
9042 (range_tests_signed_zeros): Add tests.
9044 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
9046 * real.cc (encode_ieee_single): Use real_isdenormal.
9047 (encode_ieee_double): Same.
9048 (encode_ieee_extended): Same.
9049 (encode_ieee_quad): Same.
9050 (encode_ieee_half): Same.
9051 (encode_arm_bfloat_half): Same.
9052 * real.h (real_isdenormal): New.
9054 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
9056 * value-range.cc (frange::singleton_p): Move NAN check to the top.
9058 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9060 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
9062 2022-09-03 Jakub Jelinek <jakub@redhat.com>
9064 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
9065 (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
9066 and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
9067 (enum omp_clause_doacross_kind): New type.
9068 (struct tree_omp_clause): Add subcode.doacross_kind member.
9069 * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
9070 (OMP_CLAUSE_DOACROSS_KIND): Define.
9071 (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
9072 (OMP_CLAUSE_DOACROSS_DEPEND): Define.
9073 (OMP_CLAUSE_ORDERED_DOACROSS): Define.
9074 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
9075 OMP_CLAUSE_DOACROSS entries.
9076 * tree-nested.cc (convert_nonlocal_omp_clauses,
9077 convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
9078 * tree-pretty-print.cc (dump_omp_clause): Don't handle
9079 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle
9080 OMP_CLAUSE_DOACROSS.
9081 * gimplify.cc (gimplify_omp_depend): Don't handle
9082 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
9083 (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS.
9084 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
9085 (find_standalone_omp_ordered): New function.
9086 (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
9087 body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
9088 set OMP_CLAUSE_ORDERED_DOACROSS.
9089 (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
9090 OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
9091 diagnostics that presence or absence of ordered clause parameter
9092 is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use
9093 actual user name of the clause - doacross or depend - in diagnostics.
9094 * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
9095 if !OMP_CLAUSE_ORDERED_DOACROSS (t). If
9096 OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
9097 set fd->ordered to -1 and set it after the loop in that case to
9099 * omp-low.cc (check_omp_nesting_restrictions): Don't handle
9100 OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
9101 OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross
9102 or depend - in diagnostics. Diagnose mixing of stand-alone and
9103 block associated ordered constructs binding to the same loop.
9104 (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
9105 instead handle OMP_CLAUSE_DOACROSS.
9106 (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
9108 (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
9109 OMP_CLAUSE_DEPEND_SINK.
9110 * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
9111 doacross(sink:omp_cur_iteration-1).
9112 (expand_omp_ordered_source_sink): Use
9113 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
9114 OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause
9115 - doacross or depend - in diagnostics.
9116 (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
9118 (build_omp_regions_1): Likewise.
9119 (omp_make_gimple_edges): Likewise.
9120 * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
9121 * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
9122 * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
9124 2022-09-02 David Malcolm <dmalcolm@redhat.com>
9127 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
9129 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
9132 * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
9133 * config/aarch64/aarch64-d.cc: Include tm_d.h.
9134 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
9135 config/aarch64/aarch64-d.h.
9136 (aarch64_d_register_target_info): Likewise.
9137 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
9138 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9139 * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
9141 * config/arm/arm-protos.h (arm_d_target_versions): Move to
9143 (arm_d_register_target_info): Likewise.
9144 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
9145 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9146 * config/default-d.cc: Remove memmodel.h include.
9147 * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
9148 * config/glibc-d.cc: Likewise.
9149 * config/i386/i386-d.cc: Include tm_d.h.
9150 * config/i386/i386-protos.h (ix86_d_target_versions): Move to
9151 config/i386/i386-d.h.
9152 (ix86_d_register_target_info): Likewise.
9153 (ix86_d_has_stdcall_convention): Likewise.
9154 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
9155 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9156 (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
9157 * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
9158 * config/mips/mips-d.cc: Include tm_d.h.
9159 * config/mips/mips-protos.h (mips_d_target_versions): Move to
9160 config/mips/mips-d.h.
9161 (mips_d_register_target_info): Likewise.
9162 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
9163 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9164 * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
9165 * config/openbsd-d.cc: Likewise.
9166 * config/pa/pa-d.cc: Include tm_d.h.
9167 * config/pa/pa-protos.h (pa_d_target_versions): Move to
9169 (pa_d_register_target_info): Likewise.
9170 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
9171 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9172 * config/riscv/riscv-d.cc: Include tm_d.h.
9173 * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
9174 config/riscv/riscv-d.h.
9175 (riscv_d_register_target_info): Likewise.
9176 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
9177 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9178 * config/rs6000/rs6000-d.cc: Include tm_d.h.
9179 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
9180 config/rs6000/rs6000-d.h.
9181 (rs6000_d_register_target_info): Likewise.
9182 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
9183 (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
9184 * config/s390/s390-d.cc: Include tm_d.h.
9185 * config/s390/s390-protos.h (s390_d_target_versions): Move to
9186 config/s390/s390-d.h.
9187 (s390_d_register_target_info): Likewise.
9188 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
9189 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9190 * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
9191 * config/sparc/sparc-d.cc: Include tm_d.h.
9192 * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
9193 config/sparc/sparc-d.h.
9194 (sparc_d_register_target_info): Likewise.
9195 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
9196 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
9197 * configure: Regenerate.
9198 * configure.ac (tm_d_file): Remove defaults.h.
9199 (tm_d_include_list): Remove options.h and insn-constants.h.
9200 * config/aarch64/aarch64-d.h: New file.
9201 * config/arm/arm-d.h: New file.
9202 * config/i386/i386-d.h: New file.
9203 * config/mips/mips-d.h: New file.
9204 * config/pa/pa-d.h: New file.
9205 * config/riscv/riscv-d.h: New file.
9206 * config/rs6000/rs6000-d.h: New file.
9207 * config/s390/s390-d.h: New file.
9208 * config/sparc/sparc-d.h: New file.
9210 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
9212 * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
9213 (fold_builtin_fpclassify): Same.
9214 * fold-const-call.cc (fold_const_call_cc): Same.
9216 * omp-low.cc (omp_reduction_init_op): Same.
9217 * realmpfr.cc (real_from_mpfr): Same.
9218 * tree.cc (build_complex_inf): Same.
9220 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
9222 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
9223 NOP_EXPR for MMA pointer casting.
9225 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
9227 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
9228 Reduce the fallback cost to 1. Only use it if the number of
9229 input lanes is equal to the number of output lanes.
9231 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
9233 PR tree-optimization/106787
9234 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
9236 (vect_bb_partition_graph_r): ...here. Replace the visited set
9237 with a map from nodes to instances. Ensure that a node only
9238 appears in one partition.
9239 (vect_bb_partition_graph): Update accordingly.
9241 2022-09-02 Richard Biener <rguenther@suse.de>
9243 * timevar.def (TV_TREE_RPO_VN): New.
9244 * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
9245 * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
9246 (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
9247 (pass_fre::execute): Adjust.
9248 * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
9250 2022-09-02 Richard Biener <rguenther@suse.de>
9252 PR tree-optimization/106809
9253 * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
9254 more than one successor before doing extra work.
9256 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
9258 * common/config/riscv/riscv-common.cc: Include <vector>.
9259 (struct riscv_multi_lib_info_t): New.
9260 (riscv_subset_list::match_score): Ditto.
9261 (find_last_appear_switch): Ditto.
9262 (prefixed_with): Ditto.
9263 (struct multi_lib_info_t): Ditto.
9264 (riscv_current_arch_str): Ditto.
9265 (riscv_current_abi_str): Ditto.
9266 (riscv_multi_lib_info_t::parse): Ditto.
9267 (riscv_check_cond): Ditto.
9268 (riscv_check_conds): Ditto.
9269 (riscv_compute_multilib): Ditto.
9270 (TARGET_COMPUTE_MULTILIB): Defined.
9271 * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
9273 (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
9274 * config/riscv/riscv.h (riscv_multi_lib_check): New.
9275 (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
9276 * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
9278 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
9280 * common/common-target.def (compute_multilib): New.
9281 * common/common-targhooks.h (default_compute_multilib): New.
9282 * common/common-targhooks.cc (default_compute_multilib): New.
9283 * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
9284 * doc/tm.texi: Regen.
9285 * gcc.cc: Include common/common-target.h.
9286 (set_multilib_dir) Call targetm_common.compute_multilib.
9287 (SWITCH_LIVE): Move to opts.h.
9288 (SWITCH_FALSE): Ditto.
9289 (SWITCH_IGNORE): Ditto.
9290 (SWITCH_IGNORE_PERMANENTLY): Ditto.
9291 (SWITCH_KEEP_FOR_GCC): Ditto.
9292 (struct switchstr): Ditto.
9293 * opts.h (SWITCH_LIVE): Move from gcc.c.
9294 (SWITCH_FALSE): Ditto.
9295 (SWITCH_IGNORE): Ditto.
9296 (SWITCH_IGNORE_PERMANENTLY): Ditto.
9297 (SWITCH_KEEP_FOR_GCC): Ditto.
9298 (struct switchstr): Ditto.
9300 2022-09-02 Martin Liska <mliska@suse.cz>
9302 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
9305 2022-09-02 Martin Liska <mliska@suse.cz>
9307 * Makefile.in: Remove -gstabs option support, DBX-related
9308 macros and DBX debugging info support.
9309 * collect2.cc (scan_prog_file): Likewise.
9310 * common.opt: Likewise.
9311 * config.gcc: Likewise.
9312 * config.in: Likewise.
9313 * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
9314 * config/alpha/alpha.cc: Likewise.
9315 * config/alpha/elf.h (ASM_SPEC): Likewise.
9316 * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
9317 (DBX_CONTIN_LENGTH): Likewise.
9318 * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
9319 (DBX_CONTIN_LENGTH): Likewise.
9320 * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
9321 * config/darwin.h (DSYMUTIL_SPEC): Likewise.
9322 (ASM_DEBUG_SPEC): Likewise.
9323 (DBX_DEBUGGING_INFO): Likewise.
9324 (DBX_USE_BINCL): Likewise.
9325 (DBX_CONTIN_LENGTH): Likewise.
9326 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
9327 * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
9328 (DBX_CONTIN_LENGTH): Likewise.
9329 * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
9330 (DBX_CONTIN_LENGTH): Likewise.
9331 * config/i386/gas.h (DBX_NO_XREFS): Likewise.
9332 (DBX_CONTIN_LENGTH): Likewise.
9333 * config/ia64/ia64.h: Likewise.
9334 * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
9335 * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
9336 * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
9337 (DBX_CONTIN_LENGTH): Likewise.
9338 (DBX_CONTIN_CHAR): Likewise.
9339 * config/mips/mips.cc (mips_output_filename): Likewise.
9340 (mips_option_override): Likewise.
9341 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
9342 (DBX_DEBUGGING_INFO): Likewise.
9343 (DBX_CONTIN_LENGTH): Likewise.
9344 (DBX_REGISTER_NUMBER): Likewise.
9345 (GP_DBX_FIRST): Likewise.
9346 (FP_DBX_FIRST): Likewise.
9347 (MD_DBX_FIRST): Likewise.
9348 * config/nvptx/nvptx.cc: Likewise.
9349 * config/openbsd.h (DBX_NO_XREFS): Likewise.
9350 * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
9351 * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
9352 (DBX_CONTIN_LENGTH): Likewise.
9353 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
9354 (DBX_USE_BINCL): Likewise.
9355 (DBX_LINES_FUNCTION_RELATIVE): Likewise.
9356 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
9357 * config/pdp11/pdp11.cc: Likewise.
9358 * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
9359 (PREFERRED_DEBUGGING_TYPE): Likewise.
9360 (DBX_CONTIN_LENGTH): Likewise.
9361 * config/rs6000/rs6000-builtin.cc: Likewise.
9362 * config/rs6000/rs6000-call.cc: Likewise.
9363 * config/rs6000/rs6000-logue.cc (defined): Likewise.
9364 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
9365 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
9366 (rs6000_xcoff_declare_function_name): Likewise.
9367 * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
9368 (DBX_FUNCTION_FIRST): Likewise.
9369 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
9370 * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
9371 * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
9372 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
9373 * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
9374 * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
9375 * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
9376 * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
9377 * config/vax/vax.cc (vax_file_start): Likewise.
9378 * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
9379 (DBX_CONTIN_LENGTH): Likewise.
9380 (DBX_CONTIN_CHAR): Likewise.
9381 (DBX_NO_XREFS): Likewise.
9382 (DBX_STATIC_STAB_DATA_SECTION): Likewise.
9383 * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
9384 (XCOFF_DEBUGGING_INFO): Likewise.
9385 * configure: Regenerate. Likewise.
9386 * configure.ac: Likewise.
9387 * debug.h: Likewise.
9388 * doc/install.texi: Likewise.
9389 * doc/invoke.texi: Likewise.
9390 * doc/passes.texi: Likewise.
9391 * doc/tm.texi: Likewise.
9392 * doc/tm.texi.in: Likewise.
9393 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
9394 (dw2_asm_output_nstring): Likewise.
9395 (USE_LINKONCE_INDIRECT): Likewise.
9396 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
9397 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
9398 (output_fde): Likewise.
9399 (output_call_frame_info): Likewise.
9400 (have_macinfo): Likewise.
9401 (add_AT_loc_list): Likewise.
9402 (add_AT_view_list): Likewise.
9403 (output_compilation_unit_header): Likewise.
9404 (output_pubnames): Likewise.
9405 (output_aranges): Likewise.
9406 (output_line_info): Likewise.
9407 (output_macinfo): Likewise.
9408 (dwarf2out_finish): Likewise.
9409 (dwarf2out_early_finish): Likewise.
9410 * final.cc (final_scan_insn_1): Likewise.
9411 (rest_of_handle_final): Likewise.
9412 * flag-types.h (enum debug_info_type): Likewise.
9413 (DBX_DEBUG): Likewise.
9414 (XCOFF_DEBUG): Likewise.
9415 * function.cc (defined): Likewise.
9416 * gcc.cc (defined): Likewise.
9417 (ASM_DEBUG_SPEC): Likewise.
9418 (ASM_DEBUG_OPTION_SPEC): Likewise.
9419 * opts.cc (common_handle_option): Likewise.
9420 (set_debug_level): Likewise.
9421 * system.h (fancy_abort): Likewise.
9422 * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
9423 (TARGET_ASM_DESTRUCTOR): Likewise.
9424 * toplev.cc (defined): Likewise.
9425 * varasm.cc: Likewise.
9426 * config/dbxcoff.h: Removed.
9427 * config/dbxelf.h: Removed.
9428 * dbxout.cc: Removed.
9429 * dbxout.h: Removed.
9431 * stab.def: Removed.
9432 * xcoffout.cc: Removed.
9433 * xcoffout.h: Removed.
9435 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
9438 * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
9439 Set TREE_NOTHROW correctly for dispatcher declaration.
9440 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
9443 2022-09-01 Tamar Christina <tamar.christina@arm.com>
9446 * config/aarch64/aarch64.cc
9447 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
9448 HOST_WIDE_INT_PRINT_UNSIGNED.
9450 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
9452 * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
9453 VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
9454 to the number of vector elements, if that's a known constant.
9455 (vect_optimize_slp_pass::is_compatible_layout): Remove associated
9456 comment about zero SLP_TREE_LANES.
9457 (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
9458 all partition members when looking for potential layouts.
9459 Handle existing permutes of fixed-length vectors.
9461 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
9464 * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
9465 Do not convert a move pattern where both operands are AX_REG.
9467 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
9469 * range-op-float.cc (build_le): Convert to dconst*inf.
9471 * value-range.cc (frange::set_signbit): Same.
9472 (frange::normalize_kind): Same.
9473 (range_tests_floats): Same.
9474 * value-range.h (vrp_val_max): Same.
9475 (vrp_val_min): Same.
9476 (frange::set_varying): Same.
9478 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
9480 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
9482 * real.h: Add dconstinf and dconstninf.
9484 2022-09-01 Richard Biener <rguenther@suse.de>
9486 * gimple-predicate-analysis.cc (compute_control_dep_chain):
9487 Remove cycle detection, instead avoid walking backedges.
9489 2022-09-01 Richard Biener <rguenther@suse.de>
9491 * gimple-predicate-analysis.cc (compute_control_dep_chain):
9492 New wrapping overload.
9493 (uninit_analysis::init_use_preds): Simplify.
9494 (uninit_analysis::init_from_phi_def): Likewise.
9496 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
9498 * gimple-range-fold.cc
9499 (fold_using_range::range_of_builtin_int_call): Add case for
9500 CFN_BUILT_IN_SIGNBIT.
9502 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
9504 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
9506 (foperator_not_equal::op1_range): Same.
9507 * value-query.cc (range_query::get_tree_range): Set sign bit.
9508 * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
9509 * value-range.cc (frange::set_signbit): New.
9510 (frange::set): Adjust for sign bit.
9511 (frange::normalize_kind): Same.
9512 (frange::union_): Remove useless comment.
9513 (frange::intersect): Same.
9514 (frange::contains_p): Adjust for sign bit.
9515 (frange::singleton_p): Same.
9516 (frange::verify_range): Same.
9517 (range_tests_signbit): New tests.
9518 (range_tests_floats): Call range_tests_signbit.
9519 * value-range.h (class frange_props): Add signbit
9520 (class frange): Same.
9522 2022-09-01 Jakub Jelinek <jakub@redhat.com>
9525 * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
9526 instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
9527 * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
9528 derived types of gimple to gimple * to avoid -Wformat warnings.
9529 * tree-vect-loop-manip.cc (vect_set_loop_condition,
9530 vect_update_ivs_after_vectorizer): Likewise.
9531 * tree-vect-stmts.cc (vectorizable_load): Likewise.
9532 * tree-vect-patterns.cc (vect_split_statement,
9533 vect_recog_mulhs_pattern, vect_recog_average_pattern,
9534 vect_determine_precisions_from_range,
9535 vect_determine_precisions_from_users): Likewise.
9536 * gimple-loop-versioning.cc
9537 (loop_versioning::analyze_term_using_scevs): Likewise.
9538 * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
9539 (vect_build_slp_tree): Cast slp_tree to void * to avoid
9541 (optimize_load_redistribution_1, vect_match_slp_patterns,
9542 vect_build_slp_instance, vect_optimize_slp_pass::materialize,
9543 vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
9544 vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
9545 (vect_print_slp_tree): Likewise. Also use
9546 HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
9547 * tree-vect-loop.cc (vect_determine_vectorization_factor,
9548 vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
9549 vectorizable_induction, vect_transform_loop): Cast pointers to derived
9550 types of gimple to gimple * to avoid -Wformat warnings.
9551 (vect_analyze_loop_2): Cast slp_tree to void * to avoid
9553 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
9555 * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
9556 instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
9557 instead of SLP_TREE_DEF_TYPE (node).
9559 2022-09-01 Jakub Jelinek <jakub@redhat.com>
9562 * doc/invoke.texi (-Winvalid-utf8): Document it.
9564 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
9566 PR tree-optimization/106785
9567 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
9568 (range_tests_floats): Same.
9570 2022-09-01 konglin1 <lingling.kong@intel.com>
9572 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
9575 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
9578 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
9579 Enforce the use of a valid MMA pointer type.
9581 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
9583 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
9586 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
9588 * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
9589 (riscv_output_move): Add csrr vlenb assembly.
9590 * config/riscv/riscv.md (move_type): Add csrr vlenb type.
9591 (ext): New attribute.
9592 (ext_enabled): Ditto.
9595 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
9597 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
9599 (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
9600 (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
9601 (vp): Add poly constraint.
9603 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
9605 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
9607 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
9609 * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
9610 configuration according to TARGET_MIN_VLEN.
9611 * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
9613 2022-08-31 Martin Liska <mliska@suse.cz>
9615 * config.build: Remove deprecated ports.
9616 * config.gcc: Likewise.
9617 * config.host: Likewise.
9618 * configure.ac: Likewise.
9619 * configure: Regenerate.
9620 * config/pa/pa-hpux10.h: Removed.
9621 * config/pa/pa-hpux10.opt: Removed.
9622 * config/pa/t-dce-thr: Removed.
9624 2022-08-31 Martin Liska <mliska@suse.cz>
9626 * Makefile.in: Always install limits.h and syslimits.h to
9628 * configure.ac: Assign STMP_FIXINC blank if
9629 --disable-fixincludes is used.
9630 * configure: Regenerate.
9632 2022-08-31 Richard Biener <rguenther@suse.de>
9634 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
9635 Assert the guard_bb isn't empty and has more than one successor.
9636 Drop appropriate parts of the predicate when an edge fails to
9637 register a predicate.
9638 (predicate::dump): Dump empty predicate as TRUE.
9640 2022-08-31 Richard Biener <rguenther@suse.de>
9642 PR tree-optimization/90994
9643 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
9644 Ignore exceptional control flow and skip the edge for the purpose of
9645 predicate generation also for non-calls.
9647 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
9649 * value-range-storage.cc (frange_storage_slot::set_frange): Save
9651 (frange_storage_slot::get_frange): Restore endpoints.
9652 * value-range-storage.h (class frange_storage_slot): Add endpoint
9655 2022-08-31 Martin Liska <mliska@suse.cz>
9657 PR tree-optimization/106789
9658 * range-op-float.cc (default_frelop_fold_range): Remove the
9661 2022-08-31 Martin Liska <mliska@suse.cz>
9663 * value-range.h: Add more override keywords.
9665 2022-08-31 Martin Liska <mliska@suse.cz>
9667 * value-range.h: Add override.
9669 2022-08-31 Richard Biener <rguenther@suse.de>
9671 PR tree-optimization/65244
9672 * gimple-predicate-analysis.h (predicate::init_from_control_deps):
9673 Add argument to specify whether the predicate is for the USE.
9674 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
9675 Also include predicates effective fallthru control edges when
9676 the predicate is for the USE.
9678 2022-08-31 Richard Biener <rguenther@suse.de>
9680 PR tree-optimization/73550
9681 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
9682 Sanitize debug dumping. Handle case labels with a CASE_HIGH.
9683 (predicate::dump): Adjust for better readability.
9685 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9686 Jakub Jelinek <jakub@redhat.com>
9688 * omp-simd-clone.cc (simd_clone_adjust_return_type,
9689 simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
9690 instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
9692 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
9694 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
9697 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
9699 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
9700 initialize const_vf to 0.
9702 2022-08-31 Martin Liska <mliska@suse.cz>
9704 * config.gcc: Remove cr16.
9706 2022-08-30 Martin Jambor <mjambor@suse.cz>
9708 * vec.h (array_slice): Add constructors for non-const reference to
9709 heap vector and pointers to heap vectors.
9711 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
9713 * value-range.cc (early_nan_resolve): Change comment.
9714 (frange::union_): Handle union when one side is a NAN.
9715 (range_tests_nan): Add tests for NAN union.
9717 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
9719 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
9720 (gcn_simd_clone_adjust): New.
9721 (gcn_simd_clone_usable): New.
9722 (TARGET_SIMD_CLONE_ADJUST): New.
9723 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
9724 (TARGET_SIMD_CLONE_USABLE): New.
9726 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
9728 * doc/tm.texi: Regenerate.
9729 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
9731 (simd_clone_adjust_argument_types): Likewise.
9732 * target.def (compute_vecsize_and_simdlen): Document the new
9733 vecsize_int and vecsize_float semantics.
9735 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9737 * expmed.cc (store_bit_field_1): Fix byte offset calculation
9738 for undefined structures.
9740 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9742 * params.opt (-param=vect-max-layout-candidates=): New parameter.
9743 * doc/invoke.texi (vect-max-layout-candidates): Document it.
9744 * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
9745 (auto_load_permutation_t): Likewise.
9746 * tree-vect-slp.cc (vect_slp_node_weight): New function.
9747 (slpg_layout_cost): New class.
9748 (slpg_vertex): Replace perm_in and perm_out with partition,
9749 out_degree, weight and out_weight.
9750 (slpg_partition_info, slpg_partition_layout_costs): New classes.
9751 (vect_optimize_slp_pass): Likewise, cannibalizing some part of
9752 the previous vect_optimize_slp.
9753 (vect_optimize_slp): Use it.
9755 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9757 * hash-traits.h (vec_hash_base): New class.
9758 (vec_free_hash_base): Likewise.
9760 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9762 * hash-traits.h (int_hash_base): New struct, split out from...
9763 (int_hash): ...this class, which now inherits from int_hash_base.
9764 * hash-map-traits.h (unbounded_hashmap_traits): Take a template
9765 parameter for the key that provides hash and equality functions.
9766 (unbounded_int_hashmap_traits): Turn into a type alias of
9767 unbounded_hashmap_traits.
9769 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9771 * graphds.cc (graphds_scc): Add a pass-back parameter for the
9773 * graphds.h (graphds_scc): Update prototype accordingly.
9775 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9777 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
9778 (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead
9779 of STMT_VINFO_VECTYPE.
9781 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9783 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
9784 (vectorizable_slp_permutation): ...here.
9786 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
9788 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
9789 that the requested number of units is interoperable with the requested
9792 2022-08-30 Martin Liska <mliska@suse.cz>
9794 * config.gcc: Remove the port.
9795 * config/m32c/rtems.h: Removed.
9797 2022-08-30 Richard Biener <rguenther@suse.de>
9799 PR tree-optimization/73550
9800 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
9801 Do not apply MAX_NUM_CHAINS again.
9803 2022-08-30 Richard Biener <rguenther@suse.de>
9805 * gimple-predicate-analysis.cc (format_edge_vec): Dump
9806 both source and destination.
9807 (dump_dep_chains): Remove.
9808 (uninit_analysis::init_use_preds): Remove redundant
9811 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
9813 * value-range-storage.cc (frange_storage_slot::get_frange): Use
9815 * value-range.cc (frange::set_nan): New.
9816 (frange_nan): Move to header file.
9817 (range_tests_nan): Adjust frange_nan callers to pass type.
9819 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
9822 2022-08-30 Richard Biener <rguenther@suse.de>
9824 PR tree-optimization/67196
9825 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
9826 Simplify and normalize use prediates before first use.
9828 2022-08-30 Richard Biener <rguenther@suse.de>
9830 * gimple-predicate-analysis.cc (dump_pred_chain): Fix
9831 parentizing and AND prepending.
9832 (predicate::dump): Do not dump the GENERIC expanded
9833 predicate, properly parentize and prepend ORs to the
9834 piecewise predicate dump.
9835 (build_pred_expr): Remove.
9837 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
9839 * range-op-float.cc (finite_operand_p): New.
9844 (foperator_equal::fold_range): New implementation with endpoints.
9845 (foperator_equal::op1_range): Same.
9846 (foperator_not_equal::fold_range): Same.
9847 (foperator_not_equal::op1_range): Same.
9848 (foperator_lt::fold_range): Same.
9849 (foperator_lt::op1_range): Same.
9850 (foperator_lt::op2_range): Same.
9851 (foperator_le::fold_range): Same.
9852 (foperator_le::op1_range): Same.
9853 (foperator_le::op2_range): Same.
9854 (foperator_gt::fold_range): Same.
9855 (foperator_gt::op1_range): Same.
9856 (foperator_gt::op2_range): Same.
9857 (foperator_ge::fold_range): Same.
9858 (foperator_ge::op1_range): Same.
9859 (foperator_ge::op2_range): Same.
9861 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
9863 * range-op-float.cc (frange_set_nan): New.
9864 (frange_drop_inf): New.
9865 (frange_drop_ninf): New.
9866 (foperator_equal::op1_range): Adjust for endpoints.
9867 (foperator_lt::op1_range): Same.
9868 (foperator_lt::op2_range): Same.
9869 (foperator_gt::op1_range): Same.
9870 (foperator_gt::op2_range): Same.
9871 (foperator_unordered::op1_range): Same.
9872 * value-query.cc (range_query::get_tree_range): Same.
9873 * value-range-pretty-print.cc (vrange_printer::visit): Same.
9874 * value-range-storage.cc (frange_storage_slot::get_frange): Same.
9875 * value-range.cc (frange::set): Same.
9876 (frange::normalize_kind): Same.
9877 (frange::union_): Same.
9878 (frange::intersect): Same.
9879 (frange::operator=): Same.
9880 (early_nan_resolve): New.
9881 (frange::contains_p): New.
9882 (frange::singleton_p): New.
9883 (frange::set_nonzero): New.
9884 (frange::nonzero_p): New.
9885 (frange::set_zero): New.
9886 (frange::zero_p): New.
9887 (frange::set_nonnegative): New.
9888 (frange_float): New.
9890 (range_tests_nan): New.
9891 (range_tests_signed_zeros): New.
9892 (range_tests_floats): New.
9894 * value-range.h (frange::lower_bound): New.
9895 (frange::upper_bound): New.
9896 (vrp_val_min): Use real_inf with a sign instead of negating inf.
9897 (frange::frange): New.
9898 (frange::set_varying): Adjust for endpoints.
9899 (real_max_representable): New.
9900 (real_min_representable): New.
9902 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
9904 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
9907 2022-08-30 Martin Liska <mliska@suse.cz>
9909 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
9912 2022-08-30 Richard Biener <rguenther@suse.de>
9914 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
9915 the set of fallthru reachable blocks from function entry
9916 and use that to determine wlims.always_executed.
9918 2022-08-30 Richard Biener <rguenther@suse.de>
9920 PR tree-optimization/56654
9921 * tree-ssa-uninit.cc (cand_cmp): New.
9922 (find_uninit_use): First process all PHIs and collect candidate
9923 stmts, then sort those after RPO.
9924 (warn_uninitialized_phi): Pass on bb_to_rpo.
9925 (execute_late_warn_uninitialized): Compute and pass on
9926 reverse lookup of RPO number from basic block index.
9928 2022-08-30 Richard Biener <rguenther@suse.de>
9930 * gimple-predicate-analysis.h (uninit_analysis::operator()):
9932 * gimple-predicate-analysis.cc
9933 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
9935 * tree-ssa-uninit.cc (defined_args): New global.
9936 (compute_uninit_opnds_pos): Mask with the recorded set
9937 of guarded maybe-uninitialized uses.
9938 (uninit_undef_val_t::operator()): Remove.
9939 (find_uninit_use): Process all PHI uses, recording the
9940 guarded ones and marking the PHI result as uninitialized
9942 (warn_uninitialized_phi): Adjust.
9943 (execute_late_warn_uninitialized): Get rid of the PHI worklist
9944 and instead walk the function in RPO order.
9945 * spellcheck.h (best_match::m_best_candidate_len): Initialize.
9947 2022-08-30 Tamar Christina <tamar.christina@arm.com>
9949 PR tree-optimization/106744
9950 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
9952 2022-08-30 Tamar Christina <tamar.christina@arm.com>
9954 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
9956 2022-08-29 David Faust <david.faust@oracle.com>
9959 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
9960 computation of index for anonymous members.
9962 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
9964 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
9967 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
9970 * config/i386/i386-expand.cc
9971 (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
9972 * config/i386/sse.md (V_256H): Add V16BF.
9974 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
9976 * config/s390/s390.cc (s390_address_cost): Declare.
9977 (s390_hard_regno_nregs): Declare.
9978 (s390_rtx_costs): Add handling for REG and MEM in SET.
9980 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
9982 * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
9983 (is_reverse_perm_mask): New function.
9984 (expand_perm_with_rot): Recognize reverse pattern.
9985 (expand_perm_with_vstbrq): New function.
9986 (expand_perm_with_vster): Use vler/vster for element reversal on z15.
9987 (vectorize_vec_perm_const_1): Use.
9988 (s390_vectorize_vec_perm_const): Add expand functions.
9989 * config/s390/vx-builtins.md: Prefer vster over vler.
9991 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
9993 * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
9994 * config/s390/vector.md: Rewrite patterns to use vec_select.
9995 * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
9998 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
10001 * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
10002 (rotl<mode>3_di): New pattern.
10003 * config/s390/vx-builtins.md: Use vpdi and verll for reversing
10006 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
10008 * config/s390/s390.cc (s390_issue_rate): Add z15.
10010 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
10012 * common/config/s390/s390-common.cc: Enable -funroll-loops and
10013 -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
10014 * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
10015 loops larger than 12 instructions.
10016 (s390_override_options_after_change): Set unroll options.
10017 (s390_option_override_internal): Likewise.
10018 * config/s390/s390.opt: Document munroll-only-small-loops.
10020 2022-08-29 Richard Biener <rguenther@suse.de>
10022 * gimple-predicate-analysis.cc (is_loop_exit,
10023 find_control_equiv_block): Inline into single caller ...
10024 (uninit_analysis::init_use_preds): ... here and refactor.
10026 2022-08-29 Richard Biener <rguenther@suse.de>
10028 * gimple-predicate-analysis.cc (compute_control_dep_chain):
10029 Inline is_loop_exit and refactor, add comment about
10032 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
10034 * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
10035 (riscv_frame_info::reset(void)): New.
10036 (riscv_compute_frame_info): Use riscv_frame_info::reset instead
10037 of memset when clean frame.
10039 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
10041 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
10042 (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
10043 (riscv_address_insns): Add RVV modes condition.
10044 (riscv_binary_cost): Ditto.
10045 (riscv_rtx_costs): Adjust cost for RVV.
10046 (riscv_secondary_memory_needed): Add RVV modes condition.
10047 (riscv_hard_regno_nregs): Add RVV register allocation.
10048 (riscv_hard_regno_mode_ok): Add RVV register allocation.
10049 (riscv_class_max_nregs): Add RVV register allocation.
10050 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
10051 (UNITS_PER_V_REG): New macro.
10052 (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
10053 (V_REG_FIRST): New macro.
10054 (V_REG_LAST): Ditto.
10055 (V_REG_NUM): Ditto.
10058 (VTYPE_REG_P): Ditto.
10059 (RISCV_DWARF_VL): Ditto.
10060 (RISCV_DWARF_VTYPE): Ditto.
10061 (enum reg_class): Add RVV register types.
10062 (REG_CLASS_CONTENTS): Add RVV register types.
10063 * config/riscv/riscv.md: Add VL/VTYPE register number constants.
10065 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
10067 * config/riscv/riscv.md: Add new type for vector instructions.
10069 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
10072 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
10073 of MMA pointer conversions.
10075 2022-08-27 Xi Ruoyao <xry111@xry111.site>
10077 * config/i386/gcc-auto-profile: Regenerate.
10079 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
10081 * real.cc (real_iszero): New.
10082 * real.h (real_iszero): New.
10084 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
10086 * real.cc (real_isinf): New overload.
10087 (real_inf): Add sign argument.
10088 * real.h (real_isinf): New overload.
10089 (real_inf): Add sign argument.
10091 2022-08-26 Marek Polacek <polacek@redhat.com>
10094 * doc/invoke.texi: Document -Wself-move.
10096 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
10098 * value-range.cc (vrange::set): Set varying.
10099 (vrange::set_nonzero): Same.
10100 (vrange::set_zero): Same.
10101 (vrange::set_nonnegative): Same.
10103 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
10105 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
10106 copy op2 range when honoring signed zeros.
10108 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
10110 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
10112 (profitable_path_p): Same.
10114 2022-08-26 Richard Biener <rguenther@suse.de>
10116 * gimple-predicate-analysis.h
10117 (uninit_analysis::use_cannot_happen): Remove.
10118 * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
10119 (uninit_analysis::use_cannot_happen): Likewise.
10120 (uninit_analysis::is_use_guarded): Do not call
10122 (dump_predicates): Remove.
10123 (simple_control_dep_chain): Remove edge overload.
10125 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
10127 * internal-fn.cc (expand_GOMP_TARGET_REV): New.
10128 * internal-fn.def (GOMP_TARGET_REV): New.
10129 * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
10130 'omp target device_ancestor_host' as in_other_partition and don't
10132 * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
10133 * omp-expand.cc (expand_omp_target): For reverse offload, remove
10134 sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
10135 empty-body nohost function.
10136 * omp-offload.cc (execute_omp_device_lower): Handle
10137 IFN_GOMP_TARGET_REV.
10138 (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
10139 nullify fn argument for reverse offload
10141 2022-08-26 Jakub Jelinek <jakub@redhat.com>
10143 * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
10144 * builtins.cc (expand_builtin_issignaling): New function.
10145 (expand_builtin_signbit): Don't overwrite target.
10146 (expand_builtin): Handle BUILT_IN_ISSIGNALING.
10147 (fold_builtin_classify): Likewise.
10148 (fold_builtin_1): Likewise.
10149 * optabs.def (issignaling_optab): New.
10150 * fold-const-call.cc (fold_const_call_ss): Handle
10151 BUILT_IN_ISSIGNALING.
10152 * config/i386/i386.md (issignalingxf2): New expander.
10153 * doc/extend.texi (__builtin_issignaling): Document.
10154 (__builtin_isinf, __builtin_isnan): Clarify behavior with
10155 -ffinite-math-only.
10156 * doc/md.texi (issignaling<mode>2): Likewise.
10158 2022-08-26 Jakub Jelinek <jakub@redhat.com>
10160 PR tree-optimization/106099
10161 * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
10162 * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
10163 __builtin_trap to avoid the need of vops.
10165 2022-08-26 Richard Biener <rguenther@suse.de>
10167 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
10169 (compute_control_dep_chain): Adjust to honor marked region
10171 (uninit_analysis::init_from_phi_def): Pre-mark the dominating
10172 region to improve compute_control_dep_chain walking.
10173 * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
10175 2022-08-26 Richard Biener <rguenther@suse.de>
10177 * gimple-predicate-analysis.cc
10178 (uninit_analysis::collect_phi_def_edges): Only expand a
10179 PHI def edge when it is possibly undefined.
10181 2022-08-26 Martin Liska <mliska@suse.cz>
10183 * doc/extend.texi: Remove cr16 related stuff.
10184 * doc/install.texi: Likewise.
10185 * doc/invoke.texi: Likewise.
10186 * doc/md.texi: Likewise.
10187 * function-tests.cc (test_expansion_to_rtl): Likewise.
10188 * common/config/cr16/cr16-common.cc: Removed.
10189 * config/cr16/constraints.md: Removed.
10190 * config/cr16/cr16-protos.h: Removed.
10191 * config/cr16/cr16.cc: Removed.
10192 * config/cr16/cr16.h: Removed.
10193 * config/cr16/cr16.md: Removed.
10194 * config/cr16/cr16.opt: Removed.
10195 * config/cr16/predicates.md: Removed.
10196 * config/cr16/t-cr16: Removed.
10198 2022-08-26 liuhongt <hongtao.liu@intel.com>
10201 * config/i386/i386-builtin.def (BDESC): Add
10202 CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
10203 corresponding builtins.
10204 * config/i386/i386.cc (ix86_gimple_fold_builtin):
10205 Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
10206 IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
10208 2022-08-25 Marek Polacek <polacek@redhat.com>
10210 * ginclude/stddef.h: Define nullptr_t.
10212 2022-08-25 Joseph Myers <joseph@codesourcery.com>
10214 * gimplify.cc (gimplify_modify_expr): Convert initialization from
10215 a variable-size CONSTRUCTOR to memset before call to
10216 gimplify_modify_expr_rhs.
10218 2022-08-25 Jason Merrill <jason@redhat.com>
10220 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
10222 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
10225 * config/s390/predicates.md (subreg_register_operand): New
10227 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
10228 function prototype.
10229 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
10230 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
10232 * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
10233 ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
10234 ("movstrictqi", "movstricthi", "movstrictsi"): Use the
10235 subreg_register_operand predicate instead of register_operand.
10237 2022-08-25 Xi Ruoyao <xry111@xry111.site>
10239 * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
10240 Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
10241 * config/loongarch/loongarch.cc (loongarch_attribute_table):
10242 New attribute table.
10243 (TARGET_ATTRIBUTE_TABLE): Define the target hook.
10244 (loongarch_handle_model_attribute): New static function.
10245 (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
10246 model attribute of SYMBOL_REF_DECL into account returning
10247 SYMBOL_PCREL or SYMBOL_PCREL64.
10248 (loongarch_use_anchors_for_symbol_p): New static function.
10249 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
10250 (loongarch_symbol_extreme_p): New static function.
10251 (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
10252 (loongarch_symbol_insns): Likewise.
10253 (loongarch_split_symbol_type): Likewise.
10254 (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
10255 TARGET_CMODEL_EXTREME for PC-relative addressing.
10256 (loongarch_print_operand_reloc): Likewise.
10257 * doc/extend.texi (Variable Attributes): Document new
10258 LoongArch specific attribute.
10260 2022-08-25 Xi Ruoyao <xry111@xry111.site>
10262 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
10263 Return early if the rtx is not SYMBOL_REF.
10265 2022-08-25 Richard Biener <rguenther@suse.de>
10267 PR tree-optimization/106737
10268 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
10271 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
10274 * config/loongarch/loongarch.cc (loongarch_build_integer):
10276 * config/loongarch/loongarch.h (IMM_REACH): Likewise.
10277 (HWIT_1U): New Defined.
10278 (LU12I_OPERAND): Use HOST_WIDE_INT.
10279 (LU32I_OPERAND): Likewise.
10280 (LU52I_OPERAND): Likewise.
10281 (HWIT_UC_0xFFF): Likwise.
10283 2022-08-24 Andrew Pinski <apinski@marvell.com>
10287 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
10289 (*slliuw): Likewise.
10290 (*bexti): Likewise. Also add a check for operands[2] to be less
10291 than the mode bitsize.
10293 2022-08-24 Andrew Pinski <apinski@marvell.com>
10295 * config/riscv/constraints.md (DbS): New constraint.
10296 (DnS): New constraint.
10297 * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
10298 (*bclr<mode>): Likewise.
10299 (*binvi<mode>): Likewise.
10301 2022-08-24 Andrew Pinski <apinski@marvell.com>
10304 * config/riscv/predicates.md (single_bit_mask_operand):
10305 Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
10306 (not_single_bit_mask_operand): Likewise.
10307 * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
10308 1<<31 for 32bits as it is already handled.
10309 Call trunc_int_for_mode on the upper part after the subtraction.
10310 (riscv_move_integer): Call trunc_int_for_mode before generating
10311 the integer just make sure the constant has been sign extended
10313 (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
10314 addition for the new rhs.
10315 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
10316 then mask off the upper 32bits of the HWI as it will be sign extended.
10318 2022-08-24 Andrew Pinski <apinski@marvell.com>
10320 * config/riscv/constraints.md (DsS): New constraint.
10321 (DsD): New constraint.
10322 * config/riscv/iterators.md (shiftm1c): New iterator.
10323 * config/riscv/bitmanip.md (*bset<mode>_mask):
10325 (*bset<mode>_1_mask): Likewise.
10327 2022-08-24 Andrew Pinski <apinski@marvell.com>
10329 * config/riscv/constraints.md (Ds3): New constraint.
10330 * config/riscv/predicates.md (imm123_operand): New predicate.
10331 * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
10332 (*shNadduw): Likewise.
10334 2022-08-24 Andrew Pinski <apinski@marvell.com>
10336 * config/riscv/riscv.cc (riscv_print_operand):
10338 (riscv_print_operand_punct_valid_p): New function
10339 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10340 * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
10341 Use %~ instead of conditional the pattern on TARGET_64BIT.
10342 (rotrsi3): Likewise.
10343 (rotlsi3): Likewise.
10344 * config/riscv/riscv.md: Add ~ to the list of modifiers.
10345 (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
10346 (subsi3): Likewise.
10347 (negsi2): Likewise.
10348 (mulsi3): Likewise.
10349 (optab>si3/any_div): Likewise.
10350 (*add<mode>hi3): Likewise.
10351 (<optab>si3/any_shift): Likewise.
10353 2022-08-24 Andrew Pinski <apinski@marvell.com>
10355 * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
10356 keep the list in riscv.md in sync with this list.
10357 * config/riscv/riscv.md: Add list of modifiers as comments.
10359 2022-08-24 Andrew Pinski <apinski@marvell.com>
10361 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
10362 * config/riscv/iterators.md: Here.
10364 2022-08-24 Andrew Pinski <apinski@marvell.com>
10366 * config/riscv/bitmanip.md
10367 (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
10368 tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
10369 * config/riscv/iterators.md: Here.
10371 2022-08-24 Andrew Pinski <apinski@marvell.com>
10373 * config/riscv/riscv.md (GPR): Move to new file.
10374 (P, X, BR): Likewise.
10375 (MOVE32, MOVE64, SHORT): Likewise.
10376 (HISI, SUPERQI, SUBX): Likewise.
10377 (ANYI, ANYF, SOFTF): Likewise.
10378 (size, load, default_load): Likewise.
10379 (softload, store, softstore): Likewise.
10380 (reg, fmt, ifmt, amo): Likewise.
10381 (UNITMODE, HALFMODE): Likewise.
10382 (RINT, rint_pattern, rint_rm): Likewise.
10383 (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
10384 (any_extend, any_shiftrt, any_shift): Likewise.
10385 (any_bitwise): Likewise.
10386 (any_div, any_mod): Likewise.
10387 (any_gt, any_ge, any_lt, any_le): Likewise.
10389 (optab, insn): Likewise.
10390 * config/riscv/iterators.md: New file.
10392 2022-08-24 Andrew Pinski <apinski@marvell.com>
10395 * config/riscv/bitmanip.md (bswaphi2): New pattern.
10397 2022-08-24 Andrew Pinski <apinski@marvell.com>
10400 * config/riscv/bitmanip.md (bswap<mode>2): Remove
10401 condition on TARGET_64BIT as X is already conditional there.
10403 2022-08-24 Joseph Myers <joseph@codesourcery.com>
10405 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
10406 exponent for the type.
10408 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
10411 * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
10412 constants as legitimate addresses for functions.
10413 (bpf_small_register_classes_for_mode_p): Define target hook.
10415 2022-08-24 Richard Biener <rguenther@suse.de>
10417 * gimple-predicate-analysis.cc: Move predicate normalization
10418 after the comment documenting it.
10420 2022-08-24 Richard Biener <rguenther@suse.de>
10422 * gimple-predicate-analysis.h (predicate): Split out
10423 non-predicate related functionality into ..
10424 (uninit_analysis): .. this new class.
10425 * gimple-predicate-analysis.cc: Refactor into two classes.
10426 * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
10428 2022-08-24 Richard Biener <rguenther@suse.de>
10430 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
10431 Do simple_control_dep_chain only up to cd_root, add the PHI
10432 operand edge to the chains like init_from_phi_def does.
10433 (predicate::is_use_guarded): Speedup early out, avoid half-way
10434 initializing the PHI def predicate.
10436 2022-08-24 Jakub Jelinek <jakub@redhat.com>
10439 * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
10440 Change V32HF, V16HF and V8HF entries from "f" to "i".
10441 (iptr): Add V32BF, V16BF, V8BF and BF entries.
10442 (i128vldq): Add V16HF and V16BF entries.
10443 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
10444 mask_opernad3 -> mask_operand3.
10446 2022-08-24 Martin Liska <mliska@suse.cz>
10447 Jørgen Kvalsvik <j@lambda.is>
10449 * gcov.cc (add_line_counts): Add group functions to coverage
10451 (accumulate_line_counts): Similarly for files.
10453 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
10455 * config/loongarch/genopts/loongarch-strings: Support code model medium.
10456 * config/loongarch/genopts/loongarch.opt.in: Likewise.
10457 * config/loongarch/loongarch-def.c: Likewise.
10458 * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
10459 (CMODEL_EXTREME): Likewise.
10460 (N_CMODEL_TYPES): Likewise.
10461 (CMODEL_MEDIUM): Likewise.
10462 * config/loongarch/loongarch-opts.cc: Likewise.
10463 * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
10464 * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
10465 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
10466 Tls symbol Loading support medium mode.
10467 (loongarch_legitimize_call_address): When medium mode, make a symbolic
10468 jump with two instructions.
10469 (loongarch_option_override_internal): Support medium.
10470 * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
10471 (@sibcall_internal_1<mode>): New function call templates added to support
10473 (@sibcall_value_internal_1<mode>): Likewise.
10474 (@sibcall_value_multiple_internal_1<mode>): Likewise.
10475 (@call_internal_1<mode>): Likewise.
10476 (@call_value_internal_1<mode>): Likewise.
10477 (@call_value_multiple_internal_1<mode>): Likewise.
10478 * config/loongarch/loongarch.opt: Support medium.
10479 * config/loongarch/predicates.md: Add processing about medium mode.
10480 * doc/invoke.texi: Document for '-mcmodel=medium'.
10482 2022-08-24 Richard Biener <rguenther@suse.de>
10484 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
10485 Start the compute_control_dep_chain walk from the immediate
10486 dominator of the PHI.
10488 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
10491 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
10493 (_tile_stream_loadd_internal): Likewise.
10494 (_tile_stored_internal): Likewise.
10496 2022-08-23 Richard Biener <rguenther@suse.de>
10498 PR tree-optimization/106722
10499 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
10500 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
10501 * gimple-predicate-analysis.cc: ... here and document.
10502 (simple_control_dep_chain): New function, factored from
10503 predicate::use_cannot_happen.
10504 (predicate::use_cannot_happen): Adjust.
10505 (predicate::predicate): Use simple_control_dep_chain as fallback.
10507 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
10509 * range-op-float.cc (foperator_equal::op1_range): Set range to
10512 2022-08-23 Richard Biener <rguenther@suse.de>
10514 * gimple-predicate-analysis.cc (is_loop_exit): Split out
10516 (is_non_loop_exit_postdominating): ... here. Remove after
10518 (find_control_equiv_block): ... here.
10519 (compute_control_dep_chain): ... and here.
10520 (predicate::is_use_guarded): Do not excempt loop exits
10521 from short-cutting the case of the use post-dominating the
10524 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
10526 PR tree-optimization/106687
10527 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
10528 for the VREL_GT case as well.
10530 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
10532 * config/pru/pru.md (pru_<code>di3): New alternative for
10533 two operands but without earlyclobber.
10535 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
10537 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
10538 variants for loading -1 consts.
10540 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
10543 * config/pru/constraints.md (Um): New constraint for -1.
10544 (Uf): New constraint for IOR fill-bytes constants.
10545 (Uz): New constraint for AND zero-bytes constants.
10546 * config/pru/predicates.md (const_fillbytes_operand): New
10547 predicate for IOR fill-bytes constants.
10548 (const_zerobytes_operand): New predicate for AND zero-bytes
10550 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
10551 (struct pru_byterange): New struct to describe a byte range.
10552 (pru_calc_byterange): New declaration.
10553 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
10554 64-bit zero-extend.
10555 (pru_output_sign_extend): Remove.
10556 (pru_calc_byterange): New helper function to extract byte
10557 range info from a constant.
10558 (pru_print_operand): Remove 'y' and 'z' print modifiers.
10559 * config/pru/pru.md (zero_extendqidi2): New pattern.
10560 (zero_extendhidi2): New pattern.
10561 (zero_extendsidi2): New pattern.
10562 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
10563 (@pru_ior_fillbytes<mode>): New pattern.
10564 (@pru_and_zerobytes<mode>): New pattern.
10565 (<code>di3): Rewrite as an expand and handle ZERO and FILL
10567 (pru_<code>di3): New name for <code>di3.
10568 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
10569 handle bit-test for 64-bit registers.
10571 2022-08-22 Richard Biener <rguenther@suse.de>
10573 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
10574 (predicate::def_expr): Likewise.
10575 (predicate::use_expr): Likewise.
10576 (predicate::expr): Likewise.
10577 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
10578 (predicate::use_expr): Likewise.
10579 (predicate::expr): Likewise.
10580 (predicate::is_use_guarded): Do not build m_use_expr.
10582 2022-08-22 Martin Liska <mliska@suse.cz>
10585 * configure.ac: Detect O_NONBLOCK flag for open.
10586 * config.in: Regenerate.
10587 * configure: Regenerate.
10588 * opts-common.cc (jobserver_info::connect): Set is_connected
10589 properly based on O_NONBLOCK.
10590 * opts-jobserver.h (struct jobserver_info): Add is_connected
10593 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
10595 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
10596 and repeat value different.
10598 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
10601 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
10602 (tool_cleanup): Unlink offload_names.
10603 (compile_offload_image): Take filename argument to set it early.
10604 (compile_images_for_offload_targets): Update call; set
10605 offload_names to NULL after freeing the array.
10607 2022-08-22 Richard Biener <rguenther@suse.de>
10609 PR tree-optimization/105937
10610 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
10612 (execute_late_warn_uninitialized): Mark backedges.
10614 2022-08-22 Richard Biener <rguenther@suse.de>
10616 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
10617 If the use is guarded with multiple predicate paths compute
10618 the predicates intersection before going forward. When
10619 compute_control_dep_chain wasn't able to come up with at
10620 least one path from function entry to the PHI edge compute
10621 a conservative sparse path instead.
10623 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
10625 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
10626 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
10627 Add extreme support for TLS GD and LD types.
10628 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
10630 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
10631 the symbol address will be obtained through five instructions.
10632 (loongarch_print_operand_reloc): Add support.
10633 (loongarch_print_operand): Add support.
10634 (loongarch_print_operand_address): Add support.
10635 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
10636 incompatible with '-mno-explicit-relocs'.
10637 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
10638 Loads bits 12-31 of data into registers.
10639 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
10640 the source register.
10641 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
10642 the source register.
10643 * config/loongarch/predicates.md: Symbols need to be decomposed
10644 when defining the macro TARGET_CMODEL_EXTREME
10645 * doc/invoke.texi: Modify the description information of cmodel in the document.
10646 Document -W[no-]extreme-plt.
10648 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
10650 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
10652 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
10653 omp_requires_file to temp_files.
10654 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
10655 (main): Remove local omp_requires_file var.
10656 (tool_cleanup): Handle omp_requires_file.
10658 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
10660 * gimple-range-path.cc (path_range_query::path_range_query):
10661 Remove constructor that takes edge.
10662 * gimple-range-path.h (class path_range_query): Same.
10663 * tree-ssa-loop-ch.cc (edge_range_query): New.
10664 (entry_loop_condition_is_static): Call edge_range_query.
10666 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10668 * config/xtensa/xtensa.h
10669 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
10670 Add new register class "ISC_REGS".
10671 * config/xtensa/constraints.md (c): Add new register constraint.
10672 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
10673 (sibcall_internal, sibcall_value_internal):
10674 Change to use the new register constraint, and remove two split
10675 patterns for fixups that are no longer needed.
10677 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
10679 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
10680 pattern formatting.
10682 2022-08-18 Tim Lange <mail@tim-lange.me>
10685 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
10687 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
10689 * gimple-range-path.cc (path_range_query::path_range_query): Add
10690 various constructors to take a path.
10691 (path_range_query::~path_range_query): Remove m_alloced_ranger.
10692 (path_range_query::range_on_path_entry): Adjust for m_ranger being
10694 (path_range_query::set_path): Rename to...
10695 (path_range_query::reset_path): ...this and call compute_ranges.
10696 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
10698 (path_range_query::range_defined_in_block): Same.
10699 (path_range_query::compute_ranges_in_block): Same.
10700 (path_range_query::adjust_for_non_null_uses): Same.
10701 (path_range_query::compute_exit_dependencies): Use m_path instead
10703 (path_range_query::compute_ranges): Remove path argument.
10704 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
10705 (path_range_query::compute_outgoing_relations): Same.
10706 * gimple-range-path.h (class path_range_query): Add various
10708 Make compute_ranges and compute_exit_dependencies private.
10709 Rename set_path to reset_path.
10710 Make m_ranger a reference.
10711 Remove m_alloced_ranger.
10712 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
10714 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
10715 ranger and instantiate a new path_range_query every time.
10716 (ch_base::copy_headers): Pass ranger instead of path_range_query.
10717 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
10718 (back_threader::~back_threader): Remove m_solver.
10719 (back_threader::find_taken_edge_switch): Adjust for m_ranger
10721 (back_threader::find_taken_edge_cond): Same.
10722 (back_threader::dump): Remove m_solver.
10723 (back_threader::back_threader): Move verify_marked_backedges
10724 here from the path_range_query constructor.
10725 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
10726 some code from compute_ranges_from_state here.
10727 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
10728 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
10729 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
10730 compute_ranges_from_state to compute_exit_dependencies.
10733 2022-08-18 Richard Biener <rguenther@suse.de>
10735 PR middle-end/106617
10736 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
10737 guard, disable on GENERIC to not cause quadratic behavior
10738 with the fold-const.cc implementation and the use of !
10740 2022-08-18 Andrew Pinski <apinski@marvell.com>
10742 PR gcov-profile/106659
10743 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
10746 2022-08-18 konglin1 <lingling.kong@intel.com>
10748 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
10750 (ix86_expand_vector_init_duplicate): Support vector BFmode.
10751 (ix86_expand_vector_init_one_nonzero): Ditto.
10752 (ix86_expand_vector_init_one_var): Ditto.
10753 (ix86_expand_vector_init_concat): Ditto.
10754 (ix86_expand_vector_init_interleave): Ditto.
10755 (ix86_expand_vector_init_general): Ditto.
10756 (ix86_expand_vector_init): Ditto.
10757 (ix86_expand_vector_set_var): Ditto.
10758 (ix86_expand_vector_set): Ditto.
10759 (ix86_expand_vector_extract): Ditto.
10760 * config/i386/i386.cc (classify_argument): Add BF vector modes.
10761 (function_arg_64): Ditto.
10762 (ix86_gimplify_va_arg): Ditto.
10763 (ix86_get_ssemov): Ditto.
10764 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
10765 (VALID_AVX512F_REG_MODE): Ditto.
10766 (host_detect_local_cpu): Ditto.
10767 (VALID_SSE2_REG_MODE): Ditto.
10768 * config/i386/i386.md: Add BF vector modes.
10769 (MODE_SIZE): Ditto.
10770 (ssemodesuffix): Add bf suffix for BF vector modes.
10771 (ssevecmode): Ditto.
10772 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
10773 (VI12HFBF_AVX512VL): Ditto.
10774 (V_256_512): Ditto.
10775 (VF_AVX512HFBF16): Ditto.
10776 (VF_AVX512BWHFBF16): Ditto.
10779 (VIHFBF_256): Ditto.
10780 (VIHFBF_AVX512BW): Ditto.
10781 (VI2F_256_512):Ditto.
10785 (sseinsnmode): Ditto.
10786 (sseconstm1): Ditto.
10787 (sseintmodesuffix): New mode_attr.
10788 (avx512fmaskmode): Ditto.
10789 (avx512fmaskmodelower): Ditto.
10790 (ssedoublevecmode): Ditto.
10791 (ssehalfvecmode): Ditto.
10792 (ssehalfvecmodelower): Ditto.
10793 (ssescalarmode): Add vector BFmode mapping.
10794 (ssescalarmodelower): Ditto.
10795 (ssexmmmode): Ditto.
10796 (ternlogsuffix): Ditto.
10797 (ssescalarsize): Ditto.
10798 (sseintprefix): Ditto.
10801 (bcstscalarsuff): Ditto.
10802 (<avx512>_blendm<mode>): New define_insn for BFmode.
10803 (<avx512>_store<mode>_mask): Ditto.
10804 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
10805 (vec_set<mode>_0): New define_insn for BF vector set.
10806 (V8BFH_128): New mode_iterator for BFmode.
10807 (avx512fp16_mov<mode>): Ditto.
10808 (vec_set<mode>): New define_insn for BF vector set.
10809 (@vec_extract_hi_<mode>): Ditto.
10810 (@vec_extract_lo_<mode>): Ditto.
10811 (vec_set_hi_<mode>): Ditto.
10812 (vec_set_lo_<mode>): Ditto.
10813 (*vec_extract<mode>_0): New define_insn_and_split for BF
10815 (*vec_extract<mode>): New define_insn.
10816 (VEC_EXTRACT_MODE): Add BF vector modes.
10817 (PINSR_MODE): Add V8BF.
10819 (pinsr_evex_isa): Ditto.
10820 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
10821 insert for V8BFmode.
10822 (pbroadcast_evex_isa): Add BF vector modes.
10823 (AVX2_VEC_DUP_MODE): Ditto.
10824 (VEC_INIT_MODE): Ditto.
10825 (VEC_INIT_HALF_MODE): Ditto.
10826 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
10828 (avx2_pbroadcast<mode>_1): Ditto.
10829 (<avx512>_vec_dup<mode>_1): Ditto.
10830 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
10833 2022-08-18 Martin Liska <mliska@suse.cz>
10835 * configure: Regenerate.
10837 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
10840 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
10841 (<u>madddi4_highpart): New.
10842 (<u>madddi4_highpart_le): New.
10844 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
10846 * gimple-range-path.cc
10847 (path_range_query::compute_exit_dependencies): Use
10848 gimple_range_ssa_names.
10850 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
10852 * config/riscv/predicates.md: Adjust runtime invariant.
10853 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
10854 (NUM_POLY_INT_COEFFS): New.
10855 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
10857 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
10858 Adjust runtime invariant.
10859 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
10861 (enum riscv_microarchitecture_type): Ditto.
10862 (riscv_valid_offset_p): Ditto.
10863 (riscv_valid_lo_sum_p): Ditto.
10864 (riscv_address_insns): Ditto.
10865 (riscv_load_store_insns): Ditto.
10866 (riscv_legitimize_move): Ditto.
10867 (riscv_binary_cost): Ditto.
10868 (riscv_rtx_costs): Ditto.
10869 (riscv_output_move): Ditto.
10870 (riscv_extend_comparands): Ditto.
10871 (riscv_flatten_aggregate_field): Ditto.
10872 (riscv_get_arg_info): Ditto.
10873 (riscv_pass_by_reference): Ditto.
10874 (riscv_elf_select_rtx_section): Ditto.
10875 (riscv_stack_align): Ditto.
10876 (riscv_compute_frame_info): Ditto.
10877 (riscv_initial_elimination_offset): Ditto.
10878 (riscv_set_return_address): Ditto.
10879 (riscv_for_each_saved_reg): Ditto.
10880 (riscv_first_stack_step): Ditto.
10881 (riscv_expand_prologue): Ditto.
10882 (riscv_expand_epilogue): Ditto.
10883 (riscv_can_use_return_insn): Ditto.
10884 (riscv_secondary_memory_needed): Ditto.
10885 (riscv_hard_regno_nregs): Ditto.
10886 (riscv_convert_vector_bits): New.
10887 (riscv_option_override): Adjust runtime invariant.
10888 (riscv_promote_function_mode): Ditto.
10889 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
10890 (BITS_PER_RISCV_VECTOR): New.
10891 (BYTES_PER_RISCV_VECTOR): New.
10892 * config/riscv/riscv.md: Adjust runtime invariant.
10894 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
10896 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
10897 Get __tls_get_addr address through got table when disable plt.
10899 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10901 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
10902 Use an "addmi" machine instruction for updating the stack pointer
10903 rather than addition/subtraction via hard register A9, if the amount
10904 of change satisfies the literal value conditions of that instruction
10905 when the CALL0 ABI is used.
10906 (xtensa_expand_epilogue): Ditto.
10907 And also inhibit the stack pointer addition of constant zero.
10909 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
10912 * config/i386/i386-features.cc
10913 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
10914 of XINT with INTVAL (XEXP (src, 1)).
10916 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
10918 * gimple-range-path.cc
10919 (path_range_query::compute_ranges_in_block): Remove
10920 set_root_oracle call.
10921 (path_range_query::compute_ranges): Pass ranger oracle to
10923 * value-relation.cc (path_oracle::reset_path): Set root oracle.
10924 * value-relation.h (path_oracle::reset_path): Add root oracle
10927 2022-08-17 Marek Polacek <polacek@redhat.com>
10930 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
10931 OPT_Wpessimizing_move and OPT_Wredundant_move.
10932 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
10934 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10935 Jakub Jelinek <jakub@redhat.com>
10938 * common.opt (static-libquadmath): New option.
10939 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
10940 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
10942 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
10944 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
10945 when filenames come out identically.
10947 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
10949 PR middle-end/106548
10950 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
10951 for 'simd' linear-step values that are variable.
10953 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
10954 Chung-Lin Tang <cltang@codesourcery.com>
10957 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
10958 instead of removed langhook.
10959 * omp-general.h (omp_mappable_type): New prototype.
10960 * omp-general.cc (omp_mappable_type): New; moved from ...
10961 * langhooks.cc (lhd_omp_mappable_type): ... here.
10962 * langhooks-def.h (lhd_omp_mappable_type,
10963 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
10964 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
10965 * langhooks.h (struct lang_hooks_for_types): Remove
10968 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
10970 * config.gcc (arm): Define with_float to hard if target name ends
10973 2022-08-17 Richard Biener <rguenther@suse.de>
10975 * tree-ssa-threadbackward.cc
10976 (back_threader_profitability): Split profitable_path_p
10977 into possibly_profitable_path_p and itself, keep state
10979 (back_threader::m_profit): Remove.
10980 (back_threader::find_paths): Likewise.
10981 (back_threader::maybe_register_path): Take profitability
10982 instance as parameter.
10983 (back_threader::find_paths_to_names): Likewise. Use
10984 possibly_profitable_path_p and avoid the path range query
10985 when the path is currently too large.
10986 (back_threader::find_paths): Fold into ...
10987 (back_threader::maybe_thread_block): ... this.
10988 (get_gimple_control_stmt): Remove.
10989 (back_threader_profitability::possibly_profitable_path_p):
10990 Split out from profitable_path_p, do early profitability
10992 (back_threader_profitability::profitable_path_p): Do final
10993 profitability path after the taken edge has been determined.
10995 2022-08-17 Xi Ruoyao <xry111@xry111.site>
10997 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
10998 (fmin<mode>3): Likewise.
11000 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
11002 * gimple-range-fold.cc (gimple_range_ssa_names): New.
11003 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
11004 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
11005 code to new routine.
11007 2022-08-16 Martin Liska <mliska@suse.cz>
11010 * doc/install.texi: Remove link to www.bullfreeware.com
11012 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
11014 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
11016 (riscv_ext_version_table): Ditto.
11017 (riscv_ext_flag_table): Ditto.
11018 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
11020 (TARGET_ZFHMIN): Ditto.
11021 (TARGET_ZFH): Ditto.
11022 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
11023 for zfh and zfhmin.
11024 (riscv_emit_float_compare): Handle HFmode.
11025 * config/riscv/riscv.md (ANYF): Add HF.
11030 (truncdfhf2): Ditto.
11031 (extendhfsf2): Ditto.
11032 (extendhfdf2): Ditto.
11033 (*movhf_hardfloat): Ditto.
11034 (*movhf_softfloat): Make sure not ZFHMIN.
11035 * config/riscv/riscv.opt (riscv_zf_subext): New.
11037 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
11039 * config/riscv/riscv-builtins.cc: include stringpool.h
11040 (riscv_float16_type_node): New.
11041 (riscv_init_builtin_types): Ditto.
11042 (riscv_init_builtins): Call riscv_init_builtin_types.
11043 * config/riscv/riscv-modes.def (HF): New.
11044 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
11045 (riscv_mangle_type): New.
11046 (riscv_scalar_mode_supported_p): Ditto.
11047 (riscv_libgcc_floating_mode_supported_p): Ditto.
11048 (riscv_excess_precision): Ditto.
11049 (riscv_floatn_mode): Ditto.
11050 (riscv_init_libfuncs): Ditto.
11051 (TARGET_MANGLE_TYPE): Ditto.
11052 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
11053 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
11054 (TARGET_INIT_LIBFUNCS): Ditto.
11055 (TARGET_C_EXCESS_PRECISION): Ditto.
11056 (TARGET_FLOATN_MODE): Ditto.
11057 * config/riscv/riscv.md (mode): Add HF.
11058 (softload): Add HF.
11059 (softstore): Ditto.
11063 (*movhf_softfloat): New.
11065 2022-08-16 Richard Biener <rguenther@suse.de>
11067 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
11068 Do not walk further if we are leaving the current loop.
11070 2022-08-16 Sergei Trofimovich <siarheit@google.com>
11073 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
11074 argument using xstrdup().
11076 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
11078 * gimple-range-path.cc (path_range_query::import_p): Rename to...
11079 (path_range_query::exit_dependency_p): ...this.
11080 (path_range_query::dump): Rename imports to exit dependencies.
11081 (path_range_query::compute_ranges_in_phis): Same.
11082 (path_range_query::compute_ranges_in_block): Same.
11083 (path_range_query::adjust_for_non_null_uses): Same.
11084 (path_range_query::compute_ranges): Same.
11085 (path_range_query::compute_phi_relations): Same.
11086 (path_range_query::add_to_imports): Rename to...
11087 (path_range_query::add_to_exit_dependencies): ...this.
11088 (path_range_query::compute_imports): Rename to...
11089 (path_range_query::compute_exit_dependencies): ...this.
11090 * gimple-range-path.h (class path_range_query): Rename imports to
11093 2022-08-16 Martin Liska <mliska@suse.cz>
11095 * value-range-storage.h (class obstack_vrange_allocator): Mark
11096 the class as final.
11097 (class ggc_vrange_allocator): Likewise.
11099 2022-08-16 Martin Liska <mliska@suse.cz>
11101 * value-range-equiv.h (class value_range_equiv): Add virtual
11103 * value-range.h: Likewise.
11105 2022-08-16 Richard Biener <rguenther@suse.de>
11107 PR middle-end/106630
11108 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
11109 narrowing conversions.
11111 2022-08-16 Martin Liska <mliska@suse.cz>
11113 * value-range-equiv.h (class value_range_equiv):
11115 2022-08-16 Martin Liska <mliska@suse.cz>
11117 * config/i386/i386-features.h (class general_scalar_chain): Add
11118 final override for a method.
11119 (class timode_scalar_chain): Likewise.
11121 2022-08-16 Richard Biener <rguenther@suse.de>
11123 * doc/invoke.texi (max-jump-thread-paths): Adjust.
11125 2022-08-16 Martin Liska <mliska@suse.cz>
11127 * opts-common.cc (jobserver_info::connect): Open fifo
11128 in non-blocking mode.
11130 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
11133 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
11134 check to preparation statements and add handlings for !TARGET_MMA.
11135 (define_expand movxo): Likewise.
11137 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
11139 PR tree-optimization/106322
11140 * tree-vect-stmts.cc (vectorizable_call): Don't allow
11141 vect_emulated_vector_p type for both vectype_in and vectype_out.
11143 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11145 * common/config/xtensa/xtensa-common.cc
11146 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
11147 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
11149 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
11151 PR tree-optimization/106621
11152 * value-range.cc (irange::set): Check for POLY_INT_CST early.
11154 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
11156 * config/i386/i386-features.cc
11157 (timode_scalar_chain::compute_convert_gain): Provide costs for
11158 shifts and rotates.
11159 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
11160 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
11161 (timode_scalar_to_vector_candidate_p): Handle all shifts and
11162 rotates by integer constants between 0 and 127.
11164 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
11166 * config/i386/i386-features.cc
11167 (timode_scalar_chain::compute_convert_gain): Provide gains for
11168 comparisons against 0/-1, including "*testti" patterns.
11170 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
11172 PR tree-optimization/64992
11173 PR tree-optimization/98956
11174 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
11175 when X is zero_one_valued_p and the shift constant C is valid.
11176 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
11177 when X is zero_one_valued_p and the shift constant C is valid.
11179 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
11180 Richard Biener <rguenther@suse.de>
11182 PR tree-optimization/71343
11183 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
11184 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
11185 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
11186 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
11188 2022-08-15 Richard Biener <rguenther@suse.de>
11190 * gimple-range-path.cc (range_on_path_entry): Just
11191 call range_on_entry.
11193 2022-08-15 Jakub Jelinek <jakub@redhat.com>
11195 PR rtl-optimization/106590
11196 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
11197 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
11198 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
11199 further conditional moves.
11201 2022-08-15 konglin1 <lingling.kong@intel.com>
11203 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
11204 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
11205 (ix86_register_bf16_builtin_type): New function.
11206 (ix86_bf16_type_node): New.
11207 (ix86_bf16_ptr_type_node): Ditto.
11208 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
11209 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
11210 (ADJUST_FLOAT_FORMAT): Ditto.
11211 * config/i386/i386.cc (classify_argument): Handle BFmode.
11212 (construct_container): Ditto.
11213 (function_value_32): Return __bf16 by %xmm0.
11214 (function_value_64): Return __bf16 by SSE register.
11215 (ix86_output_ssemov): Handle BFmode.
11216 (ix86_legitimate_constant_p): Disable BFmode constant double.
11217 (ix86_secondary_reload): Require gpr as intermediate register
11218 to store __bf16 from sse register when sse4 is not available.
11219 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
11220 (ix86_mangle_type): Add manlging for __bf16 type.
11221 (ix86_invalid_conversion): New function for target hook.
11222 (ix86_invalid_unary_op): Ditto.
11223 (ix86_invalid_binary_op): Ditto.
11224 (TARGET_INVALID_CONVERSION): New define for target hook.
11225 (TARGET_INVALID_UNARY_OP): Ditto.
11226 (TARGET_INVALID_BINARY_OP): Ditto.
11227 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
11228 * config/i386/i386.md ("mode"): Add BFmode.
11229 (MODE_SIZE): Ditto.
11230 (X87MODEFH): Ditto.
11231 (HFBF): Add new define_mode_iterator.
11232 (*pushhf_rex64): Change for BFmode.
11233 (*push<mode>_rex64): Ditto.
11235 (*push<mode>): Ditto.
11237 (hfbfconstf): Add new define_mode_attr.
11238 (*mov<mode>_internal): Add BFmode.
11240 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
11241 Uroš Bizjak <ubizjak@gmail.com>
11243 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
11244 New predicate for values between 0/1 and 255, not multiples of 8.
11245 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
11246 shifts by constant bit counts.
11247 (*ashlvti3_internal): New define_insn_and_split that lowers
11248 logical left shifts by constant bit counts, that aren't multiples
11249 of 8, before reload.
11250 (lshrv1ti3): Delay lowering of logical right shifts by constant.
11251 (*lshrv1ti3_internal): New define_insn_and_split that lowers
11252 logical right shifts by constant bit counts, that aren't multiples
11253 of 8, before reload.
11254 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
11255 constant bit counts.
11256 (*ashrv1ti3_internal): New define_insn_and_split that lowers
11257 arithmetic right shifts by constant bit counts before reload.
11258 (rotlv1ti3): Delay lowering of rotate left by constant.
11259 (*rotlv1ti3_internal): New define_insn_and_split that lowers
11260 rotate left by constant bits counts before reload.
11261 (rotrv1ti3): Delay lowering of rotate right by constant.
11262 (*rotrv1ti3_internal): New define_insn_and_split that lowers
11263 rotate right by constant bits counts before reload.
11265 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11267 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
11269 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
11271 PR middle-end/106057
11272 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
11274 (possible_polymorphic_call_targets): Use it.
11276 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
11278 * tree-ssa-loop.h: Improve comment
11280 2022-08-12 Jakub Jelinek <jakub@redhat.com>
11282 PR tree-optimization/106506
11283 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
11284 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
11286 2022-08-12 Richard Biener <rguenther@suse.de>
11288 PR tree-optimization/106593
11289 * tree-ssa-threadbackward.cc (back_threader::find_paths):
11290 If the imports from the conditional do not satisfy
11291 gimple_range_ssa_p don't try to thread anything.
11293 2022-08-12 Tamar Christina <tamar.christina@arm.com>
11296 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
11297 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
11299 2022-08-12 Tim Lange <mail@tim-lange.me>
11302 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
11304 2022-08-12 Andrew Pinski <apinski@marvell.com>
11306 * config/aarch64/aarch64.md: Remove comment
11307 about MD_INCLUDES as it is out of date and not needed.
11309 2022-08-11 Richard Biener <rguenther@suse.de>
11311 * gimple-range-path.cc (path_range_query::compute_imports):
11312 Restrict walking SSA defs to blocks inside the path. Track
11313 the same operands as range_def_chain::get_def_chain does.
11315 2022-08-11 Richard Biener <rguenther@suse.de>
11317 PR tree-optimization/106514
11318 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
11319 Compute and unwind both m_imports and interesting on the fly during
11321 (back_threader::find_paths): Compute the original m_imports
11322 from just the SSA uses of the exit conditional. Drop
11323 handling single_succ_to_potentially_threadable_block.
11324 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
11325 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
11327 2022-08-11 Richard Biener <rguenther@suse.de>
11329 * gimple-range-path.h (path_range_query::compute_imports):
11330 Take path as argument, not the exit block.
11331 * gimple-range-path.cc (path_range_query::compute_imports):
11332 Likewise, and adjust, avoiding possibly stale m_path.
11333 (path_range_query::compute_outgoing_relations): Register
11334 relations for all conditionals.
11335 * tree-ssa-threadbackward.cc (back_threader::find_paths):
11338 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
11340 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
11341 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
11342 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
11344 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
11346 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
11347 Remove function declaration.
11349 2022-08-10 Richard Biener <rguenther@suse.de>
11351 PR tree-optimization/106513
11352 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
11355 2022-08-10 Martin Liska <mliska@suse.cz>
11358 * opts-jobserver.h (struct jobserver_info): Add pipefd.
11359 (jobserver_info::connect): New.
11360 (jobserver_info::disconnect): Likewise.
11361 (jobserver_info::get_token): Likewise.
11362 (jobserver_info::return_token): Likewise.
11363 * opts-common.cc: Implement the new functions.
11365 2022-08-10 Martin Liska <mliska@suse.cz>
11367 * opts-jobserver.h: Add one member.
11368 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
11369 format of --jobserver-auth.
11371 2022-08-10 Martin Liska <mliska@suse.cz>
11373 * gcc.cc (driver::detect_jobserver): Remove and move to
11375 * lto-wrapper.cc (jobserver_active_p): Likewise.
11376 (run_gcc): Likewise.
11377 * opts-jobserver.h: New file.
11378 * opts-common.cc (jobserver_info::jobserver_info): New function.
11380 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
11382 * config/i386/i386-features.cc (scalar_chain::convert_compare):
11383 Create new pseudos only when/if needed. Add support for TEST,
11384 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
11385 When broadcasting V2DImode and V4SImode use new pseudo register.
11386 (timode_scalar_chain::convert_op): Do nothing if operand is
11387 already V1TImode. Avoid generating useless SUBREG conversions,
11388 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
11389 in addition to CONST_INT by using CONST_SCALAR_INT_P.
11390 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
11391 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
11392 pattern as an STV candidate.
11393 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
11394 operands in binary logic operations.
11395 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
11396 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
11397 as regular PTEST, i.e. cost->sse_op.
11398 * config/i386/i386.md (*testti_doubleword): New pre-reload
11399 define_insn_and_split that recognizes comparison of TI mode AND
11401 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
11402 define_insn_and_split that recognizes UNSPEC_PTEST of identical
11405 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
11406 Richard Biener <rguenther@suse.de>
11408 PR middle-end/21137
11409 PR tree-optimization/98954
11410 * fold-const.cc (fold_binary_loc): Remove optimizations to
11411 optimize ((X >> C1) & C2) ==/!= 0.
11412 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
11413 check, and handle all values of INTEGER_CSTs @2 and @3.
11414 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
11415 checks, and handle all values of INTEGER_CSTs @2 and @3.
11417 2022-08-09 David Malcolm <dmalcolm@redhat.com>
11419 * doc/invoke.texi (Static Analyzer Options): Add notes on which
11420 functions the analyzer has hardcoded knowledge of.
11422 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
11424 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
11425 (num_arg_regs): Allow vector arguments.
11426 (gcn_function_arg): Likewise.
11427 (gcn_function_arg_advance): Likewise.
11428 (gcn_arg_partial_bytes): Likewise.
11429 (gcn_return_in_memory): Likewise.
11430 (gcn_expand_epilogue): Get return value from v8.
11431 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
11432 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
11433 (FIRST_VPARM_REG): New.
11434 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
11435 (struct gcn_args): Add vnum field.
11436 (LIBCALL_VALUE): All vector return values.
11437 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
11438 (gcn_call_value_indirect): Likewise.
11440 2022-08-09 Richard Biener <rguenther@suse.de>
11442 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
11443 directly. Avoid update_ssa when in SSA form.
11444 (expand_omp_atomic_store): Likewise.
11445 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
11447 (expand_omp_atomic_pipeline): Likewise.
11448 (expand_omp_atomic_mutex): Likewise.
11449 * tree-parloops.cc (gen_parallel_loop): Use
11450 TODO_update_ssa_no_phi after loop_version.
11452 2022-08-09 Richard Biener <rguenther@suse.de>
11454 * doc/invoke.texi (max-fsm-thread-length): Remove.
11455 * params.opt (max-fsm-thread-length): Likewise.
11456 * tree-ssa-threadbackward.cc
11457 (back_threader_profitability::profitable_path_p): Do not
11458 check max-fsm-thread-length.
11460 2022-08-09 Richard Biener <rguenther@suse.de>
11462 PR tree-optimization/106514
11463 * params.opt (max-jump-thread-paths): New.
11464 * doc/invoke.texi (max-jump-thread-paths): Document.
11465 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
11466 Honor max-jump-thread-paths, take overall_path argument.
11467 (back_threader::find_paths): Pass 1 as initial overall_path.
11469 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
11471 PR middle-end/106492
11472 * omp-low.cc (lower_rec_input_clauses): Add missing folding
11473 to data type of linear-clause list item.
11475 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
11477 PR tree-optimization/106556
11478 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
11479 type of the cond_expr operands being evaluted.
11481 2022-08-08 Tom Honermann <tom@honermann.net>
11483 * ginclude/stdatomic.h (atomic_char8_t,
11484 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
11486 2022-08-08 Andrew Pinski <apinski@marvell.com>
11488 PR middle-end/103645
11489 * gimplify.cc (gimplify_init_constructor): Don't build/add
11490 gimple assignment of an empty type.
11492 2022-08-08 Richard Biener <rguenther@suse.de>
11496 * dwarf2out.cc (dwarf2out_register_external_die): Restore
11498 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
11499 to input DECL_INITIAL, avoiding to commit drefs.
11501 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
11503 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
11504 for x86_64_hilo_general_operand to general operand. Call
11505 force_reg on parts that are not x86_64_immediate_operand.
11507 2022-08-05 David Malcolm <dmalcolm@redhat.com>
11510 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
11512 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
11514 * expmed.cc (emit_store_flag_1): Move code to expand double word
11515 equality and inequality against zero or -1, using word operations,
11516 to after trying to use the backend's cstore<mode>4 optab/expander.
11518 2022-08-05 Tamar Christina <tamar.christina@arm.com>
11520 PR middle-end/106534
11521 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
11522 value_replacement and store_elim from diamonds.
11524 2022-08-05 Richard Biener <rguenther@suse.de>
11526 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
11527 Check whether the registry register_path rejected the path.
11528 (back_threader_registry::register_path): Return whether
11529 register_jump_thread succeeded.
11531 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
11533 PR tree-optimization/106514
11534 * value-range.cc (unsupported_range::unsupported_range): Move...
11535 * value-range.h (unsupported_range::unsupported_range): ...here.
11536 (unsupported_range::set_undefined): New.
11538 2022-08-05 Richard Biener <rguenther@suse.de>
11540 PR tree-optimization/106533
11541 * tree-loop-distribution.cc (loop_distribution::execute): Continue
11542 analyzing the inner loops when find_seed_stmts_for_distribution
11545 2022-08-05 Andrew Pinski <apinski@marvell.com>
11547 * config/riscv/predicates.md (splittable_const_int_operand):
11548 Remove the check for TARGET_64BIT for single bit const values.
11550 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
11552 PR tree-optimization/106514
11553 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
11554 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
11556 2022-08-04 Tamar Christina <tamar.christina@arm.com>
11558 * match.pd: New bit_not rule.
11560 2022-08-04 Tamar Christina <tamar.christina@arm.com>
11562 PR middle-end/106519
11563 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
11566 2022-08-04 Sam Feifer <sfeifer@redhat.com>
11568 PR tree-optimization/106243
11569 * match.pd (-x & 1): New simplification.
11571 2022-08-04 Richard Biener <rguenther@suse.de>
11573 PR tree-optimization/106521
11574 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
11575 CFG cleanup manually before rewriting into LC SSA.
11577 2022-08-04 Richard Biener <rguenther@suse.de>
11579 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
11580 (back_threader::resolve_phi): Likewise.
11581 (back_threader::find_paths_to_names): Rewrite greedy search.
11583 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
11585 * config/s390/vector.md (V_HW_FT): New iterator.
11586 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
11589 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
11591 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
11592 setting -mblock-ops-vector-pair.
11594 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
11596 PR tree-optimization/106514
11597 * value-relation.cc (path_oracle::killing_def) Do not walk the
11598 equivalence set clearing bits.
11600 2022-08-03 Tamar Christina <tamar.christina@arm.com>
11602 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
11603 sequence of a three-way conditional.
11604 (replace_phi_edge_with_variable): Support diamonds.
11605 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
11607 (strip_bit_not, invert_minmax_code): New.
11609 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
11611 PR rtl-optimization/106187
11612 * alias.h (mems_same_for_tbaa_p): Declare.
11613 * alias.cc (mems_same_for_tbaa_p): New function.
11614 * dse.cc (record_store): Use it instead of open-coding
11616 * cselib.h (cselib_redundant_set_p): Declare.
11617 * cselib.cc: Include alias.h
11618 (cselib_redundant_set_p): New function.
11619 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
11620 of rtx_equal_for_cselib_p.
11621 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
11622 (reload_cse_noop_set_p): Delete.
11624 2022-08-03 Martin Liska <mliska@suse.cz>
11626 * doc/gcov-dump.texi: Document the new option.
11627 * gcov-dump.cc (main): Parse the new option.
11628 (print_usage): Show the option.
11629 (tag_counters): Sort key:value pairs of TOP N counter.
11631 2022-08-03 Martin Liska <mliska@suse.cz>
11633 * profile.cc (compute_branch_probabilities): Do not collect
11634 stats unless TDF_DETAILS.
11636 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
11637 Uroš Bizjak <ubizjak@gmail.com>
11640 * config/i386/i386.md (peephole2): New peephole2 to convert
11641 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
11642 when optimizing for minimal size with -Oz.
11644 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
11646 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
11647 to split comparisons against -1 using AND and CMP -1 instructions.
11649 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
11651 * config/i386/i386-features.cc (compute_convert_gain): Add gain
11652 for converting suitable TImode shift to a V1TImode shift.
11653 (timode_scalar_chain::convert_insn): Add support for converting
11654 suitable ASHIFT and LSHIFTRT.
11655 (timode_scalar_to_vector_candidate_p): Consider logical shifts
11656 by integer constants that are multiples of 8 to be candidates.
11658 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
11659 Segher Boessenkool <segher@kernel.crashing.org>
11660 Richard Sandiford <richard.sandiford@arm.com>
11662 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
11663 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
11664 that are all positive to complement the existing FFS and
11665 idempotent ABS simplifications.
11666 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
11667 val_signbit_known_clear_p is true of the operand.
11668 Simplify sign extensions of SUBREG truncations of operands
11669 that are already suitably (zero) extended.
11670 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
11671 of operands that are already suitably zero extended.
11673 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
11675 PR tree-optimization/106510
11676 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
11677 Check for unsupported statements early.
11679 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
11681 PR tree-optimization/106474
11682 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
11683 range of equivalences that may contribute to the range.
11685 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
11687 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
11688 encoding bit in BTF.
11690 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
11692 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
11694 (tree_lower_bound): New.
11695 (tree_upper_bound): New.
11696 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
11698 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
11699 argument to vrange.
11701 2022-08-02 Richard Biener <rguenther@suse.de>
11703 * tree-ssa-threadbackward.cc
11704 (back_threader_profitability::profitable_path_p): Apply
11705 size constraints to all paths again.
11707 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
11709 * range-op-float.cc (finite_operands_p): New.
11710 (frelop_early_resolve): New.
11711 (default_frelop_fold_range): New.
11712 (class foperator_equal): New.
11713 (class foperator_not_equal): New.
11714 (class foperator_lt): New.
11715 (class foperator_le): New.
11716 (class foperator_gt): New.
11717 (class foperator_ge): New.
11718 (class foperator_unordered): New.
11719 (class foperator_ordered): New.
11720 (class foperator_relop_unknown): New.
11721 (floating_op_table::floating_op_table): Add above classes to
11723 * value-range.h (frange::supports_p): Enable.
11725 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
11727 * tree-core.h (struct tree_ssa_name): Add frange_info and
11728 reshuffle the rest.
11729 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
11731 (vrange_storage::set_vrange): Same.
11732 (vrange_storage::get_vrange): Same.
11733 (vrange_storage::fits_p): Same.
11734 (frange_storage_slot::alloc_slot): New.
11735 (frange_storage_slot::set_frange): New.
11736 (frange_storage_slot::get_frange): New.
11737 (frange_storage_slot::fits_p): New.
11738 * value-range-storage.h (class frange_storage_slot): New.
11740 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
11742 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
11743 query to integrals.
11745 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
11747 * value-range.cc (frange::set): Initialize m_props and cleanup.
11749 2022-08-02 Richard Biener <rguenther@suse.de>
11751 PR tree-optimization/106497
11752 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
11753 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
11755 2022-08-02 Martin Liska <mliska@suse.cz>
11757 * profile.cc (compute_branch_probabilities): Dump details only
11759 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
11760 TDF_ADDRESS is used, it makes comparison harder.
11762 2022-08-02 Richard Biener <rguenther@suse.de>
11764 PR tree-optimization/106498
11765 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
11767 (expand_omp_for): Or here.
11768 (execute_expand_omp): Instead schedule it here together
11769 with CFG cleanup via TODO.
11771 2022-08-02 Richard Biener <rguenther@suse.de>
11774 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
11777 2022-08-02 Richard Biener <rguenther@suse.de>
11779 PR tree-optimization/106495
11780 * tree-ssa-threadbackward.cc
11781 (back_threader_profitability::profitable_path_p): If known_edge
11782 is probably never executed avoid threading.
11784 2022-08-01 David Malcolm <dmalcolm@redhat.com>
11786 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
11789 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
11790 Uroš Bizjak <ubizjak@gmail.com>
11793 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
11794 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
11797 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
11800 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
11801 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
11803 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
11806 * ctfc.h (struct ctf_dtdef): Add field linkage.
11807 * ctfc.cc (ctf_add_function): Set ctti_linkage.
11808 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
11809 function types and subprograms.
11810 * btfout.cc (btf_asm_func_type): Emit linkage information for the
11812 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
11815 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
11816 Jakub Jelinek <jakub@redhat.com>
11818 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
11821 2022-08-01 Sam Feifer <sfeifer@redhat.com>
11823 PR tree-optimization/104992
11824 * match.pd (x / y * y == x): New simplification.
11826 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
11828 * value-range.cc (tree_compare): New.
11829 (frange::set): Make more general.
11830 (frange::normalize_kind): Cleanup and return bool.
11831 (frange::union_): Use normalize_kind return value.
11832 (frange::intersect): Same.
11833 (frange::verify_range): Remove unnecessary else.
11834 * value-range.h (vrp_val_max): Move before frange class.
11835 (vrp_val_min): Same.
11836 (frange::frange): Remove set to m_type.
11838 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
11840 * value-range.cc (vrange::supports_type_p): Use const_tree.
11841 (irange::supports_type_p): Same.
11842 (frange::supports_type_p): Same.
11843 * value-range.h (Value_Range::supports_type_p): Same.
11844 (irange::supports_p): Same.
11846 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
11848 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
11849 query SCEV for integers.
11850 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
11853 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
11855 * config/i386/i386.md (define_expand <any_rotate>ti3): For
11856 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
11857 (rot[lr]64ti2_doubleword): New post-reload splitter.
11859 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
11860 H.J. Lu <hjl.tools@gmail.com>
11863 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
11864 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
11865 (timode_remove_non_convertible_regs): Update comment.
11866 Call timode_check_non_convertible_reg on all TImode register
11867 DEFs and USEs in each instruction.
11869 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11871 * config/xtensa/xtensa.md: Change hard register number used in
11872 the split patterns for indirect sibling call fixups from 10 to 11,
11873 the last free one for the CALL0 ABI.
11875 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11877 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
11878 Add new case for IF_THEN_ELSE.
11880 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
11882 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
11883 (<expander><mode>3<exec>): Use V_INT_noHI.
11884 (v<expander><mode>3<exec>): Likewise.
11886 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
11888 * config/gcn/gcn.md (one_cmpldi2): New.
11890 2022-07-29 Richard Biener <rguenther@suse.de>
11892 PR tree-optimization/105679
11893 * tree-ssa-threadbackward.cc
11894 (back_threader_profitability::profitable_path_p): Avoid threading
11895 when the entry edge is probably never executed.
11897 2022-07-29 Richard Biener <rguenther@suse.de>
11899 PR tree-optimization/106422
11900 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
11901 Check whether we can copy thread blocks and cancel the thread if not.
11903 2022-07-29 Jakub Jelinek <jakub@redhat.com>
11905 PR middle-end/106449
11906 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
11907 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
11908 or n2 before regimplifying it inside of a condition.
11910 2022-07-29 Jakub Jelinek <jakub@redhat.com>
11912 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
11913 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
11914 expand_omp_simd): Don't fold_convert second argument to
11915 fold_build_pointer_plus to sizetype.
11917 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
11919 * config.in: Regenerate.
11920 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
11921 Select the value of the macro definition according to whether
11922 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
11923 * configure: Regenerate.
11924 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
11926 2022-07-29 Richard Biener <rguenther@suse.de>
11928 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
11929 Use CONVERT_EXPR_CODE_P.
11931 2022-07-29 Richard Biener <rguenther@suse.de>
11933 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
11934 get_vectype_for_scalar_type instead of
11935 vect_get_vector_types_for_stmt.
11937 2022-07-28 David Malcolm <dmalcolm@redhat.com>
11940 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
11942 2022-07-28 David Malcolm <dmalcolm@redhat.com>
11944 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
11946 (Static Analyzer Options): Likewise. Add urefs for all of the
11947 warnings that have associated CWE identifiers.
11949 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
11951 * doc/implement-c.texi (Floating point implementation): Mention
11952 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
11953 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
11954 implication in the descriptions of `-fno-trapping-math' and
11957 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
11959 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
11960 (QUIET_PATTERN): New int attribute.
11961 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
11962 RTL insns entirely within the preparation statements.
11963 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
11964 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
11966 (*riscv_fsnvsnan<mode>2): New insn.
11968 2022-07-28 Richard Biener <rguenther@suse.de>
11970 PR middle-end/106457
11971 * tree.cc (array_at_struct_end_p): Handle array objects
11974 2022-07-28 Jakub Jelinek <jakub@redhat.com>
11976 PR tree-optimization/106099
11977 * internal-fn.def (TRAP): New internal fn.
11978 * internal-fn.h (expand_TRAP): Declare.
11979 * internal-fn.cc (expand_TRAP): Define.
11980 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
11981 use internal fn rather than builtin.
11983 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
11985 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
11987 2022-07-27 WANG Xuerui <i@xen0n.name>
11989 * doc/invoke.texi: Document -m[no-]explicit-relocs for
11992 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
11994 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
11995 duplicate backslashes.
11997 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
11999 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
12002 2022-07-27 Jakub Jelinek <jakub@redhat.com>
12005 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
12006 output asm thunks for -dx.
12008 2022-07-27 Jakub Jelinek <jakub@redhat.com>
12010 PR middle-end/106332
12011 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
12012 that candidates is not an empty vector.
12014 2022-07-27 Xi Ruoyao <xry111@xry111.site>
12016 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
12017 assembler supports explicit relocation for LoongArch.
12018 * configure: Regenerate.
12019 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
12020 Define to 0 if not defined.
12021 * config/loongarch/genopts/loongarch.opt.in
12022 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
12023 * config/loongarch/loongarch.opt: Regenerate.
12025 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
12028 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
12030 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
12032 * config/loongarch/loongarch-opts.cc: Modify the output message string
12035 2022-07-26 Martin Liska <mliska@suse.cz>
12037 * doc/tm.texi.in: Fix placement of defmac.
12038 * doc/tm.texi: Copy.
12040 2022-07-26 Martin Liska <mliska@suse.cz>
12042 * doc/tm.texi.in: Fix cross @defmac and @hook.
12043 * doc/tm.texi: Copy.
12045 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
12047 PR tree-optimization/106444
12048 * value-range-pretty-print.cc (vrange_printer::visit): Handle
12050 (vrange_printer::print_irange_bound): Work on wide_int's.
12051 * value-range-pretty-print.h (print_irange_bound): Same.
12052 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
12054 2022-07-26 Richard Biener <rguenther@suse.de>
12056 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
12057 points to a constant continue checking ptr2.
12059 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
12061 * config/aarch64/aarch64-builtins.cc
12062 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
12063 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
12064 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
12065 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
12066 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
12067 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
12068 (MODE_q_p128): Define macro to map to corresponding mode name.
12069 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
12070 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
12071 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
12072 corresponding qualifier name.
12073 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
12074 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
12075 functions for the above mappings
12076 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
12077 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
12078 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
12079 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
12080 for all vreinterpret intrinsics
12081 (enum aarch64_builtins): Add vreinterpret function codes
12082 (aarch64_init_simd_intrinsics): New
12083 (handle_arm_neon_h): Improved comment.
12084 (aarch64_general_fold_builtin): Fold vreinterpret calls
12085 * config/aarch64/arm_neon.h
12086 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
12087 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
12088 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
12089 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
12090 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
12091 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
12092 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
12093 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
12094 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
12095 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
12096 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
12097 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
12098 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
12099 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
12100 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
12101 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
12102 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
12103 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
12104 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
12105 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
12106 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
12107 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
12108 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
12109 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
12110 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
12111 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
12112 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
12113 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
12114 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
12115 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
12116 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
12117 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
12118 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
12119 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
12120 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
12121 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
12122 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
12123 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
12124 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
12125 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
12126 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
12127 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
12128 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
12129 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
12130 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
12131 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
12132 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
12133 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
12134 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
12135 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
12136 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
12137 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
12138 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
12139 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
12140 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
12141 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
12142 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
12143 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
12144 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
12145 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
12146 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
12147 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
12148 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
12149 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
12150 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
12151 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
12152 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
12153 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
12154 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
12155 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
12156 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
12157 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
12158 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
12159 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
12160 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
12161 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
12162 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
12163 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
12164 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
12165 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
12166 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
12167 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
12168 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
12169 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
12170 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
12171 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
12172 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
12173 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
12174 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
12175 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
12176 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
12177 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
12178 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
12179 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
12180 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
12181 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
12182 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
12183 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
12184 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
12185 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
12186 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
12187 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
12188 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
12189 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
12190 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
12191 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
12192 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
12193 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
12194 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
12195 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
12196 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
12197 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
12198 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
12199 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
12200 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
12201 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
12202 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
12203 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
12204 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
12205 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
12206 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
12207 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
12208 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
12209 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
12210 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
12211 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
12212 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
12213 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
12214 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
12215 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
12216 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
12217 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
12218 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
12219 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
12220 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
12221 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
12222 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
12223 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
12224 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
12225 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
12226 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
12227 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
12228 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
12229 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
12230 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
12231 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
12232 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
12233 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
12234 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
12235 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
12236 (vreinterpretq_p128_bf16): Delete
12238 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
12240 * config/aarch64/aarch64-builtins.cc
12241 (aarch64_simd_builtin_std_type): Rename to...
12242 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
12243 (aarch64_lookup_simd_builtin_type): Rename to...
12244 (aarch64_simd_builtin_type): ...this. Add const/pointer
12245 support, and extract table lookup to...
12246 (aarch64_lookup_simd_type_in_table): ...this function.
12247 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
12248 (aarch64_init_fcmla_laneq_builtins): Ditto.
12249 (aarch64_init_simd_builtin_functions): Ditto.
12251 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
12253 * config/aarch64/aarch64-builtins.cc
12254 (aarch64_general_gimple_fold_builtin): Add combine.
12256 2022-07-26 Richard Biener <rguenther@suse.de>
12258 PR tree-optimization/106189
12259 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
12260 Divide using offset_ints.
12262 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
12264 * common/config/loongarch/loongarch-common.cc:
12265 Enable '-fsection-anchors' when O1 and more advanced optimization.
12266 * config/loongarch/genopts/loongarch.opt.in: Add new option
12267 '-mexplicit-relocs', and enable by default.
12268 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
12269 Delete function declaration.
12270 (loongarch_split_move_insn): Delete function declaration.
12271 (loongarch_split_symbol_type): Add function declaration.
12272 * config/loongarch/loongarch.cc (enum loongarch_address_type):
12273 Add new address type 'ADDRESS_LO_SUM'.
12274 (loongarch_classify_symbolic_expression): New function definitions.
12275 Classify the base of symbolic expression X, given that X appears in
12277 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
12278 (loongarch_split_symbol_type): New function definitions.
12279 Determines whether the symbol load should be split into two instructions.
12280 (loongarch_valid_lo_sum_p): New function definitions.
12281 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
12282 symbol has type SYMBOL_TYPE.
12283 (loongarch_classify_address): Add handling of 'LO_SUM'.
12284 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
12285 (loongarch_signed_immediate_p): Sort code.
12286 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
12287 (loongarch_const_insns): Add handling of 'HIGH'.
12288 (loongarch_split_move_insn_p): Add the static attribute to the function.
12289 (loongarch_emit_set): New function definitions.
12290 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
12291 (loongarch_legitimize_tls_address): Add symbol handling when defining the
12292 TARGET_EXPLICIT_RELOCS macro.
12293 (loongarch_split_symbol): New function definitions. Split symbol.
12294 (loongarch_legitimize_address): Add codes see if the address can split into a high part
12296 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
12298 (loongarch_split_move_insn): Delete function definitions.
12299 (loongarch_output_move): Add support for HIGH and LO_SUM.
12300 (loongarch_print_operand_reloc): New function definitions.
12301 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
12302 (loongarch_memmodel_needs_release_fence): Sort code.
12303 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
12305 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
12306 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
12307 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
12308 * config/loongarch/loongarch.md (movti): Delete the template.
12309 (*movti): Delete the template.
12310 (movtf): Delete the template.
12311 (*movtf): Delete the template.
12312 (*low<mode>): New template of normal symbol low address.
12313 (@tls_low<mode>): New template of tls symbol low address.
12314 (@ld_from_got<mode>): New template load address from got table.
12315 (@ori_l_lo12<mode>): New template.
12316 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
12317 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
12319 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
12321 * config/loongarch/constraints.md (a): Delete the constraint.
12322 (b): A constant call not local address.
12323 (h): Delete the constraint.
12324 (t): Delete the constraint.
12325 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
12326 Remove cModel type support other than normal.
12327 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
12328 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
12329 (loongarch_split_symbol): Delete useless function declarations.
12330 (loongarch_split_symbol_type): Delete useless function declarations.
12331 * config/loongarch/loongarch.cc (enum loongarch_address_type):
12332 Delete unnecessary comment information.
12333 (loongarch_symbol_binds_local_p): Modified the judgment order of label
12335 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
12336 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
12337 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
12338 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
12339 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
12340 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
12341 and 'SYMBOL_PCREL'.
12342 (loongarch_address_insns): Sort code.
12343 (loongarch_12bit_offset_address_p): Sort code.
12344 (loongarch_14bit_shifted_offset_address_p): Sort code.
12345 (loongarch_call_tls_get_addr): Sort code.
12346 (loongarch_legitimize_tls_address): Sort code.
12347 (loongarch_output_move): Remove schema support for cmodel other than normal.
12348 (loongarch_memmodel_needs_release_fence): Sort code.
12349 (loongarch_print_operand): Sort code.
12350 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
12351 Rename to LARCH_12BIT_OFFSET_P.
12352 (LARCH_12BIT_OFFSET_P): New macro.
12353 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
12354 support for cmodel other than normal.
12355 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
12356 (is_const_call_plt_symbol): Delete this predicate.
12357 (is_const_call_global_noplt_symbol): Delete this predicate.
12358 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
12361 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
12364 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
12365 REG_EH_REGION when replacing one store insn having it.
12366 (replace_swapped_aligned_load): Likewise.
12368 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
12370 * Makefile.in (OBJS): Add range-op-float.o.
12371 * range-op.cc (get_float_handler): New.
12372 (range_op_handler::range_op_handler): Save code and type for
12374 (range_op_handler::oeprator bool): Move from header file, and
12375 add support for floats.
12376 (range_op_handler::fold_range): Add support for floats.
12377 (range_op_handler::op1_range): Same.
12378 (range_op_handler::op2_range): Same.
12379 (range_op_handler::lhs_op1_relation): Same.
12380 (range_op_handler::lhs_op2_relation): Same.
12381 (range_op_handler::op1_op2_relation): Same.
12382 * range-op.h (class range_operator_float): New.
12383 (class floating_op_table): New.
12384 * value-query.cc (range_query::get_tree_range): Add case for
12386 * range-op-float.cc: New file.
12388 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
12389 Uroš Bizjak <ubizjak@gmail.com>
12392 * config/i386/i386-expand.cc (split_double_concat): A new helper
12393 function for setting a double word value from two word values.
12394 * config/i386/i386-protos.h (split_double_concat): Prototype here.
12395 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
12396 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
12397 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
12398 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
12399 previous define_split for implementing DST = (HI<<32)|LO as
12400 pair of move instructions, setting lopart and hipart.
12401 (*concat<mode><dwi>3_2): Likewise.
12402 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
12403 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
12405 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
12407 PR middle-end/106432
12408 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
12409 when the result range type is unsupported.
12411 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
12413 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
12415 2022-07-25 Richard Biener <rguenther@suse.de>
12417 PR middle-end/106414
12418 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
12421 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
12423 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
12424 (@aarch64_rbit<mode>): ... to this and change it in...
12425 (ffs<mode>2,ctz<mode>2): ... here.
12426 (@aarch64_rev16<mode>): New.
12427 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
12428 Define the following enum AARCH64_REV16, AARCH64_REV16L,
12429 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
12430 (aarch64_init_data_intrinsics): New.
12431 (aarch64_general_init_builtins): Add call to
12432 aarch64_init_data_intrinsics.
12433 (aarch64_expand_builtin_data_intrinsic): New.
12434 (aarch64_general_expand_builtin): Add call to
12435 aarch64_expand_builtin_data_intrinsic.
12436 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
12437 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
12438 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
12440 2022-07-25 Martin Liska <mliska@suse.cz>
12442 * doc/extend.texi: Remove trailing whitespaces.
12443 * doc/invoke.texi: Likewise.
12445 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
12447 * value-range-pretty-print.cc (vrange_printer::visit): New.
12448 (vrange_printer::print_frange_prop): New.
12449 * value-range-pretty-print.h (class vrange_printer): Add visit and
12451 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
12452 (vrange_allocator::alloc_frange): New.
12453 * value-range.cc (vrange::operator=): Handle frange.
12454 (vrange::operator==): Same.
12455 (frange::accept): New.
12456 (frange::set): New.
12457 (frange::normalize_kind): New.
12458 (frange::union_): New.
12459 (frange::intersect): New.
12460 (frange::operator=): New.
12461 (frange::operator==): New.
12462 (frange::supports_type_p): New.
12463 (frange::verify_range): New.
12464 * value-range.h (enum value_range_discriminator): Handle frange.
12465 (class fp_prop): New.
12466 (FP_PROP_ACCESSOR): New.
12467 (class frange_props): New.
12468 (FRANGE_PROP_ACCESSOR): New.
12469 (class frange): New.
12470 (Value_Range::init): Handle frange.
12471 (Value_Range::operator=): Same.
12472 (Value_Range::supports_type_p): Same.
12473 (frange_props::operator==): New.
12474 (frange_props::union_): New.
12475 (frange_props::intersect): New
12476 (frange::frange): New.
12477 (frange::type): New.
12478 (frange::set_varying): New.
12479 (frange::set_undefined): New.
12481 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
12482 Kewen Lin <linkw@linux.ibm.com>
12484 PR testsuite/106345
12485 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
12486 to filter out all -mtune options.
12488 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
12490 * value-query.cc (range_query::get_value_range): Add assert.
12491 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
12492 on unsupported types in vr_values.
12493 (simplify_using_ranges::simplify): Same.
12495 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
12497 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
12499 * value-query.cc (get_ssa_name_range_info): Remove precision check.
12501 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
12503 * value-relation.cc (value_relation::set_relation): Remove assert.
12504 (path_oracle::register_relation): Exit when trying to register
12505 same SSA name relations.
12507 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
12509 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
12510 (ranger_cache::range_from_dom): Same.
12512 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
12514 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
12515 H.J. Lu <hjl.tools@gmail.com>
12519 * config/i386/i386-features.cc (make_vector_copies): Move from
12520 general_scalar_chain to scalar_chain.
12521 (convert_reg): Likewise.
12522 (convert_insn_common): New scalar_chain method split out from
12523 general_scalar_chain convert_insn.
12524 (convert_registers): Move from general_scalar_chain to
12526 (scalar_chain::convert): Call convert_insn_common before calling
12528 (timode_remove_non_convertible_regs): Iterate until there are
12529 no further changes to the candidates.
12530 * config/i386/i386-features.h (scalar_chain::hash_map): Move
12531 from general_scalar_chain.
12532 (scalar_chain::convert_reg): Likewise.
12533 (scalar_chain::convert_insn_common): New shared method.
12534 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
12535 (scalar_chain::convert_registers): Likewise. No longer virtual.
12536 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
12537 (general_scalar_chain::convert_reg): Likewise.
12538 (general_scalar_chain::make_vector_copies): Likewise.
12539 (general_scalar_chain::convert_registers): Delete virtual method.
12540 (timode_scalar_chain::convert_registers): Likewise.
12542 2022-07-23 Immad Mir <mirimmad@outlook.com>
12544 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
12545 "Common Function Attributes" section.
12546 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
12547 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
12548 warnings may be emitted through usage of three function attributes used
12549 for static analysis of file descriptors namely fd_arg, fd_arg_read and
12552 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12554 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
12555 Add a new insn_and_split pattern, and a few split patterns for
12558 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
12560 * graphds.cc (graphds_scc): Fix algorithm attribution.
12562 2022-07-22 Richard Biener <rguenther@suse.de>
12564 PR tree-optimization/106403
12565 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
12566 value valueization after check for IFN_MASKED_STORE or
12569 2022-07-22 Richard Biener <rguenther@suse.de>
12571 PR tree-optimization/106397
12572 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
12573 not update SSA form here.
12574 (mark_nontemporal_stores): Return whether we marked any
12575 non-temporal stores and inserted mfence.
12576 (loop_prefetch_arrays): Note when we need to update SSA.
12577 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
12578 at the end of the pass.
12580 2022-07-22 Richard Biener <rguenther@suse.de>
12582 PR tree-optimization/106387
12583 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
12584 if ptr is not an SSA name.
12586 2022-07-22 liuhongt <hongtao.liu@intel.com>
12589 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
12590 original "<code><mode>3".
12591 (*<code><mode>3): New define_insn, it's original
12592 "<code><mode>3" be extended to handle memory and immediate
12593 operand with ix86_binary_operator_ok. Also adjust define_split
12595 (mmxinsnmode): New mode attribute.
12596 (*mov<mode>_imm): Refactor with mmxinsnmode.
12597 * config/i386/predicates.md
12598 (register_or_x86_64_const_vector_operand): New predicate.
12600 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
12602 * config/rs6000/altivec.md:
12603 (vstrir_code_<mode>): Rename to...
12604 (vstrir_direct_<mode>): ... this.
12605 (vstrir_p_code_<mode>): Rename to...
12606 (vstrir_p_direct_<mode>): ... this.
12607 (vstril_code_<mode>): Rename to...
12608 (vstril_direct_<mode>): ... this.
12609 (vstril_p_code_<mode>): Rename to...
12610 (vstril_p_direct_<mode>): ... this.
12612 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
12614 * config/rs6000/rs6000-c.cc: Update comments.
12615 (rs6000_target_modify_macros): Remove bu_mask references.
12616 (rs6000_define_or_undefine_macro): Replace bu_mask reference
12617 with a rs6000_cpu value check.
12618 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
12619 parameter from call to rs6000_target_modify_macros.
12620 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
12621 rs6000_target_modify_macros_ptr): Remove parameter from extern
12623 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
12624 parameter from prototype, update calls to this function.
12625 (rs6000_print_builtin_options): Remove prototype, call and function.
12626 (rs6000_builtin_mask_calculate): Remove function.
12627 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
12628 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
12629 and builtin_mask debug output.
12630 (rs6000_builtin_mask_names): Remove.
12631 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
12632 diff_bumask references; Update calls to rs6000_target_modify_ptr.
12633 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
12635 2022-07-21 Sam Feifer <sfeifer@redhat.com>
12637 PR tree-optimization/94920
12638 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
12639 (x <= 0 ? -x : 0): New simplification.
12641 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12644 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12646 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
12647 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
12649 2022-07-21 Richard Biener <rguenther@suse.de>
12651 PR tree-optimization/106379
12652 * match.pd (~(a ^ b) -> a == b): New pattern.
12654 2022-07-21 Richard Biener <rguenther@suse.de>
12656 PR tree-optimization/106378
12657 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
12658 LEN_STORE, add mode to initialize a may-def and handle
12659 MASK_STORE that way.
12660 (dse_optimize_stmt): Query may-defs. Handle internal
12661 functions LEN_STORE and MASK_STORE similar to how
12662 we handle memory builtins but without byte tracking.
12664 2022-07-21 Richard Biener <rguenther@suse.de>
12666 PR tree-optimization/106365
12667 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
12668 the offset to start encoding of RHS from.
12669 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
12670 (vn_walk_cb_data::push_partial_def): Allow the first partial
12671 definition to be fully providing the def. Offset RHS
12672 before encoding if requested.
12673 (vn_reference_lookup_3): Initialize def_rhs everywhere.
12674 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
12676 2022-07-21 Richard Biener <rguenther@suse.de>
12678 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
12679 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
12680 and IFN_MASK_LOAD_LANES.
12681 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
12682 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
12684 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
12686 PR rtl-optimization/101347
12687 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
12688 population of nonlocal_goto_handler_labels from here ...
12689 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
12690 * rtlanal.cc (remove_node_from_insn_list): Verify that a
12691 duplicate is not present in the remainder of the list.
12693 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
12695 * rtl.h (remove_node_from_expr_list): Remove declaration.
12696 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
12698 2022-07-20 Richard Biener <rguenther@suse.de>
12700 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
12701 invariant updated address when the input was invariant.
12703 2022-07-20 liuhongt <hongtao.liu@intel.com>
12705 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
12706 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
12707 * timevar.def (TV_TREE_POWCABS): New timevar.
12708 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
12709 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
12710 (class pass_expand_powcabs): Ditto.
12711 (pass_expand_powcabs::execute): Ditto.
12712 (make_pass_expand_powcabs): Ditto.
12713 (pass_cse_sincos::execute): Remove pow/cabs expand part.
12714 (make_pass_cse_sincos): Ditto.
12716 2022-07-20 Richard Biener <richard.guenther@gmail.com>
12717 Hongtao Liu <hongtao.liu@intel.com>
12719 PR tree-optimization/106010
12720 * tree-complex.cc (init_dont_simulate_again): Lower complex
12722 (expand_complex_move): Also expand COMPLEX_CST for rhs.
12724 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
12726 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
12727 for incoming ranges on join nodes and add to worklist.
12729 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
12731 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
12732 (ranger_cache::range_from_dom): Put all nodes to be calculated
12733 in the worklist and resolve after the dom walk.
12734 * gimple-range-cache.h (resolve_dom): New prototype.
12736 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
12738 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
12739 returns_twice calls.
12741 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
12743 * cfghooks.cc (duplicate_block): Expand comment.
12744 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
12745 calls that may return twice.
12747 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
12749 * tree-ssa-sink.cc (select_best_block): Punt if selected block
12750 has incoming abnormal edges.
12752 2022-07-19 Martin Liska <mliska@suse.cz>
12754 * doc/extend.texi: Remove trailing :.
12756 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12758 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
12759 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
12761 2022-07-19 Richard Biener <rguenther@suse.de>
12763 PR middle-end/106331
12764 * builtins.cc (get_memory_rtx): Compute alignment from
12765 the original address and set MEM_OFFSET to unknown when
12766 we create a MEM_EXPR from the base object of the address.
12768 2022-07-19 Richard Biener <rguenther@suse.de>
12771 * dwarf2out.cc (dwarf2out_register_external_die): Allow
12772 map entry re-use during WPA.
12774 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
12775 Richard Biener <rguenther@suse.de>
12778 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
12779 COMPOUND_EXPR to silence spurious warning if result isn't used.
12780 (fold_builtin_modf): Likewise.
12781 (do_mpfr_remquo): Likewise.
12783 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12785 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
12786 Change the relative cost of '(set (reg) (const_int N))' where
12787 N fits into signed 12-bit from 4 to 0 if optimizing for size.
12788 And use the appropriate macro instead of the bare number 4.
12790 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
12792 PR tree-optimization/106280
12793 * value-relation.cc (dom_oracle::register_relation): Register
12794 transitives only when it is possible for there to be one.
12795 (dom_oracle::set_one_relation): Return NULL if this is an
12798 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
12800 * doc/invoke.texi (RISC-V Options): Add index references for
12801 `mrelax' and `mriscv-attribute'.
12803 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
12805 * doc/invoke.texi (Option Summary): Add missing second space
12806 around `-mstack-protector-guard-reg='.
12808 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
12810 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
12811 (RISC-V Options): Likewise, and `-mriscv-attribute'.
12813 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
12815 * config/arc/arc-arch.h (arc_tune_attr): Add
12816 ARC_TUNE_ARCHS4X_REL31A variant.
12817 * config/arc/arc.cc (arc_override_options): Tune options for
12819 (arc_sched_issue_rate): Use correct enum.
12820 (arc600_corereg_hazard): Textual change.
12821 (arc_hazard): Add release 310a tunning.
12822 * config/arc/arc.md (tune): Update and take into consideration new
12824 (tune_dspmpy): Likewise.
12825 (tune_store): New attribute.
12826 * config/arc/arc.opt (mtune): New tune option.
12827 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
12828 (hs4x_brcc_op): New instruction rezervation.
12829 (hs4x_data_store_1_op): Likewise.
12830 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
12831 * config/arc/arc-tables.opt: Regenerate.
12832 * config/arc/t-multilib: Likewise.
12833 * doc/invoke.texi (ARC): Update mcpu and tune sections.
12835 2022-07-18 Richard Biener <rguenther@suse.de>
12837 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
12838 When computing cost-based merging do not disregard builtin
12839 classified partitions in some cases.
12841 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
12844 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
12846 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
12847 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
12849 * config/arm/arm_neon_builtins.def (copysignf): Delete.
12850 * config/arm/iterators.md (nvrint_pattern): New attribute.
12851 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
12853 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
12855 (neon_copysignf<mode>): Rename to...
12856 (copysign<mode>3): ...this.
12858 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
12860 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
12861 pointer first when in interrupts.
12863 2022-07-18 Richard Biener <rguenther@suse.de>
12865 * tree-loop-distribution.cc (copy_loop_before): Add
12866 the ability to replace the original LC PHI defs.
12867 (generate_loops_for_partition): Pass through a flag
12868 whether to redirect original LC PHI defs.
12869 (generate_code_for_partition): Likewise.
12870 (loop_distribution::distribute_loop): Compute the partition
12871 that should provide the LC PHI defs for common reductions
12872 and pass that down.
12874 2022-07-18 Richard Ball <richard.ball@arm.com>
12876 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
12877 (aarch64_evpc_uzp): Likewise.
12878 (aarch64_evpc_zip): Likewise.
12880 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
12883 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
12884 to recognize any_extend:DI of ctz:SI which is implicitly extended.
12885 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
12886 extended ctz:SI that has preceding xor to break false dependency.
12888 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
12890 * config/i386/predicates.md (x86_64_const_vector_operand):
12891 Check the operand's mode matches the specified mode argument.
12893 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
12895 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
12896 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
12897 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
12898 (vec_pack_trunc_qi): Update to specify the now required
12899 UNSPEC_MASKOP unspec.
12900 (vec_pack_trunc_<mode>): Likewise.
12902 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12904 * config/xtensa/xtensa.md
12905 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
12906 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
12907 represented as '-(1 << N)', decrease the lower bound of N from 12
12908 to 1. And the other immediate for conditional branch is now no
12909 longer limited to zero, but also one of some positive integers.
12910 Finally, remove the checks of some conditions, because the comparison
12911 expressions that don't satisfy such checks are determined as
12912 compile-time constants and thus will be optimized away before
12915 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
12917 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
12918 (xtensa_constantsynth_2insn): Change to try all three synthetic
12919 methods and to use the one that fits the immediate value of
12920 the seed into a Narrow Move Immediate instruction "MOVI.N"
12921 when the Code Density Option is configured.
12923 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
12926 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
12927 false if callee has indirect_return attribute and caller
12930 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
12933 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
12934 constraints to reflect the output is earlyclobber, unless it is
12935 the same register (pair) as one of the operands.
12937 2022-07-15 David Malcolm <dmalcolm@redhat.com>
12939 * doc/invoke.texi (Static Analyzer Options): Add the new fd
12940 warnings to the initial gccoptlist, and to the list of those
12941 disabled by -fanalyzer-checker=taint.
12943 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
12945 * config/aarch64/aarch64-builtins.cc
12946 (enum aarch64_type_qualifiers): Remove qualifier_internal.
12947 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
12949 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
12951 * config/aarch64/aarch64-builtins.cc
12952 (v1di_UP): Add V1DI mode to _UP macros.
12953 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
12954 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
12955 * config/aarch64/aarch64-simd.md
12956 (vec_extractv2dfv1df): Replace with...
12957 (vec_extract<mode><V1half>): ...this.
12958 * config/aarch64/aarch64.cc
12959 (aarch64_classify_vector_mode): Add V1DI mode.
12960 * config/aarch64/iterators.md
12961 (VQ_2E, V1HALF, V1half): New.
12962 (nunits): Add V1DI mode.
12964 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
12967 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
12968 Fix indentation whitespace.
12969 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
12970 (timode_scalar_chain::convert_insn): Delete dead code.
12971 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
12972 Fix indentation whitespace.
12973 (convertible_comparison_p): Likewise.
12974 (timode_scalar_to_vector_candidate_p): Likewise.
12976 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
12978 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
12980 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
12982 * Makefile.in (OBJS): Add value-range-pretty-print.o.
12983 * pretty-print.h (pp_vrange): New.
12984 * value-range.cc (vrange::dump): Call pp version.
12985 (unsupported_range::dump): Move to its own file.
12986 (dump_bound_with_infinite_markers): Same.
12987 (irange::dump): Same.
12988 (irange::dump_bitmasks): Same.
12989 (vrange::debug): Remove.
12990 * value-range.h: Remove virtual designation for dump methods.
12991 Remove dump_bitmasks method.
12992 * value-range-pretty-print.cc: New file.
12993 * value-range-pretty-print.h: New file.
12995 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
12997 * value-range.cc (irange::accept): New.
12998 (unsupported_range::accept): New.
12999 * value-range.h (class vrange_visitor): New.
13000 (class vrange): Add accept method.
13001 (class unsupported_range): Same.
13002 (class Value_Range): Same.
13004 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
13006 * diagnostic-format-json.cc (json_from_location_range): Adjust
13007 to new label_text API.
13008 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
13010 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
13011 (layout::print_any_labels): Likewise.
13012 * tree-diagnostic-path.cc (class path_label): Likewise.
13013 (struct event_range): Likewise.
13014 (default_tree_diagnostic_path_printer): Likewise.
13015 (default_tree_make_json_for_path): Likewise.
13017 2022-07-15 konglin1 <lingling.kong@intel.com>
13020 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
13021 comparison due to intrinsics changed over time.
13022 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
13023 Add unordered check and mode for sse comi codegen.
13024 (ix86_expand_sse_comi): Add unordered check and check a different
13026 (ix86_expand_sse_comi_round):Extract unordered check and mode part
13027 in ix86_ssecom_setcc.
13029 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13031 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
13032 op_mode instead of vmode in calls to force_reg for op0 and op1.
13034 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
13036 PR tree-optimization/103798
13037 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
13038 (simplify_builtin_call): Inline memchr with constant strings of
13039 no more than the bytes of a word.
13040 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
13041 * tree-ssa-strlen.h (use_in_zero_equality): New.
13043 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
13045 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
13046 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
13047 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
13048 pass it in the call to lookup_tmp_var.
13049 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
13050 (get_initialized_tmp_var): Likewise.
13051 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
13052 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
13054 2022-07-14 Martin Liska <mliska@suse.cz>
13056 * doc/gimple.texi: Close properly a deftypefn.
13058 2022-07-14 Martin Liska <mliska@suse.cz>
13060 * doc/gimple.texi: Close properly a deftypefn.
13062 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
13064 * config/xtensa/xtensa.md:
13065 In FP constant synthesis split pattern, subcontract to
13066 avoid_constant_pool_reference() as in the case of integer,
13067 because it can handle well too. And cast to int32_t before
13068 calling xtensa_constantsynth() in order to ignore upper 32-bit.
13070 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
13072 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
13074 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
13076 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
13077 (irange::legacy_intersect): Clear nonzero mask.
13078 (irange::legacy_union): Same.
13079 (irange::invert): Same.
13081 2022-07-13 Richard Biener <rguenther@suse.de>
13083 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
13084 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
13085 (dom_jt_state::get_blocks_on_stack): Likewise.
13086 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
13087 (back_propagate_equivalences): Remove dominator bitmap
13088 compute and instead use passed in m_blocks_on_stack.
13089 (record_temporary_equivalences): Likewise.
13090 (record_equivalences_from_incoming_edge): Likewise.
13091 (dom_opt_dom_walker::before_dom_children): Maintain and
13092 pass down blocks on stack.
13093 (dom_opt_dom_walker::after_dom_children): Likewise.
13095 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
13097 * config/aarch64/aarch64-builtins.cc
13098 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
13100 2022-07-13 Richard Biener <rguenther@suse.de>
13102 PR tree-optimization/106249
13103 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
13104 Only verify LC SSA of the new_loop if we created it.
13105 Use TODO_update_ssa_nophi for the SSA update after versioning
13108 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
13110 * range-op.cc (unsigned_singleton_p): Remove.
13111 (operator_bitwise_and::remove_impossible_ranges): Remove.
13112 (operator_bitwise_and::fold_range): Set nonzero bits. *
13113 * value-range.cc (irange::get_nonzero_bits): Remove
13114 legacy_mode_p assert.
13115 (irange::dump_bitmasks): Remove legacy_mode_p check.
13117 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
13120 * predict.h (insn_optimization_type): Declare.
13121 * predict.cc (insn_optimization_type): New function.
13122 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
13123 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
13124 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
13125 * internal-fn.cc (unary_convert_direct): New macro.
13126 (expand_convert_optab_fn): New function.
13127 (expand_unary_convert_optab_fn): New macro.
13128 (direct_unary_convert_optab_supported_p): Likewise.
13129 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
13130 convert_optab_handler.
13131 * config/aarch64/aarch64-protos.h
13132 (aarch64_builtin_vectorized_function): Delete.
13133 * config/aarch64/aarch64-builtins.cc
13134 (aarch64_builtin_vectorized_function): Delete.
13135 * config/aarch64/aarch64.cc
13136 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
13137 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
13138 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
13139 optimize_insn_for_size_p test.
13141 2022-07-12 Richard Biener <rguenther@suse.de>
13143 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
13145 (vect_do_peeling): Do not call it, adjust comment.
13147 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
13149 * config/aarch64/aarch64-builtins.cc
13150 (aarch64_builtin_vectorized_function): Remove handling of
13151 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
13153 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
13155 PR tree-optimization/106234
13156 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
13157 cache value before recursively resolving it.
13159 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
13161 * config/i386/i386-features.h (scalar_chain): Add fields
13162 insns_conv, n_sse_to_integer and n_integer_to_sse to this
13163 parent class, moved from general_scalar_chain.
13164 (scalar_chain::convert_compare): Protected method moved
13165 from general_scalar_chain.
13166 (mark_dual_mode_def): Make protected, not private virtual.
13167 (scalar_chain:convert_op): New private virtual method.
13168 (general_scalar_chain::general_scalar_chain): Simplify constructor.
13169 (general_scalar_chain::~general_scalar_chain): Delete destructor.
13170 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
13171 n_integer_to_sse fields to parent class, scalar_chain.
13172 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
13173 (general_scalar_chain::convert_compare): Delete prototype.
13174 (timode_scalar_chain::compute_convert_gain): Remove simplistic
13175 implementation, convert to a method prototype.
13176 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
13177 (timode_scalar_chain::convert_op): Prototype new virtual method.
13178 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
13179 Allocate insns_conv and initialize n_sse_to_integer and
13180 n_integer_to_sse fields in constructor.
13181 (scalar_chain::scalar_chain): Free insns_conv in destructor.
13182 (general_scalar_chain::general_scalar_chain): Delete
13183 constructor, now defined in the class declaration.
13184 (general_scalar_chain::~general_scalar_chain): Delete destructor.
13185 (scalar_chain::mark_dual_mode_def): Renamed from
13186 general_scalar_chain::mark_dual_mode_def.
13187 (timode_scalar_chain::mark_dual_mode_def): Delete.
13188 (scalar_chain::convert_compare): Renamed from
13189 general_scalar_chain::convert_compare.
13190 (timode_scalar_chain::compute_convert_gain): New method to
13191 determine the gain from converting a TImode chain to V1TImode.
13192 (timode_scalar_chain::convert_op): New method to convert an
13193 operand from TImode to V1TImode.
13194 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
13195 on REG_EQUAL notes that were originally TImode (not CONST_INT).
13196 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
13197 (timode_mem_p): Helper predicate to check where operand is
13198 memory reference with sufficient alignment for TImode STV.
13199 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
13200 to check whether COMPARE is convertible. Handle SET_DESTs that
13201 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
13202 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
13204 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
13206 PR tree-optimization/106250
13207 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
13208 argument to directly_supported_p.
13210 2022-07-11 Richard Biener <rguenther@suse.de>
13212 * tree-into-ssa.cc (update_ssa): Do not forcefully
13213 re-compute dominance fast queries for TODO_update_ssa_no_phi.
13215 2022-07-11 Richard Biener <rguenther@suse.de>
13217 PR tree-optimization/106228
13218 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
13219 VUSE compute for the non-loop case.
13221 2022-07-11 Richard Biener <rguenther@suse.de>
13223 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
13224 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
13225 (rewrite_update_dom_walker::m_in_region_flag): New.
13226 (rewrite_update_dom_walker::before_dom_children): If the region
13227 to update is marked, STOP at exits.
13228 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
13230 (dump_update_ssa): Use bitmap_empty_p.
13231 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
13232 TODO_update_ssa_no_phi.
13233 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
13234 pending update_ssa to the caller.
13236 2022-07-11 Richard Biener <rguenthert@suse.de>
13239 * config/i386/i386-options.cc (ix86_set_current_function):
13240 Rebuild the target optimization node whenever necessary,
13241 not only when the optimization node didn't change.
13243 2022-07-11 Richard Biener <rguenther@suse.de>
13245 PR tree-optimization/106228
13246 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
13247 set a VUSE operand on the emitted load.
13249 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
13251 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
13252 verification against legacy value_range.
13253 (gimple_ranger::register_inferred_ranges): Same.
13254 (gimple_ranger::export_global_ranges): Rename update_global_range
13256 * tree-core.h (struct range_info_def): Remove.
13257 (struct irange_storage_slot): New.
13258 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
13259 (struct tree_ssa_name): Add vrange_storage support.
13260 * tree-ssanames.cc (range_info_p): New.
13261 (range_info_fits_p): New.
13262 (range_info_alloc): New.
13263 (range_info_free): New.
13264 (range_info_get_range): New.
13265 (range_info_set_range): New.
13266 (set_range_info_raw): Remove.
13267 (set_range_info): Adjust to use vrange_storage.
13268 (set_nonzero_bits): Same.
13269 (get_nonzero_bits): Same.
13270 (duplicate_ssa_name_range_info): Remove overload taking
13272 Rewrite tree overload to use vrange_storage.
13273 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
13274 * tree-ssanames.h (struct range_info_def): Remove.
13275 (set_range_info): Adjust prototype to take vrange.
13276 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
13277 duplicate_ssa_name_range_info.
13278 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
13279 (SSA_NAME_RANGE_TYPE): Remove.
13280 * value-query.cc (get_ssa_name_range_info): Adjust to use
13282 (update_global_range): Remove.
13283 (get_range_global): Remove as_a<irange>.
13284 * value-query.h (update_global_range): Remove.
13285 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
13286 Rename update_global_range to set_range_info.
13287 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
13290 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
13292 * value-range.cc (irange::operator=): Call verify_range.
13293 (irange::irange_set): Normalize kind after everything else has
13295 (irange::irange_set_anti_range): Same.
13296 (irange::set): Same.
13297 (irange::verify_range): Disallow nonzero masks for VARYING.
13298 (irange::irange_union): Call verify_range.
13299 Handle nonzero masks better.
13300 (irange::irange_intersect): Same.
13301 (irange::set_nonzero_bits): Calculate mask if either range has an
13303 (irange::intersect_nonzero_bits): Same.
13304 (irange::union_nonzero_bits): Same.
13305 (range_tests_nonzero_bits): New.
13306 (range_tests): Call range_tests_nonzero_bits.
13307 * value-range.h (class irange): Remove set_nonzero_bits method
13309 (irange::varying_compatible_p): Set nonzero mask.
13311 2022-07-10 Xi Ruoyao <xry111@xry111.site>
13313 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
13314 the sign-extend of result in the RTL template.
13315 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
13317 2022-07-10 Xi Ruoyao <xry111@xry111.site>
13319 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
13320 Remove static, for use in the machine description file.
13321 * config/loongarch/loongarch-protos.h:
13322 (loongarch_check_zero_div_p): Add prototype.
13323 * config/loongarch/loongarch.md (enabled): New attr.
13324 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
13325 idiv. Conditionally enable the alternatives using
13326 loongarch_check_zero_div_p.
13327 (<optab>di3_fake): Likewise.
13329 2022-07-10 Xi Ruoyao <xry111@xry111.site>
13331 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
13334 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
13336 * value-range.cc (irange::irange_single_pair_union): Set
13337 VR_VARYING when appropriate.
13339 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
13341 * stor-layout.cc (finalize_record_size): Extend warning message.
13343 2022-07-09 Sam Feifer <sfeifer@redhat.com>
13345 PR tree-optimization/98304
13346 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
13348 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
13350 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
13351 initializer and use clear_storage rather than copying the
13352 NULs to the destination array.
13354 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
13356 * config/i386/i386.md (define_peephole2): Use match_operand of
13357 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
13358 (define_peephole2): Likewise.
13359 (define_peephole2): Likewise...
13361 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
13363 * config/i386/i386-features.cc (convert_compare): Add support
13364 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
13365 by generating a pandn followed by ptest.
13366 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
13367 recent *testdi_not_doubleword comparison patterns.
13369 2022-07-09 Tamar Christina <tamar.christina@arm.com>
13371 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
13372 indicate that the value is not undefined.
13374 2022-07-09 Andrew Pinski <apinski@marvell.com>
13376 PR tree-optimization/106087
13377 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
13378 to make sure the statement is only defining one operand.
13380 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
13382 PR preprocessor/91733
13383 * input.cc (find_end_of_line): New helper function.
13384 (file_cache_slot::get_next_line): Recognize \r as a line ending.
13385 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
13386 since \r will now be interpreted as a line-ending.
13388 2022-07-08 Martin Liska <mliska@suse.cz>
13390 PR sanitizer/106132
13391 * opts.cc (finish_options): Use 2 calls to
13392 report_conflicting_sanitizer_options.
13394 2022-07-08 Richard Biener <rguenther@suse.de>
13396 PR tree-optimization/106226
13397 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
13398 no SSA update is needed. Move virtual SSA update ...
13399 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
13400 via forced virtual renaming when TODO_update_ssa_only_virtuals
13402 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
13403 when virtual SSA update is required.
13404 (try_vectorize_loop_1): Adjust.
13405 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
13406 virtual renaming if the ABI forces an aggregate return
13407 but the original call did not have a virtual definition.
13409 2022-07-08 Martin Liska <mliska@suse.cz>
13411 * toplev.cc (init_asm_output): Do not init asm_out_file.
13413 2022-07-08 Tamar Christina <tamar.christina@arm.com>
13415 PR tree-optimization/106063
13416 * match.pd: Do not apply pattern after veclower is not supported.
13418 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
13420 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
13423 2022-07-08 Tamar Christina <tamar.christina@arm.com>
13425 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
13426 still undefined and if so emit a subreg move instead.
13427 (store_integral_bit_field): Likewise.
13428 (store_bit_field): Likewise.
13429 * expr.h (write_complex_part): Likewise.
13430 * expmed.h (store_bit_field): Add new parameter.
13431 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
13433 (expand_ifn_atomic_compare_exchange): Likewise.
13434 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
13435 * emit-rtl.cc (validate_subreg): Likewise.
13436 * expr.cc (emit_group_store): Likewise.
13437 (copy_blkmode_from_reg): Likewise.
13438 (copy_blkmode_to_reg): Likewise.
13439 (clear_storage_hints): Likewise.
13440 (write_complex_part): Likewise.
13441 (emit_move_complex_parts): Likewise.
13442 (expand_assignment): Likewise.
13443 (store_expr): Likewise.
13444 (store_field): Likewise.
13445 (expand_expr_real_2): Likewise.
13446 * ifcvt.cc (noce_emit_move_insn): Likewise.
13447 * internal-fn.cc (expand_arith_set_overflow): Likewise.
13448 (expand_arith_overflow_result_store): Likewise.
13449 (expand_addsub_overflow): Likewise.
13450 (expand_neg_overflow): Likewise.
13451 (expand_mul_overflow): Likewise.
13452 (expand_arith_overflow): Likewise.
13454 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
13457 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
13458 Rename from *sse2_cvtps2pd<mask_name>_1.
13459 (vec_unpacks_lo_v4sf): Add handler for memory operand.
13461 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
13463 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
13464 Modify fp_sp_offset and gp_sp_offset's calculation method,
13465 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
13466 or UNITS_PER_FP_REG.
13468 2022-07-07 David Malcolm <dmalcolm@redhat.com>
13470 * diagnostic-format-json.cc (json_from_location_range): Update for
13471 removal of label_text::maybe_free in favor of automatic memory
13473 * diagnostic-format-sarif.cc
13474 (sarif_builder::make_location_object): Likewise.
13475 * diagnostic-show-locus.cc (struct pod_label_text): New.
13476 (class line_label): Convert m_text from label_text to pod_label_text.
13477 (layout::print_any_labels): Move "text" to the line_label.
13478 * tree-diagnostic-path.cc (path_label::get_text): Update for
13479 removal of label_text::maybe_free in favor of automatic memory
13481 (event_range::print): Likewise.
13482 (default_tree_diagnostic_path_printer): Likewise.
13483 (default_tree_make_json_for_path): Likewise.
13485 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13487 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
13489 2022-07-07 Richard Biener <rguenther@suse.de>
13491 * tree-into-ssa.cc (iterating_old_ssa_names): New.
13492 (add_new_name_mapping): Grow {new,old}_ssa_names separately
13493 and only when actually needed. Assert we are not growing
13494 the old_ssa_names set when iterating over it.
13495 (update_ssa): Remove old_ssa_names copying and empty_p
13496 query, note we are iterating over it and expect no set changes.
13498 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
13500 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
13501 (prepare_target_image, main): Handle OpenMP 'requires'.
13502 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
13503 'GOMP_offload_unregister_ver'.
13505 2022-07-07 Richard Biener <rguenther@suse.de>
13508 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
13511 2022-07-07 Richard Biener <rguenther@suse.de>
13513 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
13514 number of LC PHIs inserted.
13515 (add_exit_phis): Return whether any variable required
13516 multiple LC PHI nodes.
13517 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
13520 2022-07-07 Richard Biener <rguenther@suse.de>
13522 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
13523 the def loop exit block bitmap as argument instead of
13524 re-computing it here.
13525 (add_exit_phis_var): Adjust.
13526 (loop_name_cmp): New function.
13527 (add_exit_phis): Sort variables to insert LC PHI nodes
13528 after definition loop, for each definition loop compute
13529 the exit block bitmap once.
13530 (get_loops_exit): Remove.
13531 (rewrite_into_loop_closed_ssa_1): Do not pre-record
13532 all loop exit blocks into bitmaps. Record loop exits
13535 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
13537 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
13538 to handle the N32 ABI.
13539 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
13540 the macro, as it is not needed anymore.
13542 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
13544 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
13546 * config/nvptx/mkoffload.cc (process): Likewise.
13548 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
13550 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
13552 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
13554 * value-relation.cc (relation_to_code): New vector.
13555 (relation_oracle::validate_relation): New.
13556 (set_relation): Allow ssa1 == ssa2 to be registered.
13557 * value-relation.h (validate_relation): New prototype.
13558 (query_relation): Make internal variant protected.
13560 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
13562 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
13563 for double word comparisons and tests (comparisons against zero).
13564 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
13565 and;cmp into andn;cmp $0 as a pre-reload splitter.
13566 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
13567 (*<any_or><dwi>3_doubleword): Likewise.
13569 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
13570 Hongtao Liu <hongtao.liu@intel.com>
13572 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
13573 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
13574 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
13575 and gen_ssse3_palignv1ti instead of TImode.
13576 * config/i386/sse.md (SSESCALARMODE): Delete.
13577 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
13578 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
13579 iterator instead of SSESCALARMODE.
13580 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
13581 using a single move instruction (if required).
13583 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
13584 Uroš Bizjak <ubizjak@gmail.com>
13586 PR rtl-optimization/96692
13587 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
13588 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
13590 2022-07-05 Richard Biener <rguenther@suse.de>
13592 PR tree-optimization/106198
13593 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
13594 full LC SSA rewrite but only if any blocks changed loop
13597 2022-07-05 Richard Biener <rguenther@suse.de>
13599 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
13600 (find_uses_to_rename_in_loop): Likewise.
13601 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
13603 (rewrite_into_loop_closed_ssa): Adjust.
13605 2022-07-05 Richard Biener <rguenther@suse.de>
13607 PR tree-optimization/106186
13608 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
13609 Properly handle virtual PHI nodes.
13611 2022-07-05 Richard Biener <rguenther@suse.de>
13613 PR tree-optimization/106196
13614 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
13615 handle aggregate returns of calls for VDEF updates.
13617 2022-07-05 Richard Biener <rguenther@suse.de>
13619 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
13622 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
13624 * tree-vect-patterns.cc (vect_convert_input): Expect the input
13625 type to be signed for optab_vector_mixed_sign. Update the vectype
13626 at the same time as type.
13627 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
13628 available, try sdot instead.
13629 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
13630 (vect_model_reduction_cost): Model the cost of implementing usdot
13632 (vectorizable_reduction): Likewise. Skip target support test
13633 for lane reductions.
13634 (vect_emulate_mixed_dot_prod): New function.
13635 (vect_transform_reduction): Use it to emulate usdot via sdot.
13637 2022-07-05 Richard Biener <rguenther@suse.de>
13639 PR tree-optimization/106182
13640 * loop-init.cc (fix_loop_structure): Return the number
13641 of newly discovered plus the number of deleted loops.
13642 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
13645 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
13647 * gimple-range-fold.cc
13648 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
13649 call to SCEV for irange supported types.
13650 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
13651 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
13652 * tree-ssa-dom.cc (cprop_operand): Same.
13654 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
13657 * calls.cc (precompute_register_parameters): Allow promotion
13658 of floating point values to be passed in wider integer modes
13659 by calling new convert_float_to_wider_int.
13660 (expand_call): Allow floating point results to be returned in
13661 wider integer modes by calling new convert wider_int_to_float.
13662 * cfgexpand.cc (expand_value_return): Allow backends to promote
13663 a scalar floating point return value to a wider integer mode
13664 by calling new convert_float_to_wider_int.
13665 * expr.cc (convert_float_to_wider_int): New function.
13666 (convert_wider_int_to_float): Likewise.
13667 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
13668 scalar FP PARM_DECLs to wider integer modes, by calling new
13669 convert_wider_int_to_float.
13670 * expr.h (convert_modes): Name arguments for improved documentation.
13671 (convert_float_to_wider_int): Prototype new function here.
13672 (convert_wider_int_to_float): Likewise.
13673 * function.cc (assign_parm_setup_stack): Allow floating point
13674 values to be passed on the stack as wider integer modes by
13675 calling new convert_wider_int_to_float.
13677 2022-07-04 Martin Jambor <mjambor@suse.cz>
13679 PR tree-optimization/105860
13680 * tree-sra.cc (build_reconstructed_reference): Start expr
13681 traversal only just below the outermost union.
13683 2022-07-04 Richard Biener <rguenther@suse.de>
13685 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
13686 and update virtual SSA form again. Assert we do so for
13687 a known set of transforms only.
13688 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
13689 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
13690 using load-lanes allow virtual SSA update.
13692 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
13693 Chung-Lin Tang <cltang@codesourcery.com>
13694 Thomas Schwinge <thomas@codesourcery.com>
13696 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
13697 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
13698 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
13699 * config/nvptx/mkoffload.cc (process, main): Likewise.
13700 * lto-cgraph.cc (omp_requires_to_name): New.
13701 (input_offload_tables): Save omp_requires_mask.
13702 (output_offload_tables): Read it, check for consistency,
13703 save value for mkoffload.
13704 * omp-low.cc (lower_omp_target): Force output_offloadtables
13705 call for OMP_REQUIRES_TARGET_USED.
13707 2022-07-04 Richard Biener <rguenther@suse.de>
13709 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
13710 no SSA update is needed instead of updating virtual SSA
13712 * tree-vect-stmts.cc (vectorizable_load): For hoisted
13713 invariant load use the loop entry virtual use.
13714 For emulated gather loads use the virtual use of the
13715 original stmt like vect_finish_stmt_generation would do.
13717 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
13719 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
13720 for direct circularity.
13722 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
13724 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
13725 the language for vector types.
13727 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
13729 * value-range-storage.cc (irange_storage_slot::set_irange): Set
13730 nonzero bits in irange.
13731 (irange_storage_slot::get_irange): Get nonzero bits from irange.
13732 * value-range.cc (irange::operator=): Set nonzero bits.
13733 (irange::irange_set): Same.
13734 (irange::irange_set_anti_range): Same.
13735 (irange::set): Same.
13736 (irange::verify_range): Same.
13737 (irange::legacy_equal_p): Check nonzero bits.
13738 (irange::equal_p): Same.
13739 (irange::contains_p): Handle nonzero bits.
13740 (irange::irange_union): Same.
13741 (irange::irange_intersect): Same.
13742 (irange::dump): Same.
13743 (irange::set_nonzero_bits): New.
13744 (irange::get_nonzero_bits): New.
13745 (irange::intersect_nonzero_bits): New.
13746 (irange::union_nonzero_bits): New.
13747 (irange::dump_bitmasks): New.
13748 * value-range.h (class irange): Add m_nonzero_mask.
13749 (gt_ggc_mx): Handle nonzero bits.
13751 (irange::set_undefined): Set nonzero bits.
13752 (irange::set_varying): Same.
13753 (irange::normalize_kind): Call set_undefined.
13755 2022-07-04 Richard Biener <rguenther@suse.de>
13757 * tree-ssa-loop-manip.h
13758 (rewrite_virtuals_into_loop_closed_ssa): Remove.
13759 (rewrite_into_loop_closed_ssa_1): Likewise.
13760 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
13762 (rewrite_into_loop_closed_ssa): Remove loop overload,
13763 always rewrite virtuals into LC SSA.
13764 (check_loop_closed_ssa_bb): Also check virtuals.
13765 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
13766 LC PHIs when in LC SSA.
13767 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
13768 loop-closed SSA here, but ...
13769 (tree_loop_unroll_and_jam): ... here once.
13770 * tree-if-conv.cc (version_loop_for_if_conversion): Use
13771 the cheaper TODO_update_ssa_no_phi.
13772 * tree-loop-distribution.cc (version_loop_by_alias_check):
13774 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
13776 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
13777 (tree_unswitch_outer_loop): Do not rewrite virtuals into
13779 * tree-parloops.cc (transform_to_exit_first_loop_alt):
13781 (pass_parallelize_loops::execute): After finishing rewrite
13782 into LC SSA again because we do not maintain it properly.
13784 2022-07-04 Richard Biener <rguenther@suse.de>
13786 PR tree-optimization/106055
13787 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
13790 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
13793 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
13794 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
13795 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
13797 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
13799 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
13800 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
13801 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
13802 with two arguments.
13803 (find_unswitching_predicates_for_bb): Same.
13804 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
13805 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
13806 * value-range.cc (irange::equal_p): Rename to...
13807 (irange::operator==): ...this.
13808 * value-range.h (irange::set): Remove.
13809 (irange::operator==): Remove.
13810 (irange::set_zero): Use set with two arguments.
13811 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
13812 (vr_values::extract_range_from_unary_expr): Same.
13813 (check_for_binary_op_overflow): Same.
13814 (bounds_of_var_in_loop): Same.
13816 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
13819 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
13821 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
13823 * config/i386/mmx.md (V_16_32_64): New.
13824 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
13825 and 64-bit constant vector.
13826 * config/i386/predicates.md (x86_64_const_vector_operand): New.
13828 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
13830 * gimple-range-cache.cc: Include value-range-storage.h.
13831 * gimple-range-cache.h (class block_range_cache): Add "class" to
13833 * gimple-range-edge.cc
13834 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
13835 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
13836 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
13837 * gimple-range-edge.h: Add "class" to m_range_allocator.
13838 * gimple-range-infer.cc
13839 (infer_range_manager::infer_range_manager): Allocate allocator.
13840 (infer_range_manager::~infer_range_manager): Free allocator.
13841 (infer_range_manager::get_nonzero): Dereference allocator.
13842 (infer_range_manager::add_range): Same.
13843 * gimple-range-infer.h (class vrange_allocator): Add "class" to
13845 * value-range-storage.h (class vrange_allocator): Move from
13847 (class obstack_vrange_allocator): Same.
13848 (class ggc_vrange_allocator): Same.
13849 (vrange_allocator::alloc_vrange): Same.
13850 (vrange_allocator::alloc_irange): Same.
13851 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
13852 (class obstack_vrange_allocator): Same.
13853 (class ggc_vrange_allocator): Same.
13855 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
13857 * Makefile.in (OBJS): Add value-range-storage.o.
13858 (GTFILES): Add value-range-storage.h.
13859 * gengtype.cc (open_base_files): Add value-range-storage.h.
13860 * value-range-storage.cc: New file.
13861 * value-range-storage.h: New file.
13863 2022-07-03 Xi Ruoyao <xry111@xry111.site>
13864 Lulu Cheng <chenglulu@loongson.cn>
13866 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
13867 New static function.
13868 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
13869 of TARGET_CHECK_ZERO_DIV.
13870 (loongarch_output_division): Likewise.
13871 * common/config/loongarch/loongarch-common.cc
13872 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
13873 * doc/invoke.texi: Update to match the new behavior.
13875 2022-07-03 Ian Lance Taylor <iant@golang.org>
13877 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
13878 statement if -fdelete-dead-exceptions.
13880 2022-07-02 Tim Lange <mail@tim-lange.me>
13883 * doc/invoke.texi: Added Wanalyzer-allocation-size.
13885 2022-07-02 Immad Mir <mirimmad17@gmail.com>
13888 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
13889 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
13890 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
13891 -Wanalyzer-fd-use-after-close.
13893 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
13895 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
13896 (trailing_wide_ints::set_precision): Add num_elements argument.
13897 (trailing_wide_ints::extra_size): Same.
13899 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
13901 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
13902 Use "r" constraint for operand 1.
13904 2022-07-01 Richard Biener <rguenther@suse.de>
13906 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
13907 Do not look at interesting_blocks which is a copy of
13909 (update_ssa): Do not initialize it.
13910 (pass_build_ssa::execute): Set interesting_blocks to NULL
13911 after releasing it.
13913 2022-07-01 Richard Biener <rguenther@suse.de>
13915 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
13916 back to using maybe_ne (off, -1).
13918 2022-07-01 Richard Biener <rguenther@suse.de>
13920 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
13921 checking dominance check conditional on flag_checking.
13923 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
13925 * config/gcn/gcn-protos.h (print_operand_address): Remove register
13926 keyword on 'rtx addr' argument.
13928 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
13929 Uroš Bizjak <ubizjak@gmail.com>
13931 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
13932 to post-reload define_insn_and_split.
13934 2022-07-01 Jakub Jelinek <jakub@redhat.com>
13936 PR middle-end/106144
13937 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
13938 emitting element for shift or if shift is 0 first element after start.
13939 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
13940 wi::shifted_mask with 0 start.
13942 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
13945 * config/i386/i386.md (peephole2): Avoid generating pop %esp
13946 when optimizing for size.
13948 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
13949 Uroš Bizjak <ubizjak@gmail.com>
13951 * config/i386/i386.md (general_szext_operand): Add TImode
13952 support using x86_64_hilo_general_operand predicate.
13953 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
13954 (*add<dwi>3_doubleword): Improved optimization of zero addition.
13955 (and<mode>3): Use SDWIM mode iterator to add support for double
13956 word bit-wise AND in TImode. Use force_reg when double word
13957 immediate operand isn't x86_64_hilo_general_operand.
13958 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
13959 converted into a post-reload splitter.
13960 (*andndi3_doubleword): Previous define_insn deleted.
13961 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
13962 TARGET_BMI that splits post-reload.
13963 (*andn<mode>3_doubleword): New define_insn_and_split for
13964 !TARGET_BMI, that lowers/splits before reload.
13965 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
13966 double word bit-wise XOR and bit-wise IOR in TImode. Use
13967 force_reg when double word immediate operand isn't
13968 x86_64_hilo_general_operand.
13969 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
13970 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
13971 double word bit-wise NOT in TImode.
13972 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
13973 and converted into a post-reload splitter.
13975 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
13977 PR middle-end/105874
13978 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
13979 EXPAND_MEMORY for the expansion of the inner reference only
13980 in the usual cases where a memory reference is required.
13982 2022-07-01 Richard Biener <rguenther@suse.de>
13984 PR tree-optimization/106131
13985 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
13986 zero when offsetting the read looking through an aggregate
13989 2022-07-01 Martin Liska <mliska@suse.cz>
13991 PR tree-optimization/106126
13992 * gimple-if-to-switch.cc (struct condition_info): Save
13994 (find_conditions): Parse all BBs.
13995 (pass_if_to_switch::execute): Allow only side effects for first
13998 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
14000 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
14001 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
14002 OPTION_MASK_ISA2_AVX512BF16_UNSET and
14003 OPTION_MASK_ISA2_AVX512FP16_UNSET.
14005 2022-06-30 Joseph Myers <joseph@codesourcery.com>
14008 * lto-wrapper.cc (find_option): Add argument start.
14009 (merge_and_complain): Loop over existing_opt_index and
14010 existing_opt2_index for Xassembler check. Update calls to
14012 (find_and_merge_options): Add argument first to determine whether
14013 to merge options with those passed in *opts.
14014 (run_gcc): Update calls to find_and_merge_options.
14016 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
14018 * gimple-range-cache.cc (block_range_cache::block_range_cache):
14019 Rename vrange_allocator to obstack_vrange_allocator.
14020 (ssa_global_cache::ssa_global_cache): Same.
14021 * gimple-range-edge.h (class gimple_outgoing_range): Same.
14022 * gimple-range-infer.h (class infer_range_manager): Same.
14023 * value-range.h (class vrange_allocator): Make abstract.
14024 (class obstack_vrange_allocator): Inherit from vrange_allocator.
14025 (class ggc_vrange_allocator): New.
14027 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
14028 Uroš Bizjak <ubizjak@gmail.com>
14030 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
14031 provide gen_swapsi.
14032 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
14033 via new gen_<insn>32di2_doubleword below.
14034 (<anyrotate>32di2_doubleword): New define_insn_and_split
14035 that splits after reload as either a pair of move instructions
14036 or an xchgl (using gen_swapsi).
14038 2022-06-30 Richard Biener <rguenther@suse.de>
14040 * domwalk.h (dom_walker::dom_walker): Update comment to
14041 reflect reality and new special argument value for
14043 * domwalk.cc (dom_walker::dom_walker): Recognize -1
14046 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
14047 dom_walker to not use RPO.
14049 2022-06-30 Martin Liska <mliska@suse.cz>
14051 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
14054 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
14056 PR tree-optimization/106114
14057 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
14058 statement operands instead of GORI cache.
14060 2022-06-30 Antoni Boucher <bouanto@zoho.com>
14063 * config/i386/sse.md: Fix asm generation.
14065 2022-06-29 Sergei Trofimovich <siarheit@google.com>
14068 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
14070 2022-06-29 Joseph Myers <joseph@codesourcery.com>
14072 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
14073 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
14075 2022-06-29 Richard Biener <rguenther@suse.de>
14077 PR rtl-optimization/106082
14078 * combine.cc (distribute_notes): Preserve notes when
14079 they indicate a call doesn't perform a non-local goto.
14081 2022-06-29 Richard Biener <rguenther@suse.de>
14083 PR tree-optimization/106112
14084 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
14085 a constant operand according to its type.
14087 2022-06-29 Martin Liska <mliska@suse.cz>
14089 * doc/invoke.texi: Remove removed evrp-mode.
14091 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
14094 * config/loongarch/loongarch.cc (loongarch_build_integer):
14095 Remove undefined behavior from code.
14097 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
14099 * doc/sourcebuild.texi: Document new no_alignment_constraints
14100 effective target check.
14102 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
14104 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
14105 * flag-types.h (enum evrp_mode): Remove.
14106 * params.opt: Remove --param=evrp-mode.
14107 * tree-vrp.cc (make_pass_early_vrp): New.
14108 (pass_vrp::execute): Call early VRP instance.
14109 * gimple-ssa-evrp-analyze.cc: Removed.
14110 * gimple-ssa-evrp-analyze.h: Removed.
14111 * gimple-ssa-evrp.cc: Removed.
14113 2022-06-28 Alexandre Oliva <oliva@adacore.com>
14115 * Makefile.in (TFLAGS): New.
14116 (GCC_FOR_TARGET): Add TFLAGS.
14117 (FLAGS_TO_PASS): Pass TFLAGS down.
14119 2022-06-28 Richard Biener <rguenther@suse.de>
14121 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
14124 2022-06-28 Richard Biener <rguenther@suse.de>
14126 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
14127 mark_block_for_update.
14128 (update_ssa): Adjust.
14130 2022-06-28 Xi Ruoyao <xry111@xry111.site>
14133 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
14134 $r13 from SIBCALL_REGS.
14135 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
14136 Change $r13 to JIRL_REGS.
14138 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
14140 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
14141 irange::supports_p.
14143 2022-06-28 Richard Biener <rguenther@suse.de>
14145 PR middle-end/106053
14146 * match.pd ((T)a == (T)b): Avoid folding away sign
14147 changes in a comparison if we'd truncate to a boolean.
14149 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
14151 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
14152 iterator GPR with SImode, adjust the condition and output template,
14154 (*rotlsi3_insert_4): ... this.
14156 2022-06-27 David Malcolm <dmalcolm@redhat.com>
14158 * genmatch.cc: Add "final" and "override" to various vfunc
14159 implementations, removing redundant "virtual" as appropriate.
14160 * gensupport.cc: Likewise.
14161 * gimple-range-cache.h: Likewise.
14162 * ipa-icf-gimple.h: Likewise.
14163 * ipa-icf.h: Likewise.
14164 * read-md.h: Likewise.
14165 * read-rtl-function.cc: Likewise.
14166 * tree-ssa-loop-ch.cc: Likewise.
14167 * tree-ssa-sccvn.cc: Likewise.
14169 2022-06-27 David Malcolm <dmalcolm@redhat.com>
14171 * config/i386/i386-features.h: Add "final" and "override" to
14172 scalar_chain vfunc implementations as appropriate.
14174 2022-06-27 David Malcolm <dmalcolm@redhat.com>
14176 * tree-switch-conversion.h: Add "final" and "override" to cluster
14177 vfunc implementations as appropriate.
14179 2022-06-27 David Malcolm <dmalcolm@redhat.com>
14181 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
14182 implementations as appropriate.
14184 2022-06-27 David Malcolm <dmalcolm@redhat.com>
14186 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
14187 implementations, removing redundant "virtual" as appropriate.
14188 * gimple-ssa-strength-reduction.cc: Likewise.
14189 * ipa-prop.cc: Likewise.
14190 * rtl-ssa/blocks.cc: Likewise.
14191 * tree-into-ssa.cc: Likewise.
14192 * tree-ssa-dom.cc: Likewise.
14193 * tree-ssa-math-opts.cc: Likewise.
14194 * tree-ssa-phiopt.cc: Likewise.
14195 * tree-ssa-propagate.cc: Likewise.
14196 * tree-ssa-sccvn.cc: Likewise.
14197 * tree-ssa-strlen.cc: Likewise.
14198 * tree-ssa-uncprop.cc: Likewise.
14200 2022-06-27 David Malcolm <dmalcolm@redhat.com>
14202 * adjust-alignment.cc: Add "final" and "override" to opt_pass
14203 vfunc implementations, removing redundant "virtual" as
14205 * asan.cc: Likewise.
14206 * auto-inc-dec.cc: Likewise.
14207 * auto-profile.cc: Likewise.
14208 * bb-reorder.cc: Likewise.
14209 * cfgcleanup.cc: Likewise.
14210 * cfgexpand.cc: Likewise.
14211 * cfgrtl.cc: Likewise.
14212 * cgraphbuild.cc: Likewise.
14213 * combine-stack-adj.cc: Likewise.
14214 * combine.cc: Likewise.
14215 * compare-elim.cc: Likewise.
14216 * config/i386/i386-features.cc: Likewise.
14217 * coroutine-passes.cc: Likewise.
14218 * cprop.cc: Likewise.
14219 * cse.cc: Likewise.
14220 * dce.cc: Likewise.
14221 * df-core.cc: Likewise.
14222 * dse.cc: Likewise.
14223 * dwarf2cfi.cc: Likewise.
14224 * early-remat.cc: Likewise.
14225 * except.cc: Likewise.
14226 * final.cc: Likewise.
14227 * function.cc: Likewise.
14228 * fwprop.cc: Likewise.
14229 * gcse.cc: Likewise.
14230 * gimple-harden-conditionals.cc: Likewise.
14231 * gimple-if-to-switch.cc: Likewise.
14232 * gimple-isel.cc: Likewise.
14233 * gimple-laddress.cc: Likewise.
14234 * gimple-loop-interchange.cc: Likewise.
14235 * gimple-loop-jam.cc: Likewise.
14236 * gimple-loop-versioning.cc: Likewise.
14237 * gimple-low.cc: Likewise.
14238 * gimple-ssa-backprop.cc: Likewise.
14239 * gimple-ssa-evrp.cc: Likewise.
14240 * gimple-ssa-isolate-paths.cc: Likewise.
14241 * gimple-ssa-nonnull-compare.cc: Likewise.
14242 * gimple-ssa-split-paths.cc: Likewise.
14243 * gimple-ssa-store-merging.cc: Likewise.
14244 * gimple-ssa-strength-reduction.cc: Likewise.
14245 * gimple-ssa-warn-access.cc: Likewise.
14246 * gimple-ssa-warn-alloca.cc: Likewise.
14247 * gimple-ssa-warn-restrict.cc: Likewise.
14248 * gimple-warn-recursion.cc: Likewise.
14249 * graphite.cc: Likewise.
14250 * ifcvt.cc: Likewise.
14251 * init-regs.cc: Likewise.
14252 * ipa-comdats.cc: Likewise.
14253 * ipa-cp.cc: Likewise.
14254 * ipa-devirt.cc: Likewise.
14255 * ipa-fnsummary.cc: Likewise.
14256 * ipa-free-lang-data.cc: Likewise.
14257 * ipa-icf.cc: Likewise.
14258 * ipa-inline.cc: Likewise.
14259 * ipa-modref.cc: Likewise.
14260 * ipa-profile.cc: Likewise.
14261 * ipa-pure-const.cc: Likewise.
14262 * ipa-reference.cc: Likewise.
14263 * ipa-split.cc: Likewise.
14264 * ipa-sra.cc: Likewise.
14265 * ipa-visibility.cc: Likewise.
14266 * ipa.cc: Likewise.
14267 * ira.cc: Likewise.
14268 * jump.cc: Likewise.
14269 * loop-init.cc: Likewise.
14270 * lower-subreg.cc: Likewise.
14271 * mode-switching.cc: Likewise.
14272 * modulo-sched.cc: Likewise.
14273 * multiple_target.cc: Likewise.
14274 * omp-expand.cc: Likewise.
14275 * omp-low.cc: Likewise.
14276 * omp-oacc-kernels-decompose.cc: Likewise.
14277 * omp-oacc-neuter-broadcast.cc: Likewise.
14278 * omp-offload.cc: Likewise.
14279 * omp-simd-clone.cc: Likewise.
14280 * passes.cc: Likewise.
14281 * postreload-gcse.cc: Likewise.
14282 * postreload.cc: Likewise.
14283 * predict.cc: Likewise.
14284 * recog.cc: Likewise.
14285 * ree.cc: Likewise.
14286 * reg-stack.cc: Likewise.
14287 * regcprop.cc: Likewise.
14288 * reginfo.cc: Likewise.
14289 * regrename.cc: Likewise.
14290 * reorg.cc: Likewise.
14291 * sancov.cc: Likewise.
14292 * sanopt.cc: Likewise.
14293 * sched-rgn.cc: Likewise.
14294 * stack-ptr-mod.cc: Likewise.
14295 * store-motion.cc: Likewise.
14296 * tracer.cc: Likewise.
14297 * trans-mem.cc: Likewise.
14298 * tree-call-cdce.cc: Likewise.
14299 * tree-cfg.cc: Likewise.
14300 * tree-cfgcleanup.cc: Likewise.
14301 * tree-complex.cc: Likewise.
14302 * tree-eh.cc: Likewise.
14303 * tree-emutls.cc: Likewise.
14304 * tree-if-conv.cc: Likewise.
14305 * tree-into-ssa.cc: Likewise.
14306 * tree-loop-distribution.cc: Likewise.
14307 * tree-nrv.cc: Likewise.
14308 * tree-object-size.cc: Likewise.
14309 * tree-parloops.cc: Likewise.
14310 * tree-predcom.cc: Likewise.
14311 * tree-profile.cc: Likewise.
14312 * tree-sra.cc: Likewise.
14313 * tree-ssa-ccp.cc: Likewise.
14314 * tree-ssa-copy.cc: Likewise.
14315 * tree-ssa-dce.cc: Likewise.
14316 * tree-ssa-dom.cc: Likewise.
14317 * tree-ssa-dse.cc: Likewise.
14318 * tree-ssa-forwprop.cc: Likewise.
14319 * tree-ssa-ifcombine.cc: Likewise.
14320 * tree-ssa-loop-ch.cc: Likewise.
14321 * tree-ssa-loop-im.cc: Likewise.
14322 * tree-ssa-loop-ivcanon.cc: Likewise.
14323 * tree-ssa-loop-prefetch.cc: Likewise.
14324 * tree-ssa-loop-split.cc: Likewise.
14325 * tree-ssa-loop-unswitch.cc: Likewise.
14326 * tree-ssa-loop.cc: Likewise.
14327 * tree-ssa-math-opts.cc: Likewise.
14328 * tree-ssa-phiopt.cc: Likewise.
14329 * tree-ssa-phiprop.cc: Likewise.
14330 * tree-ssa-pre.cc: Likewise.
14331 * tree-ssa-reassoc.cc: Likewise.
14332 * tree-ssa-sccvn.cc: Likewise.
14333 * tree-ssa-sink.cc: Likewise.
14334 * tree-ssa-strlen.cc: Likewise.
14335 * tree-ssa-structalias.cc: Likewise.
14336 * tree-ssa-uncprop.cc: Likewise.
14337 * tree-ssa-uninit.cc: Likewise.
14338 * tree-ssanames.cc: Likewise.
14339 * tree-stdarg.cc: Likewise.
14340 * tree-switch-conversion.cc: Likewise.
14341 * tree-tailcall.cc: Likewise.
14342 * tree-vect-generic.cc: Likewise.
14343 * tree-vectorizer.cc: Likewise.
14344 * tree-vrp.cc: Likewise.
14345 * tsan.cc: Likewise.
14346 * ubsan.cc: Likewise.
14347 * var-tracking.cc: Likewise.
14348 * vtable-verify.cc: Likewise.
14349 * web.cc: Likewise.
14351 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
14353 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
14355 (movdi_symbol_save_scc): Likewise.
14357 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
14359 PR rtl-optimization/7061
14360 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
14362 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
14364 PR tree-optimization/94026
14365 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
14366 (((X >> C1) & C2) eq/ne C3): Likewise.
14368 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14370 * statistics.cc: Include tree.h.
14371 (get_function_name): New function.
14372 (statistics_fini_pass_2): Call get_function_name instead of
14373 current_function_name.
14374 (statistics_counter_event): Call get_function_name instead of
14376 (statistics_histogram_event): Likewise.
14378 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14380 * config/xtensa/xtensa.md:
14381 Suppress unnecessary emitting nop insn in the split patterns for
14382 integer/FP constant synthesis, and add new peephole2 pattern that
14383 folds such synthesized additions.
14385 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
14387 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
14389 (dom_jt_state::push): Remove m_evrp.
14390 (dom_jt_state::pop): Same.
14391 (dom_jt_state::record_ranges_from_stmt): Remove.
14392 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
14393 (class dom_jt_simplifier): Pass ranger to constructor.
14394 Inherit from hybrid_jt_simplifier.
14395 (dom_jt_simplifier::simplify): Convert to ranger.
14396 (pass_dominator::execute): Same.
14397 (all_uses_feed_or_dominated_by_stmt): New.
14398 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
14399 (dom_opt_dom_walker::before_dom_children): Call
14400 set_global_ranges_from_unreachable_edges.
14401 Do not call record_ranges_from_stmt.
14402 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
14403 (cprop_operand): Use int_range<> instead of value_range.
14404 (dom_opt_dom_walker::fold_cond): New.
14405 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
14407 Use fold_cond() instead of vrp_visit_cond_stmt().
14408 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
14409 pass state to simplifier.
14410 * vr-values.h (class vr_values): Make fold_cond public.
14412 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
14414 * common/config/tilegx/tilegx-common.cc: Removed.
14415 * common/config/tilepro/tilepro-common.cc: Removed.
14416 * config.gcc: Remove tilegx and tilepro entries.
14417 * config/tilegx/constraints.md: Removed.
14418 * config/tilegx/feedback.h: Removed.
14419 * config/tilegx/linux.h: Removed.
14420 * config/tilegx/mul-tables.cc: Removed.
14421 * config/tilegx/predicates.md: Removed.
14422 * config/tilegx/sync.md: Removed.
14423 * config/tilegx/t-tilegx: Removed.
14424 * config/tilegx/tilegx-builtins.h: Removed.
14425 * config/tilegx/tilegx-c.cc: Removed.
14426 * config/tilegx/tilegx-generic.md: Removed.
14427 * config/tilegx/tilegx-modes.def: Removed.
14428 * config/tilegx/tilegx-multiply.h: Removed.
14429 * config/tilegx/tilegx-opts.h: Removed.
14430 * config/tilegx/tilegx-protos.h: Removed.
14431 * config/tilegx/tilegx.cc: Removed.
14432 * config/tilegx/tilegx.h: Removed.
14433 * config/tilegx/tilegx.md: Removed.
14434 * config/tilegx/tilegx.opt: Removed.
14435 * config/tilepro/constraints.md: Removed.
14436 * config/tilepro/feedback.h: Removed.
14437 * config/tilepro/gen-mul-tables.cc: Removed.
14438 * config/tilepro/linux.h: Removed.
14439 * config/tilepro/mul-tables.cc: Removed.
14440 * config/tilepro/predicates.md: Removed.
14441 * config/tilepro/t-tilepro: Removed.
14442 * config/tilepro/tilepro-builtins.h: Removed.
14443 * config/tilepro/tilepro-c.cc: Removed.
14444 * config/tilepro/tilepro-generic.md: Removed.
14445 * config/tilepro/tilepro-modes.def: Removed.
14446 * config/tilepro/tilepro-multiply.h: Removed.
14447 * config/tilepro/tilepro-protos.h: Removed.
14448 * config/tilepro/tilepro.cc: Removed.
14449 * config/tilepro/tilepro.h: Removed.
14450 * config/tilepro/tilepro.md: Removed.
14451 * config/tilepro/tilepro.opt: Removed.
14452 * configure.ac: Remove tilegx and tilepro entries.
14453 * configure: Rebuilt.
14454 * doc/extend.texi: Remove tilegx and tilepro entries.
14455 * doc/install.texi: Remove tilegx and tilepro entries.
14456 * doc/invoke.texi: Remove tilegx and tilepro entries.
14457 * doc/md.texi: Remove tilegx and tilepro entries.
14459 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
14460 Richard Biener <rguenther@suse.de>
14462 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
14463 iteration over each basic block that was updated by the second
14466 2022-06-24 Jason Merrill <jason@redhat.com>
14470 * doc/invoke.texi: Document changes.
14472 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
14474 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
14475 condition to avoid overflow.
14477 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
14479 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
14480 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
14481 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
14482 OPTION_MASK_PPC_GFXOPT.
14483 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
14484 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
14485 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
14486 * config/rs6000/rs6000-c.cc: Update comment.
14487 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
14488 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
14489 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
14490 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
14491 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
14492 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
14493 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
14494 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
14495 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
14497 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
14499 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
14501 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
14502 OPTION_MASK_MULTIPLE.
14503 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
14504 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
14506 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
14508 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
14509 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
14510 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
14511 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
14512 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
14513 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
14514 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
14515 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
14517 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
14518 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
14519 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
14520 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
14521 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
14522 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
14523 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
14524 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
14525 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
14526 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
14527 with OPTION_MASK_MULTIPLE.
14528 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
14529 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
14530 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
14531 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
14532 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
14533 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
14534 with OPTION_MASK_EABI.
14536 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
14538 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
14539 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
14540 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
14541 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
14542 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
14543 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
14544 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
14545 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
14546 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
14547 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
14548 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
14550 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
14552 * config/rs6000/rs6000-c.cc: Update comments.
14553 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
14554 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
14555 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
14556 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
14557 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
14558 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
14559 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
14560 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
14561 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
14562 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
14563 OPTION_MASK_MMA, OPTION_MASK_POWER10.
14564 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
14565 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
14566 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
14567 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
14568 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
14570 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
14572 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
14573 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
14574 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
14576 2022-06-24 Richard Biener <rguenther@suse.de>
14578 PR middle-end/106070
14579 * match.pd (a != b ? a : b): Fix translation of
14580 operand_equal_for_comparison_p.
14582 2022-06-24 Jan Hubicka <jh@suse.cz>
14585 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
14587 2022-06-24 Martin Liska <mliska@suse.cz>
14589 PR middle-end/106059
14590 * profile-count.h: *= and /= operators need to modify this
14593 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
14594 Uroš Bizjak <ubizjak@gmail.com>
14597 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
14598 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
14599 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
14601 2022-06-24 Alexandre Oliva <oliva@adacore.com>
14603 * common.opt (nostdlib++): New.
14604 * doc/invoke.texi (-nostdlib++): Document it.
14606 2022-06-24 Alexandre Oliva <oliva@adacore.com>
14608 * doc/sourcebuild.texi (Environment attributes): Document
14611 2022-06-23 David Malcolm <dmalcolm@redhat.com>
14613 * common.opt (fdiagnostics-show-rules): New option.
14614 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
14615 Fix up context->show_rules.
14616 * diagnostic-format-sarif.cc
14617 (diagnostic_output_format_init_sarif): Likewise.
14618 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
14619 (diagnostic_metadata::precanned_rule): New class.
14620 (diagnostic_metadata::add_rule): New.
14621 (diagnostic_metadata::get_num_rules): New.
14622 (diagnostic_metadata::get_rule): New.
14623 (diagnostic_metadata::m_rules): New field.
14624 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
14625 (print_any_rules): New.
14626 (diagnostic_report_diagnostic): Call it.
14627 * diagnostic.h (diagnostic_context::show_rules): New field.
14628 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
14629 * opts.cc (common_handle_option): Handle
14630 OPT_fdiagnostics_show_rules.
14631 * toplev.cc (general_init): Set up global_dc->show_rules.
14633 2022-06-23 Martin Liska <mliska@suse.cz>
14636 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
14637 in order to initialize UBSAN built-ins.
14639 2022-06-23 Martin Liska <mliska@suse.cz>
14642 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
14643 Skip variables with body_removed.
14645 2022-06-23 liuhongt <hongtao.liu@intel.com>
14647 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
14649 (sse4_2_pcmpistr): Ditto.
14651 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
14653 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
14655 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
14656 * tree-switch-conversion.h: Likewise.
14658 2022-06-22 Jason Merrill <jason@redhat.com>
14661 * common.opt: Add -funreachable-traps.
14662 * doc/invoke.texi (-funreachable-traps): Document it.
14663 * opts.cc (finish_options): Enable at -O0 or -Og.
14664 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
14665 (builtin_decl_unreachable, build_builtin_unreachable): New.
14666 * tree.h: Declare them.
14667 * ubsan.cc (sanitize_unreachable_fn): Factor out.
14668 (ubsan_instrument_unreachable): Use
14669 gimple_build_builtin_unreachable.
14670 * ubsan.h (sanitize_unreachable_fn): Declare.
14671 * gimple.cc (gimple_build_builtin_unreachable): New.
14672 * gimple.h: Declare it.
14673 * builtins.cc (expand_builtin_unreachable): Add assert.
14674 (fold_builtin_0): Call build_builtin_unreachable.
14675 * sanopt.cc: Don't run for just SANITIZE_RETURN
14676 or SANITIZE_UNREACHABLE when trapping.
14677 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
14678 unreachable functions.
14679 * gimple-fold.cc (gimple_fold_call)
14680 (gimple_get_virt_method_for_vtable)
14681 * ipa-fnsummary.cc (redirect_to_unreachable)
14682 * ipa-prop.cc (ipa_make_edge_direct_to_target)
14683 (ipa_impossible_devirt_target)
14684 * ipa.cc (walk_polymorphic_call_targets)
14685 * tree-cfg.cc (pass_warn_function_return::execute)
14686 (execute_fixup_cfg)
14687 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
14689 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
14692 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
14694 PR tree-optimization/106019
14695 * tree-data-ref.cc (dr_may_alias_p): Try using the
14696 innermost_loop_behavior to disambiguate non-loop queries.
14698 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
14700 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
14702 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14704 * config/xtensa/xtensa.md (bswapsi2_internal):
14705 Enlarge the buffer that is obviously smaller than the template
14706 string given to sprintf().
14708 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
14709 Marek Polacek <polacek@redhat.com>
14710 Segher Boessenkool <segher@kernel.crashing.org>
14711 Kewen Lin <linkw@linux.ibm.com>
14714 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
14715 exact_log2 doesn't return -1 (or zero).
14716 (plus_xor): New code iterator.
14717 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
14719 2022-06-21 Nathan Sidwell <nathan@acm.org>
14721 * doc/invoke.texi (C++ Modules): Remove language-linkage
14722 as missing feature.
14724 2022-06-21 Arjun Shankar <arjun@redhat.com>
14726 PR tree-optimization/94899
14727 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
14728 0x80000000): New simplification.
14730 2022-06-21 Jakub Jelinek <jakub@redhat.com>
14732 PR rtl-optimization/106032
14733 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
14734 t may_trap_or_fault_p, even if it is cheap.
14736 2022-06-21 Jakub Jelinek <jakub@redhat.com>
14738 PR middle-end/106030
14739 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
14740 temp to expand_operands if mode has been promoted.
14742 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
14745 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
14748 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
14750 PR tree-optimization/105736
14751 * tree-object-size.cc (addr_object_size): Return size_unknown
14752 when object offset computation returns an error.
14754 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
14757 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
14758 false if PIC register is used when calling ifunc functions.
14760 2022-06-20 Richard Biener <rguenther@suse.de>
14762 PR middle-end/106027
14763 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
14764 type of the prevailing comparison for the new comparison type.
14765 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
14766 to A < X && A >= Y folding.
14768 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
14770 PR tree-optimization/105940
14771 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
14772 slp_done_for_suggested_uf and adjust with it accordingly.
14773 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
14774 pass it down to vect_analyze_loop_2 for the initial analysis and
14775 applying suggested unroll factor.
14776 (vect_is_simple_reduction): Add parameter slp and adjust with it.
14777 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
14778 (vect_analyze_scalar_cycles): Likewise.
14780 2022-06-20 Martin Liska <mliska@suse.cz>
14782 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
14784 (better_edge_p): Likewise.
14785 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
14786 * cfgloopmanip.cc (scale_loop_profile): Likewise.
14787 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
14788 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
14789 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
14790 * dojump.cc (do_compare_rtx_and_jump): Likewise.
14791 * final.cc (compute_alignments): Likewise.
14792 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
14793 (decide_about_value): Likewise.
14794 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
14795 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
14796 * modulo-sched.cc (sms_schedule): Likewise.
14797 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
14798 (expand_omp_ordered_sink): Likewise.
14799 (expand_omp_for_ordered_loops): Likewise.
14800 (expand_omp_for_static_nochunk): Likewise.
14801 * predict.cc (maybe_hot_count_p): Likewise.
14802 (probably_never_executed): Likewise.
14803 (set_even_probabilities): Likewise.
14804 (handle_missing_profiles): Likewise.
14805 (expensive_function_p): Likewise.
14806 * profile-count.h: Likewise.
14807 * profile.cc (compute_branch_probabilities): Likewise.
14808 * stmt.cc (emit_case_dispatch_table): Likewise.
14809 * symtab-thunks.cc (expand_thunk): Likewise.
14810 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
14811 * tree-ssa-sink.cc (select_best_block): Likewise.
14812 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
14813 (switch_decision_tree::balance_case_nodes): Likewise.
14814 (switch_decision_tree::emit_case_nodes): Likewise.
14815 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
14817 2022-06-20 yulong <shiyulong@iscas.ac.cn>
14819 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
14820 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
14822 * config/riscv/riscv-ftypes.def (0): Remove unused.
14825 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14827 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
14828 Consider relaxed MOVI instructions as L32R.
14830 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14832 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
14833 Use can_create_pseudo_p(), instead of using individual
14834 reload_in_progress and reload_completed.
14835 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
14836 the existing predicate function.
14837 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
14838 Use the standard RTX code predicate macros such as MEM_P,
14839 SYMBOL_REF_P and/or CONST_INT_P.
14840 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
14841 if callee-saved register, at the split patterns for indirect sibcall
14844 2022-06-18 Jakub Jelinek <jakub@redhat.com>
14846 * common.opt (flag_sanitize_trap): New variable.
14847 (fsanitize-trap=, fsanitize-trap): New options.
14848 (fsanitize-undefined-trap-on-error): Change into deprecated alias
14849 for -fsanitize-trap=all.
14850 * opts.h (struct sanitizer_opts_s): Add can_trap member.
14851 * opts.cc (finish_options): Complain about unsupported
14852 -fsanitize-trap= options.
14853 (sanitizer_opts): Add can_trap values to all entries.
14854 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
14855 options which have can_trap false.
14856 (parse_sanitizer_options): Add support for -fsanitize-trap=.
14857 For -fsanitize-trap=all, enable
14858 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
14859 -fsanitize-trap=vptr here.
14860 (common_handle_option): Handle OPT_fsanitize_trap_ and
14861 OPT_fsanitize_trap.
14862 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
14863 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
14864 flag_sanitize_undefined_trap_on_error.
14865 * gcc.cc (sanitize_spec_function): Use
14866 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
14867 and drop use of flag_sanitize_undefined_trap_on_error in
14868 "undefined" handling.
14869 * ubsan.cc (ubsan_instrument_unreachable): Use
14870 flag_sanitize_trap & SANITIZE_??? instead of
14871 flag_sanitize_undefined_trap_on_error.
14872 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
14873 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
14874 ubsan_build_overflow_builtin, instrument_bool_enum_load,
14875 ubsan_instrument_float_cast, instrument_nonnull_arg,
14876 instrument_nonnull_return, instrument_builtin): Likewise.
14877 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
14878 (-fsanitize-undefined-trap-on-error): Document as deprecated
14879 alias of -fsanitize-trap.
14881 2022-06-18 Jakub Jelinek <jakub@redhat.com>
14883 PR middle-end/105998
14884 * varasm.cc (narrowing_initializer_constant_valid_p): Check
14885 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
14886 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
14888 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
14890 PR tree-optimization/105835
14891 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
14892 Narrow integer multiplication by a zero_one_valued_p operand.
14893 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
14894 conversions inside COND_EXPR where both data operands are
14897 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
14899 * config/xtensa/constraints.md (Y):
14900 Change to include integer constants until reload begins.
14901 * config/xtensa/predicates.md (move_operand): Ditto.
14902 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
14903 Change to allow storing integer constants into litpool only after
14906 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
14909 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
14910 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
14911 (alpha_store_data_bypass_p_1): Ditto.
14912 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
14913 of generic store_data_bypass_p.
14914 (ev4_ist_c): Remove insn reservation.
14916 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
14919 * config/i386/i386.cc (ix86_function_arg): Assert that
14920 the mode of pointer argumet is equal to ptr_mode, not Pmode.
14922 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
14925 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
14926 instead of REGNO comparisons in combine splitter.
14928 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
14930 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
14933 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
14935 * config/riscv/bitmanip.md: Supress warning.
14937 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
14940 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
14941 Clear bits in the mask above bit 31.
14943 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
14945 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
14946 to avoid spilling trivial literals to the constant pool.
14948 2022-06-16 David Malcolm <dmalcolm@redhat.com>
14950 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
14951 auto_diagnostic_group to group any warning with its note.
14952 (maybe_warn_for_bound): Likewise.
14953 (check_access): Likewise.
14954 (warn_dealloc_offset): Likewise.
14955 (pass_waccess::maybe_warn_memmodel): Likewise.
14956 (pass_waccess::maybe_check_dealloc_call): Likewise.
14957 (pass_waccess::warn_invalid_pointer): Likewise.
14958 (pass_waccess::check_dangling_stores): Likewise.
14960 2022-06-16 Jason Merrill <jason@redhat.com>
14962 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
14963 opts_set->x_flag_sanitize.
14965 2022-06-16 Jason Merrill <jason@redhat.com>
14967 * flags.h (issue_strict_overflow_warning): Comment #endif.
14969 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
14971 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
14972 was invaraint before, clear the invariant bit.
14973 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
14974 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
14976 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
14978 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
14980 2022-06-16 Jakub Jelinek <jakub@redhat.com>
14982 PR tree-optimization/105983
14983 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
14984 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
14985 on non-equality comparisons.
14987 2022-06-16 Jakub Jelinek <jakub@redhat.com>
14989 PR tree-optimization/105984
14990 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
14991 x > stype_max / cst || x < stype_min / cst): fold_convert @1
14992 to TREE_TYPE (@0) just once and test for negative divisor
14993 also on that folded constant instead of on @1.
14995 2022-06-16 Jakub Jelinek <jakub@redhat.com>
14997 PR middle-end/105951
14998 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
14999 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
15000 as last argument to the internal functions.
15001 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
15002 extra call argument to ifns. If expand_atomic_fetch_op fails for the
15003 lhs == NULL_TREE case, fall through into the optab code with
15004 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
15005 fails, construct a CALL_EXPR and expand that.
15006 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
15007 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
15010 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
15013 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
15014 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
15015 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
15016 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
15017 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
15018 for new Power10 V1TI instructions.
15019 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
15020 (vec_cmpu<mode><mode>): Likewise.
15021 (vector_nlt<mode>): Set mode iterator to VEC_IC.
15022 (vector_nltv1ti): Remove.
15023 (vector_gtu<mode>): Set mode iterator to VEC_IC.
15024 (vector_gtuv1ti): Remove.
15025 (vector_nltu<mode>): Set mode iterator to VEC_IC.
15026 (vector_nltuv1ti): Remove.
15027 (vector_geu<mode>): Set mode iterator to VEC_IC.
15028 (vector_ngt<mode>): Likewise.
15029 (vector_ngtv1ti): Remove.
15030 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
15031 (vector_ngtuv1ti): Remove.
15032 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
15033 (vector_gtu_v1ti_p): Remove.
15034 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
15035 (vrotlv1ti3): Remove.
15036 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
15037 (vashrv1ti3): Remove.
15039 2022-06-16 Martin Liska <mliska@suse.cz>
15041 * gengtype-state.cc (read_a_state_token): Do not skip extra
15042 character after escaped sequence.
15044 2022-06-16 Martin Liska <mliska@suse.cz>
15047 * spellcheck.cc (test_find_closest_string): Add new test.
15048 * spellcheck.h (class best_match): Prefer a difference in
15049 trailing sign symbol.
15051 2022-06-16 liuhongt <hongtao.liu@intel.com>
15053 PR tree-optimization/53533
15054 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
15055 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
15056 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
15058 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15060 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
15062 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15064 * config/xtensa/predicates.md (reload_operand):
15066 * config/xtensa/xtensa.md: New peephole2 pattern.
15068 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15070 * config/xtensa/xtensa.md (*round_up_to_even):
15071 New insn-and-split pattern.
15072 (*signed_ge_zero): Ditto.
15074 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15076 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
15077 xtensa_emit_sibcall): New prototypes.
15078 (xtensa_expand_epilogue): Add new argument that specifies whether
15079 or not sibling call.
15080 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
15081 New macro definition.
15082 (xtensa_prepare_expand_call): New function in order to share
15084 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
15086 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
15087 for sibling call handling.
15088 * config/xtensa/xtensa.md (call, call_value):
15089 Use xtensa_prepare_expand_call.
15090 (call_internal, call_value_internal):
15091 Add the condition in order to be disabled if sibling call.
15092 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
15093 (sibcall_internal, sibcall_value_internal): New insn patterns,
15094 and split ones in order to take care of the indirect sibcalls.
15096 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15098 * doc/invoke.texi: Document -mextra-l32r-costs= option.
15100 2022-06-15 David Malcolm <dmalcolm@redhat.com>
15103 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
15104 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
15105 Extend -fdiagnostics-path-format=separate-events so that with
15106 -fdiagnostics-show-path-depths it prints fndecls as well as stack
15109 2022-06-15 David Malcolm <dmalcolm@redhat.com>
15111 * value-relation.h: Add "final" and "override" to relation_oracle
15112 vfunc implementations as appropriate.
15114 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
15116 PR middle-end/105975
15117 Revert everything apart from the expand_fn_using_insn and
15118 expand_direct_optab_fn changes from:
15119 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
15120 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
15121 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
15122 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
15123 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
15125 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
15126 (direct_internal_fn_p): Also return true for internal functions
15127 that map directly to instructions defined target-insns.def.
15128 (direct_internal_fn): Adjust comment accordingly.
15129 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
15130 (vectorizable_optab2): New local macros.
15131 (not_direct): Initialize directly_mapped.
15132 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
15133 (gather_load_direct, len_load_direct, mask_store_direct)
15134 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
15135 (vec_cond_direct, scatter_store_direct, len_store_direct)
15136 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
15137 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
15138 (while_direct, fold_extract_direct, fold_left_direct)
15139 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
15140 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
15141 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
15142 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
15143 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
15144 (direct_internal_fn_types): Handle functions that map to instructions
15145 defined in target-insns.def.
15146 (direct_internal_fn_types): Likewise.
15147 (direct_internal_fn_supported_p): Likewise.
15148 (internal_fn_expanders): Likewise.
15149 (expand_fn_using_insn): New function,
15150 split out and adapted from...
15151 (expand_direct_optab_fn): ...here.
15152 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
15153 (expand_GOMP_SIMT_EXIT): Likewise.
15154 (expand_GOMP_SIMT_LANE): Likewise.
15155 (expand_GOMP_SIMT_LAST_LANE): Likewise.
15156 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
15157 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
15158 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
15159 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
15161 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
15164 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
15165 to first_reg and second_reg respectively. Initialize them correctly
15166 when generating big-endian code.
15168 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
15171 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
15173 2022-06-15 Richard Biener <rguenther@suse.de>
15175 PR tree-optimization/105971
15176 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
15177 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
15178 to leak less surprising alias results.
15180 2022-06-15 Richard Biener <rguenther@suse.de>
15182 PR tree-optimization/105969
15183 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
15184 by zero in overflow check.
15186 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
15188 PR tree-optimization/105254
15189 PR tree-optimization/105940
15191 * config/aarch64/aarch64.cc
15192 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
15193 loop_vec_info as argument. Restrict the unroll factor to values
15194 that divide the VF.
15195 (aarch64_vector_costs::finish_cost): Update call accordingly.
15197 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
15199 * read-rtl.cc (find_int): Substitute symbolic constants
15200 before converting the string to an integer.
15202 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
15203 Richard Biener <rguenther@suse.de>
15205 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
15206 left shifts by a constant when the result is truncated, and the
15207 shift constant is well-defined.
15208 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
15209 support for rotations of signed integer types, by lowering
15210 using unsigned vector shifts.
15212 2022-06-15 liuhongt <hongtao.liu@intel.com>
15215 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
15218 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
15220 PR rtl-optimization/105041
15221 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
15223 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
15225 * config/rs6000/vsx.md (VS_scalar): Delete.
15226 (rest of file): Adjust.
15228 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
15231 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
15233 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
15235 * config/riscv/bitmanip.md: Add split to handle opportunities
15236 for slli + sh[123]add.uw
15238 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
15240 * config/riscv/predicates.md (consecutive_bits_operand):
15241 Implement new predicate.
15243 2022-06-14 Richard Biener <rguenther@suse.de>
15245 PR tree-optimization/105946
15246 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
15247 Do not look at arguments not specified in the function call.
15249 2022-06-14 Richard Biener <rguenther@suse.de>
15251 PR middle-end/105965
15252 * match.pd (view_convert CONSTRUCTOR): Handle single-element
15255 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
15257 * warning-control.cc (copy_warning) [generic version]: Do not erase
15258 the warning data of the destination location when the no-warning
15259 bit is not set on the source.
15260 (copy_warning) [tree version]: Return early if TO is equal to FROM.
15261 (copy_warning) [gimple version]: Likewise.
15263 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
15265 PR tree-optimization/105940
15266 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
15267 applying suggested_unroll_factor after start_over.
15269 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15271 * config/xtensa/predicates.md (shifted_mask_operand):
15273 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
15274 New insn-and-split pattern.
15275 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
15276 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
15277 *masktrue_const_shifted_mask): Ditto.
15279 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15281 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
15283 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15285 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
15286 Remove the first argument.
15287 (xtensa_emit_bit_branch): Remove it because now called only from the
15288 output statement of *bittrue insn pattern.
15289 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
15290 argument 'p_invert', and make so that the condition is reversed by
15292 (xtensa_expand_conditional_branch): Share the common path, and remove
15293 condition inversion code.
15294 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
15295 "false side" pattern.
15296 (xtensa_emit_bit_branch): Remove it because of the abovementioned
15297 reason, and move the function body to *bittrue insn pattern.
15298 * config/xtensa/xtensa.md (*bittrue): Transplant the output
15299 statement from removed xtensa_emit_bit_branch().
15300 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
15303 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15305 * config/xtensa/predicates.md (logical_shift_operator,
15306 xtensa_shift_per_byte_operator): New predicates.
15307 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
15309 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
15310 New helper function for funnel shift patterns.
15311 * config/xtensa/xtensa.md (ior_op): New code iterator.
15312 (*ashlsi3_1): Replace with new split pattern.
15313 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
15314 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
15315 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
15316 in order to omit unnecessary bitwise AND operation.
15317 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
15318 *shlrd_per_byte_<code>_omit_AND):
15319 New insn patterns for funnel shifts.
15321 2022-06-13 Jason Merrill <jason@redhat.com>
15323 * tree-cfg.cc (pass_warn_function_return::execute): Also check
15326 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
15328 * config/riscv/riscv.md (length): Remove the explicit setting
15331 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
15333 * common/config/i386/cpuinfo.h (get_available_features): Require
15334 AVX for F16C and VAES.
15336 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
15339 * config/i386/predicates.md (register_no_elim_operand):
15340 Return true for subreg of a memory operand.
15342 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
15344 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
15345 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
15346 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
15347 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
15348 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
15350 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
15351 (direct_internal_fn_p): Also return true for internal functions
15352 that map directly to instructions defined target-insns.def.
15353 (direct_internal_fn): Adjust comment accordingly.
15354 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
15355 (vectorizable_optab2): New local macros.
15356 (not_direct): Initialize directly_mapped.
15357 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
15358 (gather_load_direct, len_load_direct, mask_store_direct)
15359 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
15360 (vec_cond_direct, scatter_store_direct, len_store_direct)
15361 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
15362 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
15363 (while_direct, fold_extract_direct, fold_left_direct)
15364 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
15365 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
15366 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
15367 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
15368 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
15369 (direct_internal_fn_types): Handle functions that map to instructions
15370 defined in target-insns.def.
15371 (direct_internal_fn_types): Likewise.
15372 (direct_internal_fn_supported_p): Likewise.
15373 (internal_fn_expanders): Likewise.
15375 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
15377 * internal-fn.cc (expand_fn_using_insn): New function,
15378 split out and adapted from...
15379 (expand_direct_optab_fn): ...here.
15380 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
15381 (expand_GOMP_SIMT_EXIT): Likewise.
15382 (expand_GOMP_SIMT_LANE): Likewise.
15383 (expand_GOMP_SIMT_LAST_LANE): Likewise.
15384 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
15385 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
15386 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
15387 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
15389 2022-06-13 Jakub Jelinek <jakub@redhat.com>
15391 * omp-expand.cc (expand_omp_target): Remap user provided
15392 device clause arguments, -1 to -2 and -2 to -3, either
15393 at compile time if constant, or at runtime.
15395 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
15397 * common.opt (finstrument-functions): Set explicit value.
15398 (-finstrument-functions-once): New option.
15399 * doc/invoke.texi (Program Instrumentation Options): Document it.
15400 * gimplify.cc (build_instrumentation_call): New static function.
15401 (gimplify_function_tree): Call it to emit the instrumentation calls
15402 if -finstrument-functions[-once] is specified.
15404 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
15406 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
15407 * gimple.h (gimple_set_location): Do not copy warning data from
15408 the previous location when it is UNKNOWN_LOCATION.
15409 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
15411 2022-06-13 Jakub Jelinek <jakub@redhat.com>
15414 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
15415 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
15416 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
15417 operands[3] unmodified.
15419 2022-06-12 Simon Wright <simon@pushface.org>
15422 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
15423 version is darwin20 (macOS 11) or greater, truncate the version to the
15426 2022-06-12 Mark Mentovai <mark@mentovai.com>
15428 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
15430 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15433 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
15434 (svld1rq_impl::fold): Define.
15435 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
15436 op_mode and op_vec_flags.
15437 (aarch64_evpc_reencode): Initialize newd.op_mode and
15439 (aarch64_evpc_sve_dup): New function.
15440 (aarch64_expand_vec_perm_const_1): Gate existing calls to
15441 aarch64_evpc_* functions under d->vmode == d->op_mode,
15442 and call aarch64_evpc_sve_dup.
15443 (aarch64_vectorize_vec_perm_const): Remove assert
15444 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
15445 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
15446 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
15449 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15451 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
15453 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
15454 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
15455 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
15456 New backend functions that process the abovementioned logic.
15457 (xtensa_emit_move_sequence): Revert the previous changes.
15458 * config/xtensa/xtensa.md: New split patterns for integer
15459 and floating-point, as the frontend part.
15461 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15463 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
15464 for ABS and NEG, add missing case for BSWAP and CLRSB, and
15465 double the costs for integer divisions using libfuncs if
15466 optimizing for speed, in order to take advantage of fast constant
15467 division by multiplication.
15468 (TARGET_INSN_COST): New macro definition.
15469 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
15470 calculating relative costs of a RTL insns, for both of speed and
15472 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
15473 the attribute "length" that depends on TARGET_DENSITY.
15474 (define_asm_attributes, blockage, frame_blockage): Add missing
15476 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
15477 dependent option, however, preparatory work for now.
15479 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15481 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
15482 Pass through the block length / loop count conditions if
15483 zero-overhead looping is configured and active,
15485 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15487 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
15488 Split into individual signedness, in order to use libcall
15489 "__umulsidi3" but not the other.
15490 (<u>mulhisi3): Merge into one by using code iterator.
15491 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
15493 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
15495 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
15496 not generate block copies with vector pair instructions if we are
15497 tuning for power10.
15499 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
15501 PR rtl-optimization/7061
15502 * expr.cc (emit_group_store): For groups that consist of a single
15503 scalar integer register that hold a complex mode value, use
15504 gen_lowpart to generate a SUBREG to "view_convert" to the complex
15505 mode. For modes of different sizes, first convert to an integer
15506 mode of the appropriate size.
15508 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15510 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
15512 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15514 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
15515 New insn_and_split pattern.
15517 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15519 * config/xtensa/xtensa.md (one_cmplsi2):
15520 Rearrange as an insn_and_split pattern.
15522 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
15524 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
15526 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
15528 * config/rs6000/rs6000.md (FP_ISA3): Delete.
15529 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
15530 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
15531 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
15532 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
15533 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
15534 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
15535 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
15536 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
15538 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
15540 * config/riscv/riscv.md
15541 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
15542 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
15543 rather than space with FSFLAGS.
15545 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
15547 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
15548 omp_discover_declare_target_fn_r): Don't walk reverse-offload
15551 2022-06-09 Jakub Jelinek <jakub@redhat.com>
15553 * doc/invoke.texi (-Waddress): Fix a typo in small example.
15554 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
15556 2022-06-09 Cui,Lili <lili.cui@intel.com>
15559 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
15560 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
15561 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
15562 (icelake_cost): Ditto.
15563 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
15564 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
15567 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
15569 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
15570 and ior insns to one rotate and mask insn.
15571 (define_split for bswapdi register): Likewise.
15573 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
15575 PR middle-end/105874
15576 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
15577 variable tem_modifier for calculating the expand_modifier enum to
15578 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
15580 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
15583 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
15584 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
15585 'gen_highpart' bitwise semantics and fix order of highpart and
15586 lowpart depending on target endianness.
15588 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
15590 * config/arm/arm-cpus.in (star-mc1): New cpu.
15591 * config/arm/arm-tables.opt: Regenerate.
15592 * config/arm/arm-tune.md: Regenerate.
15593 * doc/invoke.texi: Update docs.
15595 2022-06-08 liuhongt <hongtao.liu@intel.com>
15599 * config/i386/i386.md (*movsi_internal): Change alternative
15601 (*movdi_internal): Ditto.
15602 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
15604 (*vec_extractv4sf_mem): Ditto.
15605 (*vec_extracthf): Ditto.
15607 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
15610 * config/arm/arm.cc (arm_bfi_1_p): New function.
15611 (arm_bfi_p): New function.
15612 (arm_rtx_costs_internal): Add costs for BFI idioms.
15613 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
15614 * config/arm/constraints.md (Dj): New constraint.
15615 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
15616 (insv_zero): Convert to an insn with a split.
15617 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
15619 2022-06-07 liuhongt <hongtao.liu@intel.com>
15622 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
15625 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
15627 PR middle-end/105853
15629 * calls.cc (load_register_parameters): Call store_constructor
15630 and int_expr_size directly instead of expanding via expand_expr.
15631 * expr.cc (static void store_constructor): Don't prototype here.
15632 (static HOST_WIDE_INT int_expr_size): Likewise.
15633 (store_constructor): No longer static.
15634 (int_expr_size): Likewise, no longer static.
15635 * expr.h (store_constructor): Prototype here.
15636 (int_expr_size): Prototype here.
15638 2022-06-07 Jan Beulich <jbeulich@suse.com>
15641 2022-06-03 Jan Beulich <jbeulich@suse.com>
15643 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
15644 * configure.ac: Check for objcopy, producing
15645 ORIGINAL_OBJCOPY_FOR_TARGET.
15646 * configure: Update accordingly.
15647 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
15650 2022-06-07 Jakub Jelinek <jakub@redhat.com>
15652 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
15653 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
15654 Adjust clause printing style depending on
15655 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
15657 2022-06-07 Jan Beulich <jbeulich@suse.com>
15659 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
15661 * config/i386/i386-builtin-types.def: New function type
15662 (V4DI, V32QI, V32QI).
15663 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
15664 V4DI_FTYPE_V32QI_V32QI.
15666 2022-06-07 Jan Beulich <jbeulich@suse.com>
15668 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
15669 into account for reg-only insns.
15671 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
15673 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
15674 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
15675 TARGET_CMOVE's (scalar integer) conditional moves.
15676 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
15677 from its equivalent (canonical) pxor;pand;pxor sequence.
15679 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
15681 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
15684 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
15686 * config.in: Regenerate.
15687 * configure: Regenerate.
15688 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
15690 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
15692 PR middle-end/95126
15693 * calls.cc (load_register_parameters): When loading a suitable
15694 immediate_const_ctor_p VAR_DECL into a single word_mode register,
15695 construct it directly in a pseudo rather than read it (by parts)
15697 * expr.cc (int_expr_size): Make tree argument a const_tree.
15698 (immediate_const_ctor_p): Helper predicate. Return true for
15699 simple constructors that may be materialized in a register.
15700 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
15701 VAR_DECL with a suitable immediate_const_ctor_p constructor
15702 use store_constructor to materialize it directly in a pseudo.
15703 * expr.h (immediate_const_ctor_p): Prototype here.
15704 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
15705 VALUE argument from tree to const_tree.
15706 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
15709 2022-06-04 Jakub Jelinek <jakub@redhat.com>
15712 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
15713 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
15714 bits of mask aren't all set, use operands[2] mode for the AND
15715 operation instead of always SImode.
15717 2022-06-03 Jakub Jelinek <jakub@redhat.com>
15719 PR middle-end/30314
15720 PR middle-end/105777
15721 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
15722 x > stype_max / cst || x < stype_min / cst): New simplification.
15724 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
15726 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
15728 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
15729 * value-range.h (Value_Range::Value_Range): Implement copy
15730 constructor for Value_Range.
15732 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
15734 * value-range.h (struct vrange_traits): Remove.
15735 (is_a): Rewrite without vrange_traits.
15738 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
15740 * value-range.cc (vrange::contains_p): Implement.
15741 (vrange::type): Return void.
15742 (vrange::supports_type_p): Implement.
15743 (irange::fits_p): Same.
15744 (vrange::set_undefined): Same.
15745 (irange::set_nonnegative): Same.
15746 (vrange::set_varying): Same.
15747 (vrange::union_): Same.
15748 (unsupported_range::set): Move to vrange.
15749 (unsupported_range::type): Move to vrange.
15750 (vrange::intersect): Implement for varying and undefined.
15751 (vrange::zero_p): Implement.
15752 (unsupported_range::supports_type_p): Move to vrange.
15753 (vrange::nonzero_p): Implement.
15754 (unsupported_range::set_undefined): Move to vrange.
15755 (unsupported_range::set_varying): Same.
15756 (unsupported_range::dump): Same.
15757 (unsupported_range::union_): Same. Implement for varying and
15759 (unsupported_range::intersect): Move to vrange.
15760 (unsupported_range::zero_p): Same.
15761 (unsupported_range::nonzero_p): Same.
15762 (unsupported_range::set_nonzero): Same.
15763 (unsupported_range::set_zero): Same.
15764 (unsupported_range::set_nonnegative): Same.
15765 (unsupported_range::fits_p): Same.
15766 * value-range.h (class vrange): Remove abstract markers for most
15768 (class unsupported_range): Remove most methods as they will now be
15769 inherited from vrange.
15771 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
15773 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
15774 an object level supports_type_p for irange and a static
15775 Value_Range::supports_type_p.
15776 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
15777 (fold_using_range::range_of_address): Same.
15778 (fold_using_range::range_of_builtin_call): Same.
15779 * gimple-range-fold.h (gimple_range_type): Same.
15780 (gimple_range_ssa_p): Same.
15781 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
15783 (path_range_query::range_of_stmt): Same.
15784 (path_range_query::add_to_imports): Same.
15785 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
15786 (gimple_ranger::export_global_ranges): Same.
15787 * gimple-ssa-evrp-analyze.cc
15788 (evrp_range_analyzer::record_ranges_from_phis): Same.
15789 * range-op.cc (range_operator::wi_fold): Same.
15790 (range_operator::fold_range): Same.
15791 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
15792 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
15793 (evaluate_control_stmt_using_entry_checks): Same.
15794 * tree-ssa-threadedge.cc
15795 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
15796 * tree-vrp.cc (supported_types_p): Same.
15797 * value-query.cc (range_query::value_of_expr): Same.
15798 (range_query::value_on_edge): Same.
15799 (range_query::value_of_stmt): Same.
15800 (range_query::get_tree_range): Same.
15801 (get_range_global): Same.
15802 (global_range_query::range_of_expr): Same.
15803 * value-range-equiv.h (class value_range_equiv): Same.
15804 * value-range.cc (irange::supports_type_p): Same.
15805 (unsupported_range::supports_type_p): Same.
15806 * value-range.h (enum value_range_discriminator): Same.
15807 (Value_Range::init): Same.
15808 (Value_Range::supports_type_p): Same.
15809 (irange::supports_type_p): Same.
15810 (irange::supports_p): Same.
15811 (vrange::supports_type_p): Same.
15812 (vrange_allocator::alloc_vrange): Same.
15814 2022-06-03 Jan Beulich <jbeulich@suse.com>
15816 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
15817 * configure.ac: Check for objcopy, producing
15818 ORIGINAL_OBJCOPY_FOR_TARGET.
15819 * configure: Update accordingly.
15820 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
15823 2022-06-03 Jan Beulich <jbeulich@suse.com>
15825 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
15826 (*mmx_psadbw): New. Mark as commutative.
15827 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
15828 (*<sse2_avx2>_psadbw): New. Mark as commutative.
15830 2022-06-03 Alexandre Oliva <oliva@adacore.com>
15832 PR tree-optimization/105665
15833 PR tree-optimization/100810
15834 * tree-ssa-loop-ivopts.cc
15835 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
15836 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
15837 (find_ssa_undef): Check precomputed flag and intervening uses.
15838 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
15840 2022-06-02 David Malcolm <dmalcolm@redhat.com>
15842 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
15843 tree-logical-location.o.
15844 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
15845 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
15846 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
15847 (sarif-stderr, sarif-file): New enum values.
15848 * diagnostic-client-data-hooks.h: New file.
15849 * diagnostic-format-sarif.cc: New file.
15850 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
15851 (enum diagnostic_event::noun): New enum.
15852 (enum diagnostic_event::property): New enum.
15853 (struct diagnostic_event::meaning): New struct.
15854 (diagnostic_event::get_logical_location): New vfunc.
15855 (diagnostic_event::get_meaning): New vfunc.
15856 (simple_diagnostic_event::get_logical_location): New vfunc impl.
15857 (simple_diagnostic_event::get_meaning): New vfunc impl.
15858 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
15859 (diagnostic_initialize): Initialize m_client_data_hooks.
15860 (diagnostic_finish): Clean up m_client_data_hooks.
15861 (diagnostic_event::meaning::dump_to_pp): New.
15862 (diagnostic_event::meaning::maybe_get_verb_str): New.
15863 (diagnostic_event::meaning::maybe_get_noun_str): New.
15864 (diagnostic_event::meaning::maybe_get_property_str): New.
15865 (get_cwe_url): Make non-static.
15866 (diagnostic_output_format_init): Handle
15867 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
15868 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
15869 * diagnostic.h (enum diagnostics_output_format): Add
15870 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
15871 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
15872 (class diagnostic_client_data_hooks): New forward decl.
15873 (class logical_location): New forward decl.
15874 (diagnostic_context::m_client_data_hooks): New field.
15875 (diagnostic_output_format_init_sarif_stderr): New decl.
15876 (diagnostic_output_format_init_sarif_file): New decl.
15877 (get_cwe_url): New decl.
15878 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
15880 * doc/sourcebuild.texi (Scan a particular file): Add
15881 scan-sarif-file and scan-sarif-file-not.
15882 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
15883 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
15884 (LANG_HOOKS_INITIALIZER): Add
15885 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
15886 * langhooks.cc (lhd_get_sarif_source_language): New.
15887 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
15888 * logical-location.h: New file.
15889 * plugin.cc (struct for_each_plugin_closure): New.
15890 (for_each_plugin_cb): New.
15891 (for_each_plugin): New.
15892 * plugin.h (for_each_plugin): New decl.
15893 * tree-diagnostic-client-data-hooks.cc: New file.
15894 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
15895 (tree_diagnostics_defaults): Populate m_client_data_hooks.
15896 * tree-logical-location.cc: New file.
15897 * tree-logical-location.h: New file.
15899 2022-06-02 David Malcolm <dmalcolm@redhat.com>
15901 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
15903 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
15904 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
15905 (diagnostics_output_format): Add json-stderr and json-file.
15906 * diagnostic-format-json.cc (json_flush_to_file): New.
15907 (json_final_cb): Convert to...
15908 (json_flush_to_file): ...this, ...
15909 (json_stderr_final_cb): ...this, and...
15910 (json_file_final_cb): ...this.
15911 (diagnostic_output_format_init): Move to diagnostic.cc.
15912 (json_output_base_file_name): New.
15913 (diagnostic_output_format_init_json): New.
15914 (diagnostic_output_format_init_json_stderr): New.
15915 (diagnostic_output_format_init_json_file): New.
15916 * diagnostic.cc (diagnostic_output_format_init): Move here from
15917 diagnostic-format-json.cc; update for changes to enum.
15918 * diagnostic.h (enum diagnostics_output_format): Rename
15919 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
15920 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
15921 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
15922 (diagnostic_output_format_init): Add base_file_name param.
15923 (diagnostic_output_format_init_json_stderr): New decl.
15924 (diagnostic_output_format_init_json_file): New dec.
15925 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
15926 "json-file". Rewrite so that the existing "json" is a synonym of
15928 * gcc.cc (driver_handle_option): Pass dump_base_name to
15929 diagnostic_output_format_init.
15930 * opts.cc (common_handle_option): Likewise.
15932 2022-06-02 David Malcolm <dmalcolm@redhat.com>
15934 * json.cc (string::print): Fix escaping of '\'.
15936 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
15938 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
15939 (-1 << 31) for the single-bit case, when operating on (1 << 31)
15941 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
15942 any single-bit value, moving the special case for (1 << 31) to
15943 riscv_build_integer_1 (in riscv.c).
15945 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
15948 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
15949 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
15951 2022-06-02 Jakub Jelinek <jakub@redhat.com>
15954 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
15955 from AND and its operands and just verify operands[2] has HImode,
15956 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
15957 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
15958 just throw away the masking. Use force_reg before calling
15960 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
15961 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
15962 just throw away the masking.
15963 (*ashl<mode>3_doubleword): Rename to ...
15964 (ashl<mode>3_doubleword): ... this.
15965 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
15966 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
15967 Use force_reg before calling gen_lowpart.
15968 (*<insn><mode>3_mask): Likewise.
15969 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
15970 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
15971 case just throw away the masking. Use force_reg before calling
15973 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
15974 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
15975 throw away the masking.
15976 (*<insn><mode>3_doubleword): Rename to ...
15977 (<insn><mode>3_doubleword): ... this.
15978 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
15979 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
15980 Use force_reg before calling gen_lowpart.
15981 (splitter after it): Remove :SI from AND and its operands and just
15982 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
15983 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
15984 operands and just verify operands[1] has HImode, SImode or for
15985 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
15986 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
15987 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
15988 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
15990 2022-06-02 Richard Biener <rguenther@suse.de>
15992 PR tree-optimization/101668
15993 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
15994 for vector types with compatible lane types.
15995 (vect_build_slp_tree_2): Deal with this.
15996 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
15997 special cases without VEC_PERM.
15998 (vectorizable_slp_permutation): Select the operand vector
15999 type and relax requirements. Handle identity permutes
16000 with mismatching operand types.
16001 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
16002 permutes for op_mode == mode.
16004 2022-06-02 Richard Biener <rguenther@suse.de>
16006 PR tree-optimization/105802
16007 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
16008 Make sure to also compute the range in the type of the switch index.
16010 2022-06-01 David Seifert <soap@gentoo.org>
16013 * configure: Regenerate.
16015 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
16017 PR rtl-optimization/105638
16018 * df-core.cc (df_find_single_def_src): Moved and renamed from
16019 find_single_def_src in loop-iv.cc. Change the argument to rtx
16020 and use rtx_equal_p. Return null for partial or conditional
16022 * df.h (df_find_single_def_src): New prototype.
16023 * dse.cc (record_store): Use the constant source if the source
16024 register is set only once.
16025 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
16026 (replace_single_def_regs): Replace find_single_def_src with
16027 df_find_single_def_src.
16029 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
16031 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
16033 (explicit_arch): Rename to selected_arch.
16034 (x_aarch64_override_tune_string): Remove.
16035 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
16036 (aarch64_override_tune_string): Add Save so it gets saved/restored.
16037 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
16038 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
16039 (processor): Remove archtecture_version field.
16040 (selected_arch): Remove global.
16041 (selected_cpu): Remove global.
16042 (selected_tune): Remove global.
16043 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
16044 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
16045 (aarch64_override_options): Further simplify code to only set
16046 selected_arch and selected_tune globals.
16047 (aarch64_option_save): Remove now that target options are saved.
16048 (aarch64_option_restore): Remove redundant target option restores.
16049 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
16051 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
16052 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
16053 (aarch64_ra_sign_key): Remove.
16055 2022-06-01 Jakub Jelinek <jakub@redhat.com>
16057 PR middle-end/30314
16058 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
16059 x > ~(utype)0 / cst): New simplification.
16061 2022-06-01 Richard Biener <rguenther@suse.de>
16063 PR tree-optimization/105786
16064 * tree-loop-distribution.cc
16065 (loop_distribution::transform_reduction_loop): Only do strlen
16066 replacement for integer type reductions.
16068 2022-06-01 Jakub Jelinek <jakub@redhat.com>
16070 PR tree-optimization/105770
16071 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
16072 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
16074 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
16076 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
16077 (sbr_vector::sbr_vector): Same.
16078 (sbr_vector::grow): Same.
16079 (sbr_vector::set_bb_range): Same.
16080 (sbr_vector::get_bb_range): Same.
16081 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
16082 (sbr_sparse_bitmap::set_bb_range): Same.
16083 (sbr_sparse_bitmap::get_bb_range): Same.
16084 (block_range_cache::set_bb_range): Same.
16085 (block_range_cache::get_bb_range): Same.
16086 (block_range_cache::dump): Same.
16087 (ssa_global_cache::get_global_range): Same.
16088 (ssa_global_cache::set_global_range): Same.
16089 (ssa_global_cache::clear): Same.
16090 (ssa_global_cache::dump): Same.
16091 (ranger_cache::get_global_range): Same.
16092 (ranger_cache::set_global_range): Same.
16093 (ranger_cache::range_of_def): Same.
16094 (ranger_cache::entry_range): Same.
16095 (ranger_cache::exit_range): Same.
16096 (ranger_cache::edge_range): Same.
16097 (ranger_cache::range_of_expr): Same.
16098 (ranger_cache::range_on_edge): Same.
16099 (ranger_cache::block_range): Same.
16100 (ranger_cache::propagate_cache): Same.
16101 (ranger_cache::fill_block_cache): Same.
16102 (ranger_cache::range_from_dom): Same.
16103 * gimple-range-cache.h: Same.
16104 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
16106 (gimple_outgoing_range::switch_edge_range): Same.
16107 (gimple_outgoing_range::edge_range_p): Same.
16108 * gimple-range-edge.h: Same.
16109 * gimple-range-fold.cc (fur_source::get_operand): Same.
16110 (fur_source::get_phi_operand): Same.
16111 (fur_edge::get_operand): Same.
16112 (fur_edge::get_phi_operand): Same.
16113 (fur_stmt::get_operand): Same.
16114 (fur_stmt::get_phi_operand): Same.
16115 (fur_list::fur_list): Same.
16116 (fur_list::get_operand): Same.
16117 (fur_list::get_phi_operand): Same.
16118 (fold_range): Same.
16119 (adjust_imagpart_expr): Same.
16120 (adjust_realpart_expr): Same.
16121 (gimple_range_adjustment): Same.
16122 (fold_using_range::fold_stmt): Same.
16123 (fold_using_range::range_of_range_op): Same.
16124 (fold_using_range::range_of_address): Same.
16125 (fold_using_range::range_of_phi): Same.
16126 (fold_using_range::range_of_call): Same.
16127 (fold_using_range::range_of_builtin_call): Same.
16128 (fold_using_range::range_of_builtin_int_call): Same.
16129 (fold_using_range::range_of_cond_expr): Same.
16130 (fur_source::register_outgoing_edges): Same.
16131 * gimple-range-fold.h (fold_range): Same.
16132 (gimple_range_type): Same.
16133 (gimple_range_ssa_p): Same.
16134 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
16135 (gimple_range_calc_op2): Same.
16136 (gori_compute::compute_operand_range_switch): Same.
16137 (gori_compute::compute_operand_range): Same.
16138 (gori_compute::logical_combine): Same.
16139 (gori_compute::compute_logical_operands): Same.
16140 (gori_compute::compute_operand1_range): Same.
16141 (gori_compute::compute_operand2_range): Same.
16142 (gori_compute::compute_operand1_and_operand2_range): Same.
16143 (gori_compute::outgoing_edge_range_p): Same.
16144 (gori_compute::condexpr_adjust): Same.
16145 * gimple-range-gori.h (gimple_range_calc_op1): Same.
16146 (gimple_range_calc_op2): Same.
16147 * gimple-range-path.cc (path_range_query::get_cache): Same.
16148 (path_range_query::set_cache): Same.
16149 (path_range_query::range_on_path_entry): Same.
16150 (path_range_query::internal_range_of_expr): Same.
16151 (path_range_query::range_of_expr): Same.
16152 (path_range_query::ssa_range_in_phi): Same.
16153 (path_range_query::range_defined_in_block): Same.
16154 (path_range_query::compute_ranges_in_phis): Same.
16155 (path_range_query::compute_ranges_in_block): Same.
16156 (path_range_query::add_to_imports): Same.
16157 (path_range_query::range_of_stmt): Same.
16158 * gimple-range-path.h: Same.
16159 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
16160 (gimple_infer_range::~side_effect_manager): Same.
16161 (gimple_infer_range::get_nonzero): Same.
16162 (gimple_infer_range::maybe_adjust_range): Same.
16163 (gimple_infer_range::add_range): Same.
16164 * gimple-range-infer.h: Same.
16165 * gimple-range-tests.cc: Same.
16166 * gimple-range-trace.cc (range_tracer::trailer): Same.
16167 (debug_seed_ranger): Same.
16168 * gimple-range-trace.h: Same.
16169 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
16170 (gimple_ranger::range_on_entry): Same.
16171 (gimple_ranger::range_on_exit): Same.
16172 (gimple_ranger::range_on_edge): Same.
16173 (gimple_ranger::fold_range_internal): Same.
16174 (gimple_ranger::range_of_stmt): Same.
16175 (gimple_ranger::prefill_name): Same.
16176 (gimple_ranger::prefill_stmt_dependencies): Same.
16177 (gimple_ranger::export_global_ranges): Same.
16178 (gimple_ranger::dump_bb): Same.
16179 * gimple-range.h: Same.
16180 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
16181 (memmodel_to_uhwi): Same.
16182 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
16183 (determine_value_range): Same.
16184 (record_nonwrapping_iv): Same.
16185 (infer_loop_bounds_from_signedness): Same.
16186 (scev_var_range_cant_overflow): Same.
16187 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
16188 * value-query.cc (range_query::range_on_edge): Same.
16189 (range_query::range_of_stmt): Same.
16190 (range_query::value_of_expr): Same.
16191 (range_query::value_on_edge): Same.
16192 (range_query::value_of_stmt): Same.
16193 (range_query::get_tree_range): Same.
16194 (update_global_range): Same.
16195 (get_range_global): Same.
16196 (gimple_range_global): Same.
16197 (global_range_query::range_of_expr): Same.
16198 (range_query::query_relation): Same.
16199 * value-query.h (gimple_range_global): Same.
16200 (update_global_range): Same.
16201 * vr-values.cc (vr_values::range_of_expr): Same.
16202 (bounds_of_var_in_loop): Same.
16203 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
16204 * vr-values.h (class vr_values): Same.
16205 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
16207 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
16209 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
16211 (sbr_vector::grow): Same.
16212 (sbr_vector::set_bb_range): Same.
16213 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
16214 (sbr_sparse_bitmap::set_bb_range): Same.
16215 (block_range_cache::~block_range_cache): Same.
16216 (block_range_cache::set_bb_range): Same.
16217 (ssa_global_cache::ssa_global_cache): Same.
16218 (ssa_global_cache::~ssa_global_cache): Same.
16219 (ssa_global_cache::set_global_range): Same.
16220 * gimple-range-cache.h (block_range_cache): Same.
16221 (ssa_global_cache): Same.
16222 * gimple-range-edge.cc
16223 (gimple_outgoing_range::calc_switch_ranges): Same.
16224 * gimple-range-edge.h (gimple_outgoing_range): Same.
16225 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
16227 (infer_range_manager::add_range): Same.
16228 * gimple-range-infer.h (class infer_range_manager): Same.
16229 * value-range.h (class irange_allocator): Rename to...
16230 (class vrange_allocator): ...this.
16231 (irange_allocator::irange_allocator): New.
16232 (vrange_allocator::vrange_allocator): New.
16233 (irange_allocator::~irange_allocator): New.
16234 (vrange_allocator::~vrange_allocator): New.
16235 (irange_allocator::get_memory): Rename to...
16236 (vrange_allocator::alloc): ...this.
16237 (vrange_allocator::alloc_vrange): Rename from...
16238 (irange_allocator::allocate): ...this.
16239 (vrange_allocator::alloc_irange): New.
16241 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
16243 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
16244 vrange and convert range_op_handler function calls to use the
16245 identically named object.
16246 * gimple-range-fold.cc (gimple_range_operand1): Same.
16247 (gimple_range_operand2): Same.
16248 (fold_using_range::fold_stmt): Same.
16249 (fold_using_range::range_of_range_op): Same.
16250 (fold_using_range::range_of_builtin_ubsan_call): Same.
16251 (fold_using_range::relation_fold_and_or): Same.
16252 (fur_source::register_outgoing_edges): Same.
16253 * gimple-range-fold.h (gimple_range_handler): Remove.
16254 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
16255 (gimple_range_calc_op2): Same.
16256 (range_def_chain::get_def_chain): Same.
16257 (gori_compute::compute_operand_range): Same.
16258 (gori_compute::condexpr_adjust): Same.
16259 * gimple-range.cc (gimple_ranger::prefill_name): Same.
16260 (gimple_ranger::prefill_stmt_dependencies): Same.
16261 * range-op.cc (get_bool_state): Same.
16262 (class operator_equal): Add using clause.
16263 (class operator_not_equal): Same.
16264 (class operator_lt): Same.
16265 (class operator_le): Same.
16266 (class operator_gt): Same.
16267 (class operator_ge): Same.
16268 (class operator_plus): Same.
16269 (class operator_minus): Same.
16270 (class operator_mult): Same.
16271 (class operator_exact_divide): Same.
16272 (class operator_lshift): Same.
16273 (class operator_rshift): Same.
16274 (class operator_cast): Same.
16275 (class operator_logical_and): Same.
16276 (class operator_bitwise_and): Same.
16277 (class operator_logical_or): Same.
16278 (class operator_bitwise_or): Same.
16279 (class operator_bitwise_xor): Same.
16280 (class operator_trunc_mod): Same.
16281 (class operator_logical_not): Same.
16282 (class operator_bitwise_not): Same.
16283 (class operator_cst): Same.
16284 (class operator_identity): Same.
16285 (class operator_unknown): Same.
16286 (class operator_abs): Same.
16287 (class operator_negate): Same.
16288 (class operator_addr_expr): Same.
16289 (class pointer_or_operator): Same.
16290 (operator_plus::op1_range): Adjust for vrange.
16291 (operator_minus::op1_range): Same.
16292 (operator_mult::op1_range): Same.
16293 (operator_cast::op1_range): Same.
16294 (operator_bitwise_not::fold_range): Same.
16295 (operator_negate::fold_range): Same.
16296 (range_op_handler): Rename to...
16297 (get_handler): ...this.
16298 (range_op_handler::range_op_handler): New.
16299 (range_op_handler::fold_range): New.
16300 (range_op_handler::op1_range): New.
16301 (range_op_handler::op2_range): New.
16302 (range_op_handler::lhs_op1_relation): New.
16303 (range_op_handler::lhs_op2_relation): New.
16304 (range_op_handler::op1_op2_relation): New.
16305 (range_cast): Adjust for vrange.
16306 * range-op.h (range_op_handler): Remove function.
16307 (range_cast): Adjust for vrange.
16308 (class range_op_handler): New.
16309 (get_bool_state): Adjust for vrange.
16310 (empty_range_varying): Same.
16311 (relop_early_resolve): Same.
16312 * tree-data-ref.cc (compute_distributive_range): Same.
16313 * tree-vrp.cc (get_range_op_handler): Remove.
16314 (range_fold_binary_symbolics_p): Use range_op_handler class
16315 instead of get_range_op_handler.
16316 (range_fold_unary_symbolics_p): Same.
16317 (range_fold_binary_expr): Same.
16318 (range_fold_unary_expr): Same.
16319 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
16321 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
16323 * gimple-range-fold.h (gimple_range_type): Check type before
16324 calling supports_type_p.
16325 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
16326 * value-query.cc (range_query::get_tree_range): Same.
16327 * value-range.cc (Value_Range::lower_bound): New.
16328 (Value_Range::upper_bound): New.
16329 (Value_Range::dump): New.
16330 * value-range.h (class Value_Range): New.
16331 (irange::supports_type_p): Do not check if type is non-zero.
16333 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
16335 * value-range-equiv.cc (value_range_equiv::set): New.
16336 * value-range-equiv.h (class value_range_equiv): Make set method
16338 Remove default bitmap argument from set method.
16339 * value-range.cc (vrange::contains_p): New.
16340 (vrange::singleton_p): New.
16341 (vrange::operator=): New.
16342 (vrange::operator==): New.
16343 (irange::fits_p): Move to .cc file.
16344 (irange::set_nonnegative): New.
16345 (unsupported_range::unsupported_range): New.
16346 (unsupported_range::set): New.
16347 (unsupported_range::type): New.
16348 (unsupported_range::set_undefined): New.
16349 (unsupported_range::set_varying): New.
16350 (unsupported_range::dump): New.
16351 (unsupported_range::union_): New.
16352 (unsupported_range::intersect): New.
16353 (unsupported_range::zero_p): New.
16354 (unsupported_range::nonzero_p): New.
16355 (unsupported_range::set_nonzero): New.
16356 (unsupported_range::set_zero): New.
16357 (unsupported_range::set_nonnegative): New.
16358 (unsupported_range::fits_p): New.
16359 (irange::set): Call irange::set_undefined.
16360 (irange::verify_range): Check discriminator field.
16361 (irange::dump): Dump [irange] marker.
16362 (irange::debug): Move to...
16363 (vrange::debug): ...here.
16364 (dump_value_range): Accept vrange.
16366 * value-range.h (enum value_range_discriminator): New.
16367 (class vrange): New.
16368 (class unsupported_range): New.
16369 (struct vrange_traits): New.
16372 (class irange): Inherit from vrange.
16373 (dump_value_range): Adjust for vrange.
16374 (irange::kind): Rename to...
16375 (vrange::kind): ...this.
16376 (irange::varying_p): Rename to...
16377 (vrange::varying_p): ...this.
16378 (irange::undefined_p): Rename to...
16379 (vrange::undefined_p): ...this.
16380 (irange::irange): Set discriminator.
16381 (irange::union_): Convert to irange before passing to irange
16383 (irange::intersect): Same.
16384 (vrange::supports_type_p): New.
16385 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
16386 NULL bitmap argument to value_range_equiv::set.
16387 (vr_values::extract_range_basic): Same.
16389 2022-06-01 Richard Biener <rguenther@suse.de>
16391 PR tree-optimization/105763
16392 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
16393 Check gimple_range_ssa_p.
16395 2022-05-31 Jason Merrill <jason@redhat.com>
16397 * Makefile.in (TAGS): Look at libcpp/*.cc.
16399 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
16401 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
16402 Prefix mode names with E_.
16404 2022-05-31 Alan Modra <amodra@gmail.com>
16406 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
16407 spelling of DW_AT_namelist_item.
16409 2022-05-31 Jakub Jelinek <jakub@redhat.com>
16411 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
16412 allow var to be private in the outer context.
16413 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
16414 to build_outer_var_ref.
16416 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
16418 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
16419 tieable with DImode on TARGET_64BIT, and SCmode tieable with
16420 V2SFmode, and DCmode with V2DFmode.
16422 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
16424 PR rtl-optimization/101617
16425 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
16426 special case (indicated by negate_cc_compare_p) to generate a
16427 -1/0 mask using neg;sbb.
16428 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
16429 to generate an *x86_neg<mode>_ccc instruction.
16430 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
16431 generate a *x86_mov<mode>cc_0_m1_neg instruction.
16433 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
16435 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
16436 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
16437 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
16439 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
16442 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
16443 DI mode equality/inequality using XOR here. Instead generate a
16444 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
16445 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
16446 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
16447 (general_scalar_chain::convert_compare): New function to convert
16448 scalar equality/inequality comparison into vector operations.
16449 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
16450 new convert_compare helper method.
16451 (convertible_comparion_p): Update to match doubleword COMPARE
16452 of two register, memory or integer constant operands.
16453 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
16454 Prototype/declare member function here.
16455 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
16456 only allow new doubleword modes for EQ and NE operators.
16457 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
16458 doubleword comparison into a pair of XORs followed by an IOR to
16459 set the (zero) flags register, optimizing the XORs if possible.
16460 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
16461 iterator; V_AVX is (currently) only used by ptest.
16462 (sse4_1 mode attribute): Update to support V1TI and V2TI.
16464 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
16466 * config/i386/i386.md: Remove constraints when used with
16467 const_int_operand, const0_operand, const_1_operand, constm1_operand,
16468 const8_operand, const128_operand, const248_operand, const123_operand,
16469 const2367_operand, const1248_operand, const359_operand,
16470 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
16471 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
16472 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
16473 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
16474 const_0_to_255_mul_8_operand, const_1_to_31_operand,
16475 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
16476 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
16477 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
16478 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
16479 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
16480 const_24_to_27_operand and const_28_to_31_operand.
16481 * config/i386/mmx.md: Ditto.
16482 * config/i386/sse.md: Ditto.
16483 * config/i386/subst.md: Ditto.
16484 * config/i386/sync.md: Ditto.
16486 2022-05-30 Jan Beulich <jbeulich@suse.com>
16488 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
16491 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16493 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
16495 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
16498 * config/darwin.h: Move versions-specific handling of multiply_defined
16499 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
16501 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
16504 * doc/sourcebuild.texi: Add entries for the c++tools,
16505 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
16506 and libsanitizer directories. Remove entry for boehm-gc.
16507 Fix alphabetization for libquadmath.
16509 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
16511 * config/avr/avr-mcus.def: Add device definitions.
16512 * doc/avr-mmcu.texi: Corresponding changes.
16513 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
16515 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
16516 from leaking into cc1.
16518 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
16521 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
16522 is special) for various scenarios.
16524 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
16526 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
16527 describing this macro.
16529 2022-05-27 Richard Biener <rguenther@suse.de>
16531 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
16533 2022-05-27 Martin Jambor <mjambor@suse.cz>
16536 * ipa-prop.cc (propagate_controlled_uses): Check type of the
16537 constant before adding a LOAD reference.
16539 2022-05-27 Jakub Jelinek <jakub@redhat.com>
16541 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
16542 to OMP_CLAUSE_ENTER.
16543 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
16544 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
16545 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
16546 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
16547 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
16548 "to" instead of "enter".
16549 * tree-nested.cc (convert_nonlocal_omp_clauses,
16550 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
16551 OMP_CLAUSE_TO_DECLARE.
16553 2022-05-27 Richard Biener <rguenther@suse.de>
16555 PR tree-optimization/105726
16556 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
16557 Constrain array-of-flexarray case more.
16559 2022-05-27 Jakub Jelinek <jakub@redhat.com>
16561 PR sanitizer/105729
16562 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
16563 to (X &) z + w if -fsanitize=null during GENERIC folding.
16565 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
16567 * match.pd (match_zero_one_valued_p): New predicate.
16568 (mult @0 @1): Use zero_one_valued_p for optimization to the
16569 expression "bit_and @0 @1".
16570 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
16571 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
16572 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
16573 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
16574 Remove three redundant transforms obsoleted by the three above.
16576 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
16578 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
16579 to split a combined "and;cmp" sequence into "not;test".
16581 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
16583 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
16584 (bswapsi2_internal): Revise the template and condition, and add
16585 detection code for preceding the same insn in order to omit a
16586 "SSAI 8" instruction of the latter.
16587 (bswapdi2): Suppress built-in insn expansion with the corresponding
16588 library call when optimizing for size.
16590 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
16592 * config/xtensa/xtensa-protos.h
16593 (xtensa_expand_block_set_unrolled_loop,
16594 xtensa_expand_block_set_small_loop): New prototypes.
16595 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
16596 xtensa_expand_block_set_unrolled_loop,
16597 xtensa_expand_block_set_small_loop): New functions.
16598 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
16599 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
16601 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
16603 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
16604 Make instruction counting more accurate, and simplify emitting insns.
16606 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
16608 * config/xtensa/constraints.md (M, O): Use the macro.
16609 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
16610 sext_fldsz_operand): Ditto.
16611 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
16612 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
16613 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
16614 xtensa_expand_prologue): Ditto.
16615 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
16617 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
16619 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
16620 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
16623 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
16625 * gimple-range-cache.cc: Adjust comments.
16626 * gimple-range-infer.cc: Adjust comments.
16627 * gimple-range-infer.h: Adjust comments.
16628 * gimple-range.cc: Adjust comments.
16630 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
16632 * Makefile.in (OBJS): Use gimple-range-infer.o.
16633 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
16634 (ranger_cache::range_from_dom): Rename var side_effect to infer.
16635 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
16636 * gimple-range-cache.h: Include gimple-range-infer.h.
16637 (class ranger_cache): Adjust prototypes, use infer_range_manager.
16638 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
16639 (gimple_infer_range::*): Rename from stmt_side_effects.
16640 (infer_range_manager::*): Rename from side_effect_manager.
16641 * gimple-range-side-effect.cc: Rename.
16642 * gimple-range-side-effect.h: Rename.
16643 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
16644 (class gimple_infer_range): Rename from stmt_side_effects.
16645 (class infer_range_manager): Rename from side_effect_manager.
16646 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
16647 from register_side_effects.
16648 * gimple-range.h (register_inferred_ranges): Adjust prototype.
16649 * range-op.h: Adjust comment.
16650 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
16651 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
16653 2022-05-25 Simon Cook <simon.cook@embecosm.com>
16655 * config/riscv/arch-canonicalize: Only add mafd extension if
16656 base was rv32/rv64g.
16658 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
16660 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
16662 2022-05-25 Jakub Jelinek <jakub@redhat.com>
16664 PR sanitizer/105714
16665 * asan.cc (has_stmt_been_instrumented_p): For assignments which
16666 are both stores and loads, return true only if both destination
16667 and source have been instrumented.
16669 2022-05-25 Martin Liska <mliska@suse.cz>
16670 Richard Biener <rguenther@suse.de>
16672 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
16673 * params.opt (max-unswitch-level): Remove.
16674 * doc/invoke.texi (max-unswitch-level): Likewise.
16675 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
16676 gimplified expressions.
16677 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
16678 (tree_may_unswitch_on): Rename to ...
16679 (find_unswitching_predicates_for_bb): ... this and handle
16681 (get_predicates_for_bb): Likewise.
16682 (set_predicates_for_bb): Likewise.
16683 (init_loop_unswitch_info): Likewise.
16684 (tree_ssa_unswitch_loops): Prepare stuff before calling
16685 tree_unswitch_single_loop.
16686 (tree_unswitch_single_loop): Rework the function using
16687 pre-computed predicates and with a per original loop cost model.
16689 (add_predicate_to_path): Likewise.
16690 (find_range_for_lhs): Likewise.
16691 (simplify_using_entry_checks): Rename to ...
16692 (evaluate_control_stmt_using_entry_checks): ... this, handle
16693 switch statements and improve simplifications using ranger.
16694 (simplify_loop_version): Rework using
16695 evaluate_control_stmt_using_entry_checks.
16696 (evaluate_bbs): New.
16697 (evaluate_loop_insns_for_predicate): Likewise.
16698 (tree_unswitch_loop): Adjust to allow switch statements and
16699 pass in the edge to unswitch.
16700 (clean_up_after_unswitching): New.
16701 (pass_tree_unswitch::execute): Pass down fun.
16703 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
16705 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
16706 counts for the epilog loop.
16708 2022-05-24 Martin Sebor <msebor@redhat.com>
16709 Richard Biener <rguenther@suse.de>
16711 PR middle-end/105604
16712 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
16713 (get_origin_and_offset_r): Remove null handling. Handle variable array
16715 (get_origin_and_offset): Handle null argument here. Simplify.
16716 (alias_offset): Update comment.
16717 * pointer-query.cc (field_at_offset): Update comment. Handle members
16718 of variable-length types.
16720 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16722 * target.def (vec_perm_const): Define new parameter op_mode and
16724 * doc/tm.texi: Regenerate.
16725 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
16726 vec_perm_const hook to add new parameter op_mode and return false
16727 if result and operand modes do not match.
16728 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
16729 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
16730 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
16731 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
16732 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
16733 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
16734 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
16735 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
16736 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
16738 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
16739 (ashrv2di3): Likewise.
16740 * optabs.cc (expand_vec_perm_const): Likewise.
16741 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
16742 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
16743 op_mode and pass it to vec_perm_const hook.
16744 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
16745 * match.pd (vec_perm X Y CST): Likewise.
16746 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
16747 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
16748 (vect_grouped_load_supported): Likewise.
16749 (vect_shift_permute_load_chain): Likewise.
16750 * tree-vect-generic.cc (lower_vec_perm): Likewise.
16751 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
16752 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
16753 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
16754 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
16755 (vect_transform_slp_perm_load): Likewise.
16756 (vectorizable_slp_permutation): Likewise.
16757 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
16758 (vectorizable_bswap): Likewise.
16759 (scan_store_can_perm_p): Likewise.
16760 (vect_gen_perm_mask_checked): Likewise.
16762 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
16765 * config/i386/i386.opt: Remove Undocumented.
16766 * doc/invoke.texi: Document -mcet-switch.
16768 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
16770 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
16771 * config/gcn/gcn-opts.h (enum gcn_isa): New.
16772 (TARGET_GCN3): Use enum gcn_isa.
16773 (TARGET_GCN3_PLUS): Likewise.
16774 (TARGET_GCN5): Likewise.
16775 (TARGET_GCN5_PLUS): Likewise.
16776 (TARGET_CDNA1): New.
16777 (TARGET_CDNA1_PLUS): New.
16778 (TARGET_CDNA2): New.
16779 (TARGET_CDNA2_PLUS): New.
16780 (TARGET_M0_LDS_LIMIT): New.
16781 (TARGET_PACKED_WORK_ITEMS): New.
16782 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
16783 (gcn_option_override): Recognise CDNA ISA variants.
16784 (gcn_omp_device_kind_arch_isa): Support gfx90a.
16785 (gcn_expand_prologue): Make m0 init optional.
16786 Add support for packed work items.
16787 (output_file_start): Support gfx90a.
16788 (gcn_hsa_declare_function_name): Support gfx90a metadata.
16789 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
16791 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
16792 (<su>mulsi3_highpart_imm): Likewise.
16793 (<su>mulsidi3): Likewise.
16794 (<su>mulsidi3_imm): Likewise.
16795 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
16796 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
16797 (main): Support gfx90a.
16798 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
16799 * config/gcn/t-omp-device: Add gfx90a isa.
16801 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
16803 * config.in: Regenerate.
16804 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
16812 (NO_XNACK): New macro.
16813 (NO_SRAM_ECC): New macro.
16814 (SRAMOPT): Keep only v4 variant.
16815 (HSACO3_SELECT_OPT): Delete.
16816 (DRIVER_SELF_SPECS): Delete.
16817 (ASM_SPEC): Remove LLVM 9 support.
16818 * config/gcn/gcn-valu.md
16819 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
16820 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
16821 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
16822 (print_operand_address): Remove assembler bug workaround.
16823 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
16824 (EF_AMDGPU_SRAM_ECC_V3): Delete.
16825 (SET_XNACK_ON): Delete v3 variants.
16826 (SET_XNACK_OFF): Delete v3 variants.
16827 (TEST_XNACK): Delete v3 variants.
16828 (SET_SRAM_ECC_ON): Delete v3 variants.
16829 (SET_SRAM_ECC_ANY): Delete v3 variants.
16830 (SET_SRAM_ECC_OFF): Delete v3 variants.
16831 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
16832 (TEST_SRAM_ECC_ANY): Delete v3 variants.
16833 (TEST_SRAM_ECC_ON): Delete v3 variants.
16834 (copy_early_debug_info): Remove v3 support.
16835 (main): Remove v3 support.
16836 * configure: Regenerate.
16837 * configure.ac: Replace all GCN feature checks with a version check.
16839 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
16841 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
16842 i.e. a double word negation of a zero extended operand, to
16845 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
16847 PR tree-optimization/105668
16848 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
16849 V1TImode, just like V2DImode.
16850 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
16851 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
16852 (vcond_mask_v2div2di): Delete.
16853 (vcond_mask_v1tiv1ti): New define_expand.
16855 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
16857 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
16858 to strncmp for strings of length one.
16860 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
16862 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
16863 prefetch instructions.
16864 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
16866 (RISCV_ATYPE_SI): New.
16867 (RISCV_ATYPE_DI): New.
16868 * config/riscv/riscv-ftypes.def (0): New.
16870 * config/riscv/riscv.md (riscv_clean_<mode>): New.
16871 (riscv_flush_<mode>): New.
16872 (riscv_inval_<mode>): New.
16873 (riscv_zero_<mode>): New.
16875 (riscv_prefetchi_<mode>): New.
16876 * config/riscv/riscv-cmo.def: New file.
16878 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
16880 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
16881 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
16882 (MASK_ZICBOM): New.
16883 (MASK_ZICBOP): New.
16884 (TARGET_ZICBOZ): New.
16885 (TARGET_ZICBOM): New.
16886 (TARGET_ZICBOP): New.
16887 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
16889 2022-05-24 David Malcolm <dmalcolm@redhat.com>
16891 * tree-vect-slp-patterns.cc: Add "final" and "override" to
16892 vect_pattern::build impls as appropriate.
16894 2022-05-24 David Malcolm <dmalcolm@redhat.com>
16896 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
16897 implementations, removing redundant "virtual" as appropriate.
16898 * ipa-fnsummary.h: Likewise.
16899 * ipa-modref.cc: Likewise.
16900 * ipa-param-manipulation.cc: Likewise.
16901 * ipa-profile.cc: Likewise.
16902 * ipa-prop.h: Likewise.
16903 * ipa-pure-const.cc: Likewise.
16904 * ipa-reference.cc: Likewise.
16905 * ipa-sra.cc: Likewise.
16906 * symbol-summary.h: Likewise.
16907 * symtab-thunks.cc: Likewise.
16909 2022-05-24 Martin Liska <mliska@suse.cz>
16912 2022-05-24 Martin Liska <mliska@suse.cz>
16914 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
16917 2022-05-24 Martin Liska <mliska@suse.cz>
16919 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
16922 2022-05-24 Bruno Haible <bruno@clisp.org>
16925 * doc/install.texi (Configuration): Add more details about --with-zstd.
16926 Document --with-zstd-include and --with-zstd-lib
16928 2022-05-24 Richard Biener <rguenther@suse.de>
16930 PR middle-end/105711
16931 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
16933 (extract_bit_field_1): Pass down the mode of op0 to
16934 extract_bit_field_as_subreg.
16936 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
16938 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
16940 (rocket_tune_info): Add default fmv_cost 8.
16941 (sifive_7_tune_info): Ditto.
16942 (thead_c906_tune_info): Ditto.
16943 (optimize_size_tune_info): Ditto.
16944 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
16946 2022-05-24 Jakub Jelinek <jakub@redhat.com>
16949 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
16951 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
16952 clause but no depend clauses.
16953 * omp-expand.cc (expand_taskwait_call): Use
16954 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
16955 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
16957 2022-05-24 Richard Biener <rguenther@suse.de>
16959 PR tree-optimization/100221
16960 * tree-ssa-dse.cc (contains_phi_arg): New function.
16961 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
16963 2022-05-24 Richard Biener <rguenther@suse.de>
16965 PR tree-optimization/105629
16966 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
16967 a sign-extending conversion.
16969 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
16972 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
16974 (union_uses): Skip debug use_insn.
16976 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
16978 * config/riscv/predicates.md (const_0_operand): Remove
16980 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
16982 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
16984 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
16986 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
16987 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
16988 (cpu_indicator_init): Handle Zhaoxin processors.
16989 * common/config/i386/i386-common.cc: Add lujiazui.
16990 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
16992 (enum processor_types): Add ZHAOXIN_FAM7H.
16993 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
16994 * config.gcc: Add lujiazui.
16995 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
16996 Signatures for zhaoxin
16997 (signature_SHANGHAI_ecx): Ditto.
16998 (signature_SHANGHAI_edx): Ditto.
16999 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
17000 -march=native recognize lujiazui processors.
17001 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
17002 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
17003 * config/i386/i386.h (enum processor_type): Ditto.
17004 * config/i386/i386.md: Add lujiazui.
17005 * config/i386/x86-tune-costs.h (struct processor_costs): Add
17007 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
17008 (ix86_adjust_cost): Ditto.
17009 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
17010 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
17011 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
17012 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
17013 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
17014 (X86_TUNE_MOVX): Ditto.
17015 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
17016 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
17017 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
17018 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
17019 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
17020 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
17021 (X86_TUNE_USE_LEAVE): Ditto.
17022 (X86_TUNE_PUSH_MEMORY): Ditto.
17023 (X86_TUNE_LCP_STALL): Ditto.
17024 (X86_TUNE_USE_INCDEC): Ditto.
17025 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
17026 (X86_TUNE_OPT_AGU): Ditto.
17027 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
17028 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
17029 (X86_TUNE_USE_SAHF): Ditto.
17030 (X86_TUNE_USE_BT): Ditto.
17031 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
17032 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
17033 (X86_TUNE_AVOID_MFENCE): Ditto.
17034 (X86_TUNE_EXPAND_ABS): Ditto.
17035 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
17036 (X86_TUNE_USE_FFREEP): Ditto.
17037 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
17038 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
17039 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
17040 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
17041 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
17042 * doc/extend.texi: Add details about lujiazui.
17043 * doc/invoke.texi: Add details about lujiazui.
17044 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
17046 2022-05-23 Martin Liska <mliska@suse.cz>
17048 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
17050 2022-05-23 Richard Biener <rguenther@suse.de>
17052 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
17053 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
17055 2022-05-23 Richard Biener <rguenther@suse.de>
17057 * gimple-expr.cc (is_gimple_condexpr): Remove.
17058 * gimple-expr.h (is_gimple_condexpr): Likewise.
17059 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
17060 * tree-if-conv.cc (set_bb_predicate): Likewie.
17061 (add_to_predicate_list): Likewise.
17062 (gen_phi_arg_condition): Likewise.
17063 (predicate_scalar_phi): Likewise.
17064 (predicate_statements): Likewise.
17066 2022-05-23 Richard Biener <rguenther@suse.de>
17068 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
17069 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
17071 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
17072 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
17073 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
17074 Build the condition of the COND_EXPR separately.
17075 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
17076 * tree-vect-generic.cc (expand_vector_condition): Likewise.
17077 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
17079 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
17080 * tree-vect-patterns.cc: Add comment indicating we are
17081 building invalid COND_EXPRs and why.
17082 * omp-expand.cc (expand_omp_simd): Gimplify the condition
17083 to the COND_EXPR separately.
17084 (expand_omp_atomic_cas): Note part that should be unreachable
17086 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
17087 condition for valid replacements.
17088 * tree-if-conv.cc (predicate_bbs): Simulate previous
17089 re-folding of the condition in folded COND_EXPRs which
17090 is necessary because of unfolded GIMPLE_CONDs in the IL
17091 as in for example gcc.dg/fold-bopcond-1.c.
17092 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
17093 Handle that the comparison is now in the def stmt of
17094 the select operand. Required by gcc.dg/pr104526.c.
17096 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
17099 * langhooks-def.h (lhd_omp_array_size): New.
17100 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
17101 (LANG_HOOKS_DECLS): Add it.
17102 * langhooks.cc (lhd_omp_array_size): New.
17103 * langhooks.h (struct lang_hooks_for_decls): Add hook.
17104 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
17105 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
17107 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
17109 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
17110 XOR/IOR case. Account for two instructions for double-word
17111 operations. In case of vector pandn, account for single
17112 instruction. Likewise for integer andn with TARGET_BMI.
17113 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
17114 <case NEG>: Double-word negation requires 3 instructions.
17116 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
17118 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
17119 Fix "K" extension prefix to be placed before "J".
17120 * config/riscv/arch-canonicalize: Likewise.
17122 2022-05-23 liuhongt <hongtao.liu@intel.com>
17124 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
17125 <-> mask cost from 5 to 6.
17126 (icelake_cost): Ditto.
17128 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
17130 * config/aarch64/aarch64.md
17131 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
17132 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
17133 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
17134 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
17135 (one_cmpl_<optab><mode>2): Likewise.
17136 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
17137 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
17138 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
17139 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
17140 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
17141 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
17142 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
17143 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
17144 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
17145 (rolsi3_insn_uxtw): New pattern.
17146 * config/aarch64/iterators.md (SHIFT): Add rotate left.
17147 (SHIFT_no_rotate): Add new iterator.
17148 (SHIFT:shift): Print rotate left as ror.
17149 (is_rotl): Add test for left rotate.
17151 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
17153 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
17154 processing. Add support for architectural extensions.
17155 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
17156 AARCH64_CPU_DEFAULT_FLAGS.
17157 (TARGET_CPU_NBITS): Remove.
17158 (TARGET_CPU_MASK): Remove.
17159 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
17160 (get_tune_cpu): Assert CPU is always valid.
17161 (get_arch): Assert architecture is always valid.
17162 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
17163 (aarch64_option_restore): Remove unnecessary checks on tune.
17165 2022-05-20 David Malcolm <dmalcolm@redhat.com>
17167 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
17168 "FINAL" and "OVERRIDE" with "final" and "override".
17169 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
17170 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
17171 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
17172 * diagnostic-path.h: Likewise.
17173 * digraph.cc: Likewise.
17174 * gcc-rich-location.h: Likewise.
17175 * gimple-array-bounds.cc: Likewise.
17176 * gimple-loop-versioning.cc: Likewise.
17177 * gimple-range-cache.cc: Likewise.
17178 * gimple-range-cache.h: Likewise.
17179 * gimple-range-fold.cc: Likewise.
17180 * gimple-range-fold.h: Likewise.
17181 * gimple-range-tests.cc: Likewise.
17182 * gimple-range.h: Likewise.
17183 * gimple-ssa-evrp.cc: Likewise.
17184 * input.cc: Likewise.
17185 * json.h: Likewise.
17186 * read-rtl-function.cc: Likewise.
17187 * tree-complex.cc: Likewise.
17188 * tree-diagnostic-path.cc: Likewise.
17189 * tree-ssa-ccp.cc: Likewise.
17190 * tree-ssa-copy.cc: Likewise.
17191 * tree-vrp.cc: Likewise.
17192 * value-query.h: Likewise.
17193 * vr-values.h: Likewise.
17195 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
17197 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
17198 target_memcpy_rect_async to omp_runtime_apis array.
17200 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
17202 * doc/sourcebuild.texi (Decimal floating point attributes): Document
17203 dfp_bid effective-target.
17205 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
17207 * config/aarch64/aarch64.cc
17208 (aarch64_split_128bit_move): Handle DFP modes.
17209 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
17210 (aarch64_classify_address): Likewise.
17211 (aarch64_legitimize_address_displacement): Likewise.
17212 (aarch64_reinterpret_float_as_int): Likewise.
17213 (aarch64_float_const_zero_rtx_p): Likewise.
17214 (aarch64_can_const_movi_rtx_p): Likewise.
17215 (aarch64_anchor_offset): Likewise.
17216 (aarch64_secondary_reload): Likewise.
17217 (aarch64_rtx_costs): Likewise.
17218 (aarch64_legitimate_constant_p): Likewise.
17219 (aarch64_gimplify_va_arg_expr): Likewise.
17220 (aapcs_vfp_sub_candidate): Likewise.
17221 (aarch64_vfp_is_call_or_return_candidate): Likewise.
17222 (aarch64_output_scalar_simd_mov_immediate): Likewise.
17223 (aarch64_gen_adjusted_ldpstp): Likewise.
17224 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
17225 * config/aarch64/aarch64.md
17226 (movsf_aarch64): Use SFD iterator and rename into
17228 (movdf_aarch64): Use DFD iterator and rename into
17230 (movtf_aarch64): Use TFD iterator and rename into
17232 (split pattern for move TF mode): Use TFD iterator.
17233 * config/aarch64/iterators.md
17234 (GPF_TF_F16_MOV): Add DFP modes.
17235 (SFD, DFD, TFD): New iterators.
17236 (GPF_TF): Add DFP modes.
17237 (TX, DX, DX2): Likewise.
17239 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
17241 * configure: Regenerate.
17243 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
17245 PR middle-end/98865
17246 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
17247 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
17248 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
17250 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
17252 * config/rs6000/rs6000-builtins.def: Rephrase
17253 to remove RS6000_BTC_SPECIAL from comment.
17254 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
17255 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
17256 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
17257 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
17258 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
17259 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
17260 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
17261 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
17262 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
17263 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
17264 RS6000_BTM_ALWAYS): Delete.
17266 2022-05-19 Richard Biener <rguenther@suse.de>
17268 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
17269 computation of the new value.
17271 2022-05-19 Richard Biener <rguenther@suse.de>
17273 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
17274 (add_to_value): Use get_expression_id.
17275 (bitmap_insert_into_set): Likewise.
17276 (bitmap_value_insert_into_set): Likewise.
17278 2022-05-19 David Malcolm <dmalcolm@redhat.com>
17280 * doc/invoke.texi (-fanalyzer-checker=): Add
17281 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
17282 the list of analyzer warnings disabled by
17283 -fanalyzer-checker=taint.
17285 2022-05-19 Jakub Jelinek <jakub@redhat.com>
17288 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
17289 global vars without symtab node even when they have DECL_RTL
17292 2022-05-19 Jakub Jelinek <jakub@redhat.com>
17295 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
17296 doesn't have pointer or reference type.
17298 2022-05-18 Marek Polacek <polacek@redhat.com>
17301 * doc/invoke.texi: Document -Wenum-int-mismatch.
17303 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
17305 * config/i386/gnu-user-common.h (defined): Only define
17306 TARGET_CAN_SPLIT_STACK for glibc targets.
17307 * config/i386/gnu.h (defined): Ditto.
17309 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
17311 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
17312 is wider than word_mode, a multiplication costs three word_mode
17313 multiplications and two word_mode additions.
17315 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
17317 * config/i386/i386.md (define_split): Split *andsi_1
17318 and *andn_si_ccno after reload with -Oz.
17320 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
17322 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
17323 Output reason for failure to dump file.
17324 (scop_detection::harmful_loop_in_region): Likewise.
17325 (scop_detection::graphite_can_represent_expr): Likewise.
17326 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
17327 (scop_detection::stmt_simple_for_scop_p): Likewise.
17328 (print_sese_loop_numbers): New function.
17329 (scop_detection::add_scop): Use from here.
17331 2022-05-18 liuhongt <hongtao.liu@intel.com>
17333 PR middle-end/103462
17334 * match.pd (bitwise_induction_p): New match.
17335 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
17337 (analyze_and_compute_bitwise_induction_effect): New function.
17338 (enum bit_op_kind): New enum.
17339 (final_value_replacement_loop): Enhanced to handle bitwise
17342 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
17345 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
17347 2022-05-18 liuhongt <hongtao.liu@intel.com>
17350 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
17353 2022-05-18 liuhongt <hongtao.liu@intel.com>
17356 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
17357 for QImode when code is EQ or NE.
17358 * config/i386/i386.md (cbranchoi4): New expander.
17360 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
17361 Segher Boessenkool <segher@kernel.crashing.org>
17364 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
17365 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
17366 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
17367 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
17368 Update other operands accordingly.
17370 2022-05-17 Marek Polacek <polacek@redhat.com>
17372 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
17374 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
17377 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
17378 register count when not splitting IEEE 128-bit Complex.
17380 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
17382 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
17383 target inside target if inner is reverse offload.
17385 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
17387 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
17388 * config/nvptx/mkoffload.cc (process): Likewise.
17390 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
17392 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
17393 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
17394 (non_null_ref::~non_null_ref): Delete.
17395 (non_null_ref::set_nonnull): Delete.
17396 (non_null_ref::non_null_deref_p): Delete.
17397 (non_null_ref::process_name): Delete.
17398 (ranger_cache::ranger_cache): Initialize m_exit object.
17399 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
17400 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
17401 (ranger_cache::update_to_nonnull): Delete.
17402 (non_null_loadstore): Delete.
17403 (ranger_cache::block_apply_nonnull): Delete.
17404 (ranger_cache::apply_side_effects): New.
17405 * gimple-range-cache.h (class non_null_ref): Delete.
17406 (non_null_ref::adjust_range): Delete.
17407 (class ranger_cache): Adjust prototypes, add side effect manager.
17408 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
17409 side effect manager for queries.
17410 (path_range_query::adjust_for_non_null_uses): Ditto.
17411 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
17412 * gimple-range-side-effect.cc: New.
17413 * gimple-range-side-effect.h: New.
17414 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
17415 (gimple_ranger::range_of_expr): Check def block for override value.
17416 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
17417 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
17418 (gimple_ranger::register_side_effects): Call apply_side_effects.
17419 (enable_ranger): Update contructor.
17420 * gimple-range.h (class gimple_ranger): Update prototype.
17421 (enable_ranger): Update prototype.
17422 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
17424 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
17427 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
17428 * varasm.cc (switch_to_comdat_section): New
17429 (handle_vtv_comdat_section): Call switch_to_comdat_section.
17430 * varasm.h: Declare switch_to_comdat_section.
17432 2022-05-17 Richard Biener <rguenther@suse.de>
17434 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
17435 not clear bb->aux of the copied blocks.
17437 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
17439 PR tree-optimization/105458
17440 * value-relation.cc (path_oracle::register_relation): Merge, then check
17443 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
17447 * config/i386/i386.md: Remove constraints when used with
17448 const_int_operand, const0_operand, const_1_operand, constm1_operand,
17449 const8_operand, const128_operand, const248_operand, const123_operand,
17450 const2367_operand, const1248_operand, const359_operand,
17451 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
17452 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
17453 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
17454 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
17455 const_0_to_255_mul_8_operand, const_1_to_31_operand,
17456 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
17457 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
17458 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
17459 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
17460 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
17461 const_24_to_27_operand and const_28_to_31_operand.
17462 * config/i386/mmx.md: Ditto.
17463 * config/i386/sse.md: Ditto.
17464 * config/i386/subst.md: Ditto.
17465 * config/i386/sync.md: Ditto.
17467 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
17469 * diagnostic.cc: Don't advise to call 'abort' instead of
17471 * system.h: Advise to call 'internal_error' instead of 'abort' or
17474 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
17476 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
17477 a reference to a variable which does not exist.
17478 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
17481 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
17483 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
17484 (isl_id_for_parameter): ... this new function name.
17485 (build_scop_context): Adjust function use.
17487 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
17490 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
17491 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
17493 2022-05-17 Jakub Jelinek <jakub@redhat.com>
17495 * tree-core.h (enum omp_clause_depend_kind): Add
17496 OMP_CLAUSE_DEPEND_INOUTSET.
17497 * tree-pretty-print.cc (dump_omp_clause): Handle
17498 OMP_CLAUSE_DEPEND_INOUTSET.
17499 * gimplify.cc (gimplify_omp_depend): Likewise.
17500 * omp-low.cc (lower_depend_clauses): Likewise.
17502 2022-05-17 Jakub Jelinek <jakub@redhat.com>
17505 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
17506 andv4si3 only for EQ, for NE use iorv4si3 instead.
17508 2022-05-17 Richard Biener <rguenther@suse.de>
17510 PR tree-optimization/105618
17511 * tree-ssa-sink.cc (statement_sink_location): For virtual
17512 PHI uses ignore those defining the used virtual operand.
17514 2022-05-17 Jakub Jelinek <jakub@redhat.com>
17516 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
17517 hanlde -> handle. Fix up comment formatting.
17519 2022-05-17 liuhongt <hongtao.liu@intel.com>
17522 * config/i386/sse.md (*vec_concatv4si): Extend to ..
17523 (*vec_concat<mode>): .. V16QI and V8HImode.
17524 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
17525 (*vec_concatv8hi_permt2): Ditto.
17527 2022-05-17 liuhongt <hongtao.liu@intel.com>
17529 PR tree-optimization/105591
17530 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
17531 vec_perm_expr index.
17533 2022-05-16 Jason Merrill <jason@redhat.com>
17536 * attribs.cc (decl_attributes): Fix broken typedefs here.
17538 2022-05-16 David Malcolm <dmalcolm@redhat.com>
17541 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
17542 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
17543 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
17544 -Wanalyzer-va-list-use-after-va-end.
17546 2022-05-16 Richard Biener <rguenther@suse.de>
17548 * gimple-match.h (gimple_build): Move code_helper overloads ...
17549 * gimple-fold.h (gimple_build): ... here.
17550 (gimple_build): Transition to new worker API. Provide
17551 overloads from sequence-based API.
17552 (gimple_convert): Likewise.
17553 (gimple_convert_to_ptrofftype): Likewise.
17554 (gimple_build_vector_from_val): Likewise.
17555 (gimple_build_vector): Likewise.
17556 (gimple_build_round_up): Likewise.
17557 * gimple-fold.cc (gimple_build_insert_seq): New helper.
17558 (gimple_build): Use it. Transition combined_fn and code_helper
17560 (gimple_convert): Transition to new worker API.
17561 (gimple_convert_to_ptrofftype): Likewise.
17562 (gimple_build_vector_from_val): Likewise.
17563 (gimple_build_vector): Likewise.
17564 (gimple_build_round_up): Likewise.
17566 2022-05-16 Richard Biener <rguenther@suse.de>
17568 * gimple-match.h (code_helper): Move class ...
17569 * tree.h (code_helper): ... here.
17571 2022-05-16 Martin Liska <mliska@suse.cz>
17573 * opts-global.cc (write_langs): Add comment.
17575 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
17577 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
17578 instead of a bitwise negation.
17579 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
17581 2022-05-16 Martin Liska <mliska@suse.cz>
17583 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
17584 (decls_mismatched_attributes): Likewise.
17585 * builtins.cc (c_strlen): Likewise.
17586 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
17587 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
17588 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
17589 (aarch64_init_simd_builtin_types): Likewise.
17590 (aarch64_init_builtin_rsqrt): Likewise.
17591 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
17592 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
17593 (arm_init_simd_builtin_types): Likewise.
17594 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
17595 (c_prefix): Likewise.
17597 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
17598 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
17599 * config/gcn/mkoffload.cc (process_obj): Likewise.
17600 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
17601 (fold_builtin_cpu): Likewise.
17602 * config/m32c/m32c.cc (PUSHM_N): Likewise.
17603 * config/nvptx/mkoffload.cc (process): Likewise.
17604 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
17605 * config/s390/s390.cc (NR_C_MODES): Likewise.
17606 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
17607 (create_insn_code_compression_table): Likewise.
17608 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
17609 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
17610 * dwarf2out.cc (ARRAY_SIZE): Likewise.
17611 * genhooks.cc (emit_documentation): Likewise.
17612 (emit_init_macros): Likewise.
17613 * gimple-ssa-sprintf.cc (format_floating): Likewise.
17614 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
17615 * godump.cc (keyword_hash_init): Likewise.
17616 * hash-table.cc (hash_table_higher_prime_index): Likewise.
17617 * input.cc (for_each_line_table_case): Likewise.
17618 * ipa-free-lang-data.cc (free_lang_data): Likewise.
17619 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
17620 * optc-save-gen.awk: Likewise.
17621 * spellcheck.cc (test_metric_conditions): Likewise.
17622 * tree-vect-slp-patterns.cc (sizeof): Likewise.
17623 (ARRAY_SIZE): Likewise.
17624 * tree.cc (build_common_tree_nodes): Likewise.
17626 2022-05-16 Martin Liska <mliska@suse.cz>
17628 * opts-global.cc (write_langs): Allocate at least one byte.
17630 2022-05-16 Richard Biener <rguenther@suse.de>
17632 * match.pd (A cmp B ? A : B -> min/max): New patterns
17633 carried over from fold_cond_expr_with_comparison.
17635 2022-05-16 liuhongt <hongtao.liu@intel.com>
17638 * config/i386/i386-expand.cc
17639 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
17640 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
17642 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
17644 * config/i386/i386.md: Remove constraints when used with
17645 const_int_operand, const0_operand, const_1_operand, constm1_operand,
17646 const8_operand, const128_operand, const248_operand, const123_operand,
17647 const2367_operand, const1248_operand, const359_operand,
17648 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
17649 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
17650 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
17651 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
17652 const_0_to_255_mul_8_operand, const_1_to_31_operand,
17653 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
17654 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
17655 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
17656 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
17657 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
17658 const_24_to_27_operand and const_28_to_31_operand.
17659 * config/i386/mmx.md: Ditto.
17660 * config/i386/sse.md: Ditto.
17661 * config/i386/subst.md: Ditto.
17662 * config/i386/sync.md: Ditto.
17664 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
17665 Uroš Bizjak <ubizjak@gmail.com>
17667 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
17668 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
17669 by a pshufd and pand.
17670 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
17671 vector equality as a V2DImode vector comparison (see above),
17672 followed by a pshufd and pand.
17674 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
17676 PR tree-optimization/83907
17677 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
17678 for memset with an constant char value.
17679 (handle_store): Improved handling of stores with a first byte
17680 of zero, but not storing_all_zeros_p.
17682 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
17683 Manolis Tsamis <manolis.tsamis@vrull.eu>
17685 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
17686 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
17687 * doc/sourcebuild.texi: add documentation for RISC-V specific
17688 test target keywords
17690 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17692 PR tree-optimization/105597
17693 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
17694 of the lhs and make sure it is not undefined.
17696 2022-05-13 Sebastian Pop <spop@amazon.com>
17699 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
17701 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
17702 memmodel_from_int and handle MEMMODEL_SYNC_*.
17703 (DEF0): Add __aarch64_*_sync functions.
17705 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17707 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
17709 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
17710 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
17711 new VREL enumerated values.
17712 (*::lhs_op2_relation): Ditto.
17713 (*::op1_op2_relation): Ditto.
17714 (*::fold_range): Use new VREL enumerated values.
17715 (minus_op1_op2_relation_effect): Ditto.
17716 (range_relational_tests): Ditto.
17717 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
17718 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
17720 (*_op1_op2_relation): Return relation_kind.
17721 (relop_early_resolve): Use VREL_UNDEFINED.
17722 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
17723 * value-relation.cc (VREL_LAST): Change enumerated value.
17724 (vrel_range_assert): Delete.
17725 (print_relation): Remove range assert.
17726 (rr_negate_table): Adjust table to use new enumerated values..
17727 (relation_negate): Remove range assert.
17728 (rr_swap_table): Adjust.
17729 (relation_swap): Remove range assert.
17730 (rr_intersect_table): Adjust.
17731 (relation_intersect): Remove range assert.
17732 (rr_union_table): Adjust.
17733 (relation_union): Remove range assert.
17734 (rr_transitive_table): Adjust.
17735 (relation_transitive): Remove range assert.
17736 (equiv_oracle::query_relation): Use new VREL enumerated values.
17737 (equiv_oracle::register_relation): Ditto.
17738 (relation_oracle::register_stmt): Ditto.
17739 (dom_oracle::set_one_relation): Ditto.
17740 (dom_oracle::register_transitives): Ditto.
17741 (dom_oracle::query_relation): Ditto.
17742 (path_oracle::register_relation): Ditto.
17743 (path_oracle::query_relation): Ditto.
17744 * value-relation.h (enum relation_kind_t): New relation_kind.
17745 (*_op1_op2_relation): Adjust prototypes.
17747 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17749 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
17750 * value-range.cc (irange::legacy_verbose_union_): Add return value.
17751 (irange::irange_single_pair_union): New.
17752 (irange::irange_union): Add return value.
17753 * value-range.h (class irange): Adjust prototypes.
17755 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17757 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
17758 (irange::irange_contains_p): New.
17759 (irange::irange_intersect): Add return value.
17760 * value-range.h (class irange): Adjust prototypes.
17762 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17764 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
17765 had_global value instead.
17767 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17769 PR tree-optimization/104547
17770 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
17771 the op1/op2 relation to the relation call.
17772 * range-op.cc (*::lhs_op1_relation): Add param.
17773 (*::lhs_op2_relation): Ditto.
17774 (operator_minus::lhs_op1_relation): New.
17775 (range_relational_tests): Add relation param.
17776 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
17778 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17780 * gimple-range.cc (gimple_ranger::register_side_effects): First check
17781 if the DEF should be exported as a global.
17782 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
17783 which will export globals.
17784 (execute_ranger_vrp): Remove call to export_global_ranges.
17786 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17788 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
17790 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
17792 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
17794 (ranger_cache::entry_range): Add rfd_mode parameter.
17795 (ranger_cache::exit_range): Ditto.
17796 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
17797 (ranger_cache::range_of_expr): Adjust call to entry_range.
17798 (ranger_cache::range_on_edge): Split to edge_range and call.
17799 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
17800 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
17801 mutiple predecessors.
17802 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
17803 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
17806 2022-05-13 Alexandre Oliva <oliva@adacore.com>
17808 * gimple-harden-conditionals.cc: Include sbitmap.h.
17809 (pass_harden_conditional_branches::execute): Skip new blocks.
17810 (pass_harden_compares::execute): Likewise.
17812 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
17815 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
17816 mve_memory_operand.
17817 (*movmisalign<mode>_mve_load): Likewise.
17818 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
17820 (@movmisalign<mode>): ... thus. Use generic predicates and then
17821 rework operands if they are not valid. For MVE rework to a
17822 narrower element size if the alignment is not high enough.
17824 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
17826 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
17827 when there is no write-back. Fix use when strict is true.
17829 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17831 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
17834 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
17836 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
17837 extzvsi_internal): Rename from extv, extv_internal, extzv and
17838 extzv_internal, respectively.
17840 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
17842 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
17843 is the same on the LHS and RHS before rewriting one with the model
17846 2022-05-13 Richard Biener <rguenther@suse.de>
17848 * gimple-fold.cc (gimple_build): Adjust for new
17850 * gimple-fold.h (gimple_build): New main APIs with
17851 iterator, insert direction and iterator update.
17852 (gimple_build): New forwarder template.
17853 (clear_padding_type_may_have_padding_p): Remove.
17854 (clear_type_padding_in_mask): Likewise.
17855 (arith_overflowed_p): Likewise.
17856 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
17857 (clear_type_padding_in_mask): Likewise.
17858 (arith_overflowed_p): Likewise.
17859 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
17860 (gimplify_build2): Likewise.
17861 (gimplify_build1): Likewise.
17862 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
17864 * gengtype.cc (open_base_files): Re-order includes.
17865 * builtins.cc: Re-order gimple-fold.h include.
17866 * calls.cc: Likewise.
17867 * cgraphbuild.cc: Likewise.
17868 * cgraphunit.cc: Likewise.
17869 * config/rs6000/rs6000-builtin.cc: Likewise.
17870 * config/rs6000/rs6000-call.cc: Likewise.
17871 * config/rs6000/rs6000.cc: Likewise.
17872 * config/s390/s390.cc: Likewise.
17873 * expr.cc: Likewise.
17874 * fold-const.cc: Likewise.
17875 * function-tests.cc: Likewise.
17876 * gimple-match-head.cc: Likewise.
17877 * gimple-range-fold.cc: Likewise.
17878 * gimple-ssa-evrp-analyze.cc: Likewise.
17879 * gimple-ssa-evrp.cc: Likewise.
17880 * gimple-ssa-sprintf.cc: Likewise.
17881 * gimple-ssa-warn-access.cc: Likewise.
17882 * gimplify.cc: Likewise.
17883 * graphite-isl-ast-to-gimple.cc: Likewise.
17884 * ipa-cp.cc: Likewise.
17885 * ipa-devirt.cc: Likewise.
17886 * ipa-prop.cc: Likewise.
17887 * omp-low.cc: Likewise.
17888 * pointer-query.cc: Likewise.
17889 * range-op.cc: Likewise.
17890 * tree-cfg.cc: Likewise.
17891 * tree-if-conv.cc: Likewise.
17892 * tree-inline.cc: Likewise.
17893 * tree-object-size.cc: Likewise.
17894 * tree-ssa-ccp.cc: Likewise.
17895 * tree-ssa-dom.cc: Likewise.
17896 * tree-ssa-forwprop.cc: Likewise.
17897 * tree-ssa-ifcombine.cc: Likewise.
17898 * tree-ssa-loop-ivcanon.cc: Likewise.
17899 * tree-ssa-math-opts.cc: Likewise.
17900 * tree-ssa-pre.cc: Likewise.
17901 * tree-ssa-propagate.cc: Likewise.
17902 * tree-ssa-reassoc.cc: Likewise.
17903 * tree-ssa-sccvn.cc: Likewise.
17904 * tree-ssa-strlen.cc: Likewise.
17905 * tree-ssa.cc: Likewise.
17906 * value-pointer-equiv.cc: Likewise.
17907 * vr-values.cc: Likewise.
17909 2022-05-13 Alexandre Oliva <oliva@adacore.com>
17911 PR rtl-optimization/105455
17912 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
17913 probabilities for newly-conditional edges.
17915 2022-05-13 liuhongt <hongtao.liu@intel.com>
17917 PR tree-optimization/102583
17918 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
17919 contiguous stride in the VEC_PERM_EXPR.
17921 2022-05-12 Richard Biener <rguenther@suse.de>
17923 PR rtl-optimization/105577
17924 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
17925 edges before running fast DCE via df_analyze.
17927 2022-05-12 Richard Biener <rguenther@suse.de>
17929 PR tree-optimization/105562
17930 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
17931 against all CLOBBER defs if there's not an obvious must-alias
17932 and we are not doing redundant store elimination.
17933 (vn_walk_cb_data::redundant_store_removal_p): New field.
17934 (vn_reference_lookup_pieces): Initialize it.
17935 (vn_reference_lookup): Add argument to specify if we are
17936 doing redundant store removal.
17937 (eliminate_dom_walker::eliminate_stmt): Specify we do.
17938 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
17940 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
17943 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
17944 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
17945 New define_split pattern.
17947 2022-05-12 Jakub Jelinek <jakub@redhat.com>
17949 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
17950 if null_pointer_node.
17951 (gimplify_scan_omp_clauses): Likewise.
17952 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
17955 2022-05-11 Patrick Palka <ppalka@redhat.com>
17957 * tree.h (TREE_VEC_BEGIN): Define.
17958 (TREE_VEC_END): Correct 'length' member access.
17959 (class tree_vec_range): Define.
17961 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
17963 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
17965 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
17967 * config/rs6000/rs6000.md: Use d instead of <Ff>.
17969 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
17971 * config/rs6000/constraints.md (register_constraint "f"): Use
17972 RS6000_CONSTRAINT_d.
17973 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
17974 RS6000_CONSTRAINT_f.
17975 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
17976 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
17977 RS6000_CONSTRAINT_d.
17979 2022-05-11 Richard Biener <rguenther@suse.de>
17981 * gimple-fold.h (gimple_build): Use variadic template
17982 functions for the gimple_build API forwarders without
17983 location_t argument.
17985 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
17987 PR middle-end/70090
17988 * asan.cc (initialize_sanitizer_builtins): Register
17989 __builtin_dynamic_object_size if necessary.
17991 2022-05-11 Richard Biener <rguenther@suse.de>
17993 PR rtl-optimization/105559
17994 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
17995 for non-debug insns.
17997 2022-05-11 Richard Biener <rguenther@suse.de>
17999 * generic-match-head.cc: Include tree-eh.h.
18000 * match.pd ((cond ...) cmp X): New simplification inspired
18001 by fold_binary_op_with_conditional_arg.
18002 (eq/ne (cmp ...) true/false): Likewise.
18004 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
18006 * doc/install.texi: Don't document '--with-hsa-runtime',
18007 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
18009 2022-05-11 Martin Liska <mliska@suse.cz>
18012 * doc/install.texi: Document the configure option --with-zstd.
18014 2022-05-11 Martin Liska <mliska@suse.cz>
18016 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
18017 compute index in cpu_features2.
18018 (set_cpu_feature): Likewise.
18019 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
18020 loop for cpu_features2 and use NOP_EXPRs.
18022 2022-05-11 Richard Biener <rguenther@suse.de>
18024 PR bootstrap/105551
18025 * opts.cc (finish_options): Also disable var-tracking if
18026 !DWARF2_DEBUGGING_INFO.
18028 2022-05-11 liuhongt <hongtao.liu@intel.com>
18031 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
18032 pre_reload define_insn_and_split.
18033 (*vec_setv2di_0_zero_extendhi_1): Ditto.
18034 (*vec_set<mode>_0_zero_extendsi): Ditto.
18035 (*vec_setv2di_0_zero_extendsi_1): Ditto.
18036 (ssewvecmode): New mode attr.
18037 (ssewvecmodelower): Ditto.
18038 (ssepackmodelower): Ditto.
18040 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
18042 * config/rs6000/constraints.md (register constraint v): Use
18043 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
18045 2022-05-11 Martin Liska <mliska@suse.cz>
18048 * config/riscv/riscv.opt: Remove Separate from
18049 -msmall-data-limit=.
18050 * optc-gen.awk: Report error for the described situation.
18051 * gcc.cc: Use Separate syntax.
18052 * opts.cc (gen_command_line_string): Change option name.
18054 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
18057 * match.pd (minmax): Skip constant folding for fmin/fmax when both
18058 arguments are sNaN or one is sNaN and another is NaN.
18060 2022-05-10 Jakub Jelinek <jakub@redhat.com>
18062 PR tree-optimization/105528
18063 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
18064 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
18066 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
18068 * doc/md.texi (Defining Mode Iterators): Correct example replacement
18071 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
18073 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
18075 (fmin<mode>3, fmax<mode>3): New insns.
18077 2022-05-10 Richard Biener <rguenther@suse.de>
18079 * tree-if-conv.cc (fold_build_cond_expr): Use
18080 match-and-simplify to simplify the condition.
18081 (ifcvt_follow_ssa_use_edges): Remove.
18082 (predicate_scalar_phi): Use follow_all_ssa_edges.
18084 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
18086 PR middle-end/100400
18087 * omp-oacc-kernels-decompose.cc
18088 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
18089 call 'internal_error'.
18091 2022-05-10 Richard Biener <rguenther@suse.de>
18093 PR middle-end/105537
18094 * toplev.cc (process_options): Move flag_var_tracking
18096 * opts.cc (finish_options): ... here.
18098 2022-05-10 Martin Liska <mliska@suse.cz>
18100 * basic-block.h (struct basic_block_d): Use void *
18102 * cfgloop.h: Likewise.
18103 * cgraph.h: Likewise.
18104 * gengtype-state.cc (state_ident_by_name): Likewise.
18105 (record_type): Likewise.
18106 (read_state_already_seen_type): Likewise.
18107 * gengtype.cc (dump_type): Likewise.
18108 (input_file_by_name): Likewise.
18110 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
18111 * ipa-utils.h (struct ipa_dfs_info): Likewise.
18112 * plugin.cc (htab_hash_plugin): Likewise.
18114 2022-05-10 Richard Biener <rguenther@suse.de>
18116 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
18117 API with !GENERATOR_FILE.
18118 * opts.cc (global_options): Poison.
18119 (global_options_set): Likewise.
18120 (finish_options): Refer to options via opts.
18122 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
18123 Roger Sayle <roger@nextmovesoftware.com>
18125 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
18126 alternative when optimizing for size and the immediate operand is
18127 const_0_to_127_operand.
18128 (*andqi_2_maybe_si): Likewise.
18129 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
18131 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
18133 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
18134 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
18137 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
18140 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
18141 true only for 8-byte vector modes.
18143 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
18145 PR middle-end/70090
18146 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
18147 (instrument_object_size): Get dynamic object size expression.
18149 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
18151 PR preprocessor/101168
18152 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
18153 Avoid empty identifier.
18155 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
18158 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
18159 as a generic MMX mode instead of V4HImode.
18160 (zero_all_mm_registers): Use SET to zero instead of MOV for
18161 zeroing scratch registers.
18162 (ix86_zero_call_used_regs): Likewise.
18164 2022-05-09 liuhongt <hongtao.liu@intel.com>
18167 * config/i386/i386-expand.cc
18168 (expand_vec_perm_pslldq_psrldq_por): New function.
18169 (ix86_expand_vec_perm_const_1): Try
18170 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
18171 4/5-instruction sequence.
18173 2022-05-09 Martin Liška <mliska@suse.cz>
18175 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
18176 * system.h (STATIC_ASSERT): Define as static_assert for C++
18177 and fallback to array index in C.
18179 2022-05-09 Richard Biener <rguenther@suse.de>
18181 PR tree-optimization/105517
18182 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
18183 offset can be represented in the POINTER_PLUS_EXPR IL.
18184 (vn_reference_insert): Likewise.
18185 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
18187 2022-05-09 Richard Biener <rguenther@suse.de>
18189 * match.pd: Remove #if GIMPLE guards around ! using patterns.
18191 2022-05-09 liuhongt <hongtao.liu@intel.com>
18194 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
18196 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
18197 define_insn_and_split.
18199 2022-05-09 Alex Coplan <alex.coplan@arm.com>
18201 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
18202 symtab state is PARSING.
18204 2022-05-09 Martin Liska <mliska@suse.cz>
18206 * system.h (LIKELY): Define.
18207 (UNLIKELY): Likewise.
18208 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
18210 * dse.cc (set_position_unneeded): Likewise.
18211 (set_all_positions_unneeded): Likewise.
18212 (any_positions_needed_p): Likewise.
18213 (all_positions_needed_p): Likewise.
18214 * expmed.cc (flip_storage_order): Likewise.
18215 * genmatch.cc (dt_simplify::gen_1): Likewise.
18216 * ggc-common.cc (gt_pch_save): Likewise.
18217 * print-rtl.cc: Likewise.
18218 * rtl-iter.h (T>::array_type::~array_type): Likewise.
18219 (T>::next): Likewise.
18220 * rtl-ssa/internals.inl: Likewise.
18221 * rtl-ssa/member-fns.inl: Likewise.
18222 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
18223 (rtx_properties::try_to_add_dest): Likewise.
18224 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
18225 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
18226 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
18227 * sort.cc (likely): Likewise.
18228 (mergesort): Likewise.
18229 * wide-int.h (wi::eq_p): Likewise.
18230 (wi::ltu_p): Likewise.
18231 (wi::cmpu): Likewise.
18232 (wi::bit_and): Likewise.
18233 (wi::bit_and_not): Likewise.
18234 (wi::bit_or): Likewise.
18235 (wi::bit_or_not): Likewise.
18236 (wi::bit_xor): Likewise.
18237 (wi::add): Likewise.
18238 (wi::sub): Likewise.
18240 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
18242 * config/riscv/arch-canonicalize: Handle g correctly.
18244 2022-05-07 Marek Polacek <polacek@redhat.com>
18248 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
18250 2022-05-06 Jason Merrill <jason@redhat.com>
18252 * diagnostic-color.cc: Add fnname and targs color entries.
18253 * doc/invoke.texi: Document them.
18255 2022-05-06 Jason Merrill <jason@redhat.com>
18257 * vec.h (vec::iterate): Fix comment.
18259 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
18262 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
18263 and -mpower10-fusion options for inlining purposes.
18265 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
18267 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
18269 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
18271 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
18272 omp_runtime_apis array.
18274 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
18276 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
18277 (scan_sharing_clauses): Check a restriction on allocate clause.
18279 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
18281 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
18282 and ORDERED clause conflict errors. Add check for GRAINSIZE and
18283 NUM_TASKS on TASKLOOP.
18285 2022-05-05 Martin Liska <mliska@suse.cz>
18287 * genautomata.cc (create_composed_state): Remove dead code.
18288 * graphite-poly.cc (print_pdrs): Likewise.
18289 * lto-wrapper.cc (run_gcc): Likewise.
18290 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
18293 2022-05-05 Martin Liska <mliska@suse.cz>
18295 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
18297 (gimple_gen_time_profiler): Likewise.
18299 2022-05-05 Martin Liska <mliska@suse.cz>
18301 * value-prof.cc (stream_out_histogram_value): Remove sanity
18304 2022-05-05 Richard Biener <rguenther@suse.de>
18306 PR tree-optimization/104162
18307 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
18308 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
18310 (vn_reference_insert): Likewise.
18312 2022-05-05 Richard Biener <rguenther@suse.de>
18314 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
18315 to real_value field.
18316 (tree_real_cst::value): Add real_value field.
18317 * tree.h (TREE_REAL_CST_PTR): Adjust.
18318 * tree.cc (build_real): Remove separate allocation.
18319 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
18322 2022-05-05 Richard Biener <rguenther@suse.de>
18324 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
18325 divisions with undefined overflow unconditionally.
18326 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
18327 overflow to defined.
18329 2022-05-05 Richard Biener <rguenther@suse.de>
18331 PR tree-optimization/105484
18332 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
18333 whether the CFG changed.
18334 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
18336 2022-05-05 Richard Biener <rguenther@suse.de>
18338 PR tree-optimization/104595
18339 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
18340 COND_EXPR do not fail if check_bool_pattern returns false.
18342 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
18344 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
18345 item that is in an outer data-sharing clause.
18347 2022-05-04 Richard Biener <rguenther@suse.de>
18349 PR tree-optimization/104658
18350 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
18351 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
18352 type on nodes we promote.
18353 (vectorizable_bb_reduc_epilogue): Deal with externalized
18355 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
18356 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
18358 2022-05-04 Richard Biener <rguenther@suse.de>
18360 PR tree-optimization/103116
18361 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
18362 case we need peeling for gaps even though GROUP_GAP is zero.
18364 2022-05-04 Martin Liska <mliska@suse.cz>
18366 * gengtype-state.cc (read_a_state_token): Remove dead code.
18367 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
18369 2022-05-04 Richard Biener <rguenther@suse.de>
18371 * gimplify.cc (gimplify_init_constructor): First gimplify,
18372 then simplify the result to a VECTOR_CST.
18374 2022-05-04 Jakub Jelinek <jakub@redhat.com>
18376 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
18377 element at the end of insn_conditions.
18378 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
18379 ARRAY_SIZE (insn_conditions).
18381 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
18384 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
18385 vector of booleans and MVE is not enabled.
18387 2022-05-04 Richard Biener <rguenther@suse.de>
18390 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
18391 Move debug stmts to the predecessor if moving to the
18392 destination is not possible.
18393 (remove_forwarder_block): Adjust.
18394 (remove_forwarder_block_with_phi): Likewise.
18396 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
18398 PR tree-optimization/102950
18399 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
18400 determine bounds of bitwise operations on signed types.
18401 (operator_bitwise_and::wi_fold): Call the above function.
18402 (operator_bitwise_or::wi_fold): Likewise.
18403 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
18404 result can't be zero if the operands can't be equal.
18406 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
18408 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
18409 protocol class methods linker-visible.
18411 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
18414 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
18415 define_insn_and_split pattern.
18417 2022-05-03 Richard Biener <rguenther@suse.de>
18419 PR middle-end/105083
18420 * tree-scalar-evolution.cc (scev_initialize): Verify we
18421 have appropriate loop state.
18422 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
18423 loop init and finalization.
18425 2022-05-03 Richard Biener <rguenther@suse.de>
18427 PR middle-end/105461
18428 * opts.cc (finish_options): Match the condition to
18429 disable flag_var_tracking to that of process_options.
18431 2022-05-03 Richard Biener <rguenther@suse.de>
18433 * opts.cc: #undef OPTIONS_SET_P.
18434 (finish_options): Use opts_set instead of OPTIONS_SET_P.
18436 2022-05-03 Richard Biener <rguenther@suse.de>
18438 PR tree-optimization/105394
18439 * tree-vect-generic.cc (expand_vector_condition): Adjust
18440 comp_width for non-integer mode masks as well.
18442 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
18444 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
18445 omp_runtime_apis array.
18447 2022-05-02 Richard Biener <rguenther@suse.de>
18449 * tree-scalar-evolution.cc (expression_expensive_p):
18450 Never consider mismatched calls as cheap.
18452 2022-05-02 Richard Biener <rguenther@suse.de>
18454 PR tree-optimization/104240
18455 * tree-vect-slp.cc (op1_op0_map): New.
18456 (vect_get_operand_map): Handle compares.
18457 (vect_build_slp_tree_1): Support swapped operands for
18460 2022-05-02 Jakub Jelinek <jakub@redhat.com>
18463 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
18464 if there is no symtab node for the VAR_DECL.
18466 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
18468 * gcov-io.cc (gcov_rewrite): Clear the file error status.
18470 2022-05-02 Richard Biener <rguenther@suse.de>
18472 PR tree-optimization/105437
18473 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
18474 case where last_stmt alters control flow.
18476 2022-05-02 Richard Biener <rguenther@suse.de>
18478 * dojump.cc (do_jump): Use CASE_CONVERT.
18479 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
18481 2022-05-02 Jakub Jelinek <jakub@redhat.com>
18483 * system.h: Include initializer_list.
18485 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
18487 * config/rs6000/constraints.md (Y constraint): Fix comment.
18489 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
18491 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
18492 VR_RANGE before passing a piecewise range to set_range_info_raw.
18494 2022-04-30 Patrick Palka <ppalka@redhat.com>
18496 * gengtype.cc (adjust_field_tree_exp): Remove.
18497 (adjust_field_type): Don't handle the "tree_exp" special attribute.
18498 * tree-core.h (struct tree_exp): Remove "special" and "desc"
18499 attributes. Add "length" attribute.
18501 2022-04-29 Martin Jambor <mjambor@suse.cz>
18504 * cgraph.cc (cgraph_node::remove): Release body of the node this
18505 is clone_of if appropriate.
18507 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
18510 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
18512 2022-04-29 Richard Biener <rguenther@suse.de>
18514 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
18515 (canonicalize_cond_expr_cond): Move here from gimple.cc,
18516 allow both COND_EXPR and GIMPLE_COND forms.
18517 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
18518 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
18519 * gimple.h (canonicalize_cond_expr_cond): Likewise.
18520 * gimple-loop-versioning.cc (loop_versioning::version_loop):
18521 Use is_gimple_condexpr_for_cond.
18522 * tree-parloops.cc (gen_parallel_loop): Likewise.
18523 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
18524 a proper cond expr after canonicalize_cond_expr_cond.
18525 Use is_gimple_condexpr_for_cond where appropriate.
18526 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
18527 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
18529 2022-04-29 Richard Biener <rguenther@suse.de>
18531 * gimple-iterator.h (gsi_after_labels): Add overload for
18533 (gsi_start_1): Rename to gsi_start and take a reference.
18534 (gsi_last_1): Likewise.
18535 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
18536 * omp-low.cc (lower_rec_input_clauses): Likewise.
18537 (lower_omp_scan): Likewise.
18539 2022-04-29 Richard Biener <rguenther@suse.de>
18541 PR tree-optimization/105431
18542 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
18543 (powi_as_mults): Use absu_hwi.
18544 (gimple_expand_builtin_powi): Remove now pointless n != -n
18547 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
18549 * range-op.cc (empty_range_varying): Move to range-op.h.
18550 (range_true): Move to range.h.
18551 (range_false): Same.
18552 (range_true_and_false): Same.
18553 (enum bool_range_state): Move to range-op.h.
18554 (relop_early_resolve): Same.
18555 (operator_equal::op1_op2_relation): Abstract code to...
18556 (equal_op1_op2_relation): ...here.
18557 (operator_not_equal::op1_op2_relation): Abstract code to...
18558 (not_equal_op1_op2_relation): ...here.
18559 (operator_lt::op1_op2_relation): Abstract code to...
18560 (lt_op1_op2_relation): ...here.
18561 (operator_le::op1_op2_relation): Abstract code to...
18562 (le_op1_op2_relation): ...here.
18563 (operator_gt::op1_op2_relation): Abstract code to...
18564 (gt_op1_op2_relation): ...here.
18565 (operator_ge::op1_op2_relation): Abstract code to...
18566 (ge_op1_op2_relation): ...here.
18567 (class range_op_table): Move to range-op.h.
18568 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
18569 (not_equal_op1_op2_relation): Same.
18570 (lt_op1_op2_relation): Same.
18571 (le_op1_op2_relation): Same.
18572 (gt_op1_op2_relation): Same.
18573 (ge_op1_op2_relation): Same.
18574 (enum bool_range_state): Same.
18575 (get_bool_state): Same.
18576 (empty_range_varying): Same.
18577 (relop_early_resolve): Same.
18578 (class range_op_table): Same.
18579 * range.h (range_true): Same.
18580 (range_false): Same.
18581 (range_true_and_false): Same.
18583 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
18585 * gimple-fold.cc (size_must_be_zero_p): Use reference
18587 * gimple-ssa-evrp-analyze.cc
18588 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
18589 intersect to legacy_verbose_intersect.
18590 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
18592 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
18593 instead of value_range_equiv.
18594 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
18595 instead of pointer.
18596 (find_case_label_range): Same.
18597 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
18598 (value_range_equiv::legacy_verbose_intersect): ...this.
18599 (value_range_equiv::union_): Rename to...
18600 (value_range_equiv::legacy_verbose_union_): ...this.
18601 * value-range-equiv.h (class value_range_equiv): Rename union and
18602 intersect to legacy_verbose_{intersect,union}.
18603 * value-range.cc (irange::union_): Rename to...
18604 (irange::legacy_verbose_union_): ...this.
18605 (irange::intersect): Rename to...
18606 (irange::legacy_verbose_intersect): ...this.
18607 * value-range.h (irange::union_): Rename union_ to
18608 legacy_verbose_union.
18609 (irange::intersect): Rename intersect to legacy_verbose_intersect.
18610 * vr-values.cc (vr_values::update_value_range): Same.
18611 (vr_values::extract_range_for_var_from_comparison_expr): Same.
18612 (vr_values::extract_range_from_cond_expr): Rename union_ to
18613 legacy_verbose_union.
18614 (vr_values::extract_range_from_phi_node): Same.
18616 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
18618 * gimple-ssa-evrp-analyze.cc
18619 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
18621 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
18622 * ipa-prop.cc (ipcp_update_vr): Same.
18623 * tree-inline.cc (remap_ssa_name): Same.
18624 * tree-ssa-copy.cc (fini_copy_prop): Same.
18625 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
18626 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
18627 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
18628 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
18629 * tree-ssa-strlen.cc (set_strlen_range): Same.
18630 (strlen_pass::handle_builtin_string_cmp): Same.
18631 * tree-ssanames.cc (set_range_info): Make static.
18632 (duplicate_ssa_name_range_info): Make static and add a new variant
18633 calling the static.
18634 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
18635 (duplicate_ssa_name_range_info): Remove version taking a
18636 range_info_def and replace with a version taking SSA names.
18637 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
18639 (vect_do_peeling): Same.
18640 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
18641 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
18643 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
18645 * value-range.h (irange::irange): Use set_undefined.
18647 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
18649 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
18650 irange::intersect (wide_int, wide_int).
18651 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
18652 (adjust_imagpart_expr): Same.
18653 * value-range.h (irange::intersect (wide_int, wide_int)): Make
18656 2022-04-29 Richard Biener <rguenther@suse.de>
18658 PR tree-optimization/104322
18659 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
18661 2022-04-29 Richard Biener <rguenther@suse.de>
18663 PR middle-end/105376
18664 * tree.cc (build_real): Special case dconst* arguments
18665 for decimal floating point types.
18667 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18669 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
18670 Environments): New section.
18672 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18674 * doc/gcov-tool.texi: Document merge-stream subcommand.
18675 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
18676 subcommand of gcov-tool.
18677 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
18678 (print_merge_stream_usage_message): New.
18679 (merge_stream_usage): Likewise.
18680 (do_merge_stream): Likewise.
18681 (print_usage): Call print_merge_stream_usage_message().
18682 (main): Call do_merge_stream() to execute merge-stream subcommand.
18684 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18686 * gcov-io.cc (gcov_file_error): New enum.
18687 (gcov_var): Use gcov_file_error enum for the error member.
18688 (gcov_open): Use GCOV_FILE_NO_ERROR.
18689 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
18690 (gcov_write): Likewise.
18691 (gcov_write_unsigned): Likewise.
18692 (gcov_write_string): Likewise.
18693 (gcov_read_bytes): Set error code if EOF is reached.
18694 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
18696 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18698 * gcov-io.cc (GCOV_MODE_STDIN): Define.
18699 (gcov_position): For gcov-tool, return calculated position if file is
18701 (gcov_open): For gcov-tool, use stdin if filename is NULL.
18702 (gcov_close): For gcov-tool, do not close stdin.
18703 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
18704 (gcov_sync): For gcov-tool, discard input if file is stdin.
18706 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18708 * doc/invoke.texi (fprofile-info-section): Mention
18709 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
18710 standard language. Fix minor example code issues.
18711 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
18713 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18715 * gcov-io.cc (gcov_seek): Make it static.
18716 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
18718 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18720 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
18721 (gcov_output_files): Open files for reading and writing.
18723 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18725 * gcov-io.cc (gcov_open): Always use the mode parameter.
18726 * gcov-io.h (gcov_open): Declare it unconditionally.
18728 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
18730 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
18731 (profile_merge): Allow merging of directories which contain no profile
18734 2022-04-28 David Malcolm <dmalcolm@redhat.com>
18736 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
18739 2022-04-28 Jakub Jelinek <jakub@redhat.com>
18741 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
18742 temporary only if out overlaps compare_op, not when it overlaps
18745 2022-04-28 Jakub Jelinek <jakub@redhat.com>
18748 * cgraph.cc (cgraph_node::verify_node): Don't verify
18749 semantic_interposition flag against
18750 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
18752 2022-04-28 Jakub Jelinek <jakub@redhat.com>
18755 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
18756 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
18759 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
18761 * doc/install.texi (Configuration): Remove misleading text
18762 around LE PowerPC Linux multilibs.
18764 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18767 * doc/install.texi (Tools/packages necessary for building GCC)
18768 (GDC): Document libphobos requirement.
18769 (Host/target specific installation notes for GCC, *-*-solaris2*):
18770 Document libphobos and GDC specifics.
18772 2022-04-28 Richard Biener <rguenther@suse.de>
18774 PR tree-optimization/105219
18775 * tree-vect-loop.cc (vect_transform_loop): Disable
18776 special code narrowing the vectorized epilogue max
18777 iterations when peeling for alignment or gaps was in effect.
18779 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
18781 * config/loongarch/loongarch.cc
18782 (loongarch_flatten_aggregate_field): Ignore empty fields for
18785 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
18787 * config/loongarch/loongarch.md: Add fdiv define_expand template,
18788 then generate floating-point division and floating-point reciprocal
18791 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
18793 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
18794 to PLV instruction templates.
18796 2022-04-27 Richard Biener <rguenther@suse.de>
18798 PR middle-end/104492
18799 * gimple-ssa-warn-access.cc
18800 (pass_waccess::warn_invalid_pointer): Exclude equality compare
18801 diagnostics for all kind of invalidations.
18802 (pass_waccess::check_dangling_uses): Fix post-dominator query.
18803 (pass_waccess::check_pointer_uses): Likewise.
18805 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
18808 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
18810 * config/s390/s390.cc (s390_single_field_struct_p): New function.
18811 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
18812 (s390_function_arg_float): Likewise.
18814 2022-04-27 Jakub Jelinek <jakub@redhat.com>
18816 PR sanitizer/105396
18817 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
18818 where offset is bigger than off but smaller than m_prev_offset + 32
18819 bits by pushing one or more 0 bytes. Sink the
18820 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
18821 all cases to the end of the function.
18823 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
18826 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
18829 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
18831 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
18832 data-share memory exhausted" error more verbose.
18834 2022-04-26 Martin Liska <mliska@suse.cz>
18837 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
18838 (run_gcc): Parse OPT_fdiagnostics_urls_.
18839 (main): Initialize global_dc.
18841 2022-04-26 Jakub Jelinek <jakub@redhat.com>
18843 PR rtl-optimization/105314
18844 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
18845 operand is equal to if_info->x, instead use the non-zero operand
18846 as one of the operands of AND with if_info->x as target.
18848 2022-04-26 Jakub Jelinek <jakub@redhat.com>
18850 PR tree-optimization/105374
18851 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
18852 !fold_convertible_p rather than assuming fold_convert must succeed.
18854 2022-04-26 Jakub Jelinek <jakub@redhat.com>
18857 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
18858 el_mode == DFmode ? double_type_node : float_type_node instead of
18859 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
18861 2022-04-25 David Malcolm <dmalcolm@redhat.com>
18864 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
18865 the location of new_stmt in all places that don't already set it,
18866 whether explicitly, or via a call to gsi_replace.
18868 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
18870 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
18872 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
18874 PR tree-optimization/105276
18875 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
18876 existing global range with calculated value.
18878 2022-04-25 Richard Biener <rguenther@suse.de>
18880 PR tree-optimization/105368
18881 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
18883 2022-04-25 Richard Biener <rguenther@suse.de>
18885 PR tree-optimization/100810
18886 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
18887 (find_ssa_undef): New function.
18888 (add_candidate_1): Avoid adding derived candidates with
18889 undefined SSA names and mark the original ones.
18890 (determine_group_iv_cost_generic): Reject rewriting
18891 uses with a different IV when that involves undefined SSA names.
18893 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
18896 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
18897 bsd_libc_has_function.
18898 * targhooks.cc (bsd_libc_has_function): New function.
18899 Expand the supported math functions to inclue C99 libm.
18900 * targhooks.h (bsd_libc_has_function): New Prototype.
18902 2022-04-25 Richard Biener <rguenther@suse.de>
18904 PR rtl-optimization/105231
18905 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
18906 with landing pad > 0 is from i3. Put any REG_EH_REGION note
18907 on i3 or drop it if the insn can not trap.
18908 (try_combine): Ensure that we can merge REG_EH_REGION notes
18909 with non-call exceptions. Ensure we are not splitting a
18910 trapping part of an insn with non-call exceptions when there
18911 is any REG_EH_REGION note to preserve.
18913 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
18916 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
18917 Add parentheses for parameters and djust format.
18918 (_mm512_mask_scalef_round_pd): Ditto.
18919 (_mm512_maskz_scalef_round_pd): Ditto.
18920 (_mm512_scalef_round_ps): Ditto.
18921 (_mm512_mask_scalef_round_ps): Ditto.
18922 (_mm512_maskz_scalef_round_ps): Ditto.
18923 (_mm_scalef_round_sd): Use _mm_undefined_pd.
18924 (_mm_scalef_round_ss): Use _mm_undefined_ps.
18925 (_mm_mask_scalef_round_sd): New macro.
18926 (_mm_mask_scalef_round_ss): Ditto.
18927 (_mm_maskz_scalef_round_sd): Ditto.
18928 (_mm_maskz_scalef_round_ss): Ditto.
18930 2022-04-23 Jakub Jelinek <jakub@redhat.com>
18933 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
18934 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
18937 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
18940 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
18941 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
18942 (pack<mode>_hard for FMOVE128): ... this...
18943 (pack<mode>_soft for FMOVE128): ... and this.
18945 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
18947 * doc/extend.texi: Correct "This" to "These".
18949 2022-04-22 Jakub Jelinek <jakub@redhat.com>
18951 PR rtl-optimization/105333
18952 * rtlanal.cc (replace_rtx): Use simplify_subreg or
18953 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
18956 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
18960 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
18961 the "Z" alternatives in {l,st}{f,xs}iwzx.
18962 (zero_extendhi<mode>2 for EXTHI): Ditto.
18963 (zero_extendsi<mode>2 for EXTSI): Ditto.
18964 (*movsi_internal1): Ditto.
18965 (*mov<mode>_internal1 for QHI): Ditto.
18966 (movsd_hardfloat): Ditto.
18968 2022-04-21 Martin Liska <mliska@suse.cz>
18970 * configure.ac: Enable compressed debug sections for mold
18972 * configure: Regenerate.
18974 2022-04-21 Jakub Jelinek <jakub@redhat.com>
18977 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
18980 2022-04-20 Richard Biener <rguenther@suse.de>
18982 PR tree-optimization/104912
18983 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
18984 the cost model check to a separate BB to make sure it is
18985 checked first and not combined with other version checks.
18987 2022-04-20 Richard Biener <rguenther@suse.de>
18989 PR tree-optimization/105312
18990 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
18991 VCOND and VCONDU for EQ and NE.
18993 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
18996 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
18997 poly_offset_int to avoid overflow.
18998 (modref_access_node::update2): likewise.
19000 2022-04-20 Jakub Jelinek <jakub@redhat.com>
19003 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
19004 to opt_for_fn (decl, flag_semantic_interposition).
19005 * cgraphclones.cc (cgraph_node::create_clone): Copy over
19006 semantic_interposition flag.
19008 2022-04-19 Sergei Trofimovich <siarheit@google.com>
19010 PR gcov-profile/105282
19011 * value-prof.cc (stream_out_histogram_value): Allow negative counts
19012 on HIST_TYPE_INDIR_CALL.
19014 2022-04-19 Jakub Jelinek <jakub@redhat.com>
19017 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
19018 use gen_raw_REG instead of gen_rtx_REG and copy over also
19019 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
19021 2022-04-19 Richard Biener <rguenther@suse.de>
19023 PR tree-optimization/104010
19024 PR tree-optimization/103941
19025 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
19026 we run into stmts in patterns continue walking those
19027 for uses outside of the vectorized region instead of
19028 marking the lane live.
19030 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
19032 * doc/install.texi <CRIS>: Remove references to removed websites and
19033 adjust for cris-*-elf being the only remaining toolchain.
19035 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
19037 * doc/invoke.texi <CRIS>: Remove references to options for removed
19038 subtarget cris-axis-linux-gnu and tweak wording accordingly.
19040 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
19042 * doc/install.texi (Specific): Adjust mingw-w64 download link.
19044 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
19046 * config/i386/smmintrin.h: Correct target pragma from sse4.1
19047 and sse4.2 to crc32 for crc32 intrinsics.
19049 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
19052 * ctfc.cc (ctf_dvd_ignore_insert): New function.
19053 (ctf_dvd_ignore_lookup): Likewise.
19054 (ctf_add_variable): Keep track of non-defining decl DIEs.
19055 (new_ctf_container): Initialize the new hash-table.
19056 (ctfc_delete_container): Empty hash-table.
19057 * ctfc.h (struct ctf_container): Add new hash-table.
19058 (ctf_dvd_ignore_lookup): New declaration.
19059 (ctf_add_variable): Add additional argument.
19060 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
19061 record for non-defining decl for which a defining decl exists
19063 (ctf_preprocess): Defer updating the number of global objts
19065 (output_ctf_header): Use ctfc_vars_list_count as some CTF
19066 variables may not make it to the final output.
19067 (output_ctf_vars): Likewise.
19068 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
19069 if this is known to be a non-defining decl DIE.
19071 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
19073 * ctfc.h (struct ctf_container): Introduce a new member.
19074 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
19077 2022-04-14 Jakub Jelinek <jakub@redhat.com>
19080 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
19081 or rotates by VOIDmode constant integer shift count use word_mode
19082 for the operand if int_mode is narrower than word.
19084 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
19086 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
19087 (s390_get_unit_mask): Likewise.
19088 (s390_is_fpd): Likewise.
19089 (s390_is_fxd): Likewise.
19090 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
19091 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
19093 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
19095 * config/s390/3931.md: New file.
19097 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
19099 PR tree-optimization/105254
19100 * config/aarch64/aarch64.cc
19101 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
19102 loop_vec_info as argument. Restrict the unroll factor to values
19103 that divide the VF.
19104 (aarch64_vector_costs::finish_cost): Update call accordingly.
19106 2022-04-13 Richard Biener <rguenther@suse.de>
19108 PR tree-optimization/105263
19109 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
19110 negates in multiplication chains with DFP.
19112 2022-04-13 Jakub Jelinek <jakub@redhat.com>
19114 PR middle-end/105253
19115 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
19116 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
19117 comparisons or tree_nop_conversion_p checks.
19119 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
19122 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
19123 Add missing set to target_val at pause label.
19125 2022-04-13 Jakub Jelinek <jakub@redhat.com>
19128 * attribs.cc (decl_attributes): Don't set
19129 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
19132 2022-04-13 Richard Biener <rguenther@suse.de>
19134 PR tree-optimization/105250
19135 * fold-const.cc (fold_convertible_p): Revert
19136 r12-7979-geaaf77dd85c333, instead check for size equality
19137 of the vector types involved.
19139 2022-04-13 Richard Biener <rguenther@suse.de>
19142 2022-04-13 Richard Biener <rguenther@suse.de>
19144 PR tree-optimization/104912
19145 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
19146 the cost model check to a separate BB to make sure it is
19147 checked first and not combined with other version checks.
19149 2022-04-13 Richard Biener <rguenther@suse.de>
19151 PR tree-optimization/104912
19152 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
19153 the cost model check to a separate BB to make sure it is
19154 checked first and not combined with other version checks.
19156 2022-04-13 Jakub Jelinek <jakub@redhat.com>
19158 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
19160 2022-04-12 Antoni Boucher <bouanto@zoho.com>
19163 * reginfo.cc: New functions (clear_global_regs_cache,
19164 reginfo_cc_finalize) to avoid an issue where compiling the same
19165 code multiple times gives an error about assigning the same
19166 register to 2 global variables.
19167 * rtl.h: New function (reginfo_cc_finalize).
19168 * toplev.cc: Call it.
19170 2022-04-12 Antoni Boucher <bouanto@zoho.com>
19173 * toplev.cc: Call the new function tree_cc_finalize in
19175 * tree.cc: New functions (clear_nonstandard_integer_type_cache
19176 and tree_cc_finalize) to clear the cache of non-standard integer
19177 types to avoid having issues with some optimizations of
19178 bitcast where the SSA_NAME will have a size of a cached
19179 integer type that should have been invalidated, causing a
19180 comparison of integer constant to fail.
19181 * tree.h: New function (tree_cc_finalize).
19183 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
19186 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
19187 * config/nvptx/nvptx.opt (misa): Adjust comment.
19189 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
19192 2022-03-03 Tom de Vries <tdevries@suse.de>
19194 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
19196 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
19199 2022-03-31 Tom de Vries <tdevries@suse.de>
19201 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
19203 2022-04-12 Richard Biener <rguenther@suse.de>
19206 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
19207 include local escaped memory as obviously necessary stores.
19209 2022-04-12 Richard Biener <rguenther@suse.de>
19211 PR tree-optimization/105235
19212 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
19213 return whether the CFG changed.
19214 (execute_cse_sincos_1): Adjust.
19216 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
19219 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
19220 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
19221 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
19222 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
19223 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
19224 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
19225 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
19227 2022-04-12 Richard Biener <rguenther@suse.de>
19229 PR tree-optimization/105232
19230 * tree.cc (component_ref_size): Bail out for too large
19231 or non-constant sizes.
19233 2022-04-12 Richard Biener <rguenther@suse.de>
19235 PR tree-optimization/105226
19236 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
19237 we can split the exit of an outer loop we choose to version.
19239 2022-04-12 Jakub Jelinek <jakub@redhat.com>
19241 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
19242 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
19243 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
19244 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
19245 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
19247 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
19249 2022-04-12 Jakub Jelinek <jakub@redhat.com>
19252 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
19253 do_pending_stack_adjust.
19255 2022-04-12 Jakub Jelinek <jakub@redhat.com>
19257 PR rtl-optimization/105211
19258 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
19259 fails for TREE_TYPE (arg), retry it with
19260 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
19261 fails, emit call normally.
19263 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
19265 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
19266 * config.gcc: Add z16 as march/mtune switch.
19267 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
19268 Recognize z16 with -march=native.
19269 * config/s390/s390-opts.h (enum processor_type): Rename
19270 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
19271 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
19272 (PROCESSOR_3931_Z16): ... throughout the file.
19273 (s390_processor processor_table): Add z16 as cpu string.
19274 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
19276 (TARGET_CPU_ARCH14): Rename to ...
19277 (TARGET_CPU_Z16): ... this.
19278 (TARGET_CPU_ARCH14_P): Rename to ...
19279 (TARGET_CPU_Z16_P): ... this.
19280 (TARGET_ARCH14): Rename to ...
19281 (TARGET_Z16): ... this.
19282 (TARGET_ARCH14_P): Rename to ...
19283 (TARGET_Z16_P): ... this.
19284 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
19285 check TARGET_Z16 instead of TARGET_ARCH14.
19286 * config/s390/s390.opt: Add z16 to processor_type.
19287 * doc/invoke.texi: Document z16 and arch14.
19289 2022-04-12 chenglulu <chenglulu@loongson.cn>
19291 * config/loongarch/loongarch.cc: Fix bug for
19292 tmpdir-g++.dg-struct-layout-1/t033.
19294 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
19297 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
19298 to longcall functions.
19300 2022-04-11 Jason Merrill <jason@redhat.com>
19302 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
19304 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
19308 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
19310 2022-04-11 Jakub Jelinek <jakub@redhat.com>
19312 PR tree-optimization/105218
19313 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
19314 more than one predecessor or phi's bb more than 2 predecessors,
19315 reset phi result uses instead of adding a debug temp.
19317 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
19320 * config.gcc: Pass -misa-spec to arch-canonicalize and
19321 multilib-generator.
19322 * config/riscv/arch-canonicalize: Adding -misa-spec option.
19323 (SUPPORTED_ISA_SPEC): New.
19324 (arch_canonicalize): New argument `isa_spec`.
19325 Handle multiple ISA spec versions.
19326 * config/riscv/multilib-generator: Adding -misa-spec option.
19328 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
19330 * config/riscv/arch-canonicalize: Add TODO item.
19331 (IMPLIED_EXT): Sync.
19332 (arch_canonicalize): Checking until no change.
19334 2022-04-11 Tamar Christina <tamar.christina@arm.com>
19337 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
19340 2022-04-11 Jason Merrill <jason@redhat.com>
19343 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
19346 2022-04-11 Jakub Jelinek <jakub@redhat.com>
19348 PR tree-optimization/104639
19349 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
19350 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
19353 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
19355 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
19356 sign bit of the source ends up in CC.
19358 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
19361 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
19364 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
19366 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
19367 nondeterministic and side_effects flags.
19369 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
19372 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
19373 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
19374 (TARGET_CPU_MASK): Likewise.
19375 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
19376 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
19377 (aarch64_get_arch): Likewise.
19378 (aarch64_override_options): Use TARGET_CPU_NBITS.
19380 2022-04-08 Richard Biener <rguenther@suse.de>
19382 PR tree-optimization/105198
19383 * tree-predcom.cc (find_looparound_phi): Check whether
19384 the found memory location of the entry value is clobbered
19385 inbetween the value we want to use and loop entry.
19387 2022-04-08 Jakub Jelinek <jakub@redhat.com>
19389 PR tree-optimization/105189
19390 * fold-const.cc (make_range_step): Fix up handling of
19391 (unsigned) x +[low, -] ranges for signed x if low fits into
19394 2022-04-08 Richard Biener <rguenther@suse.de>
19396 PR tree-optimization/105175
19397 * tree-vect-stmts.cc (vectorizable_operation): Suppress
19398 -Wvector-operation-performance if using emulated vectors.
19399 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
19400 -Wvector-operation-performance when suppressed.
19401 (expand_vector_parallel): Likewise.
19402 (expand_vector_comparison): Likewise.
19403 (expand_vector_condition): Likewise.
19404 (lower_vec_perm): Likewise.
19405 (expand_vector_conversion): Likewise.
19407 2022-04-07 Tamar Christina <tamar.christina@arm.com>
19410 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
19411 (aarch64_general_init_builtins): Move LS64 code.
19412 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
19414 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
19415 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
19417 2022-04-07 Richard Biener <rguenther@suse.de>
19418 Jan Hubicka <hubicka@ucw.cz>
19421 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
19422 ref_may_alias_global_p, ref_may_alias_global_p,
19423 stmt_may_clobber_global_p, pt_solution_includes_global): Add
19424 bool parameters indicating whether escaped locals should be
19426 * tree-ssa-structalias.cc (pt_solution_includes_global):
19427 When the new escaped_nonlocal_p flag is true also consider
19428 pt->vars_contains_escaped.
19429 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
19430 Pass down new escaped_nonlocal_p flag.
19431 (ref_may_alias_global_p): Likewise.
19432 (stmt_may_clobber_global_p): Likewise.
19433 (ref_may_alias_global_p_1): Likewise. For decls also
19434 query the escaped solution if true.
19435 (ref_may_access_global_memory_p): Remove.
19436 (modref_may_conflict): Use ref_may_alias_global_p with
19437 escaped locals considered global.
19438 (ref_maybe_used_by_stmt_p): Adjust.
19439 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
19441 * tree-ssa-dse.cc (dse_classify_store): Likewise.
19442 * trans-mem.cc (thread_private_new_memory): Likewise, but
19443 consider escaped locals global.
19444 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
19446 2022-04-07 Richard Biener <rguenther@suse.de>
19448 PR tree-optimization/105185
19449 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
19450 modref query again.
19452 2022-04-07 Tamar Christina <tamar.christina@arm.com>
19455 * config/aarch64/aarch64-simd.md
19456 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
19457 (reduc_plus_scal_<mode>): ... This.
19458 (reduc_plus_scal_v4sf): Moved.
19459 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
19460 (reduc_plus_scal_v2si): ... This.
19462 2022-04-07 Jakub Jelinek <jakub@redhat.com>
19464 PR tree-optimization/102586
19465 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
19467 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
19468 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
19469 * gimple-fold.cc (clear_padding_type): Use ftype instead of
19470 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
19471 name try the lang_hooks.types.classtype_as_base langhook and
19472 if it returns non-NULL, use that instead of ftype for recursive call.
19474 2022-04-07 Jakub Jelinek <jakub@redhat.com>
19476 PR tree-optimization/105150
19477 * tree.cc (tree_builtin_call_types_compatible_p): New function.
19478 (get_call_combined_fn): Use it.
19480 2022-04-07 Richard Biener <rguenther@suse.de>
19482 PR middle-end/105165
19483 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
19486 2022-04-07 liuhongt <hongtao.liu@intel.com>
19488 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
19490 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
19492 (<code><mode>3<mask_name>): Ditto.
19493 (*<code><mode>3<mask_name>): Ditto.
19494 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
19499 2022-04-06 Jakub Jelinek <jakub@redhat.com>
19501 PR rtl-optimization/104985
19502 * combine.cc (struct undo): Add where.regno member.
19503 (do_SUBST_MODE): Rename to ...
19504 (subst_mode): ... this. Change first argument from rtx * into int,
19505 operate on regno_reg_rtx[regno] and save regno into where.regno.
19506 (SUBST_MODE): Remove.
19507 (try_combine): Use subst_mode instead of SUBST_MODE, change first
19508 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
19509 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
19510 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
19511 instead of *undo->where.r.
19512 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
19513 argument from regno_reg_rtx[whatever] to whatever.
19515 2022-04-06 Jakub Jelinek <jakub@redhat.com>
19518 * config/sh/sh.opt (mdiv=): Add Save.
19520 2022-04-06 Martin Liska <mliska@suse.cz>
19523 * common.opt: Document properly based on what it does.
19524 * gcc.cc (display_help): Unify with what we have in common.opt.
19525 * opts.cc (common_handle_option): Do not print undocumented
19528 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
19530 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
19531 cxx17_empty_base_field_p fields and set an indicator.
19532 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
19533 (mips_function_value_1): Inform psABI change about C++17 empty
19536 2022-04-06 Jakub Jelinek <jakub@redhat.com>
19538 PR tree-optimization/105150
19539 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
19540 builtin_decl_explicit here...
19541 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
19544 2022-04-06 Richard Biener <rguenther@suse.de>
19546 PR tree-optimization/105173
19547 * tree-ssa-reassoc.cc (find_insert_point): Get extra
19548 insert_before output argument and compute it.
19549 (insert_stmt_before_use): Adjust.
19550 (rewrite_expr_tree): Likewise.
19552 2022-04-06 Richard Biener <rguenther@suse.de>
19555 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
19556 out for non-pointer arguments.
19558 2022-04-06 Richard Biener <rguenther@suse.de>
19560 PR tree-optimization/105163
19561 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
19564 2022-04-06 Jakub Jelinek <jakub@redhat.com>
19566 PR tree-optimization/105150
19567 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
19568 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
19569 preferrably on builtin_decl_explicit decl rather than fndecl.
19570 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
19571 gimple_builtin_call_types_compatible_p here.
19573 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
19575 PR tree-optimization/103761
19576 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
19577 the ncopies parameter with an slp_node parameter. Calculate the
19578 number of vectors based on it and vectype. Rename lambda to
19579 group_memory_nvectors.
19580 (vectorizable_store, vectorizable_load): Update calls accordingly.
19582 2022-04-06 Martin Liska <mliska@suse.cz>
19584 * doc/invoke.texi: Document it.
19586 2022-04-06 Richard Biener <rguenther@suse.de>
19588 PR tree-optimization/105148
19589 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
19590 2 and 3 of ARRAY_REFs.
19592 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
19594 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
19595 (*andnottf3): Replace with...
19596 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
19598 2022-04-06 Richard Biener <rguenther@suse.de>
19600 PR tree-optimization/105142
19601 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
19602 basic-block parameter.
19603 (maybe_fold_or_comparisons): Likewise.
19604 * gimple-fold.cc (follow_outer_ssa_edges): New.
19605 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
19606 when an outer condition basic-block is specified.
19607 (and_comparisons_1, and_var_with_comparison,
19608 and_var_with_comparison_1, or_comparisons_1,
19609 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
19610 down the outer condition basic-block.
19611 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
19612 basic-block of the outer condition.
19614 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
19617 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
19618 comparison codes UNLT/UNLE/UNGT/UNGE.
19620 2022-04-05 David Malcolm <dmalcolm@redhat.com>
19622 * doc/extend.texi (Common Function Attributes): Document that
19623 'access' does not imply 'nonnull'.
19625 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
19628 * config/i386/mmx.md (*movv2qi_internal):
19629 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
19631 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
19633 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
19634 define_expand and turn operands 0 and 1 from REGs to MEMs.
19635 (*aarch64_cpymemdi): New pattern.
19636 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
19637 from a REG to a MEM.
19638 (*aarch64_setmemdi): New pattern.
19639 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
19640 copy_to_mode_reg on all three registers. Replace the original
19641 MEM addresses rather than creating wild reads and writes.
19642 (aarch64_expand_setmem_mops): Likewise for the size and for the
19643 destination memory and address.
19645 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
19648 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
19649 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
19650 from aarch64_simd_switcher.
19651 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
19653 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
19654 (register_tuple_type): Add more asserts. Expect the alignment
19655 of the structure to be subject to flag_pack_struct and
19656 maximum_field_alignment. Set aarch64_simd_tuple_modes.
19657 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
19658 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
19659 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
19660 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
19661 while calling aarch64_init_simd_builtins.
19662 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
19663 (sve_switcher::~sve_switcher): Remove code now performed by
19664 aarch64_simd_switcher.
19666 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
19669 * config/aarch64/aarch64-sve-builtins.cc
19670 (function_resolver::infer_vector_or_tuple_type): Use error_n
19671 for "%d vectors" messages.
19673 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
19675 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
19676 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
19679 2022-04-05 Richard Biener <rguenther@suse.de>
19682 * passes.def (pass_walloca): Move early instance into
19683 pass_build_ssa_passes to make SSA form available.
19685 2022-04-05 liuhongt <hongtao.liu@intel.com>
19688 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
19690 (ix86_reorg): Call ix86_split_stlf_stall_load.
19691 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
19694 2022-04-05 Alexandre Oliva <oliva@adacore.com>
19696 * targhooks.cc (default_zero_call_used_regs): Attempt to group
19697 regs that the target refuses to use in their natural modes.
19698 (zcur_select_mode_rtx): New.
19699 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
19700 (hard_regno_max_nregs): Define.
19701 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
19703 2022-04-04 Alex Coplan <alex.coplan@arm.com>
19705 * doc/match-and-simplify.texi: Fix typos.
19707 2022-04-04 Jakub Jelinek <jakub@redhat.com>
19710 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
19711 only if configured with --enable-maintainer-mode, otherwise compare
19712 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
19713 if they differ, emit a message and fail.
19715 2022-04-04 Jakub Jelinek <jakub@redhat.com>
19718 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
19719 * config/aarch64/aarch64-tune.md: Regenerated.
19721 2022-04-04 Richard Biener <rguenther@suse.de>
19723 PR tree-optimization/105132
19724 * tree-vect-stmts.cc (vectorizable_operation): Check that
19725 the input vectors have the same number of elements.
19727 2022-04-04 Richard Biener <rguenther@suse.de>
19729 PR middle-end/105140
19730 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
19732 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
19735 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
19736 (delay slot descripts): Use different delay slot description when
19737 the insn as the "bbi" attribute.
19738 (bbi, bbin patterns): Set the bbi attribute to yes.
19740 2022-04-03 Jakub Jelinek <jakub@redhat.com>
19743 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
19744 using word as target for expand_simple_binop when doing ASHIFT and
19747 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
19749 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
19750 NULL before dereferencing it.
19752 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
19754 * config/i386/i386.cc (zero_all_st_registers): Return the value of
19756 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
19757 the return value of zero_all_st_registers.
19758 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
19759 * function.cc (gen_call_used_regs_seq): Add an assertion.
19760 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
19762 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
19765 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
19766 fields, and inform if it causes a psABI change.
19768 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
19771 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
19772 zero-width bit-fields and set up an indicator.
19773 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
19774 (mips_function_value_1): Diagnose when the presense of a C++
19775 zero-width bit-field changes function returning in GCC 12.
19777 2022-04-01 Jakub Jelinek <jakub@redhat.com>
19779 PR tree-optimization/104645
19780 * tree-ssa-phiopt.cc (value_replacement): If assign has
19781 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
19782 statement with constant evaluation.
19784 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
19786 * config/mips/mips.cc (mips_expand_prologue):
19787 IPL is 8bit for MCU ASE.
19789 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
19792 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
19793 (MTFSB0): Likewise.
19794 (MTFSB1): Likewise.
19795 (SET_FPSCR_RN): Likewise.
19796 (SET_FPSCR_DRN): Mark nosoft and no32bit.
19798 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
19800 * doc/options.texi (Option file format): Clarifications around
19801 option definition records' help texts.
19803 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
19805 * optc-gen.awk <END>: Fix "Multiple different help strings" error
19808 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
19810 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
19811 determine_suggested_unroll_factor and m_has_avg.
19812 (determine_suggested_unroll_factor): New function.
19813 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
19814 to set m_nosve_pattern.
19815 (aarch64_vector_costs::finish_costs): Use
19816 determine_suggested_unroll_factor.
19817 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
19818 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
19820 2022-03-31 Martin Jambor <mjambor@suse.cz>
19823 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
19824 (ipa_get_jf_ancestor_keep_null): New function.
19825 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
19827 (compute_complex_assign_jump_func): Pass false to keep_null
19828 parameter of ipa_set_ancestor_jf.
19829 (compute_complex_ancestor_jump_func): Pass true to keep_null
19830 parameter of ipa_set_ancestor_jf.
19831 (update_jump_functions_after_inlining): Carry over keep_null from the
19832 original ancestor jump-function or merge them.
19833 (ipa_write_jump_function): Stream keep_null flag.
19834 (ipa_read_jump_function): Likewise.
19835 (ipa_print_node_jump_functions_for_edge): Print the new flag.
19836 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
19837 member function known_nonzero_p.
19838 (ipcp_bits_lattice::known_nonzero_p): New.
19839 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
19841 (ipcp_bits_lattice::meet_with): Likewise.
19842 (propagate_bits_across_jump_function): Simplify. Pass true in
19843 drop_all_ones when it is necessary.
19844 (propagate_aggs_across_jump_function): Take care of keep_null
19846 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
19849 2022-03-31 Martin Jambor <mjambor@suse.cz>
19852 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
19853 which do not fit the known value_range.
19855 2022-03-31 Martin Jambor <mjambor@suse.cz>
19858 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
19859 always when an ADDR_EXPR constant is known to reach a load because
19860 of inlining, not just when removing an ADDR reference.
19862 2022-03-31 Richard Biener <rguenther@suse.de>
19864 PR tree-optimization/105109
19865 * tree-ssa.cc (execute_update_addresses_taken): Suppress
19866 diagnostics on the load of the other complex component.
19868 2022-03-31 Tom de Vries <tdevries@suse.de>
19870 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
19872 2022-03-31 Richard Biener <rguenther@suse.de>
19874 PR rtl-optimization/105091
19875 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
19878 2022-03-31 Richard Biener <rguenther@suse.de>
19881 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
19884 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
19885 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
19887 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
19889 * gcov-io.cc (gcov_read_string): Reword documentation comment.
19891 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
19893 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
19895 (NEG_V4SF): Likewise.
19896 (NEG_V4SI): Likewise.
19897 (NEG_V8HI): Likewise.
19898 (NEG_V2DF): Move to [vsx] stanza.
19899 (NEG_V2DI): Likewise.
19901 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
19903 PR middle-end/105032
19904 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
19906 2022-03-30 Tom de Vries <tdevries@suse.de>
19907 Tobias Burnus <tobias@codesourcery.com>
19909 * doc/invoke.texi (march): Document __PTX_SM__.
19910 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
19911 __PTX_ISA_VERSION_MINOR__.
19913 2022-03-30 Jakub Jelinek <jakub@redhat.com>
19915 PR sanitizer/105093
19916 * ubsan.cc (instrument_object_size): If t is equal to inner and
19917 is a decl other than global var, punt. When emitting call to
19918 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
19920 2022-03-30 Jakub Jelinek <jakub@redhat.com>
19922 PR tree-optimization/105094
19923 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
19924 bitsize <= 0 rather than just == 0.
19926 2022-03-30 Tom de Vries <tdevries@suse.de>
19928 * doc/invoke.texi (misa, mptx): Update.
19929 (march, march-map): Add.
19931 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
19933 * opt-functions.awk (n_args): New function.
19934 (lang_enabled_by): Merge function into...
19935 * optc-gen.awk <END>: ... sole user here.
19936 Improve diagnostics.
19938 2022-03-29 Marek Polacek <polacek@redhat.com>
19939 Jakub Jelinek <jakub@redhat.com>
19941 PR middle-end/103597
19942 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
19943 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
19944 (gimplify_cond_expr): Set UNUSED_LABEL_P.
19945 * tree.h (UNUSED_LABEL_P): New.
19947 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
19949 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
19950 be any VSX register.
19952 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
19955 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
19956 zero-sized bit-fields. Detect cases where a warning may be needed.
19957 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
19958 zero-sized bit-field has caused parameter passing to change.
19960 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
19963 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
19964 bit-fields. Detect cases where a warning may be needed.
19965 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
19966 a zero-sized bit-field has caused parameter passing to change.
19968 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
19971 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
19972 ARM_PCS_AAPCS_LOCAL.
19974 2022-03-29 Tom de Vries <tdevries@suse.de>
19977 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
19978 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
19979 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
19980 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
19982 2022-03-29 Tom de Vries <tdevries@suse.de>
19984 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
19987 2022-03-29 Tom de Vries <tdevries@suse.de>
19990 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
19992 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
19994 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
19995 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
19996 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
19997 (TARGET_USE_GATHER_4PARTS): New macro.
19998 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
19999 (X86_TUNE_USE_GATHER_4PARTS): New tune
20001 2022-03-29 Tom de Vries <tdevries@suse.de>
20003 * config/nvptx/nvptx.opt (march): Add alias of misa.
20005 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
20006 Lulu Cheng <chenglulu@loongson.cn>
20008 * doc/install.texi: Add LoongArch options section.
20009 * doc/invoke.texi: Add LoongArch options section.
20010 * doc/md.texi: Add LoongArch options section.
20012 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
20013 Lulu Cheng <chenglulu@loongson.cn>
20015 * config/loongarch/loongarch-c.cc
20017 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
20018 Lulu Cheng <chenglulu@loongson.cn>
20020 * config/loongarch/larchintrin.h: New file.
20021 * config/loongarch/loongarch-builtins.cc: New file.
20023 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
20024 Lulu Cheng <chenglulu@loongson.cn>
20026 * config/host-linux.cc: Add LoongArch support.
20027 * config/loongarch/loongarch-protos.h: New file.
20028 * config/loongarch/loongarch-tune.h: Likewise.
20029 * config/loongarch/loongarch.cc: Likewise.
20030 * config/loongarch/loongarch.h: Likewise.
20032 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
20033 Lulu Cheng <chenglulu@loongson.cn>
20035 * config/loongarch/constraints.md: New file.
20036 * config/loongarch/generic.md: New file.
20037 * config/loongarch/la464.md: New file.
20038 * config/loongarch/loongarch-ftypes.def: New file.
20039 * config/loongarch/loongarch-modes.def: New file.
20040 * config/loongarch/loongarch.md: New file.
20041 * config/loongarch/predicates.md: New file.
20042 * config/loongarch/sync.md: New file.
20044 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
20045 Lulu Cheng <chenglulu@loongson.cn>
20047 * configure: Regenerate file.
20049 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
20050 Lulu Cheng <chenglulu@loongson.cn>
20052 * common/config/loongarch/loongarch-common.cc: New file.
20053 * config/loongarch/genopts/genstr.sh: New file.
20054 * config/loongarch/genopts/loongarch-strings: New file.
20055 * config/loongarch/genopts/loongarch.opt.in: New file.
20056 * config/loongarch/loongarch-str.h: New file.
20057 * config/loongarch/gnu-user.h: New file.
20058 * config/loongarch/linux.h: New file.
20059 * config/loongarch/loongarch-cpu.cc: New file.
20060 * config/loongarch/loongarch-cpu.h: New file.
20061 * config/loongarch/loongarch-def.c: New file.
20062 * config/loongarch/loongarch-def.h: New file.
20063 * config/loongarch/loongarch-driver.cc: New file.
20064 * config/loongarch/loongarch-driver.h: New file.
20065 * config/loongarch/loongarch-opts.cc: New file.
20066 * config/loongarch/loongarch-opts.h: New file.
20067 * config/loongarch/loongarch.opt: New file.
20068 * config/loongarch/t-linux: New file.
20069 * config/loongarch/t-loongarch: New file.
20070 * config.gcc: Add LoongArch support.
20071 * configure.ac: Add LoongArch support.
20073 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
20075 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
20078 2022-03-29 Richard Biener <rguenther@suse.de>
20080 PR tree-optimization/105080
20081 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
20084 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
20086 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
20087 (output_ctf_vars): Likewise.
20089 2022-03-28 Jason Merrill <jason@redhat.com>
20092 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
20094 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
20097 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
20100 2022-03-28 Tom de Vries <tdevries@suse.de>
20103 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
20104 * config/nvptx/nvptx-gen.opt: Regenerate.
20105 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
20106 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
20109 2022-03-28 David Malcolm <dmalcolm@redhat.com>
20112 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
20113 to loads then stores, set the location of the new load stmt.
20115 2022-03-28 Richard Biener <rguenther@suse.de>
20117 PR tree-optimization/105070
20118 * tree-switch-conversion.h
20119 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
20121 * tree-switch-conversion.cc
20122 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
20123 cond with location.
20124 (bit_test_cluster::emit): Annotate all generated expressions
20127 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
20129 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
20131 2022-03-28 liuhongt <hongtao.liu@intel.com>
20134 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
20135 alternative 4 from sse4_noavx to noavx.
20137 2022-03-28 Jakub Jelinek <jakub@redhat.com>
20139 PR tree-optimization/105056
20140 * tree-predcom.cc (component::component): Initialize also comp_step.
20142 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
20145 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
20148 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
20150 PR middle-end/104885
20151 * calls.cc (mark_stack_region_used): Check that the region
20152 is within the allocated size of stack_usage_map.
20154 2022-03-26 Jakub Jelinek <jakub@redhat.com>
20156 PR rtl-optimization/103775
20157 * recog.cc (check_invalid_inc_dec): New function.
20158 (insn_invalid_p): Return 1 if REG_INC operand overlaps
20161 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
20164 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
20165 (aes<aesklvariant>u8): Likewise.
20167 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
20170 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
20171 Replace "Yv" with "x".
20172 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
20173 (ssse3_psign<mode>3): Likewise.
20175 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
20177 * reload.cc (find_reloads): Align comment with code where
20178 considering the intersection of register classes then tweaking the
20179 regclass for the current alternative or rejecting it.
20181 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
20185 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
20187 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
20188 (mve_vec_unpack<US>_hi_<mode>): Delete.
20189 (@mve_vec_pack_trunc_lo_<mode>): Delete.
20190 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
20191 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
20192 from vec-common.md.
20193 (vec_unpack<US>_lo_<mode>): Likewise.
20194 (vec_pack_trunc_<mode>): Rename from
20195 neon_quad_vec_pack_trunc_<mode>.
20196 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
20197 (vec_unpack<US>_lo_<mode>): Delete.
20198 (vec_pack_trunc_<mode>): Delete.
20200 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
20202 PR middle-end/104971
20203 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
20204 regs to clear remove_p flag.
20206 2022-03-25 Richard Biener <rguenther@suse.de>
20208 PR tree-optimization/105053
20209 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
20210 the correct live-out stmt for a reduction chain.
20212 2022-03-25 Richard Biener <rguenther@suse.de>
20214 PR middle-end/105049
20215 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
20216 CONSTRUCTOR first elements.
20218 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
20221 * doc/invoke.texi (Static Analyzer Options): Move
20222 @ignore block after @gccoptlist's '}' for 'make pdf'.
20224 2022-03-25 David Malcolm <dmalcolm@redhat.com>
20227 * doc/invoke.texi (Static Analyzer Options): Add
20228 -fdump-analyzer-untracked.
20230 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
20233 * doc/invoke.texi: Document that enabling taint analyzer
20234 checker disables some warnings from `-fanalyzer`.
20236 2022-03-24 Alexandre Oliva <oliva@adacore.com>
20239 * gimple-harden-conditionals.cc (detach_value): Keep temps
20242 2022-03-24 Alexandre Oliva <oliva@adacore.com>
20244 PR middle-end/104975
20245 * gimple-harden-conditionals.cc
20246 (pass_harden_compares::execute): Force split in case of
20249 2022-03-24 Jakub Jelinek <jakub@redhat.com>
20252 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
20253 field0 or field1 is not a FIELD_DECL, return false.
20255 2022-03-24 Richard Biener <rguenther@suse.de>
20257 * tree-predcom.cc (chain::chain): Add CTOR.
20258 (component::component): Likewise.
20259 (pcom_worker::release_chain): Use delete.
20260 (release_components): Likewise.
20261 (pcom_worker::filter_suitable_components): Likewise.
20262 (pcom_worker::split_data_refs_to_components): Use new.
20263 (make_invariant_chain): Likewise.
20264 (make_rooted_chain): Likewise.
20265 (pcom_worker::combine_chains): Likewise.
20266 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
20267 Make sure to release previously constructed scalar_results.
20268 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
20270 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
20271 Release m_flag_set_edges.
20273 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
20275 PR tree-optimization/104970
20276 * tree-object-size.cc (parm_object_size): Restrict size
20277 computation scenarios to explicit access attributes.
20279 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
20282 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
20285 2022-03-23 Richard Biener <rguenther@suse.de>
20288 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
20289 use of movmisalign when either the source or destination
20290 decl is properly aligned.
20292 2022-03-23 Richard Biener <rguenther@suse.de>
20294 PR rtl-optimization/105028
20295 * ira-color.cc (form_threads_from_copies): Remove unnecessary
20296 copying of the sorted_copies tail.
20298 2022-03-23 Martin Liska <mliska@suse.cz>
20300 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
20302 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
20303 Reword the error message.
20305 2022-03-23 liuhongt <hongtao.liu@intel.com>
20308 * config/i386/sse.md (ssePSmodelower): New.
20309 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
20310 lowpart_subreg to avoid NULL_RTX.
20311 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
20312 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
20313 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
20314 <avx512>_<complexopname>_<mode>_mask<round_name>,
20315 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
20316 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
20317 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
20318 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
20319 float<floatunssuffix><mode>v4hf2,
20320 float<floatunssuffix>v2div2hf2,
20321 fix<fixunssuffix>_truncv4hf<mode>2,
20322 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
20324 trunc<mode>v4hf2,truncv2dfv2hf2,
20325 *avx512bw_permvar_truncv16siv16hi_1,
20326 *avx512bw_permvar_truncv16siv16hi_1_hf,
20327 *avx512f_permvar_truncv8siv8hi_1,
20328 *avx512f_permvar_truncv8siv8hi_1_hf,
20329 *avx512f_vpermvar_truncv8div8si_1,
20330 *avx512f_permvar_truncv32hiv32qi_1,
20331 *avx512f_permvar_truncv16hiv16qi_1,
20332 *avx512f_permvar_truncv4div4si_1,
20333 *avx512f_pshufb_truncv8hiv8qi_1,
20334 *avx512f_pshufb_truncv4siv4hi_1,
20335 *avx512f_pshufd_truncv2div2si_1,
20336 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
20337 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
20339 2022-03-22 Tom de Vries <tdevries@suse.de>
20342 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
20343 Use % as register prefix.
20345 2022-03-22 Tom de Vries <tdevries@suse.de>
20347 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
20348 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
20351 2022-03-22 Tom de Vries <tdevries@suse.de>
20353 * config/nvptx/nvptx.opt (mexperimental): New option.
20355 2022-03-22 Tom de Vries <tdevries@suse.de>
20358 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
20359 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
20361 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
20362 (nvptx_asm_output_def_from_decls): New function.
20363 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
20364 gcc_unreachable ().
20365 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
20366 nvptx_asm_output_def_from_decls.
20367 * config/nvptx/nvptx.opt (malias): New opt.
20369 2022-03-22 Tom de Vries <tdevries@suse.de>
20373 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
20374 sync (or uniform warp check for mptx < 6.0).
20376 2022-03-22 Richard Biener <rguenther@suse.de>
20378 PR tree-optimization/105012
20379 * tree-if-conv.cc (ifcvt_local_dce): Only call
20380 dse_classify_store when we have a VDEF.
20382 2022-03-22 Martin Liska <mliska@suse.cz>
20385 * config/nvptx/nvptx.cc (handle_ptx_version_option):
20386 Fix option wrapping in an error message.
20388 2022-03-22 Martin Liska <mliska@suse.cz>
20391 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
20392 Wrap const keyword.
20394 2022-03-22 Martin Liska <mliska@suse.cz>
20396 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
20399 2022-03-22 Martin Liska <mliska@suse.cz>
20402 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
20403 Use %qs instead of (%qs).
20405 2022-03-22 Martin Liska <mliska@suse.cz>
20408 * config/i386/i386-options.cc (ix86_option_override_internal):
20409 Use '%qs' instead of '(%qs)'.
20411 2022-03-22 Martin Liska <mliska@suse.cz>
20414 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
20415 Use 'qs' and remove usage '(%qs)'.
20416 (aarch64_handle_attr_cpu): Likewise.
20417 (aarch64_handle_attr_tune): Likewise.
20418 (aarch64_handle_attr_isa_flags): Likewise.
20420 2022-03-22 Tamar Christina <tamar.christina@arm.com>
20421 Andre Vieira <andre.simoesdiasvieira@arm.com>
20423 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
20425 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
20427 (neoverse512tvb_tunings): Likewise.
20429 2022-03-22 Tamar Christina <tamar.christina@arm.com>
20430 Andre Vieira <andre.simoesdiasvieira@arm.com>
20432 * config/aarch64/aarch64.cc (demeter_addrcost_table,
20433 demeter_regmove_cost, demeter_advsimd_vector_cost,
20434 demeter_sve_vector_cost, demeter_scalar_issue_info,
20435 demeter_advsimd_issue_info, demeter_sve_issue_info,
20436 demeter_vec_issue_info, demeter_vector_cost,
20437 demeter_tunings): New tuning structs.
20438 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
20440 * config/aarch64/aarch64-cores.def: Add entry for demeter.
20441 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
20443 2022-03-22 Tamar Christina <tamar.christina@arm.com>
20444 Andre Vieira <andre.simoesdiasvieira@arm.com>
20446 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
20447 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
20448 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
20449 tunings to use cpu_memmov_cost struct.
20451 2022-03-22 Tamar Christina <tamar.christina@arm.com>
20452 Andre Vieira <andre.simoesdiasvieira@arm.com>
20454 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
20455 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
20456 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
20457 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
20458 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
20459 (neoversen2_tunings): Use new structs and update tuning flags.
20460 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
20463 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
20465 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
20468 2022-03-22 liuhongt <hongtao.liu@intel.com>
20471 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
20472 following splitter to reversed condition.
20474 2022-03-22 Jakub Jelinek <jakub@redhat.com>
20476 PR rtl-optimization/104989
20477 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
20478 sorry for passing too large argument, instead set sibcall_failure
20479 for pass == 0, or a new normal_failure flag otherwise. If
20480 normal_failure is set, don't assert all stack has been deallocated
20481 at the end and throw away the whole insn sequence.
20483 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
20485 * print-tree.cc: Change array length
20487 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
20490 * config/i386/sse.md
20491 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
20492 Use avx512f_movsf_mask instead of vmovaps or vblend, and
20493 force_reg before lowpart_subreg.
20494 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
20496 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
20499 * common/config/i386/i386-common.cc
20500 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
20501 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
20503 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
20506 * common/config/i386/cpuinfo.h (get_available_features): Pass
20507 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
20510 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
20512 PR middle-end/104869
20513 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
20514 (clobber_group::next_clobber): Likewise.
20515 (def_lookup::prev_def): Rename to...
20516 (def_lookup::last_def_of_prev_group): ...this.
20517 (def_lookup::next_def): Rename to...
20518 (def_lookup::first_def_of_next_group): ...this.
20519 (def_lookup::matching_or_prev_def): Rename to...
20520 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
20521 (def_lookup::matching_or_next_def): Rename to...
20522 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
20523 (def_lookup::prev_def): New function, taking the lookup insn as
20525 (def_lookup::next_def): Likewise.
20526 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
20527 (def_lookup::last_def_of_prev_group): ...this.
20528 (def_lookup::next_def): Rename to...
20529 (def_lookup::first_def_of_next_group): ...this.
20530 (def_lookup::matching_or_prev_def): Rename to...
20531 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
20532 (def_lookup::matching_or_next_def): Rename to...
20533 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
20534 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
20536 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
20537 (clobber_group::next_clobber): Likewise.
20538 (def_lookup::prev_def): Likewise.
20539 (def_lookup::next_def): Likewise.
20540 (function_info::make_use_available): Pass the lookup insn to
20541 def_lookup::prev_def and def_lookup::next_def.
20543 2022-03-21 Martin Liska <mliska@suse.cz>
20545 * doc/invoke.texi: Document min-pagesize parameter.
20547 2022-03-21 Richard Biener <rguenther@suse.de>
20549 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
20550 we are estimating niter of loop.
20552 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
20554 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
20555 Update flag name and mask name.
20556 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
20557 misc macro for vector extensions.
20558 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
20559 (MASK_VECTOR_ELEN_32): ... this.
20560 (MASK_VECTOR_EEW_64): Rename to ...
20561 (MASK_VECTOR_ELEN_64): ... this.
20562 (MASK_VECTOR_EEW_FP_32): Rename to ...
20563 (MASK_VECTOR_ELEN_FP_32): ... this.
20564 (MASK_VECTOR_EEW_FP_64): Rename to ...
20565 (MASK_VECTOR_ELEN_FP_64): ... this.
20566 (TARGET_VECTOR_ELEN_32): New.
20567 (TARGET_VECTOR_ELEN_64): Ditto.
20568 (TARGET_VECTOR_ELEN_FP_32): Ditto.
20569 (TARGET_VECTOR_ELEN_FP_64): Ditto.
20570 (TARGET_MIN_VLEN): Ditto.
20571 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
20572 (riscv_vector_elen_flags): ... this.
20574 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
20577 * config/i386/sse.md
20578 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
20579 Correct round operand for intel dialect.
20581 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
20583 * diagnostic.cc (diagnostic_cc_tests): Rename to...
20584 (c_diagnostic_cc_tests): ...this.
20585 * opt-problem.cc (opt_problem_cc_tests): Rename to...
20586 (c_opt_problem_cc_tests): ...this.
20587 * selftest-run-tests.cc (selftest::run_tests): No longer run
20588 opt_problem_cc_tests or diagnostic_cc_tests.
20589 * selftest.h (diagnostic_cc_tests): Remove declaration.
20590 (opt_problem_cc_tests): Likewise.
20592 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
20595 * hash-traits.h (struct typed_const_free_remove): New.
20596 (struct free_string_hash): New.
20597 * pass_manager.h: Use free_string_hash.
20598 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
20599 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
20601 2022-03-19 Jakub Jelinek <jakub@redhat.com>
20603 PR middle-end/104971
20604 * config/i386/i386-expand.cc
20605 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
20606 don't push/pop anything and just return const0_rtx.
20608 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
20610 PR rtl-optimization/104961
20611 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
20613 2022-03-18 Jason Merrill <jason@redhat.com>
20615 * tree.h (IDENTIFIER_LENGTH): Add comment.
20617 2022-03-18 Jakub Jelinek <jakub@redhat.com>
20619 PR middle-end/99578
20620 PR middle-end/100680
20621 PR tree-optimization/100834
20622 * params.opt (--param=min-pagesize=): New parameter.
20624 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
20625 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
20626 of zero for pointer constants equal or larger than min-pagesize.
20628 2022-03-18 Tom de Vries <tdevries@suse.de>
20630 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
20631 Set gfor location only when dealing with a OMP_TASKLOOP.
20633 2022-03-18 Tom de Vries <tdevries@suse.de>
20635 * gimplify.cc (gimplify_omp_for): Set taskloop location.
20637 2022-03-18 Tom de Vries <tdevries@suse.de>
20640 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
20641 is executed unconditionally.
20643 2022-03-18 liuhongt <hongtao.liu@intel.com>
20646 * config/i386/i386.md (*movhi_internal): Set attr type from HI
20647 to HF for alternative 12 under TARGET_AVX512FP16.
20649 2022-03-18 Cui,Lili <lili.cui@intel.com>
20652 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
20653 * doc/invoke.texi: Update documents for Intel sapphirerapids.
20655 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
20658 PR tree-optimization/90356
20659 * config/i386/i386.md (*movtf_internal): Don't guard
20660 standard_sse_constant_p clause by optimize_function_for_size_p.
20661 (*movdf_internal): Likewise.
20662 (*movsf_internal): Likewise.
20664 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
20666 PR tree-optimization/102943
20667 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
20668 dominators and apply intermediary outgoing edge ranges.
20670 2022-03-17 Richard Biener <rguenther@suse.de>
20672 PR tree-optimization/104960
20673 * passes.def: Add pass parameter to pass_sink_code, mark
20674 last one to unsplit edges.
20675 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
20676 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
20677 when we need to unsplit edges.
20679 2022-03-17 Jakub Jelinek <jakub@redhat.com>
20681 PR middle-end/103984
20682 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
20683 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
20684 and asan unpoisioning, then append the temporary sequence and
20685 finally the TARGET_EXPR_CLEANUP clobbers.
20687 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
20689 * config/i386/sse.md: Delete corrupt character/typo.
20691 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
20694 * config/i386/sse.md (sse2_movq128): New define_expand to
20695 preserve previous named instruction.
20696 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
20697 generalized to VI8F_128 (both V2DI and V2DF).
20699 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
20701 PR tree-optimization/104941
20702 * tree-object-size.cc (size_for_offset): Make useless conversion
20703 check lighter and assign result of fold_convert to OFFSET.
20705 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
20708 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
20709 pushing target("general-regs-only").
20711 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
20713 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
20714 Add version info for zk, zks and zkn.
20716 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
20718 * common/config/riscv/riscv-common.cc
20719 (riscv_combine_info): New.
20720 (riscv_subset_list::handle_combine_ext): Combine back into zk to
20721 maintain the canonical order in isa strings.
20722 (riscv_subset_list::parse): Ditto.
20723 * config/riscv/riscv-subset.h (handle_combine_ext): New.
20725 2022-03-16 Richard Biener <rguenther@suse.de>
20727 PR tree-optimization/102008
20728 * passes.def: Move the added code sinking pass before the
20729 preceeding phiopt pass.
20731 2022-03-16 Patrick Palka <ppalka@redhat.com>
20734 * doc/invoke.texi (C++ Dialect Options): Document
20735 -ffold-simple-inlines.
20737 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
20739 PR tree-optimization/104942
20740 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
20742 2022-03-16 Jakub Jelinek <jakub@redhat.com>
20745 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
20748 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
20749 Richard Biener <rguenther@suse.de>
20751 * gimple-match-head.cc (single_use): Implement inline using a
20754 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
20756 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
20757 instead of HONOR_NANS.
20758 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
20759 this can't trap/signal.
20761 2022-03-16 liuhongt <hongtao.liu@intel.com>
20764 * config/i386/i386-builtin.def (BDESC): Add
20765 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
20766 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
20767 __builtin_ia32_blendvpd w/o sse4.2
20769 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
20772 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
20773 acceptable MEM addresses.
20775 2022-03-15 Jakub Jelinek <jakub@redhat.com>
20778 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
20779 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
20782 2022-03-15 Jakub Jelinek <jakub@redhat.com>
20785 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
20786 instead of general-regs-only.
20788 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
20789 Marc Glisse <marc.glisse@inria.fr>
20790 Richard Biener <rguenther@suse.de>
20792 PR tree-optimization/101895
20793 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
20794 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
20796 2022-03-15 Jakub Jelinek <jakub@redhat.com>
20798 PR rtl-optimization/104814
20799 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
20800 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
20802 2022-03-15 Martin Sebor <msebor@redhat.com>
20804 PR middle-end/104436
20805 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
20806 Check for warning suppression. Avoid by-value arguments transformed
20807 into by-transparent-reference.
20809 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
20810 Uroš Bizjak <ubizjak@gmail.com>
20812 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
20813 transformation when *zero_extend<mode>si2 is not available.
20815 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
20817 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
20818 * config/mips/mips.cc (mips_option_override): Make
20819 -fsanitize=address imply -fasynchronous-unwind-tables. This is
20820 needed by libasan for stack backtrace on MIPS.
20821 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
20823 2022-03-14 Jakub Jelinek <jakub@redhat.com>
20826 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
20827 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
20828 call simplified the first operand into VOIDmode constant.
20830 2022-03-14 Jakub Jelinek <jakub@redhat.com>
20832 PR tree-optimization/102586
20833 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
20834 argument type should be pointer to trivially-copyable type unless it
20835 is address of a variable or parameter.
20837 2022-03-14 Jakub Jelinek <jakub@redhat.com>
20840 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
20841 first rather than last element of the vector, use __m32_u to do
20842 a really unaligned load, use just 0 instead of (int)0.
20843 (_mm_loadu_si16): Put loaded value into first rather than last
20844 element of the vector, use __m16_u to do a really unaligned load,
20845 use just 0 instead of (short)0.
20847 2022-03-14 Jakub Jelinek <jakub@redhat.com>
20850 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
20851 in diagnostic message - cannott -> cannot. Use %< and %> around
20852 names of attribute. Avoid too long line.
20853 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
20854 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
20856 2022-03-14 liuhongt <hongtao.liu@intel.com>
20859 * config/i386/i386-expand.cc
20860 (ix86_check_builtin_isa_match): New func.
20861 (ix86_expand_builtin): Move code to
20862 ix86_check_builtin_isa_match and call it.
20863 * config/i386/i386-protos.h
20864 (ix86_check_builtin_isa_match): Declare.
20865 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
20866 builtin into gimple when isa mismatches.
20868 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
20870 * doc/invoke.texi: Fix typos.
20871 * doc/tm.texi.in: Remove duplicated word.
20872 * doc/tm.texi: Regenerate.
20874 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
20877 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
20878 "ppc" and "ppc64" based on rs6000_cpu.
20880 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
20882 PR middle-end/100280
20883 PR middle-end/104892
20884 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
20885 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
20887 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
20889 PR middle-end/100280
20890 PR middle-end/104086
20891 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
20892 Mark variables used in 'present' clauses as addressable.
20893 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
20894 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
20896 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
20899 * tree-core.h (user_omp_claus_code_name): Declare function.
20900 * tree.cc (user_omp_clause_code_name): New function.
20902 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
20904 PR middle-end/98420
20905 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
20906 (the defaut) or -fno-signed-zeros.
20908 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
20911 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
20912 moving from a GPR register to an Altivec register.
20914 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
20916 PR tree-optimization/98335
20917 * config/i386/i386.md (peephole2): Eliminate redundant insv.
20918 Combine movl followed by movb. Transform xorl followed by
20919 a suitable movb or movw into the equivalent movz[bw]l.
20921 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
20922 Richard Biener <rguenther@suse.de>
20924 PR tree-optimization/98335
20925 * builtins.cc (get_object_alignment_2): Export.
20926 * builtins.h (get_object_alignment_2): Likewise.
20927 * tree-ssa-alias.cc (ao_ref_alignment): New.
20928 * tree-ssa-alias.h (ao_ref_alignment): Declare.
20929 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
20930 to align head/tail, writing more bytes but using fewer store insns.
20932 2022-03-11 Richard Biener <rguenther@suse.de>
20934 PR tree-optimization/104880
20935 * tree-ssa.cc (execute_update_address_taken): Remember if we
20936 optimistically made something not addressable and
20937 prepare to undo it.
20939 2022-03-11 Richard Biener <rguenther@suse.de>
20942 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
20943 cost the first lane of SSE pieces as inserts for vec_construct.
20945 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
20948 * calls.cc (expand_call): Ignore stack adjustments after sorry.
20950 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
20953 * lra-constraints.cc (split_reg): Set up
20954 check_and_force_assignment_correctness_p when splitting hard
20955 register live range.
20957 2022-03-10 Martin Jambor <mjambor@suse.cz>
20960 * ipa-cp.cc (create_specialized_node): Move removal of
20961 self-recursive calls from callers vector before refrence
20964 2022-03-10 Richard Biener <rguenther@suse.de>
20966 PR tree-optimization/102943
20967 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
20968 Make a bitmap_head.
20969 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
20971 (sbr_sparse_bitmap::set_bb_range): Adjust.
20972 (sbr_sparse_bitmap::get_bb_range): Likewise.
20974 2022-03-10 Richard Biener <rguenther@suse.de>
20976 PR tree-optimization/102943
20977 * tree-ssa-dom.cc (back_propagate_equivalences): Only
20978 populate the dominance bitmap if fast queries are not
20979 available. Use a tree view bitmap.
20980 (record_temporary_equivalences): Cache the dominance bitmap
20981 across all equivalences on the edge.
20983 2022-03-10 Tom de Vries <tdevries@suse.de>
20986 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
20989 2022-03-10 Tom de Vries <tdevries@suse.de>
20992 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
20993 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
20994 (nvptx_get_unisimt_outside_simt_predicate): New function.
20995 (predicate_insn): New function, factored out of ...
20996 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
20997 * config/nvptx/nvptx.h (struct machine_function): Add
20998 unisimt_outside_simt_predicate field.
20999 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
21000 (define_insn "nvptx_uniform_warp_check"): Make predicable.
21002 2022-03-10 Tom de Vries <tdevries@suse.de>
21004 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
21007 2022-03-10 Tom de Vries <tdevries@suse.de>
21010 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
21012 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
21014 2022-03-10 Tom de Vries <tdevries@suse.de>
21016 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
21017 Emit atom.and.b64 instead of atom.b64.and.
21019 2022-03-10 Tom de Vries <tdevries@suse.de>
21021 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
21022 (MULTILIB_OPTIONS): ... here.
21024 2022-03-10 Tom de Vries <tdevries@suse.de>
21027 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
21028 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
21030 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
21032 PR middle-end/90115
21033 PR middle-end/102330
21034 PR middle-end/104774
21035 * omp-low.cc (oacc_privatization_candidate_p)
21036 (oacc_privatization_scan_clause_chain)
21037 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
21038 Analyze 'lookup_decl'-translated DECL.
21040 2022-03-10 Jakub Jelinek <jakub@redhat.com>
21043 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
21044 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
21045 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
21046 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
21047 "**NULL**" if type_node is NULL first. Handle
21048 ieee128_float_type_node.
21049 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
21050 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
21051 ieee128_float_type_node to NULL rather than long_double_type_node if
21052 they aren't supported. Do support __ibm128 even if
21053 !TARGET_FLOAT128_TYPE when long double is double double.
21054 (rs6000_expand_builtin): Error if bif_is_ibm128 and
21055 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
21056 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
21058 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
21059 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
21060 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
21061 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
21063 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
21064 (struct attrinfo): Add isibm128 member.
21065 (TYPE_MAP_SIZE): Remove.
21066 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
21067 ibm128_float_type_node only if it is non-NULL, otherwise fall back
21068 to long_double_type_node. Remove "pif" entry.
21069 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
21070 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
21071 (write_type_node): Use sizeof type_map / sizeof type_map[0]
21072 instead of TYPE_MAP_SIZE.
21073 (write_bif_static_init): Handle isibm128.
21074 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
21075 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
21078 2022-03-09 Richard Biener <rguenther@suse.de>
21080 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
21081 with non-decl operand, avoiding a copy.
21083 2022-03-09 Jakub Jelinek <jakub@redhat.com>
21086 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
21088 2022-03-09 Richard Biener <rguenther@suse.de>
21090 PR middle-end/104786
21091 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
21092 for VLAs without an upper size bound.
21094 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
21096 PR tree-optimization/104851
21097 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
21100 2022-03-09 Jakub Jelinek <jakub@redhat.com>
21103 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
21104 is enabled by it only for C++11 to C++17 rather than for C++03 or
21106 (-Wshift-negative-value): Similarly (except here we stated
21107 that it is enabled for C++11 or later).
21109 2022-03-09 Jakub Jelinek <jakub@redhat.com>
21111 PR rtl-optimization/104839
21112 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
21113 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
21114 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
21115 instead of incorrect 0 in SUBREG_PROMOTED_SET.
21117 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
21120 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
21121 value before adding an offset.
21123 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
21125 * config/arm/arm-builtins.cc
21126 (arm_binop_none_none_unone_qualifiers): Delete.
21127 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
21129 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
21131 PR translation/104552
21132 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
21133 the PCH out of memory error message punctuation and wording.
21135 2022-03-08 Marek Polacek <polacek@redhat.com>
21137 PR rtl-optimization/104777
21138 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
21139 ASM_OPERANDS_LABEL_VEC has at least one element.
21141 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
21144 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
21145 stack realignment or regparm nested function with EH return.
21147 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
21150 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
21151 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
21152 register for non widening loads or narrowing stores.
21154 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
21156 PR translation/104552
21157 * params.opt: Fix typo.
21159 2022-03-08 Richard Biener <rguenther@suse.de>
21161 PR tree-optimization/84201
21162 * params.opt (-param=vect-induction-float): Add.
21163 * doc/invoke.texi (vect-induction-float): Document.
21164 * tree-vect-loop.cc (vectorizable_induction): Honor
21165 param_vect_induction_float.
21167 2022-03-08 Martin Jambor <mjambor@suse.cz>
21169 PR translation/104552
21170 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
21171 "that" in the description.
21173 2022-03-08 Richard Biener <rguenther@suse.de>
21175 PR tree-optimization/104825
21176 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
21177 guard modref get_ao_ref on a pointer typed argument.
21179 2022-03-08 liuhongt <hongtao.liu@intel.com>
21181 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
21182 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
21184 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
21186 * doc/invoke.texi (C++ Modules): Remove anachronism.
21188 2022-03-07 Martin Liska <mliska@suse.cz>
21190 PR middle-end/104381
21191 * opts.cc (finish_options): If debug info is disabled
21192 (debug_info_level) and -fvar-tracking is unset, disable it.
21194 2022-03-07 Jakub Jelinek <jakub@redhat.com>
21196 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
21197 * config/riscv/riscv.cc: Likewise.
21198 * config/darwin.h: Likewise.
21199 * config/i386/i386.cc: Likewise.
21200 * config/aarch64/thunderx3t110.md: Likewise.
21201 * config/aarch64/fractional-cost.h: Likewise.
21202 * config/vax/vax.cc: Likewise.
21203 * config/rs6000/pcrel-opt.md: Likewise.
21204 * config/rs6000/predicates.md: Likewise.
21205 * ctfc.h: Likewise.
21206 * tree-ssa-uninit.cc: Likewise.
21207 * value-relation.h: Likewise.
21208 * gimple-range-gori.cc: Likewise.
21209 * ipa-polymorphic-call.cc: Likewise.
21210 * pointer-query.cc: Likewise.
21211 * ipa-sra.cc: Likewise.
21212 * internal-fn.cc: Likewise.
21213 * varasm.cc: Likewise.
21214 * gimple-ssa-warn-access.cc: Likewise.
21216 2022-03-07 Martin Liska <mliska@suse.cz>
21219 * config/arm/arm.cc (arm_option_override_internal): Add missing
21222 2022-03-07 Richard Biener <rguenther@suse.de>
21224 PR tree-optimization/104782
21225 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
21226 Re-instantiate r10-5979 fix, add comment.
21228 2022-03-07 Martin Liska <mliska@suse.cz>
21231 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
21232 parenthesis from built-in name.
21234 2022-03-07 Martin Liska <mliska@suse.cz>
21237 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
21238 of options in error messages.
21239 (arm_option_reconfigure_globals): Likewise.
21241 2022-03-07 Martin Liska <mliska@suse.cz>
21244 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
21245 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
21246 have only range [0,32].
21248 2022-03-07 Jakub Jelinek <jakub@redhat.com>
21251 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
21252 S constraint instead of T in the last alternative.
21254 2022-03-07 Martin Liska <mliska@suse.cz>
21256 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
21259 2022-03-07 Martin Liska <mliska@suse.cz>
21261 PR translation/90148
21262 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
21263 quote to a proper place.
21264 * plugin.cc (default_plugin_dir_name): Likewise.
21266 2022-03-07 Martin Liska <mliska@suse.cz>
21269 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
21272 2022-03-07 Jakub Jelinek <jakub@redhat.com>
21275 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
21276 define_expand pattern. Rename define_insn to ...
21277 (*avx512dq_mul<mode>3<mask_name>): ... this.
21278 (<code><mode>3_mask): New any_logic define_expand pattern.
21279 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
21280 (*<code><mode>3<mask_name>): ... this.
21282 2022-03-05 Jakub Jelinek <jakub@redhat.com>
21284 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
21285 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
21287 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
21288 Uroš Bizjak <ubizjak@gmail.com>
21290 PR testsuite/104732
21291 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
21292 Include DI mode unconditionally.
21293 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
21294 i.e. always split on !TARGET_64BIT.
21295 (*<any_or>di3_doubleword): Likewise.
21296 (*one_cmpldi2_doubleword): Likewise.
21297 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
21298 (<any_or><mode>3 expander): Likewise.
21299 (one_cmpl<mode>2 expander): Likewise.
21301 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
21304 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
21305 (mtvsrdd_diti_w1): Delete.
21306 (extendditi2): Convert from define_expand to
21307 define_insn_and_split. Replace with code to deal with both GPR
21308 registers and with altivec registers.
21310 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
21312 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
21313 bit. Handle most older CPUs.
21315 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
21317 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
21318 avoid a mismatch with DECL_MD_FUNCTION_CODE().
21320 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
21323 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
21324 (@machopic_low_<mode>): New.
21325 * config/rs6000/predicates.md (macho_pic_address): New.
21326 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
21327 apply the TLS processing to Darwin.
21328 * lra-constraints.cc (process_address_1): Revert the changes
21331 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
21335 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
21336 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
21338 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
21340 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
21343 2022-03-04 Jakub Jelinek <jakub@redhat.com>
21345 PR middle-end/104529
21346 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
21347 on automatic objects which will be runtime initialized.
21349 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
21351 PR middle-end/100280
21352 PR middle-end/104132
21353 PR middle-end/104133
21354 * omp-low.cc (task_shared_vars): Rename to
21355 'make_addressable_vars'. Adjust all users.
21356 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
21357 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
21359 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
21361 PR middle-end/100280
21362 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
21363 * tree-core.h: Document it.
21364 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
21365 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
21366 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
21367 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
21368 'TREE_ADDRESSABLE'.
21370 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
21372 PR middle-end/100280
21373 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
21374 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
21375 '[...]' declared in block made addressable".
21377 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
21379 PR middle-end/100400
21380 PR middle-end/103836
21381 PR middle-end/104061
21382 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
21383 Catch 'GIMPLE_DEBUG'.
21385 2022-03-04 Jakub Jelinek <jakub@redhat.com>
21388 * tree.cc (warn_deprecated_use): For types prefer to use node
21389 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
21392 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
21395 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
21398 2022-03-03 Martin Sebor <msebor@redhat.com>
21400 PR middle-end/104761
21401 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
21402 mark_dfs_back_edges.
21404 2022-03-03 Martin Liska <mliska@suse.cz>
21406 * configure.ac: Use linker plug-in by default.
21407 * configure: Regenerate.
21409 2022-03-03 Martin Liska <mliska@suse.cz>
21411 * configure.ac: Now ld.mold support LTO plugin API, use it.
21412 * configure: Regenerate.
21414 2022-03-03 Tom de Vries <tdevries@suse.de>
21416 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
21418 2022-03-03 Tom de Vries <tdevries@suse.de>
21421 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
21423 2022-03-03 Tom de Vries <tdevries@suse.de>
21425 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
21427 2022-03-03 Jakub Jelinek <jakub@redhat.com>
21429 PR middle-end/104757
21430 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
21432 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
21433 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
21435 2022-03-03 Jakub Jelinek <jakub@redhat.com>
21437 PR middle-end/104558
21438 * calls.cc (store_one_arg): When not calling emit_push_insn
21439 because size_rtx is const0_rtx, call at least anti_adjust_stack
21440 on arg->locate.alignment_pad if !argblock and the alignment might
21443 2022-03-02 Alexandre Oliva <oliva@adacore.com>
21445 * lra-constraints.cc (undo_optional_reloads): Recognize and
21446 drop insns of multi-word move sequences, tolerate removal
21447 iteration on an already-removed clobber, and refuse to
21448 substitute original pseudos into clobbers.
21450 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
21452 PR middle-end/102276
21453 * common.opt (-Wtrivial-auto-var-init): New option.
21454 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
21455 (-ftrivial-auto-var-init): Update option;
21456 * gimplify.cc (emit_warn_switch_unreachable): New function.
21457 (warn_switch_unreachable_r): Rename to ...
21458 (warn_switch_unreachable_and_auto_init_r): This.
21459 (maybe_warn_switch_unreachable): Rename to ...
21460 (maybe_warn_switch_unreachable_and_auto_init): This.
21461 (gimplify_switch_expr): Update calls to renamed function.
21463 2022-03-02 Richard Biener <rguenther@suse.de>
21465 PR rtl-optimization/104686
21466 * ira-color.cc (object_conflicts_with_allocno_p): New function
21467 using a bitvector test instead of iterating when possible.
21468 (allocnos_conflict_p): Choose the best allocno to iterate over
21470 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
21473 2022-03-02 Jakub Jelinek <jakub@redhat.com>
21475 * cfg.cc (dump_edge_info): Dump goto_locus if present.
21477 2022-03-02 Jakub Jelinek <jakub@redhat.com>
21479 PR rtl-optimization/104589
21480 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
21481 INSN_LOCATION comparison with goto_locus.
21483 2022-03-02 Jakub Jelinek <jakub@redhat.com>
21485 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
21486 strlen_pass::before_dom_children): Comment spelling fixes.
21488 2022-03-02 Jakub Jelinek <jakub@redhat.com>
21490 * ipa-modref-tree.cc (modref_access_node::contains,
21491 modref_access_node::closer_pair_p, modref_access_node::insert,
21492 modref_access_node::insert_kill): Comment spelling fixes.
21493 * ipa-modref.cc: Likewise.
21494 (modref_summary::finalize, ignore_nondeterminism_p,
21495 class modref_access_analysis,
21496 modref_access_analysis::set_side_effects,
21497 modref_access_analysis::set_nondeterministic,
21498 modref_access_analysis::record_global_memory_load,
21499 modref_access_analysis::propagate, modref_access_analysis::analyze,
21500 struct escape_point, class modref_lattice, modref_lattice::merge,
21501 modref_lattice::merge_deref, class modref_eaf_analysis,
21502 modref_eaf_analysis::merge_call_lhs_flags,
21503 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
21504 modref_eaf_analysis::record_escape_points, remap_kills,
21505 update_escape_summary, remove_useless_summaries,
21506 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
21508 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
21510 * ipa-modref-tree.h (enum modref_special_parms,
21511 struct modref_access_node): Likewise.
21513 2022-03-01 Jakub Jelinek <jakub@redhat.com>
21515 PR tree-optimization/104715
21516 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
21517 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
21518 of a call if gimple_call_return_arg is equal to ptr, not just when it
21521 2022-03-01 Jakub Jelinek <jakub@redhat.com>
21523 * gimple-ssa-warn-access.cc (warn_string_no_nul,
21524 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
21525 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
21526 pass_waccess::check_alloca, pass_waccess::check_strcat,
21527 memmodel_to_uhwi, fntype_argno_type,
21528 pass_waccess::maybe_check_access_sizes,
21529 pass_waccess::check_call_access,
21530 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
21531 Comment spelling fixes.
21533 2022-03-01 Richard Biener <rguenther@suse.de>
21535 PR tree-optimization/104716
21536 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
21537 Check if we can copy the loop.
21539 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
21541 PR middle-end/104721
21542 * cfgexpand.cc (expand_gimple_basic_block): Clear
21543 currently_expanding_gimple_stmt when returning inside the loop.
21545 2022-03-01 Martin Liska <mliska@suse.cz>
21548 * multiple_target.cc (get_attr_len): Move to tree.c.
21549 (expand_target_clones): Remove single value checking.
21550 * tree.cc (get_target_clone_attr_len): New fn.
21551 * tree.h (get_target_clone_attr_len): Likewise.
21553 2022-03-01 Martin Liska <mliska@suse.cz>
21555 PR gcov-profile/104677
21556 * doc/invoke.texi: Document more .gcda file name generation.
21558 2022-03-01 Tom de Vries <tdevries@suse.de>
21561 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
21562 * config/nvptx/nvptx.md
21563 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
21565 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
21566 Use nvptx_register_or_complex_di_df_register_operand.
21568 2022-03-01 Tom de Vries <tdevries@suse.de>
21570 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
21571 * config/nvptx/gen-copyright.sh: New file.
21572 * config/nvptx/gen-h.sh: New file.
21573 * config/nvptx/gen-opt.sh: New file.
21574 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
21575 (TARGET_SM75, TARGET_SM80): Move ...
21576 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
21577 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
21578 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
21579 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
21580 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
21582 2022-03-01 Tom de Vries <tdevries@suse.de>
21584 * config/nvptx/gen-omp-device-properties.sh: New file.
21585 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
21587 2022-03-01 Tom de Vries <tdevries@suse.de>
21589 * config/nvptx/nvptx-sm.def: New file.
21590 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
21591 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
21592 * config/nvptx/nvptx.cc (sm_version_to_string)
21593 (nvptx_omp_device_kind_arch_isa): Same.
21595 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
21597 PR rtl-optimization/104154
21598 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
21599 comparison ifcvt passed us.
21601 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
21604 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
21605 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
21607 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
21609 PR tree-optimization/91384
21610 * config/i386/i386.md (peephole2): Eliminate final testl insn
21611 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
21612 transforming using *negsi_2 for the negation.
21614 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
21615 Eric Botcazou <ebotcazou@adacore.com>
21617 PR middle-end/80270
21618 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
21619 register, copy it to a pseudo before calling simplify_gen_subreg.
21621 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
21623 PR rtl-optimization/104637
21624 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
21625 as possible on one subpass.
21627 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
21629 PR middle-end/104550
21630 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
21633 2022-02-28 Martin Liska <mliska@suse.cz>
21636 * main.cc (main): Use flag_checking instead of CHECKING_P
21637 and run toplev::finalize only if there is not error seen.
21639 2022-02-28 Richard Biener <rguenther@suse.de>
21641 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
21643 2022-02-28 Richard Biener <rguenther@suse.de>
21645 PR tree-optimization/104700
21646 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
21648 (find_or_generate_expression): ... here, simplifying code.
21650 2022-02-28 Tom de Vries <tdevries@suse.de>
21652 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
21653 PTX_VERSION_default.
21654 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
21655 PTX_VERSION_default.
21656 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
21658 2022-02-28 Richard Biener <rguenther@suse.de>
21660 PR rtl-optimization/104686
21661 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
21662 skipping bits that are zero.
21663 (ira_object_conflict_iter_cond): Likewise.
21665 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
21667 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
21668 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
21669 char to avoid error when using ~enum as parameter.
21670 (_mm512_mask_ternarylogic_epi64): Likewise.
21671 (_mm512_maskz_ternarylogic_epi64): Likewise.
21672 (_mm512_ternarylogic_epi32): Likewise.
21673 (_mm512_mask_ternarylogic_epi32): Likewise.
21674 (_mm512_maskz_ternarylogic_epi32): Likewise.
21675 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
21676 Adjust imm param type to unsigned char.
21677 (_mm256_mask_ternarylogic_epi64): Likewise.
21678 (_mm256_maskz_ternarylogic_epi64): Likewise.
21679 (_mm256_ternarylogic_epi32): Likewise.
21680 (_mm256_mask_ternarylogic_epi32): Likewise.
21681 (_mm256_maskz_ternarylogic_epi32): Likewise.
21682 (_mm_ternarylogic_epi64): Likewise.
21683 (_mm_mask_ternarylogic_epi64): Likewise.
21684 (_mm_maskz_ternarylogic_epi64): Likewise.
21685 (_mm_ternarylogic_epi32): Likewise.
21686 (_mm_mask_ternarylogic_epi32): Likewise.
21687 (_mm_maskz_ternarylogic_epi32): Likewise.
21689 2022-02-25 Jakub Jelinek <jakub@redhat.com>
21690 Marc Glisse <marc.glisse@inria.fr>
21692 PR tree-optimization/104675
21693 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
21694 Restrict simplifications to INTEGRAL_TYPE_P.
21696 2022-02-25 Jakub Jelinek <jakub@redhat.com>
21699 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
21701 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
21703 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
21704 comparison is not valid.
21705 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
21706 (movdicc): Likewise.
21707 (movsfcc): Likewise.
21708 (movdfcc): Likewise.
21710 2022-02-25 Richard Biener <rguenther@suse.de>
21712 PR tree-optimization/103037
21713 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
21714 (vn_nary_length_from_stmt): Likewise.
21715 (init_vn_nary_op_from_stmt): Likewise.
21716 (vn_nary_op_compute_hash): Likewise.
21717 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
21718 (vn_nary_length_from_stmt): Likewise.
21719 (init_vn_nary_op_from_stmt): Likewise.
21720 (vn_nary_op_compute_hash): Likewise.
21721 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
21722 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
21723 (re-)compute the hash value and if the expression is not
21724 found allocate it from pre_expr_obstack.
21725 (phi_translate_1): Do not insert the NARY found in the
21726 VN tables but build a PRE expression from the valueized
21727 NARY with the value-id we eventually found.
21728 (find_or_generate_expression): Assert we have an entry
21729 for constant values.
21730 (compute_avail): Insert not valueized expressions into
21731 EXP_GEN using the value-id from the VN tables.
21732 (init_pre): Allocate pre_expr_obstack.
21733 (fini_pre): Free pre_expr_obstack.
21735 2022-02-25 Jakub Jelinek <jakub@redhat.com>
21738 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
21739 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
21740 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
21742 2022-02-25 Jakub Jelinek <jakub@redhat.com>
21744 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
21746 2022-02-25 Jakub Jelinek <jakub@redhat.com>
21748 PR middle-end/104679
21749 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
21751 2022-02-25 Jakub Jelinek <jakub@redhat.com>
21753 PR tree-optimization/104675
21754 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
21757 2022-02-25 Alexandre Oliva <oliva@adacore.com>
21761 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
21763 2022-02-25 Alexandre Oliva <oliva@adacore.com>
21765 PR middle-end/104540
21766 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
21769 2022-02-25 Alexandre Oliva <oliva@adacore.com>
21771 PR tree-optimization/103856
21772 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
21773 eh edge to be requested through an extra parameter.
21774 (pass_harden_compares::execute): Copy PHI args in the EH dest
21775 block for the new EH edge added for the inverted compare.
21777 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
21779 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
21780 of position independence that -mcmodel=medany affords.
21782 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
21785 * configure.ac: --disable-gcov if targetting bpf-*.
21786 * configure: Regenerate.
21788 2022-02-24 Richard Biener <rguenther@suse.de>
21790 PR tree-optimization/104676
21791 * tree-loop-distribution.cc (loop_distribution::execute):
21792 Do a full scev_reset.
21794 2022-02-24 Jakub Jelinek <jakub@redhat.com>
21796 PR tree-optimization/104601
21797 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
21798 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
21801 2022-02-24 Tom de Vries <tdevries@suse.de>
21802 Tobias Burnus <tobias@codesourcery.com>
21804 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
21805 sm_70, sm_75 and sm_80.
21806 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
21808 2022-02-24 Tom de Vries <tdevries@suse.de>
21810 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
21811 "rotrsi3"): New define_insn.
21813 2022-02-24 Tom de Vries <tdevries@suse.de>
21815 * config/nvptx/nvptx.cc (gen_comment): Use
21816 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
21818 2022-02-24 liuhongt <hongtao.liu@intel.com>
21820 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
21821 isa attr of alternative 2 from avx to avx512vl.
21823 2022-02-23 Richard Biener <rguenther@suse.de>
21824 Jakub Jelinek <jakub@redhat.com>
21826 PR tree-optimization/104644
21827 * doc/match-and-simplify.texi: Amend ! documentation.
21828 * genmatch.cc (expr::gen_transform): Code-generate ! support
21830 (parser::parse_expr): Allow ! for GENERIC.
21831 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
21834 2022-02-23 Richard Biener <rguenther@suse.de>
21836 PR tree-optimization/101636
21837 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
21838 vector type of the node.
21839 (vect_slp_analyze_operations): Make sure the CTOR
21840 is vectorized with an expected type.
21841 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
21843 2022-02-23 Jakub Jelinek <jakub@redhat.com>
21846 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
21847 Don't warn about calls to corresponding builtin from extern inline
21848 gnu_inline wrappers.
21850 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
21853 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
21855 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
21859 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
21862 2022-02-23 Cui,Lili <lili.cui@intel.com>
21864 * doc/invoke.texi: Update documents for Intel architectures.
21866 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
21868 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
21871 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
21873 * omp-low.cc (omp_build_component_ref): Move function...
21874 * omp-general.cc (omp_build_component_ref): ... here. Remove
21876 * omp-general.h (omp_build_component_ref): Declare function.
21877 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
21879 (build_receiver_ref, build_sender_ref): Call
21880 'omp_build_component_ref' instead.
21882 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
21884 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
21885 simplify. Adjust all users.
21887 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
21890 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
21891 atomic_update_decl): Add GTY markup.
21893 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
21895 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
21897 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
21901 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
21903 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
21904 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
21905 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
21906 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
21907 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
21908 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
21909 * config/arm/mve.md: Use VxBI instead of HI.
21911 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
21915 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
21917 (STRSBU_P_QUALIFIERS): Likewise.
21918 (LDRGBS_Z_QUALIFIERS): Likewise.
21919 (LDRGBU_Z_QUALIFIERS): Likewise.
21920 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
21921 (LDRGBWBS_Z_QUALIFIERS): Likewise.
21922 (LDRGBWBU_Z_QUALIFIERS): Likewise.
21923 (STRSBWBS_P_QUALIFIERS): Likewise.
21924 (STRSBWBU_P_QUALIFIERS): Likewise.
21925 * config/arm/mve.md: Use VxBI instead of HI.
21927 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
21931 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
21932 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
21933 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
21934 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
21935 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
21936 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
21937 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
21938 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
21939 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
21940 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
21941 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
21942 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
21943 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
21944 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
21945 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
21946 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
21947 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
21948 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
21949 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
21950 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
21951 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
21952 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
21953 (STRS_P_QUALIFIERS): Use predicate qualifier.
21954 (STRU_P_QUALIFIERS): Likewise.
21955 (STRSU_P_QUALIFIERS): Likewise.
21956 (STRSS_P_QUALIFIERS): Likewise.
21957 (LDRGS_Z_QUALIFIERS): Likewise.
21958 (LDRGU_Z_QUALIFIERS): Likewise.
21959 (LDRS_Z_QUALIFIERS): Likewise.
21960 (LDRU_Z_QUALIFIERS): Likewise.
21961 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
21962 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
21963 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
21964 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
21965 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
21966 * config/arm/mve.md: Use MVE_VPRED instead of HI.
21968 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
21972 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
21974 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
21975 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
21976 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
21977 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
21978 predicated qualifiers.
21979 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
21980 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
21982 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
21985 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
21986 (arm_expand_vector_compare): Update prototype.
21987 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
21988 (arm_vector_mode_supported_p): Add support for VxBI modes.
21989 (arm_expand_vector_compare): Remove useless generation of vpsel.
21990 (arm_expand_vcond): Fix select operands.
21991 (arm_get_mask_mode): New.
21992 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
21993 (vec_cmpu<mode><MVE_vpred>): New.
21994 (vcond_mask_<mode><MVE_vpred>): New.
21995 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
21996 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
21997 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
21998 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
21999 and disable for MVE.
22000 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
22002 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
22006 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
22007 (BINOP_PRED_NONE_NONE_QUALIFIERS)
22008 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
22009 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
22010 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
22011 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
22013 (arm_mode_to_pred_mode): New.
22014 (arm_expand_vector_compare): Use the right VxBI mode instead of
22016 (arm_expand_vcond): Likewise.
22017 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
22018 (mve_bool_vec_to_const): New.
22019 (neon_make_constant): Call mve_bool_vec_to_const when needed.
22020 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
22021 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
22022 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
22023 (vpselq_s, vpselq_f): Use new predicated qualifiers.
22024 * config/arm/constraints.md (DB): New.
22025 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
22026 (MVE_VPRED, MVE_vpred): New attribute iterators.
22027 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
22028 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
22029 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
22030 (@mve_vpselq_<supf>v2di): Define separately.
22031 (mov<mode>): New expander for VxBI modes.
22032 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
22033 MVE_7_HI iterator and add support for DB constraint.
22035 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
22036 Richard Sandiford <richard.sandiford@arm.com>
22040 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
22041 VNx2BI): Update definition.
22042 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
22044 (arm_init_builtin): Map predicate vectors arguments to HImode.
22045 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
22046 rtx. Move return value to HImode rtx.
22047 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
22048 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
22049 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
22050 Pred2x8_t,Pred4x4_t): New.
22051 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
22052 * genmodes.cc (mode_data): Add boolean field.
22053 (blank_mode): Initialize it.
22054 (make_complex_modes): Fix handling of boolean modes.
22055 (make_vector_modes): Likewise.
22056 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
22057 (make_vector_bool_mode): Likewise.
22059 (make_bool_mode): New.
22060 (emit_insn_modes_h): Fix generation of boolean modes.
22061 (emit_class_narrowest_mode): Likewise.
22062 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
22063 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
22065 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
22066 Fix handling of constm1_rtx for VECTOR_BOOL.
22067 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
22068 (native_decode_vector_rtx): Likewise.
22069 (test_vector_ops_duplicate): Skip vec_merge test
22070 with vectors of booleans.
22071 * varasm.cc (output_constant_pool_2): Likewise.
22073 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
22075 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
22078 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
22080 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
22082 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
22084 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
22085 (REG_CLASS_NAMES): Likewise.
22086 (REG_CLASS_CONTENTS): Likewise.
22087 (CLASS_MAX_NREGS): Handle VPR.
22088 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
22090 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
22091 Tom de Vries <tdevries@suse.de>
22093 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
22094 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
22096 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
22098 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
22099 Tom de Vries <tdevries@suse.de>
22101 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
22102 * doc/invoke.texi (-mptx): Update for new values and defaults.
22104 2022-02-22 Tom de Vries <tdevries@suse.de>
22106 * config/nvptx/nvptx.cc (gen_comment): New function.
22107 (workaround_uninit_method_1, workaround_uninit_method_2)
22108 (workaround_uninit_method_3): : Use gen_comment.
22109 * config/nvptx/nvptx.opt (mptx-comment): New option.
22111 2022-02-22 Richard Biener <rguenther@suse.de>
22113 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
22116 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
22117 Richard Biener <rguenther@suse.de>
22119 * fold-const.cc (ctor_single_nonzero_element): New function to
22120 return the single non-zero element of a (vector) constructor.
22121 * fold-const.h (ctor_single_nonzero_element): Prototype here.
22122 * match.pd (reduc (constructor@0)): Simplify reductions of a
22123 constructor containing a single non-zero element.
22124 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
22125 reductions of vector operations of the same operator with
22126 constant vector operands.
22128 2022-02-22 Jakub Jelinek <jakub@redhat.com>
22130 PR tree-optimization/104604
22131 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
22132 Only check if gimple_assign_rhs1 is COMPLEX_CST if
22133 gimple_assign_rhs_code is COMPLEX_CST.
22135 2022-02-22 Jakub Jelinek <jakub@redhat.com>
22138 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
22139 on input operands before calling lowpart_subreg on it. For output
22140 operand, use a vmode pseudo as destination and then move its lowpart
22141 subreg into operands[0] if lowpart_subreg fails on dest.
22142 (ix86_expand_xorsign): Likewise.
22144 2022-02-22 Richard Biener <rguenther@suse.de>
22146 PR tree-optimization/104582
22148 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
22149 Cost GPR to vector register moves for integer vector construction.
22151 2022-02-22 Richard Biener <rguenther@suse.de>
22153 PR tree-optimization/104582
22154 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
22155 (vector_costs::add_stmt_cost): Add SLP node parameter.
22156 (dump_stmt_cost): Likewise.
22157 (add_stmt_cost): Likewise, new overload and adjust.
22158 (add_stmt_costs): Adjust.
22159 (record_stmt_cost): New overload.
22160 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
22161 (vector_costs::add_stmt_cost): Adjust.
22162 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
22164 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
22165 the SLP node for costing.
22166 (vectorizable_slp_permutation): Likewise.
22167 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
22169 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
22171 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
22173 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
22175 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
22177 2022-02-22 Richard Biener <rguenther@suse.de>
22179 PR tree-optimization/104582
22180 * tree-vectorizer.h (add_stmt_cost): New overload.
22181 (record_stmt_cost): Likewise.
22182 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
22183 Use add_stmt_costs.
22184 (vect_get_known_peeling_cost): Use new overloads.
22185 (vect_estimate_min_profitable_iters): Likewise. Consistently
22186 use scalar_stmt for costing versioning checks.
22187 * tree-vect-stmts.cc (record_stmt_cost): New overload.
22189 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
22192 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
22193 Split atomic fetch and loop part.
22194 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
22195 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
22197 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
22198 expander under TARGET_RELAX_CMPXCHG_LOOP.
22199 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
22201 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
22203 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
22204 Change wb_candidate[12] to wb_push_candidate[12].
22205 (aarch64_layout_frame): Likewise, and
22206 change callee_adjust when scs is enabled.
22207 (aarch64_save_callee_saves):
22208 Change wb_candidate[12] to wb_push_candidate[12].
22209 (aarch64_restore_callee_saves):
22210 Change wb_candidate[12] to wb_pop_candidate[12].
22211 (aarch64_get_separate_components):
22212 Change wb_candidate[12] to wb_push_candidate[12].
22213 (aarch64_expand_prologue): Push x30 onto SCS before it's
22215 (aarch64_expand_epilogue): Pop x30 frome SCS, while
22216 preventing it from being popped from the regular stack again.
22217 (aarch64_override_options_internal): Add SCS compile option check.
22218 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
22219 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
22220 wb_pop_candidate[12], and rename wb_candidate[12] to
22221 wb_push_candidate[12].
22222 * config/aarch64/aarch64.md (scs_push): New template.
22223 (scs_pop): Likewise.
22224 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
22225 * doc/tm.texi: Regenerate.
22226 * doc/tm.texi.in: Add hook have_shadow_call_stack.
22227 * flag-types.h (enum sanitize_code):
22228 Add SANITIZE_SHADOW_CALL_STACK.
22229 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
22230 and exclude SANITIZE_SHADOW_CALL_STACK.
22231 * target.def: New hook.
22232 * toplev.cc (process_options): Add SCS compile option check.
22233 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
22235 2022-02-21 Tom de Vries <tdevries@suse.de>
22238 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
22239 (workaround_uninit_method_2, workaround_uninit_method_3)
22240 (workaround_uninit): New function.
22241 (nvptx_reorg): Use workaround_uninit.
22242 * config/nvptx/nvptx.opt (minit-regs): New option.
22244 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
22246 PR rtl-optimization/104498
22247 * alias.cc (compare_base_symbol_refs): Correct distance computation
22248 when swapping x and y.
22250 2022-02-21 Andrew Pinski <apinski@marvell.com>
22253 * tree-ssa.cc (tree_ssa_useless_type_conversion):
22254 Check the inner type before calling useless_type_conversion_p.
22256 2022-02-19 Tom de Vries <tdevries@suse.de>
22258 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
22259 * config/nvptx/nvptx.md
22260 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
22261 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
22262 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
22263 (define_expand "atomic_store<mode>"): Handle rename. Use
22264 nvptx_atomic_store instead of atomic_exchange.
22266 2022-02-19 Tom de Vries <tdevries@suse.de>
22268 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
22269 insns with atomic attribute. Assert that all handled insns are
22271 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
22272 Set atomic attribute to false.
22274 2022-02-19 Tom de Vries <tdevries@suse.de>
22276 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
22278 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
22279 nvptx_warpsync, if necessary.
22281 2022-02-19 Jakub Jelinek <jakub@redhat.com>
22283 PR sanitizer/102656
22284 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
22285 known to be within bounds, treat it like automatic variables.
22286 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
22287 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
22290 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
22292 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
22293 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
22294 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
22295 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
22296 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
22297 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
22298 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
22299 power10_sched_reorder): Likewise.
22300 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
22301 gen_addadd): Likewise
22302 * config/rs6000/fusion.md: Regenerate.
22304 2022-02-18 Jakub Jelinek <jakub@redhat.com>
22308 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
22309 rather than __posix_memalign.
22311 2022-02-18 Richard Biener <rguenther@suse.de>
22314 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
22315 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
22316 of calling ix86_avx_u128_mode_source which would eventually
22317 have returned AVX_U128_ANY in some very special case.
22319 2022-02-18 Richard Biener <rguenther@suse.de>
22321 PR tree-optimization/96881
22322 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
22324 (control_parents_preserved_p): New function.
22325 (eliminate_unnecessary_stmts): Check that we preserved control
22326 parents before retaining a CLOBBER.
22327 (perform_tree_ssa_dce): Pass down aggressive flag
22328 to eliminate_unnecessary_stmts.
22330 2022-02-17 Jason Merrill <jason@redhat.com>
22332 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
22333 on TYPE_MAIN_VARIANT.
22335 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
22338 * config/rs6000/bmi2intrin.h: Uglify local variables.
22339 * config/rs6000/emmintrin.h: Likewise.
22340 * config/rs6000/mm_malloc.h: Likewise.
22341 * config/rs6000/mmintrin.h: Likewise.
22342 * config/rs6000/pmmintrin.h: Likewise.
22343 * config/rs6000/smmintrin.h: Likewise.
22344 * config/rs6000/tmmintrin.h: Likewise.
22345 * config/rs6000/xmmintrin.h: Likewise.
22347 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
22350 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
22351 if the expected comparison's first operand is of mode MODE_CC.
22353 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
22355 PR rtl-optimization/104447
22356 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
22357 hard reg set by lra_no_alloc_regs.
22359 2022-02-17 liuhongt <hongtao.liu@intel.com>
22361 PR tree-optimization/104551
22362 PR tree-optimization/103771
22363 * match.pd (cond_expr_convert_p): Add types_match check when
22364 convert is extension.
22365 * tree-vect-patterns.cc
22366 (gimple_cond_expr_convert_p): Adjust comments.
22367 (vect_recog_cond_expr_convert_pattern): Ditto.
22369 2022-02-17 Jakub Jelinek <jakub@redhat.com>
22372 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
22373 if expr has VOIDmode.
22375 2022-02-17 liuhongt <hongtao.liu@intel.com>
22377 * config/i386/cpuid.h (bit_MPX): Removed.
22378 (bit_BNDREGS): Ditto.
22379 (bit_BNDCSR): Ditto.
22381 2022-02-17 Michael Meissner <meissner@the-meissners.org>
22384 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
22385 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
22386 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
22389 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
22391 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
22392 range_compatible_p instead of direct type comparison.
22394 2022-02-16 Jakub Jelinek <jakub@redhat.com>
22396 PR rtl-optimization/104544
22397 * combine.cc (try_combine): When looking for insn whose links
22398 should be updated from i3 to i2, don't stop on debug insns, instead
22401 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
22404 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
22405 * config/aarch64/aarch64.md: Extend the PR100056 patterns
22406 to handle plus in the same way as ior, if the operands have
22407 no set bits in common.
22409 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
22411 PR tree-optimization/104526
22412 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
22414 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
22415 of dependency chain if there isn't one.
22416 (gori_compute::condexpr_adjust): New.
22417 * gimple-range-gori.h (class gori_compute): New prototype.
22419 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
22422 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
22424 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
22425 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
22427 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
22429 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
22430 (vect_scalar_ops_slice_hash): Likewise.
22431 (vect_scalar_ops_slice::op): New function.
22432 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
22433 (vect_scalar_ops_slice_hash::hash): Likewise.
22434 (vect_scalar_ops_slice_hash::equal): Likewise.
22435 (vect_prologue_cost_for_slp): Check for duplicate vectors.
22436 * config/aarch64/aarch64.cc
22437 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
22438 (aarch64_aligned_constant_offset_p): New function.
22439 (aarch64_stp_sequence_cost): Likewise.
22440 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
22441 (aarch64_vector_costs::finish_cost): Likewise.
22443 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
22445 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
22448 2022-02-15 Richard Biener <rguenther@suse.de>
22450 PR tree-optimization/104543
22451 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
22452 come after the inner loop.
22454 2022-02-15 Jakub Jelinek <jakub@redhat.com>
22457 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
22458 cannot instead of can%'t in diagnostics. Formatting fixes.
22460 2022-02-15 Jakub Jelinek <jakub@redhat.com>
22462 PR middle-end/104522
22463 * fold-const.h (native_interpret_real): Declare.
22464 * fold-const.cc (native_interpret_real): No longer static. Don't
22465 perform MODE_COMPOSITE_P verification here.
22466 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
22468 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
22469 instead of native_interpret_expr.
22470 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
22471 and comparison verification for all FLOAT_MODE_P modes, not just
22474 2022-02-15 Richard Biener <rguenther@suse.de>
22476 PR tree-optimization/104519
22477 * fold-const.cc (multiple_of_p): Remove never true condition.
22478 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
22479 the appropriate types for determining whether the difference
22480 of final and base is a multiple of the step.
22482 2022-02-15 Jakub Jelinek <jakub@redhat.com>
22485 * omp-low.cc (task_cpyfns): New variable.
22486 (delete_omp_context): Don't call finalize_task_copyfn from here.
22487 (create_task_copyfn): Push task_stmt into task_cpyfns.
22488 (execute_lower_omp): Call finalize_task_copyfn here on entries from
22489 task_cpyfns vector and release the vector.
22491 2022-02-14 Martin Sebor <msebor@redhat.com>
22493 PR middle-end/104355
22494 * doc/invoke.texi (-Warray-bounds): Update documentation.
22496 2022-02-14 Michael Meissner <meissner@the-meissners.org>
22499 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
22500 conversion functions used to convert IFmode types.
22502 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
22504 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
22506 2022-02-14 Richard Biener <rguenther@suse.de>
22508 PR tree-optimization/104528
22509 * tree-ssa.h (find_released_ssa_name): Declare.
22510 * tree-ssa.cc (find_released_ssa_name): Export.
22511 * cfgloop.cc (verify_loop_structure): Look for released
22512 SSA names in loops nb_iterations.
22513 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
22516 2022-02-14 Richard Biener <rguenther@suse.de>
22518 PR tree-optimization/104511
22519 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
22520 touching DFP <-> FP conversions.
22522 2022-02-14 Richard Biener <rguenther@suse.de>
22524 PR middle-end/104497
22525 * gimplify.cc (gimplify_compound_lval): Make sure the
22526 base is a non-register if needed and possible.
22528 2022-02-13 liuhongt <hongtao.liu@intel.com>
22531 * match.pd (cond_expr_convert_p): New match.
22532 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
22533 (vect_recog_cond_expr_convert_pattern): New.
22535 2022-02-12 Jakub Jelinek <jakub@redhat.com>
22537 PR sanitizer/104449
22538 * asan.cc: Include tree-eh.h.
22539 (handle_builtin_alloca): Handle the case when __builtin_alloca or
22540 __builtin_alloca_with_align can throw.
22542 2022-02-12 Jakub Jelinek <jakub@redhat.com>
22545 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
22546 and AVX512VL isn't available, move operands[1] to operands[0] first.
22548 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
22551 * config/i386/i386.cc (type_natural_mode):
22552 Skip decimal float vector modes.
22554 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
22555 Vladimir Makarov <vmakarov@redhat.com>
22558 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
22559 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
22561 (legitimate_lo_sum_address_p): Likewise.
22562 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
22563 load from an invalid lo_sum address.
22565 2022-02-11 Jakub Jelinek <jakub@redhat.com>
22567 PR tree-optimization/104499
22568 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
22571 2022-02-11 Jakub Jelinek <jakub@redhat.com>
22573 * tree.cc (build_common_builtin_nodes): Fix up formatting in
22574 __builtin_clear_padding decl creation.
22575 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
22576 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
22577 argument rather than in 3rd argument.
22578 (gimplify_call_expr): Likewise. Fix up comment formatting.
22579 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
22580 2 arguments instead of 3, take for_auto_init from the value
22583 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
22585 PR rtl-optimization/104400
22586 * lra-constraints.cc (process_alt_operands): Don't make union of
22587 this_alternative_exclude_start_hard_regs when reg class in insn
22588 alternative covers other reg classes in the same alternative.
22590 2022-02-11 Jakub Jelinek <jakub@redhat.com>
22592 PR middle-end/104446
22593 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
22596 2022-02-11 Richard Biener <rguenther@suse.de>
22598 PR middle-end/104496
22599 * internal-fn.cc (vectorized_internal_fn_supported_p):
22600 Bail out for integer mode vector types.
22602 2022-02-11 Jakub Jelinek <jakub@redhat.com>
22604 PR rtl-optimization/104459
22605 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
22606 moving DEBUG_INSNs between bbs.
22608 2022-02-11 liuhongt <hongtao.liu@intel.com>
22610 PR tree-optimization/104479
22611 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
22612 for the dest of uncond_op.
22614 2022-02-11 Tom de Vries <tdevries@suse.de>
22617 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
22620 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
22622 PR middle-end/100775
22623 * function.cc (gen_call_used_regs_seq): Call
22624 df_update_exit_block_uses when updating df.
22626 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
22629 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
22630 Change operand 1 constraint to register_operand.
22632 2022-02-10 Richard Biener <rguenther@suse.de>
22634 PR tree-optimization/104373
22635 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
22637 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
22638 walk kind as argument.
22639 (run_rpo_vn): Adjust.
22640 (pass_fre::execute): Likewise.
22641 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
22642 blocks not reachable.
22643 (execute_late_warn_uninitialized): Mark all edges as
22645 (execute_early_warn_uninitialized): Use VN to compute
22647 (pass_data_early_warn_uninitialized): Enable a dump file,
22648 change dump name to warn_uninit.
22650 2022-02-10 Richard Biener <rguenther@suse.de>
22652 PR middle-end/104467
22653 * match.pd (vector extract simplification): Multiply the
22654 number of CTOR elements with the number of element elements.
22656 2022-02-10 Richard Biener <rguenther@suse.de>
22658 PR tree-optimization/104466
22659 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
22660 for the MR_DEPENDENCE checks as intended.
22662 2022-02-10 Tom de Vries <tdevries@suse.de>
22664 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
22666 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
22668 (define_c_enum "unspecv"): Add UNSPECV_ST.
22670 2022-02-10 Tom de Vries <tdevries@suse.de>
22672 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
22673 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
22674 (nvptx_mem_maybe_shared_p): New function.
22675 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
22678 2022-02-10 Tom de Vries <tdevries@suse.de>
22681 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
22682 driver JIT bug by using sub.s16 instead of sub.u16.
22684 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
22686 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
22687 floating point constants as operands 1 and/or 2.
22689 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
22692 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
22693 (sel_false<mode>): Likewise.
22694 (define_code_iterator eqne): New code iterator for EQ and NE.
22695 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
22696 the negation of a selp instruction.
22697 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
22698 the bitwise not of a selp instruction.
22699 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
22701 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
22703 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
22704 in machine description.
22705 (logic): Move code attribute earlier in machine description.
22706 (ilogic): New code attribute, like logic but "ior" for IOR.
22707 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
22708 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
22709 (<ilogic>bi3): New define_insn for BI mode logic operations.
22710 (define_split): Lower logic operations from integer modes to
22711 BI mode predicate operations.
22713 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
22715 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
22716 (one_cmplbi2): New define_insn for not.pred.
22717 (mulditi3): New define_expand for signed widening multiply.
22718 (umulditi3): New define_expand for unsigned widening multiply.
22719 (smul<mode>3_highpart): New define_insn for signed highpart mult.
22720 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
22721 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
22722 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
22723 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
22724 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
22725 (*setcc<mode>_from_not_bi): New define_insn.
22726 (*setcc_isinf<mode>): New define_insn for testp.infinite.
22727 (isinf<mode>2): New define_expand.
22729 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
22731 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
22732 (setcc<mode>_from_bi): Additionally support QImode.
22733 (extendbi<mode>2): Additionally support QImode.
22734 (zero_extendbi<mode>2): Additionally support QImode.
22735 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
22736 iterators for signed and unsigned, binary and unary operations.
22737 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
22738 expanders to perform QImode operations using SImode instructions.
22739 (cstoreqi4): New define_expand.
22740 (*ext_truncsi2_qi): New define_insn.
22741 (*zext_truncsi2_qi): New define_insn.
22743 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
22745 * config/nvptx/nvptx.md (*cmpf): New define_insn.
22746 (cstorehf4): New define_expand.
22747 (fmahf4): New define_insn.
22748 (neghf2): New define_insn.
22749 (abshf2): New define_insn.
22751 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
22753 * doc/install.texi (Specific): Change the www.bitwizard.nl
22754 reference to use https.
22756 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
22758 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
22759 OMP_CLAUSE_HAS_DEVICE_ADDR
22760 and handle array sections.
22761 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
22762 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
22763 (lower_omp_target): Same.
22764 * tree-core.h (enum omp_clause_code): Same.
22765 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
22766 (convert_local_omp_clauses): Same.
22767 * tree-pretty-print.cc (dump_omp_clause): Same.
22770 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
22772 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
22773 that will result in direct recursive calls.
22775 2022-02-10 Andrew Pinski <apinski@marvell.com>
22778 * config/aarch64/aarch64.cc
22779 (aarch64_sve_expand_vector_init_handle_trailing_constants):
22780 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
22782 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
22785 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
22786 Also include OPTION_MASK_ISA2_AVX2_UNSET.
22788 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
22791 * config/i386/i386-expand.cc (ix86_split_idivmod):
22792 Force operands[2] and operands[3] into a register..
22794 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
22797 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
22798 (*v850_fnmssf4): Renamed from fnmssf4
22800 2022-02-09 Ian Lance Taylor <iant@golang.org>
22802 * godump.cc (go_force_record_alignment): Really name the alignment
22803 field "_" (complete 2021-12-29 change).
22805 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
22807 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
22808 function prototype.
22809 (VREPLACE_UN_UV4SI): Likewise.
22810 (VREPLACE_UN_V2DF): Likewise.
22811 (VREPLACE_UN_V2DI): Likewise.
22812 (VREPLACE_UN_V4SF): Likewise.
22813 (VREPLACE_UN_V4SI): Likewise.
22814 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
22815 function prototypes.
22816 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
22817 (vreplace_un_<mode>): New define_insn.
22819 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22821 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
22823 (single_wx, single_type, single_dtype, dblq): New mode attributes.
22824 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
22825 from VDC to VDCSIF.
22826 (store_pair_lanes<mode>): Likewise.
22827 (*aarch64_combine_internal<mode>): Likewise.
22828 (*aarch64_combine_internal_be<mode>): Likewise.
22829 (*aarch64_combinez<mode>): Likewise.
22830 (*aarch64_combinez_be<mode>): Likewise.
22831 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
22832 8-byte modes for ADDR_QUERY_LDP_STP_N.
22833 (aarch64_print_operand): Likewise for %y.
22835 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22837 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
22838 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
22839 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
22840 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
22841 (vec_pack_trunc_<mode>): Take general_operand elements and use
22842 aarch64_combine rather than move_lo/hi_quad to combine them.
22843 (vec_pack_trunc_df): Likewise.
22845 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22847 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
22849 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
22851 (*aarch64_combinez<mode>): ...this.
22852 (@aarch64_combinez_be<mode>): Rename to...
22853 (*aarch64_combinez_be<mode>): ...this.
22854 (@aarch64_vec_concat<mode>): New expander.
22855 (aarch64_combine<mode>): Use it.
22856 (@aarch64_simd_combine<mode>): Delete.
22857 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
22858 (aarch64_expand_vector_init): Use aarch64_vec_concat.
22860 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22862 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
22864 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
22865 (*aarch64_combine_internal_be<mode>): New patterns.
22867 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22869 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
22870 (move_lo_quad_internal_be_<mode>): Delete.
22871 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
22873 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22875 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
22877 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
22878 aarch64_mergeable_load_pair_p instead of inline check.
22879 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
22880 (aarch64_check_consecutive_mems): Allow the reversed parameter
22882 (aarch64_mergeable_load_pair_p): New function.
22884 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22886 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
22887 element to be an aarch64_simd_nonimmediate_operand.
22889 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
22891 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
22892 aarch64_simd_nonimmediate_operand instead of
22893 aarch64_simd_general_operand.
22894 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
22896 (@aarch64_combinez_be<mode>): Likewise.
22898 2022-02-09 Richard Biener <rguenther@suse.de>
22900 PR middle-end/104464
22901 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
22902 throwing check to after unproblematic replacement.
22904 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
22906 PR tree-optimization/104420
22907 * match.pd (mult @0 real_zerop): Tweak conditions for constant
22908 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
22910 2022-02-09 Jakub Jelinek <jakub@redhat.com>
22913 * dwarf2out.cc (mangle_referenced_decls): New function.
22914 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
22915 early_dwarf. Instead walk the initializer and try to mangle vars or
22916 functions referenced from it.
22918 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
22920 PR tree-optimization/104288
22921 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
22922 (non_null_ref::adjust_range): Move to header.
22923 (ranger_cache::range_of_def): Don't check non-null.
22924 (ranger_cache::entry_range): Don't check non-null.
22925 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
22926 (ranger_cache::update_to_nonnull): New.
22927 (non_null_loadstore): New.
22928 (ranger_cache::block_apply_nonnull): New.
22929 * gimple-range-cache.h (class non_null_ref): Update prototypes.
22930 (non_null_ref::adjust_range): Move to here and inline.
22931 (class ranger_cache): Update prototypes.
22932 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
22933 not search dominators.
22934 (path_range_query::adjust_for_non_null_uses): Ditto.
22935 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
22936 def overrides. Do not check nonnull.
22937 (gimple_ranger::range_on_entry): Check dominators for nonnull.
22938 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
22939 (gimple_ranger::register_side_effects): New.
22940 * gimple-range.h (gimple_ranger::register_side_effects): New.
22941 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
22943 2022-02-09 Richard Biener <rguenther@suse.de>
22945 PR tree-optimization/104445
22946 PR tree-optimization/102832
22947 * optabs-query.h (can_vec_extract): New.
22948 * optabs-query.cc (can_vec_extract): Likewise.
22949 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
22950 we can extract a hi/lo part from the larger vector, rework
22951 check iteration from larger to smaller sizes.
22953 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
22957 * config/i386/gnu-property.cc: Include "i386-protos.h".
22958 (file_end_indicate_exec_stack_and_gnu_property): Generate
22959 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
22960 nodirect_extern_access attribute.
22961 * config/i386/i386-options.cc
22962 (handle_nodirect_extern_access_attribute): New function.
22963 (ix86_attribute_table): Add nodirect_extern_access attribute.
22964 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
22966 (ix86_has_no_direct_extern_access): New.
22967 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
22968 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
22969 call operand. Force non-call load from GOT for
22970 -mno-direct-extern-access or nodirect_extern_access attribute.
22971 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
22972 for -mno-direct-extern-access or nodirect_extern_access attribute.
22973 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
22975 (asm_preferred_eh_data_format): Use PC-relative format for
22976 -mno-direct-extern-access to avoid copy relocation. Check
22977 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
22978 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
22979 true for -mno-direct-extern-access or nodirect_extern_access
22980 attribute. Don't treat protected data as extern and avoid copy
22981 relocation on common symbol with -mno-direct-extern-access or
22982 nodirect_extern_access attribute.
22983 (ix86_reloc_rw_mask): New to avoid copy relocation for
22984 -mno-direct-extern-access.
22985 (TARGET_ASM_RELOC_RW_MASK): New.
22986 * config/i386/i386.opt: Add -mdirect-extern-access.
22987 * doc/extend.texi: Document nodirect_extern_access attribute.
22988 * doc/invoke.texi: Document -m[no-]direct-extern-access.
22990 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
22993 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
22994 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
22995 Call ix86_avx_u128_mode_source to check mode for each component
22998 2022-02-09 liuhongt <hongtao.liu@intel.com>
23001 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
23002 operands[2] from SImode to QImode.
23004 2022-02-09 Richard Biener <rguenther@suse.de>
23006 PR middle-end/104450
23007 * gimple-isel.cc: Pass cfun around.
23008 (+gimple_expand_vec_cond_expr): Do not combine a throwing
23009 comparison with the select.
23011 2022-02-09 Richard Biener <rguenther@suse.de>
23014 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
23015 folding for NULL LHS.
23017 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
23019 PR rtl-optimization/104198
23020 PR rtl-optimization/104153
23021 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
23022 using it directly. Rework comparison handling and always
23023 perform a second pass.
23025 2022-02-08 Jakub Jelinek <jakub@redhat.com>
23028 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
23029 split1 pass has finished already.
23031 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
23033 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
23034 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
23035 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
23036 (vmsumcud): New define_insn.
23038 2022-02-08 Tom de Vries <tdevries@suse.de>
23040 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
23041 * config/nvptx/nvptx.h (TARGET_SM70): Define.
23043 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
23045 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
23047 * config/s390/s390.md: Use paradoxical subreg.
23049 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
23051 * combine.cc (reg_subword_p): Check for paradoxical subreg.
23053 2022-02-08 Tom de Vries <tdevries@suse.de>
23056 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
23057 and PTX_VERSION_4_2.
23058 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
23059 (default_ptx_version_option, ptx_version_to_string)
23060 (sm_version_to_string, handle_ptx_version_option): New function.
23061 (nvptx_option_override): Call handle_ptx_version_option.
23062 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
23063 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
23064 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
23065 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
23067 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
23069 * doc/install.texi (Configuration): Document `--with-isa-spec='
23071 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
23073 (RISC-V Options): Document it.
23075 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
23077 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
23079 2022-02-08 Tom de Vries <tdevries@suse.de>
23081 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
23083 2022-02-08 Tom de Vries <tdevries@suse.de>
23086 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
23087 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
23088 change is validated.
23089 (nvptx_mem_local_p): New function.
23090 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
23091 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
23092 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
23093 non-atomic, non-predicable define_insn, factored out of ...
23094 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
23095 Make predicable again.
23096 (define_expand "atomic_compare_and_swap<mode>"): Use
23097 atomic_compare_and_swap<mode>_1_local.
23099 2022-02-08 liuhongt <hongtao.liu@intel.com>
23101 PR rtl-optimization/104059
23102 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
23103 for a more expensive reg-reg move.
23105 2022-02-07 Tamar Christina <tamar.christina@arm.com>
23107 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
23108 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
23109 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
23110 (usdot_laneq, sudot_laneq): New.
23111 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
23112 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
23114 2022-02-07 Tamar Christina <tamar.christina@arm.com>
23116 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
23117 vdot_laneq_s32, vdotq_laneq_s32): New.
23118 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
23119 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
23120 (<sup>dot_prod<vsi2qi>): Re-order rtl.
23121 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
23122 (neon_<sup>dot_laneq<vsi2qi>): New.
23124 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
23127 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
23128 if always_inline is set. Don't inline when tune differs without
23131 2022-02-07 Richard Biener <rguenther@suse.de>
23133 PR middle-end/104402
23134 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
23135 compares are not valid.
23136 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
23137 check is_gimple_condexpr.
23139 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
23142 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
23143 hunk affecting VSX and ALTIVEC to appropriate place.
23145 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
23148 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
23149 MMA if !TARGET_VSX.
23151 2022-02-06 Jakub Jelinek <jakub@redhat.com>
23155 * fold-const.h (folding_initializer): Adjust comment.
23156 (folding_cxx_constexpr): Declare.
23157 * fold-const.cc (folding_initializer): Adjust comment.
23158 (folding_cxx_constexpr): New variable.
23159 (address_compare): Restrict the decl vs. STRING_CST
23160 or vice versa or STRING_CST vs. STRING_CST or
23161 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
23162 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
23163 assume non-aliased functions have non-zero size and have different
23164 addresses. For folding_cxx_constexpr, punt on comparisons of start
23165 of some object and end of another one, regardless whether it is a decl
23166 or string literal. Also punt for folding_cxx_constexpr on
23167 STRING_CST vs. STRING_CST comparisons if the two literals could be
23170 2022-02-05 Jakub Jelinek <jakub@redhat.com>
23172 PR tree-optimization/104389
23173 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
23176 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
23178 * configure.ac: Fix detection for zifencei support.
23179 * configure: Regenerate.
23181 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
23184 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
23185 (all_defaults): Add isa_spec.
23186 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
23188 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
23190 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
23191 parameters instead of arglist and nargs. Simplify accordingly. Remove
23192 unnecessary test for argument count mismatch.
23193 (resolve_vec_cmpne): Likewise.
23194 (resolve_vec_adde_sube): Likewise.
23195 (resolve_vec_addec_subec): Likewise.
23196 (altivec_resolve_overloaded_builtin): Move overload special handling
23197 after the gathering of arguments into args[] and types[] and the test
23198 for correct number of arguments. Don't perform the test for correct
23199 number of arguments for certain special cases. Call the other special
23200 cases with args and types instead of arglist and nargs.
23202 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
23205 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
23206 3.1): Provide consistent type names. Remove unnecessary semicolons.
23207 Fix bad line breaks.
23209 2022-02-04 Jakub Jelinek <jakub@redhat.com>
23212 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
23213 adjust mangling of __builtin*printf_chk.
23215 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
23217 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
23219 2022-02-04 Richard Biener <rguenther@suse.de>
23220 Bin Cheng <bin.cheng@linux.alibaba.com>
23222 PR tree-optimization/100499
23223 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
23225 * fold-const.cc (multiple_of_p): Likewise. Honor it for
23226 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
23227 switching to false for conversions.
23228 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
23229 claim the outermost expression does not wrap when calling
23230 multiple_of_p. Refactor the check done to check the
23231 original IV, avoiding a bias that might wrap.
23233 2022-02-04 Richard Biener <rguenther@suse.de>
23235 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
23238 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
23241 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
23242 (dwarf2out_early_finish): Likewise.
23244 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
23246 PR tree-optimization/104356
23247 * match.pd (X / bool_range_Y is X): Add guard.
23248 (X / X is one): Likewise.
23249 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
23250 (X / -X is -1): Likewise.
23251 (1 / X -> X == 1): Likewise.
23253 2022-02-04 Richard Biener <rguenther@suse.de>
23255 PR tree-optimization/103641
23256 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
23257 Pass the vector mode to choose_mult_variant.
23259 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
23261 PR rtl-optimization/101885
23262 * combine.cc (try_combine): When splitting a parallel into two
23263 sequential sets, check not only that the first doesn't clobber
23264 the second but also that the second doesn't clobber the first.
23266 2022-02-04 Richard Biener <rguenther@suse.de>
23268 PR middle-end/90348
23269 PR middle-end/104092
23270 * tree-core.h (clobber_kind): New enum.
23271 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
23272 * tree.h (CLOBBER_KIND): Add.
23273 (build_clobber): Add clobber kind argument, defaulted to
23275 * tree.cc (build_clobber): Likewise.
23276 * gimple.h (gimple_clobber_p): New overload with specified kind.
23277 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
23279 * tree-streamer-out.cc (streamer_write_tree_bitfields):
23281 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
23282 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
23284 (gimplify_target_expr): Likewise.
23285 * tree-inline.cc (expand_call_inline): Likewise.
23286 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
23287 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
23288 CLOBBER_EOL clobbers as ending lifetime of storage.
23290 2022-02-04 Martin Sebor <msebor@redhat.com>
23292 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
23295 2022-02-03 Martin Sebor <msebor@redhat.com>
23297 PR middle-end/104260
23298 * passes.def (pass_warn_access): Adjust pass placement.
23300 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
23303 * config/i386/i386.cc (find_drap_reg): For 32bit targets
23304 return DI_REG if function uses __builtin_eh_return.
23306 2022-02-03 Martin Sebor <msebor@redhat.com>
23308 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
23309 (pass_wrestrict::m_ptr_qry): New member.
23310 (wrestrict_walk): Rename...
23311 (pass_wrestrict::check_block): ...to this.
23312 (pass_wrestrict::execute): Set up and tear down pointer_query and
23314 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
23315 (builtin_access::builtin_access): Same.
23316 (builtin_access::m_ptr_qry): New member.
23317 (check_call): Rename...
23318 (pass_wrestrict::check_call): ...to this.
23319 (check_bounds_or_overlap): Change argument.
23320 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
23322 2022-02-03 Martin Sebor <msebor@redhat.com>
23324 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
23326 (array_bounds_checker::get_value_range): Use new member.
23327 (array_bounds_checker::check_mem_ref): Same.
23328 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
23330 (array_bounds_checker::m_ptr_query): New member.
23332 2022-02-03 Martin Sebor <msebor@redhat.com>
23334 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
23335 pointer_query cache.
23336 * pointer-query.cc (pointer_query::pointer_query): Remove cache
23337 argument. Zero-initialize new cache member.
23338 (pointer_query::get_ref): Replace cache pointer with direct access.
23339 (pointer_query::put_ref): Same.
23340 (pointer_query::flush_cache): Same.
23341 (pointer_query::dump): Same.
23342 * pointer-query.h (class pointer_query): Remove cache argument from
23343 ctor. Change cache pointer to cache subobject member.
23344 * tree-ssa-strlen.cc: Remove pointer_query cache.
23346 2022-02-03 Martin Sebor <msebor@redhat.com>
23348 PR tree-optimization/104119
23349 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
23350 (format_none): Same.
23351 (format_percent): Same.
23352 (format_integer): Same.
23353 (format_floating): Same.
23354 (get_string_length): Same.
23355 (format_character): Same.
23356 (format_string): Same.
23357 (format_plain): Same.
23358 (format_directive): Same.
23359 (compute_format_length): Same.
23360 (handle_printf_call): Same.
23361 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
23363 (get_range_strlen_phi): Same.
23364 (get_maxbound): New function.
23365 (strlen_pass::get_len_or_size): Adjust to parameter change.
23366 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
23368 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
23371 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
23372 test for !rs6000_fold_gimple.
23373 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
23374 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
23376 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
23379 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
23380 endianness for vclzlsbb and vctzlsbb.
23381 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
23382 default pattern and indicate a different pattern will be used for
23384 (VCLZLSBB_V4SI): Likewise.
23385 (VCLZLSBB_V8HI): Likewise.
23386 (VCTZLSBB_V16QI): Likewise.
23387 (VCTZLSBB_V4SI): Likewise.
23388 (VCTZLSBB_V8HI): Likewise.
23390 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
23392 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
23393 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
23395 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
23397 (cpu_supports_info): Likewise.
23398 (rs6000_type_string): Likewise.
23399 (altivec_expand_predicate_builtin): Likewise.
23400 (rs6000_htm_spr_icode): Likewise.
23401 (altivec_expand_vec_init_builtin): Likewise.
23402 (get_element_number): Likewise.
23403 (altivec_expand_vec_set_builtin): Likewise.
23404 (altivec_expand_vec_ext_builtin): Likewise.
23405 (rs6000_invalid_builtin): Likewise.
23406 (rs6000_fold_builtin): Likewise.
23407 (fold_build_vec_cmp): Likewise.
23408 (fold_compare_helper): Likewise.
23409 (map_to_integral_tree_type): Likewise.
23410 (fold_mergehl_helper): Likewise.
23411 (fold_mergeeo_helper): Likewise.
23412 (rs6000_builtin_valid_without_lhs): Likewise.
23413 (rs6000_builtin_is_supported): Likewise.
23414 (rs6000_gimple_fold_mma_builtin): Likewise.
23415 (rs6000_gimple_fold_builtin): Likewise.
23416 (rs6000_expand_ldst_mask): Likewise.
23417 (cpu_expand_builtin): Likewise.
23418 (elemrev_icode): Likewise.
23419 (ldv_expand_builtin): Likewise.
23420 (lxvrse_expand_builtin): Likewise.
23421 (lxvrze_expand_builtin): Likewise.
23422 (stv_expand_builtin): Likewise.
23423 (mma_expand_builtin): Likewise.
23424 (htm_spr_num): Likewise.
23425 (htm_expand_builtin): Likewise.
23426 (rs6000_expand_builtin): Likewise.
23427 (rs6000_vector_type): Likewise.
23428 (rs6000_init_builtins): Likewise. Remove initialization of
23429 builtin_mode_to_type entries.
23430 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
23431 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
23432 external declaration.
23433 (rs6000_builtin_md_vectorized_function): Likewise.
23434 (rs6000_builtin_reciprocal): Likewise.
23435 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
23436 (rs6000_builtin_types): Likewise.
23437 (builtin_mode_to_type): Remove.
23438 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
23440 (rs6000_builtin_md_vectorized_function): Likewise.
23441 (rs6000_builtin_reciprocal): Likewise.
23442 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
23443 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
23445 2022-02-03 Richard Biener <rguenther@suse.de>
23448 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
23449 together via DECL_ABSTRACT_ORIGIN.
23451 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
23453 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
23454 message for RES_BITS case.
23456 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
23458 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
23460 2022-02-03 Jakub Jelinek <jakub@redhat.com>
23462 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
23463 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
23465 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
23467 * cfganal.cc (verify_marked_backedges): New.
23468 * cfganal.h (verify_marked_backedges): New.
23469 * gimple-range-path.cc (path_range_query::path_range_query):
23470 Verify freshness of back edges.
23471 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
23472 mark_dfs_back_edges.
23473 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
23474 path_range_query construction after backedges have been
23477 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
23479 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
23482 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
23484 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
23485 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
23488 2022-02-03 Martin Liska <mliska@suse.cz>
23490 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
23491 Change subject and object in the error message.
23492 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
23495 2022-02-03 Martin Liska <mliska@suse.cz>
23497 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
23498 Use the error message for i386 target.
23500 2022-02-03 Jakub Jelinek <jakub@redhat.com>
23502 PR tree-optimization/104334
23503 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
23504 and rh_range type to widest_int and subtract in widest_int. Remove
23505 ov_rh, ov_lh and sign vars, always perform comparisons as signed
23506 and use >, < and == operators for it.
23508 2022-02-03 Martin Sebor <msebor@redhat.com>
23510 * common.opt (-Wuse-after-free): Correct typos.
23512 2022-02-02 David Malcolm <dmalcolm@redhat.com>
23515 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
23516 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
23517 -ftrivial-auto-var-init= doesn't suppress warnings.
23519 2022-02-02 Martin Liska <mliska@suse.cz>
23521 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
23523 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
23526 * config/or1k/linux.h (CPP_SPEC): Define.
23528 2022-02-02 Tamar Christina <tamar.christina@arm.com>
23530 PR tree-optimization/102819
23531 PR tree-optimization/103169
23532 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
23535 2022-02-02 Tamar Christina <tamar.christina@arm.com>
23537 PR tree-optimization/102819
23538 PR tree-optimization/103169
23539 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
23541 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
23543 2022-02-02 Tamar Christina <tamar.christina@arm.com>
23545 PR tree-optimization/102819
23546 PR tree-optimization/103169
23547 * doc/md.texi: Update docs for cfms, cfma.
23548 * tree-data-ref.h (same_data_refs): Accept optional offset.
23549 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
23551 (vect_normalize_conj_loc): Remove.
23552 (is_eq_or_top): Change to take two nodes.
23553 (enum _conj_status, compatible_complex_nodes_p,
23554 vect_validate_multiplication): New.
23555 (class complex_add_pattern, complex_add_pattern::matches,
23556 complex_add_pattern::recognize, class complex_mul_pattern,
23557 complex_mul_pattern::recognize, class complex_fms_pattern,
23558 complex_fms_pattern::recognize, class complex_operations_pattern,
23559 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
23561 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
23562 cache and use new validation code.
23563 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
23564 vect_analyze_slp): Pass along cache.
23565 (compatible_calls_p): Expose.
23566 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
23567 slp_compat_nodes_map_t): New.
23568 (class vect_pattern): Update signatures include new cache.
23570 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
23572 * config/cris/cris.cc (cris_preferred_reload_class): Reject
23573 "eliminated" registers and small-enough constants unless
23574 reloaded into a class that is a subset of GENERAL_REGS.
23575 * config/cris/cris.md (attribute "cpu_variant"): New.
23576 (attribute "enabled"): Conditionalize on a matching attribute
23577 cpu_variant, if specified.
23578 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
23579 memory, add cpu-variant-enabled variants for "r" alternatives on
23580 the far side of the "x" alternatives, preferring the "x" ones
23581 only for variants where MOF is present (in addition to SRP).
23583 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
23585 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
23586 extra cost for ALL_REGS.
23588 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
23590 * config/cris/constraints.md (define_register_constraint "b"): Now
23592 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
23593 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
23594 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
23595 and SPEC_GENNONACR_REGS.
23596 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
23597 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
23599 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
23601 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
23602 Conditionalize on (sub-)register operands or operand 1 being 0.
23604 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
23606 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
23607 (MUL_BUG_ASM_DEFAULT): New macro.
23608 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
23609 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
23612 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
23614 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
23617 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
23619 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
23621 2022-02-01 Andrew Pinski <apinski@marvell.com>
23623 * doc/install.texi:
23625 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
23627 * config/s390/s390.cc (s390_code_end): Do not switch back to
23630 2022-02-01 Jakub Jelinek <jakub@redhat.com>
23633 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
23634 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
23635 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
23636 GTY((user)) for struct bifdata and struct ovlddata. Instead add
23637 GTY((skip(""))) to members with pointer and enum types that don't need
23638 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
23639 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
23640 (write_extern_fntype, write_fntype): Remove.
23641 (write_fntype_init): Emit the fntype vars as automatic vars instead
23642 of file scope ones.
23643 (write_header_file): Don't iterate with write_extern_fntype.
23644 (write_init_file): Don't iterate with write_fntype. Don't emit
23645 gt_ggc_mx and gt_pch_nx definitions.
23647 2022-02-01 Jason Merrill <jason@redhat.com>
23649 * tree.h (struct tree_vec_map_cache_hasher): Move from...
23650 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
23652 2022-02-01 Tom de Vries <tdevries@suse.de>
23654 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
23655 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
23656 UNSPECV_UNIFORM_WARP_CHECK.
23657 (define_insn "nvptx_uniform_warp_check"): New define_insn.
23659 2022-02-01 Tom de Vries <tdevries@suse.de>
23661 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
23662 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
23664 (define_insn "nvptx_warpsync"): New define_insn.
23666 2022-02-01 Tom de Vries <tdevries@suse.de>
23668 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
23670 2022-02-01 Tom de Vries <tdevries@suse.de>
23672 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
23673 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
23674 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
23675 insn for TARGET_PTX_6_0.
23677 2022-02-01 Tom de Vries <tdevries@suse.de>
23680 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
23683 2022-02-01 Tom de Vries <tdevries@suse.de>
23685 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
23686 (define_insn "atomic_exchange<mode>")
23687 (define_insn "atomic_fetch_add<mode>")
23688 (define_insn "atomic_fetch_addsf")
23689 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
23690 if memory operands is frame-relative.
23692 2022-02-01 Tom de Vries <tdevries@suse.de>
23694 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
23695 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
23697 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
23698 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
23699 NVPTX_BUILTIN_MEMBAR_CTA.
23700 (nvptx_lockfull_update): Add level parameter. Emit barriers.
23701 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
23702 nvptx_lockfull_update.
23703 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
23705 (define_expand "nvptx_membar_gl"): New expand.
23706 (define_insn "*nvptx_membar_gl"): New insn.
23708 2022-02-01 Martin Liska <mliska@suse.cz>
23710 * doc/install.texi: Remove option for GCC < 4.8.
23712 2022-02-01 Jakub Jelinek <jakub@redhat.com>
23714 PR middle-end/104307
23715 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
23716 stmts to uses vector, just set vec_cond_expr_only to false for
23717 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
23718 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
23719 like non-VEC_COND_EXPRs.
23721 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
23723 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
23724 (VEC_BLENDV): Likewise.
23725 (VEC_BPERM): Likewise.
23726 (VEC_CFUGE): Likewise.
23727 (VEC_CIPHER_BE): Likewise.
23728 (VEC_CIPHERLAST_BE): Likewise.
23729 (VEC_CLRL): Likewise.
23730 (VEC_CLRR): Likewise.
23731 (VEC_CMPNEZ): Likewise.
23732 (VEC_CNTLZ): Likewise.
23733 (VEC_CNTLZM): Likewise.
23734 (VEC_CNTTZM): Likewise.
23735 (VEC_CNTLZ_LSBB): Likewise.
23736 (VEC_CNTM): Likewise.
23737 (VEC_CNTTZ): Likewise.
23738 (VEC_CNTTZ_LSBB): Likewise.
23739 (VEC_CONVERT_4F32_8F16): Likewise.
23740 (VEC_DIV): Likewise.
23741 (VEC_DIVE): Likewise.
23742 (VEC_EQV): Likewise.
23743 (VEC_EXPANDM): Likewise.
23744 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
23745 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
23746 (VEC_EXTRACTH): Likewise.
23747 (VEC_EXTRACTL): Likewise.
23748 (VEC_EXTRACTM): Likewise.
23749 (VEC_EXTRACT4B): Likewise.
23750 (VEC_EXTULX): Likewise.
23751 (VEC_EXTURX): Likewise.
23752 (VEC_FIRSTMATCHINDEX): Likewise.
23753 (VEC_FIRSTMACHOREOSINDEX): Likewise.
23754 (VEC_FIRSTMISMATCHINDEX): Likewise.
23755 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
23756 (VEC_GB): Likewise.
23757 (VEC_GENBM): Likewise.
23758 (VEC_GENHM): Likewise.
23759 (VEC_GENWM): Likewise.
23760 (VEC_GENDM): Likewise.
23761 (VEC_GENQM): Likewise.
23762 (VEC_GENPCVM): Likewise.
23763 (VEC_GNB): Likewise.
23764 (VEC_INSERTH): Likewise.
23765 (VEC_INSERTL): Likewise.
23766 (VEC_INSERT4B): Likewise.
23767 (VEC_LXVL): Likewise.
23768 (VEC_MERGEE): Likewise.
23769 (VEC_MERGEO): Likewise.
23770 (VEC_MOD): Likewise.
23771 (VEC_MSUB): Likewise.
23772 (VEC_MULH): Likewise.
23773 (VEC_NAND): Likewise.
23774 (VEC_NCIPHER_BE): Likewise.
23775 (VEC_NCIPHERLAST_BE): Likewise.
23776 (VEC_NEARBYINT): Likewise.
23777 (VEC_NMADD): Likewise.
23778 (VEC_ORC): Likewise.
23779 (VEC_PDEP): Likewise.
23780 (VEC_PERMX): Likewise.
23781 (VEC_PEXT): Likewise.
23782 (VEC_POPCNT): Likewise.
23783 (VEC_PARITY_LSBB): Likewise.
23784 (VEC_REPLACE_ELT): Likewise.
23785 (VEC_REPLACE_UN): Likewise.
23786 (VEC_REVB): Likewise.
23787 (VEC_RINT): Likewise.
23788 (VEC_RLMI): Likewise.
23789 (VEC_RLNM): Likewise.
23790 (VEC_SBOX_BE): Likewise.
23791 (VEC_SIGNEXTI): Likewise.
23792 (VEC_SIGNEXTLL): Likewise.
23793 (VEC_SIGNEXTQ): Likewise.
23794 (VEC_SLDB): Likewise.
23795 (VEC_SLV): Likewise.
23796 (VEC_SPLATI): Likewise.
23797 (VEC_SPLATID): Likewise.
23798 (VEC_SPLATI_INS): Likewise.
23799 (VEC_SQRT): Likewise.
23800 (VEC_SRDB): Likewise.
23801 (VEC_SRV): Likewise.
23802 (VEC_STRIL): Likewise.
23803 (VEC_STRIL_P): Likewise.
23804 (VEC_STRIR): Likewise.
23805 (VEC_STRIR_P): Likewise.
23806 (VEC_STXVL): Likewise.
23807 (VEC_TERNARYLOGIC): Likewise.
23808 (VEC_TEST_LSBB_ALL_ONES): Likewise.
23809 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
23810 (VEC_VEE): Likewise.
23811 (VEC_VES): Likewise.
23812 (VEC_VIE): Likewise.
23813 (VEC_VPRTYB): Likewise.
23814 (VEC_VSCEEQ): Likewise.
23815 (VEC_VSCEGT): Likewise.
23816 (VEC_VSCELT): Likewise.
23817 (VEC_VSCEUO): Likewise.
23818 (VEC_VSEE): Likewise.
23819 (VEC_VSES): Likewise.
23820 (VEC_VSIE): Likewise.
23821 (VEC_VSTDC): Likewise.
23822 (VEC_VSTDCN): Likewise.
23823 (VEC_VTDC): Likewise.
23824 (VEC_XL): Likewise.
23825 (VEC_XL_BE): Likewise.
23826 (VEC_XL_LEN_R): Likewise.
23827 (VEC_XL_SEXT): Likewise.
23828 (VEC_XL_ZEXT): Likewise.
23829 (VEC_XST): Likewise.
23830 (VEC_XST_BE): Likewise.
23831 (VEC_XST_LEN_R): Likewise.
23832 (VEC_XST_TRUNC): Likewise.
23833 (VEC_XXPERMDI): Likewise.
23834 (VEC_XXSLDWI): Likewise.
23835 (VEC_TSTSFI_EQ_DD): Likewise.
23836 (VEC_TSTSFI_EQ_TD): Likewise.
23837 (VEC_TSTSFI_GT_DD): Likewise.
23838 (VEC_TSTSFI_GT_TD): Likewise.
23839 (VEC_TSTSFI_LT_DD): Likewise.
23840 (VEC_TSTSFI_LT_TD): Likewise.
23841 (VEC_TSTSFI_OV_DD): Likewise.
23842 (VEC_TSTSFI_OV_TD): Likewise.
23843 (VEC_VADDCUQ): Likewise.
23844 (VEC_VADDECUQ): Likewise.
23845 (VEC_VADDEUQM): Likewise.
23846 (VEC_VADDUDM): Likewise.
23847 (VEC_VADDUQM): Likewise.
23848 (VEC_VBPERMQ): Likewise.
23849 (VEC_VCLZB): Likewise.
23850 (VEC_VCLZD): Likewise.
23851 (VEC_VCLZH): Likewise.
23852 (VEC_VCLZW): Likewise.
23853 (VEC_VCTZB): Likewise.
23854 (VEC_VCTZD): Likewise.
23855 (VEC_VCTZH): Likewise.
23856 (VEC_VCTZW): Likewise.
23857 (VEC_VEEDP): Likewise.
23858 (VEC_VEESP): Likewise.
23859 (VEC_VESDP): Likewise.
23860 (VEC_VESSP): Likewise.
23861 (VEC_VIEDP): Likewise.
23862 (VEC_VIESP): Likewise.
23863 (VEC_VPKSDSS): Likewise.
23864 (VEC_VPKSDUS): Likewise.
23865 (VEC_VPKUDUM): Likewise.
23866 (VEC_VPKUDUS): Likewise.
23867 (VEC_VPOPCNT): Likewise.
23868 (VEC_VPOPCNTB): Likewise.
23869 (VEC_VPOPCNTD): Likewise.
23870 (VEC_VPOPCNTH): Likewise.
23871 (VEC_VPOPCNTW): Likewise.
23872 (VEC_VPRTYBD): Likewise.
23873 (VEC_VPRTYBQ): Likewise.
23874 (VEC_VPRTYBW): Likewise.
23875 (VEC_VRLD): Likewise.
23876 (VEC_VSLD): Likewise.
23877 (VEC_VSRAD): Likewise.
23878 (VEC_VSRD): Likewise.
23879 (VEC_VSTDCDP): Likewise.
23880 (VEC_VSTDCNDP): Likewise.
23881 (VEC_VSTDCNQP): Likewise.
23882 (VEC_VSTDCNSP): Likewise.
23883 (VEC_VSTDCQP): Likewise.
23884 (VEC_VSTDCSP): Likewise.
23885 (VEC_VSUBECUQ): Likewise.
23886 (VEC_VSUBEUQM): Likewise.
23887 (VEC_VSUBUDM): Likewise.
23888 (VEC_VSUBUQM): Likewise.
23889 (VEC_VTDCDP): Likewise.
23890 (VEC_VTDCSP): Likewise.
23891 (VEC_VUPKHSW): Likewise.
23892 (VEC_VUPKLSW): Likewise.
23894 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
23896 PR rtl-optimization/101260
23897 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
23900 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
23902 PR middle-end/95115
23903 * fold-const.cc (const_binop): Do not fold NaN result from
23906 2022-02-01 Tom de Vries <tdevries@suse.de>
23908 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
23909 -ftree-loop-distribute-patterns.
23910 (loop_distribution::execute): Don't call transform_reduction_loop for
23911 -fno-tree-loop-distribute-patterns.
23913 2022-01-31 Andrew Pinski <apinski@marvell.com>
23915 * fold-const.h (operand_compare::operand_equal_p):
23916 Fix comment about OEP_* flags.
23918 2022-01-31 Jakub Jelinek <jakub@redhat.com>
23921 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
23922 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
23923 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
23924 if not already defined.
23926 2022-01-31 Martin Sebor <msebor@redhat.com>
23928 PR middle-end/104232
23929 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
23930 Handle PHIs. Add a synonymous overload.
23931 (pass_waccess::check_pointer_uses): Call pointers_related_p.
23933 2022-01-31 Richard Biener <rguenther@suse.de>
23935 PR tree-optimization/100499
23936 * fold-const.cc (multiple_of_p): Pass the correct type of
23937 the expression to the recursive invocation of multiple_of_p
23938 for conversions and use CASE_CONVERT.
23940 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
23943 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
23945 2022-01-31 Richard Biener <rguenther@suse.de>
23947 PR tree-optimization/100499
23948 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
23949 on poly-ints instead of multiple_of_p.
23950 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
23951 (non_rewritable_mem_ref_base): Likewise.
23952 (non_rewritable_lvalue_p): Likewise.
23953 (execute_update_addresses_taken): Likewise.
23955 2022-01-29 Jakub Jelinek <jakub@redhat.com>
23956 Andrew Pinski <apinski@marvell.com>
23958 PR tree-optimization/104279
23959 PR tree-optimization/104280
23960 PR tree-optimization/104281
23961 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
23962 boolean_type_node and convert to type. Formatting fixes.
23964 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
23966 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
23968 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
23970 PR tree-optimization/103514
23971 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
23972 (a & b) == (a ^ b) -> !(a | b): New optimization.
23974 2022-01-28 Marek Polacek <polacek@redhat.com>
23976 * doc/invoke.texi: Update -Wbidi-chars documentation.
23978 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
23980 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
23982 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
23984 PR tree-optimization/95424
23985 * match.pd: Simplify 1 / X where X is an integer.
23987 2022-01-28 Jakub Jelinek <jakub@redhat.com>
23989 PR tree-optimization/104263
23990 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
23991 cfun->can_throw_non_call_exceptions && cfun->eh test whether
23992 last non-debug stmt in the bb is store_valid_for_store_merging_p
23993 rather than last stmt.
23995 2022-01-28 Martin Liska <mliska@suse.cz>
23997 * diagnostic.cc (diagnostic_action_after_output): Remove extra
24000 2022-01-28 Martin Liska <mliska@suse.cz>
24002 * config/rs6000/host-darwin.cc (segv_crash_handler):
24003 Do not use leading capital letter.
24004 (segv_handler): Likewise.
24005 * ipa-sra.cc (verify_splitting_accesses): Likewise.
24006 * varasm.cc (get_section): Likewise.
24008 2022-01-28 Richard Biener <rguenther@suse.de>
24010 PR tree-optimization/104267
24011 * tree-vect-stmts.cc (vectorizable_call): Properly use the
24012 per-argument determined vector type for externals and
24015 2022-01-28 Richard Biener <rguenther@suse.de>
24017 PR tree-optimization/104263
24018 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
24019 Purge edges also when !cfun->has_nonlocal_label
24020 and !cfun->calls_setjmp.
24022 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
24024 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
24027 2022-01-28 Jakub Jelinek <jakub@redhat.com>
24030 * cfgrtl.cc (loc_equal): New function.
24031 (unique_locus_on_edge_between_p): Use it.
24033 2022-01-28 Richard Biener <rguenther@suse.de>
24035 * cfganal.h (mark_dfs_back_edges): Provide API with struct
24037 * cfganal.cc (mark_dfs_back_edges): Take a struct function
24038 to work on, add a wrapper passing cfun.
24039 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
24040 uses with fun which is already passed.
24041 (draw_cfg_edges): Likewise.
24042 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
24045 2022-01-27 Patrick Palka <ppalka@redhat.com>
24048 * tree.cc (build_call_vec): Add const to second parameter.
24049 * tree.h (build_call_vec): Likewise.
24051 2022-01-27 Martin Liska <mliska@suse.cz>
24054 * diagnostic.cc (diagnostic_initialize):
24055 Initialize report_bug flag.
24056 (diagnostic_action_after_output):
24057 Explain that -freport-bug option can be used for pre-processed
24058 file creation. Make the message shorter.
24059 (error_recursion): Rename Internal to internal.
24060 * diagnostic.h (struct diagnostic_context): New field.
24061 * opts.cc (common_handle_option): Init the field here.
24063 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
24066 * config/rs6000/rs6000.cc
24067 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
24068 assertion with early return.
24070 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
24072 PR middle-end/103642
24073 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
24074 for non-pointer or non-reference-to-pointer cases.
24076 2022-01-27 Jakub Jelinek <jakub@redhat.com>
24078 PR tree-optimization/104196
24079 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
24080 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
24081 return NULL and emit needed stmts before and after stmt.
24082 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
24083 pick as operand_entry that will hold the merged test the one feeding
24084 earliest condition, ensure that by swapping range->idx with some
24085 other range's idx if needed. If seq is non-NULL, don't actually swap
24086 it but instead rewrite stmts with undefined overflow in between
24088 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
24089 corresponding condition even if they have non-NULL ops[]->op.
24092 2022-01-26 Jakub Jelinek <jakub@redhat.com>
24095 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
24097 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
24098 before for loop instead of for init clause.
24099 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
24101 2022-01-26 Jakub Jelinek <jakub@redhat.com>
24104 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
24105 _X86INTRIN_H_INCLUDED and adjust #error wording.
24106 * config/rs6000/bmi2intrin.h: Likewise.
24108 2022-01-26 Jakub Jelinek <jakub@redhat.com>
24111 * dwarf2out.cc (long_double_as_float128): New function.
24112 (modified_type_die): For powerpc64le IEEE 754 quad long double
24113 and complex long double emit those as DW_TAG_typedef to
24114 _Float128 or complex _Float128 base type.
24116 2022-01-26 Marek Polacek <polacek@redhat.com>
24119 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
24120 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
24122 2022-01-26 Martin Liska <mliska@suse.cz>
24124 * ipa-modref-tree.cc (modref_access_node::update):
24125 Remove "--param param=foo" with "--param foo".
24126 (modref_access_node::insert): Likewise.
24127 (modref_access_node::insert_kill): Likewise.
24128 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
24129 (struct modref_base_node): Likewise.
24130 (struct modref_tree): Likewise.
24132 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
24135 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
24138 2022-01-25 Martin Sebor <msebor@redhat.com>
24140 PR tree-optimization/104203
24141 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
24143 * pointer-query.cc (access_ref::merge_ref): Change return type.
24144 Convert failure to a conservative success.
24145 (access_ref::get_ref): Adjust to the change above. Short-circuit
24146 PHI evaluation after first failure turned into conservative success.
24147 * pointer-query.h (access_ref::merge_ref): Change return type.
24148 * timevar.def (TV_WARN_ACCESS): New timer variable.
24150 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
24152 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
24154 2022-01-25 Richard Biener <rguenther@suse.de>
24156 PR tree-optimization/104214
24157 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
24158 stronger guarantees for relational pointer compares when
24159 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
24160 BASE0 + STEP0 - STEP1 cmp BASE1.
24162 2022-01-25 Jakub Jelinek <jakub@redhat.com>
24165 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
24167 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
24168 ieee128_mangling_gcc_8_1): Remove.
24169 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
24170 (rs6000_mangle_type): Return "u9__ieee128" instead of
24171 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
24172 (rs6000_globalize_decl_name): Remove.
24173 * config/rs6000/rs6000-call.cc (init_cumulative_args,
24174 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
24176 2022-01-24 Martin Sebor <msebor@redhat.com>
24178 * pointer-query.cc (pointer_query::dump): Remove duplicate
24181 2022-01-24 Marek Polacek <polacek@redhat.com>
24183 PR preprocessor/104030
24184 * doc/invoke.texi: Update documentation for -Wbidi-chars.
24186 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
24189 * builtins.cc (expand_builtin_fegetround): New function.
24190 (expand_builtin_feclear_feraise_except): New function.
24191 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
24192 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
24193 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
24194 (feclearexceptsi): New Pattern.
24195 (feraiseexceptsi): New Pattern.
24196 * doc/extend.texi: Add a new introductory paragraph about the
24198 * doc/md.texi: (fegetround@var{m}): Document new optab.
24199 (feclearexcept@var{m}): Document new optab.
24200 (feraiseexcept@var{m}): Document new optab.
24201 * optabs.def (fegetround_optab): New optab.
24202 (feclearexcept_optab): New optab.
24203 (feraiseexcept_optab): New optab.
24205 2022-01-24 Richard Biener <rguenther@suse.de>
24206 Jiufu Guo <guojiufu@linux.ibm.com>
24208 PR tree-optimization/100740
24209 PR tree-optimization/101508
24210 PR tree-optimization/101972
24211 PR tree-optimization/102131
24212 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
24213 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
24214 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
24216 2022-01-24 Jakub Jelinek <jakub@redhat.com>
24218 PR sanitizer/104158
24219 * opt-functions.awk (var_set): Handle EnumBitSet property.
24220 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
24222 * opts.h (enum cl_enum_var_value): New type.
24223 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
24224 Handle CLEV_BITSET.
24225 (cmdline_handle_error): Handle CLEV_BITSET.
24226 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
24227 * doc/options.texi (EnumBitSet): Document.
24228 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
24230 (trace-pc, trace-cmp): Drop Set properties.
24232 2022-01-24 Jakub Jelinek <jakub@redhat.com>
24234 PR sanitizer/104158
24235 * common.opt (flag_sanitize_coverage): Remove Variable entry.
24236 (fsanitize-coverage=): Remove RejectNegative property, add
24237 Var(flag_sanitize_coverage) and EnumSet properties.
24238 (trace-pc): Add Set(1) property.
24239 (trace-cmp): Add Set(2) property.
24240 * opts.cc (common_handle_option): Don't handle
24241 OPT_fsanitize_coverage_.
24243 2022-01-24 Jakub Jelinek <jakub@redhat.com>
24245 PR sanitizer/104158
24246 * opt-functions.awk (var_set): Handle EnumSet property.
24247 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
24249 * opt-read.awk: Handle Set property.
24250 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
24251 (struct cl_decoded_option): Mention enum in value description.
24253 (set_option): Add mask argument defaulted to 0.
24254 * opts.cc (test_enum_sets): New function.
24255 (opts_cc_tests): Call it.
24256 * opts-common.cc (enum_arg_to_value): Change return argument
24257 from bool to int, on success return index into the cl_enum_arg
24258 array, on failure -1. Add len argument, if non-0, use strncmp
24260 (opt_enum_arg_to_value): Adjust caller.
24261 (decode_cmdline_option): Handle EnumSet represented as
24262 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
24263 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
24264 (handle_option): Pass decoded->mask to set_options last argument.
24265 (generate_option): Clear decoded->mask.
24266 (generate_option_input_file): Likewise.
24267 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
24268 (set_option): Add mask argument, use it for CLVC_ENUM.
24269 (control_warning_option): Adjust enum_arg_to_value caller.
24270 * doc/options.texi: Document Set and EnumSet properties.
24272 2022-01-24 Jakub Jelinek <jakub@redhat.com>
24274 PR bootstrap/104170
24275 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
24276 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
24277 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
24278 using OPTION_*_P macros.
24279 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
24280 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
24281 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
24282 using OPTION_*_P macros.
24283 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
24284 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
24285 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
24286 using OPTION_*_P macros.
24287 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
24288 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
24289 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
24290 using OPTION_*_P macros.
24291 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
24292 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
24293 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
24294 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
24295 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
24296 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
24297 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
24298 otherwise assume if (true).
24300 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
24302 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
24303 Skip zicsr and zifencei if I-ext is 2.0.
24305 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
24307 * config.gcc: Modify default isa_spec version.
24309 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
24311 PR tree-optimization/102087
24312 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
24313 Correct PLUS result type.
24315 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
24318 * config/i386/predicates.md (bcst_mem_operand): Also check mode
24319 of memory broadcast.
24321 2022-01-23 Andrew Pinski <apinski@marvell.com>
24324 * config/aarch64/aarch64-builtins.cc
24325 (aarch64_general_gimple_fold_builtin): Handle
24326 __builtin_aarch64_sqrt* and simplify into SQRT internal
24329 2022-01-22 Jakub Jelinek <jakub@redhat.com>
24332 * opts-global.cc (handle_common_deferred_options): Quote
24333 --enable-plugin in diagnostics to avoid -Werror=format-diag.
24335 2022-01-21 Michael Meissner <meissner@the-meissners.org>
24338 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
24339 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
24340 * config/rs6000/rs6000.md (prefixed attribute): Delete section
24341 that sets the prefixed attribute for xxspltiw, xxspltidp, and
24342 xxsplti32dx instructions.
24343 (movsf_hardfloat): Explicitly set the prefixed attribute
24344 when xxspltiw and xxspltidp instructions are generated.
24345 (mov<mode>_hardfloat32): Likewise.
24346 (mov<mode>_hardfloat64): Likewise.
24347 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
24348 prefixed attribute for xxspltiw and xxspltidp instructions.
24349 (vsx_mov<mode>_32bit): Likewise.
24351 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
24353 PR bootstrap/104170
24354 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
24355 Return true only on glibc.
24356 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
24357 Revert commit c163647ffbc.
24358 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
24360 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
24362 * common/config/s390/s390-common.cc (s390_supports_split_stack):
24363 Only support split-stack on glibc targets.
24364 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
24365 * config/i386/gnu.h (defined): Ditto.
24367 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
24369 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
24370 vector float and vector double.
24372 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
24374 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
24375 Fix mention of ifunc in string.
24377 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
24379 PR middle-end/104140
24380 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
24381 operands of the widening multiplication are either both signed or
24382 both unsigned, and abort the conversion if mismatched.
24383 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
24384 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
24386 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
24387 integer types with the same precision and signedness.
24388 (WIDEN_MULT_EXPR): Document that operands must have integer types
24389 with the same precision, but possibly differing signedness.
24390 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
24391 riscv_current_subset_list returning a NULL pointer (empty list).
24393 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
24396 * ira.h (struct target_ira): Add member
24397 x_ira_exclude_class_mode_regs.
24398 (ira_exclude_class_mode_regs): New macro.
24399 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
24401 * lra-int.h: ... to here.
24402 (lra_create_new_reg_with_unique_value): Add arg
24403 exclude_start_hard_regs.
24404 (class lra_reg): Add member exclude_start_hard_regs.
24405 * lra-assigns.cc (find_hard_regno_for_1): Setup
24406 impossible_start_hard_regs from exclude_start_hard_regs.
24407 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
24408 it lra_create_new_reg[_with_unique_value].
24409 (match_reload): Ditto.
24410 (check_and_process_move): Pass NULL
24411 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
24412 (goal_alt_exclude_start_hard_regs): New static variable.
24413 (process_addr_reg, simplify_operand_subreg): Pass NULL
24414 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
24415 and get_reload_reg.
24416 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
24417 Use this_alternative_exclude_start_hard_regs additionally to find
24418 winning operand alternative.
24419 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
24420 exclude_start_hard_regs to lra_create_new_reg.
24421 (process_address_1, emit_inc): Ditto.
24422 (curr_insn_transform): Pass exclude_start_hard_regs value to
24423 lra_create_new_reg, get_reload_reg, match_reload.
24424 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
24425 to lra_create_new_reg.
24426 (process_invariant_for_inheritance): Ditto.
24427 * lra-remat.cc (update_scratch_ops): Ditto.
24428 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
24429 exclude_start_hard_regs. Setup the corresponding member of
24431 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
24432 to lra_create_new_reg_with_unique_value.
24433 (initialize_lra_reg_info_element): Initialize member
24434 exclude_start_hard_regs.
24435 (get_scratch_reg): Pass NULL to lra_create_new_reg.
24436 * ira.cc (setup_prohibited_class_mode_regs): Rename to
24437 setup_prohibited_and_exclude_class_mode_regs and calculate
24438 ira_exclude_class_mode_regs.
24440 2022-01-21 Martin Liska <mliska@suse.cz>
24442 * configure.ac: Detect ld_is_mold and use it for
24443 comdat_group=yes and gcc_cv_ld_hidden=yes.
24444 * configure: Regenerate.
24446 2022-01-21 Richard Biener <rguenther@suse.de>
24448 PR tree-optimization/100089
24449 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
24450 of if-converted loops with unvectorized COND_EXPRs for
24451 all but the unlimited cost models.
24453 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
24455 * config/arm/arm-opts.h (enum stack_protector_guard): New.
24456 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
24458 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
24459 (arm_option_override_internal): Handle and put in error checks.
24460 for stack protector guard options.
24461 (arm_option_reconfigure_globals): Likewise.
24462 (arm_stack_protect_tls_canary_mem): New.
24463 (arm_stack_protect_guard): New.
24464 * config/arm/arm.md (stack_protect_set): New.
24465 (stack_protect_set_tls): Likewise.
24466 (stack_protect_test): Likewise.
24467 (stack_protect_test_tls): Likewise.
24468 (reload_tp_hard): Likewise.
24469 * config/arm/arm.opt (-mstack-protector-guard): New
24470 (-mstack-protector-guard-offset): New.
24471 * doc/invoke.texi: Document new options.
24473 2022-01-21 Richard Biener <rguenther@suse.de>
24475 PR tree-optimization/104156
24476 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
24477 Collect and reset debug stmts with out-of-loop uses when
24479 (find_loop_guard): Adjust.
24480 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
24481 (used_outside_loop_p): Push debug uses to a vector of
24482 debug stmts to reset.
24483 (hoist_guard): Adjust -fopt-info category.
24485 2022-01-21 Richard Biener <rguenther@suse.de>
24487 PR tree-optimization/104152
24488 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
24489 can_duplicate_and_interleave_p check.
24491 2022-01-21 Jakub Jelinek <jakub@redhat.com>
24493 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
24494 Avoid passing var to warning_at when the format string doesn't
24497 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
24499 PR tree-optimization/103721
24500 * gimple-range-path.cc
24501 (path_range_query::relations_may_be_invalidated): New.
24502 (path_range_query::compute_ranges_in_block): Reset relations if
24503 they may be invalidated.
24504 (path_range_query::maybe_register_phi_relation): Exit if relations
24505 may be invalidated on incoming edge.
24506 (path_range_query::compute_phi_relations): Pass incoming PHI edge
24507 to maybe_register_phi_relation.
24508 * gimple-range-path.h (relations_may_be_invalidated): New.
24509 (maybe_register_phi_relation): Pass edge instead of tree.
24510 * tree-ssa-threadbackward.cc (back_threader::back_threader):
24512 * value-relation.cc (path_oracle::path_oracle): Call
24513 mark_dfs_back_edges.
24514 (path_oracle::register_relation): Add SSA names to m_registered
24516 (path_oracle::reset_path): Clear m_registered bitmap.
24517 * value-relation.h (path_oracle::set_root_oracle): New.
24519 2022-01-21 Jakub Jelinek <jakub@redhat.com>
24521 PR rtl-optimization/102478
24522 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
24523 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
24526 2022-01-20 Richard Biener <rguenther@suse.de>
24528 PR middle-end/100786
24529 * gimple-fold.cc (get_symbol_constant_value): Only return
24530 values of compatible type to the symbol.
24532 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
24534 * value-relation.cc (relation_oracle::valid_equivs): Query and add
24535 if valid members of a set.
24536 (equiv_oracle::register_equiv): Call valid_equivs rather than
24537 bitmap direct operations.
24538 (path_oracle::register_equiv): Ditto.
24539 * value-relation.h (relation_oracle::valid_equivs): New prototype.
24541 2022-01-20 Richard Biener <rguenther@suse.de>
24544 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
24545 LHS before folding __builtin_ia32_shufpd and friends.
24547 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
24549 * config/arm/crypto.md (aes_op_protect): Allow moves from core
24550 registers and from memory.
24551 (aes_op_protect_misalign_load): New pattern.
24552 (aes_op_protect_neon_vld1v16qi): New pattern.
24554 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
24556 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
24558 (aarch32_crypto_aese_fused_protected): Likewise.
24559 (aarch32_crypto_aesd_fused_protected): Likewise.
24561 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
24563 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
24564 to define_expand. Add mitigation for the Cortex-A AES erratum
24566 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
24567 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
24568 (aes_op_protect): New pattern.
24569 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
24571 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
24573 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
24574 (ALL_QUIRKS): Add it.
24575 (cortex-a57, cortex-a72): Enable it.
24576 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
24577 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
24579 (mfix-cortex-a72-aes-1655431): New option alias.
24580 * config/arm/arm.cc (arm_option_override): Handle default settings
24581 for AES erratum switch.
24582 * doc/invoke.texi (Arm Options): Document new options.
24584 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
24586 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
24587 <crypto_mode> rather than hard-coding the mode.
24588 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
24589 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
24590 (*aarch32_crypto_aese_fused): Likewise.
24591 (*aarch32_crypto_aesd_fused): Likewise.
24592 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
24593 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
24594 (crypto_sha1h_lb): Likewise.
24595 (crypto_vmullp64): Likewise.
24596 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
24597 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
24599 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
24601 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
24602 iterator to pattern name to disambiguate.
24603 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
24604 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
24605 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
24606 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
24607 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
24609 2022-01-20 Martin Liska <mliska@suse.cz>
24611 PR bootstrap/104135
24612 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
24613 * rtl.cc: Partially disable -Wformat-diag for RTL checking
24616 2022-01-20 Jakub Jelinek <jakub@redhat.com>
24619 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
24620 block_num > 0, index entry even if !have_multiple_function_sections.
24622 2022-01-20 liuhongt <hongtao.liu@intel.com>
24625 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
24626 integral mode mask pack by multi steps which takes
24627 vec_pack_sbool_trunc_optab as start when elements number is
24628 less than BITS_PER_UNITS.
24630 2022-01-20 Richard Biener <rguenther@suse.de>
24632 PR tree-optimization/104114
24633 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
24634 single element vector decomposition.
24636 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
24638 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
24639 (noce_convert_multiple_sets): Call function a second time if we can
24640 improve the first try.
24642 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
24644 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
24645 reversed comparison.
24646 (try_emit_cmove_seq): New function to facilitate creating a cmov
24648 (noce_convert_multiple_sets): Create two sequences and use the less
24651 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
24653 * rtl.h (struct rtx_comparison): New struct that holds an rtx
24655 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
24657 (rs6000_emit_swsqrt): Likewise.
24658 * expmed.cc (expand_sdiv_pow2): Likewise.
24659 (emit_store_flag): Likewise.
24660 * expr.cc (expand_cond_expr_using_cmove): Likewise.
24661 (expand_expr_real_2): Likewise.
24662 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
24664 * optabs.cc (emit_conditional_move_1): New function.
24665 (expand_doubleword_shift_condmove): Use struct.
24666 (emit_conditional_move): Use struct and allow to call directly
24667 without going through preparation steps.
24668 * optabs.h (emit_conditional_move): Use struct.
24670 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
24672 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
24673 (noce_process_if_block): Use potential costs.
24675 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
24677 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
24678 (bb_ok_for_noce_convert_multiple_sets): Likewise.
24680 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
24682 * ifcvt.cc (need_cmov_or_rewire): New function.
24683 (noce_convert_multiple_sets): Call it.
24685 2022-01-19 David Malcolm <dmalcolm@redhat.com>
24687 * attribs.cc (attribute_c_tests): Rename to...
24688 (attribs_cc_tests): ...this.
24689 * bitmap.cc (bitmap_c_tests): Rename to...
24690 (bitmap_cc_tests): ...this.
24691 * cgraph.cc (cgraph_c_finalize): Rename to...
24692 (cgraph_cc_finalize): ...this.
24693 (cgraph_c_tests): Rename to...
24694 (cgraph_cc_tests): ...this.
24695 * cgraph.h (cgraph_c_finalize): Rename to...
24696 (cgraph_cc_finalize): ...this.
24697 (cgraphunit_c_finalize): Rename to...
24698 (cgraphunit_cc_finalize): ...this.
24699 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
24700 (cgraphunit_cc_finalize): ...this.
24701 * convert.cc (convert_c_tests): Rename to...
24702 (convert_cc_tests): ...this.
24703 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
24704 (dbgcnt_cc_tests): ...this.
24705 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
24706 (diagnostic_show_locus_cc_tests): ...this.
24707 * diagnostic.cc (diagnostic_c_tests): Rename to...
24708 (diagnostic_cc_tests): ...this.
24709 * dumpfile.cc (dumpfile_c_tests): Rename to...
24710 (dumpfile_cc_tests): ...this.
24711 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
24712 (dwarf2out_cc_finalize): ...this.
24713 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
24714 (dwarf2out_cc_finalize): ...this.
24715 * edit-context.cc (edit_context_c_tests): Rename to...
24716 (edit_context_cc_tests): ...this.
24717 * et-forest.cc (et_forest_c_tests): Rename to...
24718 (et_forest_cc_tests): ...this.
24719 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
24720 (fibonacci_heap_cc_tests): ...this.
24721 * fold-const.cc (fold_const_c_tests): Rename to...
24722 (fold_const_cc_tests): ...this.
24723 * function-tests.cc (function_tests_c_tests): Rename to...
24724 (function_tests_cc_tests): ...this.
24725 * gcse.cc (gcse_c_finalize): Rename to...
24726 (gcse_cc_finalize): ...this.
24727 * gcse.h (gcse_c_finalize): Rename to...
24728 (gcse_cc_finalize): ...this.
24729 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
24730 (ggc_tests_cc_tests): ...this.
24731 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
24732 (store_merging_cc_tests): ...this.
24733 * gimple.cc (gimple_c_tests): Rename to...
24734 (gimple_cc_tests): ...this.
24735 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
24736 (hash_map_tests_cc_tests): ...this.
24737 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
24738 (hash_set_tests_cc_tests): ...this.
24739 * input.cc (input_c_tests): Rename to...
24740 (input_cc_tests): ...this.
24741 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
24742 (ipa_cp_cc_finalize): ...this.
24743 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
24744 (ipa_fnsummary_cc_finalize): ...this.
24745 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
24746 (ipa_fnsummary_cc_finalize): ...this.
24747 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
24748 (ipa_modref_tree_cc_tests): ...this.
24749 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
24750 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
24751 (ipa_modref_cc_finalize): ...this.
24752 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
24753 (ipa_modref_cc_finalize): ...this.
24754 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
24755 (ipa_cp_cc_finalize): ...this.
24756 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
24757 (ipa_reference_cc_finalize): ...this.
24758 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
24759 (ipa_reference_cc_finalize): ...this.
24760 * ira-costs.cc (ira_costs_c_finalize): Rename to...
24761 (ira_costs_cc_finalize): ...this.
24762 * ira.h (ira_costs_c_finalize): Rename to...
24763 (ira_costs_cc_finalize): ...this.
24764 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
24765 (opt_suggestions_cc_tests): ...this.
24766 * opts.cc (opts_c_tests): Rename to...
24767 (opts_cc_tests): ...this.
24768 * predict.cc (predict_c_tests): Rename to...
24769 (predict_cc_tests): ...this.
24770 * pretty-print.cc (pretty_print_c_tests): Rename to...
24771 (pretty_print_cc_tests): ...this.
24772 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
24773 (read_rtl_function_cc_tests): ...this.
24774 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
24775 (rtl_tests_cc_tests): ...this.
24776 * sbitmap.cc (sbitmap_c_tests): Rename to...
24777 (sbitmap_cc_tests): ...this.
24778 * selftest-run-tests.cc (selftest::run_tests): Update calls for
24779 _c_ to _cc_ function renamings; fix names of attribs and
24780 opt-suggestions tests.
24781 * selftest.cc (selftest_c_tests): Rename to...
24782 (selftest_cc_tests): ...this.
24783 * selftest.h (attribute_c_tests): Rename to...
24784 (attribs_cc_tests): ...this.
24785 (bitmap_c_tests): Rename to...
24786 (bitmap_cc_tests): ...this.
24787 (cgraph_c_tests): Rename to...
24788 (cgraph_cc_tests): ...this.
24789 (convert_c_tests): Rename to...
24790 (convert_cc_tests): ...this.
24791 (diagnostic_c_tests): Rename to...
24792 (diagnostic_cc_tests): ...this.
24793 (diagnostic_show_locus_c_tests): Rename to...
24794 (diagnostic_show_locus_cc_tests): ...this.
24795 (dumpfile_c_tests): Rename to...
24796 (dumpfile_cc_tests): ...this.
24797 (edit_context_c_tests): Rename to...
24798 (edit_context_cc_tests): ...this.
24799 (et_forest_c_tests): Rename to...
24800 (et_forest_cc_tests): ...this.
24801 (fibonacci_heap_c_tests): Rename to...
24802 (fibonacci_heap_cc_tests): ...this.
24803 (fold_const_c_tests): Rename to...
24804 (fold_const_cc_tests): ...this.
24805 (function_tests_c_tests): Rename to...
24806 (function_tests_cc_tests): ...this.
24807 (ggc_tests_c_tests): Rename to...
24808 (ggc_tests_cc_tests): ...this.
24809 (gimple_c_tests): Rename to...
24810 (gimple_cc_tests): ...this.
24811 (hash_map_tests_c_tests): Rename to...
24812 (hash_map_tests_cc_tests): ...this.
24813 (hash_set_tests_c_tests): Rename to...
24814 (hash_set_tests_cc_tests): ...this.
24815 (input_c_tests): Rename to...
24816 (input_cc_tests): ...this.
24817 (opts_c_tests): Rename to...
24818 (opts_cc_tests): ...this.
24819 (predict_c_tests): Rename to...
24820 (predict_cc_tests): ...this.
24821 (pretty_print_c_tests): Rename to...
24822 (pretty_print_cc_tests): ...this.
24823 (read_rtl_function_c_tests): Rename to...
24824 (read_rtl_function_cc_tests): ...this.
24825 (rtl_tests_c_tests): Rename to...
24826 (rtl_tests_cc_tests): ...this.
24827 (sbitmap_c_tests): Rename to...
24828 (sbitmap_cc_tests): ...this.
24829 (selftest_c_tests): Rename to...
24830 (selftest_cc_tests): ...this.
24831 (simplify_rtx_c_tests): Rename to...
24832 (simplify_rtx_cc_tests): ...this.
24833 (spellcheck_c_tests): Rename to...
24834 (spellcheck_cc_tests): ...this.
24835 (spellcheck_tree_c_tests): Rename to...
24836 (spellcheck_tree_cc_tests): ...this.
24837 (sreal_c_tests): Rename to...
24838 (sreal_cc_tests): ...this.
24839 (store_merging_c_tests): Rename to...
24840 (store_merging_cc_tests): ...this.
24841 (tree_c_tests): Rename to...
24842 (tree_cc_tests): ...this.
24843 (tree_cfg_c_tests): Rename to...
24844 (tree_cfg_cc_tests): ...this.
24845 (typed_splay_tree_c_tests): Rename to...
24846 (typed_splay_tree_cc_tests): ...this.
24847 (vec_c_tests): Rename to...
24848 (vec_cc_tests): ...this.
24849 (vec_perm_indices_c_tests): Rename to...
24850 (vec_perm_indices_cc_tests): ..this.
24851 (opt_proposer_c_tests): Rename to...
24852 (opt_suggestions_cc_tests): ...this.
24853 (dbgcnt_c_tests): Rename to...
24854 (dbgcnt_cc_tests): ...this.
24855 (ipa_modref_tree_c_tests): Rename to...
24856 (ipa_modref_tree_cc_tests): ...this.
24857 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
24858 (simplify_rtx_cc_tests): ...this.
24859 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
24860 (spellcheck_tree_cc_tests): ...this.
24861 * spellcheck.cc (spellcheck_c_tests): Rename to...
24862 (spellcheck_cc_tests): ...this.
24863 * sreal.cc (sreal_c_tests): Rename to...
24864 (sreal_cc_tests): ...this.
24865 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
24866 function renamings.
24867 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
24868 (tree_cfg_cc_tests): ...this.
24869 * tree.cc (tree_c_tests): Rename to...
24870 (tree_cc_tests): ...this.
24871 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
24872 (typed_splay_tree_cc_tests): ...this.
24873 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
24874 (vec_perm_indices_cc_tests): ...this.
24875 * vec.cc (vec_c_tests): Rename to...
24876 (vec_cc_tests): ...this.
24878 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
24880 PR tree-optimization/103997
24881 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
24884 2022-01-19 Jakub Jelinek <jakub@redhat.com>
24886 PR middle-end/102860
24887 * match.pd (x %[fl] y -> x % y): New simplification for
24888 unsigned integral types.
24889 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
24890 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
24892 2022-01-19 Richard Biener <rguenther@suse.de>
24894 PR tree-optimization/104112
24895 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
24896 for required intermediate vector types.
24898 2022-01-19 Jakub Jelinek <jakub@redhat.com>
24900 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
24902 2022-01-19 Martin Liska <mliska@suse.cz>
24904 * configure.ac: Remove -Wno-error=format-diag.
24905 * configure: Regenerate.
24907 2022-01-19 Martin Liska <mliska@suse.cz>
24909 * config/riscv/riscv.cc (riscv_handle_type_attribute):
24910 Update one -Wformat-diag string in warning message.
24912 2022-01-19 Jakub Jelinek <jakub@redhat.com>
24914 PR middle-end/104103
24915 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
24918 2022-01-19 Jakub Jelinek <jakub@redhat.com>
24921 * fold-const.cc (address_compare): Consider different STRING_CSTs
24922 with the same lengths that memcmp the same as equal, not different.
24924 2022-01-19 Jakub Jelinek <jakub@redhat.com>
24926 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
24929 2022-01-19 Martin Liska <mliska@suse.cz>
24930 Thomas Schwinge <thomas@codesourcery.com>
24932 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
24935 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
24938 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
24941 2022-01-19 Jakub Jelinek <jakub@redhat.com>
24944 * config/i386/sse.md
24945 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
24946 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
24947 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
24948 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
24949 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
24950 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
24951 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
24952 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
24953 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
24955 2022-01-19 Martin Sebor <msebor@redhat.com>
24957 PR middle-end/104069
24958 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
24959 an unknown result as documented.
24961 2022-01-18 Andrew Pinski <apinski@marvell.com>
24963 * ipa-split.cc (visit_bb): Fix comment before the
24964 warning/error attribute checking code.
24966 2022-01-18 David Faust <david.faust@oracle.com>
24968 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
24969 for base strtab offset yet as it may change.
24970 (output_asm_btfext_core_reloc): Do so here instead.
24971 (output_btfext_core_sections): Likewise.
24973 2022-01-18 David Faust <david.faust@oracle.com>
24975 * config/bpf/coreout.cc (output_btfext_header): Account for
24976 4-byte record size in core_relo_len.
24977 (output_btfext_core_sections): Only write record size once.
24978 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
24981 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
24983 * common/config/riscv/riscv-common.cc
24984 (riscv_subset_list::parse_multiletter_ext): Move pointer
24985 arithmetic ahead of `free'.
24987 2022-01-18 Jason Merrill <jason@redhat.com>
24990 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
24993 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
24995 PR middle-end/103163
24996 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
24997 (init_emit_once): ...not here.
24999 2022-01-18 Martin Liska <mliska@suse.cz>
25001 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
25002 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
25003 * config/arc/arc.md: Likewise.
25004 * config/avr/avr.cc (avr_section_type_flags): Likewise.
25005 * config/bfin/bfin.cc (bfin_option_override): Likewise.
25006 (bfin_handle_longcall_attribute): Likewise.
25007 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
25008 * config/frv/frv.cc (frv_expand_builtin): Likewise.
25009 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
25010 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
25011 (iq2000_print_operand_address): Likewise.
25012 (iq2000_print_operand): Likewise.
25013 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
25014 (m32c_pragma_address): Likewise.
25015 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
25016 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
25017 (mips_set_compression_mode): Likewise.
25018 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
25019 (mmix_print_operand): Likewise.
25020 (mmix_output_shiftvalue_op_from_str): Likewise.
25021 (mmix_output_shifted_value): Likewise.
25022 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
25023 * config/msp430/msp430.cc (msp430_option_override): Likewise.
25024 (msp430_attr): Likewise.
25025 (msp430_expand_delay_cycles): Likewise.
25026 (msp430_expand_builtin): Likewise.
25027 * config/rs6000/aix73.h: Likewise.
25028 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
25029 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
25030 (valid_psw_flag): Likewise.
25031 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
25032 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
25033 (xstormy16_expand_builtin_va_start): Likewise.
25034 (xstormy16_handle_below100_attribute): Likewise.
25036 2022-01-18 Martin Liska <mliska@suse.cz>
25038 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
25040 (vms_pragma_standard): Likewise.
25041 (vms_pragma_extern_prefix): Likewise.
25043 2022-01-18 Martin Liska <mliska@suse.cz>
25045 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
25046 (print_operand_address): Likewise.
25047 (xtensa_multibss_section_type_flags): Likewise.
25049 2022-01-18 Martin Liska <mliska@suse.cz>
25051 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
25052 wording of an error message.
25054 2022-01-18 Martin Liska <mliska@suse.cz>
25056 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
25058 (ghs_pragma_section): Likewise.
25059 (ghs_pragma_interrupt): Likewise.
25060 (ghs_pragma_starttda): Likewise.
25061 (ghs_pragma_startsda): Likewise.
25062 (ghs_pragma_startzda): Likewise.
25063 (ghs_pragma_endtda): Likewise.
25064 (ghs_pragma_endsda): Likewise.
25065 (ghs_pragma_endzda): Likewise.
25067 2022-01-18 Martin Liska <mliska@suse.cz>
25069 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
25071 * config/nds32/nds32-intrinsic.md: Likewise.
25072 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
25073 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
25074 (nds32_insert_attributes): Likewise.
25076 2022-01-18 Martin Liska <mliska@suse.cz>
25078 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
25080 * config/nvptx/nvptx.md: Remove trailing dot.
25082 2022-01-18 Martin Liska <mliska@suse.cz>
25084 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
25085 Wrap keywords with quotes and remove trailing dots.
25086 (riscv_subset_list::parsing_subset_version): Likewise.
25087 (riscv_subset_list::parse_std_ext): Likewise.
25088 (riscv_subset_list::parse_multiletter_ext): Likewise.
25089 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
25091 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
25093 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
25094 argument suggested_unroll_factor.
25095 (vect_analyze_loop_costing): Likewise.
25096 (_loop_vec_info::_loop_vec_info): Initialize new member
25097 suggested_unroll_factor.
25098 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
25099 main loop use partial vectors.
25100 (vect_analyze_loop_2): Pass and use new argument
25101 suggested_unroll_factor.
25102 (vect_analyze_loop_1): Change to intialize local
25103 suggested_unroll_factor and use it.
25104 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
25105 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
25106 suggested_unroll_factor.
25107 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
25108 (vector_costs::suggested_unroll_factor): New getter function.
25109 (finish_cost): Set return argument suggested_unroll_factor.
25111 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
25113 PR tree-optimization/104038
25114 * doc/invoke.texi (relation-block-limit): New.
25115 * params.opt (relation-block-limit): New.
25116 * value-relation.cc (dom_oracle::register_relation): Check for NULL
25117 record before invoking transitive registery.
25118 (dom_oracle::set_one_relation): Check limit before creating record.
25119 (dom_oracle::register_transitives): Stop when no record created.
25120 * value-relation.h (relation_chain_head::m_num_relations): New.
25122 2022-01-18 Richard Biener <rguenther@suse.de>
25125 * ipa-inline.cc (inline_small_functions): Do not enqueue call
25126 edges originating in functions compiled with -Og.
25128 2022-01-18 Richard Biener <rguenther@suse.de>
25131 * passes.def (pass_all_optimizations_g): Remove pass_modref
25132 and pass_local_pure_const.
25134 2022-01-18 Martin Liska <mliska@suse.cz>
25136 * config/s390/s390.cc: Fix -Wformat-diag warnings.
25138 2022-01-18 Martin Liska <mliska@suse.cz>
25140 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
25142 (s390_resolve_overloaded_builtin): Remove trailing dot.
25143 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
25144 (s390_expand_builtin): Remove trailing dot.
25145 (s390_emit_prologue): Likewise, use semicolon.
25146 (s390_option_override_internal): Update keyword.
25147 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
25149 2022-01-18 Martin Liska <mliska@suse.cz>
25151 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
25152 keywords and use %qs instead of %<%s%>.
25154 2022-01-18 Richard Biener <rguenther@suse.de>
25156 PR tree-optimization/103987
25157 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
25158 query with a pointer check.
25160 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
25163 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
25164 When using MEM_EXPR, require the base to be a decl.
25166 2022-01-18 Richard Biener <rguenther@suse.de>
25168 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
25170 * function.h (struct function): Likewise.
25172 2022-01-18 Arnaud Charlet <charlet@adacore.com>
25174 * doc/install.texi: Update prerequisites for GNAT
25176 2022-01-18 Andrew Pinski <apinski@marvell.com>
25178 PR tree-optimization/101941
25179 * ipa-split.cc (visit_bb): Disallow function calls where
25180 the function has either error or warning attribute.
25182 2022-01-18 Richard Biener <rguenther@suse.de>
25184 PR tree-optimization/104064
25185 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
25186 DR_INIT fits in a signed HWI, represent the difference from the
25187 first DR in unsigned.
25189 2022-01-17 Martin Liska <mliska@suse.cz>
25191 * Makefile.in: Rename .c names to .cc.
25192 * config.gcc: Likewise.
25193 * configure: Regenerate. Likewise.
25194 * configure.ac: Likewise.
25195 * gengtype.cc (set_gc_used): Likewise.
25196 (source_dot_c_frul): Likewise.
25197 (source_dot_cc_frul): Likewise.
25198 (struct file_rule_st): Likewise.
25199 (close_output_files): Likewise.
25200 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
25202 2022-01-17 Martin Liska <mliska@suse.cz>
25204 * Makefile.in: Rename .c names to .cc.
25205 * alias.h: Likewise.
25206 * asan.cc: Likewise.
25207 * auto-profile.h: Likewise.
25208 * basic-block.h (struct basic_block_d): Likewise.
25209 * btfout.cc: Likewise.
25210 * builtins.cc (expand_builtin_longjmp): Likewise.
25211 (validate_arg): Likewise.
25212 (access_ref::offset_bounded): Likewise.
25213 * caller-save.cc (reg_restore_code): Likewise.
25214 (setup_save_areas): Likewise.
25215 * calls.cc (initialize_argument_information): Likewise.
25216 (expand_call): Likewise.
25217 (emit_library_call_value_1): Likewise.
25218 * cfg-flags.def (RTL): Likewise.
25219 (SIBCALL): Likewise.
25220 (CAN_FALLTHRU): Likewise.
25221 * cfganal.cc (post_order_compute): Likewise.
25222 * cfgcleanup.cc (try_simplify_condjump): Likewise.
25223 (merge_blocks_move_predecessor_nojumps): Likewise.
25224 (merge_blocks_move_successor_nojumps): Likewise.
25225 (merge_blocks_move): Likewise.
25226 (old_insns_match_p): Likewise.
25227 (try_crossjump_bb): Likewise.
25228 * cfgexpand.cc (expand_gimple_stmt): Likewise.
25229 * cfghooks.cc (split_block_before_cond_jump): Likewise.
25230 (profile_record_check_consistency): Likewise.
25231 * cfghooks.h: Likewise.
25232 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
25233 (rtl_can_merge_blocks): Likewise.
25234 (try_redirect_by_replacing_jump): Likewise.
25235 (make_pass_outof_cfg_layout_mode): Likewise.
25236 (cfg_layout_can_merge_blocks_p): Likewise.
25237 * cgraph.cc (release_function_body): Likewise.
25238 (cgraph_node::get_fun): Likewise.
25239 * cgraph.h (struct cgraph_node): Likewise.
25240 (asmname_hasher::equal): Likewise.
25241 (cgraph_inline_failed_type): Likewise.
25242 (thunk_adjust): Likewise.
25243 (dump_callgraph_transformation): Likewise.
25244 (record_references_in_initializer): Likewise.
25245 (ipa_discover_variable_flags): Likewise.
25246 * cgraphclones.cc (GTY): Likewise.
25247 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
25248 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
25249 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
25250 * collect2.cc (maybe_run_lto_and_relink): Likewise.
25251 * combine-stack-adj.cc: Likewise.
25252 * combine.cc (setup_incoming_promotions): Likewise.
25253 (combine_simplify_rtx): Likewise.
25254 (count_rtxs): Likewise.
25255 * common.opt: Likewise.
25256 * common/config/aarch64/aarch64-common.cc: Likewise.
25257 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
25258 * common/config/avr/avr-common.cc: Likewise.
25259 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
25260 * conditions.h: Likewise.
25261 * config.gcc: Likewise.
25262 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
25263 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
25264 (aarch64_get_extension_string_for_isa_flags): Likewise.
25265 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
25266 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
25267 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
25268 (aarch64_option_valid_attribute_p): Likewise.
25269 (aarch64_short_vector_p): Likewise.
25270 (aarch64_float_const_representable_p): Likewise.
25271 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
25272 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
25274 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
25275 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
25276 * config/aarch64/t-aarch64: Likewise.
25277 * config/aarch64/x-aarch64: Likewise.
25278 * config/aarch64/x-darwin: Likewise.
25279 * config/alpha/alpha-protos.h: Likewise.
25280 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
25281 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
25282 (enum reg_class): Likewise.
25283 * config/alpha/alpha.md: Likewise.
25284 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
25285 * config/alpha/x-alpha: Likewise.
25286 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
25287 * config/arc/arc.cc (ARC_OPT): Likewise.
25288 (arc_ccfsm_advance): Likewise.
25289 (arc_arg_partial_bytes): Likewise.
25290 (conditionalize_nonjump): Likewise.
25291 * config/arc/arc.md: Likewise.
25292 * config/arc/builtins.def: Likewise.
25293 * config/arc/t-arc: Likewise.
25294 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
25295 (arm_pragma_target_parse): Likewise.
25296 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
25297 (arm_cpu_cpp_builtins): Likewise.
25298 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
25299 (shift_op): Likewise.
25300 (thumb2_final_prescan_insn): Likewise.
25301 (arm_final_prescan_insn): Likewise.
25302 (arm_asm_output_labelref): Likewise.
25303 (arm_small_register_classes_for_mode_p): Likewise.
25304 * config/arm/arm.h: Likewise.
25305 * config/arm/arm.md: Likewise.
25306 * config/arm/driver-arm.cc: Likewise.
25307 * config/arm/symbian.h: Likewise.
25308 * config/arm/t-arm: Likewise.
25309 * config/arm/thumb1.md: Likewise.
25310 * config/arm/x-arm: Likewise.
25311 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
25312 * config/avr/avr-fixed.md: Likewise.
25313 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
25314 * config/avr/avr-mcus.def: Likewise.
25315 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
25316 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
25317 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
25318 * config/avr/avr.cc (avr_option_override): Likewise.
25319 (avr_build_builtin_va_list): Likewise.
25320 (avr_mode_dependent_address_p): Likewise.
25321 (avr_function_arg_advance): Likewise.
25322 (avr_asm_output_aligned_decl_common): Likewise.
25323 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
25324 (SUPPORTS_INIT_PRIORITY): Likewise.
25325 * config/avr/avr.md: Likewise.
25326 * config/avr/builtins.def: Likewise.
25327 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
25328 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
25330 * config/avr/t-avr: Likewise.
25331 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
25332 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
25333 * config/bpf/bpf.h (enum reg_class): Likewise.
25334 * config/bpf/t-bpf: Likewise.
25335 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
25336 * config/cr16/cr16-protos.h: Likewise.
25337 * config/cris/cris.cc (cris_address_cost): Likewise.
25338 (cris_side_effect_mode_ok): Likewise.
25339 (cris_init_machine_status): Likewise.
25340 (cris_emit_movem_store): Likewise.
25341 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
25342 (enum reg_class): Likewise.
25343 (struct cum_args): Likewise.
25344 * config/cris/cris.opt: Likewise.
25345 * config/cris/sync.md: Likewise.
25346 * config/csky/csky.cc (csky_expand_prologue): Likewise.
25347 * config/darwin-c.cc: Likewise.
25348 * config/darwin-f.cc: Likewise.
25349 * config/darwin-sections.def (zobj_const_section): Likewise.
25350 * config/darwin.cc (output_objc_section_asm_op): Likewise.
25351 (fprintf): Likewise.
25352 * config/darwin.h (GTY): Likewise.
25353 * config/elfos.h: Likewise.
25354 * config/epiphany/epiphany-sched.md: Likewise.
25355 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
25356 * config/epiphany/epiphany.h (GTY): Likewise.
25357 (NO_FUNCTION_CSE): Likewise.
25358 * config/epiphany/mode-switch-use.cc: Likewise.
25359 * config/epiphany/predicates.md: Likewise.
25360 * config/epiphany/t-epiphany: Likewise.
25361 * config/fr30/fr30-protos.h: Likewise.
25362 * config/frv/frv-protos.h: Likewise.
25363 * config/frv/frv.cc (TLS_BIAS): Likewise.
25364 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
25365 * config/ft32/ft32-protos.h: Likewise.
25366 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
25367 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
25368 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
25369 * config/gcn/t-gcn-hsa: Likewise.
25370 * config/gcn/t-omp-device: Likewise.
25371 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
25372 (same_cmp_following_p): Likewise.
25373 * config/h8300/h8300.cc (F): Likewise.
25374 * config/h8300/h8300.h (struct cum_arg): Likewise.
25375 (BRANCH_COST): Likewise.
25376 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
25377 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
25378 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
25379 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
25380 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
25381 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
25382 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
25383 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
25384 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
25385 (ix86_register_pragmas): Likewise.
25386 (ix86_d_has_stdcall_convention): Likewise.
25387 (i386_pe_seh_init_sections): Likewise.
25388 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
25389 (ix86_function_value_regno_p): Likewise.
25390 (ix86_compute_frame_layout): Likewise.
25391 (legitimize_pe_coff_symbol): Likewise.
25392 (output_pic_addr_const): Likewise.
25393 * config/i386/i386.h (defined): Likewise.
25394 (host_detect_local_cpu): Likewise.
25395 (CONSTANT_ADDRESS_P): Likewise.
25396 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
25397 (struct machine_frame_state): Likewise.
25398 * config/i386/i386.md: Likewise.
25399 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
25400 * config/i386/mmx.md: Likewise.
25401 * config/i386/sse.md: Likewise.
25402 * config/i386/t-cygming: Likewise.
25403 * config/i386/t-djgpp: Likewise.
25404 * config/i386/t-gnu-property: Likewise.
25405 * config/i386/t-i386: Likewise.
25406 * config/i386/t-intelmic: Likewise.
25407 * config/i386/t-omp-device: Likewise.
25408 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
25409 (i386_pe_adjust_class_at_definition): Likewise.
25410 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
25411 (i386_pe_mangle_decl_assembler_name): Likewise.
25412 (i386_pe_encode_section_info): Likewise.
25413 * config/i386/x-cygwin: Likewise.
25414 * config/i386/x-darwin: Likewise.
25415 * config/i386/x-i386: Likewise.
25416 * config/i386/x-mingw32: Likewise.
25417 * config/i386/x86-tune-sched-core.cc: Likewise.
25418 * config/i386/x86-tune.def: Likewise.
25419 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
25420 * config/ia64/freebsd.h: Likewise.
25421 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
25422 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
25423 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
25424 (ia64_secondary_reload_class): Likewise.
25425 (bundling): Likewise.
25426 * config/ia64/ia64.h: Likewise.
25427 * config/ia64/ia64.md: Likewise.
25428 * config/ia64/predicates.md: Likewise.
25429 * config/ia64/sysv4.h: Likewise.
25430 * config/ia64/t-ia64: Likewise.
25431 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
25432 * config/iq2000/iq2000.md: Likewise.
25433 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
25435 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
25436 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
25437 * config/m32c/t-m32c: Likewise.
25438 * config/m32r/m32r-protos.h: Likewise.
25439 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
25440 * config/m32r/m32r.h: Likewise.
25441 * config/m32r/m32r.md: Likewise.
25442 * config/m68k/m68k-isas.def: Likewise.
25443 * config/m68k/m68k-microarchs.def: Likewise.
25444 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
25445 (m68k_epilogue_uses): Likewise.
25446 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
25447 (m68k_sched_adjust_cost): Likewise.
25448 (m68k_sched_md_init): Likewise.
25449 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
25450 (enum m68k_function_kind): Likewise.
25451 * config/m68k/m68k.md: Likewise.
25452 * config/m68k/m68kemb.h: Likewise.
25453 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
25454 * config/mcore/mcore-protos.h: Likewise.
25455 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
25456 (mcore_expand_prolog): Likewise.
25457 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
25458 * config/mcore/mcore.md: Likewise.
25459 * config/microblaze/microblaze-protos.h: Likewise.
25460 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
25461 (microblaze_function_prologue): Likewise.
25462 (microblaze_function_epilogue): Likewise.
25463 (microblaze_select_section): Likewise.
25464 (microblaze_asm_output_mi_thunk): Likewise.
25465 (microblaze_eh_return): Likewise.
25466 * config/microblaze/microblaze.h: Likewise.
25467 * config/microblaze/microblaze.md: Likewise.
25468 * config/microblaze/t-microblaze: Likewise.
25469 * config/mips/driver-native.cc: Likewise.
25470 * config/mips/loongson2ef.md: Likewise.
25471 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
25472 * config/mips/mips.cc (mips_rtx_costs): Likewise.
25473 (mips_output_filename): Likewise.
25474 (mips_output_function_prologue): Likewise.
25475 (mips_output_function_epilogue): Likewise.
25476 (mips_output_mi_thunk): Likewise.
25477 * config/mips/mips.h: Likewise.
25478 * config/mips/mips.md: Likewise.
25479 * config/mips/t-mips: Likewise.
25480 * config/mips/x-native: Likewise.
25481 * config/mmix/mmix-protos.h: Likewise.
25482 * config/mmix/mmix.cc (mmix_option_override): Likewise.
25483 (mmix_dbx_register_number): Likewise.
25484 (mmix_expand_prologue): Likewise.
25485 * config/mmix/mmix.h: Likewise.
25486 * config/mmix/mmix.md: Likewise.
25487 * config/mmix/predicates.md: Likewise.
25488 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
25489 (mn10300_legitimate_pic_operand_p): Likewise.
25490 * config/mn10300/mn10300.h (enum reg_class): Likewise.
25491 (NO_FUNCTION_CSE): Likewise.
25492 * config/moxie/moxie-protos.h: Likewise.
25493 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
25494 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
25495 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
25496 (msp430_incoming_return_addr_rtx): Likewise.
25497 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
25498 * config/msp430/t-msp430: Likewise.
25499 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
25500 (nds32_rtx_costs_size_prefer): Likewise.
25501 (nds32_init_rtx_costs): Likewise.
25502 * config/nds32/nds32-doubleword.md: Likewise.
25503 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
25504 (nds32_builtin_decl): Likewise.
25505 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
25506 (enum nds32_isr_nested_type): Likewise.
25507 (enum reg_class): Likewise.
25508 * config/nds32/predicates.md: Likewise.
25509 * config/nds32/t-nds32: Likewise.
25510 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
25511 * config/nvptx/nvptx-protos.h: Likewise.
25512 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
25513 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
25514 * config/nvptx/t-nvptx: Likewise.
25515 * config/nvptx/t-omp-device: Likewise.
25516 * config/pa/elf.h: Likewise.
25517 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
25518 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
25519 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
25520 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
25521 (pa_legitimize_reload_address): Likewise.
25522 (pa_can_use_return_insn): Likewise.
25523 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
25524 (som_output_text_section_asm_op): Likewise.
25525 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
25526 * config/pa/pa.md: Likewise.
25527 * config/pa/som.h: Likewise.
25528 * config/pa/t-pa: Likewise.
25529 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
25530 * config/pdp11/pdp11.h: Likewise.
25531 * config/pdp11/pdp11.md: Likewise.
25532 * config/pdp11/t-pdp11: Likewise.
25533 * config/pru/pru.md: Likewise.
25534 * config/pru/t-pru: Likewise.
25535 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
25536 (riscv_gpr_save_operation_p): Likewise.
25537 (riscv_d_register_target_info): Likewise.
25538 (riscv_init_builtins): Likewise.
25539 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
25540 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
25541 * config/riscv/t-riscv: Likewise.
25542 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
25543 * config/rl78/t-rl78: Likewise.
25544 * config/rs6000/aix.h: Likewise.
25545 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
25546 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
25547 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
25548 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
25549 * config/rs6000/driver-rs6000.cc: Likewise.
25550 * config/rs6000/freebsd.h: Likewise.
25551 * config/rs6000/freebsd64.h: Likewise.
25552 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
25553 * config/rs6000/rbtree.cc: Likewise.
25554 * config/rs6000/rbtree.h: Likewise.
25555 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
25556 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
25557 (rs6000_expand_builtin): Likewise.
25558 (rs6000_init_builtins): Likewise.
25559 * config/rs6000/rs6000-cpus.def: Likewise.
25560 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
25561 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
25562 (quad_address_offset_p): Likewise.
25563 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
25564 (rs6000_emit_epilogue): Likewise.
25565 * config/rs6000/rs6000-overload.def: Likewise.
25566 * config/rs6000/rs6000-p8swap.cc: Likewise.
25567 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
25568 (rs6000_const_f32_to_i32): Likewise.
25569 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
25570 (rs6000_debug_legitimize_address): Likewise.
25571 (rs6000_mode_dependent_address): Likewise.
25572 (rs6000_adjust_priority): Likewise.
25573 (rs6000_c_mode_for_suffix): Likewise.
25574 * config/rs6000/rs6000.h (defined): Likewise.
25575 (LONG_DOUBLE_TYPE_SIZE): Likewise.
25576 * config/rs6000/rs6000.md: Likewise.
25577 * config/rs6000/sysv4.h: Likewise.
25578 * config/rs6000/t-linux: Likewise.
25579 * config/rs6000/t-linux64: Likewise.
25580 * config/rs6000/t-rs6000: Likewise.
25581 * config/rs6000/x-darwin: Likewise.
25582 * config/rs6000/x-darwin64: Likewise.
25583 * config/rs6000/x-rs6000: Likewise.
25584 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
25585 * config/rx/rx.cc (rx_expand_builtin): Likewise.
25586 * config/s390/constraints.md: Likewise.
25587 * config/s390/driver-native.cc: Likewise.
25588 * config/s390/htmxlintrin.h: Likewise.
25589 * config/s390/s390-builtins.def (B_DEF): Likewise.
25590 (OB_DEF_VAR): Likewise.
25591 * config/s390/s390-builtins.h: Likewise.
25592 * config/s390/s390-c.cc: Likewise.
25593 * config/s390/s390-opts.h: Likewise.
25594 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
25595 (s390_register_target_pragmas): Likewise.
25596 * config/s390/s390.cc (s390_init_builtins): Likewise.
25597 (s390_expand_plus_operand): Likewise.
25598 (s390_expand_atomic): Likewise.
25599 (s390_valid_target_attribute_inner_p): Likewise.
25600 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
25601 * config/s390/s390.md: Likewise.
25602 * config/s390/t-s390: Likewise.
25603 * config/s390/vx-builtins.md: Likewise.
25604 * config/s390/x-native: Likewise.
25605 * config/sh/divtab-sh4-300.cc (main): Likewise.
25606 * config/sh/divtab-sh4.cc (main): Likewise.
25607 * config/sh/divtab.cc (main): Likewise.
25608 * config/sh/elf.h: Likewise.
25609 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
25610 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
25611 (sh_struct_value_rtx): Likewise.
25612 (sh_remove_reg_dead_or_unused_notes): Likewise.
25613 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
25614 * config/sh/t-sh: Likewise.
25615 * config/sol2-protos.h (solaris_override_options): Likewise.
25616 * config/sol2.h: Likewise.
25617 * config/sparc/driver-sparc.cc: Likewise.
25618 * config/sparc/freebsd.h: Likewise.
25619 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
25620 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
25621 (sparc_asan_shadow_offset): Likewise.
25622 * config/sparc/sparc.h: Likewise.
25623 * config/sparc/sparc.md: Likewise.
25624 * config/sparc/t-sparc: Likewise.
25625 * config/sparc/x-sparc: Likewise.
25626 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
25627 * config/t-darwin: Likewise.
25628 * config/t-dragonfly: Likewise.
25629 * config/t-freebsd: Likewise.
25630 * config/t-glibc: Likewise.
25631 * config/t-linux: Likewise.
25632 * config/t-netbsd: Likewise.
25633 * config/t-openbsd: Likewise.
25634 * config/t-pnt16-warn: Likewise.
25635 * config/t-sol2: Likewise.
25636 * config/t-vxworks: Likewise.
25637 * config/t-winnt: Likewise.
25638 * config/tilegx/t-tilegx: Likewise.
25639 * config/tilegx/tilegx-c.cc: Likewise.
25640 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
25641 * config/tilegx/tilegx.md: Likewise.
25642 * config/tilepro/t-tilepro: Likewise.
25643 * config/tilepro/tilepro-c.cc: Likewise.
25644 * config/v850/t-v850: Likewise.
25645 * config/v850/v850-protos.h: Likewise.
25646 * config/v850/v850.cc (F): Likewise.
25647 * config/v850/v850.h (enum reg_class): Likewise.
25648 (SLOW_BYTE_ACCESS): Likewise.
25649 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
25650 * config/vax/vax.h (enum reg_class): Likewise.
25651 * config/vax/vax.md: Likewise.
25652 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
25653 * config/visium/visium.h: Likewise.
25654 * config/vms/t-vms: Likewise.
25655 * config/vms/vms-crtlmap.map: Likewise.
25656 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
25657 * config/vx-common.h: Likewise.
25658 * config/x-darwin: Likewise.
25659 * config/x-hpux: Likewise.
25660 * config/x-linux: Likewise.
25661 * config/x-netbsd: Likewise.
25662 * config/x-openbsd: Likewise.
25663 * config/x-solaris: Likewise.
25664 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
25665 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
25666 * config/xtensa/xtensa.h: Likewise.
25667 * configure.ac: Likewise.
25668 * context.cc: Likewise.
25669 * convert.h: Likewise.
25670 * coretypes.h: Likewise.
25671 * coverage.cc: Likewise.
25672 * coverage.h: Likewise.
25673 * cppdefault.h (struct default_include): Likewise.
25674 * cprop.cc (local_cprop_pass): Likewise.
25675 (one_cprop_pass): Likewise.
25676 * cse.cc (hash_rtx_cb): Likewise.
25677 (fold_rtx): Likewise.
25678 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
25679 * data-streamer.h (bp_unpack_var_len_int): Likewise.
25680 (streamer_write_widest_int): Likewise.
25681 * dbgcnt.def: Likewise.
25682 * dbxout.cc (dbxout_early_global_decl): Likewise.
25683 (dbxout_common_check): Likewise.
25684 * dbxout.h: Likewise.
25685 * debug.h (struct gcc_debug_hooks): Likewise.
25686 (dump_go_spec_init): Likewise.
25687 * df-core.cc: Likewise.
25688 * df-scan.cc (df_insn_info_delete): Likewise.
25689 (df_insn_delete): Likewise.
25690 * df.h (debug_df_chain): Likewise.
25691 (can_move_insns_across): Likewise.
25692 * dfp.cc (decimal_from_binary): Likewise.
25693 * diagnostic-color.cc: Likewise.
25694 * diagnostic-event-id.h: Likewise.
25695 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
25696 * diagnostic.cc (bt_callback): Likewise.
25697 (num_digits): Likewise.
25698 * doc/avr-mmcu.texi: Likewise.
25699 * doc/cfg.texi: Likewise.
25700 * doc/contrib.texi: Likewise.
25701 * doc/cppinternals.texi: Likewise.
25702 * doc/extend.texi: Likewise.
25703 * doc/generic.texi: Likewise.
25704 * doc/gimple.texi: Likewise.
25705 * doc/gty.texi: Likewise.
25706 * doc/invoke.texi: Likewise.
25707 * doc/loop.texi: Likewise.
25708 * doc/lto.texi: Likewise.
25709 * doc/match-and-simplify.texi: Likewise.
25710 * doc/md.texi: Likewise.
25711 * doc/optinfo.texi: Likewise.
25712 * doc/options.texi: Likewise.
25713 * doc/passes.texi: Likewise.
25714 * doc/plugins.texi: Likewise.
25715 * doc/rtl.texi: Likewise.
25716 * doc/sourcebuild.texi: Likewise.
25717 * doc/tm.texi: Likewise.
25718 * doc/tm.texi.in: Likewise.
25719 * doc/tree-ssa.texi: Likewise.
25720 * dojump.cc (do_jump): Likewise.
25721 * dojump.h: Likewise.
25722 * dumpfile.cc (test_impl_location): Likewise.
25723 (test_capture_of_dump_calls): Likewise.
25724 * dumpfile.h (enum dump_kind): Likewise.
25725 (class dump_location_t): Likewise.
25726 (dump_enabled_p): Likewise.
25727 (enable_rtl_dump_file): Likewise.
25728 (dump_combine_total_stats): Likewise.
25729 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
25730 * dwarf2ctf.h (ctf_debug_finish): Likewise.
25731 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
25732 (struct loc_descr_context): Likewise.
25733 (rtl_for_decl_location): Likewise.
25734 (gen_subprogram_die): Likewise.
25735 (gen_label_die): Likewise.
25736 (is_trivial_indirect_ref): Likewise.
25737 (dwarf2out_late_global_decl): Likewise.
25738 (dwarf_file_hasher::hash): Likewise.
25739 (dwarf2out_end_source_file): Likewise.
25740 (dwarf2out_define): Likewise.
25741 (dwarf2out_early_finish): Likewise.
25742 * dwarf2out.h (struct dw_fde_node): Likewise.
25743 (struct dw_discr_list_node): Likewise.
25744 (output_loc_sequence_raw): Likewise.
25745 * emit-rtl.cc (gen_raw_REG): Likewise.
25746 (maybe_set_max_label_num): Likewise.
25747 * emit-rtl.h (struct rtl_data): Likewise.
25748 * errors.cc (internal_error): Likewise.
25749 (trim_filename): Likewise.
25750 * et-forest.cc: Likewise.
25751 * except.cc (init_eh_for_function): Likewise.
25752 * explow.cc (promote_ssa_mode): Likewise.
25753 (get_dynamic_stack_size): Likewise.
25754 * explow.h: Likewise.
25755 * expmed.h: Likewise.
25756 * expr.cc (safe_from_p): Likewise.
25757 (expand_expr_real_2): Likewise.
25758 (expand_expr_real_1): Likewise.
25759 * file-prefix-map.cc (remap_filename): Likewise.
25760 * final.cc (app_enable): Likewise.
25761 (make_pass_compute_alignments): Likewise.
25762 (final_scan_insn_1): Likewise.
25763 (final_scan_insn): Likewise.
25764 * fixed-value.h (fixed_from_string): Likewise.
25765 * flag-types.h (NO_DEBUG): Likewise.
25766 (DWARF2_DEBUG): Likewise.
25767 (VMS_DEBUG): Likewise.
25768 (BTF_DEBUG): Likewise.
25769 (enum ctf_debug_info_levels): Likewise.
25770 * fold-const.cc (const_binop): Likewise.
25771 (fold_binary_loc): Likewise.
25772 (fold_checksum_tree): Likewise.
25773 * fp-test.cc: Likewise.
25774 * function.cc (expand_function_end): Likewise.
25775 * function.h (struct function): Likewise.
25776 * fwprop.cc (should_replace_address): Likewise.
25777 * gcc-main.cc: Likewise.
25778 * gcc-rich-location.h (class gcc_rich_location): Likewise.
25779 * gcc-symtab.h: Likewise.
25780 * gcc.cc (MIN_FATAL_STATUS): Likewise.
25781 (driver_handle_option): Likewise.
25782 (quote_spec_arg): Likewise.
25783 (driver::finalize): Likewise.
25784 * gcc.h (set_input): Likewise.
25785 * gcov-dump.cc: Likewise.
25786 * gcov.cc (solve_flow_graph): Likewise.
25787 * gcse-common.cc: Likewise.
25788 * gcse.cc (make_pass_rtl_hoist): Likewise.
25789 * genattr-common.cc: Likewise.
25790 * genattrtab.cc (min_fn): Likewise.
25791 (write_const_num_delay_slots): Likewise.
25792 * genautomata.cc: Likewise.
25793 * genconditions.cc (write_one_condition): Likewise.
25794 * genconstants.cc: Likewise.
25795 * genemit.cc (gen_exp): Likewise.
25796 * generic-match-head.cc: Likewise.
25797 * genextract.cc: Likewise.
25798 * gengenrtl.cc (always_void_p): Likewise.
25799 * gengtype-parse.cc (gtymarker_opt): Likewise.
25800 * gengtype-state.cc (state_writer::state_writer): Likewise.
25801 (write_state_trailer): Likewise.
25802 (equals_type_number): Likewise.
25803 (read_state): Likewise.
25804 * gengtype.cc (open_base_files): Likewise.
25805 (struct file_rule_st): Likewise.
25806 (header_dot_h_frul): Likewise.
25807 * gengtype.h: Likewise.
25808 * genmatch.cc (main): Likewise.
25809 * genmddeps.cc: Likewise.
25810 * genmodes.cc (emit_mode_inner): Likewise.
25811 (emit_mode_unit_size): Likewise.
25812 * genpeep.cc (gen_peephole): Likewise.
25813 * genpreds.cc (write_tm_preds_h): Likewise.
25814 * genrecog.cc (validate_pattern): Likewise.
25815 (write_header): Likewise.
25817 * gensupport.cc (change_subst_attribute): Likewise.
25818 (traverse_c_tests): Likewise.
25819 (add_predicate): Likewise.
25820 (init_predicate_table): Likewise.
25821 * gensupport.h (struct optab_pattern): Likewise.
25822 (get_num_insn_codes): Likewise.
25823 (maybe_eval_c_test): Likewise.
25824 (struct pred_data): Likewise.
25825 * ggc-internal.h: Likewise.
25826 * gimple-fold.cc (maybe_fold_reference): Likewise.
25827 (get_range_strlen_tree): Likewise.
25828 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
25829 * gimple-low.cc: Likewise.
25830 * gimple-match-head.cc (directly_supported_p): Likewise.
25831 * gimple-pretty-print.h: Likewise.
25832 * gimple-ssa-sprintf.cc (format_percent): Likewise.
25833 (adjust_range_for_overflow): Likewise.
25834 * gimple-streamer.h: Likewise.
25835 * gimple.h (struct GTY): Likewise.
25836 (is_gimple_resx): Likewise.
25837 * gimplify.cc (gimplify_expr): Likewise.
25838 (gimplify_init_constructor): Likewise.
25839 (omp_construct_selector_matches): Likewise.
25840 (gimplify_omp_target_update): Likewise.
25841 (gimplify_omp_ordered): Likewise.
25842 (gimplify_va_arg_expr): Likewise.
25843 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
25844 * haifa-sched.cc (increase_insn_priority): Likewise.
25845 (try_ready): Likewise.
25846 (sched_create_recovery_edges): Likewise.
25847 * ifcvt.cc (find_if_case_1): Likewise.
25848 (find_if_case_2): Likewise.
25849 * inchash.h: Likewise.
25850 * incpath.cc (add_env_var_paths): Likewise.
25851 * input.cc (dump_location_info): Likewise.
25852 (assert_loceq): Likewise.
25853 (test_lexer_string_locations_concatenation_1): Likewise.
25854 (test_lexer_string_locations_concatenation_2): Likewise.
25855 (test_lexer_string_locations_concatenation_3): Likewise.
25856 * input.h (BUILTINS_LOCATION): Likewise.
25857 (class string_concat_db): Likewise.
25858 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
25859 (expand_LOOP_VECTORIZED): Likewise.
25860 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
25861 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
25862 (ipa_fn_summary_t::duplicate): Likewise.
25863 (make_pass_ipa_fn_summary): Likewise.
25864 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
25865 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
25866 (free_lang_data_in_decl): Likewise.
25867 * ipa-inline.cc (compute_inlined_call_time): Likewise.
25868 (inline_always_inline_functions): Likewise.
25869 * ipa-inline.h (free_growth_caches): Likewise.
25870 (inline_account_function_p): Likewise.
25871 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
25872 (modref_eaf_analysis::analyze_ssa_name): Likewise.
25873 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
25874 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
25875 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
25876 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
25877 (unadjusted_ptr_and_unit_offset): Likewise.
25878 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
25879 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
25880 * ipa-split.cc (consider_split): Likewise.
25881 * ipa-sra.cc (isra_read_node_info): Likewise.
25882 * ipa-utils.h (struct ipa_dfs_info): Likewise.
25883 (recursive_call_p): Likewise.
25884 (ipa_make_function_pure): Likewise.
25885 * ira-build.cc (ira_create_allocno): Likewise.
25886 (ira_flattening): Likewise.
25887 * ira-color.cc (do_coloring): Likewise.
25888 (update_curr_costs): Likewise.
25889 * ira-conflicts.cc (process_regs_for_copy): Likewise.
25890 * ira-int.h (struct ira_emit_data): Likewise.
25891 (ira_prohibited_mode_move_regs): Likewise.
25892 (ira_get_dup_out_num): Likewise.
25893 (ira_destroy): Likewise.
25894 (ira_tune_allocno_costs): Likewise.
25895 (ira_implicitly_set_insn_hard_regs): Likewise.
25896 (ira_build_conflicts): Likewise.
25897 (ira_color): Likewise.
25898 * ira-lives.cc (process_bb_node_lives): Likewise.
25899 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
25900 (setup_uniform_class_p): Likewise.
25901 (def_dominates_uses): Likewise.
25902 * ira.h (ira_nullify_asm_goto): Likewise.
25903 * langhooks.cc (lhd_post_options): Likewise.
25904 * langhooks.h (class substring_loc): Likewise.
25905 (struct lang_hooks_for_tree_inlining): Likewise.
25906 (struct lang_hooks_for_types): Likewise.
25907 (struct lang_hooks): Likewise.
25908 * libfuncs.h (synchronize_libfunc): Likewise.
25909 * loop-doloop.cc (doloop_condition_get): Likewise.
25910 * loop-init.cc (fix_loop_structure): Likewise.
25911 * loop-invariant.cc: Likewise.
25912 * lower-subreg.h: Likewise.
25913 * lra-constraints.cc (curr_insn_transform): Likewise.
25914 * lra-int.h (struct lra_insn_reg): Likewise.
25915 (lra_undo_inheritance): Likewise.
25916 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
25917 (lra_split_hard_reg_for): Likewise.
25918 (lra_coalesce): Likewise.
25919 (lra_final_code_change): Likewise.
25920 * lra-spills.cc (lra_final_code_change): Likewise.
25921 * lra.cc (lra_process_new_insns): Likewise.
25922 * lto-compress.h (struct lto_compression_stream): Likewise.
25923 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
25924 (write_symbol): Likewise.
25925 * lto-streamer.h (enum LTO_tags): Likewise.
25926 (lto_value_range_error): Likewise.
25927 (lto_append_block): Likewise.
25928 (lto_streamer_hooks_init): Likewise.
25929 (stream_read_tree_ref): Likewise.
25930 (lto_prepare_function_for_streaming): Likewise.
25931 (select_what_to_stream): Likewise.
25932 (omp_lto_input_declare_variant_alt): Likewise.
25933 (cl_optimization_stream_in): Likewise.
25934 * lto-wrapper.cc (append_compiler_options): Likewise.
25935 * machmode.def: Likewise.
25936 * machmode.h (struct int_n_data_t): Likewise.
25937 * main.cc (main): Likewise.
25938 * match.pd: Likewise.
25939 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
25940 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
25941 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
25942 (make_pass_expand_omp_ssa): Likewise.
25943 * omp-low.cc (struct omp_context): Likewise.
25944 (struct omp_taskcopy_context): Likewise.
25945 (lower_omp): Likewise.
25946 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
25947 (mask_name): Likewise.
25948 (omp_sese_dump_pars): Likewise.
25949 (worker_single_simple): Likewise.
25950 * omp-offload.cc (omp_finish_file): Likewise.
25951 (execute_oacc_loop_designation): Likewise.
25952 * optabs-query.cc (lshift_cheap_p): Likewise.
25953 * optc-gen.awk: Likewise.
25954 * optc-save-gen.awk: Likewise.
25955 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
25956 * opts-common.cc: Likewise.
25957 * output.h (app_enable): Likewise.
25958 (output_operand_lossage): Likewise.
25959 (insn_current_reference_address): Likewise.
25960 (get_insn_template): Likewise.
25961 (output_quoted_string): Likewise.
25962 * pass_manager.h (struct register_pass_info): Likewise.
25963 * plugin.cc: Likewise.
25964 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
25965 * plugin.h (invoke_plugin_callbacks): Likewise.
25966 * pointer-query.cc (handle_mem_ref): Likewise.
25967 * postreload-gcse.cc (alloc_mem): Likewise.
25968 * predict.h (enum prediction): Likewise.
25969 (add_reg_br_prob_note): Likewise.
25970 * prefix.h: Likewise.
25971 * profile.h (get_working_sets): Likewise.
25972 * read-md.cc: Likewise.
25973 * read-md.h (struct mapping): Likewise.
25974 (class md_reader): Likewise.
25975 (class noop_reader): Likewise.
25976 * read-rtl-function.cc (function_reader::create_function): Likewise.
25977 (function_reader::extra_parsing_for_operand_code_0): Likewise.
25978 * read-rtl.cc (initialize_iterators): Likewise.
25979 * real.cc: Likewise.
25980 * real.h (struct real_value): Likewise.
25981 (format_helper::format_helper): Likewise.
25982 (real_hash): Likewise.
25983 (real_can_shorten_arithmetic): Likewise.
25984 * recog.cc (struct target_recog): Likewise.
25985 (offsettable_nonstrict_memref_p): Likewise.
25986 (constrain_operands): Likewise.
25987 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
25988 (which_op_alt): Likewise.
25989 (struct insn_gen_fn): Likewise.
25990 * reg-notes.def (REG_NOTE): Likewise.
25991 * reg-stack.cc: Likewise.
25992 * regs.h (reg_is_parm_p): Likewise.
25993 * regset.h: Likewise.
25994 * reload.cc (push_reload): Likewise.
25995 (find_reloads): Likewise.
25996 (find_reloads_address_1): Likewise.
25997 (find_replacement): Likewise.
25998 (refers_to_regno_for_reload_p): Likewise.
25999 (refers_to_mem_for_reload_p): Likewise.
26000 * reload.h (push_reload): Likewise.
26001 (deallocate_reload_reg): Likewise.
26002 * reload1.cc (emit_input_reload_insns): Likewise.
26003 * reorg.cc (relax_delay_slots): Likewise.
26004 * rtl.def (UNKNOWN): Likewise.
26005 (SEQUENCE): Likewise.
26006 (BARRIER): Likewise.
26007 (ASM_OPERANDS): Likewise.
26008 (EQ_ATTR_ALT): Likewise.
26009 * rtl.h (struct GTY): Likewise.
26010 (LABEL_NAME): Likewise.
26011 (LABEL_ALT_ENTRY_P): Likewise.
26012 (SUBREG_BYTE): Likewise.
26013 (get_stack_check_protect): Likewise.
26014 (dump_rtx_statistics): Likewise.
26015 (unwrap_const_vec_duplicate): Likewise.
26016 (subreg_promoted_mode): Likewise.
26017 (gen_lowpart_common): Likewise.
26018 (operand_subword): Likewise.
26019 (immed_wide_int_const): Likewise.
26020 (decide_function_section): Likewise.
26021 (active_insn_p): Likewise.
26022 (delete_related_insns): Likewise.
26023 (try_split): Likewise.
26024 (val_signbit_known_clear_p): Likewise.
26025 (simplifiable_subregs): Likewise.
26026 (set_insn_deleted): Likewise.
26027 (subreg_get_info): Likewise.
26028 (remove_free_EXPR_LIST_node): Likewise.
26029 (finish_subregs_of_mode): Likewise.
26030 (get_mem_attrs): Likewise.
26031 (lookup_constant_def): Likewise.
26032 (rtx_to_tree_code): Likewise.
26033 (hash_rtx): Likewise.
26034 (condjump_in_parallel_p): Likewise.
26035 (validate_subreg): Likewise.
26036 (make_compound_operation): Likewise.
26037 (schedule_ebbs): Likewise.
26038 (print_inline_rtx): Likewise.
26039 (fixup_args_size_notes): Likewise.
26040 (expand_dec): Likewise.
26041 (prepare_copy_insn): Likewise.
26042 (mark_elimination): Likewise.
26043 (valid_mode_changes_for_regno): Likewise.
26044 (make_debug_expr_from_rtl): Likewise.
26045 (delete_vta_debug_insns): Likewise.
26046 (simplify_using_condition): Likewise.
26047 (set_insn_locations): Likewise.
26048 (fatal_insn_not_found): Likewise.
26049 (word_register_operation_p): Likewise.
26050 * rtlanal.cc (get_call_fndecl): Likewise.
26051 (side_effects_p): Likewise.
26052 (subreg_nregs): Likewise.
26053 (rtx_cost): Likewise.
26054 (canonicalize_condition): Likewise.
26055 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
26056 * run-rtl-passes.cc (run_rtl_passes): Likewise.
26057 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
26058 * sched-deps.cc (add_dependence_1): Likewise.
26059 * sched-ebb.cc (begin_move_insn): Likewise.
26060 (add_deps_for_risky_insns): Likewise.
26061 (advance_target_bb): Likewise.
26062 * sched-int.h (reemit_notes): Likewise.
26063 (struct _haifa_insn_data): Likewise.
26065 (DEP_CANCELLED): Likewise.
26066 (debug_ds): Likewise.
26067 (number_in_ready): Likewise.
26068 (schedule_ebbs_finish): Likewise.
26069 (find_modifiable_mems): Likewise.
26070 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
26071 * sel-sched-dump.cc (dump_lv_set): Likewise.
26072 * sel-sched-dump.h: Likewise.
26073 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
26074 (setup_id_reg_sets): Likewise.
26075 (has_dependence_p): Likewise.
26076 (sel_num_cfg_preds_gt_1): Likewise.
26077 (bb_ends_ebb_p): Likewise.
26078 * sel-sched-ir.h (struct _list_node): Likewise.
26079 (struct idata_def): Likewise.
26080 (bb_next_bb): Likewise.
26081 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
26082 (choose_best_pseudo_reg): Likewise.
26083 (verify_target_availability): Likewise.
26084 (can_speculate_dep_p): Likewise.
26085 (sel_rank_for_schedule): Likewise.
26086 * selftest-run-tests.cc (selftest::run_tests): Likewise.
26087 * selftest.h (class auto_fix_quotes): Likewise.
26088 * shrink-wrap.cc (handle_simple_exit): Likewise.
26089 * shrink-wrap.h: Likewise.
26090 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
26091 (simplify_context::simplify_gen_vec_select): Likewise.
26092 * spellcheck-tree.h: Likewise.
26093 * spellcheck.h: Likewise.
26094 * statistics.h (struct function): Likewise.
26095 * stmt.cc (conditional_probability): Likewise.
26096 * stmt.h: Likewise.
26097 * stor-layout.h: Likewise.
26098 * streamer-hooks.h: Likewise.
26099 * stringpool.h: Likewise.
26100 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
26101 * target.def (HOOK_VECTOR_END): Likewise.
26103 * target.h (union cumulative_args_t): Likewise.
26104 (by_pieces_ninsns): Likewise.
26105 (class predefined_function_abi): Likewise.
26106 * targhooks.cc (default_translate_mode_attribute): Likewise.
26107 * timevar.def: Likewise.
26108 * timevar.h (class timer): Likewise.
26109 * toplev.h (enable_rtl_dump_file): Likewise.
26110 * trans-mem.cc (collect_bb2reg): Likewise.
26111 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
26112 * tree-cfg.cc (remove_bb): Likewise.
26113 (verify_gimple_debug): Likewise.
26114 (remove_edge_and_dominated_blocks): Likewise.
26115 (push_fndecl): Likewise.
26116 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
26117 * tree-complex.cc (expand_complex_multiplication): Likewise.
26118 (expand_complex_div_straight): Likewise.
26119 * tree-core.h (enum tree_index): Likewise.
26120 (enum operand_equal_flag): Likewise.
26121 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
26122 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
26123 * tree-inline.cc (initialize_inlined_parameters): Likewise.
26124 * tree-inline.h (force_value_to_type): Likewise.
26125 * tree-nested.cc (get_chain_decl): Likewise.
26126 (walk_all_functions): Likewise.
26127 * tree-object-size.h: Likewise.
26128 * tree-outof-ssa.cc: Likewise.
26129 * tree-parloops.cc (create_parallel_loop): Likewise.
26130 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
26131 (dump_generic_node): Likewise.
26132 * tree-profile.cc (tree_profiling): Likewise.
26133 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
26134 * tree-ssa-address.cc: Likewise.
26135 * tree-ssa-alias.cc: Likewise.
26136 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
26137 (dump_alias_stats): Likewise.
26138 * tree-ssa-ccp.cc: Likewise.
26139 * tree-ssa-coalesce.h: Likewise.
26140 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
26141 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
26142 * tree-ssa-loop-unswitch.cc: Likewise.
26143 * tree-ssa-math-opts.cc: Likewise.
26144 * tree-ssa-operands.cc (class operands_scanner): Likewise.
26145 * tree-ssa-pre.cc: Likewise.
26146 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
26147 (debug_range_entry): Likewise.
26148 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
26149 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
26150 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
26151 (equal_mem_array_ref_p): Likewise.
26152 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
26153 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
26154 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
26155 * tree-ssa-ter.h: Likewise.
26156 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
26157 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
26158 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
26159 (write_ts_block_tree_pointers): Likewise.
26160 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
26161 (streamer_read_tree_bitfields): Likewise.
26162 (streamer_write_integer_cst): Likewise.
26163 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
26164 (vect_synth_mult_by_constant): Likewise.
26165 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
26166 * tree-vectorizer.cc: Likewise.
26167 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
26168 (vect_update_inits_of_drs): Likewise.
26169 (vect_get_mask_type_for_stmt): Likewise.
26170 (vect_rgroup_iv_might_wrap_p): Likewise.
26171 (cse_and_gimplify_to_preheader): Likewise.
26172 (vect_free_slp_tree): Likewise.
26173 (vect_pattern_recog): Likewise.
26174 (vect_stmt_dominates_stmt_p): Likewise.
26175 * tree.cc (initialize_tree_contains_struct): Likewise.
26176 (need_assembler_name_p): Likewise.
26177 (type_with_interoperable_signedness): Likewise.
26178 * tree.def (SWITCH_EXPR): Likewise.
26179 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
26180 (poly_int_tree_p): Likewise.
26181 (inlined_function_outer_scope_p): Likewise.
26182 (tree_code_for_canonical_type_merging): Likewise.
26183 * value-prof.cc: Likewise.
26184 * value-prof.h (get_nth_most_common_value): Likewise.
26185 (find_func_by_profile_id): Likewise.
26186 * value-range.cc (vrp_operand_equal_p): Likewise.
26187 * value-range.h: Likewise.
26188 * var-tracking.cc: Likewise.
26189 * varasm.cc (default_function_section): Likewise.
26190 (function_section_1): Likewise.
26191 (assemble_variable): Likewise.
26192 (handle_vtv_comdat_section): Likewise.
26193 * vec.h (struct vec_prefix): Likewise.
26194 * vmsdbgout.cc (full_name): Likewise.
26195 * vtable-verify.cc: Likewise.
26196 * vtable-verify.h (struct vtv_graph_node): Likewise.
26197 * xcoffout.cc: Likewise.
26198 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
26200 2022-01-17 Martin Liska <mliska@suse.cz>
26202 * adjust-alignment.c: Moved to...
26203 * adjust-alignment.cc: ...here.
26204 * alias.c: Moved to...
26205 * alias.cc: ...here.
26206 * alloc-pool.c: Moved to...
26207 * alloc-pool.cc: ...here.
26208 * asan.c: Moved to...
26209 * asan.cc: ...here.
26210 * attribs.c: Moved to...
26211 * attribs.cc: ...here.
26212 * auto-inc-dec.c: Moved to...
26213 * auto-inc-dec.cc: ...here.
26214 * auto-profile.c: Moved to...
26215 * auto-profile.cc: ...here.
26216 * bb-reorder.c: Moved to...
26217 * bb-reorder.cc: ...here.
26218 * bitmap.c: Moved to...
26219 * bitmap.cc: ...here.
26220 * btfout.c: Moved to...
26221 * btfout.cc: ...here.
26222 * builtins.c: Moved to...
26223 * builtins.cc: ...here.
26224 * caller-save.c: Moved to...
26225 * caller-save.cc: ...here.
26226 * calls.c: Moved to...
26227 * calls.cc: ...here.
26228 * ccmp.c: Moved to...
26229 * ccmp.cc: ...here.
26230 * cfg.c: Moved to...
26232 * cfganal.c: Moved to...
26233 * cfganal.cc: ...here.
26234 * cfgbuild.c: Moved to...
26235 * cfgbuild.cc: ...here.
26236 * cfgcleanup.c: Moved to...
26237 * cfgcleanup.cc: ...here.
26238 * cfgexpand.c: Moved to...
26239 * cfgexpand.cc: ...here.
26240 * cfghooks.c: Moved to...
26241 * cfghooks.cc: ...here.
26242 * cfgloop.c: Moved to...
26243 * cfgloop.cc: ...here.
26244 * cfgloopanal.c: Moved to...
26245 * cfgloopanal.cc: ...here.
26246 * cfgloopmanip.c: Moved to...
26247 * cfgloopmanip.cc: ...here.
26248 * cfgrtl.c: Moved to...
26249 * cfgrtl.cc: ...here.
26250 * cgraph.c: Moved to...
26251 * cgraph.cc: ...here.
26252 * cgraphbuild.c: Moved to...
26253 * cgraphbuild.cc: ...here.
26254 * cgraphclones.c: Moved to...
26255 * cgraphclones.cc: ...here.
26256 * cgraphunit.c: Moved to...
26257 * cgraphunit.cc: ...here.
26258 * collect-utils.c: Moved to...
26259 * collect-utils.cc: ...here.
26260 * collect2-aix.c: Moved to...
26261 * collect2-aix.cc: ...here.
26262 * collect2.c: Moved to...
26263 * collect2.cc: ...here.
26264 * combine-stack-adj.c: Moved to...
26265 * combine-stack-adj.cc: ...here.
26266 * combine.c: Moved to...
26267 * combine.cc: ...here.
26268 * common/common-targhooks.c: Moved to...
26269 * common/common-targhooks.cc: ...here.
26270 * common/config/aarch64/aarch64-common.c: Moved to...
26271 * common/config/aarch64/aarch64-common.cc: ...here.
26272 * common/config/alpha/alpha-common.c: Moved to...
26273 * common/config/alpha/alpha-common.cc: ...here.
26274 * common/config/arc/arc-common.c: Moved to...
26275 * common/config/arc/arc-common.cc: ...here.
26276 * common/config/arm/arm-common.c: Moved to...
26277 * common/config/arm/arm-common.cc: ...here.
26278 * common/config/avr/avr-common.c: Moved to...
26279 * common/config/avr/avr-common.cc: ...here.
26280 * common/config/bfin/bfin-common.c: Moved to...
26281 * common/config/bfin/bfin-common.cc: ...here.
26282 * common/config/bpf/bpf-common.c: Moved to...
26283 * common/config/bpf/bpf-common.cc: ...here.
26284 * common/config/c6x/c6x-common.c: Moved to...
26285 * common/config/c6x/c6x-common.cc: ...here.
26286 * common/config/cr16/cr16-common.c: Moved to...
26287 * common/config/cr16/cr16-common.cc: ...here.
26288 * common/config/cris/cris-common.c: Moved to...
26289 * common/config/cris/cris-common.cc: ...here.
26290 * common/config/csky/csky-common.c: Moved to...
26291 * common/config/csky/csky-common.cc: ...here.
26292 * common/config/default-common.c: Moved to...
26293 * common/config/default-common.cc: ...here.
26294 * common/config/epiphany/epiphany-common.c: Moved to...
26295 * common/config/epiphany/epiphany-common.cc: ...here.
26296 * common/config/fr30/fr30-common.c: Moved to...
26297 * common/config/fr30/fr30-common.cc: ...here.
26298 * common/config/frv/frv-common.c: Moved to...
26299 * common/config/frv/frv-common.cc: ...here.
26300 * common/config/gcn/gcn-common.c: Moved to...
26301 * common/config/gcn/gcn-common.cc: ...here.
26302 * common/config/h8300/h8300-common.c: Moved to...
26303 * common/config/h8300/h8300-common.cc: ...here.
26304 * common/config/i386/i386-common.c: Moved to...
26305 * common/config/i386/i386-common.cc: ...here.
26306 * common/config/ia64/ia64-common.c: Moved to...
26307 * common/config/ia64/ia64-common.cc: ...here.
26308 * common/config/iq2000/iq2000-common.c: Moved to...
26309 * common/config/iq2000/iq2000-common.cc: ...here.
26310 * common/config/lm32/lm32-common.c: Moved to...
26311 * common/config/lm32/lm32-common.cc: ...here.
26312 * common/config/m32r/m32r-common.c: Moved to...
26313 * common/config/m32r/m32r-common.cc: ...here.
26314 * common/config/m68k/m68k-common.c: Moved to...
26315 * common/config/m68k/m68k-common.cc: ...here.
26316 * common/config/mcore/mcore-common.c: Moved to...
26317 * common/config/mcore/mcore-common.cc: ...here.
26318 * common/config/microblaze/microblaze-common.c: Moved to...
26319 * common/config/microblaze/microblaze-common.cc: ...here.
26320 * common/config/mips/mips-common.c: Moved to...
26321 * common/config/mips/mips-common.cc: ...here.
26322 * common/config/mmix/mmix-common.c: Moved to...
26323 * common/config/mmix/mmix-common.cc: ...here.
26324 * common/config/mn10300/mn10300-common.c: Moved to...
26325 * common/config/mn10300/mn10300-common.cc: ...here.
26326 * common/config/msp430/msp430-common.c: Moved to...
26327 * common/config/msp430/msp430-common.cc: ...here.
26328 * common/config/nds32/nds32-common.c: Moved to...
26329 * common/config/nds32/nds32-common.cc: ...here.
26330 * common/config/nios2/nios2-common.c: Moved to...
26331 * common/config/nios2/nios2-common.cc: ...here.
26332 * common/config/nvptx/nvptx-common.c: Moved to...
26333 * common/config/nvptx/nvptx-common.cc: ...here.
26334 * common/config/or1k/or1k-common.c: Moved to...
26335 * common/config/or1k/or1k-common.cc: ...here.
26336 * common/config/pa/pa-common.c: Moved to...
26337 * common/config/pa/pa-common.cc: ...here.
26338 * common/config/pdp11/pdp11-common.c: Moved to...
26339 * common/config/pdp11/pdp11-common.cc: ...here.
26340 * common/config/pru/pru-common.c: Moved to...
26341 * common/config/pru/pru-common.cc: ...here.
26342 * common/config/riscv/riscv-common.c: Moved to...
26343 * common/config/riscv/riscv-common.cc: ...here.
26344 * common/config/rs6000/rs6000-common.c: Moved to...
26345 * common/config/rs6000/rs6000-common.cc: ...here.
26346 * common/config/rx/rx-common.c: Moved to...
26347 * common/config/rx/rx-common.cc: ...here.
26348 * common/config/s390/s390-common.c: Moved to...
26349 * common/config/s390/s390-common.cc: ...here.
26350 * common/config/sh/sh-common.c: Moved to...
26351 * common/config/sh/sh-common.cc: ...here.
26352 * common/config/sparc/sparc-common.c: Moved to...
26353 * common/config/sparc/sparc-common.cc: ...here.
26354 * common/config/tilegx/tilegx-common.c: Moved to...
26355 * common/config/tilegx/tilegx-common.cc: ...here.
26356 * common/config/tilepro/tilepro-common.c: Moved to...
26357 * common/config/tilepro/tilepro-common.cc: ...here.
26358 * common/config/v850/v850-common.c: Moved to...
26359 * common/config/v850/v850-common.cc: ...here.
26360 * common/config/vax/vax-common.c: Moved to...
26361 * common/config/vax/vax-common.cc: ...here.
26362 * common/config/visium/visium-common.c: Moved to...
26363 * common/config/visium/visium-common.cc: ...here.
26364 * common/config/xstormy16/xstormy16-common.c: Moved to...
26365 * common/config/xstormy16/xstormy16-common.cc: ...here.
26366 * common/config/xtensa/xtensa-common.c: Moved to...
26367 * common/config/xtensa/xtensa-common.cc: ...here.
26368 * compare-elim.c: Moved to...
26369 * compare-elim.cc: ...here.
26370 * config/aarch64/aarch64-bti-insert.c: Moved to...
26371 * config/aarch64/aarch64-bti-insert.cc: ...here.
26372 * config/aarch64/aarch64-builtins.c: Moved to...
26373 * config/aarch64/aarch64-builtins.cc: ...here.
26374 * config/aarch64/aarch64-c.c: Moved to...
26375 * config/aarch64/aarch64-c.cc: ...here.
26376 * config/aarch64/aarch64-d.c: Moved to...
26377 * config/aarch64/aarch64-d.cc: ...here.
26378 * config/aarch64/aarch64.c: Moved to...
26379 * config/aarch64/aarch64.cc: ...here.
26380 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
26381 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
26382 * config/aarch64/driver-aarch64.c: Moved to...
26383 * config/aarch64/driver-aarch64.cc: ...here.
26384 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
26385 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
26386 * config/aarch64/host-aarch64-darwin.c: Moved to...
26387 * config/aarch64/host-aarch64-darwin.cc: ...here.
26388 * config/alpha/alpha.c: Moved to...
26389 * config/alpha/alpha.cc: ...here.
26390 * config/alpha/driver-alpha.c: Moved to...
26391 * config/alpha/driver-alpha.cc: ...here.
26392 * config/arc/arc-c.c: Moved to...
26393 * config/arc/arc-c.cc: ...here.
26394 * config/arc/arc.c: Moved to...
26395 * config/arc/arc.cc: ...here.
26396 * config/arc/driver-arc.c: Moved to...
26397 * config/arc/driver-arc.cc: ...here.
26398 * config/arm/aarch-common.c: Moved to...
26399 * config/arm/aarch-common.cc: ...here.
26400 * config/arm/arm-builtins.c: Moved to...
26401 * config/arm/arm-builtins.cc: ...here.
26402 * config/arm/arm-c.c: Moved to...
26403 * config/arm/arm-c.cc: ...here.
26404 * config/arm/arm-d.c: Moved to...
26405 * config/arm/arm-d.cc: ...here.
26406 * config/arm/arm.c: Moved to...
26407 * config/arm/arm.cc: ...here.
26408 * config/arm/driver-arm.c: Moved to...
26409 * config/arm/driver-arm.cc: ...here.
26410 * config/avr/avr-c.c: Moved to...
26411 * config/avr/avr-c.cc: ...here.
26412 * config/avr/avr-devices.c: Moved to...
26413 * config/avr/avr-devices.cc: ...here.
26414 * config/avr/avr-log.c: Moved to...
26415 * config/avr/avr-log.cc: ...here.
26416 * config/avr/avr.c: Moved to...
26417 * config/avr/avr.cc: ...here.
26418 * config/avr/driver-avr.c: Moved to...
26419 * config/avr/driver-avr.cc: ...here.
26420 * config/avr/gen-avr-mmcu-specs.c: Moved to...
26421 * config/avr/gen-avr-mmcu-specs.cc: ...here.
26422 * config/avr/gen-avr-mmcu-texi.c: Moved to...
26423 * config/avr/gen-avr-mmcu-texi.cc: ...here.
26424 * config/bfin/bfin.c: Moved to...
26425 * config/bfin/bfin.cc: ...here.
26426 * config/bpf/bpf.c: Moved to...
26427 * config/bpf/bpf.cc: ...here.
26428 * config/bpf/coreout.c: Moved to...
26429 * config/bpf/coreout.cc: ...here.
26430 * config/c6x/c6x.c: Moved to...
26431 * config/c6x/c6x.cc: ...here.
26432 * config/cr16/cr16.c: Moved to...
26433 * config/cr16/cr16.cc: ...here.
26434 * config/cris/cris.c: Moved to...
26435 * config/cris/cris.cc: ...here.
26436 * config/csky/csky.c: Moved to...
26437 * config/csky/csky.cc: ...here.
26438 * config/darwin-c.c: Moved to...
26439 * config/darwin-c.cc: ...here.
26440 * config/darwin-d.c: Moved to...
26441 * config/darwin-d.cc: ...here.
26442 * config/darwin-driver.c: Moved to...
26443 * config/darwin-driver.cc: ...here.
26444 * config/darwin-f.c: Moved to...
26445 * config/darwin-f.cc: ...here.
26446 * config/darwin.c: Moved to...
26447 * config/darwin.cc: ...here.
26448 * config/default-c.c: Moved to...
26449 * config/default-c.cc: ...here.
26450 * config/default-d.c: Moved to...
26451 * config/default-d.cc: ...here.
26452 * config/dragonfly-d.c: Moved to...
26453 * config/dragonfly-d.cc: ...here.
26454 * config/epiphany/epiphany.c: Moved to...
26455 * config/epiphany/epiphany.cc: ...here.
26456 * config/epiphany/mode-switch-use.c: Moved to...
26457 * config/epiphany/mode-switch-use.cc: ...here.
26458 * config/epiphany/resolve-sw-modes.c: Moved to...
26459 * config/epiphany/resolve-sw-modes.cc: ...here.
26460 * config/fr30/fr30.c: Moved to...
26461 * config/fr30/fr30.cc: ...here.
26462 * config/freebsd-d.c: Moved to...
26463 * config/freebsd-d.cc: ...here.
26464 * config/frv/frv.c: Moved to...
26465 * config/frv/frv.cc: ...here.
26466 * config/ft32/ft32.c: Moved to...
26467 * config/ft32/ft32.cc: ...here.
26468 * config/gcn/driver-gcn.c: Moved to...
26469 * config/gcn/driver-gcn.cc: ...here.
26470 * config/gcn/gcn-run.c: Moved to...
26471 * config/gcn/gcn-run.cc: ...here.
26472 * config/gcn/gcn-tree.c: Moved to...
26473 * config/gcn/gcn-tree.cc: ...here.
26474 * config/gcn/gcn.c: Moved to...
26475 * config/gcn/gcn.cc: ...here.
26476 * config/gcn/mkoffload.c: Moved to...
26477 * config/gcn/mkoffload.cc: ...here.
26478 * config/glibc-c.c: Moved to...
26479 * config/glibc-c.cc: ...here.
26480 * config/glibc-d.c: Moved to...
26481 * config/glibc-d.cc: ...here.
26482 * config/h8300/h8300.c: Moved to...
26483 * config/h8300/h8300.cc: ...here.
26484 * config/host-darwin.c: Moved to...
26485 * config/host-darwin.cc: ...here.
26486 * config/host-hpux.c: Moved to...
26487 * config/host-hpux.cc: ...here.
26488 * config/host-linux.c: Moved to...
26489 * config/host-linux.cc: ...here.
26490 * config/host-netbsd.c: Moved to...
26491 * config/host-netbsd.cc: ...here.
26492 * config/host-openbsd.c: Moved to...
26493 * config/host-openbsd.cc: ...here.
26494 * config/host-solaris.c: Moved to...
26495 * config/host-solaris.cc: ...here.
26496 * config/i386/djgpp.c: Moved to...
26497 * config/i386/djgpp.cc: ...here.
26498 * config/i386/driver-i386.c: Moved to...
26499 * config/i386/driver-i386.cc: ...here.
26500 * config/i386/driver-mingw32.c: Moved to...
26501 * config/i386/driver-mingw32.cc: ...here.
26502 * config/i386/gnu-property.c: Moved to...
26503 * config/i386/gnu-property.cc: ...here.
26504 * config/i386/host-cygwin.c: Moved to...
26505 * config/i386/host-cygwin.cc: ...here.
26506 * config/i386/host-i386-darwin.c: Moved to...
26507 * config/i386/host-i386-darwin.cc: ...here.
26508 * config/i386/host-mingw32.c: Moved to...
26509 * config/i386/host-mingw32.cc: ...here.
26510 * config/i386/i386-builtins.c: Moved to...
26511 * config/i386/i386-builtins.cc: ...here.
26512 * config/i386/i386-c.c: Moved to...
26513 * config/i386/i386-c.cc: ...here.
26514 * config/i386/i386-d.c: Moved to...
26515 * config/i386/i386-d.cc: ...here.
26516 * config/i386/i386-expand.c: Moved to...
26517 * config/i386/i386-expand.cc: ...here.
26518 * config/i386/i386-features.c: Moved to...
26519 * config/i386/i386-features.cc: ...here.
26520 * config/i386/i386-options.c: Moved to...
26521 * config/i386/i386-options.cc: ...here.
26522 * config/i386/i386.c: Moved to...
26523 * config/i386/i386.cc: ...here.
26524 * config/i386/intelmic-mkoffload.c: Moved to...
26525 * config/i386/intelmic-mkoffload.cc: ...here.
26526 * config/i386/msformat-c.c: Moved to...
26527 * config/i386/msformat-c.cc: ...here.
26528 * config/i386/winnt-cxx.c: Moved to...
26529 * config/i386/winnt-cxx.cc: ...here.
26530 * config/i386/winnt-d.c: Moved to...
26531 * config/i386/winnt-d.cc: ...here.
26532 * config/i386/winnt-stubs.c: Moved to...
26533 * config/i386/winnt-stubs.cc: ...here.
26534 * config/i386/winnt.c: Moved to...
26535 * config/i386/winnt.cc: ...here.
26536 * config/i386/x86-tune-sched-atom.c: Moved to...
26537 * config/i386/x86-tune-sched-atom.cc: ...here.
26538 * config/i386/x86-tune-sched-bd.c: Moved to...
26539 * config/i386/x86-tune-sched-bd.cc: ...here.
26540 * config/i386/x86-tune-sched-core.c: Moved to...
26541 * config/i386/x86-tune-sched-core.cc: ...here.
26542 * config/i386/x86-tune-sched.c: Moved to...
26543 * config/i386/x86-tune-sched.cc: ...here.
26544 * config/ia64/ia64-c.c: Moved to...
26545 * config/ia64/ia64-c.cc: ...here.
26546 * config/ia64/ia64.c: Moved to...
26547 * config/ia64/ia64.cc: ...here.
26548 * config/iq2000/iq2000.c: Moved to...
26549 * config/iq2000/iq2000.cc: ...here.
26550 * config/linux.c: Moved to...
26551 * config/linux.cc: ...here.
26552 * config/lm32/lm32.c: Moved to...
26553 * config/lm32/lm32.cc: ...here.
26554 * config/m32c/m32c-pragma.c: Moved to...
26555 * config/m32c/m32c-pragma.cc: ...here.
26556 * config/m32c/m32c.c: Moved to...
26557 * config/m32c/m32c.cc: ...here.
26558 * config/m32r/m32r.c: Moved to...
26559 * config/m32r/m32r.cc: ...here.
26560 * config/m68k/m68k.c: Moved to...
26561 * config/m68k/m68k.cc: ...here.
26562 * config/mcore/mcore.c: Moved to...
26563 * config/mcore/mcore.cc: ...here.
26564 * config/microblaze/microblaze-c.c: Moved to...
26565 * config/microblaze/microblaze-c.cc: ...here.
26566 * config/microblaze/microblaze.c: Moved to...
26567 * config/microblaze/microblaze.cc: ...here.
26568 * config/mips/driver-native.c: Moved to...
26569 * config/mips/driver-native.cc: ...here.
26570 * config/mips/frame-header-opt.c: Moved to...
26571 * config/mips/frame-header-opt.cc: ...here.
26572 * config/mips/mips-d.c: Moved to...
26573 * config/mips/mips-d.cc: ...here.
26574 * config/mips/mips.c: Moved to...
26575 * config/mips/mips.cc: ...here.
26576 * config/mmix/mmix.c: Moved to...
26577 * config/mmix/mmix.cc: ...here.
26578 * config/mn10300/mn10300.c: Moved to...
26579 * config/mn10300/mn10300.cc: ...here.
26580 * config/moxie/moxie.c: Moved to...
26581 * config/moxie/moxie.cc: ...here.
26582 * config/msp430/driver-msp430.c: Moved to...
26583 * config/msp430/driver-msp430.cc: ...here.
26584 * config/msp430/msp430-c.c: Moved to...
26585 * config/msp430/msp430-c.cc: ...here.
26586 * config/msp430/msp430-devices.c: Moved to...
26587 * config/msp430/msp430-devices.cc: ...here.
26588 * config/msp430/msp430.c: Moved to...
26589 * config/msp430/msp430.cc: ...here.
26590 * config/nds32/nds32-cost.c: Moved to...
26591 * config/nds32/nds32-cost.cc: ...here.
26592 * config/nds32/nds32-fp-as-gp.c: Moved to...
26593 * config/nds32/nds32-fp-as-gp.cc: ...here.
26594 * config/nds32/nds32-intrinsic.c: Moved to...
26595 * config/nds32/nds32-intrinsic.cc: ...here.
26596 * config/nds32/nds32-isr.c: Moved to...
26597 * config/nds32/nds32-isr.cc: ...here.
26598 * config/nds32/nds32-md-auxiliary.c: Moved to...
26599 * config/nds32/nds32-md-auxiliary.cc: ...here.
26600 * config/nds32/nds32-memory-manipulation.c: Moved to...
26601 * config/nds32/nds32-memory-manipulation.cc: ...here.
26602 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
26603 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
26604 * config/nds32/nds32-predicates.c: Moved to...
26605 * config/nds32/nds32-predicates.cc: ...here.
26606 * config/nds32/nds32-relax-opt.c: Moved to...
26607 * config/nds32/nds32-relax-opt.cc: ...here.
26608 * config/nds32/nds32-utils.c: Moved to...
26609 * config/nds32/nds32-utils.cc: ...here.
26610 * config/nds32/nds32.c: Moved to...
26611 * config/nds32/nds32.cc: ...here.
26612 * config/netbsd-d.c: Moved to...
26613 * config/netbsd-d.cc: ...here.
26614 * config/netbsd.c: Moved to...
26615 * config/netbsd.cc: ...here.
26616 * config/nios2/nios2.c: Moved to...
26617 * config/nios2/nios2.cc: ...here.
26618 * config/nvptx/mkoffload.c: Moved to...
26619 * config/nvptx/mkoffload.cc: ...here.
26620 * config/nvptx/nvptx-c.c: Moved to...
26621 * config/nvptx/nvptx-c.cc: ...here.
26622 * config/nvptx/nvptx.c: Moved to...
26623 * config/nvptx/nvptx.cc: ...here.
26624 * config/openbsd-d.c: Moved to...
26625 * config/openbsd-d.cc: ...here.
26626 * config/or1k/or1k.c: Moved to...
26627 * config/or1k/or1k.cc: ...here.
26628 * config/pa/pa-d.c: Moved to...
26629 * config/pa/pa-d.cc: ...here.
26630 * config/pa/pa.c: Moved to...
26631 * config/pa/pa.cc: ...here.
26632 * config/pdp11/pdp11.c: Moved to...
26633 * config/pdp11/pdp11.cc: ...here.
26634 * config/pru/pru-passes.c: Moved to...
26635 * config/pru/pru-passes.cc: ...here.
26636 * config/pru/pru-pragma.c: Moved to...
26637 * config/pru/pru-pragma.cc: ...here.
26638 * config/pru/pru.c: Moved to...
26639 * config/pru/pru.cc: ...here.
26640 * config/riscv/riscv-builtins.c: Moved to...
26641 * config/riscv/riscv-builtins.cc: ...here.
26642 * config/riscv/riscv-c.c: Moved to...
26643 * config/riscv/riscv-c.cc: ...here.
26644 * config/riscv/riscv-d.c: Moved to...
26645 * config/riscv/riscv-d.cc: ...here.
26646 * config/riscv/riscv-shorten-memrefs.c: Moved to...
26647 * config/riscv/riscv-shorten-memrefs.cc: ...here.
26648 * config/riscv/riscv-sr.c: Moved to...
26649 * config/riscv/riscv-sr.cc: ...here.
26650 * config/riscv/riscv.c: Moved to...
26651 * config/riscv/riscv.cc: ...here.
26652 * config/rl78/rl78-c.c: Moved to...
26653 * config/rl78/rl78-c.cc: ...here.
26654 * config/rl78/rl78.c: Moved to...
26655 * config/rl78/rl78.cc: ...here.
26656 * config/rs6000/driver-rs6000.c: Moved to...
26657 * config/rs6000/driver-rs6000.cc: ...here.
26658 * config/rs6000/host-darwin.c: Moved to...
26659 * config/rs6000/host-darwin.cc: ...here.
26660 * config/rs6000/host-ppc64-darwin.c: Moved to...
26661 * config/rs6000/host-ppc64-darwin.cc: ...here.
26662 * config/rs6000/rbtree.c: Moved to...
26663 * config/rs6000/rbtree.cc: ...here.
26664 * config/rs6000/rs6000-c.c: Moved to...
26665 * config/rs6000/rs6000-c.cc: ...here.
26666 * config/rs6000/rs6000-call.c: Moved to...
26667 * config/rs6000/rs6000-call.cc: ...here.
26668 * config/rs6000/rs6000-d.c: Moved to...
26669 * config/rs6000/rs6000-d.cc: ...here.
26670 * config/rs6000/rs6000-gen-builtins.c: Moved to...
26671 * config/rs6000/rs6000-gen-builtins.cc: ...here.
26672 * config/rs6000/rs6000-linux.c: Moved to...
26673 * config/rs6000/rs6000-linux.cc: ...here.
26674 * config/rs6000/rs6000-logue.c: Moved to...
26675 * config/rs6000/rs6000-logue.cc: ...here.
26676 * config/rs6000/rs6000-p8swap.c: Moved to...
26677 * config/rs6000/rs6000-p8swap.cc: ...here.
26678 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
26679 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
26680 * config/rs6000/rs6000-string.c: Moved to...
26681 * config/rs6000/rs6000-string.cc: ...here.
26682 * config/rs6000/rs6000.c: Moved to...
26683 * config/rs6000/rs6000.cc: ...here.
26684 * config/rx/rx.c: Moved to...
26685 * config/rx/rx.cc: ...here.
26686 * config/s390/driver-native.c: Moved to...
26687 * config/s390/driver-native.cc: ...here.
26688 * config/s390/s390-c.c: Moved to...
26689 * config/s390/s390-c.cc: ...here.
26690 * config/s390/s390-d.c: Moved to...
26691 * config/s390/s390-d.cc: ...here.
26692 * config/s390/s390.c: Moved to...
26693 * config/s390/s390.cc: ...here.
26694 * config/sh/divtab-sh4-300.c: Moved to...
26695 * config/sh/divtab-sh4-300.cc: ...here.
26696 * config/sh/divtab-sh4.c: Moved to...
26697 * config/sh/divtab-sh4.cc: ...here.
26698 * config/sh/divtab.c: Moved to...
26699 * config/sh/divtab.cc: ...here.
26700 * config/sh/sh-c.c: Moved to...
26701 * config/sh/sh-c.cc: ...here.
26702 * config/sh/sh.c: Moved to...
26703 * config/sh/sh.cc: ...here.
26704 * config/sol2-c.c: Moved to...
26705 * config/sol2-c.cc: ...here.
26706 * config/sol2-cxx.c: Moved to...
26707 * config/sol2-cxx.cc: ...here.
26708 * config/sol2-d.c: Moved to...
26709 * config/sol2-d.cc: ...here.
26710 * config/sol2-stubs.c: Moved to...
26711 * config/sol2-stubs.cc: ...here.
26712 * config/sol2.c: Moved to...
26713 * config/sol2.cc: ...here.
26714 * config/sparc/driver-sparc.c: Moved to...
26715 * config/sparc/driver-sparc.cc: ...here.
26716 * config/sparc/sparc-c.c: Moved to...
26717 * config/sparc/sparc-c.cc: ...here.
26718 * config/sparc/sparc-d.c: Moved to...
26719 * config/sparc/sparc-d.cc: ...here.
26720 * config/sparc/sparc.c: Moved to...
26721 * config/sparc/sparc.cc: ...here.
26722 * config/stormy16/stormy16.c: Moved to...
26723 * config/stormy16/stormy16.cc: ...here.
26724 * config/tilegx/mul-tables.c: Moved to...
26725 * config/tilegx/mul-tables.cc: ...here.
26726 * config/tilegx/tilegx-c.c: Moved to...
26727 * config/tilegx/tilegx-c.cc: ...here.
26728 * config/tilegx/tilegx.c: Moved to...
26729 * config/tilegx/tilegx.cc: ...here.
26730 * config/tilepro/mul-tables.c: Moved to...
26731 * config/tilepro/mul-tables.cc: ...here.
26732 * config/tilepro/tilepro-c.c: Moved to...
26733 * config/tilepro/tilepro-c.cc: ...here.
26734 * config/tilepro/tilepro.c: Moved to...
26735 * config/tilepro/tilepro.cc: ...here.
26736 * config/v850/v850-c.c: Moved to...
26737 * config/v850/v850-c.cc: ...here.
26738 * config/v850/v850.c: Moved to...
26739 * config/v850/v850.cc: ...here.
26740 * config/vax/vax.c: Moved to...
26741 * config/vax/vax.cc: ...here.
26742 * config/visium/visium.c: Moved to...
26743 * config/visium/visium.cc: ...here.
26744 * config/vms/vms-c.c: Moved to...
26745 * config/vms/vms-c.cc: ...here.
26746 * config/vms/vms-f.c: Moved to...
26747 * config/vms/vms-f.cc: ...here.
26748 * config/vms/vms.c: Moved to...
26749 * config/vms/vms.cc: ...here.
26750 * config/vxworks-c.c: Moved to...
26751 * config/vxworks-c.cc: ...here.
26752 * config/vxworks.c: Moved to...
26753 * config/vxworks.cc: ...here.
26754 * config/winnt-c.c: Moved to...
26755 * config/winnt-c.cc: ...here.
26756 * config/xtensa/xtensa.c: Moved to...
26757 * config/xtensa/xtensa.cc: ...here.
26758 * context.c: Moved to...
26759 * context.cc: ...here.
26760 * convert.c: Moved to...
26761 * convert.cc: ...here.
26762 * coverage.c: Moved to...
26763 * coverage.cc: ...here.
26764 * cppbuiltin.c: Moved to...
26765 * cppbuiltin.cc: ...here.
26766 * cppdefault.c: Moved to...
26767 * cppdefault.cc: ...here.
26768 * cprop.c: Moved to...
26769 * cprop.cc: ...here.
26770 * cse.c: Moved to...
26772 * cselib.c: Moved to...
26773 * cselib.cc: ...here.
26774 * ctfc.c: Moved to...
26775 * ctfc.cc: ...here.
26776 * ctfout.c: Moved to...
26777 * ctfout.cc: ...here.
26778 * data-streamer-in.c: Moved to...
26779 * data-streamer-in.cc: ...here.
26780 * data-streamer-out.c: Moved to...
26781 * data-streamer-out.cc: ...here.
26782 * data-streamer.c: Moved to...
26783 * data-streamer.cc: ...here.
26784 * dbgcnt.c: Moved to...
26785 * dbgcnt.cc: ...here.
26786 * dbxout.c: Moved to...
26787 * dbxout.cc: ...here.
26788 * dce.c: Moved to...
26790 * ddg.c: Moved to...
26792 * debug.c: Moved to...
26793 * debug.cc: ...here.
26794 * df-core.c: Moved to...
26795 * df-core.cc: ...here.
26796 * df-problems.c: Moved to...
26797 * df-problems.cc: ...here.
26798 * df-scan.c: Moved to...
26799 * df-scan.cc: ...here.
26800 * dfp.c: Moved to...
26802 * diagnostic-color.c: Moved to...
26803 * diagnostic-color.cc: ...here.
26804 * diagnostic-show-locus.c: Moved to...
26805 * diagnostic-show-locus.cc: ...here.
26806 * diagnostic-spec.c: Moved to...
26807 * diagnostic-spec.cc: ...here.
26808 * diagnostic.c: Moved to...
26809 * diagnostic.cc: ...here.
26810 * dojump.c: Moved to...
26811 * dojump.cc: ...here.
26812 * dominance.c: Moved to...
26813 * dominance.cc: ...here.
26814 * domwalk.c: Moved to...
26815 * domwalk.cc: ...here.
26816 * double-int.c: Moved to...
26817 * double-int.cc: ...here.
26818 * dse.c: Moved to...
26820 * dumpfile.c: Moved to...
26821 * dumpfile.cc: ...here.
26822 * dwarf2asm.c: Moved to...
26823 * dwarf2asm.cc: ...here.
26824 * dwarf2cfi.c: Moved to...
26825 * dwarf2cfi.cc: ...here.
26826 * dwarf2ctf.c: Moved to...
26827 * dwarf2ctf.cc: ...here.
26828 * dwarf2out.c: Moved to...
26829 * dwarf2out.cc: ...here.
26830 * early-remat.c: Moved to...
26831 * early-remat.cc: ...here.
26832 * edit-context.c: Moved to...
26833 * edit-context.cc: ...here.
26834 * emit-rtl.c: Moved to...
26835 * emit-rtl.cc: ...here.
26836 * errors.c: Moved to...
26837 * errors.cc: ...here.
26838 * et-forest.c: Moved to...
26839 * et-forest.cc: ...here.
26840 * except.c: Moved to...
26841 * except.cc: ...here.
26842 * explow.c: Moved to...
26843 * explow.cc: ...here.
26844 * expmed.c: Moved to...
26845 * expmed.cc: ...here.
26846 * expr.c: Moved to...
26847 * expr.cc: ...here.
26848 * fibonacci_heap.c: Moved to...
26849 * fibonacci_heap.cc: ...here.
26850 * file-find.c: Moved to...
26851 * file-find.cc: ...here.
26852 * file-prefix-map.c: Moved to...
26853 * file-prefix-map.cc: ...here.
26854 * final.c: Moved to...
26855 * final.cc: ...here.
26856 * fixed-value.c: Moved to...
26857 * fixed-value.cc: ...here.
26858 * fold-const-call.c: Moved to...
26859 * fold-const-call.cc: ...here.
26860 * fold-const.c: Moved to...
26861 * fold-const.cc: ...here.
26862 * fp-test.c: Moved to...
26863 * fp-test.cc: ...here.
26864 * function-tests.c: Moved to...
26865 * function-tests.cc: ...here.
26866 * function.c: Moved to...
26867 * function.cc: ...here.
26868 * fwprop.c: Moved to...
26869 * fwprop.cc: ...here.
26870 * gcc-ar.c: Moved to...
26871 * gcc-ar.cc: ...here.
26872 * gcc-main.c: Moved to...
26873 * gcc-main.cc: ...here.
26874 * gcc-rich-location.c: Moved to...
26875 * gcc-rich-location.cc: ...here.
26876 * gcc.c: Moved to...
26878 * gcov-dump.c: Moved to...
26879 * gcov-dump.cc: ...here.
26880 * gcov-io.c: Moved to...
26881 * gcov-io.cc: ...here.
26882 * gcov-tool.c: Moved to...
26883 * gcov-tool.cc: ...here.
26884 * gcov.c: Moved to...
26885 * gcov.cc: ...here.
26886 * gcse-common.c: Moved to...
26887 * gcse-common.cc: ...here.
26888 * gcse.c: Moved to...
26889 * gcse.cc: ...here.
26890 * genattr-common.c: Moved to...
26891 * genattr-common.cc: ...here.
26892 * genattr.c: Moved to...
26893 * genattr.cc: ...here.
26894 * genattrtab.c: Moved to...
26895 * genattrtab.cc: ...here.
26896 * genautomata.c: Moved to...
26897 * genautomata.cc: ...here.
26898 * gencfn-macros.c: Moved to...
26899 * gencfn-macros.cc: ...here.
26900 * gencheck.c: Moved to...
26901 * gencheck.cc: ...here.
26902 * genchecksum.c: Moved to...
26903 * genchecksum.cc: ...here.
26904 * gencodes.c: Moved to...
26905 * gencodes.cc: ...here.
26906 * genconditions.c: Moved to...
26907 * genconditions.cc: ...here.
26908 * genconfig.c: Moved to...
26909 * genconfig.cc: ...here.
26910 * genconstants.c: Moved to...
26911 * genconstants.cc: ...here.
26912 * genemit.c: Moved to...
26913 * genemit.cc: ...here.
26914 * genenums.c: Moved to...
26915 * genenums.cc: ...here.
26916 * generic-match-head.c: Moved to...
26917 * generic-match-head.cc: ...here.
26918 * genextract.c: Moved to...
26919 * genextract.cc: ...here.
26920 * genflags.c: Moved to...
26921 * genflags.cc: ...here.
26922 * gengenrtl.c: Moved to...
26923 * gengenrtl.cc: ...here.
26924 * gengtype-parse.c: Moved to...
26925 * gengtype-parse.cc: ...here.
26926 * gengtype-state.c: Moved to...
26927 * gengtype-state.cc: ...here.
26928 * gengtype.c: Moved to...
26929 * gengtype.cc: ...here.
26930 * genhooks.c: Moved to...
26931 * genhooks.cc: ...here.
26932 * genmatch.c: Moved to...
26933 * genmatch.cc: ...here.
26934 * genmddeps.c: Moved to...
26935 * genmddeps.cc: ...here.
26936 * genmddump.c: Moved to...
26937 * genmddump.cc: ...here.
26938 * genmodes.c: Moved to...
26939 * genmodes.cc: ...here.
26940 * genopinit.c: Moved to...
26941 * genopinit.cc: ...here.
26942 * genoutput.c: Moved to...
26943 * genoutput.cc: ...here.
26944 * genpeep.c: Moved to...
26945 * genpeep.cc: ...here.
26946 * genpreds.c: Moved to...
26947 * genpreds.cc: ...here.
26948 * genrecog.c: Moved to...
26949 * genrecog.cc: ...here.
26950 * gensupport.c: Moved to...
26951 * gensupport.cc: ...here.
26952 * gentarget-def.c: Moved to...
26953 * gentarget-def.cc: ...here.
26954 * genversion.c: Moved to...
26955 * genversion.cc: ...here.
26956 * ggc-common.c: Moved to...
26957 * ggc-common.cc: ...here.
26958 * ggc-none.c: Moved to...
26959 * ggc-none.cc: ...here.
26960 * ggc-page.c: Moved to...
26961 * ggc-page.cc: ...here.
26962 * ggc-tests.c: Moved to...
26963 * ggc-tests.cc: ...here.
26964 * gimple-builder.c: Moved to...
26965 * gimple-builder.cc: ...here.
26966 * gimple-expr.c: Moved to...
26967 * gimple-expr.cc: ...here.
26968 * gimple-fold.c: Moved to...
26969 * gimple-fold.cc: ...here.
26970 * gimple-iterator.c: Moved to...
26971 * gimple-iterator.cc: ...here.
26972 * gimple-laddress.c: Moved to...
26973 * gimple-laddress.cc: ...here.
26974 * gimple-loop-jam.c: Moved to...
26975 * gimple-loop-jam.cc: ...here.
26976 * gimple-low.c: Moved to...
26977 * gimple-low.cc: ...here.
26978 * gimple-match-head.c: Moved to...
26979 * gimple-match-head.cc: ...here.
26980 * gimple-pretty-print.c: Moved to...
26981 * gimple-pretty-print.cc: ...here.
26982 * gimple-ssa-backprop.c: Moved to...
26983 * gimple-ssa-backprop.cc: ...here.
26984 * gimple-ssa-evrp-analyze.c: Moved to...
26985 * gimple-ssa-evrp-analyze.cc: ...here.
26986 * gimple-ssa-evrp.c: Moved to...
26987 * gimple-ssa-evrp.cc: ...here.
26988 * gimple-ssa-isolate-paths.c: Moved to...
26989 * gimple-ssa-isolate-paths.cc: ...here.
26990 * gimple-ssa-nonnull-compare.c: Moved to...
26991 * gimple-ssa-nonnull-compare.cc: ...here.
26992 * gimple-ssa-split-paths.c: Moved to...
26993 * gimple-ssa-split-paths.cc: ...here.
26994 * gimple-ssa-sprintf.c: Moved to...
26995 * gimple-ssa-sprintf.cc: ...here.
26996 * gimple-ssa-store-merging.c: Moved to...
26997 * gimple-ssa-store-merging.cc: ...here.
26998 * gimple-ssa-strength-reduction.c: Moved to...
26999 * gimple-ssa-strength-reduction.cc: ...here.
27000 * gimple-ssa-warn-alloca.c: Moved to...
27001 * gimple-ssa-warn-alloca.cc: ...here.
27002 * gimple-ssa-warn-restrict.c: Moved to...
27003 * gimple-ssa-warn-restrict.cc: ...here.
27004 * gimple-streamer-in.c: Moved to...
27005 * gimple-streamer-in.cc: ...here.
27006 * gimple-streamer-out.c: Moved to...
27007 * gimple-streamer-out.cc: ...here.
27008 * gimple-walk.c: Moved to...
27009 * gimple-walk.cc: ...here.
27010 * gimple-warn-recursion.c: Moved to...
27011 * gimple-warn-recursion.cc: ...here.
27012 * gimple.c: Moved to...
27013 * gimple.cc: ...here.
27014 * gimplify-me.c: Moved to...
27015 * gimplify-me.cc: ...here.
27016 * gimplify.c: Moved to...
27017 * gimplify.cc: ...here.
27018 * godump.c: Moved to...
27019 * godump.cc: ...here.
27020 * graph.c: Moved to...
27021 * graph.cc: ...here.
27022 * graphds.c: Moved to...
27023 * graphds.cc: ...here.
27024 * graphite-dependences.c: Moved to...
27025 * graphite-dependences.cc: ...here.
27026 * graphite-isl-ast-to-gimple.c: Moved to...
27027 * graphite-isl-ast-to-gimple.cc: ...here.
27028 * graphite-optimize-isl.c: Moved to...
27029 * graphite-optimize-isl.cc: ...here.
27030 * graphite-poly.c: Moved to...
27031 * graphite-poly.cc: ...here.
27032 * graphite-scop-detection.c: Moved to...
27033 * graphite-scop-detection.cc: ...here.
27034 * graphite-sese-to-poly.c: Moved to...
27035 * graphite-sese-to-poly.cc: ...here.
27036 * graphite.c: Moved to...
27037 * graphite.cc: ...here.
27038 * haifa-sched.c: Moved to...
27039 * haifa-sched.cc: ...here.
27040 * hash-map-tests.c: Moved to...
27041 * hash-map-tests.cc: ...here.
27042 * hash-set-tests.c: Moved to...
27043 * hash-set-tests.cc: ...here.
27044 * hash-table.c: Moved to...
27045 * hash-table.cc: ...here.
27046 * hooks.c: Moved to...
27047 * hooks.cc: ...here.
27048 * host-default.c: Moved to...
27049 * host-default.cc: ...here.
27050 * hw-doloop.c: Moved to...
27051 * hw-doloop.cc: ...here.
27052 * hwint.c: Moved to...
27053 * hwint.cc: ...here.
27054 * ifcvt.c: Moved to...
27055 * ifcvt.cc: ...here.
27056 * inchash.c: Moved to...
27057 * inchash.cc: ...here.
27058 * incpath.c: Moved to...
27059 * incpath.cc: ...here.
27060 * init-regs.c: Moved to...
27061 * init-regs.cc: ...here.
27062 * input.c: Moved to...
27063 * input.cc: ...here.
27064 * internal-fn.c: Moved to...
27065 * internal-fn.cc: ...here.
27066 * intl.c: Moved to...
27067 * intl.cc: ...here.
27068 * ipa-comdats.c: Moved to...
27069 * ipa-comdats.cc: ...here.
27070 * ipa-cp.c: Moved to...
27071 * ipa-cp.cc: ...here.
27072 * ipa-devirt.c: Moved to...
27073 * ipa-devirt.cc: ...here.
27074 * ipa-fnsummary.c: Moved to...
27075 * ipa-fnsummary.cc: ...here.
27076 * ipa-icf-gimple.c: Moved to...
27077 * ipa-icf-gimple.cc: ...here.
27078 * ipa-icf.c: Moved to...
27079 * ipa-icf.cc: ...here.
27080 * ipa-inline-analysis.c: Moved to...
27081 * ipa-inline-analysis.cc: ...here.
27082 * ipa-inline-transform.c: Moved to...
27083 * ipa-inline-transform.cc: ...here.
27084 * ipa-inline.c: Moved to...
27085 * ipa-inline.cc: ...here.
27086 * ipa-modref-tree.c: Moved to...
27087 * ipa-modref-tree.cc: ...here.
27088 * ipa-modref.c: Moved to...
27089 * ipa-modref.cc: ...here.
27090 * ipa-param-manipulation.c: Moved to...
27091 * ipa-param-manipulation.cc: ...here.
27092 * ipa-polymorphic-call.c: Moved to...
27093 * ipa-polymorphic-call.cc: ...here.
27094 * ipa-predicate.c: Moved to...
27095 * ipa-predicate.cc: ...here.
27096 * ipa-profile.c: Moved to...
27097 * ipa-profile.cc: ...here.
27098 * ipa-prop.c: Moved to...
27099 * ipa-prop.cc: ...here.
27100 * ipa-pure-const.c: Moved to...
27101 * ipa-pure-const.cc: ...here.
27102 * ipa-ref.c: Moved to...
27103 * ipa-ref.cc: ...here.
27104 * ipa-reference.c: Moved to...
27105 * ipa-reference.cc: ...here.
27106 * ipa-split.c: Moved to...
27107 * ipa-split.cc: ...here.
27108 * ipa-sra.c: Moved to...
27109 * ipa-sra.cc: ...here.
27110 * ipa-utils.c: Moved to...
27111 * ipa-utils.cc: ...here.
27112 * ipa-visibility.c: Moved to...
27113 * ipa-visibility.cc: ...here.
27114 * ipa.c: Moved to...
27116 * ira-build.c: Moved to...
27117 * ira-build.cc: ...here.
27118 * ira-color.c: Moved to...
27119 * ira-color.cc: ...here.
27120 * ira-conflicts.c: Moved to...
27121 * ira-conflicts.cc: ...here.
27122 * ira-costs.c: Moved to...
27123 * ira-costs.cc: ...here.
27124 * ira-emit.c: Moved to...
27125 * ira-emit.cc: ...here.
27126 * ira-lives.c: Moved to...
27127 * ira-lives.cc: ...here.
27128 * ira.c: Moved to...
27130 * jump.c: Moved to...
27131 * jump.cc: ...here.
27132 * langhooks.c: Moved to...
27133 * langhooks.cc: ...here.
27134 * lcm.c: Moved to...
27136 * lists.c: Moved to...
27137 * lists.cc: ...here.
27138 * loop-doloop.c: Moved to...
27139 * loop-doloop.cc: ...here.
27140 * loop-init.c: Moved to...
27141 * loop-init.cc: ...here.
27142 * loop-invariant.c: Moved to...
27143 * loop-invariant.cc: ...here.
27144 * loop-iv.c: Moved to...
27145 * loop-iv.cc: ...here.
27146 * loop-unroll.c: Moved to...
27147 * loop-unroll.cc: ...here.
27148 * lower-subreg.c: Moved to...
27149 * lower-subreg.cc: ...here.
27150 * lra-assigns.c: Moved to...
27151 * lra-assigns.cc: ...here.
27152 * lra-coalesce.c: Moved to...
27153 * lra-coalesce.cc: ...here.
27154 * lra-constraints.c: Moved to...
27155 * lra-constraints.cc: ...here.
27156 * lra-eliminations.c: Moved to...
27157 * lra-eliminations.cc: ...here.
27158 * lra-lives.c: Moved to...
27159 * lra-lives.cc: ...here.
27160 * lra-remat.c: Moved to...
27161 * lra-remat.cc: ...here.
27162 * lra-spills.c: Moved to...
27163 * lra-spills.cc: ...here.
27164 * lra.c: Moved to...
27166 * lto-cgraph.c: Moved to...
27167 * lto-cgraph.cc: ...here.
27168 * lto-compress.c: Moved to...
27169 * lto-compress.cc: ...here.
27170 * lto-opts.c: Moved to...
27171 * lto-opts.cc: ...here.
27172 * lto-section-in.c: Moved to...
27173 * lto-section-in.cc: ...here.
27174 * lto-section-out.c: Moved to...
27175 * lto-section-out.cc: ...here.
27176 * lto-streamer-in.c: Moved to...
27177 * lto-streamer-in.cc: ...here.
27178 * lto-streamer-out.c: Moved to...
27179 * lto-streamer-out.cc: ...here.
27180 * lto-streamer.c: Moved to...
27181 * lto-streamer.cc: ...here.
27182 * lto-wrapper.c: Moved to...
27183 * lto-wrapper.cc: ...here.
27184 * main.c: Moved to...
27185 * main.cc: ...here.
27186 * mcf.c: Moved to...
27188 * mode-switching.c: Moved to...
27189 * mode-switching.cc: ...here.
27190 * modulo-sched.c: Moved to...
27191 * modulo-sched.cc: ...here.
27192 * multiple_target.c: Moved to...
27193 * multiple_target.cc: ...here.
27194 * omp-expand.c: Moved to...
27195 * omp-expand.cc: ...here.
27196 * omp-general.c: Moved to...
27197 * omp-general.cc: ...here.
27198 * omp-low.c: Moved to...
27199 * omp-low.cc: ...here.
27200 * omp-offload.c: Moved to...
27201 * omp-offload.cc: ...here.
27202 * omp-simd-clone.c: Moved to...
27203 * omp-simd-clone.cc: ...here.
27204 * opt-suggestions.c: Moved to...
27205 * opt-suggestions.cc: ...here.
27206 * optabs-libfuncs.c: Moved to...
27207 * optabs-libfuncs.cc: ...here.
27208 * optabs-query.c: Moved to...
27209 * optabs-query.cc: ...here.
27210 * optabs-tree.c: Moved to...
27211 * optabs-tree.cc: ...here.
27212 * optabs.c: Moved to...
27213 * optabs.cc: ...here.
27214 * opts-common.c: Moved to...
27215 * opts-common.cc: ...here.
27216 * opts-global.c: Moved to...
27217 * opts-global.cc: ...here.
27218 * opts.c: Moved to...
27219 * opts.cc: ...here.
27220 * passes.c: Moved to...
27221 * passes.cc: ...here.
27222 * plugin.c: Moved to...
27223 * plugin.cc: ...here.
27224 * postreload-gcse.c: Moved to...
27225 * postreload-gcse.cc: ...here.
27226 * postreload.c: Moved to...
27227 * postreload.cc: ...here.
27228 * predict.c: Moved to...
27229 * predict.cc: ...here.
27230 * prefix.c: Moved to...
27231 * prefix.cc: ...here.
27232 * pretty-print.c: Moved to...
27233 * pretty-print.cc: ...here.
27234 * print-rtl-function.c: Moved to...
27235 * print-rtl-function.cc: ...here.
27236 * print-rtl.c: Moved to...
27237 * print-rtl.cc: ...here.
27238 * print-tree.c: Moved to...
27239 * print-tree.cc: ...here.
27240 * profile-count.c: Moved to...
27241 * profile-count.cc: ...here.
27242 * profile.c: Moved to...
27243 * profile.cc: ...here.
27244 * read-md.c: Moved to...
27245 * read-md.cc: ...here.
27246 * read-rtl-function.c: Moved to...
27247 * read-rtl-function.cc: ...here.
27248 * read-rtl.c: Moved to...
27249 * read-rtl.cc: ...here.
27250 * real.c: Moved to...
27251 * real.cc: ...here.
27252 * realmpfr.c: Moved to...
27253 * realmpfr.cc: ...here.
27254 * recog.c: Moved to...
27255 * recog.cc: ...here.
27256 * ree.c: Moved to...
27258 * reg-stack.c: Moved to...
27259 * reg-stack.cc: ...here.
27260 * regcprop.c: Moved to...
27261 * regcprop.cc: ...here.
27262 * reginfo.c: Moved to...
27263 * reginfo.cc: ...here.
27264 * regrename.c: Moved to...
27265 * regrename.cc: ...here.
27266 * regstat.c: Moved to...
27267 * regstat.cc: ...here.
27268 * reload.c: Moved to...
27269 * reload.cc: ...here.
27270 * reload1.c: Moved to...
27271 * reload1.cc: ...here.
27272 * reorg.c: Moved to...
27273 * reorg.cc: ...here.
27274 * resource.c: Moved to...
27275 * resource.cc: ...here.
27276 * rtl-error.c: Moved to...
27277 * rtl-error.cc: ...here.
27278 * rtl-tests.c: Moved to...
27279 * rtl-tests.cc: ...here.
27280 * rtl.c: Moved to...
27282 * rtlanal.c: Moved to...
27283 * rtlanal.cc: ...here.
27284 * rtlhash.c: Moved to...
27285 * rtlhash.cc: ...here.
27286 * rtlhooks.c: Moved to...
27287 * rtlhooks.cc: ...here.
27288 * rtx-vector-builder.c: Moved to...
27289 * rtx-vector-builder.cc: ...here.
27290 * run-rtl-passes.c: Moved to...
27291 * run-rtl-passes.cc: ...here.
27292 * sancov.c: Moved to...
27293 * sancov.cc: ...here.
27294 * sanopt.c: Moved to...
27295 * sanopt.cc: ...here.
27296 * sbitmap.c: Moved to...
27297 * sbitmap.cc: ...here.
27298 * sched-deps.c: Moved to...
27299 * sched-deps.cc: ...here.
27300 * sched-ebb.c: Moved to...
27301 * sched-ebb.cc: ...here.
27302 * sched-rgn.c: Moved to...
27303 * sched-rgn.cc: ...here.
27304 * sel-sched-dump.c: Moved to...
27305 * sel-sched-dump.cc: ...here.
27306 * sel-sched-ir.c: Moved to...
27307 * sel-sched-ir.cc: ...here.
27308 * sel-sched.c: Moved to...
27309 * sel-sched.cc: ...here.
27310 * selftest-diagnostic.c: Moved to...
27311 * selftest-diagnostic.cc: ...here.
27312 * selftest-rtl.c: Moved to...
27313 * selftest-rtl.cc: ...here.
27314 * selftest-run-tests.c: Moved to...
27315 * selftest-run-tests.cc: ...here.
27316 * selftest.c: Moved to...
27317 * selftest.cc: ...here.
27318 * sese.c: Moved to...
27319 * sese.cc: ...here.
27320 * shrink-wrap.c: Moved to...
27321 * shrink-wrap.cc: ...here.
27322 * simplify-rtx.c: Moved to...
27323 * simplify-rtx.cc: ...here.
27324 * sparseset.c: Moved to...
27325 * sparseset.cc: ...here.
27326 * spellcheck-tree.c: Moved to...
27327 * spellcheck-tree.cc: ...here.
27328 * spellcheck.c: Moved to...
27329 * spellcheck.cc: ...here.
27330 * sreal.c: Moved to...
27331 * sreal.cc: ...here.
27332 * stack-ptr-mod.c: Moved to...
27333 * stack-ptr-mod.cc: ...here.
27334 * statistics.c: Moved to...
27335 * statistics.cc: ...here.
27336 * stmt.c: Moved to...
27337 * stmt.cc: ...here.
27338 * stor-layout.c: Moved to...
27339 * stor-layout.cc: ...here.
27340 * store-motion.c: Moved to...
27341 * store-motion.cc: ...here.
27342 * streamer-hooks.c: Moved to...
27343 * streamer-hooks.cc: ...here.
27344 * stringpool.c: Moved to...
27345 * stringpool.cc: ...here.
27346 * substring-locations.c: Moved to...
27347 * substring-locations.cc: ...here.
27348 * symtab.c: Moved to...
27349 * symtab.cc: ...here.
27350 * target-globals.c: Moved to...
27351 * target-globals.cc: ...here.
27352 * targhooks.c: Moved to...
27353 * targhooks.cc: ...here.
27354 * timevar.c: Moved to...
27355 * timevar.cc: ...here.
27356 * toplev.c: Moved to...
27357 * toplev.cc: ...here.
27358 * tracer.c: Moved to...
27359 * tracer.cc: ...here.
27360 * trans-mem.c: Moved to...
27361 * trans-mem.cc: ...here.
27362 * tree-affine.c: Moved to...
27363 * tree-affine.cc: ...here.
27364 * tree-call-cdce.c: Moved to...
27365 * tree-call-cdce.cc: ...here.
27366 * tree-cfg.c: Moved to...
27367 * tree-cfg.cc: ...here.
27368 * tree-cfgcleanup.c: Moved to...
27369 * tree-cfgcleanup.cc: ...here.
27370 * tree-chrec.c: Moved to...
27371 * tree-chrec.cc: ...here.
27372 * tree-complex.c: Moved to...
27373 * tree-complex.cc: ...here.
27374 * tree-data-ref.c: Moved to...
27375 * tree-data-ref.cc: ...here.
27376 * tree-dfa.c: Moved to...
27377 * tree-dfa.cc: ...here.
27378 * tree-diagnostic.c: Moved to...
27379 * tree-diagnostic.cc: ...here.
27380 * tree-dump.c: Moved to...
27381 * tree-dump.cc: ...here.
27382 * tree-eh.c: Moved to...
27383 * tree-eh.cc: ...here.
27384 * tree-emutls.c: Moved to...
27385 * tree-emutls.cc: ...here.
27386 * tree-if-conv.c: Moved to...
27387 * tree-if-conv.cc: ...here.
27388 * tree-inline.c: Moved to...
27389 * tree-inline.cc: ...here.
27390 * tree-into-ssa.c: Moved to...
27391 * tree-into-ssa.cc: ...here.
27392 * tree-iterator.c: Moved to...
27393 * tree-iterator.cc: ...here.
27394 * tree-loop-distribution.c: Moved to...
27395 * tree-loop-distribution.cc: ...here.
27396 * tree-nested.c: Moved to...
27397 * tree-nested.cc: ...here.
27398 * tree-nrv.c: Moved to...
27399 * tree-nrv.cc: ...here.
27400 * tree-object-size.c: Moved to...
27401 * tree-object-size.cc: ...here.
27402 * tree-outof-ssa.c: Moved to...
27403 * tree-outof-ssa.cc: ...here.
27404 * tree-parloops.c: Moved to...
27405 * tree-parloops.cc: ...here.
27406 * tree-phinodes.c: Moved to...
27407 * tree-phinodes.cc: ...here.
27408 * tree-predcom.c: Moved to...
27409 * tree-predcom.cc: ...here.
27410 * tree-pretty-print.c: Moved to...
27411 * tree-pretty-print.cc: ...here.
27412 * tree-profile.c: Moved to...
27413 * tree-profile.cc: ...here.
27414 * tree-scalar-evolution.c: Moved to...
27415 * tree-scalar-evolution.cc: ...here.
27416 * tree-sra.c: Moved to...
27417 * tree-sra.cc: ...here.
27418 * tree-ssa-address.c: Moved to...
27419 * tree-ssa-address.cc: ...here.
27420 * tree-ssa-alias.c: Moved to...
27421 * tree-ssa-alias.cc: ...here.
27422 * tree-ssa-ccp.c: Moved to...
27423 * tree-ssa-ccp.cc: ...here.
27424 * tree-ssa-coalesce.c: Moved to...
27425 * tree-ssa-coalesce.cc: ...here.
27426 * tree-ssa-copy.c: Moved to...
27427 * tree-ssa-copy.cc: ...here.
27428 * tree-ssa-dce.c: Moved to...
27429 * tree-ssa-dce.cc: ...here.
27430 * tree-ssa-dom.c: Moved to...
27431 * tree-ssa-dom.cc: ...here.
27432 * tree-ssa-dse.c: Moved to...
27433 * tree-ssa-dse.cc: ...here.
27434 * tree-ssa-forwprop.c: Moved to...
27435 * tree-ssa-forwprop.cc: ...here.
27436 * tree-ssa-ifcombine.c: Moved to...
27437 * tree-ssa-ifcombine.cc: ...here.
27438 * tree-ssa-live.c: Moved to...
27439 * tree-ssa-live.cc: ...here.
27440 * tree-ssa-loop-ch.c: Moved to...
27441 * tree-ssa-loop-ch.cc: ...here.
27442 * tree-ssa-loop-im.c: Moved to...
27443 * tree-ssa-loop-im.cc: ...here.
27444 * tree-ssa-loop-ivcanon.c: Moved to...
27445 * tree-ssa-loop-ivcanon.cc: ...here.
27446 * tree-ssa-loop-ivopts.c: Moved to...
27447 * tree-ssa-loop-ivopts.cc: ...here.
27448 * tree-ssa-loop-manip.c: Moved to...
27449 * tree-ssa-loop-manip.cc: ...here.
27450 * tree-ssa-loop-niter.c: Moved to...
27451 * tree-ssa-loop-niter.cc: ...here.
27452 * tree-ssa-loop-prefetch.c: Moved to...
27453 * tree-ssa-loop-prefetch.cc: ...here.
27454 * tree-ssa-loop-split.c: Moved to...
27455 * tree-ssa-loop-split.cc: ...here.
27456 * tree-ssa-loop-unswitch.c: Moved to...
27457 * tree-ssa-loop-unswitch.cc: ...here.
27458 * tree-ssa-loop.c: Moved to...
27459 * tree-ssa-loop.cc: ...here.
27460 * tree-ssa-math-opts.c: Moved to...
27461 * tree-ssa-math-opts.cc: ...here.
27462 * tree-ssa-operands.c: Moved to...
27463 * tree-ssa-operands.cc: ...here.
27464 * tree-ssa-phiopt.c: Moved to...
27465 * tree-ssa-phiopt.cc: ...here.
27466 * tree-ssa-phiprop.c: Moved to...
27467 * tree-ssa-phiprop.cc: ...here.
27468 * tree-ssa-pre.c: Moved to...
27469 * tree-ssa-pre.cc: ...here.
27470 * tree-ssa-propagate.c: Moved to...
27471 * tree-ssa-propagate.cc: ...here.
27472 * tree-ssa-reassoc.c: Moved to...
27473 * tree-ssa-reassoc.cc: ...here.
27474 * tree-ssa-sccvn.c: Moved to...
27475 * tree-ssa-sccvn.cc: ...here.
27476 * tree-ssa-scopedtables.c: Moved to...
27477 * tree-ssa-scopedtables.cc: ...here.
27478 * tree-ssa-sink.c: Moved to...
27479 * tree-ssa-sink.cc: ...here.
27480 * tree-ssa-strlen.c: Moved to...
27481 * tree-ssa-strlen.cc: ...here.
27482 * tree-ssa-structalias.c: Moved to...
27483 * tree-ssa-structalias.cc: ...here.
27484 * tree-ssa-tail-merge.c: Moved to...
27485 * tree-ssa-tail-merge.cc: ...here.
27486 * tree-ssa-ter.c: Moved to...
27487 * tree-ssa-ter.cc: ...here.
27488 * tree-ssa-threadbackward.c: Moved to...
27489 * tree-ssa-threadbackward.cc: ...here.
27490 * tree-ssa-threadedge.c: Moved to...
27491 * tree-ssa-threadedge.cc: ...here.
27492 * tree-ssa-threadupdate.c: Moved to...
27493 * tree-ssa-threadupdate.cc: ...here.
27494 * tree-ssa-uncprop.c: Moved to...
27495 * tree-ssa-uncprop.cc: ...here.
27496 * tree-ssa-uninit.c: Moved to...
27497 * tree-ssa-uninit.cc: ...here.
27498 * tree-ssa.c: Moved to...
27499 * tree-ssa.cc: ...here.
27500 * tree-ssanames.c: Moved to...
27501 * tree-ssanames.cc: ...here.
27502 * tree-stdarg.c: Moved to...
27503 * tree-stdarg.cc: ...here.
27504 * tree-streamer-in.c: Moved to...
27505 * tree-streamer-in.cc: ...here.
27506 * tree-streamer-out.c: Moved to...
27507 * tree-streamer-out.cc: ...here.
27508 * tree-streamer.c: Moved to...
27509 * tree-streamer.cc: ...here.
27510 * tree-switch-conversion.c: Moved to...
27511 * tree-switch-conversion.cc: ...here.
27512 * tree-tailcall.c: Moved to...
27513 * tree-tailcall.cc: ...here.
27514 * tree-vect-data-refs.c: Moved to...
27515 * tree-vect-data-refs.cc: ...here.
27516 * tree-vect-generic.c: Moved to...
27517 * tree-vect-generic.cc: ...here.
27518 * tree-vect-loop-manip.c: Moved to...
27519 * tree-vect-loop-manip.cc: ...here.
27520 * tree-vect-loop.c: Moved to...
27521 * tree-vect-loop.cc: ...here.
27522 * tree-vect-patterns.c: Moved to...
27523 * tree-vect-patterns.cc: ...here.
27524 * tree-vect-slp-patterns.c: Moved to...
27525 * tree-vect-slp-patterns.cc: ...here.
27526 * tree-vect-slp.c: Moved to...
27527 * tree-vect-slp.cc: ...here.
27528 * tree-vect-stmts.c: Moved to...
27529 * tree-vect-stmts.cc: ...here.
27530 * tree-vector-builder.c: Moved to...
27531 * tree-vector-builder.cc: ...here.
27532 * tree-vectorizer.c: Moved to...
27533 * tree-vectorizer.cc: ...here.
27534 * tree-vrp.c: Moved to...
27535 * tree-vrp.cc: ...here.
27536 * tree.c: Moved to...
27537 * tree.cc: ...here.
27538 * tsan.c: Moved to...
27539 * tsan.cc: ...here.
27540 * typed-splay-tree.c: Moved to...
27541 * typed-splay-tree.cc: ...here.
27542 * ubsan.c: Moved to...
27543 * ubsan.cc: ...here.
27544 * valtrack.c: Moved to...
27545 * valtrack.cc: ...here.
27546 * value-prof.c: Moved to...
27547 * value-prof.cc: ...here.
27548 * var-tracking.c: Moved to...
27549 * var-tracking.cc: ...here.
27550 * varasm.c: Moved to...
27551 * varasm.cc: ...here.
27552 * varpool.c: Moved to...
27553 * varpool.cc: ...here.
27554 * vec-perm-indices.c: Moved to...
27555 * vec-perm-indices.cc: ...here.
27556 * vec.c: Moved to...
27558 * vmsdbgout.c: Moved to...
27559 * vmsdbgout.cc: ...here.
27560 * vr-values.c: Moved to...
27561 * vr-values.cc: ...here.
27562 * vtable-verify.c: Moved to...
27563 * vtable-verify.cc: ...here.
27564 * web.c: Moved to...
27566 * xcoffout.c: Moved to...
27567 * xcoffout.cc: ...here.
27569 2022-01-17 qing zhao <qing.zhao@oracle.com>
27571 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
27572 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
27573 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
27575 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
27576 (warn_uninitialized_vars): Likewise.
27577 (warn_uninitialized_phi): Likewise.
27579 2022-01-17 Jason Merrill <jason@redhat.com>
27581 * diagnostic.h (struct diagnostic_context): Add includes_seen.
27582 * diagnostic.c (diagnostic_initialize): Initialize it.
27583 (diagnostic_finish): Clean it up.
27584 (includes_seen): New function.
27585 (diagnostic_report_current_module): Use it.
27587 2022-01-17 Richard Biener <rguenther@suse.de>
27589 PR middle-end/101292
27590 * diagnostic-spec.c (copy_warning): Make sure to not
27591 reference old hashtable content on possible resize.
27592 * warning-control.cc (copy_warning): Likewise.
27594 2022-01-17 Jakub Jelinek <jakub@redhat.com>
27597 * tree-cfg.h (cond_only_block_p): Declare.
27598 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
27599 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
27600 * optabs.def (spaceship_optab): New optab.
27601 * internal-fn.def (SPACESHIP): New internal function.
27602 * internal-fn.h (expand_SPACESHIP): Declare.
27603 * internal-fn.c (expand_PHI): Formatting fix.
27604 (expand_SPACESHIP): New function.
27605 * tree-ssa-math-opts.c (optimize_spaceship): New function.
27606 (math_opts_dom_walker::after_dom_children): Use it.
27607 * config/i386/i386.md (spaceship<mode>3): New define_expand.
27608 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
27609 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
27610 * doc/md.texi (spaceship@var{m}3): Document.
27612 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
27614 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
27615 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
27616 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
27617 known constant values to simplify code.
27619 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
27622 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
27624 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
27626 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
27627 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
27628 Insert zero-idiom in output template when attr enabled, set new attribute to
27629 true for non-mask/maskz insn.
27630 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
27632 (avx512dq_mul<mode>3<mask_name>): Likewise.
27633 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
27634 (avx2_perm<mode>_1<mask_name>): Likewise.
27635 (avx512f_perm<mode>_1<mask_name>): Likewise.
27636 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
27637 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
27639 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
27640 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
27642 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
27644 (mask4_dest_false_dep_for_glc_cond): Likewise.
27645 (mask6_dest_false_dep_for_glc_cond): Likewise.
27646 (mask10_dest_false_dep_for_glc_cond): Likewise.
27647 (maskc_dest_false_dep_for_glc_cond): Likewise.
27648 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
27649 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
27650 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
27651 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
27653 2022-01-15 Martin Sebor <msebor@redhat.com>
27656 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
27657 -Wdangling-pointer.
27658 * doc/invoke.texi (-Wdangling-pointer): Document new option.
27659 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
27660 (pass_waccess::check_pointer_uses): New function.
27661 (pass_waccess::gimple_call_return_arg): New function.
27662 (pass_waccess::gimple_call_return_arg_ref): New function.
27663 (pass_waccess::check_call_dangling): New function.
27664 (pass_waccess::check_dangling_uses): New function overloads.
27665 (pass_waccess::check_dangling_stores): New function.
27666 (pass_waccess::check_dangling_stores): New function.
27667 (pass_waccess::m_clobbers): New data member.
27668 (pass_waccess::m_func): New data member.
27669 (pass_waccess::m_run_number): New data member.
27670 (pass_waccess::m_check_dangling_p): New data member.
27671 (pass_waccess::check_alloca): Check m_early_checks_p.
27672 (pass_waccess::check_alloc_size_call): Same.
27673 (pass_waccess::check_strcat): Same.
27674 (pass_waccess::check_strncat): Same.
27675 (pass_waccess::check_stxcpy): Same.
27676 (pass_waccess::check_stxncpy): Same.
27677 (pass_waccess::check_strncmp): Same.
27678 (pass_waccess::check_memop_access): Same.
27679 (pass_waccess::check_read_access): Same.
27680 (pass_waccess::check_builtin): Call check_pointer_uses.
27681 (pass_waccess::warn_invalid_pointer): Add arguments.
27682 (is_auto_decl): New function.
27683 (pass_waccess::check_stmt): New function.
27684 (pass_waccess::check_block): Call check_stmt.
27685 (pass_waccess::execute): Call check_dangling_uses,
27686 check_dangling_stores. Empty m_clobbers.
27687 * passes.def (pass_warn_access): Invoke pass two more times.
27689 2022-01-15 Martin Sebor <msebor@redhat.com>
27691 PR tree-optimization/80532
27692 * common.opt (-Wuse-after-free): New options.
27693 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
27694 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
27695 * diagnostic-spec.h (NW_DANGLING): New enumerator.
27696 * doc/invoke.texi (-Wuse-after-free): Document new option.
27697 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
27698 (pass_waccess::check_call_access): ...to this.
27699 (pass_waccess::check): Rename...
27700 (pass_waccess::check_block): ...to this.
27701 (pass_waccess::check_pointer_uses): New function.
27702 (pass_waccess::gimple_call_return_arg): New function.
27703 (pass_waccess::warn_invalid_pointer): New function.
27704 (pass_waccess::check_builtin): Handle free and realloc.
27705 (gimple_use_after_inval_p): New function.
27706 (get_realloc_lhs): New function.
27707 (maybe_warn_mismatched_realloc): New function.
27708 (pointers_related_p): New function.
27709 (pass_waccess::check_call): Call check_pointer_uses.
27710 (pass_waccess::execute): Compute and free dominance info.
27712 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
27714 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
27715 expand_simple_unop and expand_simple_binop instead of manually
27716 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
27717 consistently. Eliminate common subexpressions and simplify code.
27718 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
27719 (<any_logic:code><MODEF:mode>3): Make public.
27721 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
27723 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
27724 reverse flag as "reverse" for the sake of consistency.
27725 * ipa-sra.c: Fix copyright year.
27726 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
27727 (dump_isra_access): Tweak dump line.
27728 (isra_write_node_summary): Write the reverse flag.
27729 (isra_read_node_info): Read it.
27730 (pull_accesses_from_callee): Test its consistency and copy it.
27732 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
27734 PR middle-end/104026
27735 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
27736 partial_load_store_bias.
27738 2022-01-14 Martin Sebor <msebor@redhat.com>
27740 PR middle-end/101475
27741 * pointer-query.cc (handle_component_ref): Use the size of
27742 the enclosing object if it's smaller than the member.
27744 2022-01-14 Martin Liska <mliska@suse.cz>
27746 * configure: Regenerate.
27748 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
27750 * config/i386/i386.md (*add<mode>_1_slp"):
27751 Mark alternative 1 output operand earlyclobbered.
27752 (*sub<mode>_1_slp): Ditto.
27753 (*and<mode>_1_slp): Ditto.
27754 (*<code><mode>_1_slp): Ditto.
27755 (*neg<mode>_1_slp): Ditto.
27756 (*one_cmpl<mode>_1_slp): Ditto.
27757 (*ashl<mode>3_1_slp): Ditto.
27758 (*<insn><mode>3_1_slp): Ditto.
27759 (*<insn><mode>3_1_slp): Ditto.
27761 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
27763 PR tree-optimization/104015
27764 * tree-vect-loop.c (vect_analyze_loop): Check
27765 param_vect_partial_vector_usage for supports_partial_vectors.
27767 2022-01-14 Jakub Jelinek <jakub@redhat.com>
27770 * fold-const.c (address_compare): Punt on comparison of address of
27771 one object with address of end of another object if
27772 folding_initializer.
27774 2022-01-14 Jakub Jelinek <jakub@redhat.com>
27777 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
27778 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
27779 and __atomic_op_fetch (p, x, y) iop x into
27780 __atomic_fetch_op (p, x, y).
27782 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
27784 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
27785 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
27786 (INCOMING_RETURN_ADDR_RTX): Likewise.
27787 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
27789 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
27791 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
27792 computin checking accumulator regs.
27793 (arc_expand_prologue): Update comments.
27794 (arc_expand_epilogue): Likewise.
27796 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
27797 Uroš Bizjak <ubizjak@gmail.com>
27799 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
27800 (ix86_expand_ti_to_v1ti): Use force_reg.
27801 (ix86_expand_v1ti_shift): Use force_reg.
27802 (ix86_expand_v1ti_rotate): Use force_reg.
27803 (ix86_expand_v1ti_ashiftrt): Provide new three operation
27804 implementations for shifts by 111..126 bits. Use force_reg.
27806 2022-01-14 Martin Liska <mliska@suse.cz>
27808 * common/config/arm/arm-common.c (arm_target_mode): Fix
27809 warning: unterminated quoting directive [-Wformat=].
27811 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
27813 PR tree-optimization/104009
27814 * tree-object-size.c (compute_builtin_object_size): Bail out on
27816 (plus_stmt_object_size): Return maximum of wholesize and minimum
27817 of 0 for negative offset.
27819 2022-01-14 liuhongt <hongtao.liu@intel.com>
27824 * config/i386/i386.md (*xor2andn): Refine predicate of
27825 operands[0] from nonimmediate_operand to
27826 register_operand, remove TARGET_AVX512BW from condition.
27828 2022-01-14 David Malcolm <dmalcolm@redhat.com>
27830 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
27831 be used on field decls.
27832 (Common Function Attributes): Add entry on "tainted_args" attribute.
27834 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
27835 Jason Merrill <jason@redhat.com>
27838 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
27840 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
27843 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
27844 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
27845 * config/i386/mmx.md (<any_shift:insn>v2qi):
27846 New insn_and_split pattern.
27848 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
27850 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
27851 (expand_partial_store_optab_fn): Likewise.
27852 (internal_len_load_store_bias): New function.
27853 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
27854 (internal_len_load_store_bias): New function.
27855 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
27856 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
27857 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
27858 (vect_estimate_min_profitable_iters): Account for bias.
27859 (vect_get_loop_len): Add bias-adjusted length.
27860 * tree-vect-stmts.c (vectorizable_store): Use.
27861 (vectorizable_load): Use.
27862 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
27863 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
27864 * config/rs6000/vsx.md: Use const0 bias predicate.
27865 * doc/md.texi: Document bias value.
27867 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
27869 PR tree-optimization/83072
27870 PR tree-optimization/83073
27871 PR tree-optimization/97909
27872 * fold-const.c (expr_not_equal_to): Use a multi-range class.
27874 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
27876 PR tree-optimization/96707
27877 * range-op.cc (operator_rshift::lhs_op1_relation): New.
27879 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
27881 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
27882 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
27883 (negv2qi splitters): Use lowpart_subreg instead of
27884 gen_lowpart to create subreg.
27885 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
27886 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
27887 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
27888 gen_lowpart to create subreg.
27889 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
27891 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
27894 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
27896 2022-01-13 Martin Liska <mliska@suse.cz>
27898 * common/config/arm/arm-common.c (arm_target_mode): Wrap
27899 keywords with %<, %> and remove trailing punctuation char.
27900 (arm_canon_arch_option_1): Likewise.
27901 (arm_asm_auto_mfpu): Likewise.
27902 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
27903 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
27904 (use_vfp_abi): Likewise.
27905 (aapcs_vfp_is_call_or_return_candidate): Likewise.
27906 (arm_handle_cmse_nonsecure_entry): Likewise.
27907 (arm_handle_cmse_nonsecure_call): Likewise.
27908 (thumb1_md_asm_adjust): Likewise.
27910 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
27912 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
27913 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
27914 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
27915 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
27916 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
27917 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
27918 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
27919 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
27922 2022-01-13 Jakub Jelinek <jakub@redhat.com>
27924 PR tree-optimization/103989
27925 * tree-inline.c (setup_one_parameter): Don't copy parms with
27928 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
27930 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
27931 'TYPE_ADDR_SPACE' for offloading.
27932 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
27933 'TYPE_ADDR_SPACE' for offloading.
27935 2022-01-13 Julian Brown <julian@codesourcery.com>
27936 Thomas Schwinge <thomas@codesourcery.com>
27938 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
27940 (add_async_clauses_and_wait): ...here. Call new outlined function.
27941 (decompose_kernels_region_body): Add wait at the end of
27942 explicitly-asynchronous kernels regions.
27944 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
27946 PR middle-end/100280
27947 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
27948 Mark variables used in synthesized data clauses as addressable.
27950 2022-01-13 Martin Liska <mliska@suse.cz>
27952 * config/epiphany/epiphany.c (epiphany_mode_priority):
27953 Use gcc_unreachable for not handled cases.
27955 2022-01-13 Martin Liska <mliska@suse.cz>
27957 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
27958 Use %qs format specifier.
27959 (epiphany_override_options): Wrap keyword in %<, %>.
27961 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
27964 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
27966 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
27968 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
27970 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
27974 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
27975 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
27976 when constructing vector logic RTXes.
27977 (expand_vec_perm_pshufb2): Ditto.
27978 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
27979 (<plusminus:insn>v2qi3): Ditto.
27980 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
27981 (vcondu<mode><mode>): Ditto.
27982 (vcond_mask_<mode><mode>): Ditto.
27983 (one_cmpl<VI_32:mode>2): Remove expander.
27984 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
27985 Use VI_16_32 mode iterator.
27986 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
27987 Use lowpart_subreg instead of gen_lowpart to create subreg.
27988 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
27989 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
27990 Disparage GPR alternative a bit. Add CC clobber.
27991 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
27992 Use lowpart_subreg instead of gen_lowpart to create subreg.
27993 (*<any_logic:code><VI_16_32:mode>3): Merge from
27994 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
27995 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
27997 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
27998 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
28000 2022-01-12 Clément Chigot <clement.chigot@atos.net>
28002 * configure.ac: Check sizeof ino_t and dev_t.
28003 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
28004 syscall being able to handle 64bit inodes.
28005 * config.in: Regenerate.
28006 * configure: Regenerate.
28007 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
28008 (remove_duplicates): Use it.
28010 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
28012 PR tree-optimization/103551
28013 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
28015 2022-01-12 Richard Biener <rguenther@suse.de>
28017 PR tree-optimization/103990
28018 * tree-pass.h (tail_merge_optimize): Drop unused argument.
28019 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
28020 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
28021 and adjust call to tail_merge_optimize.
28023 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
28025 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
28026 does not add autovectorize_vector_modes.
28028 2022-01-12 Martin Liska <mliska@suse.cz>
28030 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
28031 %qs where possible.
28032 (aarch64_parse_sve_width_string): Likewise.
28033 (aarch64_override_options_internal): Likewise.
28034 (aarch64_print_hint_for_extensions): Likewise.
28035 (aarch64_validate_sls_mitigation): Likewise.
28036 (aarch64_handle_attr_arch): Likewise.
28037 (aarch64_handle_attr_cpu): Likewise.
28038 (aarch64_handle_attr_tune): Likewise.
28039 (aarch64_handle_attr_isa_flags): Likewise.
28041 2022-01-12 Martin Liska <mliska@suse.cz>
28043 * config.gcc: Include elfos.h before ${tm_file}.
28045 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
28047 * config/cris/cris.c: Quote identifiers in parameters to error
28048 and internal_error, and remove extraneous spaces with punctuation.
28049 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
28050 expression to internal_error, pass it as a parameter instead of
28051 appending it to the format part.
28053 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
28055 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
28058 2022-01-11 qing zhao <qing.zhao@oracle.com>
28060 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
28061 Change the 3rd argument of function .DEFERRED_INIT to the name of the
28063 (gimplify_decl_expr): Delete the 3rd argument when call
28064 gimple_add_init_for_auto_var.
28065 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
28066 the 3rd argument change of function .DEFERRED_INIT.
28067 * tree-cfg.c (verify_gimple_call): Update comments and verification
28068 to reflect the 3rd argument change of function .DEFERRED_INIT.
28069 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
28070 (sra_modify_deferred_init): Change the 3rd argument of function
28071 .DEFERRED_INIT to the name of the decl.
28073 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
28075 * flag-types.h (enum gfc_convert): Add flags for
28078 2022-01-11 Michael Meissner <meissner@the-meissners.org>
28080 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
28081 checks for only C/C++ front ends before allowing the long double
28082 format to change without a warning.
28084 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
28086 PR rtl-optimization/103974
28087 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
28088 extra argument, default true, that says whether old-reload
28089 targets should be excluded.
28090 * ira-color.c (color_pass): Pass false.
28092 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
28095 * config/i386/mmx.md (vcond<mode><mode>):
28096 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
28097 (vcondu<mode><mode>): Ditto.
28098 (vcond_mask_<mode><mode>): Ditto.
28099 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
28100 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
28101 Use VI_16_32 mode iterator.
28102 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
28103 Update for rename. Handle V2QImode.
28104 (expand_vec_perm_blend): Update for rename.
28106 2022-01-11 Jakub Jelinek <jakub@redhat.com>
28109 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
28111 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
28113 PR middle-end/70090
28114 * tree-object-size.c (size_valid_p): New function.
28115 (size_for_offset): Remove OFFSET constness assertion.
28116 (addr_object_size): Build dynamic expressions for object
28117 sizes and use size_valid_p to decide if it is valid for the
28118 given OBJECT_SIZE_TYPE.
28119 (compute_builtin_object_size): Allow dynamic offsets when
28120 computing size at O0.
28121 (call_object_size): Call size_valid_p.
28122 (plus_stmt_object_size): Allow non-constant offset and use
28123 size_valid_p to decide if it is valid for the given
28126 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
28128 PR middle-end/70090
28129 * tree-object-size.c (alloc_object_size): Make and return
28130 non-constant size expression.
28131 (call_object_size): Return expression or unknown based on
28132 whether dynamic object size is requested.
28134 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
28136 PR middle-end/70090
28137 * tree-object-size.c: Include tree-dfa.h.
28138 (parm_object_size): New function.
28139 (collect_object_sizes_for): Call it.
28141 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
28143 PR middle-end/70090
28144 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
28146 * tree-object-size.c: Include gimplify-me.h.
28147 (struct object_size_info): New member UNKNOWNS.
28148 (size_initval_p, size_usable_p, object_sizes_get_raw): New
28150 (object_sizes_get): Return suitable gimple variable for
28152 (bundle_sizes): New function.
28153 (object_sizes_set): Use it and handle dynamic object size
28155 (object_sizes_set_temp): New function.
28156 (size_for_offset): Adjust for dynamic size expressions.
28157 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
28159 (compute_builtin_object_size): Call gimplify_size_expressions
28161 (dynamic_object_size): New function.
28162 (cond_expr_object_size): Use it.
28163 (phi_dynamic_object_size): New function.
28164 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
28165 accommodate dynamic object sizes.
28167 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
28168 Jakub Jelinek <jakub@redhat.com>
28170 PR tree-optimization/103961
28171 * tree-object-size.c (plus_stmt_object_size): Always avoid
28172 computing offset for -1 size.
28174 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
28176 PR tree-optimization/103821
28177 * range-op.cc (range_operator::fold_range): Only do precise ranges
28178 when there are not too many subranges.
28180 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
28182 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
28183 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
28185 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
28186 Richard Biener <rguenther@suse.de>
28188 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
28189 highpart_mults_inserted field.
28190 (convert_mult_to_highpart): New function to convert right shift
28191 of a widening multiply into a MULT_HIGHPART_EXPR.
28192 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
28193 Call new convert_mult_to_highpart function.
28194 (pass_optimize_widening_mul::execute): Add a statistics counter
28195 for tracking "highpart multiplications inserted" events.
28197 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
28200 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
28202 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
28204 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
28206 2022-01-11 Olivier Hainque <hainque@adacore.com>
28208 * gcc.c (driver_handle_option): State --sysroot as
28211 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
28213 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
28214 useless related to option -mno-power10.
28216 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
28219 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
28220 operands[1] from register_operand to vector_operand.
28222 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
28225 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
28227 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
28228 Use VI1_16_32 mode iterator.
28229 (*eq<mode>3): Ditto.
28230 (*gt<mode>3): Ditto.
28231 (*xop_maskcmp<mode>3): Ditto.
28232 (*xop_maskcmp_uns<mode>3): Ditto.
28233 (vec_cmp<mode><mode>): Ditto.
28234 (vec_cmpu<mode><mode>): Ditto.
28236 2022-01-10 Richard Biener <rguenther@suse.de>
28238 PR tree-optimization/103948
28239 * tree-vect-generic.c (expand_vector_condition): Return true if
28240 all ones vector is returned for true, all zeros vector for false
28241 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
28243 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
28245 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
28246 when _ARCH_PWR10. Use signed types.
28247 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
28248 (_mm_blendv_pd): Likewise.
28250 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
28252 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
28254 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
28255 epilogues, unless we are guaranteed that we can't have partial vectors.
28256 * genopinit.c: (partial_vectors_supported): Generate new function.
28258 2022-01-10 Jakub Jelinek <jakub@redhat.com>
28261 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
28262 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
28263 always ignore them, when seeing other zero sized bitfields, either
28264 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
28265 it. Pass it to recursive calls. Add wrapper
28266 with old arguments and diagnose ABI differences for C structures
28267 with zero width bitfields. Formatting fixes.
28269 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
28271 PR rtl-optimization/98782
28272 * ira-int.h (ira_soft_conflict): Declare.
28273 * ira-color.c (max_soft_conflict_loop_depth): New constant.
28274 (ira_soft_conflict): New function.
28275 (spill_soft_conflicts): Likewise.
28276 (assign_hard_reg): Use them to handle the case described by
28277 the comment above ira_soft_conflict.
28278 (improve_allocation): Likewise.
28279 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
28280 to share the same register.
28282 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
28284 PR rtl-optimization/98782
28285 * ira-int.h (ira_caller_save_cost): New function.
28286 (ira_caller_save_loop_spill_p): Likewise.
28287 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
28288 cheaper to spill a call-clobbered register throughout a loop rather
28289 than spill it around each individual call. If so, treat all
28290 call-clobbered registers as conflicts and...
28291 (propagate_allocno_info): ...do not propagate call information
28292 from the child to the parent.
28293 * ira-color.c (move_spill_restore): Update accordingly.
28294 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
28296 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
28298 PR rtl-optimization/98782
28299 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
28300 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
28301 (ira_single_region_allocno_p): New function.
28302 (ira_total_conflict_hard_regs): Likewise.
28303 * ira-build.c (ira_create_allocno): Initialize
28304 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
28305 (ira_propagate_hard_reg_costs): New function.
28306 (propagate_allocno_info): Use it. Try to avoid propagating
28307 hard register conflicts to parent allocnos if we can handle
28308 the conflicts by spilling instead. Limit the propagated
28309 register costs to the cost of spilling throughout the child loop.
28310 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
28311 test whether a child and parent allocno can share the same
28313 (move_spill_restore): Adjust for the new behavior of
28314 propagate_allocno_info.
28316 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
28318 PR rtl-optimization/98782
28319 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
28321 * ira-color.c (color_pass): ...here.
28323 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
28325 PR rtl-optimization/98782
28326 * ira-color.c (color_pass): Add comments to describe the spill costs.
28327 (move_spill_restore): Likewise. Fix reversed calculation.
28329 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
28331 PR rtl-optimization/98782
28332 * ira-int.h (ira_loop_border_costs): New class.
28333 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
28335 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
28336 (color_pass): Likewise.
28337 (move_spill_restore): Likewise.
28339 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
28342 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
28344 2022-01-10 Richard Biener <rguenther@suse.de>
28346 PR tree-optimization/100359
28347 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
28348 Allow non-growing peeling with !allow_peel and UL_ALL.
28350 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
28352 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
28353 special case for TImode to V1TImode moves, going via V2DImode.
28355 2022-01-08 Jakub Jelinek <jakub@redhat.com>
28358 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
28361 2022-01-08 David Malcolm <dmalcolm@redhat.com>
28363 * doc/analyzer.texi
28364 (Special Functions for Debugging the Analyzer): Document
28365 __analyzer_dump_escaped.
28367 2022-01-08 David Malcolm <dmalcolm@redhat.com>
28369 * doc/analyzer.texi (Other Debugging Techniques): Document
28370 region::is_named_decl_p.
28372 2022-01-07 Andrew Pinski <apinski@marvell.com>
28375 * config/arm/aarch-common.c (arm_md_asm_adjust):
28376 Use a temp if !REG_P.
28378 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
28380 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
28381 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
28383 2022-01-07 liuhongt <hongtao.liu@intel.com>
28385 PR rtl-optimization/103750
28386 * fwprop.c (forward_propagate_into): Allow propagations from
28387 inner loop to outer loop.
28389 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
28391 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
28393 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
28395 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
28396 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
28397 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
28399 2022-01-07 liuhongt <hongtao.liu@intel.com>
28401 * config/i386/sse.md
28402 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
28403 UNSPEC_PCMP_UNSIGNED.
28405 2022-01-07 liuhongt <hongtao.liu@intel.com>
28408 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
28409 gen_avx2_pblendph_1 when elt == 0.
28410 * config/i386/sse.md (avx2_pblendph): Rename to ..
28411 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
28412 (*avx2_pblendw): Rename to ..
28413 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
28414 (avx2_pblendw): Rename to ..
28415 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
28416 (blendsuf): Removed.
28417 (sse4_1_pblend<blendsuf>): Renamed to ..
28418 (sse4_1_pblend<ssemodesuffix>): .. this.
28420 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
28423 * config/i386/i386.c (ix86_output_indirect_function_return):
28424 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
28426 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
28429 * config/i386/i386-opts.h (harden_sls): Replace
28430 harden_sls_indirect_branch with harden_sls_indirect_jmp.
28431 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
28433 (ix86_output_indirect_jmp): Likewise.
28434 (ix86_output_call_insn): Likewise.
28435 * config/i386/i386.opt: Replace indirect-branch with
28436 indirect-jmp. Replace harden_sls_indirect_branch with
28437 harden_sls_indirect_jmp.
28438 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
28441 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
28443 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
28444 Add %q modifier for operands in general registers.
28445 <MODE_SI>: Add %q modifier for operands in general registers.
28446 * config/i386/i386.md (*movhi_internal): Change type attribute of
28447 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
28448 to SImode for non-avx512fp16 targets.
28449 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
28450 * config/i386/mmx.md (*movv2qi_internal):
28451 Ditto for xmm-gpr interunit alternatives 8,9.
28453 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
28455 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
28457 (riscv_ext_version_table): Add version info for vector extensions.
28458 (riscv_ext_flag_table): Add option mask for vector extensions.
28459 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
28460 (MASK_VECTOR_EEW_64): New.
28461 (MASK_VECTOR_EEW_FP_32): New.
28462 (MASK_VECTOR_EEW_FP_64): New.
28463 (MASK_ZVL32B): New.
28464 (MASK_ZVL64B): New.
28465 (MASK_ZVL128B): New.
28466 (MASK_ZVL256B): New.
28467 (MASK_ZVL512B): New.
28468 (MASK_ZVL1024B): New.
28469 (MASK_ZVL2048B): New.
28470 (MASK_ZVL4096B): New.
28471 (MASK_ZVL8192B): New.
28472 (MASK_ZVL16384B): New.
28473 (MASK_ZVL32768B): New.
28474 (MASK_ZVL65536B): New.
28475 (TARGET_ZVL32B): New.
28476 (TARGET_ZVL64B): New.
28477 (TARGET_ZVL128B): New.
28478 (TARGET_ZVL256B): New.
28479 (TARGET_ZVL512B): New.
28480 (TARGET_ZVL1024B): New.
28481 (TARGET_ZVL2048B): New.
28482 (TARGET_ZVL4096B): New.
28483 (TARGET_ZVL8192B): New.
28484 (TARGET_ZVL16384B): New.
28485 (TARGET_ZVL32768B): New.
28486 (TARGET_ZVL65536B): New.
28487 * config/riscv/riscv.opt (Mask(VECTOR)): New.
28488 (riscv_vector_eew_flags): New.
28489 (riscv_zvl_flags): New.
28491 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
28493 * common/config/riscv/riscv-common.c
28494 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
28497 2022-01-06 Jakub Jelinek <jakub@redhat.com>
28499 PR tree-optimization/103899
28500 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
28501 warning by moving context variable to the only spot where it is used
28502 and moving gcc_assert into if body.
28504 2022-01-06 Jakub Jelinek <jakub@redhat.com>
28506 PR rtl-optimization/103908
28507 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
28510 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
28513 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
28514 Skip over instances with undefined function types.
28516 2022-01-05 Andrew Pinski <apinski@marvell.com>
28519 * config/i386/i386.h (x86_mfence): Mark with GTY.
28521 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
28524 * config/i386/mmx.md (VI_16_32): New mode iterator.
28525 (VI1_16_32): Ditto.
28526 (mmxvecsize): Handle V2QI mode.
28527 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
28528 Use VI1_16_32 mode iterator.
28529 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
28530 Use VI1_16_32 mode iterator.
28531 (abs<mode>2): Use VI_16_32 mode iterator.
28532 (uavgv2qi3_ceil): New insn pattern.
28534 2022-01-05 Martin Sebor <msebor@redhat.com>
28536 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
28537 %qs to avoid -Wformat-diag.
28539 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
28542 * config/i386/mmx.md (one_cmplv2qi2): Change
28543 alternatives 1,2 type from sselog to sselog1.
28545 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
28548 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
28549 narrow mode remapped elements for !one_operand_p case.
28551 2022-01-05 Richard Biener <rguenther@suse.de>
28553 PR tree-optimization/103816
28554 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
28555 check DR_GROUP_GAP compute for overflow and representability.
28557 2022-01-05 Jakub Jelinek <jakub@redhat.com>
28560 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
28561 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
28562 it can do unwanted rhs folding like &a[0] into &2.0 etc.
28564 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
28567 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
28568 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
28569 (rs6000_need_ipa_fn_target_info): New function.
28570 (rs6000_update_ipa_fn_target_info): Likewise.
28571 (rs6000_can_inline_p): Adjust for ipa function summary target info.
28572 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
28573 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
28574 summary target info.
28575 (analyze_function_body): Adjust for ipa function summary target info
28576 and call hook rs6000_need_ipa_fn_target_info and
28577 rs6000_update_ipa_fn_target_info.
28578 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
28580 (inline_read_section): Likewise.
28581 (ipa_fn_summary_write): Likewise.
28582 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
28583 * doc/tm.texi: Regenerate.
28584 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
28585 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
28586 * target.def (update_ipa_fn_target_info): New hook.
28587 (need_ipa_fn_target_info): Likewise.
28588 * targhooks.c (default_need_ipa_fn_target_info): New function.
28589 (default_update_ipa_fn_target_info): Likewise.
28590 * targhooks.h (default_update_ipa_fn_target_info): New declare.
28591 (default_need_ipa_fn_target_info): Likewise.
28593 2022-01-04 Martin Sebor <msebor@redhat.com>
28595 PR middle-end/99612
28596 * builtins.c (get_memmodel): Move warning code to
28597 gimple-ssa-warn-access.cc.
28598 (expand_builtin_atomic_compare_exchange): Same.
28599 (expand_ifn_atomic_compare_exchange): Same.
28600 (expand_builtin_atomic_load): Same.
28601 (expand_builtin_atomic_store): Same.
28602 (expand_builtin_atomic_clear): Same.
28603 * doc/extend.texi (__atomic_exchange_n): Update valid memory
28605 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
28606 (struct memmodel_pair): New struct.
28607 (memmodel_name): New function.
28608 (pass_waccess::maybe_warn_memmodel): New function.
28609 (pass_waccess::check_atomic_memmodel): New function.
28610 (pass_waccess::check_atomic_builtin): Handle memory model.
28611 * input.c (expansion_point_location_if_in_system_header): Return
28612 original location if expansion location is in a system header.
28614 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
28617 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
28618 (one_cmplv2qi3 splitters): New post-reload splitters.
28619 (*andnotv2qi3): New insn pattern.
28620 (andnotv2qi3 splitters): New post-reload splitters.
28621 (<any_logic:code>v2qi3): New insn pattern.
28622 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
28624 2022-01-04 Richard Biener <rguenther@suse.de>
28626 PR tree-optimization/103800
28627 * tree-vect-loop.c (vectorizable_phi): Remove assert and
28630 2022-01-04 Richard Biener <rguenther@suse.de>
28632 PR tree-optimization/103690
28633 * tree-pass.h (tail_merge_optimize): Adjust.
28634 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
28635 to re-split critical edges, move CFG cleanup ...
28636 * tree-ssa-pre.c (pass_pre::execute): ... here, before
28637 simple_dce_from_worklist and delay freeing inserted_exprs from
28639 (fini_pre): .. here.
28641 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
28643 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
28644 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
28645 (setcc_from_bi): Remove SImode specific pattern.
28646 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
28647 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
28648 for sign- and zero-extending BImode predicates to integers.
28649 (setcc_int<mode>): Remove previous (-1-based) instructions.
28650 (cstorebi4): Remove BImode to SImode specific expander.
28651 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
28652 (cstore<mode>4): For both integer and floating point modes.
28654 2022-01-04 Olivier Hainque <hainque@adacore.com>
28656 * gcc.c (driver_handle_option): do_save --sysroot.
28658 2022-01-04 Richard Biener <rguenther@suse.de>
28660 PR tree-optimization/103864
28661 PR tree-optimization/103544
28662 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
28663 reductions wrapped in conversions from SLP handling.
28664 (vect_analyze_slp): Revert PR103544 change.
28666 2022-01-04 Jakub Jelinek <jakub@redhat.com>
28668 PR rtl-optimization/103860
28669 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
28670 uselessly for blocks for which it has been called already.
28672 2022-01-04 Cui,Lili <lili.cui@intel.com>
28674 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
28675 to Alderlake and Rocketlake.
28677 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
28679 PR middle-end/103643
28680 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
28681 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
28683 2022-01-04 liuhongt <hongtao.liu@intel.com>
28686 * config/i386/sse.md (*bit_and_float_vector_all_ones):
28687 Force_reg operand 1 to avoid ICE.
28689 2022-01-04 Jason Merrill <jason@redhat.com>
28691 * tree-pretty-print.c (do_niy): Add spc parameter.
28693 (print_call_name): Add spc local variable.
28695 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
28698 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
28699 (mov<V_32:mode>_internal): Ditto.
28700 (*push<V_32:mode>_rex64): Ditto.
28701 (movmisalign<V_32:mode>): Ditto.
28702 (*push<V_32:mode>_rex64 splitter): Enable for
28703 TARGET_64BIT && TARGET_SSE.
28704 (*push<V_32:mode>2): Remove insn pattern.
28706 2022-01-03 Andrew Pinski <apinski@marvell.com>
28709 * doc/extend.texi: Extend the documentation about Complex
28710 types for casting and also rewrite the __real__/__imag__
28711 expression portion to use tables.
28712 Move __builtin_complex to the Complex type section.
28714 2022-01-03 Jakub Jelinek <jakub@redhat.com>
28717 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
28718 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
28720 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
28721 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
28722 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
28723 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
28724 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
28725 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
28727 * optabs.def (atomic_add_fetch_cmp_0_optab,
28728 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
28729 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
28731 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
28732 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
28733 * tree-ssa-ccp.c: Include internal-fn.h.
28734 (optimize_atomic_bit_test_and): Add . before internal fn call
28735 in function comment. Change return type from void to bool and
28736 return true only if successfully replaced.
28737 (optimize_atomic_op_fetch_cmp_0): New function.
28738 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
28739 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
28740 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
28741 for *XOR* ones only if optimize_atomic_bit_test_and failed.
28742 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
28743 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
28744 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
28745 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
28746 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
28747 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
28748 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
28749 new named patterns.
28751 2022-01-03 Richard Biener <rguenther@suse.de>
28753 PR middle-end/103851
28754 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
28756 2022-01-03 Jakub Jelinek <jakub@redhat.com>
28759 * symtab.c: Include fold-const.h.
28760 (symtab_node::equal_address_to): If folding_initializer is true,
28761 handle it like memory_accessed. Simplify.
28763 2022-01-03 Martin Liska <mliska@suse.cz>
28765 * doc/extend.texi: Use ; for function declarations.
28767 2022-01-03 Jakub Jelinek <jakub@redhat.com>
28770 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
28771 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
28773 2022-01-03 Jakub Jelinek <jakub@redhat.com>
28775 * gcc.c (process_command): Update copyright notice dates.
28776 * gcov-dump.c (print_version): Ditto.
28777 * gcov.c (print_version): Ditto.
28778 * gcov-tool.c (print_version): Ditto.
28779 * gengtype.c (create_file): Ditto.
28780 * doc/cpp.texi: Bump @copying's copyright year.
28781 * doc/cppinternals.texi: Ditto.
28782 * doc/gcc.texi: Ditto.
28783 * doc/gccint.texi: Ditto.
28784 * doc/gcov.texi: Ditto.
28785 * doc/install.texi: Ditto.
28786 * doc/invoke.texi: Ditto.
28788 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
28791 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
28792 (VALID_INT_MODE_P): Ditto.
28793 * config/i386/i386.c (ix86_secondary_reload): Handle
28794 V2QImode reloads from SSE register to memory.
28795 (vector_mode_supported_p): Always return true for V2QImode.
28796 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
28797 (*negqi_ext<mode>_2): Ditto.
28798 * config/i386/mmx.md (movv2qi): New expander.
28799 (movmisalignv2qi): Ditto.
28800 (*movv2qi_internal): New insn pattern.
28801 (*pushv2qi2): Ditto.
28802 (negv2qi2 and splitters): Ditto.
28803 (<plusminus:insn>v2qi3 and splitters): Ditto.
28805 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
28807 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
28808 sync_lock_test_and_set libfunc. Call convert_memory_address to
28809 convert memory address to Pmode.
28810 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
28813 Copyright (C) 2022 Free Software Foundation, Inc.
28815 Copying and distribution of this file, with or without modification,
28816 are permitted in any medium without royalty provided the copyright
28817 notice and this notice are preserved.