]>
Commit | Line | Data |
---|---|---|
1 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
2 | ||
3 | * diagnostic-format-sarif.cc (sarif_builder::make_locations_arr): | |
4 | Don't add entirely empty location objects, such as for | |
5 | UNKNOWN_LOCATION. | |
6 | (test_sarif_diagnostic_context::test_sarif_diagnostic_context): | |
7 | Add param "main_input_filename". | |
8 | (selftest::test_simple_log): Provide above param. Verify that | |
9 | "locations" is empty. | |
10 | (selftest::test_simple_log_2): New. | |
11 | (selftest::diagnostic_format_sarif_cc_tests): Call it. | |
12 | ||
13 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
14 | ||
15 | * diagnostic-format-sarif.cc (sarif_builder::flush_to_object): | |
16 | New, using code moved from... | |
17 | (sarif_builder::end_group): ...here. | |
18 | (class selftest::test_sarif_diagnostic_context): New. | |
19 | (selftest::test_simple_log): New. | |
20 | (selftest::diagnostic_format_sarif_cc_tests): Call it. | |
21 | * json.h (json::object::is_empty): New. | |
22 | * selftest-diagnostic.cc (test_diagnostic_context::report): New. | |
23 | * selftest-diagnostic.h (test_diagnostic_context::report): New | |
24 | decl. | |
25 | * selftest-json.cc (selftest::assert_json_string_eq): New. | |
26 | (selftest::expect_json_object_with_string_property): New. | |
27 | (selftest::assert_json_string_property_eq): New. | |
28 | * selftest-json.h (selftest::assert_json_string_eq): New decl. | |
29 | (ASSERT_JSON_STRING_EQ): New macro. | |
30 | (selftest::expect_json_object_with_string_property): New decl. | |
31 | (EXPECT_JSON_OBJECT_WITH_STRING_PROPERTY): New macro. | |
32 | ||
33 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
34 | ||
35 | * diagnostic-format-sarif.cc | |
36 | (sarif_builder::make_location_object): Add "annotations" property if | |
37 | there are any labelled ranges (§3.28.6). | |
38 | (selftest::test_make_location_object): Verify annotations are added | |
39 | to location_obj. | |
40 | * json.h (json::array::size): New. | |
41 | (json::array::operator[]): New. | |
42 | * selftest-json.cc | |
43 | (selftest::expect_json_object_with_array_property): New. | |
44 | * selftest-json.h | |
45 | (selftest::expect_json_object_with_array_property): New decl. | |
46 | (EXPECT_JSON_OBJECT_WITH_ARRAY_PROPERTY): New macro. | |
47 | ||
48 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
49 | ||
50 | * diagnostic-format-sarif.cc | |
51 | (make_date_time_string_for_current_time): New. | |
52 | (sarif_invocation::sarif_invocation): Set "startTimeUtc" | |
53 | property (§3.20.7). | |
54 | (sarif_invocation::prepare_to_flush): Set "endTimeUtc" | |
55 | property (§3.20.8). | |
56 | ||
57 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
58 | ||
59 | * diagnostic-format-sarif.cc (sarif_invocation::sarif_invocation): | |
60 | Add "original_argv" param and use it to populate "arguments" | |
61 | property (§3.20.2). | |
62 | (sarif_builder::sarif_builder): Pass argv to m_invocation_obj's | |
63 | ctor. | |
64 | * diagnostic.cc (diagnostic_context::initialize): Initialize | |
65 | m_original_argv. | |
66 | (diagnostic_context::finish): Clean up m_original_argv. | |
67 | (diagnostic_context::set_original_argv): New. | |
68 | * diagnostic.h: Include "unique-argv.h". | |
69 | (diagnostic_context::set_original_argv): New decl. | |
70 | (diagnostic_context::get_original_argv): New decl. | |
71 | (diagnostic_context::m_original_argv): New field. | |
72 | * toplev.cc: Include "unique-argv.h". | |
73 | (general_init): Add "original_argv" param and move it to global_dc. | |
74 | (toplev::main): Stash a copy of the original argv before expansion, | |
75 | and pass it to general_init for use by SARIF output. | |
76 | * unique-argv.h: New file. | |
77 | ||
78 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
79 | ||
80 | * diagnostic-format-sarif.cc | |
81 | (sarif_builder::make_artifact_location_object): Make public. | |
82 | (sarif_invocation::sarif_invocation): Add param "builder". | |
83 | Use it to potentially populate the "workingDirectory" property | |
84 | with the result of pwd (§3.20.19). | |
85 | (sarif_builder::sarif_builder): Pass *this to m_invocation_obj's | |
86 | ctor. | |
87 | ||
88 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
89 | ||
90 | * text-range-label.h: New file, taking class text_range_label from | |
91 | gcc-rich-location.h. | |
92 | ||
93 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
94 | ||
95 | * Makefile.in (OBJS-libcommon): Add selftest-json.o. | |
96 | * diagnostic-format-sarif.cc: Include "selftest.h", | |
97 | "selftest-diagnostic.h", "selftest-diagnostic-show-locus.h", | |
98 | "selftest-json.h", and "text-range-label.h". | |
99 | (class content_renderer): New. | |
100 | (sarif_builder::m_rules_arr): Convert to std::unique_ptr. | |
101 | (sarif_builder::make_location_object): Add class | |
102 | escape_nonascii_renderer. If rich_loc.escape_on_output_p (), | |
103 | pass a nonnull escape_nonascii_renderer to | |
104 | maybe_make_physical_location_object as its snippet_renderer, and | |
105 | add a property bag property "gcc/escapeNonAscii" to the SARIF | |
106 | location object. For other overloads of make_location_object, | |
107 | pass nullptr for the snippet_renderer. | |
108 | (sarif_builder::maybe_make_region_object_for_context): Add | |
109 | "snippet_renderer" param and pass it to | |
110 | maybe_make_artifact_content_object. | |
111 | (sarif_builder::make_tool_object): Drop "const". | |
112 | (sarif_builder::make_driver_tool_component_object): Likewise. | |
113 | Use typesafe unique_ptr variant of object::set for setting "rules" | |
114 | property on driver_obj. | |
115 | (sarif_builder::maybe_make_artifact_content_object): Add param "r" | |
116 | and use it to potentially set the "rendered" property (§3.3.4). | |
117 | (selftest::test_make_location_object): New. | |
118 | (selftest::diagnostic_format_sarif_cc_tests): New. | |
119 | * diagnostic-show-locus.cc: Include "text-range-label.h" and | |
120 | "selftest-diagnostic-show-locus.h". | |
121 | (selftests::diagnostic_show_locus_fixture::diagnostic_show_locus_fixture): | |
122 | New. | |
123 | (selftests::test_layout_x_offset_display_utf8): Use | |
124 | diagnostic_show_locus_fixture to simplify and consolidate setup | |
125 | code. | |
126 | (selftests::test_diagnostic_show_locus_one_liner): Likewise. | |
127 | (selftests::test_one_liner_colorized_utf8): Likewise. | |
128 | (selftests::test_diagnostic_show_locus_one_liner_utf8): Likewise. | |
129 | * gcc-rich-location.h (class text_range_label): Move to new file | |
130 | text-range-label.h. | |
131 | * selftest-diagnostic-show-locus.h: New file, based on material in | |
132 | diagnostic-show-locus.cc. | |
133 | * selftest-json.cc: New file. | |
134 | * selftest-json.h: New file. | |
135 | * selftest-run-tests.cc (selftest::run_tests): Call | |
136 | selftest::diagnostic_format_sarif_cc_tests. | |
137 | * selftest.h (selftest::diagnostic_format_sarif_cc_tests): New decl. | |
138 | ||
139 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
140 | ||
141 | * diagnostic-format-json.cc: Include "make-unique.h". | |
142 | (json_output_format::m_toplevel_array): Convert to | |
143 | std::unique_ptr. | |
144 | (json_output_format::json_output_format): Update accordingly. | |
145 | (json_output_format::~json_output_format): Remove manual | |
146 | "delete" of field. | |
147 | (json_from_expanded_location): Convert return type to | |
148 | std::unique_ptr. | |
149 | (json_from_location_range): Likewise. Use nullptr rather than | |
150 | NULL. | |
151 | (json_from_fixit_hint): Convert return type to std::unique_ptr. | |
152 | (json_from_metadata): Likewise. | |
153 | (make_json_for_path): Likewise. | |
154 | (json_output_format::on_end_diagnostic): Use std::unique_ptr | |
155 | throughout. | |
156 | (json_file_output_format::~json_file_output_format): Use nullptr. | |
157 | (selftest::test_unknown_location): Update to use std::unique_ptr. | |
158 | (selftest::test_bad_endpoints): Likewise. Replace NULL with | |
159 | nullptr. | |
160 | ||
161 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
162 | ||
163 | * diagnostic-format-sarif.cc: Include "make-unique.h". Convert | |
164 | raw pointers to std::unique_ptr throughout to indicate ownership, | |
165 | adding comments in the few places where pointers are borrowed. | |
166 | Use typesafe unique_ptr variants of json::object::set and | |
167 | json::array::append throughout to make types of properties more | |
168 | explicit, whilst using "auto" to reduce typing. | |
169 | Use "nullptr" rather than "NULL" throughout. | |
170 | * diagnostic-format-sarif.h (make_sarif_logical_location_object): | |
171 | Use std::unique_ptr for return type. | |
172 | ||
173 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
174 | ||
175 | * diagnostic-format-json.cc: Define INCLUDE_MEMORY. | |
176 | * diagnostic-format-sarif.cc: Likewise. | |
177 | * dumpfile.cc: Likewise. | |
178 | * gcov.cc: Likewise. | |
179 | * json.cc: Likewise. Include "make-unique.h". | |
180 | (selftest::test_formatting): Exercise overloads of | |
181 | array::append and object::set that use unique_ptr. | |
182 | * json.h: Require INCLUDE_MEMORY to have been defined. | |
183 | (json::object::set): Add a template to add a family of overloads | |
184 | taking a std::unique_ptr<JsonType> | |
185 | (json::array::append): Likewise. | |
186 | * optinfo-emit-json.cc: Define INCLUDE_MEMORY. | |
187 | * optinfo.cc: Likewise. | |
188 | * timevar.cc: Likewise. | |
189 | * toplev.cc: Likewise. | |
190 | * tree-diagnostic-client-data-hooks.cc: Likewise. | |
191 | ||
192 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
193 | ||
194 | * diagnostic-format-json.cc (json_from_expanded_location): Make | |
195 | "static". Pass param "context" by reference, as it cannot be null. | |
196 | (json_from_location_range): Likewise for param "context". | |
197 | (json_from_fixit_hint): Likewise. | |
198 | (make_json_for_path): Likewise. | |
199 | (json_output_format::on_end_diagnostic): Update for above changes. | |
200 | (diagnostic_output_format_init_json::diagnostic_output_format_init_json): | |
201 | Pass param "context" by reference, as it cannot be null. | |
202 | (diagnostic_output_format_init_json_stderr): Likewise. | |
203 | (diagnostic_output_format_init_json_file): Likewise. | |
204 | (selftest::test_unknown_location): Update for above changes. | |
205 | (selftest::test_bad_endpoints): Likewise. | |
206 | * diagnostic-format-sarif.cc (sarif_builder::m_context): Convert | |
207 | from pointer to reference. | |
208 | (sarif_invocation::add_notification_for_ice): Convert both params | |
209 | from pointers to references. | |
210 | (sarif_invocation::prepare_to_flush): Likewise for "context". | |
211 | (sarif_result::on_nested_diagnostic): Likewise for "context" and | |
212 | "builder". | |
213 | (sarif_result::on_diagram): Likewise. | |
214 | (sarif_ice_notification::sarif_ice_notification): Likewise. | |
215 | (sarif_builder::sarif_builder): Likewise for "context". | |
216 | (sarif_builder::end_diagnostic): Likewise. | |
217 | (sarif_builder::emit_diagram): Likewise. | |
218 | (sarif_builder::make_result_object): Likewise. | |
219 | (make_reporting_descriptor_object_for_warning): Likewise. | |
220 | (sarif_builder::make_locations_arr): Update for change to m_context. | |
221 | (sarif_builder::get_sarif_column): Likewise. | |
222 | (sarif_builder::make_message_object_for_diagram): Convert "context" | |
223 | from pointer to reference. | |
224 | (sarif_builder::make_tool_object): Likewise for "m_context". | |
225 | (sarif_builder::make_driver_tool_component_object): Likewise. | |
226 | (sarif_builder::get_or_create_artifact): Likewise. | |
227 | (sarif_builder::maybe_make_artifact_content_object): Likewise. | |
228 | (sarif_builder::get_source_lines): Likewise. | |
229 | (sarif_output_format::on_end_diagnostic): Update for above changes. | |
230 | (sarif_output_format::on_diagram): Likewise. | |
231 | (sarif_output_format::sarif_output_format): Likewise. | |
232 | (diagnostic_output_format_init_sarif): Convert param "context" | |
233 | from pointer to reference. | |
234 | (diagnostic_output_format_init_sarif_stderr): Likewise. | |
235 | (diagnostic_output_format_init_sarif_file): Likewise. | |
236 | (diagnostic_output_format_init_sarif_stream): Likewise. | |
237 | * diagnostic.cc (diagnostic_output_format_init): Likewise. | |
238 | * diagnostic.h (diagnostic_output_format_init): Likewise. | |
239 | (diagnostic_output_format_init_json_stderr): Likewise. | |
240 | (diagnostic_output_format_init_json_file): Likewise. | |
241 | (diagnostic_output_format_init_sarif_stderr): Likewise. | |
242 | (diagnostic_output_format_init_sarif_file): Likewise. | |
243 | (diagnostic_output_format_init_sarif_stream): Likewise. | |
244 | (json_from_expanded_location): Delete decl. | |
245 | * gcc.cc (driver_handle_option): Update for change to | |
246 | diagnostic_output_format_init. | |
247 | * opts.cc (common_handle_option): Likewise. | |
248 | ||
249 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
250 | ||
251 | * diagnostic-format-sarif.cc: Introduce subclasses of sarif_object | |
252 | for all aspects of the spec that we're using. Replace almost all | |
253 | usage of json::object with uses of these subclasses, the only | |
254 | remaining use of json::object being for originalUriBaseIds, as per | |
255 | SARIF 2.1.0 §3.14.14. This stronger typing makes it considerably | |
256 | easier to maintain validity against the schema. | |
257 | * diagnostic-format-sarif.h (class sarif_logical_location): New. | |
258 | (make_sarif_logical_location_object): Convert return type from | |
259 | json::object * to sarif_logical_location *. | |
260 | ||
261 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
262 | ||
263 | * gcov.cc (output_intermediate_json_line): Use | |
264 | json::object::set_integer to avoid naked "new". | |
265 | ||
266 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
267 | ||
268 | * diagnostic-format-sarif.cc (sarif_artifact::populate_roles): | |
269 | Avoid naked "new" by using json::array::append_string. | |
270 | (sarif_builder::maybe_make_kinds_array): Likewise. | |
271 | * json.cc (json::array::append_string): New. | |
272 | (selftest::test_writing_arrays): Use it. | |
273 | * json.h (json::array::append_string): New decl. | |
274 | * optinfo-emit-json.cc (optrecord_json_writer::pass_to_json): | |
275 | Avoid naked "new" by using json::array::append_string. | |
276 | (optrecord_json_writer::optinfo_to_json): Likewise. | |
277 | ||
278 | 2024-07-24 David Malcolm <dmalcolm@redhat.com> | |
279 | ||
280 | * json.cc (value::dump): New overload, taking no params. | |
281 | * json.h (value::dump): New decl. | |
282 | ||
283 | 2024-07-24 Jeff Law <jlaw@ventanamicro.com> | |
284 | ||
285 | PR rtl-optimization/116037 | |
286 | * ext-dce.cc (ext_dce_process_sets): Note if we ever skip a dest | |
287 | and return that info explicitly. | |
288 | (ext_dce_process_uses): If a set was skipped, then consider all bits | |
289 | in every input as live. Do not try to optimize away an extension if | |
290 | we skipped processing a destination in the same insn. Restore code | |
291 | to make shift/rotate count fully live. | |
292 | (ext_dce_process_bb): Handle API changes for ext_dce_process_sets. | |
293 | ||
294 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
295 | ||
296 | * common/config/aarch64/aarch64-common.cc | |
297 | (aarch64_set_asm_isa_flags): Store a second uint64_t value. | |
298 | * config/aarch64/aarch64-opts.h | |
299 | (aarch64_feature_flags): Switch typedef to bbitmap<2>. | |
300 | * config/aarch64/aarch64.cc | |
301 | (aarch64_set_current_function): Extract isa mode from val[0]. | |
302 | * config/aarch64/aarch64.h | |
303 | (aarch64_get_asm_isa_flags): Load a second uint64_t value. | |
304 | (aarch64_get_isa_flags): Ditto. | |
305 | (aarch64_asm_isa_flags): Ditto. | |
306 | (aarch64_isa_flags): Ditto. | |
307 | (HANDLE): Use bbitmap<2>::from_index to initialise flags. | |
308 | (AARCH64_FL_ISA_MODES): Do arithmetic on integer type. | |
309 | (AARCH64_ISA_MODE): Extract value from bbitmap<2> array. | |
310 | * config/aarch64/aarch64.opt | |
311 | (aarch64_asm_isa_flags_1): New variable. | |
312 | (aarch64_isa_flags_1): Ditto. | |
313 | ||
314 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
315 | ||
316 | * bbitmap.h: New file. | |
317 | ||
318 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
319 | ||
320 | * config/aarch64/aarch64-feature-deps.h | |
321 | (get_flags_off): Construct aarch64_feature_flags (0) explicitly. | |
322 | ||
323 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
324 | ||
325 | * config/aarch64/aarch64-c.cc | |
326 | (aarch64_define_unconditional_macros): Use TARGET_V8R macro. | |
327 | (aarch64_update_cpp_builtins): Use TARGET_* macros. | |
328 | * config/aarch64/aarch64.h (AARCH64_HAVE_ISA): New macro. | |
329 | (AARCH64_ISA_SM_OFF, AARCH64_ISA_SM_ON, AARCH64_ISA_ZA_ON) | |
330 | (AARCH64_ISA_V8A, AARCH64_ISA_V8_1A, AARCH64_ISA_CRC) | |
331 | (AARCH64_ISA_FP, AARCH64_ISA_SIMD, AARCH64_ISA_LSE) | |
332 | (AARCH64_ISA_RDMA, AARCH64_ISA_V8_2A, AARCH64_ISA_F16) | |
333 | (AARCH64_ISA_SVE, AARCH64_ISA_SVE2, AARCH64_ISA_SVE2_AES) | |
334 | (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3) | |
335 | (AARCH64_ISA_SVE2_SM4, AARCH64_ISA_SME, AARCH64_ISA_SME_I16I64) | |
336 | (AARCH64_ISA_SME_F64F64, AARCH64_ISA_SME2, AARCH64_ISA_V8_3A) | |
337 | (AARCH64_ISA_DOTPROD, AARCH64_ISA_AES, AARCH64_ISA_SHA2) | |
338 | (AARCH64_ISA_V8_4A, AARCH64_ISA_SM4, AARCH64_ISA_SHA3) | |
339 | (AARCH64_ISA_F16FML, AARCH64_ISA_RCPC, AARCH64_ISA_RCPC8_4) | |
340 | (AARCH64_ISA_RNG, AARCH64_ISA_V8_5A, AARCH64_ISA_TME) | |
341 | (AARCH64_ISA_MEMTAG, AARCH64_ISA_V8_6A, AARCH64_ISA_I8MM) | |
342 | (AARCH64_ISA_F32MM, AARCH64_ISA_F64MM, AARCH64_ISA_BF16) | |
343 | (AARCH64_ISA_SB, AARCH64_ISA_RCPC3, AARCH64_ISA_V8R) | |
344 | (AARCH64_ISA_PAUTH, AARCH64_ISA_V8_7A, AARCH64_ISA_V8_8A) | |
345 | (AARCH64_ISA_V8_9A, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A) | |
346 | (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A, AARCH64_ISA_V9_4A) | |
347 | (AARCH64_ISA_MOPS, AARCH64_ISA_LS64, AARCH64_ISA_CSSC) | |
348 | (AARCH64_ISA_D128, AARCH64_ISA_THE, AARCH64_ISA_GCS): Remove. | |
349 | (TARGET_BASE_SIMD, TARGET_SIMD, TARGET_FLOAT) | |
350 | (TARGET_NON_STREAMING, TARGET_STREAMING, TARGET_ZA, TARGET_SHA2) | |
351 | (TARGET_SHA3, TARGET_AES, TARGET_SM4, TARGET_F16FML) | |
352 | (TARGET_CRC32, TARGET_LSE, TARGET_FP_F16INST) | |
353 | (TARGET_SIMD_F16INST, TARGET_DOTPROD, TARGET_SVE, TARGET_SVE2) | |
354 | (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3) | |
355 | (TARGET_SVE2_SM4, TARGET_SME, TARGET_SME_I16I64) | |
356 | (TARGET_SME_F64F64, TARGET_SME2, TARGET_ARMV8_3, TARGET_JSCVT) | |
357 | (TARGET_FRINT, TARGET_TME, TARGET_RNG, TARGET_MEMTAG) | |
358 | (TARGET_I8MM, TARGET_SVE_I8MM, TARGET_SVE_F32MM) | |
359 | (TARGET_SVE_F64MM, TARGET_BF16_FP, TARGET_BF16_SIMD) | |
360 | (TARGET_SVE_BF16, TARGET_PAUTH, TARGET_BTI, TARGET_MOPS) | |
361 | (TARGET_LS64, TARGET_CSSC, TARGET_SB, TARGET_RCPC, TARGET_RCPC2) | |
362 | (TARGET_RCPC3, TARGET_SIMD_RDMA, TARGET_ARMV9_4, TARGET_D128) | |
363 | (TARGET_THE, TARGET_GCS): Redefine using AARCH64_HAVE_ISA. | |
364 | (TARGET_V8R, TARGET_V9A): New. | |
365 | * config/aarch64/aarch64.md (arch_enabled): Use TARGET_RCPC2. | |
366 | * config/aarch64/iterators.md (GPI_I16): Use TARGET_FP_F16INST. | |
367 | (GPF_F16): Ditto. | |
368 | * config/aarch64/predicates.md | |
369 | (aarch64_rcpc_memory_operand): Use TARGET_RCPC2. | |
370 | ||
371 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
372 | ||
373 | * config/aarch64/aarch64.cc | |
374 | (aarch64_valid_sysreg_name_p): Add bool cast. | |
375 | ||
376 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
377 | ||
378 | * common/config/aarch64/aarch64-common.cc | |
379 | (aarch64_set_asm_isa_flags): Reorder, and add suffix to names. | |
380 | * config/aarch64/aarch64.h | |
381 | (aarch64_get_asm_isa_flags): Add "_0" suffix. | |
382 | (aarch64_get_isa_flags): Ditto. | |
383 | (aarch64_asm_isa_flags): Redefine using renamed uint64_t value. | |
384 | (aarch64_isa_flags): Ditto. | |
385 | * config/aarch64/aarch64.opt: | |
386 | (aarch64_asm_isa_flags): Rename to... | |
387 | (aarch64_asm_isa_flags_0): ...this, and change to uint64_t. | |
388 | (aarch64_isa_flags): Rename to... | |
389 | (aarch64_isa_flags_0): ...this, and change to uint64_t. | |
390 | ||
391 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
392 | ||
393 | * common/config/aarch64/aarch64-common.cc | |
394 | (aarch64_handle_option): Use new macro. | |
395 | * config/aarch64/aarch64.cc | |
396 | (aarch64_override_options_internal): Ditto. | |
397 | (aarch64_option_print): Ditto. | |
398 | (aarch64_set_current_function): Ditto. | |
399 | (aarch64_can_inline_p): Ditto. | |
400 | (aarch64_declare_function_name): Ditto. | |
401 | (aarch64_start_file): Ditto. | |
402 | * config/aarch64/aarch64.h (aarch64_get_asm_isa_flags): New | |
403 | (aarch64_get_isa_flags): New. | |
404 | (aarch64_asm_isa_flags): Use new macro. | |
405 | (aarch64_isa_flags): Ditto. | |
406 | ||
407 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
408 | ||
409 | * config/aarch64/aarch64-opts.h: Add aarch64_isa_mode typedef. | |
410 | * config/aarch64/aarch64-protos.h | |
411 | (aarch64_gen_callee_cookie): Use aarch64_isa_mode parameter. | |
412 | (aarch64_sme_vq_immediate): Ditto. | |
413 | * config/aarch64/aarch64.cc | |
414 | (aarch64_fntype_pstate_sm): Use aarch64_isa_mode values. | |
415 | (aarch64_fntype_pstate_za): Ditto. | |
416 | (aarch64_fndecl_pstate_sm): Ditto. | |
417 | (aarch64_fndecl_pstate_za): Ditto. | |
418 | (aarch64_fndecl_isa_mode): Ditto. | |
419 | (aarch64_cfun_incoming_pstate_sm): Ditto. | |
420 | (aarch64_cfun_enables_pstate_sm): Ditto. | |
421 | (aarch64_call_switches_pstate_sm): Ditto. | |
422 | (aarch64_gen_callee_cookie): Ditto. | |
423 | (aarch64_callee_isa_mode): Ditto. | |
424 | (aarch64_insn_callee_abi): Ditto. | |
425 | (aarch64_sme_vq_immediate): Ditto. | |
426 | (aarch64_add_offset_temporaries): Ditto. | |
427 | (aarch64_add_offset): Ditto. | |
428 | (aarch64_add_sp): Ditto. | |
429 | (aarch64_sub_sp): Ditto. | |
430 | (aarch64_guard_switch_pstate_sm): Ditto. | |
431 | (aarch64_switch_pstate_sm): Ditto. | |
432 | (aarch64_init_cumulative_args): Ditto. | |
433 | (aarch64_allocate_and_probe_stack_space): Ditto. | |
434 | (aarch64_expand_prologue): Ditto. | |
435 | (aarch64_expand_epilogue): Ditto. | |
436 | (aarch64_start_call_args): Ditto. | |
437 | (aarch64_expand_call): Ditto. | |
438 | (aarch64_end_call_args): Ditto. | |
439 | (aarch64_set_current_function): Ditto, with added conversions. | |
440 | (aarch64_handle_attr_arch): Avoid macro with changed type. | |
441 | (aarch64_handle_attr_cpu): Ditto. | |
442 | (aarch64_handle_attr_isa_flags): Ditto. | |
443 | (aarch64_switch_pstate_sm_for_landing_pad): | |
444 | Use arch64_isa_mode values. | |
445 | (aarch64_switch_pstate_sm_for_jump): Ditto. | |
446 | (pass_switch_pstate_sm::gate): Ditto. | |
447 | * config/aarch64/aarch64.h | |
448 | (AARCH64_ISA_MODE_{SM_ON|SM_OFF|ZA_ON}): New macros. | |
449 | (AARCH64_FL_SM_STATE): Mark as possibly unused. | |
450 | (AARCH64_ISA_MODE_SM_STATE): New aarch64_isa_mode mask. | |
451 | (AARCH64_DEFAULT_ISA_MODE): New aarch64_isa_mode value. | |
452 | (AARCH64_FL_DEFAULT_ISA_MODE): Define using above value. | |
453 | (AARCH64_ISA_MODE): Change type to aarch64_isa_mode. | |
454 | (arm_pcs): Use aarch64_isa_mode value. | |
455 | ||
456 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
457 | ||
458 | * config/aarch64/aarch64.cc | |
459 | (aarch64_override_options): Remove temporary variable. | |
460 | ||
461 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
462 | ||
463 | * config/aarch64/aarch64.h (DEF_AARCH64_ISA_MODE): Move to... | |
464 | * config/aarch64/aarch64-opts.h (DEF_AARCH64_ISA_MODE): ...here. | |
465 | ||
466 | 2024-07-24 Andrew Carlotti <andrew.carlotti@arm.com> | |
467 | ||
468 | * config/aarch64/aarch64.cc | |
469 | (aarch64_tune_flags): Remove unused global variable. | |
470 | (aarch64_override_options_internal): Remove dead assignment. | |
471 | ||
472 | 2024-07-24 Andrew Pinski <quic_apinski@quicinc.com> | |
473 | ||
474 | * config/rs6000/rs6000-builtins.def: s/iorc/iorn/. s/andc/andn/ | |
475 | for the code. | |
476 | * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update | |
477 | to iorn. | |
478 | * config/rs6000/rs6000.md (andc<mode>3): Rename to ... | |
479 | (andn<mode>3): This. | |
480 | (iorc<mode>3): Rename to ... | |
481 | (iorn<mode>3): This. | |
482 | * doc/md.texi: Update documentation for the rename. | |
483 | * internal-fn.def (BIT_ANDC): Rename to ... | |
484 | (BIT_ANDN): This. | |
485 | (BIT_IORC): Rename to ... | |
486 | (BIT_IORN): This. | |
487 | * optabs.def (andc_optab): Rename to ... | |
488 | (andn_optab): This. | |
489 | (iorc_optab): Rename to ... | |
490 | (iorn_optab): This. | |
491 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Update for the | |
492 | renamed internal functions, ANDC/IORC to ANDN/IORN. | |
493 | ||
494 | 2024-07-24 Gaius Mulley <gaiusmod2@gmail.com> | |
495 | ||
496 | * doc/install.texi (GM2-prerequisite): Add GNU flex. | |
497 | ||
498 | 2024-07-24 Richard Biener <rguenther@suse.de> | |
499 | ||
500 | PR tree-optimization/116057 | |
501 | * tree-ssa-ccp.cc (likely_value): Also walk CTORs in stmt | |
502 | operands to look for constants. | |
503 | ||
504 | 2024-07-24 Kyrylo Tkachov <ktkachov@nvidia.com> | |
505 | ||
506 | Revert: | |
507 | 2024-07-24 Jennifer Schmitz <jschmitz@nvidia.com> | |
508 | ||
509 | * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement | |
510 | fusion logic. | |
511 | * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry. | |
512 | (cmp+cset): Likewise. | |
513 | * config/aarch64/tuning_models/neoversev2.h: Enable logic in | |
514 | field fusible_ops. | |
515 | ||
516 | 2024-07-24 Jennifer Schmitz <jschmitz@nvidia.com> | |
517 | ||
518 | * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement | |
519 | fusion logic. | |
520 | * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry. | |
521 | (cmp+cset): Likewise. | |
522 | * config/aarch64/tuning_models/neoversev2.h: Enable logic in | |
523 | field fusible_ops. | |
524 | ||
525 | 2024-07-24 Christoph Müllner <christoph.muellner@vrull.eu> | |
526 | ||
527 | PR target/116035 | |
528 | * config/riscv/bitmanip.md: Disable zero_extendsidi2_bitmanip | |
529 | for XTheadMemIdx. | |
530 | ||
531 | 2024-07-24 Lingling Kong <lingling.kong@intel.com> | |
532 | ||
533 | PR target/115978 | |
534 | * config/i386/driver-i386.cc (host_detect_local_cpu): Enable | |
535 | APX_F only for 64-bit codegen. | |
536 | * config/i386/i386-options.cc (DEF_PTA): Skip PTA_APX_F if | |
537 | not in 64-bit mode. | |
538 | ||
539 | 2024-07-24 Pan Li <pan2.li@intel.com> | |
540 | ||
541 | PR target/115961 | |
542 | * internal-fn.cc (type_strictly_matches_mode_p): Add new func | |
543 | impl to check type strictly matches mode or not. | |
544 | (type_pair_strictly_matches_mode_p): Ditto but for tree type | |
545 | pair. | |
546 | (direct_internal_fn_supported_p): Add above check for the tree | |
547 | type pair. | |
548 | ||
549 | 2024-07-23 Mark Harmstone <mark@harmstone.com> | |
550 | ||
551 | * dwarf2codeview.cc (get_type_num_reference_type): Handle rvalue refs. | |
552 | (get_type_num_array_type): Add DW_TAG_rvalue_reference_type to switch. | |
553 | (get_type_num): Handle DW_TAG_rvalue_reference_type DIEs. | |
554 | * dwarf2codeview.h (CV_PTR_MODE_RVREF): Define. | |
555 | ||
556 | 2024-07-23 Mark Harmstone <mark@harmstone.com> | |
557 | ||
558 | * dwarf2codeview.cc (get_type_num_reference_type): New function. | |
559 | (get_type_num_array_type): Add DW_TAG_reference_type to switch. | |
560 | (get_type_num): Handle DW_TAG_reference_type DIEs. | |
561 | * dwarf2codeview.h (CV_PTR_MODE_LVREF): Define. | |
562 | ||
563 | 2024-07-23 Vineet Gupta <vineetg@rivosinc.com> | |
564 | ||
565 | * config/riscv/bitmanip.md: Fix splitter. | |
566 | ||
567 | 2024-07-23 Marek Polacek <polacek@redhat.com> | |
568 | ||
569 | * doc/extend.texi: Add missing @option. | |
570 | ||
571 | 2024-07-23 Andi Kleen <ak@linux.intel.com> | |
572 | ||
573 | PR c/83324 | |
574 | * doc/extend.texi: Document [[musttail]] | |
575 | ||
576 | 2024-07-23 Tobias Burnus <tburnus@baylibre.com> | |
577 | ||
578 | * doc/install.texi (amdgcn-x-amdhsa): Suggest newer git version | |
579 | for newlib. | |
580 | ||
581 | 2024-07-23 Jiufu Guo <guojiufu@linux.ibm.com> | |
582 | ||
583 | PR target/96866 | |
584 | * config/rs6000/rs6000.cc (print_operand_address): Emit message for | |
585 | unsupported operand. | |
586 | ||
587 | 2024-07-23 Richard Biener <rguenther@suse.de> | |
588 | ||
589 | PR tree-optimization/116002 | |
590 | * tree-ssa-structalias.cc (topo_visit): Also consider | |
591 | SCALAR = SCALAR complex constraints as edges. | |
592 | ||
593 | 2024-07-23 Jakub Jelinek <jakub@redhat.com> | |
594 | Andrew Pinski <quic_apinski@quicinc.com> | |
595 | ||
596 | PR tree-optimization/116034 | |
597 | * tree-ssa.cc (maybe_rewrite_mem_ref_base): Only use IMAGPART_EXPR | |
598 | if MEM_REF offset is equal to element type size. | |
599 | ||
600 | 2024-07-23 Richard Biener <rguenther@suse.de> | |
601 | ||
602 | PR rtl-optimization/116002 | |
603 | * cselib.cc (cselib_hash_rtx): Use inchash to get proper mixing. | |
604 | Consistently avoid a zero return value when hashing successfully. | |
605 | Consistently treat a zero hash value from recursing as fatal. | |
606 | Use hashval_t where appropriate. | |
607 | (cselib_hash_plus_const_int): Likewise. | |
608 | (new_cselib_val): Use hashval_t. | |
609 | (cselib_lookup_1): Likewise. | |
610 | ||
611 | 2024-07-23 liuhongt <hongtao.liu@intel.com> | |
612 | ||
613 | * config/i386/i386.cc (ix86_hardreg_mov_ok): Relax mov subreg | |
614 | to hard register after split1. | |
615 | ||
616 | 2024-07-23 Kewen Lin <linkw@linux.ibm.com> | |
617 | ||
618 | PR target/115713 | |
619 | * config/rs6000/rs6000.cc (rs6000_inner_target_options): Update option | |
620 | set information for rs6000_opt_vars. | |
621 | ||
622 | 2024-07-23 Kewen Lin <linkw@linux.ibm.com> | |
623 | ||
624 | PR target/115713 | |
625 | * config/rs6000/rs6000.cc (rs6000_inner_target_options): Avoid to | |
626 | enable altivec or disable avoid-indexed-addresses automatically | |
627 | when they get specified explicitly. | |
628 | ||
629 | 2024-07-23 Kewen Lin <linkw@linux.ibm.com> | |
630 | ||
631 | PR target/115713 | |
632 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Emit error | |
633 | messages when explicit VSX encounters explicit soft-float, no-altivec | |
634 | or avoid-indexed-addresses. | |
635 | ||
636 | 2024-07-23 Haochen Jiang <haochen.jiang@intel.com> | |
637 | ||
638 | * config/i386/i386.md (prefetchi): Change to %a. | |
639 | ||
640 | 2024-07-23 Jeff Law <jlaw@ventanamicro.com> | |
641 | ||
642 | PR rtl-optimization/115877 | |
643 | * ext-dce.cc (ext_dce_process_sets): Reasonably handle input/output | |
644 | operands. | |
645 | (ext_dce_rd_transfer_n): Drop bogus assertion. | |
646 | ||
647 | 2024-07-23 Pan Li <pan2.li@intel.com> | |
648 | ||
649 | * config/riscv/iterators.md (ANYI_DOUBLE_TRUNC): Add new iterator | |
650 | for int double truncation. | |
651 | (ANYI_DOUBLE_TRUNCATED): Add new attr for int double truncation. | |
652 | (anyi_double_truncated): Ditto but for lowercase. | |
653 | * config/riscv/riscv-protos.h (riscv_expand_ustrunc): Add new | |
654 | func decl for expanding ustrunc | |
655 | * config/riscv/riscv.cc (riscv_expand_ustrunc): Add new func | |
656 | impl to expand ustrunc. | |
657 | * config/riscv/riscv.md (ustrunc<mode><anyi_double_truncated>2): Impl | |
658 | the new pattern ustrunc<m><n>2 for int. | |
659 | ||
660 | 2024-07-22 Jan Hubicka <hubicka@ucw.cz> | |
661 | ||
662 | PR ipa/109985 | |
663 | * ipa-modref.cc (modref_summary::useful_p): Fix handling of ECF_NOVOPS. | |
664 | (modref_access_analysis::process_fnspec): Likevise. | |
665 | (modref_access_analysis::analyze_call): Likevise. | |
666 | (propagate_unknown_call): Likevise. | |
667 | (modref_propagate_in_scc): Likevise. | |
668 | (modref_propagate_flags_in_scc): Likewise. | |
669 | (ipa_merge_modref_summary_after_inlining): Likewise. | |
670 | ||
671 | 2024-07-22 Jan Hubicka <hubicka@ucw.cz> | |
672 | ||
673 | PR ipa/111613 | |
674 | * ipa-modref.cc (analyze_parms): Do not preserve EAF_NO_DIRECT_READ and | |
675 | EAF_NO_INDIRECT_READ from past flags. | |
676 | ||
677 | 2024-07-22 Michael Meissner <meissner@linux.ibm.com> | |
678 | ||
679 | * config.gcc (powerpc*-*-*): Add support for power11. | |
680 | * config/rs6000/aix71.h (ASM_CPU_SPEC): Add support for -mcpu=power11. | |
681 | * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. | |
682 | * config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise. | |
683 | * config/rs6000/driver-rs6000.cc (asm_names): Likewise. | |
684 | * config/rs6000/ppc-auxv.h (PPC_PLATFORM_POWER11): New define. | |
685 | * config/rs6000/rs6000-builtin.cc (cpu_is_info): Add power11. | |
686 | * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define | |
687 | _ARCH_PWR11 if -mcpu=power11. | |
688 | * config/rs6000/rs6000-cpus.def (POWER11_MASKS_SERVER): New define. | |
689 | (POWERPC_MASKS): Add power11. | |
690 | (power11 cpu): Add power11 definition. | |
691 | * config/rs6000/rs6000-opts.h (PROCESSOR_POWER11): Add power11 processor. | |
692 | * config/rs6000/rs6000-string.cc (expand_compare_loop): Likewise. | |
693 | * config/rs6000/rs6000-tables.opt: Regenerate. | |
694 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Add power11 | |
695 | support. | |
696 | (rs6000_machine_from_flags): Likewise. | |
697 | (rs6000_reassociation_width): Likewise. | |
698 | (rs6000_adjust_cost): Likewise. | |
699 | (rs6000_issue_rate): Likewise. | |
700 | (rs6000_sched_reorder): Likewise. | |
701 | (rs6000_sched_reorder2): Likewise. | |
702 | (rs6000_register_move_cost): Likewise. | |
703 | (rs6000_opt_masks): Likewise. | |
704 | * config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise. | |
705 | * config/rs6000/rs6000.md (cpu attribute): Add power11. | |
706 | * config/rs6000/rs6000.opt (-mpower11): Add internal power11 flag. | |
707 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=power11. | |
708 | * config/rs6000/power10.md (all reservations): Add power11 support. | |
709 | ||
710 | 2024-07-22 Jeff Law <jlaw@ventanamicro.com> | |
711 | ||
712 | PR rtl-optimization/115877 | |
713 | * ext-dce.cc (ext_dce_process_sets): More correctly handle SUBREG | |
714 | destinations. | |
715 | ||
716 | 2024-07-22 Jan Hubicka <hubicka@ucw.cz> | |
717 | ||
718 | PR ipa/115033 | |
719 | * ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Fix checking of | |
720 | EAF flags when analysing values dereferenced as function parameters. | |
721 | ||
722 | 2024-07-22 Jan Hubicka <hubicka@ucw.cz> | |
723 | ||
724 | PR ipa/114207 | |
725 | * ipa-prop.cc (unadjusted_ptr_and_unit_offset): Fix accounting of offsets in ADDR_EXPR. | |
726 | ||
727 | 2024-07-22 Jan Hubicka <hubicka@ucw.cz> | |
728 | ||
729 | PR ipa/115277 | |
730 | * ipa-icf-gimple.cc (func_checker::compare_loops): compare loop | |
731 | bounds. | |
732 | ||
733 | 2024-07-22 Richard Sandiford <richard.sandiford@arm.com> | |
734 | ||
735 | PR rtl-optimization/116009 | |
736 | * rtl-ssa/accesses.cc (function_info::add_def): Set the root | |
737 | local variable after removing the old clobber group. | |
738 | ||
739 | 2024-07-22 Richard Sandiford <richard.sandiford@arm.com> | |
740 | ||
741 | * rtl-ssa/accesses.h (rtl_ssa::pp_def_splay_tree): Declare. | |
742 | (dump, debug): Add overloads for def_splay_tree. | |
743 | * rtl-ssa/accesses.cc (rtl_ssa::pp_def_splay_tree): New function. | |
744 | (dump, debug): Add overloads for def_splay_tree. | |
745 | ||
746 | 2024-07-22 Richard Sandiford <richard.sandiford@arm.com> | |
747 | ||
748 | PR target/115969 | |
749 | * config/aarch64/aarch64.cc (aarch64_simd_mem_operand_p): Require | |
750 | the operand to be a legitimate memory_operand. | |
751 | ||
752 | 2024-07-22 Jeff Law <jlaw@ventanamicro.com> | |
753 | ||
754 | PR rtl-optimization/115877 | |
755 | * ext-dce.cc (group_limit): New function. | |
756 | (mark_reg_live): Likewise. | |
757 | (ext_dce_process_sets): Use new functions. | |
758 | (ext_dce_process_uses): Likewise. | |
759 | (ext_dce_init): Likewise. | |
760 | ||
761 | 2024-07-22 Richard Biener <rguenther@suse.de> | |
762 | ||
763 | * fold-const.cc (operand_compare::hash_operand): Fix hash | |
764 | of WIDEN_*_EXPR. | |
765 | ||
766 | 2024-07-22 Richard Biener <rguenther@suse.de> | |
767 | ||
768 | * inchash.h (inchash::end): Make const. | |
769 | (inchash::merge): Take const reference hash argument. | |
770 | (inchash::add_commutative): Likewise. | |
771 | ||
772 | 2024-07-22 Tamar Christina <tamar.christina@arm.com> | |
773 | ||
774 | PR tree-optimization/115531 | |
775 | * config/aarch64/aarch64.cc | |
776 | (aarch64_conditional_operation_is_expensive): New. | |
777 | (TARGET_VECTORIZE_CONDITIONAL_OPERATION_IS_EXPENSIVE): New. | |
778 | ||
779 | 2024-07-22 Tamar Christina <tamar.christina@arm.com> | |
780 | ||
781 | PR tree-optimization/115531 | |
782 | * tree-vect-patterns.cc (vect_cond_store_pattern_same_ref): New. | |
783 | (vect_recog_cond_store_pattern): New. | |
784 | (vect_vect_recog_func_ptrs): Use it. | |
785 | * target.def (conditional_operation_is_expensive): New. | |
786 | * doc/tm.texi: Regenerate. | |
787 | * doc/tm.texi.in: Document it. | |
788 | * targhooks.cc (default_conditional_operation_is_expensive): New. | |
789 | * targhooks.h (default_conditional_operation_is_expensive): New. | |
790 | ||
791 | 2024-07-21 Jeff Law <jlaw@ventanamicro.com> | |
792 | ||
793 | PR rtl-optimization/115877 | |
794 | * ext-dce.cc (safe_for_live_propagation): Handle RTX_CONST_OBJ. | |
795 | ||
796 | 2024-07-21 Jeff Law <jlaw@ventanamicro.com> | |
797 | ||
798 | PR rtl-optimization/115877 | |
799 | * ext-dce.cc (ext_dce_process_uses): Restore the value of DST_MASK | |
800 | for reach operand. | |
801 | ||
802 | 2024-07-21 Sam James <sam@gentoo.org> | |
803 | ||
804 | * Makefile.in (NOCOMMON_FLAG): Delete. | |
805 | (GCC_WARN_CFLAGS): Drop NOCOMMON_FLAG. | |
806 | (GCC_WARN_CXXFLAGS): Drop NOCOMMON_FLAG. | |
807 | * configure.ac: Ditto. | |
808 | * configure: Regenerate. | |
809 | ||
810 | 2024-07-21 Oleg Endo <olegendo@gcc.gnu.org> | |
811 | ||
812 | * config/sh/sh.md (mov_neg_si_t): Allow insn and split after | |
813 | register allocation. | |
814 | (*treg_noop_move): New insn. | |
815 | ||
816 | 2024-07-20 Andi Kleen <ak@gcc.gnu.org> | |
817 | ||
818 | Revert: | |
819 | 2024-07-20 Andi Kleen <ak@linux.intel.com> | |
820 | ||
821 | PR c/83324 | |
822 | * doc/extend.texi: Document [[musttail]] | |
823 | ||
824 | 2024-07-20 Mark Harmstone <mark@harmstone.com> | |
825 | ||
826 | * dwarf2codeview.cc (enum cv_sym_type): Add new values. | |
827 | (struct codeview_symbol): Add function to union. | |
828 | (struct codeview_custom_type): Add lf_func_id to union. | |
829 | (write_function): New function. | |
830 | (write_codeview_symbols): Call write_function. | |
831 | (write_lf_func_id): New function. | |
832 | (write_custom_types): Call write_lf_func_id. | |
833 | (add_function): New function. | |
834 | (codeview_debug_early_finish): Call add_function. | |
835 | ||
836 | 2024-07-20 André Maroneze <andre.maroneze@cea.fr> | |
837 | ||
838 | * doc/invoke.texi (Spec Files): Remove documentation of obsolete | |
839 | spec strings "predefines" and "signed_char". | |
840 | ||
841 | 2024-07-20 Siddhesh Poyarekar <siddhesh@gotplt.org> | |
842 | ||
843 | * opt-suggestions.cc | |
844 | (option_proposer::build_option_suggestions): Pull OPTB | |
845 | definition out of the innermost loop. | |
846 | ||
847 | 2024-07-20 Andi Kleen <ak@linux.intel.com> | |
848 | ||
849 | PR c/83324 | |
850 | * doc/extend.texi: Document [[musttail]] | |
851 | ||
852 | 2024-07-20 Lulu Cheng <chenglulu@loongson.cn> | |
853 | ||
854 | * config/loongarch/loongarch-protos.h | |
855 | (loongarch_split_128bit_move): Delete. | |
856 | (loongarch_split_128bit_move_p): Delete. | |
857 | (loongarch_split_256bit_move): Delete. | |
858 | (loongarch_split_256bit_move_p): Delete. | |
859 | (loongarch_split_vector_move): Add a function declaration. | |
860 | * config/loongarch/loongarch.cc | |
861 | (loongarch_vector_costs::finish_cost): Adjust the code | |
862 | formatting. | |
863 | (loongarch_split_vector_move_p): Merge | |
864 | loongarch_split_128bit_move_p and loongarch_split_256bit_move_p. | |
865 | (loongarch_split_move_p): Merge code. | |
866 | (loongarch_split_move): Likewise. | |
867 | (loongarch_split_128bit_move_p): Delete. | |
868 | (loongarch_split_256bit_move_p): Delete. | |
869 | (loongarch_split_128bit_move): Delete. | |
870 | (loongarch_split_vector_move): Merge loongarch_split_128bit_move | |
871 | and loongarch_split_256bit_move. | |
872 | (loongarch_split_256bit_move): Delete. | |
873 | (loongarch_global_init): Remove the extra semicolon at the | |
874 | end of the function. | |
875 | * config/loongarch/loongarch.md (*movdf_softfloat): Added a new | |
876 | condition TARGET_64BIT. | |
877 | ||
878 | 2024-07-19 Andrew MacLeod <amacleod@redhat.com> | |
879 | ||
880 | PR tree-optimization/116003 | |
881 | * value-relation.cc (equiv_oracle::register_initial_def): Check | |
882 | if SSA_NAME is in the IL before registering. | |
883 | ||
884 | 2024-07-19 Thomas Schwinge <tschwinge@baylibre.com> | |
885 | ||
886 | * passes.def: Rewrite usage comment at the top. | |
887 | ||
888 | 2024-07-19 Richard Sandiford <richard.sandiford@arm.com> | |
889 | ||
890 | PR middle-end/115406 | |
891 | * fold-const.cc (native_encode_vector_part): For vector booleans, | |
892 | check whether an element is nonzero and, if so, set all of the | |
893 | correspending bits in the target image. | |
894 | * simplify-rtx.cc (native_encode_rtx): Likewise. | |
895 | ||
896 | 2024-07-19 Georg-Johann Lay <avr@gjlay.de> | |
897 | ||
898 | * config/avr/builtins.def (MASK1): New DEF_BUILTIN. | |
899 | * config/avr/avr.cc (avr_rtx_costs_1): Handle rtx costs for | |
900 | expressions like __builtin_avr_mask1. | |
901 | (avr_init_builtins) <uintQI_ftype_uintQI_uintQI>: New tree type. | |
902 | (avr_expand_builtin) [AVR_BUILTIN_MASK1]: Diagnose unexpected forms. | |
903 | (avr_fold_builtin) [AVR_BUILTIN_MASK1]: Handle case. | |
904 | * config/avr/avr.md (gen_mask1): New expand helper. | |
905 | (mask1_0x01_split, mask1_0x80_split, mask1_0xfe_split): New | |
906 | insn-and-split. | |
907 | (*mask1_0x01, *mask1_0x80, *mask1_0xfe): New insns. | |
908 | * doc/extend.texi (AVR Built-in Functions) <__builtin_avr_mask1>: | |
909 | Document new built-in function. | |
910 | ||
911 | 2024-07-19 Cupertino Miranda <cupertino.miranda@oracle.com> | |
912 | ||
913 | * config/bpf/atomic.md (atomic_compare_and_swap, | |
914 | atomic_exchange): Add operand modifier %M to the first | |
915 | operand. | |
916 | * config/bpf/bpf.cc (no_parentheses_mem_operand): Create | |
917 | variable. | |
918 | (bpf_print_operand): Set no_parentheses_mem_operand variable if | |
919 | %M operand is used. | |
920 | (bpf_print_operand_address): Conditionally output parentheses. | |
921 | ||
922 | 2024-07-19 Pan Li <pan2.li@intel.com> | |
923 | ||
924 | PR target/115863 | |
925 | * match.pd: Add single_use check for .SAT_TRUNC form 2. | |
926 | ||
927 | 2024-07-18 René Rebe <rene@exactcode.de> | |
928 | Peter Bergner <bergner@linux.ibm.com> | |
929 | ||
930 | PR target/97367 | |
931 | * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Do not consider | |
932 | OPTION_MASK_ALTIVEC. | |
933 | (emit_asm_machine): For Altivec compiles, emit a ".machine altivec". | |
934 | ||
935 | 2024-07-18 Marek Polacek <polacek@redhat.com> | |
936 | Jakub Jelinek <jakub@redhat.com> | |
937 | ||
938 | PR c++/115865 | |
939 | * tree-eh.cc (get_eh_else): Check that the result of | |
940 | gimple_seq_first_stmt is non-null. | |
941 | ||
942 | 2024-07-18 LIU Hao <lh_mouse@126.com> | |
943 | ||
944 | PR rtl-optimization/115049 | |
945 | * varasm.cc (decl_binds_to_current_def_p): Add a check for COMDAT | |
946 | declarations too, like weak ones. | |
947 | ||
948 | 2024-07-18 Richard Biener <rguenther@suse.de> | |
949 | ||
950 | PR middle-end/115641 | |
951 | * fold-const.cc (decode_field_reference): If the inner | |
952 | reference isn't something we can take the address of, fail. | |
953 | ||
954 | 2024-07-18 Pan Li <pan2.li@intel.com> | |
955 | ||
956 | * doc/md.texi: Add Standard-Names ustrunc and sstrunc. | |
957 | ||
958 | 2024-07-18 Rubin Gerritsen <rubin.gerritsen@gmail.com> | |
959 | ||
960 | * gimple-fold.cc (dump_transformation): Moved definition. | |
961 | (replace_call_with_call_and_fold): Calls dump_transformation. | |
962 | (gimple_fold_builtin_stxcpy_chk): Removes call to | |
963 | dump_transformation, now in replace_call_with_call_and_fold. | |
964 | (gimple_fold_builtin_stxncpy_chk): Removes call to | |
965 | dump_transformation, now in replace_call_with_call_and_fold. | |
966 | ||
967 | 2024-07-18 Richard Biener <rguenther@suse.de> | |
968 | ||
969 | PR tree-optimization/104515 | |
970 | * tree-ssa-loop-im.cc (execute_sm_exit): Add clobbers_to_prune | |
971 | parameter and handle re-materializing of clobbers. | |
972 | (sm_seq_valid_bb): end-of-storage/object clobbers are OK inside | |
973 | an ordered sequence of stores. | |
974 | (sm_seq_push_down): Refuse to push down clobbers. | |
975 | (hoist_memory_references): Prune clobbers from the loop body | |
976 | we re-materialized on an exit. | |
977 | ||
978 | 2024-07-18 Roger Sayle <roger@nextmovesoftware.com> | |
979 | ||
980 | * match.pd ((FTYPE) N CMP CST): Only worry about exceptions with | |
981 | flag_trapping_math, and about signaling NaNs with HONOR_SNANS. | |
982 | ||
983 | 2024-07-18 Kyrylo Tkachov <ktkachov@nvidia.com> | |
984 | ||
985 | * doc/invoke.texi (AArch64 Options): Document rewriting of | |
986 | -march=native to -mcpu=native. | |
987 | ||
988 | 2024-07-18 liuhongt <hongtao.liu@intel.com> | |
989 | ||
990 | PR target/115843 | |
991 | * config/i386/predicates.md (const0_or_m1_operand): New | |
992 | predicate. | |
993 | * config/i386/sse.md (*<avx512>_store<mode>_mask_1): New | |
994 | pre_reload define_insn_and_split. | |
995 | (V): Add V32BF,V16BF,V8BF. | |
996 | (V4SF_V8BF): Rename to .. | |
997 | (V24F_128): .. this. | |
998 | (*vec_concat<mode>): Adjust with V24F_128. | |
999 | (*vec_concat<mode>_0): Ditto. | |
1000 | ||
1001 | 2024-07-18 Andi Kleen <ak@linux.intel.com> | |
1002 | ||
1003 | PR c/83324 | |
1004 | * calls.cc (initialize_argument_information): Mark messages | |
1005 | for translation. | |
1006 | (can_implement_as_sibling_call_p): Dito. | |
1007 | (expand_call): Dito. | |
1008 | ||
1009 | 2024-07-18 Andi Kleen <ak@linux.intel.com> | |
1010 | ||
1011 | PR c/83324 | |
1012 | * tree-tailcall.cc (maybe_error_musttail): New function. | |
1013 | (suitable_for_tail_opt_p): Report error reason. | |
1014 | (suitable_for_tail_call_opt_p): Report error reason. | |
1015 | (find_tail_calls): Accept basic blocks with abnormal edges. | |
1016 | Delay reporting of errors until the call is discovered. | |
1017 | Move top level suitability checks to here. | |
1018 | (tree_optimize_tail_calls_1): Remove top level checks. | |
1019 | ||
1020 | 2024-07-18 Andi Kleen <ak@linux.intel.com> | |
1021 | ||
1022 | PR c/83324 | |
1023 | * function.h (struct function): Add has_musttail. | |
1024 | * lto-streamer-in.cc (input_struct_function_base): Stream | |
1025 | has_musttail. | |
1026 | * lto-streamer-out.cc (output_struct_function_base): Dito. | |
1027 | * passes.def (pass_musttail): Add. | |
1028 | * tree-cfg.cc (notice_special_calls): Record has_musttail. | |
1029 | (clear_special_calls): Clear has_musttail. | |
1030 | * tree-pass.h (make_pass_musttail): Add. | |
1031 | * tree-tailcall.cc (find_tail_calls): Handle only_musttail | |
1032 | argument. | |
1033 | (tree_optimize_tail_calls_1): Pass on only_musttail. | |
1034 | (execute_tail_calls): Pass only_musttail as false. | |
1035 | (class pass_musttail): Add. | |
1036 | (make_pass_musttail): Add. | |
1037 | ||
1038 | 2024-07-18 Andi Kleen <ak@linux.intel.com> | |
1039 | ||
1040 | PR target/115255 | |
1041 | * function.cc (thread_prologue_and_epilogue_insns): Check | |
1042 | cfun->tail_call_marked for sibcalls too. | |
1043 | (rest_of_handle_thread_prologue_and_epilogue): Dito. | |
1044 | ||
1045 | 2024-07-18 Andi Kleen <ak@linux.intel.com> | |
1046 | ||
1047 | PR c/83324 | |
1048 | * calls.cc (maybe_complain_about_tail_call): Clear must tail | |
1049 | flag on error. | |
1050 | (expand_call): Give error messages for all musttail failures. | |
1051 | ||
1052 | 2024-07-17 Richard Sandiford <richard.sandiford@arm.com> | |
1053 | ||
1054 | PR rtl-optimization/115929 | |
1055 | * rtl-ssa/movement.h (canonicalize_move_range): Check for null prev | |
1056 | and next insns and create an invalid move range for them. | |
1057 | ||
1058 | 2024-07-17 Richard Sandiford <richard.sandiford@arm.com> | |
1059 | ||
1060 | PR rtl-optimization/115928 | |
1061 | * rtl-ssa/accesses.h (clobber_group): Add a new constructor that | |
1062 | takes the first, last and root clobbers. | |
1063 | * rtl-ssa/internals.inl (clobber_group::clobber_group): Define it. | |
1064 | * rtl-ssa/accesses.cc (function_info::split_clobber_group): Use it. | |
1065 | Allocate a new group for both sides and invalidate the previous group. | |
1066 | (function_info::add_def): After calling split_clobber_group, | |
1067 | remove the old group from the splay tree. | |
1068 | ||
1069 | 2024-07-17 Richard Sandiford <richard.sandiford@arm.com> | |
1070 | ||
1071 | * genattrtab.cc (attr_desc::cxx_type): New field. | |
1072 | (write_attr_get, write_attr_value): Use it. | |
1073 | (gen_attr, find_attr, make_internal_attr): Initialize it, | |
1074 | dropping enum tags. | |
1075 | ||
1076 | 2024-07-17 Eikansh Gupta <quic_eikagupt@quicinc.com> | |
1077 | ||
1078 | PR tree-optimization/111150 | |
1079 | * match.pd (`(a ? x : y) eq/ne (b ? x : y)`): New pattern. | |
1080 | (`(a ? x : y) eq/ne (b ? y : x)`): New pattern. | |
1081 | ||
1082 | 2024-07-17 Andrew Pinski <quic_apinski@quicinc.com> | |
1083 | ||
1084 | * dbgcnt.def (ext_dce): New debug counter. | |
1085 | * ext-dce.cc (ext_dce_try_optimize_insn): Reject the insn | |
1086 | if the debug counter says so. | |
1087 | (ext_dce): Rename to ... | |
1088 | (ext_dce_execute): This. | |
1089 | (pass_ext_dce::execute): Update for the name of ext_dce. | |
1090 | ||
1091 | 2024-07-17 Uros Bizjak <ubizjak@gmail.com> | |
1092 | ||
1093 | PR target/115526 | |
1094 | * config/alpha/alpha.md (movdi_er_high_g): Add cannot_copy attribute. | |
1095 | (movdi_er_tlsgd): Ditto. | |
1096 | (movdi_er_tlsldm): Ditto. | |
1097 | (call_value_osf_<tls>): Ditto. | |
1098 | ||
1099 | 2024-07-17 Georg-Johann Lay <avr@gjlay.de> | |
1100 | ||
1101 | PR target/90616 | |
1102 | * config/avr/predicates.md (const_0mod256_operand): New predicate. | |
1103 | * config/avr/constraints.md (Cp8): New constraint. | |
1104 | * config/avr/avr.md (*aligned_add_symbol): New insn. | |
1105 | * config/avr/avr.cc (avr_out_plus_symbol) [HImode]: | |
1106 | When op2 is a multiple of 256, there is no need to add / subtract | |
1107 | the lo8 part. | |
1108 | (avr_rtx_costs_1) [PLUS && HImode]: Return expected costs for | |
1109 | new insn *aligned_add_symbol as it applies. | |
1110 | ||
1111 | 2024-07-17 Jakub Jelinek <jakub@redhat.com> | |
1112 | ||
1113 | PR middle-end/115887 | |
1114 | * gimple-lower-bitint.cc (gimple_lower_bitint): Use gsi_insert_on_edge | |
1115 | instead of gsi_insert_on_edge_immediate and set edge_insertions to | |
1116 | true. | |
1117 | ||
1118 | 2024-07-17 Jakub Jelinek <jakub@redhat.com> | |
1119 | ||
1120 | * varasm.cc (default_elf_asm_output_ascii): Use ASM_OUTPUT_SKIP instead | |
1121 | of 2 or more default_elf_asm_output_limited_string (f, "") calls and | |
1122 | adjust base64 heuristics correspondingly. | |
1123 | ||
1124 | 2024-07-17 Tamar Christina <tamar.christina@arm.com> | |
1125 | ||
1126 | PR tree-optimization/115936 | |
1127 | * tree-scalar-evolution.cc (simple_iv_with_niters): Use sizetype for | |
1128 | pointers. | |
1129 | ||
1130 | 2024-07-17 Feng Xue <fxue@os.amperecomputing.com> | |
1131 | ||
1132 | PR tree-optimization/114440 | |
1133 | * tree-vectorizer.h (struct _stmt_vec_info): Add a new field | |
1134 | reduc_result_pos. | |
1135 | * tree-vect-loop.cc (vect_transform_reduction): Generate lane-reducing | |
1136 | statements in an optimized order. | |
1137 | ||
1138 | 2024-07-17 Feng Xue <fxue@os.amperecomputing.com> | |
1139 | ||
1140 | PR tree-optimization/114440 | |
1141 | * tree-vectorizer.h (vectorizable_lane_reducing): New function | |
1142 | declaration. | |
1143 | * tree-vect-stmts.cc (vect_analyze_stmt): Call new function | |
1144 | vectorizable_lane_reducing to analyze lane-reducing operation. | |
1145 | * tree-vect-loop.cc (vect_model_reduction_cost): Remove cost computation | |
1146 | code related to emulated_mixed_dot_prod. | |
1147 | (vectorizable_lane_reducing): New function. | |
1148 | (vectorizable_reduction): Allow multiple lane-reducing operations in | |
1149 | loop reduction. Move some original lane-reducing related code to | |
1150 | vectorizable_lane_reducing. | |
1151 | (vect_transform_reduction): Adjust comments with updated example. | |
1152 | ||
1153 | 2024-07-17 Feng Xue <fxue@os.amperecomputing.com> | |
1154 | ||
1155 | * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): | |
1156 | Calculate effective vector stmts number with generic | |
1157 | vect_get_num_copies. | |
1158 | (vect_transform_reduction): Insert copies for lane-reducing so as to | |
1159 | fix over-estimated vector stmts number. | |
1160 | (vect_transform_cycle_phi): Calculate vector PHI number only based on | |
1161 | output vectype. | |
1162 | * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Remove | |
1163 | adjustment on vector stmts number specific to slp reduction. | |
1164 | ||
1165 | 2024-07-17 Feng Xue <fxue@os.amperecomputing.com> | |
1166 | ||
1167 | * tree-vectorizer.h (vect_get_num_copies): New overload function. | |
1168 | * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Calculate | |
1169 | number of vector stmts for slp node with vect_get_num_copies. | |
1170 | (vect_slp_analyze_node_operations): Calculate number of vector elements | |
1171 | for constant/external slp node with vect_get_num_copies. | |
1172 | ||
1173 | 2024-07-17 Richard Biener <rguenther@suse.de> | |
1174 | ||
1175 | PR tree-optimization/115959 | |
1176 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): | |
1177 | Get at the REDUC_IDX child in a safer way for COND_EXPR | |
1178 | nodes. | |
1179 | ||
1180 | 2024-07-17 Jakub Jelinek <jakub@redhat.com> | |
1181 | ||
1182 | PR other/115958 | |
1183 | * varasm.cc (default_elf_asm_output_ascii): Cast t - s to unsigned | |
1184 | to avoid -Wsign-compare warnings. | |
1185 | ||
1186 | 2024-07-17 Jakub Jelinek <jakub@redhat.com> | |
1187 | ||
1188 | PR middle-end/115527 | |
1189 | * gimple-fold.cc (clear_padding_flush): Introduce endsize | |
1190 | variable and use it instead of wordsize when comparing it against | |
1191 | nonzero_last. | |
1192 | (clear_padding_type): Increment off by sz. | |
1193 | ||
1194 | 2024-07-17 Haochen Gui <guihaoc@gcc.gnu.org> | |
1195 | ||
1196 | * config/rs6000/rs6000.md (mov<mode>cc, *mov<mode>cc_p10, | |
1197 | *mov<mode>cc_invert_p10, *fpmask<mode>, *xxsel<mode>, | |
1198 | @ieee_128bit_vsx_abs<mode>2, *ieee_128bit_vsx_nabs<mode>2, | |
1199 | add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2, | |
1200 | copysign<mode>3, copysign<mode>3_hard, copysign<mode>3_soft, | |
1201 | @neg<mode>2_hw, @abs<mode>2_hw, *nabs<mode>2_hw, fma<mode>4_hw, | |
1202 | *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw, | |
1203 | extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw, | |
1204 | trunc<mode>sf2_hw, fix<uns>_<IEEE128:mode><SDI:mode>2_hw, | |
1205 | fix<uns>_trunc<IEEE128:mode><QHI:mode>2, | |
1206 | *fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem, | |
1207 | float_<mode>di2_hw, float_<mode>si2_hw, | |
1208 | float<QHI:mode><IEEE128:mode>2, floatuns_<mode>di2_hw, | |
1209 | floatuns_<mode>si2_hw, floatuns<QHI:mode><IEEE128:mode>2, | |
1210 | floor<mode>2, ceil<mode>2, btrunc<mode>2, round<mode>2, | |
1211 | add<mode>3_odd, sub<mode>3_odd, mul<mode>3_odd, div<mode>3_odd, | |
1212 | sqrt<mode>2_odd, fma<mode>4_odd, *fms<mode>4_odd, *nfma<mode>4_odd, | |
1213 | *nfms<mode>4_odd, trunc<mode>df2_odd, *cmp<mode>_hw for IEEE128): | |
1214 | Remove guard FLOAT128_IEEE_P. | |
1215 | (@extenddf<mode>2_fprs, @extenddf<mode>2_vsx, | |
1216 | trunc<mode>df2_internal1, trunc<mode>df2_internal2, | |
1217 | fix_trunc_helper<mode>, neg<mode>2, *cmp<mode>_internal1, | |
1218 | *cmp<IBM128:mode>_internal2 for IBM128): Remove guard FLOAT128_IBM_P. | |
1219 | ||
1220 | 2024-07-17 Kewen Lin <linkw@linux.ibm.com> | |
1221 | ||
1222 | * config/rs6000/rs6000.cc (init_float128_ieee): Use trunc_optab rather | |
1223 | than sext_optab for converting FLOAT128_IBM_P mode to FLOAT128_IEEE_P | |
1224 | mode, and use sext_optab rather than trunc_optab for converting | |
1225 | FLOAT128_IEEE_P mode to FLOAT128_IBM_P mode. | |
1226 | (rs6000_expand_float128_convert): Likewise. | |
1227 | ||
1228 | 2024-07-17 Kewen Lin <linkw@linux.ibm.com> | |
1229 | ||
1230 | PR target/112993 | |
1231 | * tree.cc (build_common_tree_nodes): Drop the workaround for rs6000 | |
1232 | KFmode precision adjustment. | |
1233 | ||
1234 | 2024-07-17 Kewen Lin <linkw@linux.ibm.com> | |
1235 | ||
1236 | PR target/112993 | |
1237 | * value-range.h (range_compatible_p): Remove the workaround on | |
1238 | different type precision between _Float128 and long double. | |
1239 | ||
1240 | 2024-07-17 Kewen Lin <linkw@linux.ibm.com> | |
1241 | ||
1242 | PR target/112993 | |
1243 | * config/rs6000/rs6000-modes.def (IFmode, KFmode, TFmode): Define | |
1244 | with FLOAT_MODE instead of FRACTIONAL_FLOAT_MODE, don't use special | |
1245 | precisions any more. | |
1246 | (rs6000-modes.h): Remove include. | |
1247 | * config/rs6000/rs6000-modes.h: Remove. | |
1248 | * config/rs6000/rs6000.h (rs6000-modes.h): Remove include. | |
1249 | * config/rs6000/t-rs6000: Remove rs6000-modes.h include. | |
1250 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace | |
1251 | all uses of FLOAT_PRECISION_TFmode with 128. | |
1252 | (rs6000_c_mode_for_floating_type): Likewise. | |
1253 | * config/rs6000/rs6000.md (define_expand extendiftf2): Remove. | |
1254 | (define_expand extendifkf2): Remove. | |
1255 | (define_expand extendtfkf2): Remove. | |
1256 | (define_expand trunckftf2): Remove. | |
1257 | (define_expand trunctfif2): Remove. | |
1258 | (define_expand extendtfif2): Add new assertion. | |
1259 | (define_expand expandkftf2): New. | |
1260 | (define_expand trunciftf2): Add new assertion. | |
1261 | (define_expand trunctfkf2): New. | |
1262 | (define_expand truncifkf2): Change with gcc_unreachable. | |
1263 | (define_expand expandkfif2): New. | |
1264 | (define_insn_and_split extendkftf2): Rename to ... | |
1265 | (define_insn_and_split *extendkftf2): ... this. | |
1266 | (define_insn_and_split trunctfkf2): Rename to ... | |
1267 | (define_insn_and_split *extendtfkf2): ... this. | |
1268 | ||
1269 | 2024-07-17 Kewen Lin <linkw@linux.ibm.com> | |
1270 | ||
1271 | PR target/112993 | |
1272 | * expr.cc (convert_mode_scalar): Allow same precision conversion | |
1273 | between scalar floating point modes if whose underlying format is | |
1274 | ibm_extended_format or ieee_quad_format, and refactor assertion | |
1275 | with new lambda function acceptable_same_precision_modes. Use | |
1276 | trunc_optab rather than sext_optab for ibm128 to ieee128 conversion. | |
1277 | * optabs-libfuncs.cc (gen_trunc_conv_libfunc): Use trunc_optab rather | |
1278 | than sext_optab for ibm128 to ieee128 conversion. | |
1279 | ||
1280 | 2024-07-17 Peter Bergner <bergner@linux.ibm.com> | |
1281 | ||
1282 | PR target/114759 | |
1283 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disallow | |
1284 | CPUs and ABIs that do no support the ROP protection insns. | |
1285 | * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Remove now | |
1286 | unneeded tests. | |
1287 | (rs6000_emit_prologue): Likewise. | |
1288 | Remove unneeded gcc_assert. | |
1289 | (rs6000_emit_epilogue): Likewise. | |
1290 | * config/rs6000/rs6000.md: Likewise. | |
1291 | ||
1292 | 2024-07-17 Peter Bergner <bergner@linux.ibm.com> | |
1293 | ||
1294 | PR target/114759 | |
1295 | * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Use TARGET_POWER8. | |
1296 | (rs6000_emit_prologue): Likewise. | |
1297 | * config/rs6000/rs6000.md (hashchk): Likewise. | |
1298 | (hashst): Likewise. | |
1299 | Fix whitespace. | |
1300 | ||
1301 | 2024-07-16 Andrew MacLeod <amacleod@redhat.com> | |
1302 | ||
1303 | PR tree-optimization/115951 | |
1304 | * range-op-ptr.cc (operator_equal::fold_range): Return a boolean | |
1305 | range with the requested type. | |
1306 | (operator_not_equal::fold_range): Likewise. | |
1307 | (operator_lt::fold_range): Likewise. | |
1308 | (operator_le::fold_range): Likewise. | |
1309 | (operator_gt::fold_range): Likewise. | |
1310 | (operator_ge::fold_range): Likewise. | |
1311 | ||
1312 | 2024-07-16 Iain Sandoe <iain@sandoe.co.uk> | |
1313 | ||
1314 | PR c++/115434 | |
1315 | PR c++/110871 | |
1316 | PR c++/110872 | |
1317 | * gimplify.cc (struct gimplify_ctx): Add a flag to show we are | |
1318 | expending a handler. | |
1319 | (gimplify_expr): When we are expanding a handler, and the body | |
1320 | transforms might have re-written DECL_RESULT into a gimple var, | |
1321 | ensure that hander references to DECL_RESULT are also re-written | |
1322 | to refer to the gimple var. When we are processing an EH_ELSE | |
1323 | expression, then add it if either of the cleanup slots is in | |
1324 | use. | |
1325 | ||
1326 | 2024-07-16 Richard Sandiford <richard.sandiford@arm.com> | |
1327 | ||
1328 | PR rtl-optimization/115929 | |
1329 | * rtl-ssa/insns.cc (function_info::remove_insn): Remove an | |
1330 | order_node from the instruction as well as from the splay tree. | |
1331 | ||
1332 | 2024-07-16 Richard Sandiford <richard.sandiford@arm.com> | |
1333 | ||
1334 | PR rtl-optimization/115901 | |
1335 | * recog.cc (insn_propagation::apply_to_rvalue_1): Restrict | |
1336 | paradoxical mode punning to cases where "to" is constant. | |
1337 | ||
1338 | 2024-07-16 Richard Sandiford <richard.sandiford@arm.com> | |
1339 | ||
1340 | PR rtl-optimization/115891 | |
1341 | * rtl-ssa/changes.cc (find_clobbered_access): New function. | |
1342 | (recog_level2): Use it to check for overlap between input | |
1343 | registers and hard-coded clobbers. Conditionally reset | |
1344 | recog_data.insn after changing the insn code. | |
1345 | ||
1346 | 2024-07-16 Georg-Johann Lay <avr@gjlay.de> | |
1347 | ||
1348 | * config/avr/avr.cc (avr_out_minus): Assimilate into... | |
1349 | (avr_out_plus_ext): ...this new function. | |
1350 | (avr_adjust_insn_length) [ADJUST_LEN_PLUS_EXT]: Handle case. | |
1351 | (avr_rtx_costs_1) [PLUS, MINUS]: Adjust RTX costs. | |
1352 | * config/avr/avr.md (adjust_len) <plus_ext>: Add new attribute value. | |
1353 | (*addpsi3_zero_extend.hi_split): Assimilate... | |
1354 | (*addpsi3_zero_extend.qi_split): Assimilate... | |
1355 | (*addsi3_zero_extend_split): Assimilate... | |
1356 | (*addsi3_zero_extend.hi_split): Assimilate... | |
1357 | (*addpsi3_sign_extend.hi_split): Assimilate... | |
1358 | (*addhi3.sign_extend1_split): Assimilate... | |
1359 | (*add<PSISI:mode>3.<code>.<QIPSI:mode>_split): ...into this | |
1360 | new insn-and-split. | |
1361 | (*addpsi3_zero_extend.hi): Assimilate... | |
1362 | (*addpsi3_zero_extend.qi): Assimilate... | |
1363 | (*addsi3_zero_extend): Assimilate... | |
1364 | (*addsi3_zero_extend.hi): Assimilate... | |
1365 | (*addpsi3_sign_extend.hi): Assimilate... | |
1366 | (*addhi3.sign_extend1): Assimilate... | |
1367 | (*add<PSISI:mode>3.<code>.<QIPSI:mode>): ...into this new insn. | |
1368 | (*subpsi3_sign_extend.hi_split): Assimilate... | |
1369 | (*subhi3.sign_extend2_split): Assimilate... | |
1370 | (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>_split): Assimilate... | |
1371 | (*sub<HISI:mode>3.<code><QIPSI:mode>_split): ...into this new | |
1372 | insn-and-split. | |
1373 | (*subpsi3_sign_extend.hi): Assimilate... | |
1374 | (*subhi3.sign_extend2): Assimilate... | |
1375 | (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>): Assimilate... | |
1376 | (*sub<HISI:mode>3.<code>.<QIPSI:mode>): ...into this new insn. | |
1377 | (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>): Use avr_out_plus_ext | |
1378 | for asm out. | |
1379 | * config/avr/avr-protos.h (avr_out_minus): Remove. | |
1380 | (avr_out_plus_ext): New proto. | |
1381 | ||
1382 | 2024-07-16 Richard Biener <rguenther@suse.de> | |
1383 | ||
1384 | PR tree-optimization/115841 | |
1385 | * tree-vect-loop.cc (vect_transform_cycle_phi): Correctly | |
1386 | place the partial vector reduction for the accumulator | |
1387 | re-use when the main loop cannot be skipped but the | |
1388 | epilogue can. | |
1389 | ||
1390 | 2024-07-16 Georg-Johann Lay <avr@gjlay.de> | |
1391 | ||
1392 | * config/avr/avr-protos.h (avr_emit_xior_with_shift): New proto. | |
1393 | * config/avr/avr.cc (avr_emit_xior_with_shift): New function. | |
1394 | * config/avr/avr.md (any_lshift): New code iterator. | |
1395 | (*<xior:code><mode>.<any_lshift:code>): New insn-and-split. | |
1396 | (<code><HISI:mode><QIPSI:mode>.0): Replaces... | |
1397 | (*<code_stdname><mode>qi.byte0): ...this one. | |
1398 | (*<xior:code><HISI:mode><QIPSI:mode>.<any_lshift:code>): Replaces... | |
1399 | (*<code_stdname><mode>qi.byte1-3): ...this one. | |
1400 | ||
1401 | 2024-07-16 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
1402 | ||
1403 | * config/s390/3931.md (vlbr, vstbr): Remove. | |
1404 | * config/s390/s390.md (xdee): Add FPRX2 mapping. | |
1405 | * config/s390/vector.md (bhfgq): Add TF mapping. | |
1406 | ||
1407 | 2024-07-16 Richard Biener <rguenther@suse.de> | |
1408 | ||
1409 | * config/i386/x86-tune-costs.h (znver5_cost): Update unaligned | |
1410 | load and store cost from the aligned costs. | |
1411 | ||
1412 | 2024-07-16 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
1413 | ||
1414 | PR target/114189 | |
1415 | * config/s390/vector.md (V_HW2): Remove. | |
1416 | (vcond<V_HW:mode><V_HW2:mode>): Remove. | |
1417 | (vcondu<V_HW:mode><V_HW2:mode>): Remove. | |
1418 | ||
1419 | 2024-07-16 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
1420 | ||
1421 | * config/s390/vector.md: Enable vcond_mask for 128-bit ops. | |
1422 | ||
1423 | 2024-07-16 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
1424 | ||
1425 | * config/s390/vector.md (V_HW): Enable V1TI unconditionally and | |
1426 | add TI. | |
1427 | (vec_cmpu<VIT_HW:mode><VIT_HW:mode>): Add 128-bit integer | |
1428 | variants. | |
1429 | (*vec_cmpeq<mode><mode>_nocc_emu): Emulate operation. | |
1430 | (*vec_cmpgt<mode><mode>_nocc_emu): Emulate operation. | |
1431 | (*vec_cmpgtu<mode><mode>_nocc_emu): Emulate operation. | |
1432 | ||
1433 | 2024-07-16 Richard Biener <rguenther@suse.de> | |
1434 | ||
1435 | PR tree-optimization/115843 | |
1436 | * tree-vect-loop-manip.cc | |
1437 | (vect_set_loop_condition_partial_vectors_avx512): Properly | |
1438 | bias the shift of the initial mask for alignment peeling. | |
1439 | ||
1440 | 2024-07-16 Richard Biener <rguenther@suse.de> | |
1441 | ||
1442 | PR tree-optimization/115843 | |
1443 | * config/i386/x86-tune-costs.h (znver4_cost): Update unaligned | |
1444 | load and store cost from the aligned costs. | |
1445 | ||
1446 | 2024-07-16 Roger Sayle <roger@nextmovesoftware.com> | |
1447 | Richard Biener <rguenther@suse.de> | |
1448 | ||
1449 | PR tree-optimization/114661 | |
1450 | * match.pd ((X*C1)|(X*C2) to X*(C1+C2)): Allow optional useless | |
1451 | type conversions around multiplications, such as those inserted | |
1452 | by this transformation. | |
1453 | ||
1454 | 2024-07-16 Hu, Lin1 <lin1.hu@intel.com> | |
1455 | ||
1456 | PR target/107432 | |
1457 | * config/i386/sse.md | |
1458 | (PMOV_SRC_MODE_3_AVX2): Add TARGET_AVX2 for V4DI and V8SI. | |
1459 | (PMOV_SRC_MODE_4): Add TARGET_AVX2 for V4DI. | |
1460 | (trunc<mode><pmov_dst_3_lower>2): Change constraint from TARGET_AVX2 to | |
1461 | TARGET_SSSE3. | |
1462 | (trunc<mode><pmov_dst_4_lower>2): Ditto. | |
1463 | (truncv2div2si2): Change constraint from TARGET_AVX2 to TARGET_SSE. | |
1464 | ||
1465 | 2024-07-16 Jeff Law <jlaw@ventanamicro.com> | |
1466 | ||
1467 | * ext-dce.cc (ext_dce_process_uses): Simplify control flow and fix | |
1468 | liveness computation for shift/rotate counts. | |
1469 | ||
1470 | 2024-07-15 Jeff Law <jlaw@ventanamicro.com> | |
1471 | ||
1472 | * ext-dce.cc (carry_backpropagate): Make return type unsigned as well. | |
1473 | Cast to signed for right shift to preserve sign bit. | |
1474 | ||
1475 | 2024-07-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
1476 | ||
1477 | Revert: | |
1478 | 2024-07-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
1479 | ||
1480 | * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): | |
1481 | Replace new + std::unique_ptr by alloca(). | |
1482 | (riscv_process_one_target_attr): Likewise. | |
1483 | (riscv_process_target_attr): Likewise. | |
1484 | ||
1485 | 2024-07-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
1486 | ||
1487 | * common/config/riscv/riscv-common.cc (riscv_subset_list::add): | |
1488 | Allow adding enabled extension if m_allow_adding_dup is set. | |
1489 | * config/riscv/riscv-subset.h: Add m_allow_adding_dup and setter. | |
1490 | * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): | |
1491 | Allow adding enabled extensions. | |
1492 | ||
1493 | 2024-07-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
1494 | ||
1495 | PR target/115554 | |
1496 | PR target/115562 | |
1497 | * common/config/riscv/riscv-common.cc (struct riscv_func_target_info): | |
1498 | Remove. | |
1499 | (struct riscv_func_target_hasher): Likewise. | |
1500 | (riscv_func_decl_hash): Likewise. | |
1501 | (riscv_func_target_hasher::hash): Likewise. | |
1502 | (riscv_func_target_hasher::equal): Likewise. | |
1503 | (riscv_current_subset_list): Likewise. | |
1504 | (riscv_cmdline_subset_list): Remove obsolete space. | |
1505 | (riscv_func_target_table_lazy_init): Remove. | |
1506 | (riscv_func_target_get): Likewise. | |
1507 | (riscv_func_target_put): Likewise. | |
1508 | (riscv_func_target_remove_and_destory): Likewise. | |
1509 | (riscv_arch_str): Generate from cmdline_subset_list. | |
1510 | (riscv_set_arch_by_subset_list): Don't set current_subset_list. | |
1511 | (riscv_parse_arch_string): Remove current_subset_list. | |
1512 | * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): | |
1513 | Get subset list via riscv_cmdline_subset_list(). | |
1514 | * config/riscv/riscv-subset.h (riscv_current_subset_list): | |
1515 | Remove prototype. | |
1516 | (riscv_func_target_get): Likewise. | |
1517 | (riscv_func_target_put): Likewise. | |
1518 | (riscv_func_target_remove_and_destory): Likewise. | |
1519 | * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): | |
1520 | Build base arch string from existing target options, if any. | |
1521 | (riscv_target_attr_parser::update_settings): Store new arch | |
1522 | string in target options. | |
1523 | (riscv_process_one_target_attr): Whitespace fix. | |
1524 | (riscv_process_target_attr): Drop opts argument. | |
1525 | (riscv_option_valid_attribute_p): Properly save, change and restore | |
1526 | target options. | |
1527 | * config/riscv/riscv.cc (get_arch_str): New function. | |
1528 | (riscv_declare_function_name): Get arch string for option-arch | |
1529 | directive from function's target options. | |
1530 | * config/riscv/riscv.opt: Add riscv_arch_string variable to | |
1531 | march option. | |
1532 | ||
1533 | 2024-07-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
1534 | ||
1535 | * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): | |
1536 | Replace new + std::unique_ptr by alloca(). | |
1537 | (riscv_process_one_target_attr): Likewise. | |
1538 | (riscv_process_target_attr): Likewise. | |
1539 | ||
1540 | 2024-07-15 Alexandre Oliva <oliva@adacore.com> | |
1541 | ||
1542 | PR target/113719 | |
1543 | * config/i386/i386-options.cc (ix86_option_override_internal): | |
1544 | Move flag_omit_frame_pointer final overrider... | |
1545 | (ix86_recompute_optlev_based_flags): ... here. | |
1546 | ||
1547 | 2024-07-15 Georg-Johann Lay <avr@gjlay.de> | |
1548 | ||
1549 | * config/avr/avr.md: Simplify mode usage. | |
1550 | (GET_MODE_SIZE (<MODE>mode)): Use <SIZE> instead. | |
1551 | (GET_MODE_BITSIZE (<MODE>mode) - 1): Use <MSB> instead. | |
1552 | (GET_MODE_MASK (QImode)): Use 0xff instead. | |
1553 | * config/avr/avr-fixed.md: Same. | |
1554 | ||
1555 | 2024-07-15 Jakub Jelinek <jakub@redhat.com> | |
1556 | ||
1557 | * configure.ac (HAVE_GAS_BASE64): New check. | |
1558 | * config/elfos.h (BASE64_ASM_OP): Define if HAVE_GAS_BASE64 is | |
1559 | defined. | |
1560 | * varasm.cc (assemble_string): Bump maximum from 2000 to 16384 if | |
1561 | BASE64_ASM_OP is defined. | |
1562 | (default_elf_asm_output_limited_string): Emit opening '"' together | |
1563 | with STRING_ASM_OP. | |
1564 | (default_elf_asm_output_ascii): Use BASE64_ASM_OP if defined and | |
1565 | beneficial. Remove UB when last_null is NULL. | |
1566 | * configure: Regenerate. | |
1567 | * config.in: Regenerate. | |
1568 | ||
1569 | 2024-07-15 liuhongt <hongtao.liu@intel.com> | |
1570 | ||
1571 | PR target/115872 | |
1572 | * tree-ssa-ccp.cc (convert_atomic_bit_not): Remove use_stmt after use_nop_stmt is removed. | |
1573 | (optimize_atomic_bit_test_and): Ditto. | |
1574 | ||
1575 | 2024-07-15 Hongyu Wang <hongyu.wang@intel.com> | |
1576 | ||
1577 | * config/i386/i386.md (has_nf): New define_attr, add to all | |
1578 | nf related patterns. | |
1579 | * config/i386/i386-features.cc (apx_nf_convert): New function | |
1580 | to convert Non-NF insns to their NF counterparts. | |
1581 | (class pass_apx_nf_convert): New pass class. | |
1582 | (make_pass_apx_nf_convert): New. | |
1583 | * config/i386/i386-passes.def: Add pass_apx_nf_convert after | |
1584 | rtl_ifcvt. | |
1585 | * config/i386/i386-protos.h (make_pass_apx_nf_convert): Declare. | |
1586 | ||
1587 | 2024-07-15 Monk Chiang <monk.chiang@sifive.com> | |
1588 | ||
1589 | * config/riscv/riscv.cc (riscv_print_operand): Add 'L' letter | |
1590 | to print zihintntl instructions string. | |
1591 | * config/riscv/riscv.md (prefetch): Add zihintntl instructions. | |
1592 | ||
1593 | 2024-07-15 Feng Wang <wangfeng@eswincomputing.com> | |
1594 | ||
1595 | * config/riscv/generic-vector-ooo.md: Add def_insn_reservation for vector BFloat16. | |
1596 | * config/riscv/riscv.md: Add new insn name for vector BFloat16. | |
1597 | * config/riscv/vector-iterators.md: Add some iterators for vector BFloat16. | |
1598 | * config/riscv/vector.md: Add some attribute for vector BFloat16. | |
1599 | * config/riscv/vector-bfloat16.md: New file. Add insn pattern vector BFloat16. | |
1600 | ||
1601 | 2024-07-15 Feng Wang <wangfeng@eswincomputing.com> | |
1602 | ||
1603 | * config/riscv/riscv-vector-builtins-bases.cc (class vfncvtbf16_f): | |
1604 | Add 'Zvfbfmin' intrinsic in bases. | |
1605 | (class vfwcvtbf16_f): Ditto. | |
1606 | (class vfwmaccbf16): Add 'Zvfbfwma' intrinsic in bases. | |
1607 | (BASE): Add BASE macro for 'Zvfbfmin' and 'Zvfbfwma'. | |
1608 | * config/riscv/riscv-vector-builtins-bases.h: Add declaration for 'Zvfbfmin' and 'Zvfbfwma'. | |
1609 | * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): | |
1610 | Add builtins def for 'Zvfbfmin' and 'Zvfbfwma'. | |
1611 | (vfncvtbf16_f): Ditto. | |
1612 | (vfncvtbf16_f_frm): Ditto. | |
1613 | (vfwcvtbf16_f): Ditto. | |
1614 | (vfwmaccbf16): Ditto. | |
1615 | (vfwmaccbf16_frm): Ditto. | |
1616 | * config/riscv/riscv-vector-builtins-shapes.cc (supports_vectype_p): | |
1617 | Add vector intrinsic build judgment for BFloat16. | |
1618 | (build_all): Ditto. | |
1619 | (BASE_NAME_MAX_LEN): Adjust max length. | |
1620 | * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_F32_OPS): | |
1621 | Add new operand type for BFloat16. | |
1622 | (vfloat32mf2_t): Ditto. | |
1623 | (vfloat32m1_t): Ditto. | |
1624 | (vfloat32m2_t): Ditto. | |
1625 | (vfloat32m4_t): Ditto. | |
1626 | (vfloat32m8_t): Ditto. | |
1627 | * config/riscv/riscv-vector-builtins.cc (DEF_RVV_F32_OPS): Ditto. | |
1628 | (validate_instance_type_required_extensions): | |
1629 | Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'. | |
1630 | * config/riscv/riscv-vector-builtins.h (enum required_ext): | |
1631 | Add required_ext declaration for 'Zvfbfmin' and 'Zvfbfwma'. | |
1632 | (reqired_ext_to_isa_name): Ditto. | |
1633 | (required_extensions_specified): Ditto. | |
1634 | (struct function_group_info): Add match case for 'Zvfbfmin' and 'Zvfbfwma'. | |
1635 | * config/riscv/riscv.cc (riscv_validate_vector_type): | |
1636 | Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'. | |
1637 | ||
1638 | 2024-07-15 Hongyu Wang <hongyu.wang@intel.com> | |
1639 | ||
1640 | PR target/115889 | |
1641 | * config/i386/predicates.md (vcvtne2ps2bf_parallel): Remove. | |
1642 | * config/i386/sse.md (hi_cvt_bf): Remove. | |
1643 | (HI_CVT_BF): Likewise. | |
1644 | (vpermt2_sepcial_bf16_shuffle_<mode>):Likewise. | |
1645 | ||
1646 | 2024-07-15 Feng Wang <wangfeng@eswincomputing.com> | |
1647 | ||
1648 | * config/riscv/genrvv-type-indexer.cc (bfloat16_type): | |
1649 | Generate bf16 vector_type and scalar_type in DEF_RVV_TYPE_INDEX. | |
1650 | (bfloat16_wide_type): Ditto. | |
1651 | (same_ratio_eew_bf16_type): Ditto. | |
1652 | (main): Ditto. | |
1653 | * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): | |
1654 | Add vector type for BFloat16. | |
1655 | (RVV_WHOLE_MODES): Add vector type for BFloat16. | |
1656 | (RVV_FRACT_MODE): Ditto. | |
1657 | (RVV_NF4_MODES): Ditto. | |
1658 | (RVV_NF8_MODES): Ditto. | |
1659 | (RVV_NF2_MODES): Ditto. | |
1660 | * config/riscv/riscv-vector-builtins-types.def (vbfloat16mf4_t): | |
1661 | Add builtin vector type for BFloat16. | |
1662 | (vbfloat16mf2_t): Add builtin vector type for BFloat16. | |
1663 | (vbfloat16m1_t): Ditto. | |
1664 | (vbfloat16m2_t): Ditto. | |
1665 | (vbfloat16m4_t): Ditto. | |
1666 | (vbfloat16m8_t): Ditto. | |
1667 | (vbfloat16mf4x2_t): Ditto. | |
1668 | (vbfloat16mf4x3_t): Ditto. | |
1669 | (vbfloat16mf4x4_t): Ditto. | |
1670 | (vbfloat16mf4x5_t): Ditto. | |
1671 | (vbfloat16mf4x6_t): Ditto. | |
1672 | (vbfloat16mf4x7_t): Ditto. | |
1673 | (vbfloat16mf4x8_t): Ditto. | |
1674 | (vbfloat16mf2x2_t): Ditto. | |
1675 | (vbfloat16mf2x3_t): Ditto. | |
1676 | (vbfloat16mf2x4_t): Ditto. | |
1677 | (vbfloat16mf2x5_t): Ditto. | |
1678 | (vbfloat16mf2x6_t): Ditto. | |
1679 | (vbfloat16mf2x7_t): Ditto. | |
1680 | (vbfloat16mf2x8_t): Ditto. | |
1681 | (vbfloat16m1x2_t): Ditto. | |
1682 | (vbfloat16m1x3_t): Ditto. | |
1683 | (vbfloat16m1x4_t): Ditto. | |
1684 | (vbfloat16m1x5_t): Ditto. | |
1685 | (vbfloat16m1x6_t): Ditto. | |
1686 | (vbfloat16m1x7_t): Ditto. | |
1687 | (vbfloat16m1x8_t): Ditto. | |
1688 | (vbfloat16m2x2_t): Ditto. | |
1689 | (vbfloat16m2x3_t): Ditto. | |
1690 | (vbfloat16m2x4_t): Ditto. | |
1691 | (vbfloat16m4x2_t): Ditto. | |
1692 | * config/riscv/riscv-vector-builtins.cc (check_required_extensions): | |
1693 | Add required_ext checking for BFloat16. | |
1694 | * config/riscv/riscv-vector-builtins.def (vbfloat16mf4_t): | |
1695 | Add vector_type for BFloat16 in builtins.def. | |
1696 | (vbfloat16mf4x2_t): Ditto. | |
1697 | (vbfloat16mf4x3_t): Ditto. | |
1698 | (vbfloat16mf4x4_t): Ditto. | |
1699 | (vbfloat16mf4x5_t): Ditto. | |
1700 | (vbfloat16mf4x6_t): Ditto. | |
1701 | (vbfloat16mf4x7_t): Ditto. | |
1702 | (vbfloat16mf4x8_t): Ditto. | |
1703 | (vbfloat16mf2_t): Ditto. | |
1704 | (vbfloat16mf2x2_t): Ditto. | |
1705 | (vbfloat16mf2x3_t): Ditto. | |
1706 | (vbfloat16mf2x4_t): Ditto. | |
1707 | (vbfloat16mf2x5_t): Ditto. | |
1708 | (vbfloat16mf2x6_t): Ditto. | |
1709 | (vbfloat16mf2x7_t): Ditto. | |
1710 | (vbfloat16mf2x8_t): Ditto. | |
1711 | (vbfloat16m1_t): Ditto. | |
1712 | (vbfloat16m1x2_t): Ditto. | |
1713 | (vbfloat16m1x3_t): Ditto. | |
1714 | (vbfloat16m1x4_t): Ditto. | |
1715 | (vbfloat16m1x5_t): Ditto. | |
1716 | (vbfloat16m1x6_t): Ditto. | |
1717 | (vbfloat16m1x7_t): Ditto. | |
1718 | (vbfloat16m1x8_t): Ditto. | |
1719 | (vbfloat16m2_t): Ditto. | |
1720 | (vbfloat16m2x2_t): Ditto. | |
1721 | (vbfloat16m2x3_t): Ditto. | |
1722 | (vbfloat16m2x4_t): Ditto. | |
1723 | (vbfloat16m4_t): Ditto. | |
1724 | (vbfloat16m4x2_t): Ditto. | |
1725 | (vbfloat16m8_t): Ditto. | |
1726 | (double_trunc_bfloat_scalar): Add scalar_type def for BFloat16. | |
1727 | (double_trunc_bfloat_vector): Add vector_type def for BFloat16. | |
1728 | * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_BF_16): | |
1729 | Add required defination of BFloat16 ext. | |
1730 | * config/riscv/riscv-vector-switch.def (ENTRY): | |
1731 | Add vector_type information for BFloat16. | |
1732 | (TUPLE_ENTRY): Add tuple vector_type information for BFloat16. | |
1733 | ||
1734 | 2024-07-14 Roger Sayle <roger@nextmovesoftware.com> | |
1735 | ||
1736 | * config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator): | |
1737 | Use E_?Fmode enumeration constants in switch statement. | |
1738 | (ix86_expand_copysign): Likewise. | |
1739 | (ix86_expand_xorsign): Likewise. | |
1740 | ||
1741 | 2024-07-14 Alejandro Colomar <alx@kernel.org> | |
1742 | ||
1743 | PR c/115185 | |
1744 | * doc/invoke.texi: Document the new | |
1745 | -Wunterminated-string-initialization. | |
1746 | ||
1747 | 2024-07-14 Hans-Peter Nilsson <hp@axis.com> | |
1748 | ||
1749 | * config/cris/cris.cc (cris_option_override_after_change): Fix up | |
1750 | comment regarding disabling late_combine. | |
1751 | ||
1752 | 2024-07-14 Hans-Peter Nilsson <hp@axis.com> | |
1753 | ||
1754 | * config/cris/cris.cc (cris_option_override_after_change): New | |
1755 | function. Disable late-combine by default. | |
1756 | (cris_option_override): Call the new function. | |
1757 | ||
1758 | 2024-07-13 Mark Harmstone <mark@harmstone.com> | |
1759 | ||
1760 | * dwarf2codeview.cc (write_lf_modifier): Expand upon comment. | |
1761 | ||
1762 | 2024-07-13 Mark Harmstone <mark@harmstone.com> | |
1763 | ||
1764 | * dwarf2codeview.cc (write_data_symbol): Add alignment directive. | |
1765 | ||
1766 | 2024-07-13 Mark Harmstone <mark@harmstone.com> | |
1767 | ||
1768 | * dwarf2codeview.cc (enum cv_leaf_type): Add padding constants. | |
1769 | (write_cv_padding): Use names for padding constants. | |
1770 | ||
1771 | 2024-07-13 Mark Harmstone <mark@harmstone.com> | |
1772 | ||
1773 | * dwarf2codeview.cc (S_LDATA32, S_GDATA32, S_COMPILE3): Undefine. | |
1774 | (enum cv_sym_type): Define. | |
1775 | (struct codeview_symbol): Use enum cv_sym_type. | |
1776 | (write_codeview_symbols): Add default to switch. | |
1777 | ||
1778 | 2024-07-13 Mark Harmstone <mark@harmstone.com> | |
1779 | ||
1780 | * dwarf2codeview.cc (enum cv_leaf_type): Define. | |
1781 | (struct codeview_subtype): Use enum cv_leaf_type. | |
1782 | (struct codeview_custom_type): Use enum cv_leaf_type. | |
1783 | (write_lf_fieldlist): Add default to switch. | |
1784 | (write_custom_types): Add default to switch. | |
1785 | * dwarf2codeview.h (LF_MODIFIER, LF_POINTER): Undefine. | |
1786 | (LF_PROCEDURE, LF_ARGLIST, LF_FIELDLIST, LF_BITFIELD): Likewise. | |
1787 | (LF_INDEX, LF_ENUMERATE, LF_ARRAY, LF_CLASS): Likewise. | |
1788 | (LF_STRUCTURE, LF_UNION, LF_ENUM, LF_MEMBER, LF_CHAR): Likewise. | |
1789 | (LF_SHORT, LF_USHORT, LF_LONG, LF_ULONG, LF_QUADWORD): Likewise. | |
1790 | (LF_UQUADWORD): Likewise. | |
1791 | ||
1792 | 2024-07-13 David Malcolm <dmalcolm@redhat.com> | |
1793 | ||
1794 | * common.opt (fdiagnostics-show-highlight-colors): New option. | |
1795 | * common.opt.urls: Regenerate. | |
1796 | * coretypes.h (pp_markup::element): New forward decl. | |
1797 | (pp_element): New typedef. | |
1798 | * diagnostic-color.cc (gcc_color_defaults): Add "highlight-a" | |
1799 | and "highlight-b". | |
1800 | * diagnostic-format-json.cc (diagnostic_output_format_init_json): | |
1801 | Disable highlight colors. | |
1802 | * diagnostic-format-sarif.cc (diagnostic_output_format_init_sarif): | |
1803 | Likewise. | |
1804 | * diagnostic-highlight-colors.h: New file. | |
1805 | * diagnostic-path.cc (struct event_range): Pass nullptr for | |
1806 | highlight color of m_rich_loc. | |
1807 | * diagnostic-show-locus.cc (colorizer::set_range): Handle ranges | |
1808 | with m_highlight_color. | |
1809 | (colorizer::STATE_NAMED_COLOR): New. | |
1810 | (colorizer::m_richloc): New field. | |
1811 | (colorizer::colorizer): Add richloc param for initializing | |
1812 | m_richloc. | |
1813 | (colorizer::set_named_color): New. | |
1814 | (colorizer::begin_state): Add case STATE_NAMED_COLOR. | |
1815 | (layout::layout): Pass richloc to m_colorizer's ctor. | |
1816 | (selftest::test_one_liner_labels): Pass nullptr for new param of | |
1817 | gcc_rich_location ctor for labels. | |
1818 | (selftest::test_one_liner_labels_utf8): Likewise. | |
1819 | * diagnostic.h (diagnostic_context::set_show_highlight_colors): | |
1820 | New. | |
1821 | * doc/invoke.texi: Add option -fdiagnostics-show-highlight-colors | |
1822 | and highlight-a and highlight-b color caps. | |
1823 | * doc/ux.texi | |
1824 | (Use color consistently when highlighting mismatches): New | |
1825 | subsection. | |
1826 | * gcc-rich-location.cc (gcc_rich_location::add_expr): Add | |
1827 | "highlight_color" param. | |
1828 | (gcc_rich_location::maybe_add_expr): Likewise. | |
1829 | * gcc-rich-location.h (gcc_rich_location::gcc_rich_location): | |
1830 | Split out into a pair of ctors, where if a range_label is supplied | |
1831 | the caller must also supply a highlight color. | |
1832 | (gcc_rich_location::add_expr): Add "highlight_color" param. | |
1833 | (gcc_rich_location::maybe_add_expr): Likewise. | |
1834 | * gcc.cc (driver_handle_option): Handle | |
1835 | OPT_fdiagnostics_show_highlight_colors. | |
1836 | * lto-wrapper.cc (merge_and_complain): Likewise. | |
1837 | (append_compiler_options): Likewise. | |
1838 | (append_diag_options): Likewise. | |
1839 | (run_gcc): Likewise. | |
1840 | * opts-common.cc (decode_cmdline_options_to_array): Add comment | |
1841 | about -fno-diagnostics-show-highlight-colors. | |
1842 | * opts-global.cc (init_options_once): Preserve | |
1843 | pp_show_highlight_colors in case the global_dc's printer is | |
1844 | recreated. | |
1845 | * opts.cc (common_handle_option): Handle | |
1846 | OPT_fdiagnostics_show_highlight_colors. | |
1847 | (gen_command_line_string): Likewise. | |
1848 | * pretty-print-markup.h: New file. | |
1849 | * pretty-print.cc: Include "pretty-print-markup.h" and | |
1850 | "diagnostic-highlight-colors.h". | |
1851 | (pretty_printer::format): Handle %e. | |
1852 | (pretty_printer::pretty_printer): Handle new field | |
1853 | m_show_highlight_colors. | |
1854 | (pp_string_n): New. | |
1855 | (pp_markup::context::begin_quote): New. | |
1856 | (pp_markup::context::end_quote): New. | |
1857 | (pp_markup::context::begin_color): New. | |
1858 | (pp_markup::context::end_color): New. | |
1859 | (highlight_colors::expected): New. | |
1860 | (highlight_colors::actual): New. | |
1861 | (highlight_colors::lhs): New. | |
1862 | (highlight_colors::rhs): New. | |
1863 | (class selftest::test_element): New. | |
1864 | (selftest::test_pp_format): Add tests of %e. | |
1865 | (selftest::test_urlification): Likewise. | |
1866 | * pretty-print.h (pp_markup::context): New forward decl. | |
1867 | (class chunk_info): Add friend class pp_markup::context. | |
1868 | (class pretty_printer): Add friend pp_show_highlight_colors. | |
1869 | (pretty_printer::m_show_highlight_colors): New field. | |
1870 | (pp_show_highlight_colors): New inline function. | |
1871 | (pp_string_n): New decl. | |
1872 | * substring-locations.cc: Include "diagnostic-highlight-colors.h". | |
1873 | (format_string_diagnostic_t::highlight_color_format_string): New. | |
1874 | (format_string_diagnostic_t::highlight_color_param): New. | |
1875 | (format_string_diagnostic_t::emit_warning_n_va): Use highlight | |
1876 | colors. | |
1877 | * substring-locations.h | |
1878 | (format_string_diagnostic_t::highlight_color_format_string): New. | |
1879 | (format_string_diagnostic_t::highlight_color_param): New. | |
1880 | * toplev.cc (general_init): Initialize global_dc's | |
1881 | show_highlight_colors. | |
1882 | * tree-pretty-print-markup.h: New file. | |
1883 | ||
1884 | 2024-07-13 Richard Biener <rguenther@suse.de> | |
1885 | ||
1886 | PR tree-optimization/115868 | |
1887 | * tree-vect-stmts.cc (vectorizable_simd_clone_call): Correctly | |
1888 | compute the number of mask copies required for vect_record_loop_mask. | |
1889 | ||
1890 | 2024-07-12 Gerald Pfeifer <gerald@pfeifer.com> | |
1891 | ||
1892 | * doc/gm2.texi (Community): Update lists.nongnu.org and | |
1893 | lists.gnu.org links. | |
1894 | ||
1895 | 2024-07-12 Jeff Law <jlaw@ventanamicro.com> | |
1896 | ||
1897 | PR rtl-optimization/115876 | |
1898 | * ext-dce.cc (carry_backpropagate): Make mask and mmask unsigned. | |
1899 | ||
1900 | 2024-07-12 Marek Polacek <polacek@redhat.com> | |
1901 | ||
1902 | * doc/invoke.texi: Remove @opindex and @itemx for -fconcepts-ts. | |
1903 | ||
1904 | 2024-07-12 Daniel Bertalan <dani@danielbertalan.dev> | |
1905 | ||
1906 | * value-pointer-equiv.cc: Change NULL to nullptr. | |
1907 | ||
1908 | 2024-07-12 Richard Sandiford <richard.sandiford@arm.com> | |
1909 | ||
1910 | PR rtl-optimization/115785 | |
1911 | * rtl-ssa/insns.h (insn_info::prev_insn_or_last_debug_insn) | |
1912 | (insn_info::next_nondebug_or_debug_insn): Remove typedefs. | |
1913 | (insn_info::m_prev_insn_or_last_debug_insn): Rename to... | |
1914 | (insn_info::m_prev_sametype_or_last_debug_insn): ...this. | |
1915 | * rtl-ssa/internals.inl (insn_info::insn_info): Update after | |
1916 | above renaming. | |
1917 | (insn_info::copy_prev_from): Likewise. | |
1918 | (insn_info::set_prev_sametype_insn): Likewise. | |
1919 | (insn_info::set_last_debug_insn): Likewise. | |
1920 | (insn_info::clear_insn_links): Likewise. | |
1921 | (insn_info::has_insn_links): Likewise. | |
1922 | * rtl-ssa/member-fns.inl (insn_info::prev_nondebug_insn): Likewise. | |
1923 | (insn_info::prev_any_insn): Fix moves from non-debug to debug insns. | |
1924 | ||
1925 | 2024-07-12 Jeff Law <jlaw@ventanamicro.com> | |
1926 | ||
1927 | * config/riscv/riscv-string.cc (emit_memcmp_scalar_load_and_compare): | |
1928 | Set RESULT directly rather than using a temporary. | |
1929 | (emit_memcmp_scalar_result_calculation): Similarly. | |
1930 | (riscv_expand_block_compare_scalar): Use CONST0_RTX rather than | |
1931 | generating new RTL. | |
1932 | * config/riscv/riscv.md (cmpmemsi): Pass an X mode temporary to the | |
1933 | expansion routines. If necessary extract low part of the word to store | |
1934 | in final result location. | |
1935 | ||
1936 | 2024-07-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
1937 | ||
1938 | * config/s390/2964.md: Remove extended mnemonics for vgm. | |
1939 | * config/s390/3906.md: Remove extended mnemonics for vgm. | |
1940 | * config/s390/3931.md: Remove extended mnemonics for vgm. | |
1941 | * config/s390/8561.md: Remove extended mnemonics for vgm. | |
1942 | * config/s390/constraints.md (jKK): Remove constraint. | |
1943 | (jzz): Add constraint. | |
1944 | * config/s390/s390-protos.h (s390_contiguous_bitmask_vector_p): | |
1945 | Add prototype. | |
1946 | (s390_constant_via_vgm_p): Add prototype. | |
1947 | (s390_constant_via_vrepi_p): Add prototype. | |
1948 | * config/s390/s390.cc (s390_contiguous_bitmask_vector_p): New | |
1949 | function. | |
1950 | (s390_constant_via_vgm_vrepi_helper): New function. | |
1951 | (s390_constant_via_vgm_p): New function. | |
1952 | (s390_constant_via_vgbm_p): For the sake of symmetry rename | |
1953 | s390_bytemask_vector_p into s390_constant_via_vgbm_p. | |
1954 | (s390_bytemask_vector_p): Deal with non-integer and partial | |
1955 | vectors. | |
1956 | (s390_constant_via_vrepi_p): New function. | |
1957 | (s390_legitimate_constant_p): Allow partial vectors. | |
1958 | (legitimate_reload_constant_p): Fix indentation. | |
1959 | (legitimate_reload_vector_constant_p): Restrict to constraints | |
1960 | j00, jm1, jxx, jyy, jzz only, i.e., allow partial vectors. | |
1961 | (s390_expand_vec_init): Also make use of vrepi if possible. | |
1962 | (print_operand): Add q,p,r for vgm,vrepi,vgbm, respectively. | |
1963 | Remove e,s,t for constant vectors. | |
1964 | * config/s390/s390.md (movti): Add variants utilizing | |
1965 | vgbm,vgm,vrepi. | |
1966 | * config/s390/vector.md (mov<mode><tf_vr>): Adapt variants | |
1967 | for vgbm,vgm,vrepi for the new scheme. | |
1968 | (mov<mode>): Adapt variants for vgbm,vgm for the new | |
1969 | scheme and add vrepi variant for modes V_8,V_16,V_32,V_64. | |
1970 | ||
1971 | 2024-07-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
1972 | ||
1973 | * config/s390/vector.md (mov<mode>): Fix output template for | |
1974 | movv1qi. | |
1975 | ||
1976 | 2024-07-12 Roger Sayle <roger@nextmovesoftware.com> | |
1977 | Hongtao Liu <hongtao.liu@intel.com> | |
1978 | ||
1979 | * config/i386/i386-expand.cc (ix86_broadcast_from_constant): | |
1980 | Use CONST_VECTOR_P instead of comparison against GET_CODE. | |
1981 | (ix86_gen_bcst_mem): Likewise. | |
1982 | (ix86_ternlog_leaf_p): Likewise. | |
1983 | (ix86_ternlog_operand_p): ix86_ternlog_leaf_p is always true for | |
1984 | vector_all_ones_operand. | |
1985 | (ix86_expand_ternlog_bin_op): Use CONST_VECTOR_P instead of | |
1986 | equality comparison against GET_CODE. Replace call to force_reg | |
1987 | with gen_reg_rtx and emit_move_insn (for VEC_DUPLICATE broadcast). | |
1988 | Check for !register_operand instead of memory_operand. | |
1989 | Support CONST_VECTORs by calling force_const_mem. | |
1990 | (ix86_expand_ternlog): Fix indentation whitespace. | |
1991 | Allow ix86_ternlog_leaf_p as ix86_expand_ternlog_andnot's second | |
1992 | operand. Use CONST_VECTOR_P instead of equality against GET_CODE. | |
1993 | Use gen_reg_rtx and emit_move_insn for ~a, ~b and ~c cases. | |
1994 | ||
1995 | 2024-07-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
1996 | ||
1997 | * config/s390/s390.md (*icjump_64): Allow raw CC comparisons, | |
1998 | i.e., any constant integer between 0 and 15 for CC comparisons. | |
1999 | ||
2000 | 2024-07-12 Richard Sandiford <richard.sandiford@arm.com> | |
2001 | ||
2002 | * config/aarch64/aarch64.cc (aarch64_process_one_target_attr) | |
2003 | (aarch64_process_target_attr): Avoid alloca. | |
2004 | ||
2005 | 2024-07-12 Alexandre Oliva <oliva@adacore.com> | |
2006 | ||
2007 | PR target/115459 | |
2008 | * config/alpha/alpha.cc (alpha_expand_block_move): Adjust | |
2009 | MEMs to match inferred alignment. | |
2010 | ||
2011 | 2024-07-12 YunQiang Su <yunqiang@isrc.iscas.ac.cn> | |
2012 | ||
2013 | PR target/115840 | |
2014 | * config/riscv/riscv.cc(riscv_preferred_else_value): Mark | |
2015 | tmp_var as NO_WARNING. | |
2016 | ||
2017 | 2024-07-12 xuli <xuli1@eswincomputing.com> | |
2018 | ||
2019 | PR target/115862 | |
2020 | * config/riscv/riscv.cc (riscv_slow_unaligned_access): Disable vector misalign. | |
2021 | ||
2022 | 2024-07-12 Kito Cheng <kito.cheng@sifive.com> | |
2023 | ||
2024 | * common/config/riscv/riscv-common.cc (riscv_implied_info): Add xsfvcp. | |
2025 | (riscv_ext_version_table): Add xsfvcp, xsfcease. | |
2026 | (riscv_ext_flag_table): Ditto. | |
2027 | * config/riscv/riscv.opt (riscv_sifive_subext): New. | |
2028 | (XSFVCP): New. | |
2029 | (XSFCEASE): New. | |
2030 | ||
2031 | 2024-07-12 Kewen Lin <linkw@linux.ibm.com> | |
2032 | ||
2033 | PR target/115659 | |
2034 | * config/rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): Remove. | |
2035 | * config/rs6000/rs6000.cc (rs6000_emit_vector_cond_expr): Add static | |
2036 | qualifier as it is only called by rs6000_emit_swsqrt now. | |
2037 | * config/rs6000/vector.md (vcond<VEC_F:mode><VEC_F:mode>): Remove. | |
2038 | (vcond<VEC_I:mode><VEC_I:mode>): Remove. | |
2039 | (vcondv4sfv4si): Likewise. | |
2040 | (vcondv4siv4sf): Likewise. | |
2041 | (vcondv2dfv2di): Likewise. | |
2042 | (vcondv2div2df): Likewise. | |
2043 | (vcondu<VEC_I:mode><VEC_I:mode>): Likewise. | |
2044 | (vconduv4sfv4si): Likewise. | |
2045 | (vconduv2dfv2di): Likewise. | |
2046 | ||
2047 | 2024-07-12 Richard Biener <rguenther@suse.de> | |
2048 | ||
2049 | PR tree-optimization/115867 | |
2050 | * tree-vect-stmts.cc (vectorizable_simd_clone_call): Properly | |
2051 | guess the number of mask elements for integer mode masks. | |
2052 | ||
2053 | 2024-07-12 Jeff Law <jlaw@ventanamicro.com> | |
2054 | ||
2055 | * config/m68k/m68k.md (extendsidi2): Add missing early clobbers. | |
2056 | ||
2057 | 2024-07-12 Lulu Cheng <chenglulu@loongson.cn> | |
2058 | ||
2059 | * config/loongarch/loongarch.cc | |
2060 | (loongarch_split_move): Delete. | |
2061 | (loongarch_hard_regno_mode_ok_uncached): Likewise. | |
2062 | * config/loongarch/loongarch.md | |
2063 | (move_doubleword_fpr<mode>): Likewise. | |
2064 | (load_low<mode>): Likewise. | |
2065 | (load_high<mode>): Likewise. | |
2066 | (store_word<mode>): Likewise. | |
2067 | (movgr2frh<mode>): Likewise. | |
2068 | (movfrh2gr<mode>): Likewise. | |
2069 | ||
2070 | 2024-07-12 Lulu Cheng <chenglulu@loongson.cn> | |
2071 | ||
2072 | PR target/115752 | |
2073 | * config/loongarch/loongarch.cc | |
2074 | (loongarch_hard_regno_mode_ok_uncached): Replace | |
2075 | UNITS_PER_FPVALUE with UNITS_PER_HWFPVALUE. | |
2076 | * config/loongarch/loongarch.h (UNITS_PER_FPVALUE): Delete. | |
2077 | ||
2078 | 2024-07-11 Jeff Law <jlaw@ventanamicro.com> | |
2079 | ||
2080 | * config/riscv/riscv-string.cc | |
2081 | (emit_strcmp_scalar_compare_byte): Set RESULT directly rather | |
2082 | than using a new temporary. | |
2083 | (emit_strcmp_scalar_result_calculation_nonul): Likewise. | |
2084 | (emit_strcmp_scalar_result_calculation): Likewise. | |
2085 | (riscv_expand_strcmp_scalar): Use CONST0_RTX rather than | |
2086 | generating a new node. | |
2087 | (expand_strcmp): Copy directly from SUB to RESULT. | |
2088 | * config/riscv/riscv.md (cmpstrnsi, cmpstrsi): Pass an X | |
2089 | mode temporary to the expansion routines. If necessary | |
2090 | extract low part of the word to store in final result location. | |
2091 | ||
2092 | 2024-07-11 Andrew Pinski <quic_apinski@quicinc.com> | |
2093 | ||
2094 | * value-range.h (class int_range): Mark as final. | |
2095 | (class prange): Likewise. | |
2096 | (class frange): Likewise. | |
2097 | ||
2098 | 2024-07-11 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2099 | ||
2100 | PR target/115611 | |
2101 | * config/arm/mve.md (mve_vec_setv2di_internal): Fix printing of input | |
2102 | scalar register pair when lane = 1. | |
2103 | ||
2104 | 2024-07-11 Richard Sandiford <richard.sandiford@arm.com> | |
2105 | ||
2106 | PR rtl-optimization/115782 | |
2107 | * recog.cc (validate_change_1): Suppress early exit for no-op | |
2108 | changes that are part of a group. | |
2109 | ||
2110 | 2024-07-11 Eric Botcazou <ebotcazou@adacore.com> | |
2111 | ||
2112 | * gimplify.cc (gimplify_scalar_mode_aggregate_compare): Add support | |
2113 | for ordering comparisons. | |
2114 | (gimplify_expr) <default>: Call gimplify_scalar_mode_aggregate_compare | |
2115 | only for integral scalar modes. | |
2116 | ||
2117 | 2024-07-11 Georg-Johann Lay <avr@gjlay.de> | |
2118 | ||
2119 | * config/avr/avr-protos.h (avr_out_minus): New prototype. | |
2120 | * config/avr/avr.cc (avr_out_minus): New function. | |
2121 | * config/avr/avr.md (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>) | |
2122 | (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>_split): New insns. | |
2123 | (*subpsi3_zero_extend.qi_split): Remove isns_and_split. | |
2124 | (*subpsi3_zero_extend.hi_split): Remove insn_and_split. | |
2125 | (*subhi3_zero_extend1_split): Remove insn_and_split. | |
2126 | (*subsi3_zero_extend_split): Remove insn_and_split. | |
2127 | (*subsi3_zero_extend.hi_split): Remove insn_and_split. | |
2128 | (*subpsi3_zero_extend.qi): Remove insn. | |
2129 | (*subpsi3_zero_extend.hi): Remove insn. | |
2130 | (*subhi3_zero_extend1): Remove insn. | |
2131 | (*subsi3_zero_extend): Remove insn. | |
2132 | (*subsi3_zero_extend.hi): Remove insn. | |
2133 | ||
2134 | 2024-07-11 Jørgen Kvalsvik <j@lambda.is> | |
2135 | ||
2136 | * doc/gcov.texi: Add --include, --exclude, --match-on-demangled | |
2137 | documentation. | |
2138 | * gcov.cc (struct fnfilter): New. | |
2139 | (print_usage): Add --include, --exclude, -M, | |
2140 | --match-on-demangled. | |
2141 | (process_args): Likewise. | |
2142 | (release_structures): Release filters. | |
2143 | (read_graph_file): Only add function_infos matching filters. | |
2144 | (output_lines): Likewise. | |
2145 | ||
2146 | 2024-07-11 Jørgen Kvalsvik <j@lambda.is> | |
2147 | ||
2148 | * gcov.cc (process_all_functions): Ensure fn.end_line is | |
2149 | included source[fn].lines. | |
2150 | ||
2151 | 2024-07-11 Fei Gao <gaofei@eswincomputing.com> | |
2152 | ||
2153 | * common/config/riscv/riscv-common.cc: | |
2154 | c implies zca, and conditionally zcf & zcd. | |
2155 | ||
2156 | 2024-07-10 Pan Li <pan2.li@intel.com> | |
2157 | ||
2158 | * tree-vect-patterns.cc (vect_recog_sat_sub_pattern_transform): | |
2159 | Add new func impl to perform the truncation distribution. | |
2160 | (vect_recog_sat_sub_pattern): Perform above optimize before | |
2161 | generate .SAT_SUB call. | |
2162 | ||
2163 | 2024-07-10 Uros Bizjak <ubizjak@gmail.com> | |
2164 | ||
2165 | * config/i386/i386.md (ustruncdi<mode>2): Swap compare operands. | |
2166 | (ustruncsi<mode>2): Ditto. | |
2167 | (ustrunchiqi2): Ditto. | |
2168 | ||
2169 | 2024-07-10 Marek Polacek <polacek@redhat.com> | |
2170 | ||
2171 | * doc/invoke.texi: Mention that -fconcepts-ts was removed. | |
2172 | ||
2173 | 2024-07-10 Edwin Lu <ewlu@rivosinc.com> | |
2174 | ||
2175 | * common/config/riscv/riscv-common.cc: Add imply rules for B extension | |
2176 | * config/riscv/arch-canonicalize: Ditto | |
2177 | ||
2178 | 2024-07-10 Richard Sandiford <richard.sandiford@arm.com> | |
2179 | ||
2180 | * internal-fn.cc (create_call_lhs_operand, assign_call_lhs): New | |
2181 | functions, split out from... | |
2182 | (expand_fn_using_insn): ...here. | |
2183 | (expand_load_lanes_optab_fn): Use them. | |
2184 | (expand_GOMP_SIMT_ENTER_ALLOC): Likewise. | |
2185 | (expand_GOMP_SIMT_LAST_LANE): Likewise. | |
2186 | (expand_GOMP_SIMT_ORDERED_PRED): Likewise. | |
2187 | (expand_GOMP_SIMT_VOTE_ANY): Likewise. | |
2188 | (expand_GOMP_SIMT_XCHG_BFLY): Likewise. | |
2189 | (expand_GOMP_SIMT_XCHG_IDX): Likewise. | |
2190 | (expand_partial_load_optab_fn): Likewise. | |
2191 | (expand_vec_cond_optab_fn): Likewise. | |
2192 | (expand_vec_cond_mask_optab_fn): Likewise. | |
2193 | (expand_RAWMEMCHR): Likewise. | |
2194 | (expand_gather_load_optab_fn): Likewise. | |
2195 | (expand_while_optab_fn): Likewise. | |
2196 | (expand_SPACESHIP): Likewise. | |
2197 | ||
2198 | 2024-07-10 Richard Sandiford <richard.sandiford@arm.com> | |
2199 | ||
2200 | * recog.cc (insn_propagation::apply_to_rvalue_1): Handle simple | |
2201 | cases of hardreg propagation in which the register is set and | |
2202 | used in different modes. | |
2203 | ||
2204 | 2024-07-10 Richard Sandiford <richard.sandiford@arm.com> | |
2205 | ||
2206 | PR rtl-optimization/115785 | |
2207 | * rtl-ssa/functions.h (function_info::replace_nondebug_insn): Declare. | |
2208 | * rtl-ssa/insns.h (insn_info::order_node::set_uid): New function. | |
2209 | (insn_info::remove_note): Declare. | |
2210 | * rtl-ssa/insns.cc (insn_info::remove_note): New function. | |
2211 | (function_info::replace_nondebug_insn): Likewise. | |
2212 | * rtl-ssa/changes.cc (function_info::change_insns): Use | |
2213 | replace_nondebug_insn instead of remove_insn + add_insn. | |
2214 | ||
2215 | 2024-07-10 Uros Bizjak <ubizjak@gmail.com> | |
2216 | ||
2217 | PR middle-end/115836 | |
2218 | * expmed.cc (emit_store_flag_1): Move calculation of | |
2219 | scode just before its only usage site. | |
2220 | ||
2221 | 2024-07-10 Richard Earnshaw <rearnsha@arm.com> | |
2222 | ||
2223 | * config/arm/arm-protos.h (arm_dllexport_name_p): Remove prototype. | |
2224 | (arm_dllimport_name_p): Likewise. | |
2225 | (arm_pe_unique_section): Likewise. | |
2226 | (arm_pe_encode_section_info): Likewise. | |
2227 | (arm_dllexport_p): Likewise. | |
2228 | (arm_dllimport_p): Likewise. | |
2229 | (arm_mark_dllexport): Likewise. | |
2230 | (arm_mark_dllimport): Likewise. | |
2231 | (arm_change_mode_p): Likewise. | |
2232 | * config/arm/arm.cc (arm_gnu_attributes): Remove attributes for ARM_PE. | |
2233 | (TARGET_ENCODE_SECTION_INFO): Remove setting for ARM_PE. | |
2234 | (is_called_in_ARM_mode): Remove ARM_PE conditional code. | |
2235 | (thumb1_output_interwork): Remove obsolete ARM_PE code. | |
2236 | (arm_encode_section_info): Remove surrounding #ifndef. | |
2237 | ||
2238 | 2024-07-10 Prathamesh Kulkarni <prathameshk@nvidia.com> | |
2239 | ||
2240 | PR lto/115394 | |
2241 | * lto-streamer.h: Remove streamer_debugging definition. | |
2242 | * lto-streamer-out.cc (stream_write_tree_ref): Remove use of streamer_debugging. | |
2243 | (lto_output_tree): Likewise. | |
2244 | * tree-streamer-in.cc (streamer_read_tree_bitfields): Likewise. | |
2245 | (streamer_get_pickled_tree): Likewise. | |
2246 | * tree-streamer-out.cc (pack_ts_base_value_fields): Likewise. | |
2247 | ||
2248 | 2024-07-10 Pan Li <pan2.li@intel.com> | |
2249 | ||
2250 | * match.pd: Add form 2 for .SAT_TRUNC. | |
2251 | * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): | |
2252 | Add new case NOP_EXPR, and try to match SAT_TRUNC. | |
2253 | ||
2254 | 2024-07-10 Andrew Pinski <quic_apinski@quicinc.com> | |
2255 | ||
2256 | PR tree-optimization/115721 | |
2257 | * tree-complex.cc (expand_complex_comparison): Remove | |
2258 | support for GIMPLE_RETURN. | |
2259 | ||
2260 | 2024-07-10 Fei Gao <gaofei@eswincomputing.com> | |
2261 | ||
2262 | PR target/113715 | |
2263 | * config/riscv/riscv.cc (riscv_zcmp_can_use_popretz): Removed. | |
2264 | (riscv_gen_multi_pop_insn): Remove generation of cm.popretz. | |
2265 | ||
2266 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2267 | ||
2268 | * config/rs6000/rs6000-builtin.cc (altivec_expand_vec_init_builtin): | |
2269 | Remove the function. | |
2270 | (rs6000_expand_builtin): Remove the if bif_is_int check to call | |
2271 | the altivec_expand_vec_init_builtin function. | |
2272 | * config/rs6000/rs6000-builtins.def: Remove the attribute string | |
2273 | comment for init. | |
2274 | (__builtin_vec_init_v16qi, | |
2275 | __builtin_vec_init_v4sf, __builtin_vec_init_v4si, | |
2276 | __builtin_vec_init_v8hi, __builtin_vec_init_v1ti, | |
2277 | __builtin_vec_init_v2df, __builtin_vec_init_v2di, | |
2278 | __builtin_vec_set_v16qi, __builtin_vec_set_v4sf, | |
2279 | __builtin_vec_set_v4si, __builtin_vec_set_v8hi): Remove | |
2280 | built-in definitions. | |
2281 | * config/rs6000/rs6000-gen-builtins.cc: Remove comment for init | |
2282 | attribute string. | |
2283 | (struct attrinfo): Remove isinit entry. | |
2284 | (parse_bif_attrs): Remove the if statement to check for attribute | |
2285 | init. | |
2286 | (ifdef DEBUG): Remove print for init attribute string. | |
2287 | (write_decls): Remove print for define bif_init_bit and | |
2288 | define for bif_is_init. | |
2289 | (write_bif_static_init): Remove if bifp->attrs.isinit statement. | |
2290 | ||
2291 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2292 | ||
2293 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcmpeqsp_p): | |
2294 | Remove built-in definition. | |
2295 | ||
2296 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2297 | ||
2298 | * config/rs6000/rs6000-overload.def (vec_xxpermdi): Add new | |
2299 | overloaded built-in instances of vector signed and unsigned | |
2300 | int128. | |
2301 | * doc/extend.texi: Add documentation for built-in instances of | |
2302 | vector signed and unsigned int128. | |
2303 | ||
2304 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2305 | ||
2306 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvnegdp, | |
2307 | __builtin_vsx_xvnegsp): Remove built-in definitions. | |
2308 | ||
2309 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2310 | ||
2311 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_vperm_16qi_uns, | |
2312 | __builtin_vsx_vperm_1ti, __builtin_vsx_vperm_1ti_uns, | |
2313 | __builtin_vsx_vperm_2df, __builtin_vsx_vperm_2di, | |
2314 | __builtin_vsx_vperm_2di_uns, __builtin_vsx_vperm_4sf, | |
2315 | __builtin_vsx_vperm_4si, __builtin_vsx_vperm_4si_uns): Remove | |
2316 | built-in definitions and comments. | |
2317 | ||
2318 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2319 | ||
2320 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_16qi, | |
2321 | __builtin_vsx_xxsel_16qi_uns, __builtin_vsx_xxsel_2df, | |
2322 | __builtin_vsx_xxsel_2di, __builtin_vsx_xxsel_2di_uns, | |
2323 | __builtin_vsx_xxsel_4sf, __builtin_vsx_xxsel_4si, | |
2324 | __builtin_vsx_xxsel_4si_uns, __builtin_vsx_xxsel_8hi, | |
2325 | __builtin_vsx_xxsel_8hi_uns): Remove built-in definitions. | |
2326 | ||
2327 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2328 | ||
2329 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_1ti, | |
2330 | __builtin_vsx_xxsel_1ti_uns): Remove built-in definitions. | |
2331 | * config/rs6000/rs6000-overload.def (vec_sel): Add new | |
2332 | overloaded vector signed, unsigned and bool 128-bit definitions. | |
2333 | * doc/extend.texi (vec_sel): Add documentation for new instances | |
2334 | with signed, unsigned and bool 129-bit bool arguments. | |
2335 | ||
2336 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2337 | ||
2338 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxmrghw, | |
2339 | __builtin_vsx_xxmrghw_4si, __builtin_vsx_xxmrglw, | |
2340 | __builtin_vsx_xxmrglw_4si, __builtin_vsx_xxsel_16qi): Remove | |
2341 | built-in definition. | |
2342 | * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): | |
2343 | remove case entries RS6000_BIF_XXMRGLW_4SI, | |
2344 | RS6000_BIF_XXMRGLW_4SF, RS6000_BIF_XXMRGHW_4SI, | |
2345 | RS6000_BIF_XXMRGHW_4SF. | |
2346 | * config/rs6000/vsx.md (vsx_xxmrghw_<mode>, vsx_xxmrglw_<mode>): | |
2347 | Remove unused define_expands. | |
2348 | ||
2349 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2350 | ||
2351 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspdp, | |
2352 | __builtin_vsx_xvcvdpsp, __builtin_vsx_xvcvsxwdp, | |
2353 | __builtin_vsx_xvcvuxddp_uns): Remove. | |
2354 | ||
2355 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2356 | ||
2357 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxds, | |
2358 | __builtin_vsx_xvcvspuxds): Rename to __builtin_vsignede_v4sf, | |
2359 | __builtin_vunsignede_v4sf respectively. | |
2360 | (XVCVSPSXDS, XVCVSPUXDS): Rename to VEC_VSIGNEDE_V4SF, | |
2361 | VEC_VUNSIGNEDE_V4SF respectively. | |
2362 | (__builtin_vsignedo_v4sf, __builtin_vunsignedo_v4sf): New | |
2363 | built-in definitions. | |
2364 | * config/rs6000/rs6000-overload.def (vec_signede, vec_signedo, | |
2365 | vec_unsignede, vec_unsignedo): Add new overloaded specifications. | |
2366 | * config/rs6000/vsx.md (vsignede_v4sf, vsignedo_v4sf, | |
2367 | vunsignede_v4sf, vunsignedo_v4sf): New define_expands. | |
2368 | * doc/extend.texi (vec_signedo, vec_signede, vec_unsignedo, | |
2369 | vec_unsignede): Add documentation for new overloaded built-ins to | |
2370 | convert vector float to vector {un,}signed long long. | |
2371 | ||
2372 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2373 | ||
2374 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_vunsigned_v2df, | |
2375 | __builtin_vsx_vunsigned_v4sf, __builtin_vsx_vunsignede_v2df, | |
2376 | __builtin_vsx_vunsignedo_v2df): Change the result type to unsigned. | |
2377 | ||
2378 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2379 | ||
2380 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxws, | |
2381 | __builtin_vsx_xvcvdpuxds_uns, __builtin_vsx_xvcvspuxws, | |
2382 | __builtin_vsx_xvcvdpsxws, __builtin_vsx_xvcvdpuxws): Remove | |
2383 | built-in definitions. | |
2384 | ||
2385 | 2024-07-09 Carl Love <cel@linux.ibm.com> | |
2386 | ||
2387 | * config/rs6000/rs6000-builtin.cc (RS6000_BIF_CMPLE_16QI, | |
2388 | RS6000_BIF_CMPLE_U16QI, RS6000_BIF_CMPLE_8HI, | |
2389 | RS6000_BIF_CMPLE_U8HI, RS6000_BIF_CMPLE_4SI, RS6000_BIF_CMPLE_U4SI, | |
2390 | RS6000_BIF_CMPLE_2DI, RS6000_BIF_CMPLE_U2DI, RS6000_BIF_CMPLE_1TI, | |
2391 | RS6000_BIF_CMPLE_U1TI): Remove case statements. | |
2392 | * config/rs6000/rs6000-builtins.def (__builtin_vsx_cmple_16qi, | |
2393 | __builtin_vsx_cmple_2di, __builtin_vsx_cmple_4si, | |
2394 | __builtin_vsx_cmple_8hi, __builtin_vsx_cmple_u16qi, | |
2395 | __builtin_vsx_cmple_u2di, __builtin_vsx_cmple_u4si, | |
2396 | __builtin_vsx_cmple_u8hi): Remove buit-in definitions. | |
2397 | ||
2398 | 2024-07-09 Uros Bizjak <ubizjak@gmail.com> | |
2399 | ||
2400 | * config/i386/i386.md (@cmp<mode>_1): Use SWI mode iterator. | |
2401 | (ustruncdi<mode>2): New expander. | |
2402 | (ustruncsi<mode>2): Ditto. | |
2403 | (ustrunchiqi2): Ditto. | |
2404 | ||
2405 | 2024-07-09 David Malcolm <dmalcolm@redhat.com> | |
2406 | ||
2407 | * diagnostic-path.cc: Replace "const diagnostic_path *" with | |
2408 | "const diagnostic_path &" throughout, and "diagnostic_context *" | |
2409 | with "diagnostic context &". | |
2410 | * diagnostic.cc (diagnostic_context::show_any_path): Pass | |
2411 | reference in call to print_path. | |
2412 | * diagnostic.h (diagnostic_context::print_path): Convert param | |
2413 | to a reference. | |
2414 | ||
2415 | 2024-07-09 Richard Earnshaw <rearnsha@arm.com> | |
2416 | ||
2417 | * config/arm/arm.cc (fp_consts_initited): Delete variable. | |
2418 | (value_fp0): Likewise. | |
2419 | (init_fp_table): Delete function. | |
2420 | (fp_const_from_val): Likewise. | |
2421 | (arm_const_double_rtx): Rework to avoid converting to REAL_VALUE_TYPE. | |
2422 | (arm_print_operand, case 'N'): Make use of this case an error. | |
2423 | ||
2424 | 2024-07-09 Christoph Müllner <christoph.muellner@vrull.eu> | |
2425 | ||
2426 | * config/riscv/riscv-target-attr.cc (riscv_process_target_attr): | |
2427 | Fix comments and variable names. | |
2428 | ||
2429 | 2024-07-09 Christoph Müllner <christoph.muellner@vrull.eu> | |
2430 | ||
2431 | * common/config/riscv/riscv-common.cc (riscv_set_arch_by_subset_list): | |
2432 | Fix overlong line. | |
2433 | (riscv_parse_arch_string): Replace duplicated code by a call to | |
2434 | riscv_set_arch_by_subset_list. | |
2435 | ||
2436 | 2024-07-09 Haochen Jiang <haochen.jiang@intel.com> | |
2437 | ||
2438 | * common/config/i386/cpuinfo.h (get_available_features): Correct | |
2439 | AVX10 CPUID emulation to specify ecx value. | |
2440 | ||
2441 | 2024-07-09 liuhongt <hongtao.liu@intel.com> | |
2442 | ||
2443 | PR target/115796 | |
2444 | * config/i386/emmintrin.h (__float_u): Rename to .. | |
2445 | (__x86_float_u): .. this. | |
2446 | (_mm_load_sd): Ditto. | |
2447 | (_mm_store_sd): Ditto. | |
2448 | (_mm_loadh_pd): Ditto. | |
2449 | (_mm_loadl_pd): Ditto. | |
2450 | * config/i386/xmmintrin.h (__double_u): Rename to .. | |
2451 | (__x86_double_u): .. this. | |
2452 | (_mm_load_ss): Ditto. | |
2453 | (_mm_store_ss): Ditto. | |
2454 | ||
2455 | 2024-07-08 Jeff Law <jlaw@ventanamicro.com> | |
2456 | ||
2457 | * Makefile.in (OBJS): Add ext-dce.o | |
2458 | * common.opt (ext-dce): Document new option. | |
2459 | * df-scan.cc (df_get_ext_block_use_set): Delete prototype and | |
2460 | make extern. | |
2461 | * df.h (df_get_exit_block_use_set): Prototype. | |
2462 | * ext-dce.cc: New file/pass. | |
2463 | * opts.cc (default_options_table): Handle ext-dce at -O2 or higher. | |
2464 | * passes.def: Add ext-dce before combine. | |
2465 | * tree-pass.h (make_pass_ext_dce): Prototype. | |
2466 | ||
2467 | 2024-07-08 Uros Bizjak <ubizjak@gmail.com> | |
2468 | ||
2469 | * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg splitter to SImode): | |
2470 | New splitter. | |
2471 | (NEG and NOT splitter to SImode): Remove optimize_insn_for_size_p | |
2472 | predicate from insn condition. | |
2473 | ||
2474 | 2024-07-08 Patrick O'Neill <patrick@rivosinc.com> | |
2475 | ||
2476 | * doc/invoke.texi: Remove trailing whitespace. | |
2477 | ||
2478 | 2024-07-08 Levy Hsu <admin@levyhsu.com> | |
2479 | ||
2480 | * config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator): Add VBF modes. | |
2481 | (ix86_expand_copysign): Ditto. | |
2482 | (ix86_expand_xorsign): Ditto. | |
2483 | * config/i386/i386.cc (ix86_build_const_vector): Ditto. | |
2484 | (ix86_build_signbit_mask): Ditto. | |
2485 | * config/i386/sse.md: Ditto. | |
2486 | ||
2487 | 2024-07-08 Jeevitha Palanisamy <jeevitha@linux.ibm.com> | |
2488 | ||
2489 | PR target/110040 | |
2490 | * config/rs6000/vsx.md (split pattern for V1TI to DI move): New define. | |
2491 | ||
2492 | 2024-07-08 Pan Li <pan2.li@intel.com> | |
2493 | ||
2494 | * config/riscv/autovec.md (ustrunc<mode><v_double_trunc>2): Add | |
2495 | new pattern for double truncation. | |
2496 | (ustrunc<mode><v_quad_trunc>2): Ditto but for quad truncation. | |
2497 | (ustrunc<mode><v_oct_trunc>2): Ditto but for oct truncation. | |
2498 | * config/riscv/riscv-protos.h (expand_vec_double_ustrunc): Add | |
2499 | new func decl to expand double vec ustrunc. | |
2500 | (expand_vec_quad_ustrunc): Ditto but for quad. | |
2501 | (expand_vec_oct_ustrunc): Ditto but for oct. | |
2502 | * config/riscv/riscv-v.cc (expand_vec_double_ustrunc): Add new | |
2503 | func impl to expand vector double ustrunc. | |
2504 | (expand_vec_quad_ustrunc): Ditto but for quad. | |
2505 | (expand_vec_oct_ustrunc): Ditto but for oct. | |
2506 | ||
2507 | 2024-07-08 Fei Gao <gaofei@eswincomputing.com> | |
2508 | ||
2509 | * common/config/riscv/riscv-common.cc (riscv_subset_list::riscv_subset_list): | |
2510 | init m_subset_num to 0. | |
2511 | (riscv_subset_list::add): increase m_subset_num once a subset added. | |
2512 | (riscv_subset_list::finalize): call handle_implied_ext repeatly | |
2513 | until no change in m_subset_num. | |
2514 | * config/riscv/riscv-subset.h: add m_subset_num member. | |
2515 | ||
2516 | 2024-07-08 Kewen Lin <linkw@linux.ibm.com> | |
2517 | ||
2518 | PR tree-optimization/115659 | |
2519 | * config/rs6000/rs6000-builtins.def: Update some bif expanders by | |
2520 | replacing orc<mode>3 with iorc<mode>3. | |
2521 | * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update gen | |
2522 | function by replacing orc<mode>3 with iorc<mode>3. | |
2523 | * config/rs6000/rs6000.md (orc<mode>3): Rename to ... | |
2524 | (iorc<mode>3): ... this. | |
2525 | ||
2526 | 2024-07-08 Kewen Lin <linkw@linux.ibm.com> | |
2527 | ||
2528 | PR tree-optimization/115659 | |
2529 | * doc/md.texi: Document andcm3 and iorcm3. | |
2530 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for | |
2531 | patterns x CMP y ? 0 : z and x CMP y ? z : -1. | |
2532 | * internal-fn.def (BIT_ANDC): New internal function. | |
2533 | (BIT_IORC): Likewise. | |
2534 | * optabs.def (andc, iorc): New optab. | |
2535 | ||
2536 | 2024-07-08 Kewen Lin <linkw@linux.ibm.com> | |
2537 | ||
2538 | PR target/115688 | |
2539 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Consider | |
2540 | explicit VSX when masking off ALTIVEC. | |
2541 | ||
2542 | 2024-07-08 H.J. Lu <hjl.tools@gmail.com> | |
2543 | ||
2544 | * config/i386/i386.cc (ix86_print_operand): Always generate | |
2545 | branch hint for conditional branches. | |
2546 | * config/i386/i386.h (TARGET_BRANCH_PREDICTION_HINTS): Split | |
2547 | into .. | |
2548 | (TARGET_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and .. | |
2549 | (TARGET_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this. | |
2550 | * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS): | |
2551 | Split into .. | |
2552 | (X86_TUNE_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and .. | |
2553 | (X86_TUNE_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this. | |
2554 | ||
2555 | 2024-07-07 Gerald Pfeifer <gerald@pfeifer.com> | |
2556 | ||
2557 | * doc/bugreport.texi (Bug Criteria): Remove dubious example. | |
2558 | ||
2559 | 2024-07-06 Jeff Law <jlaw@ventanamicro.com> | |
2560 | ||
2561 | * config/riscv/bitmanip.md (bset splitters): Turn into define_and_splits. | |
2562 | Don't depend on combine splitting the "andn with constant" form. | |
2563 | (bset, binv, bclr with masked bit position): New patterns. | |
2564 | ||
2565 | 2024-07-06 Jeff Law <jlaw@ventanamicro.com> | |
2566 | ||
2567 | * config/sh/sh.md (adddi3): Only allow matching when we can | |
2568 | still create new pseudos. | |
2569 | (subdi3, *rotcl, *rotcr, *rotcr_neg_t, negdi2): Likewise. | |
2570 | (abs<mode>2, negabs<mode>2, negdi_cond): Likewise. | |
2571 | (*swapbisi2_and_shl8, *swapbhisi2, *movsi_index_disp_load): Likewise. | |
2572 | (*movhi_index_disp_load, *mov<mode>index_disp_store): Likewise. | |
2573 | (*mov_t_msb_neg, *negt_msb, clipu_one): Likewise. | |
2574 | ||
2575 | 2024-07-06 Georg-Johann Lay <avr@gjlay.de> | |
2576 | ||
2577 | * config/avr/avr.md: Also split with avr_split_tiny_move() | |
2578 | for non-AVR_TINY. | |
2579 | * config/avr/avr.cc (avr_split_tiny_move): Don't change memory | |
2580 | references with base regs that can do PLUS addressing. | |
2581 | (avr_out_lpm_no_lpmx) [POST_INC]: Don't output final ADIW when the | |
2582 | address register is unused after. | |
2583 | ||
2584 | 2024-07-06 Eric Botcazou <ebotcazou@adacore.com> | |
2585 | ||
2586 | PR target/115591 | |
2587 | * config/riscv/riscv.cc (riscv_valid_lo_sum_p): Add missing test on | |
2588 | tree_fits_uhwi_p before calling tree_to_uhwi. | |
2589 | ||
2590 | 2024-07-06 Roger Sayle <roger@nextmovesoftware.com> | |
2591 | ||
2592 | PR target/115751 | |
2593 | * config/i386/i386-expand.cc (ix86_expand_ternlog): Avoid use of | |
2594 | force_reg to "reload" non-register operands, as these may contain | |
2595 | vec_duplicate (broadcast) operands that aren't supported by | |
2596 | force_reg. Use (safer) gen_reg_rtx and emit_move instead. | |
2597 | ||
2598 | 2024-07-05 Iain Sandoe <iain@sandoe.co.uk> | |
2599 | ||
2600 | * config/i386/i386.cc (ix86_cannot_copy_insn_p): New. | |
2601 | (TARGET_CANNOT_COPY_INSN_P): New. | |
2602 | ||
2603 | 2024-07-05 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
2604 | ||
2605 | PR target/115153 | |
2606 | * config/arm/arm.cc (arm_legitimate_index_p): Move LDRD case before | |
2607 | NEON. | |
2608 | (thumb2_legitimate_index_p): Update comments. | |
2609 | (output_move_neon): Use DFmode for vldr/vstr and non-checking | |
2610 | adjust_address. | |
2611 | ||
2612 | 2024-07-05 Robin Dapp <rdapp@ventanamicro.com> | |
2613 | ||
2614 | * config/riscv/autovec.md: Add TU policy. | |
2615 | * config/riscv/riscv-protos.h (enum insn_type): Define | |
2616 | SCALAR_MOVE_MERGED_OP_TU. | |
2617 | ||
2618 | 2024-07-05 Georg-Johann Lay <avr@gjlay.de> | |
2619 | ||
2620 | PR target/87376 | |
2621 | * config/avr/avr-dimode.md: Use "nop_general_operand" instead | |
2622 | of "general_operand" as predicate for all input operands. | |
2623 | ||
2624 | 2024-07-05 Tamar Christina <tamar.christina@arm.com> | |
2625 | ||
2626 | * config/aarch64/aarch64.cc (struct expand_vec_perm_d): Add zero_op0_p | |
2627 | and zero_op_p1. | |
2628 | (aarch64_evpc_tbl): Implement register value remapping. | |
2629 | (aarch64_vectorize_vec_perm_const): Detect if operand is a zero dup | |
2630 | before it's forced to a reg. | |
2631 | ||
2632 | 2024-07-05 Tamar Christina <tamar.christina@arm.com> | |
2633 | ||
2634 | * config/aarch64/aarch64-simd.md | |
2635 | (aarch64_simd_vec_unpack<su>_lo_<mode>): Remove. | |
2636 | (vec_unpack<su>_lo_<mode): Simplify. | |
2637 | * config/aarch64/aarch64.cc (aarch64_gen_shareable_zero): Update | |
2638 | comment. | |
2639 | ||
2640 | 2024-07-05 Alex Coplan <alex.coplan@arm.com> | |
2641 | ||
2642 | * dominance.cc (dot_dominance_tree): New. | |
2643 | ||
2644 | 2024-07-05 Hu, Lin1 <lin1.hu@intel.com> | |
2645 | ||
2646 | * config/i386/sse.md (ssedoublemode): Remove mappings to twice | |
2647 | the number of same-sized elements. Add mappings to the same | |
2648 | number of double-sized elements. | |
2649 | (define_split for vec_concat_minus_plus): Change mode_attr from | |
2650 | ssedoublemode to ssedoublevecmode. | |
2651 | (define_split for vec_concat_plus_minus): Ditto. | |
2652 | (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>): | |
2653 | Ditto. | |
2654 | (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto. | |
2655 | (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto. | |
2656 | (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto. | |
2657 | ||
2658 | 2024-07-05 YunQiang Su <syq@gcc.gnu.org> | |
2659 | ||
2660 | * config/mips/mips-protos.h: New function mips_msa_shf_i8. | |
2661 | * config/mips/mips-msa.md(MSA_WHB_W): Not used anymore; | |
2662 | (msa_shf_<msafmt_f>): Use mips_msa_shf_i8. | |
2663 | * config/mips/mips.cc(mips_const_vector_shuffle_set_p): | |
2664 | Support more cases try to use alien mode instruction; | |
2665 | (mips_msa_shf_i8): New function to get the correct MSA SHF | |
2666 | instruction and IMM. | |
2667 | ||
2668 | 2024-07-05 Richard Biener <rguenther@suse.de> | |
2669 | ||
2670 | * tree-vect-slp.cc (vect_build_slp_instance): Special case | |
2671 | three input permute with the same number of lanes in store | |
2672 | permute lowering. | |
2673 | ||
2674 | 2024-07-04 Siarhei Volkau <lis8215@gmail.com> | |
2675 | ||
2676 | * config/arm/arm.cc (thumb_load_double_from_address): Emit ldmia | |
2677 | when address reg rewritten by load. | |
2678 | * config/arm/thumb1.md (peephole2 to rewrite DI/DF load): New. | |
2679 | (peephole2 to rewrite DI/DF store): New. | |
2680 | * config/arm/iterators.md (DIDF): New. | |
2681 | ||
2682 | 2024-07-04 Alfie Richards <alfie.richards@arm.com> | |
2683 | ||
2684 | PR target/114890 | |
2685 | * config/aarch64/aarch64-simd.md: Remove bigendian operand swap. | |
2686 | ||
2687 | 2024-07-04 Richard Biener <rguenther@suse.de> | |
2688 | ||
2689 | PR middle-end/115426 | |
2690 | * gimplify.cc (gimplify_asm_expr): Handle "rm" output | |
2691 | constraint gimplified to a register (operation). | |
2692 | ||
2693 | 2024-07-04 Roger Sayle <roger@nextmovesoftware.com> | |
2694 | ||
2695 | * config/i386/i386.md (bswaphisi2_lowpart peephole2): New | |
2696 | peephole2 variant to eliminate register shuffling. | |
2697 | ||
2698 | 2024-07-04 Jeff Law <jlaw@ventanamicro.com> | |
2699 | ||
2700 | * config/rx/rx.cc (rx_expand_prologue): Mark the copy from FP to SP | |
2701 | as frame related. | |
2702 | (rx_expand_epilogue): Mark the stack pointer adjustment as frame | |
2703 | related. | |
2704 | ||
2705 | 2024-07-04 Hongyu Wang <hongyu.wang@intel.com> | |
2706 | ||
2707 | * config/i386/i386.cc (ix86_expand_prologue): Set apx_ppx_used | |
2708 | flag in m.fs with TARGET_APX_PPX && !crtl->calls_eh_return. | |
2709 | (ix86_emit_save_regs): Emit ppx is available only when | |
2710 | TARGET_APX_PPX && !crtl->calls_eh_return. | |
2711 | (ix86_expand_epilogue): Don't restore reg using mov when | |
2712 | apx_ppx_used flag is true. | |
2713 | * config/i386/i386.h (struct machine_frame_state): | |
2714 | Add apx_ppx_used flag. | |
2715 | ||
2716 | 2024-07-04 Hu, Lin1 <lin1.hu@intel.com> | |
2717 | ||
2718 | PR tree-optimization/115753 | |
2719 | * tree-vect-stmts.cc (supportable_indirect_convert_operation): Add | |
2720 | TYPE_CODE check before SSA_NAME_RANGE_INFO. | |
2721 | ||
2722 | 2024-07-03 Jeff Law <jlaw@ventanamicro.com> | |
2723 | ||
2724 | * reorg.cc (relax_delay_slots): Do not optimize a conditional | |
2725 | jump around an unconditional jump/return in the presence of | |
2726 | a text section switch. | |
2727 | ||
2728 | 2024-07-03 John David Anglin <danglin@gcc.gnu.org> | |
2729 | ||
2730 | Revert: | |
2731 | 2023-10-05 John David Anglin <danglin@gcc.gnu.org> | |
2732 | ||
2733 | * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Delete. | |
2734 | ||
2735 | 2024-07-03 Palmer Dabbelt <palmer@rivosinc.com> | |
2736 | ||
2737 | * doc/invoke.texi: Describe -march behavior for dependent extensions on | |
2738 | RISC-V. | |
2739 | ||
2740 | 2024-07-03 Gianluca Guida <gianluca@rivosinc.com> | |
2741 | Patrick O'Neill <patrick@rivosinc.com> | |
2742 | ||
2743 | * common/config/riscv/riscv-common.cc | |
2744 | (riscv_subset_list::to_string): Skip zabha when not supported by | |
2745 | the assembler. | |
2746 | * config.in: Regenerate. | |
2747 | * config/riscv/arch-canonicalize: Make zabha imply zaamo. | |
2748 | * config/riscv/iterators.md (amobh): Add iterator for amo | |
2749 | byte/halfword. | |
2750 | * config/riscv/riscv.opt: Add zabha. | |
2751 | * config/riscv/sync.md (atomic_<atomic_optab><mode>): Add | |
2752 | subword atomic op pattern. | |
2753 | (zabha_atomic_fetch_<atomic_optab><mode>): Add subword | |
2754 | atomic_fetch op pattern. | |
2755 | (lrsc_atomic_fetch_<atomic_optab><mode>): Prefer zabha over lrsc | |
2756 | for subword atomic ops. | |
2757 | (zabha_atomic_exchange<mode>): Add subword atomic exchange | |
2758 | pattern. | |
2759 | (lrsc_atomic_exchange<mode>): Prefer zabha over lrsc for subword | |
2760 | atomic exchange ops. | |
2761 | * configure: Regenerate. | |
2762 | * configure.ac: Add zabha assembler check. | |
2763 | * doc/sourcebuild.texi: Add zabha documentation. | |
2764 | ||
2765 | 2024-07-03 Pan Li <pan2.li@intel.com> | |
2766 | ||
2767 | PR target/115763 | |
2768 | * config/riscv/vector.md (*pred_broadcast<mode>): Split into | |
2769 | zvfh and zvfhmin part. | |
2770 | (*pred_broadcast<mode>_zvfh): New define_insn for zvfh part. | |
2771 | (*pred_broadcast<mode>_zvfhmin): Ditto but for zvfhmin. | |
2772 | ||
2773 | 2024-07-03 Pan Li <pan2.li@intel.com> | |
2774 | ||
2775 | * match.pd: Allow any otype is less than itype truncation. | |
2776 | ||
2777 | 2024-07-03 Pan Li <pan2.li@intel.com> | |
2778 | ||
2779 | * tree-vect-patterns.cc (gimple_unsigned_integer_sat_trunc): Add | |
2780 | new decl generated by match. | |
2781 | (vect_recog_sat_trunc_pattern): Add new func impl to recog the | |
2782 | .SAT_TRUNC pattern. | |
2783 | ||
2784 | 2024-07-03 Richard Biener <rguenther@suse.de> | |
2785 | ||
2786 | * tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove | |
2787 | redundant dump. | |
2788 | ||
2789 | 2024-07-03 Jennifer Schmitz <jschmitz@nvidia.com> | |
2790 | ||
2791 | * match.pd: Fold x/sqrt(x) to sqrt(x). | |
2792 | ||
2793 | 2024-07-03 Alexandre Oliva <oliva@adacore.com> | |
2794 | ||
2795 | * dwarf2out.cc (modified_type_die): Follow name's debug type. | |
2796 | ||
2797 | 2024-07-03 Alexandre Oliva <oliva@adacore.com> | |
2798 | ||
2799 | PR target/113719 | |
2800 | * config/i386/i386-options.cc | |
2801 | (ix86_override_options_after_change_1): Add opts and opts_set | |
2802 | parms, operate on them, after factoring out of... | |
2803 | (ix86_override_options_after_change): ... this. Restore calls | |
2804 | of ix86_default_align and ix86_recompute_optlev_based_flags. | |
2805 | (ix86_option_override_internal): Call the factored-out bits. | |
2806 | ||
2807 | 2024-07-03 Kyrylo Tkachov <ktkachov@nvidia.com> | |
2808 | ||
2809 | PR target/115475 | |
2810 | * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): | |
2811 | Define __ARM_FEATURE_SVE_BF16 for TARGET_SVE_BF16. | |
2812 | ||
2813 | 2024-07-03 Kyrylo Tkachov <ktkachov@nvidia.com> | |
2814 | ||
2815 | PR target/115457 | |
2816 | * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): | |
2817 | Define __ARM_FEATURE_BF16 for TARGET_BF16_FP. | |
2818 | ||
2819 | 2024-07-03 Richard Biener <rguenther@suse.de> | |
2820 | ||
2821 | * tree-vect-slp.cc (bst_traits::hash): Handle NULL elements | |
2822 | in SLP_TREE_SCALAR_STMTS. | |
2823 | (vect_print_slp_tree): Likewise. | |
2824 | (vect_mark_slp_stmts): Likewise. | |
2825 | (vect_mark_slp_stmts_relevant): Likewise. | |
2826 | (vect_find_last_scalar_stmt_in_slp): Likewise. | |
2827 | (vect_bb_slp_mark_live_stmts): Likewise. | |
2828 | (vect_slp_prune_covered_roots): Likewise. | |
2829 | (vect_bb_partition_graph_r): Likewise. | |
2830 | (vect_remove_slp_scalar_calls): Likewise. | |
2831 | (vect_slp_gather_vectorized_scalar_stmts): Likewise. | |
2832 | (vect_bb_slp_scalar_cost): Likewise. | |
2833 | (vect_contains_pattern_stmt_p): Likewise. | |
2834 | (vect_slp_convert_to_external): Likewise. | |
2835 | (vect_find_first_scalar_stmt_in_slp): Likewise. | |
2836 | (vect_optimize_slp_pass::remove_redundant_permutations): Likewise. | |
2837 | (vect_slp_analyze_node_operations_1): Likewise. | |
2838 | (vect_schedule_slp_node): Likewise. | |
2839 | * tree-vect-stmts.cc (can_vectorize_live_stmts): Likewise. | |
2840 | (vectorizable_shift): Likewise. | |
2841 | * tree-vect-data-refs.cc (vect_slp_analyze_load_dependences): | |
2842 | Handle NULL elements in SLP_TREE_SCALAR_STMTS. | |
2843 | ||
2844 | 2024-07-03 Georg-Johann Lay <avr@gjlay.de> | |
2845 | ||
2846 | PR target/98762 | |
2847 | * config/avr/avr.cc (avr_out_movqi_r_mr_reg_disp_tiny): Properly | |
2848 | restore the base register when it is partially clobbered. | |
2849 | ||
2850 | 2024-07-03 Tamar Christina <tamar.christina@arm.com> | |
2851 | ||
2852 | PR tree-optimization/114932 | |
2853 | * tree-ssa-loop-ivopts.cc (constant_multiple_of): Use | |
2854 | aff_combination_constant_multiple_p instead. | |
2855 | ||
2856 | 2024-07-03 Tamar Christina <tamar.christina@arm.com> | |
2857 | ||
2858 | PR tree-optimization/114932 | |
2859 | * tree-affine.cc (wide_int_constant_multiple_p): Support 0 and 0 being | |
2860 | multiples. | |
2861 | ||
2862 | 2024-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
2863 | ||
2864 | * df.h (DF_LR_DCE): New df_problem_id. | |
2865 | (df_lr_dce): New macro. | |
2866 | * df-core.cc (rest_of_handle_df_finish): Check for a null free_fun. | |
2867 | * df-problems.cc (df_lr_finalize): Split out fast DCE handling to... | |
2868 | (df_lr_dce_finalize): ...this new function. | |
2869 | (problem_LR_DCE): New df_problem. | |
2870 | (df_lr_add_problem): Register LR_DCE rather than LR itself. | |
2871 | * dce.cc (fast_dce): Clear df_lr_dce->solutions_dirty. | |
2872 | ||
2873 | 2024-07-02 Pengxuan Zheng <quic_pzheng@quicinc.com> | |
2874 | ||
2875 | PR target/113859 | |
2876 | * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>): Rename to... | |
2877 | (@aarch64_<su>addlp<mode>): ... This. | |
2878 | (popcount<mode>2): New define_expand. | |
2879 | ||
2880 | 2024-07-02 Andrew Pinski <quic_apinski@quicinc.com> | |
2881 | ||
2882 | * passes.def (expand_pow): Renamed from expand_powcabs. | |
2883 | * timevar.def (TV_TREE_POWCABS): Remove. | |
2884 | (TV_TREE_POW): Add | |
2885 | * tree-pass.h (make_pass_expand_powcabs): Rename to ... | |
2886 | (make_pass_expand_pow): This. | |
2887 | * tree-ssa-math-opts.cc (class pass_expand_powcabs): Rename to ... | |
2888 | (class pass_expand_pow): This. | |
2889 | (pass_expand_powcabs::execute): Rename to ... | |
2890 | (pass_expand_pow::execute): This. | |
2891 | (make_pass_expand_powcabs): Rename to ... | |
2892 | (make_pass_expand_pow): This. | |
2893 | ||
2894 | 2024-07-02 Andrew Pinski <quic_apinski@quicinc.com> | |
2895 | ||
2896 | * tree-complex.cc (gimple_expand_builtin_cabs): Add | |
2897 | `cabs(a+ai)`, `cabs(x+0i)` and `cabs(0+xi)` optimizations. | |
2898 | ||
2899 | 2024-07-02 Andrew Pinski <quic_apinski@quicinc.com> | |
2900 | ||
2901 | PR tree-optimization/115710 | |
2902 | * tree-complex.cc (init_dont_simulate_again): Handle CABS. | |
2903 | (gimple_expand_builtin_cabs): New function, moved mostly | |
2904 | from tree-ssa-math-opts.cc. | |
2905 | (expand_complex_operations_1): Call gimple_expand_builtin_cabs. | |
2906 | * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Remove. | |
2907 | (build_and_insert_binop): Remove. | |
2908 | (pass_data_expand_powcabs): Update comment. | |
2909 | (pass_expand_powcabs::execute): Don't handle CABS. | |
2910 | ||
2911 | 2024-07-02 Andrew Pinski <quic_apinski@quicinc.com> | |
2912 | ||
2913 | * tree-complex.cc (expand_complex_addition): If both | |
2914 | operands have the same real and imag parts, only | |
2915 | add the addition once. | |
2916 | ||
2917 | 2024-07-02 David Faust <david.faust@oracle.com> | |
2918 | ||
2919 | * common.opt.urls: Regenerate. | |
2920 | ||
2921 | 2024-07-02 David Faust <david.faust@oracle.com> | |
2922 | Cupertino Miranda <cupertino.miranda@oracle.com> | |
2923 | ||
2924 | * btfout.cc (btf_mark_type_used): New. | |
2925 | * ctfc.h (btf_mark_type_used): Declare it here. | |
2926 | * config/bpf/bpf.cc (bpf_option_override): Enable -gprune-btf | |
2927 | by default if -gbtf is enabled. | |
2928 | * config/bpf/core-builtins.cc (extra_fn): New typedef. | |
2929 | (compute_field_expr): Add callback parameter, and call it if supplied. | |
2930 | Fix computation for MEM_REF. | |
2931 | (mark_component_type_as_used): New. | |
2932 | (bpf_mark_types_as_used): Likewise. | |
2933 | (bpf_expand_core_builtin): Call here. | |
2934 | * doc/invoke.texi (Debugging Options): Note that -gprune-btf is | |
2935 | enabled by default for BPF target when generating BTF. | |
2936 | ||
2937 | 2024-07-02 David Faust <david.faust@oracle.com> | |
2938 | ||
2939 | * btfout.cc (btf_used_types): New hash set. | |
2940 | (struct btf_fixup): New. | |
2941 | (fixups, forwards): New vecs. | |
2942 | (btf_output): Calculate num_types depending on debug_prune_btf. | |
2943 | (btf_early_finsih): New initialization for debug_prune_btf. | |
2944 | (btf_add_used_type): New function. | |
2945 | (btf_used_type_list_cb): Likewise. | |
2946 | (btf_collect_pruned_types): Likewise. | |
2947 | (btf_add_vars): Handle special case for variables in ".maps" section | |
2948 | when generating BTF for BPF CO-RE target. | |
2949 | (btf_late_finish): Use btf_collect_pruned_types when debug_prune_btf | |
2950 | is in effect. Move some initialization to btf_early_finish. | |
2951 | (btf_finalize): Additional deallocation for debug_prune_btf. | |
2952 | * common.opt (gprune-btf): New flag. | |
2953 | * ctfc.cc (init_ctf_strtable): Make non-static. | |
2954 | * ctfc.h (init_ctf_strtable, ctfc_delete_strtab): Make extern. | |
2955 | * doc/invoke.texi (Debugging Options): Document -gprune-btf. | |
2956 | ||
2957 | 2024-07-02 David Faust <david.faust@oracle.com> | |
2958 | ||
2959 | * btfout.cc (struct btf_datasec_entry): New. | |
2960 | (struct btf_datasec): Add `id' member. Change `entries' to use | |
2961 | new struct btf_datasec_entry. | |
2962 | (func_map): New hash_map. | |
2963 | (max_translated_id): New. | |
2964 | (btf_var_ids, btf_id_map, holes, voids, num_vars_added) | |
2965 | (num_types_added, num_types_created): Delete. | |
2966 | (btf_absolute_var_id, btf_relative_var_id, btf_absolute_func_id) | |
2967 | (btf_relative_func_id, btf_absolute_datasec_id, init_btf_id_map) | |
2968 | (get_btf_id, set_btf_id, btf_emit_id_p): Delete. | |
2969 | (btf_removed_type_p): Delete. | |
2970 | (btf_dtd_kind, btf_emit_type_p): New helpers. | |
2971 | (btf_fwd_to_enum_p, btf_calc_num_vbytes): Use them. | |
2972 | (btf_collect_datasec): Delete. | |
2973 | (btf_dtd_postprocess_cb, btf_dvd_emit_preprocess_cb) | |
2974 | (btf_dtd_emit_preprocess_cb, btf_emit_preprocess): Delete. | |
2975 | (btf_dmd_representable_bitfield_p): Adapt to type reference changes | |
2976 | and delete now-unused ctfc argument. | |
2977 | (btf_asm_datasec_type_ref): Delete. | |
2978 | (btf_asm_type_ref): Adapt to type reference changes, simplify. | |
2979 | (btf_asm_type): Likewise. Mark struct/union types with bitfield | |
2980 | members. | |
2981 | (btf_asm_array): Adapt to data structure changes. | |
2982 | (btf_asm_varent): Likewise. | |
2983 | (btf_asm_sou_member): Likewise. Ensure non-bitfield members are | |
2984 | correctly re-encoded if struct or union contains any bitfield. | |
2985 | (btf_asm_func_arg, btf_asm_func_type, btf_asm_datasec_entry) | |
2986 | (btf_asm_datasec_type): Adapt to data structure changes. | |
2987 | (output_btf_header): Adapt to other changes, simplify type | |
2988 | length calculation, add info to assembler comments. | |
2989 | (output_btf_vars): Adapt to other changes. | |
2990 | (output_btf_strs): Fix overlong lines. | |
2991 | (output_asm_btf_sou_fields, output_asm_btf_enum_list) | |
2992 | (output_asm_btf_func_args_list, output_asm_btf_vlen_bytes) | |
2993 | (output_asm_btf_type, output_btf_types, output_btf_func_types) | |
2994 | (output_btf_datasec_types): Adapt to other changes. | |
2995 | (btf_init_postprocess): Delete. | |
2996 | (btf_output): Change to only perform output. | |
2997 | (btf_add_const_void, btf_add_func_records): New. | |
2998 | (btf_early_finish): Use them here. New. | |
2999 | (btf_datasec_push_entry): Adapt to data structure changes. | |
3000 | (btf_datasec_add_func, btf_datasec_add_var): New. | |
3001 | (btf_add_func_datasec_entries): New. | |
3002 | (btf_emit_variable_p): New helper. | |
3003 | (btf_add_vars): Use it here. New. | |
3004 | (btf_type_list_cb, btf_collect_translated_types): New. | |
3005 | (btf_assign_func_ids, btf_late_assign_var_ids) | |
3006 | (btf_assign_datasec_ids): New. | |
3007 | (btf_finish): Remove unused argument. Call new btf_late* | |
3008 | functions and btf_output. | |
3009 | (btf_finalize): Adapt to data structure changes. | |
3010 | * ctfc.h (struct ctf_dtdef): Convert existing boolean flags to | |
3011 | BOOL_BITFIELD and reorder. | |
3012 | (struct ctf_dvdef): Add dvd_id member. | |
3013 | (btf_finish): Remove argument from prototype. | |
3014 | (get_btf_id): Delete prototype. | |
3015 | (funcs_traverse_callback, traverse_btf_func_types): Add an | |
3016 | explanatory comment. | |
3017 | * dwarf2ctf.cc (ctf_debug_finish): Remove unused argument. | |
3018 | * dwarf2ctf.h: Analogous change. | |
3019 | * dwarf2out.cc: Likewise. | |
3020 | ||
3021 | 2024-07-02 David Faust <david.faust@oracle.com> | |
3022 | ||
3023 | * btfout.cc (BTF_VOID_TYPEID, BTF_INIT_TYPEID): Move defines to | |
3024 | include/btf.h. | |
3025 | (btf_dvd_emit_preprocess_cb, btf_emit_preprocess) | |
3026 | (btf_dmd_representable_bitfield_p, btf_asm_array, btf_asm_varent) | |
3027 | (btf_asm_sou_member, btf_asm_func_arg, btf_init_postprocess): | |
3028 | Adapt to structural changes in ctf_* structs. | |
3029 | * ctfc.h (struct ctf_dtdef): Add forward declaration. | |
3030 | (ctf_dtdef_t, ctf_dtdef_ref): Move typedefs earlier. | |
3031 | (struct ctf_arinfo, struct ctf_funcinfo, struct ctf_sliceinfo) | |
3032 | (struct ctf_itype, struct ctf_dmdef, struct ctf_func_arg) | |
3033 | (struct ctf_dvdef): Use pointers instead of type IDs for | |
3034 | references to other types and use typedefs where appropriate. | |
3035 | (struct ctf_dtdef): Add ref_type member. | |
3036 | (ctf_type_exists): Use pointer instead of type ID. | |
3037 | (ctf_add_reftype, ctf_add_enum, ctf_add_slice, ctf_add_float) | |
3038 | (ctf_add_integer, ctf_add_unknown, ctf_add_pointer) | |
3039 | (ctf_add_array, ctf_add_forward, ctf_add_typedef) | |
3040 | (ctf_add_function, ctf_add_sou, ctf_add_enumerator) | |
3041 | (ctf_add_variable): Likewise. Return pointer instead of ID. | |
3042 | (ctf_lookup_tree_type): Return pointer to type instead of ID. | |
3043 | * ctfc.cc: Analogous changes. | |
3044 | * ctfout.cc (ctf_asm_type, ctf_asm_slice, ctf_asm_varent) | |
3045 | (ctf_asm_sou_lmember, ctf_asm_sou_member, ctf_asm_func_arg) | |
3046 | (output_ctf_objt_info): Adapt to changes. | |
3047 | * dwarf2ctf.cc (gen_ctf_type, gen_ctf_void_type) | |
3048 | (gen_ctf_unknown_type, gen_ctf_base_type, gen_ctf_pointer_type) | |
3049 | (gen_ctf_subrange_type, gen_ctf_array_type, gen_ctf_typedef) | |
3050 | (gen_ctf_modifier_type, gen_ctf_sou_type, gen_ctf_function_type) | |
3051 | (gen_ctf_enumeration_type, gen_ctf_variable, gen_ctf_function) | |
3052 | (gen_ctf_type, ctf_do_die): Likewise. | |
3053 | * config/bpf/btfext-out.cc (struct btf_ext_core_reloc): Use | |
3054 | pointer instead of type ID. | |
3055 | (bpf_core_reloc_add, bpf_core_get_sou_member_index) | |
3056 | (output_btfext_core_sections): Adapt to above changes. | |
3057 | * config/bpf/core-builtins.cc (process_type): Likewise. | |
3058 | ||
3059 | 2024-07-02 David Faust <david.faust@oracle.com> | |
3060 | ||
3061 | * btfout.cc (btf_init_postprocess): Rename to... | |
3062 | (btf_early_finish): ...this. | |
3063 | (btf_output): Rename to... | |
3064 | (btf_finish): ...this. | |
3065 | * ctfc.h: Analogous changes. | |
3066 | * dwarf2ctf.cc (ctf_debug_early_finish): Conditionally call | |
3067 | btf_early_finish, or ctf_finalize as appropriate. Emit BTF | |
3068 | here for LTO builds. | |
3069 | (ctf_debug_finish): Always call btf_finish here if generating | |
3070 | BTF info in non-LTO builds. | |
3071 | (ctf_debug_finalize, ctf_debug_init_postprocess): Delete. | |
3072 | * dwarf2out.cc (dwarf2out_early_finish): Remove call to | |
3073 | ctf_debug_init_postprocess. | |
3074 | ||
3075 | 2024-07-02 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
3076 | ||
3077 | PR target/115188 | |
3078 | * config/arm/arm.md (unaligned_loadsi): Use 'Uw' constraint and | |
3079 | 'mem_and_no_t1_wback_op'. | |
3080 | (unaligned_loadhiu): Likewise. | |
3081 | (unaligned_storesi): Likewise. | |
3082 | (unaligned_storehi): Likewise. | |
3083 | * config/arm/predicates.md (mem_and_no_t1_wback_op): Add new predicate. | |
3084 | * config/arm/sync.md (arm_atomic_load<mode>): Use 'Uw' constraint. | |
3085 | (arm_atomic_store<mode>): Likewise. | |
3086 | ||
3087 | 2024-07-02 Matthew Malcomson <matthew.malcomson@arm.com> | |
3088 | ||
3089 | * doc/tm.texi: Regenerated. | |
3090 | * target.def (function_attribute_inlinable_p, | |
3091 | unspec_may_trap_p): Update documentation. | |
3092 | ||
3093 | 2024-07-02 Richard Biener <rguenther@suse.de> | |
3094 | ||
3095 | PR tree-optimization/115741 | |
3096 | * tree-vect-stmts.cc (get_group_load_store_type): Also | |
3097 | handle VMAT_CONTIGUOUS_REVERSE when determining overrun. | |
3098 | ||
3099 | 2024-07-02 Andrew Stubbs <ams@baylibre.com> | |
3100 | ||
3101 | * config/gcn/gcn-opts.h (TARGET_GLOBAL_ADDRSPACE): New. | |
3102 | (TARGET_AVGPRS): New. | |
3103 | (TARGET_AVGPR_MEMOPS): New. | |
3104 | (TARGET_AVGPR_COMBINED): New. | |
3105 | (TARGET_FLAT_OFFSETS): New. | |
3106 | (TARGET_11BIT_GLOBAL_OFFSET): New. | |
3107 | (TARGET_CDNA2_MEM_COSTS): New. | |
3108 | (TARGET_WAVE64_COMPAT): New. | |
3109 | (TARGET_DPP_FULL): New. | |
3110 | (TARGET_DPP16): New. | |
3111 | (TARGET_DPP8): New. | |
3112 | (TARGET_AVGPR_CDNA1_NOPS): New. | |
3113 | (TARGET_VGPR_GRANULARITY): New. | |
3114 | (TARGET_ARCHITECTED_FLAT_SCRATCH): New. | |
3115 | (TARGET_EXPLICIT_CARRY): New. | |
3116 | (TARGET_MULTIPLY_IMMEDIATE): New. | |
3117 | (TARGET_SDWA): New. | |
3118 | (TARGET_WBINVL1_CACHE): New. | |
3119 | (TARGET_GLn_CACHE): New. | |
3120 | * config/gcn/gcn-valu.md (throughout): Change TARGET_GCN*, | |
3121 | TARGET_CDNA* and TARGET_RDNA* to use TARGET_<feature> instead. | |
3122 | * config/gcn/gcn.cc (throughout): Likewise. | |
3123 | * config/gcn/gcn.md (throughout): Likewise. | |
3124 | ||
3125 | 2024-07-02 Lingling Kong <lingling.kong@intel.com> | |
3126 | ||
3127 | * config/i386/i386.md (*imulhi<mode>zu): Added APX | |
3128 | NF support. | |
3129 | (*imulhi<mode>zu<nf_name>): New define_insn. | |
3130 | (*mulsi3_1_zext<nf_name>): Ditto. | |
3131 | (*mul<mode><dwi>3_1<nf_name>): Ditto. | |
3132 | (*<u>mulqihi3_1<nf_name>): Ditto. | |
3133 | (*mul<mode>3_1<nf_name>): Added APX NDD support. | |
3134 | (*mulv<mode>4): Ditto. | |
3135 | (*mulvhi4): Ditto. | |
3136 | ||
3137 | 2024-07-02 Kewen Lin <linkw@linux.ibm.com> | |
3138 | ||
3139 | PR target/115739 | |
3140 | * config/sparc/vxworks.h (SPARC_LONG_DOUBLE_TYPE_SIZE): New define. | |
3141 | ||
3142 | 2024-07-02 Lulu Cheng <chenglulu@loongson.cn> | |
3143 | ||
3144 | * config/loongarch/loongarch.cc (loongarch_insn_cost): | |
3145 | New function. | |
3146 | (TARGET_INSN_COST): New macro. | |
3147 | ||
3148 | 2024-07-02 Kewen Lin <linkw@linux.ibm.com> | |
3149 | ||
3150 | PR tree-optimization/115659 | |
3151 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for | |
3152 | patterns x CMP y ? -1 : z and x CMP y ? z : 0. | |
3153 | ||
3154 | 2024-07-01 Richard Biener <rguenther@suse.de> | |
3155 | ||
3156 | * tree-ssa-forwprop.cc (fwprop_set_lattice_val): Preserve | |
3157 | SSA info. | |
3158 | * tree-ssa-propagate.cc | |
3159 | (substitute_and_fold_dom_walker::before_dom_children): Likewise. | |
3160 | ||
3161 | 2024-07-01 Roger Sayle <roger@nextmovesoftware.com> | |
3162 | ||
3163 | * config/i386/i386.md (peephole2): Transform two consecutive | |
3164 | additions into a 3-component lea if !TARGET_AVOID_LEA_FOR_ADDR. | |
3165 | ||
3166 | 2024-07-01 Georg-Johann Lay <avr@gjlay.de> | |
3167 | ||
3168 | PR target/88236 | |
3169 | PR target/115726 | |
3170 | * config/avr/avr.md (mov<mode>) [avr_mem_memx_p]: Expand in such a | |
3171 | way that the destination does not overlap with any hard register | |
3172 | clobbered / used by xload8qi_A resp. xload<mode>_A. | |
3173 | * config/avr/avr.cc (avr_out_xload): Avoid early-clobber | |
3174 | situation for Z by executing just one load when the output register | |
3175 | overlaps with Z. | |
3176 | ||
3177 | 2024-07-01 Richard Biener <rguenther@suse.de> | |
3178 | ||
3179 | PR tree-optimization/115723 | |
3180 | * tree-vect-loop.cc (check_reduction_path): For a .COND_ADD | |
3181 | verify the else value also refers to the reduction chain op. | |
3182 | ||
3183 | 2024-07-01 Richard Biener <rguenther@suse.de> | |
3184 | ||
3185 | PR tree-optimization/115694 | |
3186 | * tree-ssa-forwprop.cc (pass_forwprop::execute): Check the | |
3187 | store is complex before rewriting it. | |
3188 | ||
3189 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3190 | ||
3191 | PR target/115517 | |
3192 | * config/i386/mmx.md (vcond<mode>v2sf): Removed. | |
3193 | (vcond<MMXMODE124:mode><MMXMODEI:mode>): Ditto. | |
3194 | (vcond<mode><mode>): Ditto. | |
3195 | (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto. | |
3196 | (vcondu<mode><mode>): Ditto. | |
3197 | * config/i386/sse.md (vcond<V_512:mode><VF_512:mode>): Ditto. | |
3198 | (vcond<V_256:mode><VF_256:mode>): Ditto. | |
3199 | (vcond<V_128:mode><VF_128:mode>): Ditto. | |
3200 | (vcond<VI2HFBF_AVX512VL:mode><VHF_AVX512VL:mode>): Ditto. | |
3201 | (vcond<V_512:mode><VI_AVX512BW:mode>): Ditto. | |
3202 | (vcond<V_256:mode><VI_256:mode>): Ditto. | |
3203 | (vcond<V_128:mode><VI124_128:mode>): Ditto. | |
3204 | (vcond<VI8F_128:mode>v2di): Ditto. | |
3205 | (vcondu<V_512:mode><VI_AVX512BW:mode>): Ditto. | |
3206 | (vcondu<V_256:mode><VI_256:mode>): Ditto. | |
3207 | (vcondu<V_128:mode><VI124_128:mode>): Ditto. | |
3208 | (vcondu<VI8F_128:mode>v2di): Ditto. | |
3209 | (vcondeq<VI8F_128:mode>v2di): Ditto. | |
3210 | ||
3211 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3212 | ||
3213 | PR target/115517 | |
3214 | * config/i386/sse.md ("*ashr<mode>3_1"): New | |
3215 | define_insn_and_split. | |
3216 | (*avx512_ashr<mode>3_1): Ditto. | |
3217 | (*avx2_lshr<mode>3_1): Ditto. | |
3218 | (*avx2_lshr<mode>3_2): Ditto and add 2 combine splitter after | |
3219 | it. | |
3220 | * config/i386/mmx.md (mmxscalarsize): New mode attribute. | |
3221 | (*mmw_ashr<mode>3_1): New define_insn_and_split. | |
3222 | ("mmx_<insn><mode>3): Add a combine spiltter after it. | |
3223 | (*mmx_ashrv2hi3_1): New define_insn_and_plit, also add a | |
3224 | combine splitter after it. | |
3225 | ||
3226 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3227 | ||
3228 | PR target/115517 | |
3229 | * config/i386/sse.md | |
3230 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt_avx512): New | |
3231 | define_insn_and_split. | |
3232 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt_avx512): | |
3233 | Ditto. | |
3234 | (*<sse2_avx2>_pmovmskb_lt_avx512): Ditto. | |
3235 | (*<sse2_avx2>_pmovmskb_zext_lt_avx512): Ditto. | |
3236 | (*sse2_pmovmskb_ext_lt_avx512): Ditto. | |
3237 | (*pmovsk_kmask_v16qi_avx512): Ditto. | |
3238 | (*pmovsk_mask_v32qi_avx512): Ditto. | |
3239 | (*pmovsk_mask_cmp_<mode>_avx512): Ditto. | |
3240 | (*pmovsk_ptest_<mode>_avx512): Ditto. | |
3241 | ||
3242 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3243 | ||
3244 | PR target/115517 | |
3245 | * config/i386/sse.md (*minmax<mode>3_1): New pre_reload | |
3246 | define_insn_and_split. | |
3247 | (*minmax<mode>3_2): Ditto. | |
3248 | ||
3249 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3250 | ||
3251 | PR target/115517 | |
3252 | * config/i386/sse.md | |
3253 | (*<avx512>_cvtmask2<ssemodesuffix><mode>_not): New pre_reload | |
3254 | splitter. | |
3255 | (*<avx512>_cvtmask2<ssemodesuffix><mode>_not): Ditto. | |
3256 | (*avx2_pcmp<mode>3_6): Ditto. | |
3257 | (*avx2_pcmp<mode>3_7): Ditto. | |
3258 | ||
3259 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3260 | ||
3261 | PR target/115517 | |
3262 | * config/i386/sse.md | |
3263 | (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_gt): New | |
3264 | define_insn_and_split. | |
3265 | (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_gtint): | |
3266 | Ditto. | |
3267 | (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_not_gtint): | |
3268 | Ditto. | |
3269 | (*<sse4_1_avx2>_pblendvb_gt): Ditto. | |
3270 | (*<sse4_1_avx2>_pblendvb_gt_subreg_not): Ditto. | |
3271 | ||
3272 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3273 | ||
3274 | * config/i386/i386-features.cc (ix86_rpad_gate): New function. | |
3275 | * config/i386/i386-options.cc (ix86_override_options_after_change): | |
3276 | Don't disable flate_combine. | |
3277 | * config/i386/i386-passes.def: Move pass_stv2 and pass_rpad | |
3278 | after pre_reload pas_late_combine. | |
3279 | * config/i386/i386-protos.h (ix86_rpad_gate): New declare. | |
3280 | * config/i386/i386.cc (ix86_insn_cost): New function. | |
3281 | (TARGET_INSN_COST): Define. | |
3282 | ||
3283 | 2024-07-01 liuhongt <hongtao.liu@intel.com> | |
3284 | ||
3285 | PR target/115610 | |
3286 | * config/i386/i386.md (<*insnsi3_zext): Add alternative ?k, | |
3287 | enable it only for lshiftrt and under avx512bw. | |
3288 | * config/i386/sse.md (*klshrsi3_1_zext): New define_insn, and | |
3289 | add corresponding define_split after it. | |
3290 | ||
3291 | 2024-06-30 John David Anglin <danglin@gcc.gnu.org> | |
3292 | ||
3293 | PR target/115691 | |
3294 | * config/pa/pa.md: Remove incorrect xmpyu patterns. | |
3295 | ||
3296 | 2024-06-30 Richard Biener <rguenther@suse.de> | |
3297 | ||
3298 | PR tree-optimization/115701 | |
3299 | * tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy): | |
3300 | Only copy info from within the same BB. | |
3301 | ||
3302 | 2024-06-30 Richard Biener <rguenther@suse.de> | |
3303 | ||
3304 | PR tree-optimization/115701 | |
3305 | * tree-ssanames.h (maybe_duplicate_ssa_info_at_copy): Declare. | |
3306 | * tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy): New | |
3307 | function, split out from ... | |
3308 | * tree-ssa-copy.cc (fini_copy_prop): ... here. | |
3309 | * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): ... | |
3310 | and here. | |
3311 | ||
3312 | 2024-06-30 Richard Biener <rguenther@suse.de> | |
3313 | ||
3314 | * tree-vect-slp.cc (vect_build_slp_tree_1): Compare | |
3315 | STMT_VINFO_REDUC_IDX. | |
3316 | (vect_build_slp_tree_2): Prevent operand swapping for | |
3317 | all stmts participating in a reduction. | |
3318 | ||
3319 | 2024-06-30 Feng Xue <fxue@os.amperecomputing.com> | |
3320 | ||
3321 | * tree-vect-loop.cc (vectorizable_reduction): Determine input vectype | |
3322 | during traversal of reduction statements. | |
3323 | ||
3324 | 2024-06-30 Feng Xue <fxue@os.amperecomputing.com> | |
3325 | ||
3326 | * tree-vect-stmts.cc (vectorizable_shift): Allow shift-by-induction | |
3327 | for single-lane slp node. | |
3328 | ||
3329 | 2024-06-29 Maciej W. Rozycki <macro@orcam.me.uk> | |
3330 | ||
3331 | PR rtl-optimization/115565 | |
3332 | * cse.cc (record_jump_cond): Use INT_MIN rather than -1 for | |
3333 | `comparison_qty' if !REG_P. | |
3334 | ||
3335 | 2024-06-29 Sergei Lewis <slewis@rivosinc.com> | |
3336 | ||
3337 | * config/riscv/riscv.md (movmem<mode>): New expander. | |
3338 | ||
3339 | 2024-06-29 Pan Li <pan2.li@intel.com> | |
3340 | ||
3341 | * match.pd: Add imm form for .SAT_ADD matching. | |
3342 | * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): | |
3343 | Add .SAT_ADD matching under PLUS_EXPR. | |
3344 | ||
3345 | 2024-06-29 Jeff Law <jlaw@ventanamicro.com> | |
3346 | ||
3347 | * config/mcore/mcore.md (zero_extendqihi2): Clobber CC in expander | |
3348 | and matching insn. | |
3349 | (zero_extendqisi2): Likewise. | |
3350 | ||
3351 | 2024-06-28 Andrew MacLeod <amacleod@redhat.com> | |
3352 | ||
3353 | * gimple-range-cache.cc (ssa_lazy_cache::ssa_lazy_cache): Relocate here. | |
3354 | Check for provided obstack. | |
3355 | (ssa_lazy_cache::~ssa_lazy_cache): Relocate here. Free bitmap or obstack. | |
3356 | * gimple-range-cache.h (ssa_lazy_cache::ssa_lazy_cache): Move. | |
3357 | (ssa_lazy_cache::~ssa_lazy_cache): Move. | |
3358 | (ssa_lazy_cache::m_ob): New. | |
3359 | * gimple-range.cc (dom_ranger::dom_ranger): Iniitialize obstack. | |
3360 | (dom_ranger::~dom_ranger): Release obstack. | |
3361 | (dom_ranger::pre_bb): Create ssa_lazy_cache using obstack. | |
3362 | * gimple-range.h (m_bitmaps): New. | |
3363 | ||
3364 | 2024-06-28 Uros Bizjak <ubizjak@gmail.com> | |
3365 | ||
3366 | * config/i386/i386-expand.cc (ix86_expand_move): Remove extra | |
3367 | assignment to tmp variable, reuse tmp variable instead of | |
3368 | declaring new temporary variable and remove tmp variable shadowing. | |
3369 | ||
3370 | 2024-06-28 Jørgen Kvalsvik <j@lambda.is> | |
3371 | ||
3372 | * tree-profile.cc (find_conditions): Use auto_vec without | |
3373 | embedded storage. | |
3374 | ||
3375 | 2024-06-28 Richard Biener <rguenther@suse.de> | |
3376 | ||
3377 | PR tree-optimization/115652 | |
3378 | * tree-vect-slp.cc (vect_schedule_slp_node): Handle the case | |
3379 | where the outer loop header block is empty. | |
3380 | ||
3381 | 2024-06-28 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
3382 | ||
3383 | PR bootstrap/115635 | |
3384 | PR target/115643 | |
3385 | PR target/115661 | |
3386 | * config/aarch64/cygming.h | |
3387 | (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to | |
3388 | PE_COFF_LEGITIMIZE_EXTERN_DECL. | |
3389 | (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise. | |
3390 | * config/i386/cygming.h (GOT_ALIAS_SET): Remove the diffinition to | |
3391 | reuse it from i386.h. | |
3392 | (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to | |
3393 | PE_COFF_LEGITIMIZE_EXTERN_DECL. | |
3394 | (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise. | |
3395 | * config/i386/i386-expand.cc (ix86_expand_move): Return | |
3396 | ix86_GOT_alias_set. | |
3397 | * config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise. | |
3398 | * config/i386/i386.cc (ix86_GOT_alias_set): Likewise. | |
3399 | * config/i386/i386.h (GOT_ALIAS_SET): Likewise. | |
3400 | * config/mingw/winnt-dll.cc (get_dllimport_decl): Use | |
3401 | GOT_ALIAS_SET. | |
3402 | (legitimize_pe_coff_symbol): Rename to | |
3403 | PE_COFF_LEGITIMIZE_EXTERN_DECL. | |
3404 | * config/mingw/winnt-dll.h (ix86_GOT_alias_set): Declare | |
3405 | ix86_GOT_alias_set. | |
3406 | ||
3407 | 2024-06-28 Aldy Hernandez <aldyh@redhat.com> | |
3408 | ||
3409 | * range-op-ptr.cc (class hybrid_and_operator): Remove. | |
3410 | (class hybrid_or_operator): Same. | |
3411 | (class hybrid_min_operator): Same. | |
3412 | (class hybrid_max_operator): Same. | |
3413 | ||
3414 | 2024-06-28 Richard Biener <rguenther@suse.de> | |
3415 | ||
3416 | PR tree-optimization/115640 | |
3417 | * tree-vect-stmts.cc (vectorizable_load): With an inner | |
3418 | loop SLP access to not apply a gap adjustment. | |
3419 | ||
3420 | 2024-06-28 Andrew Stubbs <ams@baylibre.com> | |
3421 | ||
3422 | PR target/115640 | |
3423 | * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Modify RDNA checks. | |
3424 | ||
3425 | 2024-06-28 Roger Sayle <roger@nextmovesoftware.com> | |
3426 | ||
3427 | * config/i386/i386.md (*concat<mode><dwi>3_3): Change zero_extend | |
3428 | to any_extend in first operand to left shift by mode precision. | |
3429 | (*concat<mode><dwi>3_4): Likewise. | |
3430 | (*concat<mode><dwi>3_6): Likewise. | |
3431 | ||
3432 | 2024-06-28 Roger Sayle <roger@nextmovesoftware.com> | |
3433 | ||
3434 | * config/i386/i386-expand.cc (ix86_ternlog_idx) <case VEC_DUPLICATE>: | |
3435 | Add a "goto do_mem_operand" as this need not match memory_operand. | |
3436 | <case CONST_VECTOR>: Only args[2] may be volatile memory operand. | |
3437 | Allow MEM/VEC_DUPLICATE/CONST_VECTOR as args[0] and args[1]. | |
3438 | ||
3439 | 2024-06-27 Richard Sandiford <richard.sandiford@arm.com> | |
3440 | ||
3441 | PR rtl-optimization/115677 | |
3442 | * late-combine.cc (pass_late_combine::gate): New function. | |
3443 | ||
3444 | 2024-06-27 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
3445 | ||
3446 | PR target/115634 | |
3447 | * config/s390/s390.cc (s390_decompose_addrstyle_without_index): | |
3448 | Check for ADDR_REGS in s390_decompose_addrstyle_without_index. | |
3449 | ||
3450 | 2024-06-27 Richard Biener <rguenther@suse.de> | |
3451 | ||
3452 | PR tree-optimization/115669 | |
3453 | * tree-vect-slp.cc (vect_build_slp_tree_2): Do not reassociate | |
3454 | chains that participate in a reduction. | |
3455 | ||
3456 | 2024-06-27 Aldy Hernandez <aldyh@redhat.com> | |
3457 | ||
3458 | * gimple-range-cache.cc (update_list::update_list): Add m_bitmaps. | |
3459 | (update_list::~update_list): Initialize m_bitmaps. | |
3460 | * gimple-range-cache.h (ssa_lazy_cache): Add m_bitmaps. | |
3461 | * gimple-range.cc (enable_ranger): Remove global bitmap | |
3462 | initialization. | |
3463 | (disable_ranger): Remove global bitmap release. | |
3464 | ||
3465 | 2024-06-27 Hu, Lin1 <lin1.hu@intel.com> | |
3466 | ||
3467 | * config/i386/sse.md | |
3468 | (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name> | |
3469 | <round_name>): Refactor the pattern. | |
3470 | (unspec_fix<vcvtt_uns_suffix>_trunc<mode><sselongvecmodelower>2 | |
3471 | <mask_name><round_saeonly_name>): Ditto. | |
3472 | (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name> | |
3473 | <round_saeonly_name>): Ditto. | |
3474 | * config/i386/subst.md (round_modev8sf_condition): Remove. | |
3475 | (round_saeonly_modev8sf_condition): Ditto. | |
3476 | ||
3477 | 2024-06-27 Hu, Lin1 <lin1.hu@intel.com> | |
3478 | ||
3479 | PR target/107432 | |
3480 | * config/i386/i386-expand.cc (ix86_expand_trunc_with_avx2_noavx512f): | |
3481 | New function for generate a series of suitable insn. | |
3482 | * config/i386/i386-protos.h (ix86_expand_trunc_with_avx2_noavx512f): | |
3483 | Define new function. | |
3484 | * config/i386/sse.md: Extend trunc<mode><mode>2 for x86-64-v3. | |
3485 | (ssebytemode) Add V8HI. | |
3486 | (PMOV_DST_MODE_2_AVX2): New mode iterator. | |
3487 | (PMOV_SRC_MODE_3_AVX2): Ditto. | |
3488 | * config/i386/mmx.md | |
3489 | (trunc<mode><mmxhalfmodelower>2): Ditto. | |
3490 | (avx512vl_trunc<mode><mmxhalfmodelower>2): Ditto. | |
3491 | (truncv2si<mode>2): Ditto. | |
3492 | (avx512vl_truncv2si<mode>2): Ditto. | |
3493 | (mmxbytemode): New mode attr. | |
3494 | ||
3495 | 2024-06-27 Hu, Lin1 <lin1.hu@intel.com> | |
3496 | ||
3497 | PR target/107432 | |
3498 | * config/i386/mmx.md | |
3499 | (VI2_32_64): New mode iterator. | |
3500 | (mmxhalfmode): New mode atter. | |
3501 | (mmxhalfmodelower): Ditto. | |
3502 | (truncv2hiv2qi2): Extend mode v4hi and change name from | |
3503 | truncv2hiv2qi to trunc<mode><mmxhalfmodelower>2. | |
3504 | ||
3505 | 2024-06-27 Hu, Lin1 <lin1.hu@intel.com> | |
3506 | ||
3507 | PR target/107432 | |
3508 | * tree-vect-generic.cc | |
3509 | (expand_vector_conversion): Support convert for int -> int, | |
3510 | float -> float and int <-> float. | |
3511 | * tree-vect-stmts.cc (vectorizable_conversion): Wrap the | |
3512 | indirect convert part. | |
3513 | (supportable_indirect_convert_operation): New function. | |
3514 | * tree-vectorizer.h (supportable_indirect_convert_operation): | |
3515 | Define the new function. | |
3516 | ||
3517 | 2024-06-27 Xi Ruoyao <xry111@xry111.site> | |
3518 | ||
3519 | * config/loongarch/loongarch.cc (loongarch_print_operand_reloc): | |
3520 | Dedup and sort the comment describing modifiers. | |
3521 | ||
3522 | 2024-06-27 Xi Ruoyao <xry111@xry111.site> | |
3523 | ||
3524 | * config/loongarch/loongarch.cc: | |
3525 | (loongarch_use_bstrins_for_ior_with_mask): Split the main logic | |
3526 | into ... | |
3527 | (loongarch_use_bstrins_for_ior_with_mask_1): ... here. | |
3528 | (loongarch_rtx_costs): Special case for IOR those can be | |
3529 | implemented with bstrins. | |
3530 | ||
3531 | 2024-06-27 liuhongt <hongtao.liu@intel.com> | |
3532 | ||
3533 | PR target/115462 | |
3534 | * config/i386/i386.cc (ix86_rtx_costs): Make cost of MEM (reg + | |
3535 | disp) just a little bit more than MEM (reg). | |
3536 | ||
3537 | 2024-06-27 Pan Li <pan2.li@intel.com> | |
3538 | ||
3539 | * internal-fn.def (SAT_TRUNC): Add new signed IFN sat_trunc as | |
3540 | unary_convert. | |
3541 | * match.pd: Add new matching pattern for unsigned int sat_trunc. | |
3542 | * optabs.def (OPTAB_CL): Add unsigned and signed optab. | |
3543 | * tree-ssa-math-opts.cc (gimple_unsigend_integer_sat_trunc): Add | |
3544 | new decl for the matching pattern generated func. | |
3545 | (match_unsigned_saturation_trunc): Add new func impl to match | |
3546 | the .SAT_TRUNC. | |
3547 | (math_opts_dom_walker::after_dom_children): Add .SAT_TRUNC match | |
3548 | function under BIT_IOR_EXPR case. | |
3549 | ||
3550 | 2024-06-27 Pan Li <pan2.li@intel.com> | |
3551 | ||
3552 | * match.pd: Add convert description for minus and capture. | |
3553 | * tree-vect-patterns.cc (vect_recog_build_binary_gimple_call): Add | |
3554 | new logic to handle in_type is incompatibile with out_type, as | |
3555 | well as rename from. | |
3556 | (vect_recog_build_binary_gimple_stmt): Rename to. | |
3557 | (vect_recog_sat_add_pattern): Leverage above renamed func. | |
3558 | (vect_recog_sat_sub_pattern): Ditto. | |
3559 | ||
3560 | 2024-06-27 Richard Biener <rguenther@suse.de> | |
3561 | ||
3562 | PR tree-optimization/115652 | |
3563 | * tree-vect-slp.cc (vect_schedule_slp_node): Only insert | |
3564 | at the start of the block if that strictly dominates | |
3565 | the discovered dependent stmt. | |
3566 | ||
3567 | 2024-06-27 Richard Biener <rguenther@suse.de> | |
3568 | ||
3569 | PR tree-optimization/115493 | |
3570 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use | |
3571 | first scalar result. | |
3572 | ||
3573 | 2024-06-26 Richard Biener <rguenther@suse.de> | |
3574 | ||
3575 | PR tree-optimization/115629 | |
3576 | * tree-ssa-tail-merge.cc (gimple_equal_p): Handle | |
3577 | memory references better. | |
3578 | (deps_ok_for_redirect): Handle the case not both blocks | |
3579 | are considered a valid prevailing block. | |
3580 | ||
3581 | 2024-06-26 Richard Biener <rguenther@suse.de> | |
3582 | ||
3583 | PR tree-optimization/115652 | |
3584 | * tree-vect-slp.cc (vect_schedule_slp_node): Advance the | |
3585 | iterator based on last_stmt only for vector defs. | |
3586 | ||
3587 | 2024-06-26 Jørgen Kvalsvik <j@lambda.is> | |
3588 | ||
3589 | * gcov-io.h (GCOV_ARC_TRUE): New. | |
3590 | (GCOV_ARC_FALSE): New. | |
3591 | * gcov.cc (struct arc_info): Add true_value, false_value. | |
3592 | (read_graph_file): Read true_value, false_value. | |
3593 | * profile.cc (branch_prob): Write GCOV_ARC_TRUE, GCOV_ARC_FALSE. | |
3594 | ||
3595 | 2024-06-26 Jørgen Kvalsvik <j@lambda.is> | |
3596 | ||
3597 | * gcov.cc (print_usage): Reference masking MC/DC. | |
3598 | ||
3599 | 2024-06-26 Jørgen Kvalsvik <j@lambda.is> | |
3600 | ||
3601 | * doc/gcov.texi: Add MC/DC section. | |
3602 | ||
3603 | 2024-06-26 Jørgen Kvalsvik <j@lambda.is> | |
3604 | ||
3605 | * tree-profile.cc (find_conditions): Use auto_vec. | |
3606 | ||
3607 | 2024-06-26 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
3608 | ||
3609 | * config/arm/arm.cc (arm_predict_doloop_p): Reject loops with function | |
3610 | calls that are not builtins. | |
3611 | ||
3612 | 2024-06-26 Kyrylo Tkachov <ktkachov@nvidia.com> | |
3613 | ||
3614 | * config/aarch64/aarch64-cores.def (grace): New entry. | |
3615 | * config/aarch64/aarch64-tune.md: Regenerate. | |
3616 | * doc/invoke.texi (AArch64 Options): Document the above. | |
3617 | ||
3618 | 2024-06-26 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
3619 | ||
3620 | * config/i386/i386.cc (legitimize_dllimport_symbol): Remove unused | |
3621 | functions. | |
3622 | (legitimize_pe_coff_extern_decl): Likewise. | |
3623 | ||
3624 | 2024-06-26 Kewen Lin <linkw@linux.ibm.com> | |
3625 | Xionghu Luo <xionghuluo@tencent.com> | |
3626 | ||
3627 | PR target/106069 | |
3628 | PR target/115355 | |
3629 | * config/rs6000/altivec.md (altivec_vmrghh_direct): Rename to ... | |
3630 | (altivec_vmrghh_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. | |
3631 | (altivec_vmrghh_direct_le): New define_insn. | |
3632 | (altivec_vmrglh_direct): Rename to ... | |
3633 | (altivec_vmrglh_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. | |
3634 | (altivec_vmrglh_direct_le): New define_insn. | |
3635 | (altivec_vmrghh): Adjust by calling gen_altivec_vmrghh_direct_be | |
3636 | for BE and gen_altivec_vmrglh_direct_le for LE. | |
3637 | (altivec_vmrglh): Adjust by calling gen_altivec_vmrglh_direct_be | |
3638 | for BE and gen_altivec_vmrghh_direct_le for LE. | |
3639 | (vec_widen_umult_hi_v16qi): Adjust the call to | |
3640 | gen_altivec_vmrghh_direct by gen_altivec_vmrghh for BE | |
3641 | and by gen_altivec_vmrglh for LE. | |
3642 | (vec_widen_smult_hi_v16qi): Likewise. | |
3643 | (vec_widen_umult_lo_v16qi): Adjust the call to | |
3644 | gen_altivec_vmrglh_direct by gen_altivec_vmrglh for BE | |
3645 | and by gen_altivec_vmrghh for LE. | |
3646 | (vec_widen_smult_lo_v16qi): Likewise. | |
3647 | * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace | |
3648 | CODE_FOR_altivec_vmrghh_direct by | |
3649 | CODE_FOR_altivec_vmrghh_direct_be for BE and | |
3650 | CODE_FOR_altivec_vmrghh_direct_le for LE. And replace | |
3651 | CODE_FOR_altivec_vmrglh_direct by | |
3652 | CODE_FOR_altivec_vmrglh_direct_be for BE and | |
3653 | CODE_FOR_altivec_vmrglh_direct_le for LE. | |
3654 | ||
3655 | 2024-06-26 Kewen Lin <linkw@linux.ibm.com> | |
3656 | Xionghu Luo <xionghuluo@tencent.com> | |
3657 | ||
3658 | PR target/106069 | |
3659 | PR target/115355 | |
3660 | * config/rs6000/altivec.md (altivec_vmrghb_direct): Rename to ... | |
3661 | (altivec_vmrghb_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. | |
3662 | (altivec_vmrghb_direct_le): New define_insn. | |
3663 | (altivec_vmrglb_direct): Rename to ... | |
3664 | (altivec_vmrglb_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. | |
3665 | (altivec_vmrglb_direct_le): New define_insn. | |
3666 | (altivec_vmrghb): Adjust by calling gen_altivec_vmrghb_direct_be | |
3667 | for BE and gen_altivec_vmrglb_direct_le for LE. | |
3668 | (altivec_vmrglb): Adjust by calling gen_altivec_vmrglb_direct_be | |
3669 | for BE and gen_altivec_vmrghb_direct_le for LE. | |
3670 | * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace | |
3671 | CODE_FOR_altivec_vmrghb_direct by | |
3672 | CODE_FOR_altivec_vmrghb_direct_be for BE and | |
3673 | CODE_FOR_altivec_vmrghb_direct_le for LE. And replace | |
3674 | CODE_FOR_altivec_vmrglb_direct by | |
3675 | CODE_FOR_altivec_vmrglb_direct_be for BE and | |
3676 | CODE_FOR_altivec_vmrglb_direct_le for LE. | |
3677 | ||
3678 | 2024-06-26 Richard Biener <rguenther@suse.de> | |
3679 | ||
3680 | PR tree-optimization/115646 | |
3681 | * tree-call-cdce.cc (check_pow): Check for bit_sz values | |
3682 | as allowed by transform. | |
3683 | ||
3684 | 2024-06-26 Haochen Gui <guihaoc@gcc.gnu.org> | |
3685 | ||
3686 | * builtins.cc (interclass_mathfn_icode): Set optab to isnormal_optab | |
3687 | for isnormal builtin. | |
3688 | * optabs.def (isnormal_optab): New. | |
3689 | * doc/md.texi (isnormal): Document. | |
3690 | ||
3691 | 2024-06-26 Haochen Gui <guihaoc@gcc.gnu.org> | |
3692 | ||
3693 | * builtins.cc (interclass_mathfn_icode): Set optab to isfinite_optab | |
3694 | for isfinite builtin. | |
3695 | * optabs.def (isfinite_optab): New. | |
3696 | * doc/md.texi (isfinite): Document. | |
3697 | ||
3698 | 2024-06-26 liuhongt <hongtao.liu@intel.com> | |
3699 | ||
3700 | PR target/114189 | |
3701 | * match.pd: Simplify a < 0 ? -1 : 0 to (signed) >> 31 and a < | |
3702 | 0 ? 1 : 0 to (unsigned) a >> 31 for vector integer type. | |
3703 | ||
3704 | 2024-06-26 Mark Harmstone <mark@harmstone.com> | |
3705 | ||
3706 | * dwarf2codeview.cc (struct codeview_custom_type): Add lf_procedure | |
3707 | and lf_arglist to union. | |
3708 | (write_lf_procedure, write_lf_arglist): New functions. | |
3709 | (write_custom_types): Call write_lf_procedure and write_lf_arglist. | |
3710 | (get_type_num_subroutine_type): New function. | |
3711 | (get_type_num): Handle DW_TAG_subroutine_type DIEs. | |
3712 | * dwarf2codeview.h (LF_PROCEDURE, LF_ARGLIST): Define. | |
3713 | ||
3714 | 2024-06-26 Mark Harmstone <mark@harmstone.com> | |
3715 | ||
3716 | * dwarf2codeview.cc (struct codeview_custom_type): Add lf_bitfield to | |
3717 | union. | |
3718 | (write_lf_bitfield): New function. | |
3719 | (write_custom_types): Call write_lf_bitfield. | |
3720 | (create_bitfield): New function. | |
3721 | (get_type_num_struct): Handle bitfields. | |
3722 | * dwarf2codeview.h (LF_BITFIELD): Define. | |
3723 | ||
3724 | 2024-06-26 David Malcolm <dmalcolm@redhat.com> | |
3725 | ||
3726 | * Makefile.in (OBJS-libcommon): Add diagnostic-global-context.o. | |
3727 | * diagnostic-global-context.cc: New file, taken from material in | |
3728 | diagnostic.cc. | |
3729 | * diagnostic.cc (global_diagnostic_context): Move to | |
3730 | diagnostic-global-context.cc. | |
3731 | (global_dc): Likewise. | |
3732 | (verbatim): Likewise. | |
3733 | (emit_diagnostic): Likewise. | |
3734 | (emit_diagnostic_valist): Likewise. | |
3735 | (emit_diagnostic_valist_meta): Likewise. | |
3736 | (inform): Likewise. | |
3737 | (inform_n): Likewise. | |
3738 | (warning): Likewise. | |
3739 | (warning_at): Likewise. | |
3740 | (warning_meta): Likewise. | |
3741 | (warning_n): Likewise. | |
3742 | (pedwarn): Likewise. | |
3743 | (permerror): Likewise. | |
3744 | (permerror_opt): Likewise. | |
3745 | (error): Likewise. | |
3746 | (error_n): Likewise. | |
3747 | (error_at): Likewise. | |
3748 | (error_meta): Likewise. | |
3749 | (sorry): Likewise. | |
3750 | (sorry_at): Likewise. | |
3751 | (seen_error): Likewise. | |
3752 | (fatal_error): Likewise. | |
3753 | (internal_error): Likewise. | |
3754 | (internal_error_no_backtrace): Likewise. | |
3755 | (fnotice): Likewise. | |
3756 | (auto_diagnostic_group::auto_diagnostic_group): Likewise. | |
3757 | (auto_diagnostic_group::~auto_diagnostic_group): Likewise. | |
3758 | ||
3759 | 2024-06-26 David Malcolm <dmalcolm@redhat.com> | |
3760 | ||
3761 | * diagnostic-path.cc (class path_label): Add m_path field, | |
3762 | and use it to replace all uses of global_dc. | |
3763 | (event_range::event_range): Add "ctxt" param and use it to | |
3764 | construct m_path_label. | |
3765 | (event_range::maybe_add_event): Add "ctxt" param and pass it to | |
3766 | gcc_rich_location::add_location_if_nearby. | |
3767 | (path_summary::path_summary): Add "ctxt" param and pass it to | |
3768 | event_range::maybe_add_event. | |
3769 | (diagnostic_context::print_path): Pass *this to path_summary ctor. | |
3770 | (selftest::test_empty_path): Use "dc" when constructing | |
3771 | path_summary rather than implicitly using global_dc. | |
3772 | (selftest::test_intraprocedural_path): Likewise. | |
3773 | (selftest::test_interprocedural_path_1): Likewise. | |
3774 | (selftest::test_interprocedural_path_2): Likewise. | |
3775 | (selftest::test_recursion): Likewise. | |
3776 | (selftest::test_control_flow_1): Likewise. | |
3777 | (selftest::test_control_flow_2): Likewise. | |
3778 | (selftest::test_control_flow_3): Likewise. | |
3779 | (selftest::assert_cfg_edge_path_streq): Likewise. | |
3780 | (selftest::test_control_flow_5): Likewise. | |
3781 | (selftest::test_control_flow_6): Likewise. | |
3782 | (selftest::diagnostic_path_cc_tests): Eliminate use of global_dc. | |
3783 | * diagnostic-show-locus.cc | |
3784 | (gcc_rich_location::add_location_if_nearby): Add "ctxt" param and | |
3785 | use it instead of implicitly using global_dc. | |
3786 | (selftest::test_add_location_if_nearby): Use | |
3787 | test_diagnostic_context rather than implicitly using global_dc. | |
3788 | * diagnostic.cc (pedantic_warning_kind): Delete macro. | |
3789 | (permissive_error_kind): Delete macro. | |
3790 | (permissive_error_option): Delete macro. | |
3791 | (diagnostic_context::diagnostic_enabled): Remove use of | |
3792 | permissive_error_option. | |
3793 | (diagnostic_context::report_diagnostic): Remove use of | |
3794 | pedantic_warning_kind. | |
3795 | (diagnostic_impl): Convert to... | |
3796 | (diagnostic_context::diagnostic_impl): ...this. | |
3797 | (diagnostic_n_impl): Convert to... | |
3798 | (diagnostic_context::diagnostic_n_impl): ...this. | |
3799 | (emit_diagnostic): Explicitly use global_dc for method call. | |
3800 | (emit_diagnostic_valist): Likewise. | |
3801 | (emit_diagnostic_valist_meta): Likewise. | |
3802 | (inform): Likewise. | |
3803 | (inform_n): Likewise. | |
3804 | (warning): Likewise. | |
3805 | (warning_at): Likewise. | |
3806 | (warning_meta): Likewise. | |
3807 | (warning_n): Likewise. | |
3808 | (pedwarn): Likewise. | |
3809 | (permerror): Likewise. | |
3810 | (permerror_opt): Likewise. | |
3811 | (error): Likewise. | |
3812 | (error_n): Likewise. | |
3813 | (error_at): Likewise. | |
3814 | (error_meta): Likewise. | |
3815 | (sorry): Likewise. | |
3816 | (sorry_at): Likewise. | |
3817 | (fatal_error): Likewise. | |
3818 | (internal_error): Likewise. | |
3819 | (internal_error_no_backtrace): Likewise. | |
3820 | * diagnostic.h (diagnostic_context::diagnostic_impl): New decl. | |
3821 | (diagnostic_context::diagnostic_n_impl): New decl. | |
3822 | * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): | |
3823 | Add "ctxt" param. | |
3824 | ||
3825 | 2024-06-26 David Malcolm <dmalcolm@redhat.com> | |
3826 | ||
3827 | PR testsuite/109360 | |
3828 | * doc/install.texi (Python3 modules): Update SARIF validation | |
3829 | requirement to use check-jsonschema rather than jsonschema. | |
3830 | ||
3831 | 2024-06-25 Mark Harmstone <mark@harmstone.com> | |
3832 | ||
3833 | * dwarf2codeview.cc (struct codeview_custom_type): Add lf_array to | |
3834 | union. | |
3835 | (write_lf_array): New function. | |
3836 | (write_custom_types): Call write_lf_array. | |
3837 | (get_type_num_array_type): New function. | |
3838 | (get_type_num): Handle DW_TAG_array_type DIEs. | |
3839 | * dwarf2codeview.h (LF_ARRAY): Define. | |
3840 | ||
3841 | 2024-06-25 Mark Harmstone <mark@harmstone.com> | |
3842 | ||
3843 | * dwarf2codeview.cc (write_lf_union): New function. | |
3844 | (write_custom_types): Call write_lf_union. | |
3845 | (add_struct_forward_def): Handle DW_TAG_union_type DIEs. | |
3846 | (get_type_num_struct): Handle unions. | |
3847 | (get_type_num): Handle DW_TAG_union_type DIEs. | |
3848 | * dwarf2codeview.h (LF_UNION): Define. | |
3849 | ||
3850 | 2024-06-25 Sergei Lewis <slewis@rivosinc.com> | |
3851 | ||
3852 | * config/riscv/riscv-protos.h (riscv_vector::expand_vec_cmpmem): New | |
3853 | function declaration. | |
3854 | * config/riscv/riscv-string.cc (riscv_vector::expand_vec_cmpmem): New | |
3855 | function. | |
3856 | * config/riscv/riscv.md (cmpmemsi): Try riscv_vector::expand_vec_cmpmem | |
3857 | for constant lengths. | |
3858 | ||
3859 | 2024-06-25 Andrew MacLeod <amacleod@redhat.com> | |
3860 | ||
3861 | * doc/invoke.texi (vrp-block-limit): Document. | |
3862 | * params.opt (param=vrp-block-limit): New. | |
3863 | * tree-vrp.cc (fvrp_folder::execute): Invoke fast_vrp if block | |
3864 | count exceeds limit. | |
3865 | ||
3866 | 2024-06-25 Surya Kumari Jangala <jskumari@linux.ibm.com> | |
3867 | ||
3868 | PR rtl-optimization/111673 | |
3869 | * ira-color.cc (assign_hard_reg): Scale save/restore costs of | |
3870 | callee save registers with block frequency. | |
3871 | ||
3872 | 2024-06-25 Jeff Law <jlaw@ventanamicro.com> | |
3873 | ||
3874 | * config/fr30/constraints.md (Q): Remove unused constraint. | |
3875 | * config/fr30/predicates.md (call_operand): Remove unused predicate. | |
3876 | * config/fr30/fr30.md (call, vall_value): Turn into expanders and | |
3877 | force the call address into a register. | |
3878 | (*call, *call_value): Adjust to only allow indirect calls. Adjust | |
3879 | output template accordingly. | |
3880 | ||
3881 | 2024-06-25 Richard Sandiford <richard.sandiford@arm.com> | |
3882 | ||
3883 | * late-combine.cc (insn_combination::substitute_nondebug_use): | |
3884 | Reject second and subsequent uses if targetm.cannot_copy_insn_p | |
3885 | disallows copying. | |
3886 | ||
3887 | 2024-06-25 Richard Biener <rguenther@suse.de> | |
3888 | ||
3889 | * gimple-range-gori.cc (gori_compute::may_recompute_p): | |
3890 | Call is_export_p with NULL bb. | |
3891 | ||
3892 | 2024-06-25 Xi Ruoyao <xry111@xry111.site> | |
3893 | ||
3894 | * doc/rtl.texi (jump_table_data): Fix typos. | |
3895 | ||
3896 | 2024-06-25 Richard Sandiford <richard.sandiford@arm.com> | |
3897 | ||
3898 | * dbgcnt.def (late_combine): New debug counter. | |
3899 | * late-combine.cc (insn_combination::run): Use it. | |
3900 | ||
3901 | 2024-06-25 Eric Botcazou <ebotcazou@adacore.com> | |
3902 | ||
3903 | PR target/115608 | |
3904 | * config/sparc/linux64.h (CC1_SPEC): Pass -m32 for -mv8plus. | |
3905 | ||
3906 | 2024-06-25 Thomas Schwinge <tschwinge@baylibre.com> | |
3907 | ||
3908 | PR target/106594 | |
3909 | PR target/115622 | |
3910 | PR target/115633 | |
3911 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move | |
3912 | default-disable of late-combine passes from here... | |
3913 | (rs6000_override_options_after_change): ... to here. | |
3914 | ||
3915 | 2024-06-25 Richard Sandiford <richard.sandiford@arm.com> | |
3916 | ||
3917 | * expmed.cc (store_bit_field_using_insv): Revert earlier change | |
3918 | to use force_subreg instead of simplify_gen_subreg. | |
3919 | ||
3920 | 2024-06-25 YunQiang Su <syq@gcc.gnu.org> | |
3921 | ||
3922 | * config/mips/mips.cc(mips_expand_vec_cond_expr): Add extra | |
3923 | argument to info that opernads[3] is cmp_res already. | |
3924 | * config/mips/mips-protos.h(mips_expand_vec_cond_expr): Ditto. | |
3925 | * config/mips/mips-msa.md(vcond_mask): Define new expand. | |
3926 | (vcondu): Use mips_expand_vec_cond_expr with 4th argument. | |
3927 | (vcond): Ditto. | |
3928 | ||
3929 | 2024-06-25 YunQiang Su <syq@gcc.gnu.org> | |
3930 | ||
3931 | * config/mips/mips.md(conditional_trap_reg): Output $0 instead | |
3932 | of 0 if !ISA_HAS_COND_TRAPI. | |
3933 | ||
3934 | 2024-06-25 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
3935 | ||
3936 | * config.gcc: Add winnt-dll.o, which contains the DLL | |
3937 | import/export implementation. | |
3938 | * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): | |
3939 | Add dllimport implementation. | |
3940 | (aarch64_expand_call): Likewise. | |
3941 | (aarch64_legitimize_address): Likewise. | |
3942 | * config/aarch64/cygming.h (SYMBOL_FLAG_DLLIMPORT): Modify MinGW | |
3943 | environment to support DLL import/export. | |
3944 | (SYMBOL_FLAG_DLLEXPORT): Likewise. | |
3945 | (SYMBOL_REF_DLLIMPORT_P): Likewise. | |
3946 | (SYMBOL_FLAG_STUBVAR): Likewise. | |
3947 | (SYMBOL_REF_STUBVAR_P): Likewise. | |
3948 | (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise. | |
3949 | (TARGET_ASM_FILE_END): Likewise. | |
3950 | (SUB_TARGET_RECORD_STUB): Likewise. | |
3951 | (GOT_ALIAS_SET): Likewise. | |
3952 | (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Likewise. | |
3953 | (HAVE_64BIT_POINTERS): Likewise. | |
3954 | ||
3955 | 2024-06-25 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
3956 | ||
3957 | * config/i386/cygming.h | |
3958 | (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Declare whether an | |
3959 | external declaration should be legitimized. | |
3960 | (HAVE_64BIT_POINTERS): Define whether the target supports 64-bit | |
3961 | pointers. | |
3962 | * config/mingw/mingw32.h (defined): Use the correct | |
3963 | DllMainCRTStartup entry function. | |
3964 | * config/mingw/winnt-dll.cc (defined): Exclude ix86-related code. | |
3965 | ||
3966 | 2024-06-25 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
3967 | ||
3968 | * config/aarch64/aarch64.cc: Extend the aarch64 attributes list. | |
3969 | * config/aarch64/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define the | |
3970 | selectany attribute. | |
3971 | ||
3972 | 2024-06-25 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
3973 | ||
3974 | * config/i386/cygming.h (mingw_pe_record_stub): Rename functions | |
3975 | in mingw folder which will be reused for aarch64. | |
3976 | (TARGET_ASM_FILE_END): Update to new target-independent name. | |
3977 | (SUBTARGET_ATTRIBUTE_TABLE): Likewise. | |
3978 | (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise. | |
3979 | (SUB_TARGET_RECORD_STUB): Likewise. | |
3980 | * config/i386/i386-protos.h (ix86_handle_selectany_attribute): | |
3981 | Likewise. | |
3982 | (mingw_handle_selectany_attribute): Likewise. | |
3983 | (i386_pe_valid_dllimport_attribute_p): Likewise. | |
3984 | (mingw_pe_valid_dllimport_attribute_p): Likewise. | |
3985 | (i386_pe_file_end): Likewise. | |
3986 | (mingw_pe_file_end): Likewise. | |
3987 | (i386_pe_record_stub): Likewise. | |
3988 | (mingw_pe_record_stub): Likewise. | |
3989 | * config/mingw/winnt.cc (ix86_handle_selectany_attribute): | |
3990 | Likewise. | |
3991 | (mingw_handle_selectany_attribute): Likewise. | |
3992 | (i386_pe_valid_dllimport_attribute_p): Likewise. | |
3993 | (mingw_pe_valid_dllimport_attribute_p): Likewise. | |
3994 | (i386_pe_record_stub): Likewise. | |
3995 | (mingw_pe_record_stub): Likewise. | |
3996 | (i386_pe_file_end): Likewise. | |
3997 | (mingw_pe_file_end): Likewise. | |
3998 | * config/mingw/winnt.h (mingw_handle_selectany_attribute): Declate | |
3999 | functionality that will be reused by multiple targets. | |
4000 | (mingw_pe_file_end): Likewise. | |
4001 | (mingw_pe_record_stub): Likewise. | |
4002 | (mingw_pe_valid_dllimport_attribute_p): Likewise. | |
4003 | ||
4004 | 2024-06-25 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
4005 | ||
4006 | * config.gcc: Add winnt-dll.o, which contains the DLL | |
4007 | import/export implementation. | |
4008 | * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): Remove the | |
4009 | old implementation. Rename the required function to MinGW. | |
4010 | Use MinGW implementation for COFF and nothing otherwise. | |
4011 | (GOT_ALIAS_SET): Likewise. | |
4012 | * config/i386/i386-expand.cc (ix86_expand_move): Likewise. | |
4013 | * config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise. | |
4014 | (legitimize_pe_coff_symbol): Likewise. | |
4015 | * config/i386/i386-protos.h (i386_pe_record_stub): Likewise. | |
4016 | * config/i386/i386.cc (is_imported_p): Likewise. | |
4017 | (legitimate_pic_address_disp_p): Likewise. | |
4018 | (ix86_GOT_alias_set): Likewise. | |
4019 | (legitimize_pic_address): Likewise. | |
4020 | (legitimize_tls_address): Likewise. | |
4021 | (struct dllimport_hasher): Likewise. | |
4022 | (GTY): Likewise. | |
4023 | (get_dllimport_decl): Likewise. | |
4024 | (legitimize_pe_coff_extern_decl): Likewise. | |
4025 | (legitimize_dllimport_symbol): Likewise. | |
4026 | (legitimize_pe_coff_symbol): Likewise. | |
4027 | (ix86_legitimize_address): Likewise. | |
4028 | * config/i386/i386.h (GOT_ALIAS_SET): Likewise. | |
4029 | * config/mingw/winnt.cc (i386_pe_record_stub): Likewise. | |
4030 | (mingw_pe_record_stub): Likewise. | |
4031 | * config/mingw/winnt.h (mingw_pe_record_stub): Likewise. | |
4032 | * config/mingw/t-cygming: Add the winnt-dll.o compilation. | |
4033 | * config/mingw/winnt-dll.cc: New file. | |
4034 | * config/mingw/winnt-dll.h: New file. | |
4035 | ||
4036 | 2024-06-25 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
4037 | ||
4038 | * config.gcc: Move mingw_* declations to mingw. | |
4039 | * config/aarch64/aarch64-protos.h | |
4040 | (mingw_pe_maybe_record_exported_symbol): Likewise. | |
4041 | (mingw_pe_section_type_flags): Likewise. | |
4042 | (mingw_pe_unique_section): Likewise. | |
4043 | (mingw_pe_encode_section_info): Likewise. | |
4044 | * config/aarch64/cygming.h | |
4045 | (mingw_pe_asm_named_section): Likewise. | |
4046 | (mingw_pe_declare_function_type): Likewise. | |
4047 | * config/i386/i386-protos.h | |
4048 | (mingw_pe_unique_section): Likewise. | |
4049 | (mingw_pe_declare_function_type): Likewise. | |
4050 | (mingw_pe_maybe_record_exported_symbol): Likewise. | |
4051 | (mingw_pe_encode_section_info): Likewise. | |
4052 | (mingw_pe_section_type_flags): Likewise. | |
4053 | (mingw_pe_asm_named_section): Likewise. | |
4054 | * config/mingw/winnt.h: New file. | |
4055 | ||
4056 | 2024-06-25 Mark Harmstone <mark@harmstone.com> | |
4057 | ||
4058 | * dwarf2codeview.cc (struct codeview_type): Add is_fwd_ref member. | |
4059 | (struct codeview_subtype): Add lf_member to union. | |
4060 | (struct codeview_custom_type): Add lf_structure to union. | |
4061 | (struct codeview_deferred_type): New structure. | |
4062 | (deferred_types, last_deferred_type): New variables. | |
4063 | (get_type_num): Add new args to prototype. | |
4064 | (write_lf_fieldlist): Handle LF_MEMBER subtypes. | |
4065 | (write_lf_structure): New function. | |
4066 | (write_custom_types): Call write_lf_structure. | |
4067 | (get_type_num_pointer_type): Add in_struct argument. | |
4068 | (get_type_num_const_type): Likewise. | |
4069 | (get_type_num_volatile_type): Likewise. | |
4070 | (add_enum_forward_def): Fix get_type_num call. | |
4071 | (get_type_num_enumeration_type): Add in-struct argument. | |
4072 | (add_deferred_type, flush_deferred_types): New functions. | |
4073 | (add_struct_forward_def, get_type_num_struct): Likewise. | |
4074 | (get_type_num): Handle self-referential structs. | |
4075 | (add_variable): Fix get_type_num call. | |
4076 | (codeview_debug_early_finish): Call flush_deferred_types. | |
4077 | * dwarf2codeview.h (LF_CLASS, LF_STRUCTURE, LF_MEMBER): Define. | |
4078 | ||
4079 | 2024-06-25 Kewen Lin <linkw@linux.ibm.com> | |
4080 | ||
4081 | * coretypes.h (enum tree_index): Forward declaration. | |
4082 | * defaults.h (FLOAT_TYPE_SIZE): Remove. | |
4083 | (DOUBLE_TYPE_SIZE): Likewise. | |
4084 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4085 | * doc/rtl.texi: Update document by replacing {FLOAT,DOUBLE}_TYPE_SIZE | |
4086 | with C type {float,double}. | |
4087 | * doc/tm.texi.in: Document new hook mode_for_floating_type, remove | |
4088 | document entries for {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE and | |
4089 | update document for WIDEST_HARDWARE_FP_SIZE. | |
4090 | * doc/tm.texi: Regenerate. | |
4091 | * emit-rtl.cc (init_emit_once): Replace DOUBLE_TYPE_SIZE by | |
4092 | calling targetm.c.mode_for_floating_type with TI_DOUBLE_TYPE. | |
4093 | * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use TYPE_PRECISION of | |
4094 | long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. | |
4095 | * system.h (FLOAT_TYPE_SIZE): Poison. | |
4096 | (DOUBLE_TYPE_SIZE): Likewise. | |
4097 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4098 | * target.def (mode_for_floating_type): New hook. | |
4099 | * targhooks.cc (default_mode_for_floating_type): New function. | |
4100 | (default_scalar_mode_supported_p): Update macros | |
4101 | {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling | |
4102 | targetm.c.mode_for_floating_type with | |
4103 | TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE. | |
4104 | * targhooks.h (default_mode_for_floating_type): New declaration. | |
4105 | * tree-core.h (enum tree_index): Specify underlying type unsigned | |
4106 | to sync with forward declaration in coretypes.h. | |
4107 | (NUM_FLOATN_TYPES): Explicitly convert to int. | |
4108 | (NUM_FLOATNX_TYPES): Likewise. | |
4109 | (NUM_FLOATN_NX_TYPES): Likewise. | |
4110 | * tree.cc (build_common_tree_nodes): Update macros | |
4111 | {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling | |
4112 | targetm.c.mode_for_floating_type with | |
4113 | TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE and set type mode accordingly. | |
4114 | * config/arc/arc.h (FLOAT_TYPE_SIZE): Remove. | |
4115 | (DOUBLE_TYPE_SIZE): Likewise. | |
4116 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4117 | * config/bpf/bpf.h (FLOAT_TYPE_SIZE): Remove. | |
4118 | (DOUBLE_TYPE_SIZE): Likewise. | |
4119 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4120 | * config/epiphany/epiphany.h (FLOAT_TYPE_SIZE): Remove. | |
4121 | (DOUBLE_TYPE_SIZE): Likewise. | |
4122 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4123 | * config/fr30/fr30.h (FLOAT_TYPE_SIZE): Remove. | |
4124 | (DOUBLE_TYPE_SIZE): Likewise. | |
4125 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4126 | * config/frv/frv.h (FLOAT_TYPE_SIZE): Remove. | |
4127 | (DOUBLE_TYPE_SIZE): Likewise. | |
4128 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4129 | * config/ft32/ft32.h (FLOAT_TYPE_SIZE): Remove. | |
4130 | (DOUBLE_TYPE_SIZE): Likewise. | |
4131 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4132 | * config/gcn/gcn.h (FLOAT_TYPE_SIZE): Remove. | |
4133 | (DOUBLE_TYPE_SIZE): Likewise. | |
4134 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4135 | * config/iq2000/iq2000.h (FLOAT_TYPE_SIZE): Remove. | |
4136 | (DOUBLE_TYPE_SIZE): Likewise. | |
4137 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4138 | * config/lm32/lm32.h (FLOAT_TYPE_SIZE): Remove. | |
4139 | (DOUBLE_TYPE_SIZE): Likewise. | |
4140 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4141 | * config/m32c/m32c.h (FLOAT_TYPE_SIZE): Remove. | |
4142 | (DOUBLE_TYPE_SIZE): Likewise. | |
4143 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4144 | * config/m32r/m32r.h (FLOAT_TYPE_SIZE): Remove. | |
4145 | (DOUBLE_TYPE_SIZE): Likewise. | |
4146 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4147 | * config/microblaze/microblaze.h (FLOAT_TYPE_SIZE): Remove. | |
4148 | (DOUBLE_TYPE_SIZE): Likewise. | |
4149 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4150 | * config/mmix/mmix.h (FLOAT_TYPE_SIZE): Remove. | |
4151 | (DOUBLE_TYPE_SIZE): Likewise. | |
4152 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4153 | * config/moxie/moxie.h (FLOAT_TYPE_SIZE): Remove. | |
4154 | (DOUBLE_TYPE_SIZE): Likewise. | |
4155 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4156 | * config/msp430/msp430.h (FLOAT_TYPE_SIZE): Remove. | |
4157 | (DOUBLE_TYPE_SIZE): Likewise. | |
4158 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4159 | * config/nds32/nds32.h (FLOAT_TYPE_SIZE): Remove. | |
4160 | (DOUBLE_TYPE_SIZE): Likewise. | |
4161 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4162 | * config/nios2/nios2.h (FLOAT_TYPE_SIZE): Remove. | |
4163 | (DOUBLE_TYPE_SIZE): Likewise. | |
4164 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4165 | * config/nvptx/nvptx.h (FLOAT_TYPE_SIZE): Remove. | |
4166 | (DOUBLE_TYPE_SIZE): Likewise. | |
4167 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4168 | * config/or1k/or1k.h (FLOAT_TYPE_SIZE): Remove. | |
4169 | (DOUBLE_TYPE_SIZE): Likewise. | |
4170 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4171 | * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Remove. | |
4172 | (DOUBLE_TYPE_SIZE): Likewise. | |
4173 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4174 | * config/pru/pru.h (FLOAT_TYPE_SIZE): Remove. | |
4175 | (DOUBLE_TYPE_SIZE): Likewise. | |
4176 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4177 | * config/stormy16/stormy16.h (FLOAT_TYPE_SIZE): Remove. | |
4178 | (DOUBLE_TYPE_SIZE): Likewise. | |
4179 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4180 | * config/visium/visium.h (FLOAT_TYPE_SIZE): Remove. | |
4181 | (DOUBLE_TYPE_SIZE): Likewise. | |
4182 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4183 | * config/xtensa/xtensa.h (FLOAT_TYPE_SIZE): Remove. | |
4184 | (DOUBLE_TYPE_SIZE): Likewise. | |
4185 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4186 | * config/rs6000/rs6000.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4187 | (rs6000_c_mode_for_floating_type): New function. | |
4188 | * config/rs6000/rs6000.h (FLOAT_TYPE_SIZE): Remove. | |
4189 | (DOUBLE_TYPE_SIZE): Likewise. | |
4190 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4191 | * config/aarch64/aarch64.cc (aarch64_c_mode_for_floating_type): | |
4192 | New function. | |
4193 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4194 | * config/aarch64/aarch64.h (FLOAT_TYPE_SIZE): Remove. | |
4195 | (DOUBLE_TYPE_SIZE): Likewise. | |
4196 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4197 | * config/alpha/alpha.cc (alpha_c_mode_for_floating_type): New | |
4198 | function. | |
4199 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4200 | * config/alpha/alpha.h (FLOAT_TYPE_SIZE): Remove. | |
4201 | (DOUBLE_TYPE_SIZE): Likewise. | |
4202 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4203 | * config/avr/avr.cc (avr_c_mode_for_floating_type): New | |
4204 | function. | |
4205 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4206 | * config/avr/avr.h (FLOAT_TYPE_SIZE): Remove. | |
4207 | (DOUBLE_TYPE_SIZE): Likewise. | |
4208 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4209 | * config/i386/i386.cc (ix86_c_mode_for_floating_type): New | |
4210 | function. | |
4211 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4212 | * config/i386/i386.h (FLOAT_TYPE_SIZE): Remove. | |
4213 | (DOUBLE_TYPE_SIZE): Likewise. | |
4214 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4215 | * config/ia64/ia64.cc (ia64_c_mode_for_floating_type): New | |
4216 | function. | |
4217 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4218 | * config/ia64/ia64.h (FLOAT_TYPE_SIZE): Remove. | |
4219 | (DOUBLE_TYPE_SIZE): Likewise. | |
4220 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4221 | * config/riscv/riscv.cc (riscv_c_mode_for_floating_type): New function. | |
4222 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4223 | * config/riscv/riscv.h (FLOAT_TYPE_SIZE): Remove. | |
4224 | (DOUBLE_TYPE_SIZE): Likewise. | |
4225 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4226 | * config/rl78/rl78.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4227 | (rl78_c_mode_for_floating_type): New function. | |
4228 | * config/rl78/rl78.h (FLOAT_TYPE_SIZE): Remove. | |
4229 | (DOUBLE_TYPE_SIZE): Likewise. | |
4230 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4231 | * config/rx/rx.cc (rx_c_mode_for_floating_type): New function. | |
4232 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4233 | * config/rx/rx.h (FLOAT_TYPE_SIZE): Remove. | |
4234 | (DOUBLE_TYPE_SIZE): Likewise. | |
4235 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4236 | * config/s390/s390.cc (s390_c_mode_for_floating_type): New function. | |
4237 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4238 | * config/s390/s390.h (FLOAT_TYPE_SIZE): Remove. | |
4239 | (DOUBLE_TYPE_SIZE): Likewise. | |
4240 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4241 | * config/sh/sh.cc (sh_c_mode_for_floating_type): New function. | |
4242 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4243 | * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Remove. | |
4244 | * config/h8300/h8300.cc (h8300_c_mode_for_floating_type): New | |
4245 | function. | |
4246 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4247 | * config/h8300/h8300.h (FLOAT_TYPE_SIZE): Remove. | |
4248 | (DOUBLE_TYPE_SIZE): Remove. | |
4249 | (LONG_DOUBLE_TYPE_SIZE): Remove. | |
4250 | (DOUBLE_TYPE_MODE): New macro. | |
4251 | * config/h8300/linux.h (DOUBLE_TYPE_SIZE): Remove. | |
4252 | (DOUBLE_TYPE_MODE): New macro. | |
4253 | * config/loongarch/loongarch.cc (loongarch_c_mode_for_floating_type): | |
4254 | New function. | |
4255 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4256 | * config/loongarch/loongarch.h (FLOAT_TYPE_SIZE): Remove. | |
4257 | (DOUBLE_TYPE_SIZE): Remove. | |
4258 | (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4259 | (LA_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4260 | (UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE with | |
4261 | LA_LONG_DOUBLE_TYPE_SIZE. | |
4262 | (MAX_FIXED_MODE_SIZE): Likewise. | |
4263 | (STRUCTURE_SIZE_BOUNDARY): Likewise. | |
4264 | (BIGGEST_ALIGNMENT): Likewise. | |
4265 | * config/m68k/m68k.cc (m68k_c_mode_for_floating_type): New function. | |
4266 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4267 | * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Remove. | |
4268 | (LONG_DOUBLE_TYPE_MODE): New macro. | |
4269 | * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Remove. | |
4270 | (LONG_DOUBLE_TYPE_MODE): New macro. | |
4271 | * config/mips/mips.cc (mips_c_mode_for_floating_type): New function. | |
4272 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4273 | * config/mips/mips.h (UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE | |
4274 | with MIPS_LONG_DOUBLE_TYPE_SIZE. | |
4275 | (MAX_FIXED_MODE_SIZE): Likewise. | |
4276 | (STRUCTURE_SIZE_BOUNDARY): Likewise. | |
4277 | (BIGGEST_ALIGNMENT): Likewise. | |
4278 | (FLOAT_TYPE_SIZE): Remove. | |
4279 | (DOUBLE_TYPE_SIZE): Remove. | |
4280 | (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4281 | (MIPS_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4282 | * config/mips/n32-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4283 | (MIPS_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4284 | * config/pa/pa.cc (pa_c_mode_for_floating_type): New function. | |
4285 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4286 | (pa_scalar_mode_supported_p): Rename FLOAT_TYPE_SIZE to | |
4287 | PA_FLOAT_TYPE_SIZE, rename DOUBLE_TYPE_SIZE to PA_DOUBLE_TYPE_SIZE | |
4288 | and rename LONG_DOUBLE_TYPE_SIZE to PA_LONG_DOUBLE_TYPE_SIZE. | |
4289 | * config/pa/pa.h (PA_FLOAT_TYPE_SIZE): New macro. | |
4290 | (PA_DOUBLE_TYPE_SIZE): Likewise. | |
4291 | (PA_LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4292 | * config/pa/pa-64.h (FLOAT_TYPE_SIZE): Rename to ... | |
4293 | (PA_FLOAT_TYPE_SIZE): ... this. | |
4294 | (DOUBLE_TYPE_SIZE): Rename to ... | |
4295 | (PA_DOUBLE_TYPE_SIZE): ... this. | |
4296 | (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4297 | (PA_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4298 | * config/pa/pa-hpux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4299 | (PA_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4300 | * config/sparc/sparc.cc (sparc_c_mode_for_floating_type): New function. | |
4301 | (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. | |
4302 | (FLOAT_TYPE_SIZE): Remove. | |
4303 | (DOUBLE_TYPE_SIZE): Likewise. | |
4304 | (LONG_DOUBLE_TYPE_SIZE): Likewise. | |
4305 | (sparc_type_code): Replace FLOAT_TYPE_SIZE with TYPE_PRECISION of | |
4306 | float_type_node. | |
4307 | * config/sparc/sparc.h (FLOAT_TYPE_SIZE): Remove. | |
4308 | (DOUBLE_TYPE_SIZE): Remove. | |
4309 | * config/sparc/freebsd.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4310 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4311 | * config/sparc/linux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4312 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4313 | * config/sparc/linux64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4314 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4315 | * config/sparc/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4316 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4317 | * config/sparc/openbsd64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4318 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4319 | * config/sparc/sol2.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4320 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4321 | * config/sparc/sp-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4322 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4323 | * config/sparc/sp64-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... | |
4324 | (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. | |
4325 | * config/bfin/bfin.h (FLOAT_TYPE_SIZE): Rename to ... | |
4326 | (BFIN_FLOAT_TYPE_SIZE): ... this. | |
4327 | (DOUBLE_TYPE_SIZE): Rename to ... | |
4328 | (BFIN_DOUBLE_TYPE_SIZE): ... this. | |
4329 | (LONG_DOUBLE_TYPE_SIZE): Remove. | |
4330 | (UNITS_PER_FLOAT): Replace FLOAT_TYPE_SIZE with BFIN_FLOAT_TYPE_SIZE. | |
4331 | (UNITS_PER_DOUBLE): Replace DOUBLE_TYPE_SIZE with | |
4332 | BFIN_DOUBLE_TYPE_SIZE. | |
4333 | ||
4334 | 2024-06-25 Kewen Lin <linkw@linux.ibm.com> | |
4335 | ||
4336 | * config/vms/vms.cc (vms_patch_builtins): Use TYPE_PRECISION of | |
4337 | long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. | |
4338 | ||
4339 | 2024-06-25 Andrew MacLeod <amacleod@redhat.com> | |
4340 | ||
4341 | * tree-vrp.cc (execute_fast_vrp): Do not use transitive relations. | |
4342 | * value-query.cc (range_query::create_relation_oracle): Add | |
4343 | parameter to enable transitive relations. | |
4344 | * value-query.h (range_query::create_relation_oracle): Likewise. | |
4345 | * value-relation.h (dom_oracle::dom_oracle): Likewise. | |
4346 | * value-relation.cc (dom_oracle::dom_oracle): Likewise. | |
4347 | (dom_oracle::register_transitives): Check transitive flag. | |
4348 | ||
4349 | 2024-06-24 Sergei Lewis <slewis@rivosinc.com> | |
4350 | ||
4351 | * config/riscv/riscv-protos.h (riscv_vector::expand_vec_setmem): New | |
4352 | function declaration. | |
4353 | * config/riscv/riscv-string.cc (riscv_vector::expand_vec_setmem): New | |
4354 | function: this generates an inline vectorised memory set, if and only if | |
4355 | we know the entire operation can be performed in a single vector store. | |
4356 | * config/riscv/riscv.md (setmem<mode>): Try riscv_vector::expand_vec_setmem | |
4357 | for constant lengths. Do not require operand 2 to be a constant. | |
4358 | ||
4359 | 2024-06-24 Patrick O'Neill <patrick@rivosinc.com> | |
4360 | ||
4361 | * doc/sourcebuild.texi (dg-remove-option): Add documentation. | |
4362 | (dg-add-option): Add documentation for riscv_{a,zaamo,zalrsc,ztso} | |
4363 | ||
4364 | 2024-06-24 Roger Sayle <roger@nextmovesoftware.com> | |
4365 | Richard Biener <rguenther@suse.de> | |
4366 | ||
4367 | PR tree-optimization/113673 | |
4368 | * gimple-ssa-store-merging.cc (find_bswap_or_nop_load): Make static. | |
4369 | (find_bswap_or_nop_1): Avoid transformations (load merging) when | |
4370 | stmt_can_throw_internal indicates that a statement can trap. | |
4371 | ||
4372 | 2024-06-24 Richard Biener <rguenther@suse.de> | |
4373 | ||
4374 | PR tree-optimization/115602 | |
4375 | * tree-vect-slp.cc (vect_cse_slp_nodes): Delay populating the | |
4376 | bst-map to avoid cycles. | |
4377 | ||
4378 | 2024-06-24 Richard Biener <rguenther@suse.de> | |
4379 | ||
4380 | PR tree-optimization/115528 | |
4381 | * tree-vect-data-refs.cc (vect_compute_data_ref_alignment): | |
4382 | Make sure to look at both the inner and outer loop step | |
4383 | behavior. | |
4384 | ||
4385 | 2024-06-24 Pali Rohár <pali@kernel.org> | |
4386 | ||
4387 | * config/i386/mingw-w64.h (CPP_SPEC): Add missing -mcrtdll= | |
4388 | cases: msvcr40*, msvcrtd*. | |
4389 | * config/mingw/mingw32.h (CPP_SPEC): Add missing -mcrtdll= | |
4390 | cases: msvcr40*, msvcrtd*. | |
4391 | * doc/invoke.texi: Add missing -mcrtdll= cases: msvcr40*, | |
4392 | msvcrtd*, msvcr71*. Express wildcards with *. Document _UCRT. | |
4393 | ||
4394 | 2024-06-24 Richard Sandiford <richard.sandiford@arm.com> | |
4395 | ||
4396 | * common.opt.urls: Regenerate. | |
4397 | ||
4398 | 2024-06-24 Richard Sandiford <richard.sandiford@arm.com> | |
4399 | ||
4400 | PR rtl-optimization/106594 | |
4401 | PR rtl-optimization/114515 | |
4402 | PR rtl-optimization/114575 | |
4403 | PR rtl-optimization/114996 | |
4404 | PR rtl-optimization/115104 | |
4405 | * Makefile.in (OBJS): Add late-combine.o. | |
4406 | * common.opt (flate-combine-instructions): New option. | |
4407 | * doc/invoke.texi: Document it. | |
4408 | * opts.cc (default_options_table): Enable it by default at -O2 | |
4409 | and above. | |
4410 | * tree-pass.h (make_pass_late_combine): Declare. | |
4411 | * late-combine.cc: New file. | |
4412 | * passes.def: Add two instances of late_combine. | |
4413 | * doc/passes.texi: Document the new passes. | |
4414 | * config/i386/i386-options.cc (ix86_override_options_after_change): | |
4415 | Disable late-combine by default. | |
4416 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise. | |
4417 | * config/xtensa/xtensa.cc (xtensa_option_override): Likewise. | |
4418 | ||
4419 | 2024-06-24 Richard Sandiford <richard.sandiford@arm.com> | |
4420 | ||
4421 | * rtl-ssa.h: Include predicates.h. | |
4422 | * rtl-ssa/predicates.h: New file. | |
4423 | * rtl-ssa/access-utils.h (prev_call_clobbers_ignoring): Rename to... | |
4424 | (prev_call_clobbers): ...this and treat the ignore parameter as an | |
4425 | object with the same interface as ignore_nothing. | |
4426 | (next_call_clobbers_ignoring): Rename to... | |
4427 | (next_call_clobbers): ...this and treat the ignore parameter as an | |
4428 | object with the same interface as ignore_nothing. | |
4429 | (first_nondebug_insn_use_ignoring): Rename to... | |
4430 | (first_nondebug_insn_use): ...this and treat the ignore parameter as | |
4431 | an object with the same interface as ignore_nothing. | |
4432 | (last_nondebug_insn_use_ignoring): Rename to... | |
4433 | (last_nondebug_insn_use): ...this and treat the ignore parameter as | |
4434 | an object with the same interface as ignore_nothing. | |
4435 | (last_access_ignoring): Rename to... | |
4436 | (last_access): ...this and treat the ignore parameter as an object | |
4437 | with the same interface as ignore_nothing. Conditionally skip | |
4438 | definitions. | |
4439 | (prev_access_ignoring): Rename to... | |
4440 | (prev_access): ...this and treat the ignore parameter as an object | |
4441 | with the same interface as ignore_nothing. | |
4442 | (first_def_ignoring): Replace with... | |
4443 | (first_access): ...this new function. | |
4444 | (next_access_ignoring): Rename to... | |
4445 | (next_access): ...this and treat the ignore parameter as an object | |
4446 | with the same interface as ignore_nothing. Conditionally skip | |
4447 | definitions. | |
4448 | * rtl-ssa/change-utils.h (insn_is_changing): Delete. | |
4449 | (restrict_movement_ignoring): Rename to... | |
4450 | (restrict_movement): ...this and treat the ignore parameter as an | |
4451 | object with the same interface as ignore_nothing. | |
4452 | (recog_ignoring): Rename to... | |
4453 | (recog): ...this and treat the ignore parameter as an object with | |
4454 | the same interface as ignore_nothing. | |
4455 | * rtl-ssa/changes.h (insn_is_changing_closure): Delete. | |
4456 | * rtl-ssa/functions.h (function_info::add_regno_clobber): Treat | |
4457 | the ignore parameter as an object with the same interface as | |
4458 | ignore_nothing. | |
4459 | * rtl-ssa/insn-utils.h (insn_is): Delete. | |
4460 | * rtl-ssa/insns.h (insn_is_closure): Delete. | |
4461 | * rtl-ssa/member-fns.inl | |
4462 | (insn_is_changing_closure::insn_is_changing_closure): Delete. | |
4463 | (insn_is_changing_closure::operator()): Likewise. | |
4464 | (function_info::add_regno_clobber): Treat the ignore parameter | |
4465 | as an object with the same interface as ignore_nothing. | |
4466 | (ignore_changing_insns::ignore_changing_insns): New function. | |
4467 | (ignore_changing_insns::should_ignore_insn): Likewise. | |
4468 | * rtl-ssa/movement.h (restrict_movement_for_dead_range): Treat | |
4469 | the ignore parameter as an object with the same interface as | |
4470 | ignore_nothing. | |
4471 | (restrict_movement_for_defs_ignoring): Rename to... | |
4472 | (restrict_movement_for_defs): ...this and treat the ignore parameter | |
4473 | as an object with the same interface as ignore_nothing. | |
4474 | (restrict_movement_for_uses_ignoring): Rename to... | |
4475 | (restrict_movement_for_uses): ...this and treat the ignore parameter | |
4476 | as an object with the same interface as ignore_nothing. Conditionally | |
4477 | skip definitions. | |
4478 | * doc/rtl.texi: Update for above name changes. Use | |
4479 | ignore_changing_insns instead of insn_is_changing. | |
4480 | * config/aarch64/aarch64-cc-fusion.cc (cc_fusion::parallelize_insns): | |
4481 | Likewise. | |
4482 | * pair-fusion.cc (no_ignore): Delete. | |
4483 | (latest_hazard_before, first_hazard_after): Update for above name | |
4484 | changes. Use ignore_nothing instead of no_ignore. | |
4485 | (pair_fusion_bb_info::fuse_pair): Update for above name changes. | |
4486 | Use ignore_changing_insns instead of insn_is_changing. | |
4487 | (pair_fusion::try_promote_writeback): Likewise. | |
4488 | ||
4489 | 2024-06-24 Richard Biener <rguenther@suse.de> | |
4490 | ||
4491 | PR tree-optimization/115599 | |
4492 | * tree-ssa-reassoc.cc (compare_repeat_factors): Use explicit | |
4493 | compares to avoid truncations. | |
4494 | ||
4495 | 2024-06-24 Haochen Gui <guihaoc@gcc.gnu.org> | |
4496 | ||
4497 | PR target/113325 | |
4498 | * config/rs6000/vsx.md (vsx_stxvd2x4_le_const_<mode>): New. | |
4499 | ||
4500 | 2024-06-24 Haochen Gui <guihaoc@gcc.gnu.org> | |
4501 | ||
4502 | * fwprop.cc (try_fwprop_subst_pattern): Invoke change_is_worthwhile | |
4503 | to judge if a replacement is worthwhile. Remove single_set check | |
4504 | and add is_debug_insn check. | |
4505 | * recog.cc (swap_change): Invalidate recog_data when the cached INSN | |
4506 | is swapped out. | |
4507 | * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Check if the | |
4508 | insn cost of new rtl is unknown and fail the replacement. | |
4509 | ||
4510 | 2024-06-24 Mark Harmstone <mark@harmstone.com> | |
4511 | ||
4512 | * dwarf2codeview.cc (MAX_FIELDLIST_SIZE): Define. | |
4513 | (struct codeview_integer): New structure. | |
4514 | (struct codeview_subtype): Likewise | |
4515 | (struct codeview_custom_type): Add lf_fieldlist and lf_enum to union. | |
4516 | (write_cv_integer, cv_integer_len): New functions. | |
4517 | (write_lf_fieldlist, write_lf_enum): Likewise. | |
4518 | (write_custom_types): Call write_lf_fieldlist and write_lf_enum. | |
4519 | (add_enum_forward_def): New function. | |
4520 | (get_type_num_enumeration_type): Likewise. | |
4521 | (get_type_num): Handle DW_TAG_enumeration_type DIEs. | |
4522 | * dwarf2codeview.h (LF_FIELDLIST, LF_INDEX, LF_ENUMERATE): Define. | |
4523 | (LF_ENUM, LF_CHAR, LF_SHORT, LF_USHORT, LF_LONG): Likewise. | |
4524 | (LF_ULONG, LF_QUADWORD, LF_UQUADWORD): Likewise. | |
4525 | (CV_ACCESS_PRIVATE, CV_ACCESS_PROTECTED): Likewise. | |
4526 | (CV_ACCESS_PUBLIC, CV_PROP_FWDREF): Likewise. | |
4527 | ||
4528 | 2024-06-24 Mark Harmstone <mark@harmstone.com> | |
4529 | ||
4530 | * dwarf2codeview.cc | |
4531 | (struct codeview_custom_type): Add lf_modifier to union. | |
4532 | (write_cv_padding, write_lf_modifier): New functions. | |
4533 | (write_custom_types): Call write_lf_modifier. | |
4534 | (get_type_num_const_type): New function. | |
4535 | (get_type_num_volatile_type): Likewise. | |
4536 | (get_type_num): Handle DW_TAG_const_type and DW_TAG_volatile_type DIEs. | |
4537 | * dwarf2codeview.h (MOD_const, MOD_volatile): Define. | |
4538 | (LF_MODIFIER): Likewise. | |
4539 | ||
4540 | 2024-06-24 Mark Harmstone <mark@harmstone.com> | |
4541 | ||
4542 | * dwarf2codeview.cc (FIRST_TYPE): Define. | |
4543 | (struct codeview_custom_type): New structure. | |
4544 | (custom_types, last_custom_type): New variables. | |
4545 | (get_type_num): Prototype. | |
4546 | (write_lf_pointer, write_custom_types): New functions. | |
4547 | (codeview_debug_finish): Call write_custom_types. | |
4548 | (add_custom_type, get_type_num_pointer_type): New functions. | |
4549 | (get_type_num): Handle DW_TAG_pointer_type DIEs. | |
4550 | * dwarf2codeview.h (T_VOID): Define. | |
4551 | (CV_POINTER_32, CV_POINTER_64): Likewise. | |
4552 | (T_32PVOID, T_64PVOID): Likewise. | |
4553 | (CV_PTR_NEAR32, CV_PTR64, LF_POINTER): Likewise. | |
4554 | ||
4555 | 2024-06-24 Mark Harmstone <mark@harmstone.com> | |
4556 | ||
4557 | * dwarf2codeview.cc (get_type_num): Handle typedefs. | |
4558 | ||
4559 | 2024-06-24 Mark Harmstone <mark@harmstone.com> | |
4560 | ||
4561 | * dwarf2codeview.cc (struct codeview_type): New structure. | |
4562 | (struct die_hasher): Likewise. | |
4563 | (types_htab): New variable. | |
4564 | (codeview_debug_finish): Free types_htab if allocated. | |
4565 | (get_type_num_base_type, get_type_num): New function. | |
4566 | (add_variable): Call get_type_num. | |
4567 | * dwarf2codeview.h (T_CHAR, T_SHORT, T_LONG, T_QUAD): Define. | |
4568 | (T_UCHAR, T_USHORT, T_ULONG, T_UQUAD, T_BOOL08): Likewise. | |
4569 | (T_REAL32, T_REAL64, T_REAL80, T_REAL128, T_RCHAR): Likewise. | |
4570 | (T_WCHAR, T_INT4, T_UINT4, T_CHAR16, T_CHAR32, T_CHAR8): Likewise. | |
4571 | ||
4572 | 2024-06-23 Mark Harmstone <mark@harmstone.com> | |
4573 | ||
4574 | * dwarf2codeview.cc (S_LDATA32, S_GDATA32): Define. | |
4575 | (struct codeview_symbol): New structure. | |
4576 | (sym, last_sym): New variables. | |
4577 | (write_data_symbol): New function. | |
4578 | (write_codeview_symbols): Call write_data_symbol. | |
4579 | (add_variable, codeview_debug_early_finish): New functions. | |
4580 | * dwarf2codeview.h (codeview_debug_early_finish): Prototype. | |
4581 | * dwarf2out.cc | |
4582 | (dwarf2out_early_finish): Call codeview_debug_early_finish. | |
4583 | ||
4584 | 2024-06-23 Artemiy Volkov <Artemiy.Volkov@synopsys.com> | |
4585 | ||
4586 | * config/riscv/riscv.cc (riscv_expand_conditional_move): Add a | |
4587 | CONST0_RTX check. | |
4588 | ||
4589 | 2024-06-23 Jeff Law <jlaw@ventanamicro.com> | |
4590 | ||
4591 | PR target/114139 | |
4592 | * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Verify object | |
4593 | is a CONST_INT before looking at INTVAL. | |
4594 | ||
4595 | 2024-06-23 Richard Biener <rguenther@suse.de> | |
4596 | ||
4597 | PR tree-optimization/115597 | |
4598 | * tree-vect-slp.cc (vect_cse_slp_nodes): Allow to CSE | |
4599 | VEC_PERM nodes. | |
4600 | ||
4601 | 2024-06-23 Richard Biener <rguenther@suse.de> | |
4602 | ||
4603 | PR tree-optimization/115579 | |
4604 | * tree-ssa-loop-im.cc (execute_sm): Return the auxiliary data | |
4605 | created. | |
4606 | (hoist_memory_references): Record the flag var that's eventually | |
4607 | created and re-use it when all stores are in the same BB. | |
4608 | ||
4609 | 2024-06-23 Collin Funk <collin.funk1@gmail.com> | |
4610 | ||
4611 | PR target/115409 | |
4612 | * config/i386/avx512fp16intrin.h (_mm512_conj_pch): Make the | |
4613 | constant unsigned before shifting. | |
4614 | * config/i386/avx512fp16vlintrin.h (_mm256_conj_pch): Likewise. | |
4615 | (_mm_conj_pch): Likewise. | |
4616 | ||
4617 | 2024-06-23 demin.han <demin.han@starfivetech.com> | |
4618 | ||
4619 | * config/riscv/predicates.md (comparison_except_eqge_operator): Only | |
4620 | exclude ge. | |
4621 | (comparison_except_ge_operator): Ditto. | |
4622 | * config/riscv/riscv-string.cc (expand_rawmemchr): Use cmp pattern. | |
4623 | (expand_strcmp): Ditto. | |
4624 | * config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond. | |
4625 | * config/riscv/vector.md (@pred_eqne<mode>_scalar): Remove eqne | |
4626 | patterns. | |
4627 | (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto. | |
4628 | (*pred_eqne<mode>_scalar): Ditto. | |
4629 | (*pred_eqne<mode>_scalar_narrow): Ditto. | |
4630 | (*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto. | |
4631 | (*pred_eqne<mode>_extended_scalar): Ditto. | |
4632 | (*pred_eqne<mode>_extended_scalar_narrow): Ditto. | |
4633 | ||
4634 | 2024-06-21 David Malcolm <dmalcolm@redhat.com> | |
4635 | ||
4636 | * diagnostic-format-json.cc | |
4637 | (json_output_format::on_end_diagnostic): Use | |
4638 | get_diagnostic_kind_text rather than embedding a duplicate copy of | |
4639 | the table. | |
4640 | * diagnostic-format-sarif.cc | |
4641 | (make_rule_id_for_diagnostic_kind): Likewise. | |
4642 | * diagnostic.cc (get_diagnostic_kind_text): New. | |
4643 | * diagnostic.h (get_diagnostic_kind_text): New decl. | |
4644 | ||
4645 | 2024-06-21 David Malcolm <dmalcolm@redhat.com> | |
4646 | ||
4647 | * diagnostic-path.cc (diagnostic_event::meaning::dump_to_pp): Move | |
4648 | here from diagnostic.cc. | |
4649 | (diagnostic_event::meaning::maybe_get_verb_str): Likewise. | |
4650 | (diagnostic_event::meaning::maybe_get_noun_str): Likewise. | |
4651 | (diagnostic_event::meaning::maybe_get_property_str): Likewise. | |
4652 | (diagnostic_path::get_first_event_in_a_function): Likewise. | |
4653 | (diagnostic_path::interprocedural_p): Likewise. | |
4654 | (debug): Likewise for diagnostic_path * overload. | |
4655 | * diagnostic.cc (diagnostic_event::meaning::dump_to_pp): Move from | |
4656 | here to diagnostic-path.cc. | |
4657 | (diagnostic_event::meaning::maybe_get_verb_str): Likewise. | |
4658 | (diagnostic_event::meaning::maybe_get_noun_str): Likewise. | |
4659 | (diagnostic_event::meaning::maybe_get_property_str): Likewise. | |
4660 | (diagnostic_path::get_first_event_in_a_function): Likewise. | |
4661 | (diagnostic_path::interprocedural_p): Likewise. | |
4662 | (debug): Likewise for diagnostic_path * overload. | |
4663 | ||
4664 | 2024-06-21 Jeff Law <jlaw@ventanamicro.com> | |
4665 | ||
4666 | * config/stormy16/stormy16.md (swpn_zext): New pattern. | |
4667 | ||
4668 | 2024-06-21 Richard Sandiford <richard.sandiford@arm.com> | |
4669 | ||
4670 | * config/stormy16/predicates.md (xs_hi_nonmemory_operand): Handle | |
4671 | symbol_ref and label_ref. | |
4672 | ||
4673 | 2024-06-21 Richard Sandiford <richard.sandiford@arm.com> | |
4674 | ||
4675 | * config/iq2000/iq2000.cc (iq2000_print_operand): Make %p handle 1<<31. | |
4676 | * config/iq2000/iq2000.md: Remove "I" constraints on | |
4677 | power_of_2_operands. | |
4678 | ||
4679 | 2024-06-21 Richard Sandiford <richard.sandiford@arm.com> | |
4680 | ||
4681 | * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Don't | |
4682 | cost no-op moves. | |
4683 | * rtl-ssa/insns.cc (insn_info::calculate_cost): Likewise. | |
4684 | ||
4685 | 2024-06-21 Andrew MacLeod <amacleod@redhat.com> | |
4686 | ||
4687 | * gimple-range.cc (gimple_ranger::register_inferred_ranges): Do not | |
4688 | dump global range info after set_range_info. | |
4689 | (gimple_ranger::register_transitive_inferred_ranges): Likewise. | |
4690 | (dom_ranger::range_of_stmt): Likewise. | |
4691 | * tree-ssanames.cc (set_range_info): If global range info | |
4692 | changes, maybe print new range to dump_file. | |
4693 | * tree-vrp.cc (remove_unreachable::handle_early): Do not | |
4694 | dump global range info after set_range_info. | |
4695 | (remove_unreachable::remove): Likewise. | |
4696 | (remove_unreachable::remove_and_update_globals): Likewise. | |
4697 | (pass_assumptions::execute): Likewise. | |
4698 | ||
4699 | 2024-06-21 Andrew MacLeod <amacleod@redhat.com> | |
4700 | ||
4701 | * gimple-range.cc (dom_ranger::dom_ranger): Create a block | |
4702 | vector. | |
4703 | (dom_ranger::~dom_ranger): Dispose of the block vector. | |
4704 | (dom_ranger::edge_range): Delete. | |
4705 | (dom_ranger::range_on_edge): Combine range in src BB with any | |
4706 | range gori_nme_on_edge returns. | |
4707 | (dom_ranger::range_in_bb): Combine global range with any active | |
4708 | contextual range for an ssa-name. | |
4709 | (dom_ranger::range_of_stmt): Fix non-ssa LHS case, use | |
4710 | fur_depend for folding so relations can be registered. | |
4711 | (dom_ranger::maybe_push_edge): Delete. | |
4712 | (dom_ranger::pre_bb): Create incoming contextual range vector. | |
4713 | (dom_ranger::post_bb): Free contextual range vector. | |
4714 | * gimple-range.h (dom_ranger::edge_range): Delete. | |
4715 | (dom_ranger::m_e0): Delete. | |
4716 | (dom_ranger::m_e1): Delete. | |
4717 | (dom_ranger::m_bb): New. | |
4718 | (dom_ranger::m_pop_list): Delete. | |
4719 | * tree-vrp.cc (execute_fast_vrp): Enable relation oracle. | |
4720 | ||
4721 | 2024-06-21 Andrew MacLeod <amacleod@redhat.com> | |
4722 | ||
4723 | * tree-vrp.cc (remove_unreachable::remove): Export global range | |
4724 | if builtin_unreachable dominates all uses. | |
4725 | (remove_unreachable::remove_and_update_globals): Do not reset SCEV. | |
4726 | (execute_ranger_vrp): Reset SCEV here instead. | |
4727 | (fvrp_folder::fvrp_folder): Take final pass flag | |
4728 | and create a remove_unreachable object when specified. | |
4729 | (fvrp_folder::pre_fold_stmt): Register GIMPLE_CONDs with | |
4730 | the remove_unreachcable object. | |
4731 | (fvrp_folder::m_unreachable): New. | |
4732 | (execute_fast_vrp): Process remove_unreachable object. | |
4733 | (pass_vrp::execute): Add final_p flag to execute_fast_vrp. | |
4734 | ||
4735 | 2024-06-21 David Malcolm <dmalcolm@redhat.com> | |
4736 | ||
4737 | PR testsuite/109360 | |
4738 | * doc/install.texi: Mention optional usage of "jsonschema" tool. | |
4739 | ||
4740 | 2024-06-21 David Malcolm <dmalcolm@redhat.com> | |
4741 | ||
4742 | PR testsuite/109360 | |
4743 | * diagnostic-format-sarif.cc | |
4744 | (sarif_builder::make_location_object): Pass any column override | |
4745 | from rich_loc to maybe_make_physical_location_object. | |
4746 | (sarif_builder::maybe_make_physical_location_object): Add | |
4747 | "column_override" param and pass it to maybe_make_region_object. | |
4748 | (sarif_builder::maybe_make_region_object): Add "column_override" | |
4749 | param and use it when the location has 0 for a column. Don't | |
4750 | add "startLine", "startColumn", "endLine", or "endColumn" if | |
4751 | the values aren't positive. | |
4752 | (sarif_builder::maybe_make_region_object_for_context): Don't | |
4753 | add "startLine" or "endLine" if the values aren't positive. | |
4754 | ||
4755 | 2024-06-21 Richard Sandiford <richard.sandiford@arm.com> | |
4756 | ||
4757 | * config/sh/sh.md (*minus_plus_one): Add constraints. | |
4758 | ||
4759 | 2024-06-21 Andrew Pinski <quic_apinski@quicinc.com> | |
4760 | ||
4761 | PR tree-optimization/68855 | |
4762 | * tree-complex.cc (init_dont_simulate_again): Handle PAREN_EXPR | |
4763 | like NEGATE_EXPR. | |
4764 | (complex_propagate::visit_stmt): Likewise. | |
4765 | (expand_complex_move): Don't handle PAREN_EXPR. | |
4766 | (expand_complex_paren): New function. | |
4767 | (expand_complex_operations_1): Handle PAREN_EXPR like | |
4768 | NEGATE_EXPR. And call expand_complex_paren for PAREN_EXPR. | |
4769 | ||
4770 | 2024-06-21 Richard Biener <rguenther@suse.de> | |
4771 | ||
4772 | * doc/passes.texi: Remove references to no longer existing | |
4773 | passes. | |
4774 | ||
4775 | 2024-06-21 YunQiang Su <syq@gcc.gnu.org> | |
4776 | ||
4777 | * configure.ac: Set gcc_cv_as_mips_explicit_relocs if | |
4778 | gcc_cv_as_mips_explicit_relocs_pcrel. | |
4779 | * configure: Regenerate. | |
4780 | ||
4781 | 2024-06-21 YunQiang Su <syq@gcc.gnu.org> | |
4782 | ||
4783 | * config/mips/mips.cc(mips_rtx_costs): Set condmove cost. | |
4784 | * config/mips/mips.md(mov<GPR:mode>_on_<MOVECC:mode>, | |
4785 | mov<GPR:mode>_on_<MOVECC:mode>_mips16e2, | |
4786 | mov<GPR:mode>_on_<GPR2:mode>_ne | |
4787 | mov<GPR:mode>_on_<GPR2:mode>_ne_mips16e2): Define name by | |
4788 | remove starting *, so that we can use CODE_FOR_. | |
4789 | ||
4790 | 2024-06-21 Kewen Lin <linkw@linux.ibm.com> | |
4791 | Xionghu Luo <xionghuluo@tencent.com> | |
4792 | ||
4793 | PR target/106069 | |
4794 | PR target/115355 | |
4795 | * config/rs6000/altivec.md (altivec_vmrghw_direct_<VSX_W:mode>): Rename | |
4796 | to ... | |
4797 | (altivec_vmrghw_direct_<VSX_W:mode>_be): ... this. Add the condition | |
4798 | BYTES_BIG_ENDIAN. | |
4799 | (altivec_vmrghw_direct_<VSX_W:mode>_le): New define_insn. | |
4800 | (altivec_vmrglw_direct_<VSX_W:mode>): Rename to ... | |
4801 | (altivec_vmrglw_direct_<VSX_W:mode>_be): ... this. Add the condition | |
4802 | BYTES_BIG_ENDIAN. | |
4803 | (altivec_vmrglw_direct_<VSX_W:mode>_le): New define_insn. | |
4804 | (altivec_vmrghw): Adjust by calling gen_altivec_vmrghw_direct_v4si_be | |
4805 | for BE and gen_altivec_vmrglw_direct_v4si_le for LE. | |
4806 | (altivec_vmrglw): Adjust by calling gen_altivec_vmrglw_direct_v4si_be | |
4807 | for BE and gen_altivec_vmrghw_direct_v4si_le for LE. | |
4808 | (vec_widen_umult_hi_v8hi): Adjust the call to | |
4809 | gen_altivec_vmrghw_direct_v4si by gen_altivec_vmrghw for BE | |
4810 | and by gen_altivec_vmrglw for LE. | |
4811 | (vec_widen_smult_hi_v8hi): Likewise. | |
4812 | (vec_widen_umult_lo_v8hi): Adjust the call to | |
4813 | gen_altivec_vmrglw_direct_v4si by gen_altivec_vmrglw for BE | |
4814 | and by gen_altivec_vmrghw for LE | |
4815 | (vec_widen_smult_lo_v8hi): Likewise. | |
4816 | * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace | |
4817 | CODE_FOR_altivec_vmrghw_direct_v4si by | |
4818 | CODE_FOR_altivec_vmrghw_direct_v4si_be for BE and | |
4819 | CODE_FOR_altivec_vmrghw_direct_v4si_le for LE. And replace | |
4820 | CODE_FOR_altivec_vmrglw_direct_v4si by | |
4821 | CODE_FOR_altivec_vmrglw_direct_v4si_be for BE and | |
4822 | CODE_FOR_altivec_vmrglw_direct_v4si_le for LE. | |
4823 | * config/rs6000/vsx.md (vsx_xxmrghw_<VSX_W:mode>): Adjust by calling | |
4824 | gen_altivec_vmrghw_direct_v4si_be for BE and | |
4825 | gen_altivec_vmrglw_direct_v4si_le for LE. | |
4826 | (vsx_xxmrglw_<VSX_W:mode>): Adjust by calling | |
4827 | gen_altivec_vmrglw_direct_v4si_be for BE and | |
4828 | gen_altivec_vmrghw_direct_v4si_le for LE. | |
4829 | ||
4830 | 2024-06-20 Roger Sayle <roger@nextmovesoftware.com> | |
4831 | ||
4832 | * config/i386/i386-expand.cc (ix86_ternlog_idx): Allow any SUBREG | |
4833 | that matches register_operand. Use rtx_equal_p to compare REG | |
4834 | or SUBREG "leaf" operands. | |
4835 | ||
4836 | 2024-06-20 Jeff Law <jlaw@ventanamicro.com> | |
4837 | ||
4838 | * config/riscv/bitmanip.md (<bit_optab><mode>): New unified | |
4839 | pattern for bset/binv using a code iterator. | |
4840 | (<bit_optab>i<mode>): Likewise. | |
4841 | (<bit_optab><mode>_mask): Likewise. Support XOR via any_or. | |
4842 | (<bit_optab>isidi): Likewise. | |
4843 | * config/riscv/iterators.md (bit_optab): New iterator. | |
4844 | ||
4845 | 2024-06-20 Hongyu Wang <hongyu.wang@intel.com> | |
4846 | ||
4847 | * config/i386/i386-options.cc (ix86_option_override_internal): | |
4848 | Use TARGET_*_P (opts->x_ix86_isa_flags*) instead of TARGET_* | |
4849 | for UINTR, LAM and APX_F. | |
4850 | ||
4851 | 2024-06-20 Richard Biener <rguenther@suse.de> | |
4852 | ||
4853 | PR tree-optimization/114413 | |
4854 | * tree-vect-slp.cc (release_scalar_stmts_to_slp_tree_map): | |
4855 | New function, split out from ... | |
4856 | (vect_analyze_slp): ... here. Call it. | |
4857 | (vect_cse_slp_nodes): New function. | |
4858 | (vect_optimize_slp): Call it. | |
4859 | ||
4860 | 2024-06-20 Feng Xue <fxue@os.amperecomputing.com> | |
4861 | ||
4862 | * tree-vect-loop.cc (vect_transform_reduction): Change assertion to | |
4863 | cover all lane-reducing ops. | |
4864 | ||
4865 | 2024-06-20 Feng Xue <fxue@os.amperecomputing.com> | |
4866 | ||
4867 | * tree-vect-loop.cc (vect_transform_reduction): Replace vec_oprnds0/1/2 | |
4868 | with one new array variable vec_oprnds[3]. | |
4869 | ||
4870 | 2024-06-20 Feng Xue <fxue@os.amperecomputing.com> | |
4871 | ||
4872 | * tree-vect-loop.cc (vectorizable_reduction): Remove v_reduc_type, and | |
4873 | replace it to another local variable reduction_type. | |
4874 | ||
4875 | 2024-06-20 Feng Xue <fxue@os.amperecomputing.com> | |
4876 | ||
4877 | * tree-vect-loop.cc (vectorizable_reduction): Remove the duplicated | |
4878 | check. | |
4879 | ||
4880 | 2024-06-20 Feng Xue <fxue@os.amperecomputing.com> | |
4881 | ||
4882 | * tree-vectorizer.h (lane_reducing_stmt_p): New function. | |
4883 | * tree-vect-slp.cc (vect_analyze_slp): Use new function | |
4884 | lane_reducing_stmt_p to check statement. | |
4885 | ||
4886 | 2024-06-19 YunQiang Su <syq@gcc.gnu.org> | |
4887 | ||
4888 | Revert: | |
4889 | 2024-06-19 Collin Funk <collin.funk1@gmail.com> | |
4890 | ||
4891 | * configure.ac: Add missing quotation of variable | |
4892 | gcc_cv_as_mips_explicit_relocs. | |
4893 | * configure: Regenerate. | |
4894 | ||
4895 | 2024-06-19 demin.han <demin.han@starfivetech.com> | |
4896 | ||
4897 | * config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond | |
4898 | * config/riscv/vector.md (@pred_eqne<mode>_scalar): Remove patterns | |
4899 | (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto | |
4900 | (*pred_eqne<mode>_scalar): Ditto | |
4901 | (*pred_eqne<mode>_scalar_narrow): Ditto | |
4902 | ||
4903 | 2024-06-19 Patrick O'Neill <patrick@rivosinc.com> | |
4904 | ||
4905 | * common/config/riscv/riscv-common.cc: Add 'a' extension to | |
4906 | riscv_combine_info. | |
4907 | ||
4908 | 2024-06-19 Jakub Jelinek <jakub@redhat.com> | |
4909 | ||
4910 | PR tree-optimization/115544 | |
4911 | * gimple-lower-bitint.cc (gimple_lower_bitint): Disable optimizing | |
4912 | loads used by COMPLEX_EXPR operands. | |
4913 | ||
4914 | 2024-06-19 mayshao <mayshao-oc@zhaoxin.com> | |
4915 | ||
4916 | * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize shijidadao. | |
4917 | * common/config/i386/i386-common.cc: Add shijidadao. | |
4918 | * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): | |
4919 | Add ZHAOXIN_FAM7H_SHIJIDADAO. | |
4920 | * config.gcc: Add shijidadao. | |
4921 | * config/i386/driver-i386.cc (host_detect_local_cpu): | |
4922 | Let -march=native recognize shijidadao processors. | |
4923 | * config/i386/i386-c.cc (ix86_target_macros_internal): Add shijidadao. | |
4924 | * config/i386/i386-options.cc (m_ZHAOXIN): Add m_SHIJIDADAO. | |
4925 | (m_SHIJIDADAO): New definition. | |
4926 | * config/i386/i386.h (enum processor_type): Add PROCESSOR_SHIJIDADAO. | |
4927 | * config/i386/x86-tune-costs.h (struct processor_costs): | |
4928 | Add shijidadao_cost. | |
4929 | * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add shijidadao. | |
4930 | (ix86_adjust_cost): Ditto. | |
4931 | * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Add m_SHIJIDADAO. | |
4932 | (X86_TUNE_USE_GATHER_4PARTS): Ditto. | |
4933 | (X86_TUNE_USE_GATHER_8PARTS): Ditto. | |
4934 | (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. | |
4935 | * doc/extend.texi: Add details about shijidadao. | |
4936 | * doc/invoke.texi: Ditto. | |
4937 | ||
4938 | 2024-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
4939 | ||
4940 | * config/xtensa/xtensa.cc (print_operand): | |
4941 | When outputting MEMW before the instruction, check if the previous | |
4942 | instruction is already that. | |
4943 | ||
4944 | 2024-06-19 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
4945 | Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
4946 | ||
4947 | * config/arm/arm-protos.h (arm_target_bb_ok_for_lob): Change | |
4948 | declaration to pass basic_block. | |
4949 | (arm_attempt_dlstp_transform): New declaration. | |
4950 | * config/arm/arm.cc (TARGET_LOOP_UNROLL_ADJUST): Define targethook. | |
4951 | (TARGET_PREDICT_DOLOOP_P): Likewise. | |
4952 | (arm_target_bb_ok_for_lob): Adapt condition. | |
4953 | (arm_mve_get_vctp_lanes): New function. | |
4954 | (arm_dl_usage_type): New internal enum. | |
4955 | (arm_get_required_vpr_reg): New function. | |
4956 | (arm_get_required_vpr_reg_param): New function. | |
4957 | (arm_get_required_vpr_reg_ret_val): New function. | |
4958 | (arm_mve_get_loop_vctp): New function. | |
4959 | (arm_mve_insn_predicated_by): New function. | |
4960 | (arm_mve_across_lane_insn_p): New function. | |
4961 | (arm_mve_load_store_insn_p): New function. | |
4962 | (arm_mve_impl_pred_on_outputs_p): New function. | |
4963 | (arm_mve_impl_pred_on_inputs_p): New function. | |
4964 | (arm_last_vect_def_insn): New function. | |
4965 | (arm_mve_impl_predicated_p): New function. | |
4966 | (arm_mve_check_reg_origin_is_num_elems): New function. | |
4967 | (arm_mve_dlstp_check_inc_counter): New function. | |
4968 | (arm_mve_dlstp_check_dec_counter): New function. | |
4969 | (arm_mve_loop_valid_for_dlstp): New function. | |
4970 | (arm_predict_doloop_p): New function. | |
4971 | (arm_loop_unroll_adjust): New function. | |
4972 | (arm_emit_mve_unpredicated_insn_to_seq): New function. | |
4973 | (arm_attempt_dlstp_transform): New function. | |
4974 | * config/arm/arm.opt (mdlstp): New option. | |
4975 | * config/arm/iterators.md (dlstp_elemsize, letp_num_lanes, | |
4976 | letp_num_lanes_neg, letp_num_lanes_minus_1): New attributes. | |
4977 | (DLSTP, LETP): New iterators. | |
4978 | * config/arm/mve.md (predicated_doloop_end_internal<letp_num_lanes>, | |
4979 | dlstp<dlstp_elemsize>_insn): New insn patterns. | |
4980 | * config/arm/thumb2.md (doloop_end): Adapt to support tail-predicated | |
4981 | loops. | |
4982 | (doloop_begin): Likewise. | |
4983 | * config/arm/types.md (mve_misc): New mve type to represent | |
4984 | predicated_loop_end insn sequences. | |
4985 | * config/arm/unspecs.md: | |
4986 | (DLSTP8, DLSTP16, DLSTP32, DSLTP64, | |
4987 | LETP8, LETP16, LETP32, LETP64): New unspecs for DLSTP and LETP. | |
4988 | ||
4989 | 2024-06-19 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
4990 | Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
4991 | ||
4992 | * df-core.cc (df_bb_regno_only_def_find): New helper function. | |
4993 | * df.h (df_bb_regno_only_def_find): Declare new function. | |
4994 | * loop-doloop.cc (doloop_condition_get): Add support for detecting | |
4995 | predicated vectorized hardware loops. | |
4996 | (doloop_modify): Add support for GTU condition checks. | |
4997 | (doloop_optimize): Update costing computation to support alterations to | |
4998 | desc->niter_expr by the backend. | |
4999 | ||
5000 | 2024-06-19 Collin Funk <collin.funk1@gmail.com> | |
5001 | ||
5002 | * configure.ac: Add missing quotation of variable | |
5003 | gcc_cv_as_mips_explicit_relocs. | |
5004 | * configure: Regenerate. | |
5005 | ||
5006 | 2024-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
5007 | ||
5008 | * config/xtensa/xtensa-protos.h (xtensa_constantsynth): | |
5009 | Change the second argument from HOST_WIDE_INT to rtx. | |
5010 | * config/xtensa/xtensa.cc (#include): | |
5011 | Add "context.h" and "pass_manager.h". | |
5012 | (machine_function): Add a new hash_map field "litpool_usage". | |
5013 | (xtensa_constantsynth): Make "src" (the second operand) accept | |
5014 | RTX literal instead of its value, and treat both bare and pooled | |
5015 | SI/SFmode literals equally by bit-exact canonicalization into | |
5016 | CONST_INT RTX internally. And then, make avoid synthesis if | |
5017 | such multiple identical canonicalized literals are found in same | |
5018 | function when optimizing for size. Finally, for literals where | |
5019 | synthesis is not possible or has been avoided, re-emit "move" | |
5020 | RTXes with canonicalized ones to increase the chances of sharing | |
5021 | literal pool entries. | |
5022 | * config/xtensa/xtensa.md (split patterns for constant synthesis): | |
5023 | Change to simply invoke xtensa_constantsynth() as mentioned above, | |
5024 | and add new patterns for when TARGET_AUTO_LITPOOLS is enabled. | |
5025 | ||
5026 | 2024-06-18 Edwin Lu <ewlu@rivosinc.com> | |
5027 | Robin Dapp <rdapp@ventanamicro.com> | |
5028 | ||
5029 | * config/riscv/riscv-v.cc: Move assert out of conditional block | |
5030 | ||
5031 | 2024-06-18 Edwin Lu <ewlu@rivosinc.com> | |
5032 | Robin Dapp <rdapp@ventanamicro.com> | |
5033 | ||
5034 | * config/riscv/autovec-opt.md: Fix mode mismatch | |
5035 | ||
5036 | 2024-06-18 Andrew Pinski <quic_apinski@quicinc.com> | |
5037 | ||
5038 | * config/aarch64/aarch64-cores.def: Add comment | |
5039 | saying thunderxt81/t83 are aliases of octeontx81/83. | |
5040 | ||
5041 | 2024-06-18 Andrew Pinski <quic_apinski@quicinc.com> | |
5042 | ||
5043 | * config/aarch64/aarch64-cores.def (thunderxt88p1): Make an alias of thunderxt88 and | |
5044 | move below thunderxt88. | |
5045 | * config/aarch64/aarch64-tune.md: Regenerate. | |
5046 | ||
5047 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5048 | ||
5049 | * Makefile.in (OBJS): Move selftest-diagnostic-path.o, | |
5050 | selftest-logical-location.o, and tree-diagnostic-path.o to... | |
5051 | (OBJS-libcommon): ...here, renaming tree-diagnostic-path.o to | |
5052 | diagnostic-path.o. | |
5053 | * tree-diagnostic-path.cc: Rename to... | |
5054 | * diagnostic-path.cc: ...this. Drop include of "tree.h". | |
5055 | (tree_diagnostic_path_cc_tests): Rename to... | |
5056 | (diagnostic_path_cc_tests): ...this. | |
5057 | * selftest-run-tests.cc (selftest::run_tests): Update for above | |
5058 | renaming. | |
5059 | * selftest.h (tree_diagnostic_path_cc_tests): Rename decl to... | |
5060 | (diagnostic_path_cc_tests): ...this. | |
5061 | ||
5062 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5063 | ||
5064 | * diagnostic-format-json.cc (diagnostic_output_format_init_json): | |
5065 | Replace clearing of diagnostic_context::m_print_path callback with | |
5066 | setting the path format to DPF_NONE. | |
5067 | * diagnostic-format-sarif.cc | |
5068 | (diagnostic_output_format_init_sarif): Likewise. | |
5069 | * diagnostic.cc (diagnostic_context::show_any_path): Replace call | |
5070 | to diagnostic_context::m_print_path callback with a direct call to | |
5071 | diagnostic_context::print_path. | |
5072 | * diagnostic.h (diagnostic_context::print_path): New decl. | |
5073 | (diagnostic_context::m_print_path): Delete callback. | |
5074 | * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer): | |
5075 | Convert to... | |
5076 | (diagnostic_context::print_path): ...this. | |
5077 | * tree-diagnostic.cc (tree_diagnostics_defaults): Delete | |
5078 | initialization of m_print_path. | |
5079 | * tree-diagnostic.h (default_tree_diagnostic_path_printer): Delete | |
5080 | decl. | |
5081 | ||
5082 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5083 | ||
5084 | * diagnostic-macro-unwinding.cc: New file, with material taken | |
5085 | from tree-diagnostic.cc. | |
5086 | * diagnostic-macro-unwinding.h: New file, with material taken | |
5087 | from tree-diagnostic.h. | |
5088 | * tree-diagnostic-path.cc: Repalce include of "tree-diagnostic.h" | |
5089 | with "diagnostic-macro-unwinding.h". | |
5090 | * tree-diagnostic.cc (struct loc_map_pair): Move to | |
5091 | diagnostic-macro-unwinding.cc. | |
5092 | (maybe_unwind_expanded_macro_loc): Likewise. | |
5093 | (virt_loc_aware_diagnostic_finalizer): Likewise. | |
5094 | * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Move | |
5095 | decl to diagnostic-macro-unwinding.h. | |
5096 | (maybe_unwind_expanded_macro_loc): Likewise. | |
5097 | ||
5098 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5099 | ||
5100 | * Makefile.in (OBJS): Add diagnostic-macro-unwinding.o. | |
5101 | ||
5102 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5103 | ||
5104 | * diagnostic-format-json.cc: Include "diagnostic-path.h" and | |
5105 | "logical-location.h". | |
5106 | (make_json_for_path): Move tree-diagnostic-path.cc's | |
5107 | default_tree_make_json_for_path here, renaming it and making it | |
5108 | static. | |
5109 | (json_output_format::on_end_diagnostic): Replace call of | |
5110 | m_context's m_make_json_for_path callback with a direct call to | |
5111 | make_json_for_path. | |
5112 | * diagnostic.h (diagnostic_context::m_make_json_for_path): Drop | |
5113 | field. | |
5114 | * tree-diagnostic-path.cc: Drop include of "json.h". | |
5115 | (default_tree_make_json_for_path): Rename to make_json_for_path | |
5116 | and move to diagnostic-format-json.cc. | |
5117 | * tree-diagnostic.cc (tree_diagnostics_defaults): Drop | |
5118 | initialization of m_make_json_for_path. | |
5119 | * tree-diagnostic.h (default_tree_make_json_for): Delete decl. | |
5120 | ||
5121 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5122 | ||
5123 | * Makefile.in (OBJS): Add selftest-diagnostic-path.o and | |
5124 | selftest-logical-location.o. | |
5125 | * logical-location.h: Include "label-text.h". | |
5126 | (class logical_location): Update leading comment. | |
5127 | * selftest-diagnostic-path.cc: New file, adapted from | |
5128 | simple-diagnostic-path.cc and from material in | |
5129 | tree-diagnostic-path.cc. | |
5130 | * selftest-diagnostic-path.h: New file, adapted from | |
5131 | simple-diagnostic-path.h and from material in | |
5132 | tree-diagnostic-path.cc. | |
5133 | * selftest-logical-location.cc: New file. | |
5134 | * selftest-logical-location.h: New file. | |
5135 | * tree-diagnostic-path.cc: Remove includes of "tree-pretty-print.h", | |
5136 | "langhooks.h", and "simple-diagnostic-path.h". Add include of | |
5137 | "selftest-diagnostic-path.h". | |
5138 | (class test_diagnostic_path): Delete, in favor of new | |
5139 | implementation in selftest-diagnostic-path.{h,cc}, which is | |
5140 | directly derived from diagnostic_path, rather than from | |
5141 | simple_diagnostic_path. | |
5142 | (selftest::test_intraprocedural_path): Eliminate tree usage, | |
5143 | via change to test_diagnostic_path, using strings rather than | |
5144 | function_decls for identifying functions in the test. | |
5145 | (selftest::test_interprocedural_path_1): Likewise. | |
5146 | (selftest::test_interprocedural_path_2): Likewise. | |
5147 | (selftest::test_recursion): Likewise. | |
5148 | (selftest::test_control_flow_1): Likewise. | |
5149 | (selftest::test_control_flow_2): Likewise. | |
5150 | (selftest::test_control_flow_3): Likewise. | |
5151 | (selftest::assert_cfg_edge_path_streq): Likewise. | |
5152 | (selftest::test_control_flow_5): Likewise. | |
5153 | (selftest::test_control_flow_6): Likewise. | |
5154 | ||
5155 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5156 | ||
5157 | * diagnostic.cc: Include "logical-location.h". | |
5158 | (diagnostic_path::get_first_event_in_a_function): Fix typo in | |
5159 | leading comment. Rewrite to use logical_location rather than | |
5160 | tree. Drop test on stack depth. | |
5161 | (diagnostic_path::interprocedural_p): Rewrite to use | |
5162 | logical_location rather than tree. | |
5163 | (logical_location::function_p): New. | |
5164 | * diagnostic-path.h (diagnostic_event::get_fndecl): Eliminate | |
5165 | vfunc. | |
5166 | (diagnostic_path::same_function_p): New pure virtual func. | |
5167 | * logical-location.h (logical_location::get_name_for_path_output): | |
5168 | New pure virtual func. | |
5169 | * simple-diagnostic-path.cc | |
5170 | (simple_diagnostic_path::same_function_p): New. | |
5171 | (simple_diagnostic_event::simple_diagnostic_event): Initialize | |
5172 | m_logical_loc. | |
5173 | * simple-diagnostic-path.h: Include "tree-logical-location.h". | |
5174 | (simple_diagnostic_event::get_fndecl): Convert from a vfunc | |
5175 | implementation to an accessor. | |
5176 | (simple_diagnostic_event::get_logical_location): Use | |
5177 | m_logical_loc. | |
5178 | (simple_diagnostic_event::m_logical_loc): New field. | |
5179 | (simple_diagnostic_path::same_function_p): New decl. | |
5180 | * tree-diagnostic-path.cc: Move pragma disabling -Wformat-diag to | |
5181 | cover the whole file. | |
5182 | (can_consolidate_events): Add params "path", "ev1_idx", and | |
5183 | "ev2_idx". Rewrite to use diagnostic_path::same_function_p rather | |
5184 | than tree. | |
5185 | (per_thread_summary::per_thread_summary): Add "path" param | |
5186 | (per_thread_summary::m_path): New field. | |
5187 | (event_range::event_range): Update for conversion of m_fndecl to | |
5188 | m_logical_loc. | |
5189 | (event_range::maybe_add_event): Rename param "idx" to | |
5190 | "new_ev_idx". Update call to can_consolidate_events to pass in | |
5191 | "m_path", "m_start_idx", and "new_ev_idx". | |
5192 | (event_range::m_fndecl): Replace with... | |
5193 | (event_range::m_logical_loc): ...this. | |
5194 | (path_summary::get_or_create_events_for_thread_id): Pass "path" to | |
5195 | per_thread_summary ctor. | |
5196 | (per_thread_summary::interprocedural_p): Rewrite to use | |
5197 | diagnostic_path::same_function_p rather than tree. | |
5198 | (print_fndecl): Delete. | |
5199 | (thread_event_printer::print_swimlane_for_event_range): Update for | |
5200 | conversion from tree to logical_location. | |
5201 | (default_tree_diagnostic_path_printer): Likewise. | |
5202 | (default_tree_make_json_for_path): Likewise. | |
5203 | * tree-logical-location.cc: Include "intl.h". | |
5204 | (compiler_logical_location::get_name_for_tree_for_path_output): | |
5205 | New. | |
5206 | (tree_logical_location::get_name_for_path_output): New. | |
5207 | (current_fndecl_logical_location::get_name_for_path_output): New. | |
5208 | * tree-logical-location.h | |
5209 | (compiler_logical_location::get_name_for_tree_for_path_output): | |
5210 | New decl. | |
5211 | (tree_logical_location::get_name_for_path_output): New decl. | |
5212 | (current_fndecl_logical_location::get_name_for_path_output): New | |
5213 | decl. | |
5214 | ||
5215 | 2024-06-18 David Malcolm <dmalcolm@redhat.com> | |
5216 | ||
5217 | * Makefile.in (OBJS): Add simple-diagnostic-path.o. | |
5218 | * diagnostic-path.h (class simple_diagnostic_event): Move to | |
5219 | simple-diagnostic-path.h. | |
5220 | (class simple_diagnostic_thread): Likewise. | |
5221 | (class simple_diagnostic_path): Likewise. | |
5222 | * diagnostic.cc (simple_diagnostic_path::simple_diagnostic_path): | |
5223 | Move to simple-diagnostic-path.cc. | |
5224 | (simple_diagnostic_path::num_events): Likewise. | |
5225 | (simple_diagnostic_path::get_event): Likewise. | |
5226 | (simple_diagnostic_path::num_threads): Likewise. | |
5227 | (simple_diagnostic_path::get_thread): Likewise. | |
5228 | (simple_diagnostic_path::add_thread): Likewise. | |
5229 | (simple_diagnostic_path::add_event): Likewise. | |
5230 | (simple_diagnostic_path::add_thread_event): Likewise. | |
5231 | (simple_diagnostic_path::connect_to_next_event): Likewise. | |
5232 | (simple_diagnostic_event::simple_diagnostic_event): Likewise. | |
5233 | (simple_diagnostic_event::~simple_diagnostic_event): Likewise. | |
5234 | * selftest-run-tests.cc (selftest::run_tests): Call | |
5235 | selftest::simple_diagnostic_path_cc_tests. | |
5236 | * selftest.h (selftest::simple_diagnostic_path_cc_tests): New | |
5237 | decl. | |
5238 | * simple-diagnostic-path.cc: New file, from the above material. | |
5239 | * simple-diagnostic-path.h: New file, from the above material | |
5240 | from diagnostic-path.h. | |
5241 | * tree-diagnostic-path.cc: Include "simple-diagnostic-path.h". | |
5242 | ||
5243 | 2024-06-18 Pan Li <pan2.li@intel.com> | |
5244 | ||
5245 | * match.pd: Add form 7 and 8 for the unsigned .SAT_ADD match. | |
5246 | ||
5247 | 2024-06-18 Pan Li <pan2.li@intel.com> | |
5248 | ||
5249 | * match.pd: Add form 11 match pattern for .SAT_SUB. | |
5250 | ||
5251 | 2024-06-18 Richard Biener <rguenther@suse.de> | |
5252 | ||
5253 | PR tree-optimization/115537 | |
5254 | * tree-vect-loop.cc (vectorizable_reduction): Also reject | |
5255 | SLP condition reductions of EXTRACT_LAST kind when multiple | |
5256 | statement copies are involved. | |
5257 | ||
5258 | 2024-06-18 Jeff Law <jlaw@ventanamicro.com> | |
5259 | ||
5260 | * config/riscv/bitmanip.md (bset splitters): New patterns for | |
5261 | generating bset when bit position is limited. | |
5262 | ||
5263 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5264 | ||
5265 | * config/aarch64/aarch64.cc (aarch64_addti_scratch_regs): Use | |
5266 | force_highpart_subreg instead of gen_highpart and simplify_gen_subreg. | |
5267 | (aarch64_subvti_scratch_regs): Likewise. | |
5268 | ||
5269 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5270 | ||
5271 | * explow.h (force_highpart_subreg): Declare. | |
5272 | * explow.cc (force_highpart_subreg): New function. | |
5273 | * builtins.cc (expand_builtin_issignaling): Use it. | |
5274 | * expmed.cc (emit_store_flag_1): Likewise. | |
5275 | ||
5276 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5277 | ||
5278 | * builtins.cc (expand_builtin_issignaling): Use force_lowpart_subreg | |
5279 | instead of simplify_gen_subreg and lowpart_subreg. | |
5280 | * expr.cc (convert_mode_scalar, expand_expr_real_2): Likewise. | |
5281 | * optabs.cc (expand_doubleword_mod): Likewise. | |
5282 | ||
5283 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5284 | ||
5285 | PR target/115464 | |
5286 | * config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin) | |
5287 | (aarch64_expand_rwsr_builtin): Use force_lowpart_subreg instead of | |
5288 | simplify_gen_subreg and lowpart_subreg. | |
5289 | * config/aarch64/aarch64-sve-builtins-base.cc | |
5290 | (svset_neonq_impl::expand): Likewise. | |
5291 | * config/aarch64/aarch64-sve-builtins-sme.cc | |
5292 | (add_load_store_slice_operand): Likewise. | |
5293 | * config/aarch64/aarch64.cc (aarch64_sve_reinterpret): Likewise. | |
5294 | (aarch64_addti_scratch_regs, aarch64_subvti_scratch_regs): Likewise. | |
5295 | ||
5296 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5297 | ||
5298 | * explow.h (force_lowpart_subreg): Declare. | |
5299 | * explow.cc (force_lowpart_subreg): New function. | |
5300 | * optabs.cc (lowpart_subreg_maybe_copy): Delete. | |
5301 | (expand_absneg_bit): Use force_lowpart_subreg instead of | |
5302 | lowpart_subreg_maybe_copy. | |
5303 | (expand_copysign_bit): Likewise. | |
5304 | ||
5305 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5306 | ||
5307 | * expmed.cc (store_bit_field_using_insv): Use force_subreg | |
5308 | instead of simplify_gen_subreg. | |
5309 | (store_bit_field_1): Likewise. | |
5310 | (extract_bit_field_as_subreg): Likewise. | |
5311 | (extract_integral_bit_field): Likewise. | |
5312 | (emit_store_flag_1): Likewise. | |
5313 | * expr.cc (convert_move): Likewise. | |
5314 | (convert_modes): Likewise. | |
5315 | (emit_group_load_1): Likewise. | |
5316 | (emit_group_store): Likewise. | |
5317 | (expand_assignment): Likewise. | |
5318 | ||
5319 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5320 | ||
5321 | * config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin): | |
5322 | Use force_subreg instead of simplify_gen_subreg. | |
5323 | * config/aarch64/aarch64-simd.md (ctz<mode>2): Likewise. | |
5324 | * config/aarch64/aarch64-sve-builtins-base.cc | |
5325 | (svget_impl::expand): Likewise. | |
5326 | (svget_neonq_impl::expand): Likewise. | |
5327 | * config/aarch64/aarch64-sve-builtins-functions.h | |
5328 | (multireg_permute::expand): Likewise. | |
5329 | ||
5330 | 2024-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
5331 | ||
5332 | * explow.cc (force_subreg): Emit no instructions on failure. | |
5333 | ||
5334 | 2024-06-18 Jakub Jelinek <jakub@redhat.com> | |
5335 | ||
5336 | PR target/115324 | |
5337 | * config/rs6000/rs6000-gen-builtins.cc (write_decls): Change | |
5338 | declaration of rs6000_init_generated_builtins from no arguments | |
5339 | to 4 pointer arguments. | |
5340 | (write_init_bif_table): Change rs6000_builtin_info_fntype to | |
5341 | builtin_info_fntype and rs6000_builtin_decls to builtin_decls. | |
5342 | (write_init_ovld_table): Change rs6000_instance_info_fntype to | |
5343 | instance_info_fntype, rs6000_builtin_decls to builtin_decls and | |
5344 | rs6000_overload_info to overload_info. | |
5345 | (write_init_file): Add __noipa__ attribute to | |
5346 | rs6000_init_generated_builtins for GCC 8.1+ and change the function | |
5347 | from no arguments to 4 pointer arguments. Change rs6000_builtin_decls | |
5348 | to builtin_decls. | |
5349 | * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Adjust | |
5350 | rs6000_init_generated_builtins caller. | |
5351 | ||
5352 | 2024-06-18 Richard Biener <rguenther@suse.de> | |
5353 | ||
5354 | PR tree-optimization/115493 | |
5355 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use | |
5356 | the first scalar result. | |
5357 | ||
5358 | 2024-06-18 Richard Biener <rguenther@suse.de> | |
5359 | ||
5360 | PR tree-optimization/111793 | |
5361 | * tree-ssa-alias.h (ref_can_have_store_data_races): Declare. | |
5362 | * tree-ssa-alias.cc (ref_can_have_store_data_races): New | |
5363 | function. | |
5364 | * tree-if-conv.cc (ifcvt_memrefs_wont_trap): Use | |
5365 | ref_can_have_store_data_races to allow more unconditional | |
5366 | stores. | |
5367 | * tree-ssa-loop-im.cc (execute_sm): Likewise. | |
5368 | * tree-ssa-phiopt.cc (cond_store_replacement): Likewise. | |
5369 | ||
5370 | 2024-06-18 Hu, Lin1 <lin1.hu@intel.com> | |
5371 | ||
5372 | * config/i386/avxintrin.h: Move cmp[p|s][s|d] to [e|x]mmintrin.h, | |
5373 | and move macros to xmmintrin.h | |
5374 | * config/i386/emmintrin.h: Add cmp[p|s]s intrins. | |
5375 | * config/i386/i386-builtin.def: Modify __builtin_ia32_cmp[p|s][s|d]. | |
5376 | * config/i386/i386-expand.cc | |
5377 | (ix86_expand_args_builtin): Raise error when imm is in range of | |
5378 | [8, 32] without avx. | |
5379 | * config/i386/predicates.md (cmpps_imm_operand): New predicate. | |
5380 | * config/i386/sse.md (avx_cmp<mode>3): Modefy define_insn. | |
5381 | (avx_vmcmp<mode>3): Ditto. | |
5382 | * config/i386/xmmintrin.h (_CMP_EQ_OQ): New macro for sse/sse2. | |
5383 | (_CMP_LT_OS): Ditto | |
5384 | (_CMP_LE_OS): Ditto | |
5385 | (_CMP_UNORD_Q): Ditto | |
5386 | (_CMP_NEQ_UQ): Ditto | |
5387 | (_CMP_NLT_US): Ditto | |
5388 | (_CMP_NLE_US): Ditto | |
5389 | (_CMP_ORD_Q): Ditto | |
5390 | (_mm_cmp_ps): Move intrin from avxintrin.h to xmmintrin.h | |
5391 | (_mm_cmp_ss): Ditto. | |
5392 | ||
5393 | 2024-06-17 Jeff Law <jlaw@ventanamicro.com> | |
5394 | ||
5395 | * config/riscv/bitmanip.md (bsetclr_zero_extract): New pattern. | |
5396 | ||
5397 | 2024-06-17 Jakub Jelinek <jakub@redhat.com> | |
5398 | ||
5399 | PR driver/115440 | |
5400 | * opts-common.cc (add_misspelling_candidates): If opt1 is non-NULL, | |
5401 | add a space and opt1 to the alternative suggestion text. | |
5402 | ||
5403 | 2024-06-17 Patrick O'Neill <patrick@rivosinc.com> | |
5404 | ||
5405 | * common/config/riscv/riscv-common.cc | |
5406 | (riscv_subset_list::to_string): Skip zaamo/zalrsc when not | |
5407 | supported by the assembler. | |
5408 | * config.in: Regenerate. | |
5409 | * configure: Regenerate. | |
5410 | * configure.ac: Add zaamo/zalrsc assmeber check. | |
5411 | ||
5412 | 2024-06-17 Gerald Pfeifer <gerald@pfeifer.com> | |
5413 | ||
5414 | * doc/install.texi (Configuration): Mark up __cxa_atexit as @code. | |
5415 | ||
5416 | 2024-06-17 Peter Bergner <bergner@linux.ibm.com> | |
5417 | ||
5418 | PR target/115389 | |
5419 | * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Compute | |
5420 | rop_hash_save_offset for non-Altivec compiles. | |
5421 | ||
5422 | 2024-06-17 Jeff Law <jlaw@ventanamicro.com> | |
5423 | ||
5424 | * config/riscv/bitmanip.md (bsetdi_2): New pattern. | |
5425 | ||
5426 | 2024-06-17 Richard Biener <rguenther@suse.de> | |
5427 | ||
5428 | PR tree-optimization/115508 | |
5429 | * tree-vect-slp.cc (vect_schedule_slp_node): Guard check on | |
5430 | representative. | |
5431 | ||
5432 | 2024-06-17 Richard Biener <rguenther@suse.de> | |
5433 | ||
5434 | Revert: | |
5435 | 2024-05-06 Richard Biener <rguenther@suse.de> | |
5436 | ||
5437 | PR tree-optimization/100923 | |
5438 | * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize | |
5439 | base SSA_NAME. | |
5440 | (vn_reference_lookup_3): Adjust vn_context_bb around calls | |
5441 | to ao_ref_init_from_vn_reference. | |
5442 | (vn_reference_lookup_pieces): Revert original PR100923 fix. | |
5443 | (vn_reference_lookup): Likewise. | |
5444 | ||
5445 | 2024-06-17 Aldy Hernandez <aldyh@redhat.com> | |
5446 | ||
5447 | * data-streamer-in.cc (streamer_read_value_range): Rename | |
5448 | Value_Range to value_range. | |
5449 | * data-streamer.h (streamer_read_value_range): Same. | |
5450 | * gimple-pretty-print.cc (dump_ssaname_info): Same. | |
5451 | * gimple-range-cache.cc (ssa_block_ranges::dump): Same. | |
5452 | (ssa_lazy_cache::merge): Same. | |
5453 | (block_range_cache::dump): Same. | |
5454 | (ssa_cache::merge_range): Same. | |
5455 | (ssa_cache::dump): Same. | |
5456 | (ranger_cache::edge_range): Same. | |
5457 | (ranger_cache::propagate_cache): Same. | |
5458 | (ranger_cache::fill_block_cache): Same. | |
5459 | (ranger_cache::resolve_dom): Same. | |
5460 | (ranger_cache::range_from_dom): Same. | |
5461 | (ranger_cache::register_inferred_value): Same. | |
5462 | * gimple-range-fold.cc (op1_range): Same. | |
5463 | (op2_range): Same. | |
5464 | (fold_relations): Same. | |
5465 | (fold_using_range::range_of_range_op): Same. | |
5466 | (fold_using_range::range_of_phi): Same. | |
5467 | (fold_using_range::range_of_call): Same. | |
5468 | (fold_using_range::condexpr_adjust): Same. | |
5469 | (fold_using_range::range_of_cond_expr): Same. | |
5470 | (fur_source::register_outgoing_edges): Same. | |
5471 | * gimple-range-fold.h (gimple_range_type): Same. | |
5472 | (gimple_range_ssa_p): Same. | |
5473 | * gimple-range-gori.cc (gori_compute::compute_operand_range): Same. | |
5474 | (gori_compute::logical_combine): Same. | |
5475 | (gori_compute::refine_using_relation): Same. | |
5476 | (gori_compute::compute_operand1_range): Same. | |
5477 | (gori_compute::compute_operand2_range): Same. | |
5478 | (gori_compute::compute_operand1_and_operand2_range): Same. | |
5479 | (gori_calc_operands): Same. | |
5480 | (gori_name_helper): Same. | |
5481 | * gimple-range-infer.cc (gimple_infer_range::check_assume_func): Same. | |
5482 | (gimple_infer_range::gimple_infer_range): Same. | |
5483 | (infer_range_manager::maybe_adjust_range): Same. | |
5484 | (infer_range_manager::add_range): Same. | |
5485 | * gimple-range-infer.h: Same. | |
5486 | * gimple-range-op.cc | |
5487 | (gimple_range_op_handler::gimple_range_op_handler): Same. | |
5488 | (gimple_range_op_handler::calc_op1): Same. | |
5489 | (gimple_range_op_handler::calc_op2): Same. | |
5490 | (gimple_range_op_handler::maybe_builtin_call): Same. | |
5491 | * gimple-range-path.cc (path_range_query::internal_range_of_expr): Same. | |
5492 | (path_range_query::ssa_range_in_phi): Same. | |
5493 | (path_range_query::compute_ranges_in_phis): Same. | |
5494 | (path_range_query::compute_ranges_in_block): Same. | |
5495 | (path_range_query::add_to_exit_dependencies): Same. | |
5496 | * gimple-range-trace.cc (debug_seed_ranger): Same. | |
5497 | * gimple-range.cc (gimple_ranger::range_of_expr): Same. | |
5498 | (gimple_ranger::range_on_entry): Same. | |
5499 | (gimple_ranger::range_on_edge): Same. | |
5500 | (gimple_ranger::range_of_stmt): Same. | |
5501 | (gimple_ranger::prefill_stmt_dependencies): Same. | |
5502 | (gimple_ranger::register_inferred_ranges): Same. | |
5503 | (gimple_ranger::register_transitive_inferred_ranges): Same. | |
5504 | (gimple_ranger::export_global_ranges): Same. | |
5505 | (gimple_ranger::dump_bb): Same. | |
5506 | (assume_query::calculate_op): Same. | |
5507 | (assume_query::calculate_phi): Same. | |
5508 | (assume_query::dump): Same. | |
5509 | (dom_ranger::range_of_stmt): Same. | |
5510 | * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Same. | |
5511 | (ipa_vr_operation_and_type_effects): Same. | |
5512 | (ipa_value_range_from_jfunc): Same. | |
5513 | (propagate_bits_across_jump_function): Same. | |
5514 | (propagate_vr_across_jump_function): Same. | |
5515 | (ipcp_store_vr_results): Same. | |
5516 | * ipa-cp.h: Same. | |
5517 | * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same. | |
5518 | (evaluate_properties_for_edge): Same. | |
5519 | * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same. | |
5520 | (ipa_vr::get_vrange): Same. | |
5521 | (ipa_vr::streamer_read): Same. | |
5522 | (ipa_vr::streamer_write): Same. | |
5523 | (ipa_vr::dump): Same. | |
5524 | (ipa_set_jfunc_vr): Same. | |
5525 | (ipa_compute_jump_functions_for_edge): Same. | |
5526 | (ipcp_get_parm_bits): Same. | |
5527 | (ipcp_update_vr): Same. | |
5528 | (ipa_record_return_value_range): Same. | |
5529 | (ipa_return_value_range): Same. | |
5530 | * ipa-prop.h (ipa_return_value_range): Same. | |
5531 | (ipa_record_return_value_range): Same. | |
5532 | * range-op.h (range_cast): Same. | |
5533 | * tree-ssa-dom.cc | |
5534 | (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same. | |
5535 | (cprop_operand): Same. | |
5536 | * tree-ssa-loop-ch.cc (loop_static_stmt_p): Same. | |
5537 | * tree-ssa-loop-niter.cc (record_nonwrapping_iv): Same. | |
5538 | * tree-ssa-loop-split.cc (split_at_bb_p): Same. | |
5539 | * tree-ssa-phiopt.cc (value_replacement): Same. | |
5540 | * tree-ssa-strlen.cc (get_range): Same. | |
5541 | * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same. | |
5542 | (hybrid_jt_simplifier::compute_exit_dependencies): Same. | |
5543 | * tree-ssanames.cc (set_range_info): Same. | |
5544 | (duplicate_ssa_name_range_info): Same. | |
5545 | * tree-vrp.cc (remove_unreachable::handle_early): Same. | |
5546 | (remove_unreachable::remove_and_update_globals): Same. | |
5547 | (execute_ranger_vrp): Same. | |
5548 | * value-query.cc (range_query::value_of_expr): Same. | |
5549 | (range_query::value_on_edge): Same. | |
5550 | (range_query::value_of_stmt): Same. | |
5551 | (range_query::value_on_entry): Same. | |
5552 | (range_query::value_on_exit): Same. | |
5553 | (range_query::get_tree_range): Same. | |
5554 | * value-range-storage.cc (vrange_storage::set_vrange): Same. | |
5555 | * value-range.cc (Value_Range::dump): Same. | |
5556 | (value_range::dump): Same. | |
5557 | (debug): Same. | |
5558 | * value-range.h (enum value_range_discriminator): Same. | |
5559 | (class vrange): Same. | |
5560 | (class Value_Range): Same. | |
5561 | (class value_range): Same. | |
5562 | (Value_Range::Value_Range): Same. | |
5563 | (value_range::value_range): Same. | |
5564 | (Value_Range::~Value_Range): Same. | |
5565 | (value_range::~value_range): Same. | |
5566 | (Value_Range::set_type): Same. | |
5567 | (value_range::set_type): Same. | |
5568 | (Value_Range::init): Same. | |
5569 | (value_range::init): Same. | |
5570 | (Value_Range::operator=): Same. | |
5571 | (value_range::operator=): Same. | |
5572 | (Value_Range::operator==): Same. | |
5573 | (value_range::operator==): Same. | |
5574 | (Value_Range::operator!=): Same. | |
5575 | (value_range::operator!=): Same. | |
5576 | (Value_Range::supports_type_p): Same. | |
5577 | (value_range::supports_type_p): Same. | |
5578 | * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Same. | |
5579 | (simplify_using_ranges::legacy_fold_cond): Same. | |
5580 | ||
5581 | 2024-06-17 Hu, Lin1 <lin1.hu@intel.com> | |
5582 | ||
5583 | PR target/115161 | |
5584 | * config/i386/i386-builtin.def: Change CODE_FOR_* for cvtt*'s builtins. | |
5585 | * config/i386/sse.md: | |
5586 | (unspec_avx512fp16_fix<vcvtt_uns_suffix> | |
5587 | _trunc<mode>2<mask_name><round_saeonly_name>): | |
5588 | Use UNSPEC instead of FIX/UNSIGNED_FIX. | |
5589 | (unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>): | |
5590 | Ditto. | |
5591 | (unspec_avx512fp16_fix<vcvtt_uns_suffix>_truncv2di2<mask_name>): Ditto. | |
5592 | (unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<round_saeonly_name>): | |
5593 | Ditto. | |
5594 | (unspec_sse_cvttps2pi): Ditto. | |
5595 | (unspec_sse_cvttss2si<rex64namesuffix><round_saeonly_name>): Ditto. | |
5596 | (unspec_fix<vcvtt_uns_suffix>_truncv16sfv16si2<mask_name><round_saeonly_name>): | |
5597 | Ditto. | |
5598 | (unspec_fix_truncv8sfv8si2<mask_name>): Ditto. | |
5599 | (unspec_fix_truncv4sfv4si2<mask_name>): Ditto. | |
5600 | (unspec_sse2_cvttpd2pi): Ditto. | |
5601 | (unspec_fixuns_truncv2dfv2si2): Ditto. | |
5602 | (unspec_avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>): | |
5603 | Ditto. | |
5604 | (unspec_avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>): | |
5605 | Ditto. | |
5606 | (unspec_sse2_cvttsd2si<rex64namesuffix><round_saeonly_name>): Ditto. | |
5607 | (unspec_fix<vcvtt_uns_suffix>_truncv8dfv8si2<mask_name><round_saeonly_name>): | |
5608 | Ditto. | |
5609 | (*unspec_fixuns_truncv2dfv2si2): Ditto. | |
5610 | (unspec_fixuns_truncv2dfv2si2_mask): Ditto. | |
5611 | (unspec_fix_truncv4dfv4si2<mask_name>): Ditto. | |
5612 | (unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto. | |
5613 | (unspec_fix<vcvtt_uns_suffix> | |
5614 | _trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): | |
5615 | Ditto. | |
5616 | (unspec_fix<vcvtt_uns_suffix> | |
5617 | _trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): | |
5618 | Ditto. | |
5619 | (unspec_avx512dq_fix<vcvtt_uns_suffix>_truncv2sfv2di2<mask_name>): | |
5620 | Ditto. | |
5621 | (<mask_codefor>unspec_fixuns_trunc<mode><sseintvecmodelower>2<mask_name>): | |
5622 | Ditto. | |
5623 | (unspec_sse2_cvttpd2dq<mask_name>): Ditto. | |
5624 | ||
5625 | 2024-06-17 Levy Hsu <admin@levyhsu.com> | |
5626 | ||
5627 | * config/i386/i386-expand.cc | |
5628 | (ix86_vectorize_vec_perm_const): Convert BF to HI using subreg. | |
5629 | * config/i386/predicates.md | |
5630 | (vcvtne2ps2bf_parallel): New define_insn_and_split. | |
5631 | * config/i386/sse.md | |
5632 | (vpermt2_sepcial_bf16_shuffle_<mode>): New predicates matches odd increasing perm. | |
5633 | ||
5634 | 2024-06-17 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
5635 | ||
5636 | * config/s390/vector.md (*vmrhf_half<mode>): New. | |
5637 | (extendv2sfv2df2): New. | |
5638 | ||
5639 | 2024-06-17 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
5640 | ||
5641 | PR target/115261 | |
5642 | * config/s390/s390.md (any_extend,extend_insn,zero_extend): | |
5643 | New code attributes and code iterator. | |
5644 | * config/s390/vector.md (V_EXTEND): New mode iterator. | |
5645 | (<extend_insn><V_EXTEND:mode><vec_2x_wide>2): New insn. | |
5646 | ||
5647 | 2024-06-16 Andrew Pinski <quic_apinski@quicinc.com> | |
5648 | ||
5649 | PR target/100211 | |
5650 | * config/aarch64/aarch64.h (machine_function): Fix the size | |
5651 | of reg_is_wrapped_separately. | |
5652 | ||
5653 | 2024-06-16 Jeff Law <jlaw@ventanamicro.com> | |
5654 | ||
5655 | * config/riscv/bitmanip.md ((1 << N) | C): New splitter for IOR/XOR | |
5656 | of a single bit an a DImode object. | |
5657 | ||
5658 | 2024-06-16 Jeff Law <jlaw@ventanamicro.com> | |
5659 | ||
5660 | * config/sh/sh.md (neg_zero_extract_4b): New pattern. | |
5661 | ||
5662 | 2024-06-16 Peter Damianov <peter0x44@disroot.org> | |
5663 | ||
5664 | * pretty-print.cc (mingw_ansi_fputs): Don't translate escape sequences if | |
5665 | the console has ENABLE_VIRTUAL_TERMINAL_PROCESSING. | |
5666 | ||
5667 | 2024-06-16 Peter Damianov <peter0x44@disroot.org> | |
5668 | ||
5669 | * diagnostic-color.cc (auto_enable_urls): Don't hardcode to return | |
5670 | false on mingw hosts. | |
5671 | (auto_enable_urls): Return true if console | |
5672 | supports ansi escape sequences. | |
5673 | ||
5674 | 2024-06-16 Peter Damianov <peter0x44@disroot.org> | |
5675 | ||
5676 | * diagnostic-color.cc (should_colorize): Enable processing of VT100 | |
5677 | escape sequences on windows consoles | |
5678 | ||
5679 | 2024-06-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
5680 | ||
5681 | * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): | |
5682 | Fix allocation size of buffer. | |
5683 | (riscv_process_one_target_attr): Likewise. | |
5684 | (riscv_process_target_attr): Likewise. | |
5685 | ||
5686 | 2024-06-15 Gerald Pfeifer <gerald@pfeifer.com> | |
5687 | ||
5688 | PR target/69374 | |
5689 | * doc/install.texi (Specific): Remove pointer to old versions | |
5690 | of binutils. | |
5691 | ||
5692 | 2024-06-14 Andrew MacLeod <amacleod@redhat.com> | |
5693 | ||
5694 | * gimple-range-gori.cc (gori_calc_operands): Do not continue nor | |
5695 | add the range when VARYING is produced for an operand. | |
5696 | ||
5697 | 2024-06-14 Andrew MacLeod <amacleod@redhat.com> | |
5698 | ||
5699 | * gimple-range-cache.cc (ssa_lazy_cache::merge): New. | |
5700 | * gimple-range-cache.h (ssa_lazy_cache::merge): New prototype. | |
5701 | ||
5702 | 2024-06-14 Andrew MacLeod <amacleod@redhat.com> | |
5703 | ||
5704 | * gimple-range-fold.cc (fold_using_range::range_of_call): Ensure | |
5705 | LHS is an SSA_NAME before invoking gimple_range_global. | |
5706 | ||
5707 | 2024-06-14 Pan Li <pan2.li@intel.com> | |
5708 | ||
5709 | * match.pd: Add more match for unsigned sat_sub. | |
5710 | * tree-ssa-math-opts.cc (match_unsigned_saturation_sub): Add new | |
5711 | func impl to match phi node for .SAT_SUB. | |
5712 | (math_opts_dom_walker::after_dom_children): Try match .SAT_SUB | |
5713 | for the phi node, MULT_EXPR, BIT_XOR_EXPR and BIT_AND_EXPR. | |
5714 | ||
5715 | 2024-06-14 Jan Beulich <jbeulich@suse.com> | |
5716 | ||
5717 | * configure.ac: Drop ${objdir}/ from NM and AR. Move setting of | |
5718 | ld_ver out of conditional. | |
5719 | * configure: Re-generate. | |
5720 | ||
5721 | 2024-06-14 Richard Biener <rguenther@suse.de> | |
5722 | ||
5723 | * tree-vect-loop.cc (vectorizable_reduction): Allow | |
5724 | single-def-use cycles with SLP. | |
5725 | (vect_transform_reduction): Handle SLP single def-use cycles. | |
5726 | (vect_transform_cycle_phi): Likewise. | |
5727 | ||
5728 | 2024-06-14 Gerald Pfeifer <gerald@pfeifer.com> | |
5729 | ||
5730 | * doc/invoke.texi (x86 Options): Consolidate duplicate MOVBE | |
5731 | listings for haswell, broadwell, skylake, skylake-avx512, | |
5732 | cannonlake, icelake-client, icelake-server, cascadelake, | |
5733 | cooperlake, tigerlake, sapphirerapids, rocketlake, graniterapids, | |
5734 | and graniterapids-d options to -march. | |
5735 | ||
5736 | 2024-06-14 Pan Li <pan2.li@intel.com> | |
5737 | ||
5738 | PR target/115456 | |
5739 | * config/riscv/vector-iterators.md: Leverage V_ZVFH instead of V | |
5740 | which contains the VF_ZVFHMIN for alignment. | |
5741 | ||
5742 | 2024-06-14 Gerald Pfeifer <gerald@pfeifer.com> | |
5743 | ||
5744 | PR target/69374 | |
5745 | * doc/install.texi (Specific): Remove stale reference to Interix. | |
5746 | ||
5747 | 2024-06-14 Richard Biener <rguenther@suse.de> | |
5748 | ||
5749 | * tree-vect-stmts.cc (get_group_load_store_type): Do not | |
5750 | re-use poly-int remain but re-compute with non-poly values. | |
5751 | Verify the shortened load is good enough to be covered with | |
5752 | a single scalar gap iteration before accepting it. | |
5753 | ||
5754 | 2024-06-14 liuhongt <hongtao.liu@intel.com> | |
5755 | ||
5756 | * config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for | |
5757 | pternlog_operand under AVX512, also adjust VEC_DUPLICATE | |
5758 | according since vec_dup:mem can't be that cheap. | |
5759 | ||
5760 | 2024-06-14 liuhongt <hongtao.liu@intel.com> | |
5761 | ||
5762 | * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Remove | |
5763 | latest Intel processors. | |
5764 | Co-authored by: Lingling Kong <lingling.kong@intel.com> | |
5765 | ||
5766 | 2024-06-14 Roger Sayle <roger@nextmovesoftware.com> | |
5767 | ||
5768 | * config/i386/i386-expand.cc (ix86_expand_ternlog): Try performing | |
5769 | logic operation in a different vector mode if that enables use of | |
5770 | a 32-bit or 64-bit broadcast addressing mode. | |
5771 | ||
5772 | 2024-06-14 Andrew Pinski <quic_apinski@quicinc.com> | |
5773 | ||
5774 | PR middle-end/113212 | |
5775 | * expr.h (const_seqpops): New typedef. | |
5776 | (expand_expr_real_2): Constify the first argument. | |
5777 | * optabs.cc (expand_widen_pattern_expr): Likewise. | |
5778 | * optabs.h (expand_widen_pattern_expr): Likewise. | |
5779 | * expr.cc (expand_expr_real_2): Likewise | |
5780 | (do_store_flag): Likewise. Remove incorrect store to ops->code. | |
5781 | ||
5782 | 2024-06-13 Patrick O'Neill <patrick@rivosinc.com> | |
5783 | ||
5784 | * config/riscv/sync-rvwmo.md: Add support for subword fenced | |
5785 | loads/stores. | |
5786 | * config/riscv/sync-ztso.md: Ditto. | |
5787 | * config/riscv/sync.md: Ditto. | |
5788 | ||
5789 | 2024-06-13 Gerald Pfeifer <gerald@pfeifer.com> | |
5790 | ||
5791 | * doc/extend.texi (AArch64 Function Attributes): Add | |
5792 | (AVR Variable Attributes): Ditto. | |
5793 | (Common Type Attributes): Ditto. | |
5794 | ||
5795 | 2024-06-13 Hongyu Wang <hongyu.wang@intel.com> | |
5796 | ||
5797 | PR target/115370 | |
5798 | PR target/115463 | |
5799 | * target.def (have_ccmp): New target hook. | |
5800 | * targhooks.cc (default_have_ccmp): New function. | |
5801 | * targhooks.h (default_have_ccmp): New prototype. | |
5802 | * doc/tm.texi.in: Add TARGET_HAVE_CCMP. | |
5803 | * doc/tm.texi: Regenerate. | |
5804 | * cfgexpand.cc (expand_gimple_cond): Call targetm.have_ccmp | |
5805 | instead of checking if targetm.gen_ccmp_first exists. | |
5806 | * expr.cc (expand_expr_real_gassign): Likewise. | |
5807 | * config/i386/i386.cc (ix86_have_ccmp): New target hook to | |
5808 | check if APX_CCMP enabled. | |
5809 | (TARGET_HAVE_CCMP): Define. | |
5810 | ||
5811 | 2024-06-13 Richard Sandiford <richard.sandiford@arm.com> | |
5812 | ||
5813 | PR target/115464 | |
5814 | * simplify-rtx.cc (simplify_context::simplify_subreg): Don't try | |
5815 | to fold two subregs together if their relationship isn't known | |
5816 | at compile time. | |
5817 | * explow.h (force_subreg): Declare. | |
5818 | * explow.cc (force_subreg): New function. | |
5819 | * config/aarch64/aarch64-sve-builtins-base.cc | |
5820 | (svset_neonq_impl::expand): Use it instead of simplify_gen_subreg. | |
5821 | ||
5822 | 2024-06-13 Pan Li <pan2.li@intel.com> | |
5823 | ||
5824 | PR target/115456 | |
5825 | * config/riscv/autovec.md: Take ZVFH mode iterator instead of | |
5826 | the ZVFHMIN for the alignment. | |
5827 | * config/riscv/vector-iterators.md: Add 2 new iterator | |
5828 | V_VLS_ZVFH and VLS_ZVFH. | |
5829 | ||
5830 | 2024-06-13 Hongyu Wang <hongyu.wang@intel.com> | |
5831 | ||
5832 | * config/i386/i386.md (@ccmp<mode>): Add new alternative | |
5833 | <r>,C and adjust output templates. Also adjust UNSPEC mode | |
5834 | to CCmode. | |
5835 | ||
5836 | 2024-06-13 Gerald Pfeifer <gerald@pfeifer.com> | |
5837 | ||
5838 | PR other/69374 | |
5839 | * doc/install.texi (Prerequisites): Simplify note on the C++ | |
5840 | compiler required. Drop requirements for versions of GCC prior | |
5841 | to 3.4. Fix grammar. | |
5842 | ||
5843 | 2024-06-13 Richard Biener <rguenther@suse.de> | |
5844 | ||
5845 | * tree-vect-stmts.cc (get_group_load_store_type): Consistently | |
5846 | use VMAT_STRIDED_SLP for strided SLP accesses and not | |
5847 | VMAT_ELEMENTWISE. | |
5848 | (vectorizable_store): Adjust VMAT_STRIDED_SLP handling to | |
5849 | allow not only half-size but also smaller accesses. | |
5850 | (vectorizable_load): Likewise. | |
5851 | ||
5852 | 2024-06-13 Richard Biener <rguenther@suse.de> | |
5853 | ||
5854 | PR tree-optimization/115385 | |
5855 | * tree-vect-stmts.cc (get_group_load_store_type): Peeling | |
5856 | of a single scalar iteration is sufficient if we can narrow | |
5857 | the access to the next power of two of the bits in the last | |
5858 | access. | |
5859 | (vectorizable_load): Ensure that the last access is narrowed. | |
5860 | ||
5861 | 2024-06-13 Richard Biener <rguenther@suse.de> | |
5862 | ||
5863 | PR tree-optimization/114107 | |
5864 | PR tree-optimization/110445 | |
5865 | * tree-vect-stmts.cc (get_group_load_store_type): Refactor | |
5866 | contiguous access case. Make sure peeling for gap constraints | |
5867 | are always tested and consistently relax when we know we can | |
5868 | avoid touching excess elements during code generation. But | |
5869 | rewrite the check poly-int aware. | |
5870 | ||
5871 | 2024-06-13 Andi Kleen <ak@linux.intel.com> | |
5872 | ||
5873 | * doc/extend.texi: Use std::string_view in asm constexpr | |
5874 | example. | |
5875 | ||
5876 | 2024-06-13 liuhongt <hongtao.liu@intel.com> | |
5877 | ||
5878 | PR target/115452 | |
5879 | * config/i386/i386-features.cc (scalar_chain::convert_op): Use | |
5880 | reg_or_subregno instead of REGNO to avoid ICE. | |
5881 | ||
5882 | 2024-06-13 YunQiang Su <syq@gcc.gnu.org> | |
5883 | ||
5884 | * config/mips/mips-cpus.def: Use PROCESSOR_24KF1_1 for mips32; | |
5885 | Use PROCESSOR_5KF for mips64/mips64r2/mips64r3/mips64r5. | |
5886 | ||
5887 | 2024-06-13 YunQiang Su <syq@gcc.gnu.org> | |
5888 | ||
5889 | * config/mips/mips-modes.def: New CC_MODE CCE. | |
5890 | * config/mips/mips-protos.h(mips_output_compare): New function. | |
5891 | * config/mips/mips.cc(mips_allocate_fcc): Set CCEmode count=1. | |
5892 | (mips_emit_compare): Use CCEmode for LTGT/LT/LE for pre-R6. | |
5893 | (mips_output_compare): New function. Convert lt/le to slt/sle | |
5894 | for R6; convert ueq to ngl for CCEmode. | |
5895 | (mips_hard_regno_mode_ok_uncached): Mention CCEmode. | |
5896 | * config/mips/mips.h: Mention CCEmode for LOAD_EXTEND_OP. | |
5897 | * config/mips/mips.md(FPCC): Add CCE. | |
5898 | (define_mode_iterator MOVECC): Mention CCE. | |
5899 | (define_mode_attr reg): Add CCE with "z". | |
5900 | (define_mode_attr fpcmp): Add CCE with "c". | |
5901 | (define_code_attr fcond): ltgt should use sne instead of ne. | |
5902 | (s<code>_<SCALARF:mode>_using_<FPCC:mode>): call mips_output_compare. | |
5903 | ||
5904 | 2024-06-13 Lingling Kong <lingling.kong@intel.com> | |
5905 | ||
5906 | * config/i386/i386-opts.h (enum apx_features): Add apx_zu. | |
5907 | * config/i386/i386.h (TARGET_APX_ZU): Define. | |
5908 | * config/i386/i386.md (*imulhi<mode>zu): New define_insn. | |
5909 | (*setcc_<mode>_zu): Ditto. | |
5910 | * config/i386/i386.opt: Add enum value for zu. | |
5911 | ||
5912 | 2024-06-12 David Malcolm <dmalcolm@redhat.com> | |
5913 | ||
5914 | PR bootstrap/115465 | |
5915 | * config/aarch64/aarch64-early-ra.cc (early_ra::process_block): | |
5916 | Update for fields of pretty_printer becoming private in | |
5917 | r15-1209-gc5e3be456888aa. | |
5918 | ||
5919 | 2024-06-12 Andrew Pinski <quic_apinski@quicinc.com> | |
5920 | ||
5921 | PR target/115176 | |
5922 | * config/aarch64/aarch64-simd.md (aarch64_rbit<mode><vczle><vczbe>): Use | |
5923 | bitreverse instead of unspec. | |
5924 | * config/aarch64/aarch64-sve-builtins-base.cc (svrbit): Convert over to using | |
5925 | rtx_code_function instead of unspec_based_function. | |
5926 | * config/aarch64/aarch64-sve.md: Update comment where RBIT is included. | |
5927 | * config/aarch64/aarch64.cc (aarch64_rtx_costs): Handle BITREVERSE like BSWAP. | |
5928 | Remove UNSPEC_RBIT support. | |
5929 | * config/aarch64/aarch64.md (unspec): Remove UNSPEC_RBIT. | |
5930 | (aarch64_rbit<mode>): Use bitreverse instead of unspec. | |
5931 | * config/aarch64/iterators.md (SVE_INT_UNARY): Add bitreverse. | |
5932 | (optab): Likewise. | |
5933 | (sve_int_op): Likewise. | |
5934 | (SVE_INT_UNARY): Remove UNSPEC_RBIT. | |
5935 | (optab): Likewise. | |
5936 | (sve_int_op): Likewise. | |
5937 | (min_elem_bits): Likewise. | |
5938 | ||
5939 | 2024-06-12 Andrew Pinski <quic_apinski@quicinc.com> | |
5940 | ||
5941 | PR tree-optimization/115449 | |
5942 | * gimple-match-head.cc (gimple_maybe_truncate): New declaration. | |
5943 | (gimple_bitwise_equal_p): Match truncations that differ only | |
5944 | in types with the same precision. | |
5945 | (gimple_bitwise_inverted_equal_p): For matching after bit_not_with_nop | |
5946 | call gimple_bitwise_equal_p. | |
5947 | * match.pd (maybe_truncate): New match pattern. | |
5948 | ||
5949 | 2024-06-12 Victor Do Nascimento <victor.donascimento@arm.com> | |
5950 | ||
5951 | PR tree-optimization/114061 | |
5952 | * tree-data-ref.cc (get_references_in_stmt): set | |
5953 | `clobbers_memory' to false for __builtin_prefetch. | |
5954 | * tree-vect-loop.cc (vect_transform_loop): Drop all | |
5955 | __builtin_prefetch calls from loops. | |
5956 | ||
5957 | 2024-06-12 David Malcolm <dmalcolm@redhat.com> | |
5958 | ||
5959 | * dumpfile.cc (dump_pretty_printer::emit_items): Update for | |
5960 | changes to chunk_info. | |
5961 | * pretty-print.cc (chunk_info::append_formatted_chunk): New, based | |
5962 | on code in cp/error.cc's append_formatted_chunk. | |
5963 | (chunk_info::pop_from_output_buffer): New, based on code in | |
5964 | pp_output_formatted_text and dump_pretty_printer::emit_items. | |
5965 | (on_begin_quote): Convert to... | |
5966 | (chunk_info::on_begin_quote): ...this. | |
5967 | (on_end_quote): Convert to... | |
5968 | (chunk_info::on_end_quote): ...this. | |
5969 | (pretty_printer::format): Update for chunk_info becoming a class | |
5970 | and its fields gaining "m_" prefixes. Update for on_begin_quote | |
5971 | and on_end_quote moving to chunk_info. | |
5972 | (quoting_info::handle_phase_3): Update for changes to chunk_info. | |
5973 | (pp_output_formatted_text): Likewise. Move cleanup code to | |
5974 | chunk_info::pop_from_output_buffer. | |
5975 | * pretty-print.h (class output_buffer): New forward decl. | |
5976 | (class urlifier): New forward decl. | |
5977 | (struct chunk_info): Convert to... | |
5978 | (class chunk_info): ...this. Add friend class pretty_printer. | |
5979 | (chunk_info::get_args): New accessor. | |
5980 | (chunk_info::get_quoting_info): New accessor. | |
5981 | (chunk_info::append_formatted_chunk): New decl. | |
5982 | (chunk_info::pop_from_output_buffer): New decl. | |
5983 | (chunk_info::on_begin_quote): New decl. | |
5984 | (chunk_info::on_end_quote): New decl. | |
5985 | (chunk_info::prev): Rename to... | |
5986 | (chunk_info::m_prev): ...this. | |
5987 | (chunk_info::args): Rename to... | |
5988 | (chunk_info::m_args): ...this. | |
5989 | (output_buffer::cur_chunk_array): Drop "struct" from decl. | |
5990 | ||
5991 | 2024-06-12 David Malcolm <dmalcolm@redhat.com> | |
5992 | ||
5993 | * diagnostic.cc (diagnostic_context::urls_init): Update for fields | |
5994 | of pretty_printer becoming private. | |
5995 | (diagnostic_context::print_any_cwe): Likewise. | |
5996 | (diagnostic_context::print_any_rules): Likewise. | |
5997 | (diagnostic_context::print_option_information): Likewise. | |
5998 | * diagnostic.h (diagnostic_format_decoder): Likewise. | |
5999 | (diagnostic_prefixing_rule): Likewise, fixing typo. | |
6000 | * digraph.cc (test_dump_to_dot): Likewise. | |
6001 | * digraph.h (digraph<GraphTraits>::dump_dot_to_file): Likewise. | |
6002 | * dumpfile.cc | |
6003 | (dump_pretty_printer::emit_any_pending_textual_chunks): Likewise. | |
6004 | * gimple-pretty-print.cc (print_gimple_stmt): Likewise. | |
6005 | (print_gimple_expr): Likewise. | |
6006 | (print_gimple_seq): Likewise. | |
6007 | (dump_ssaname_info_to_file): Likewise. | |
6008 | (gimple_dump_bb): Likewise. | |
6009 | * graph.cc (print_graph_cfg): Likewise. | |
6010 | (start_graph_dump): Likewise. | |
6011 | * langhooks.cc (lhd_print_error_function): Likewise. | |
6012 | * lto-wrapper.cc (print_lto_docs_link): Likewise. | |
6013 | * pretty-print.cc (pp_set_real_maximum_length): Convert to... | |
6014 | (pretty_printer::set_real_maximum_length): ...this. | |
6015 | (pp_clear_state): Convert to... | |
6016 | (pretty_printer::clear_state): ...this. | |
6017 | (pp_wrap_text): Update for pp_remaining_character_count_for_line | |
6018 | becoming a member function. | |
6019 | (urlify_quoted_string): Update for fields of pretty_printer becoming | |
6020 | private. | |
6021 | (pp_format): Convert to... | |
6022 | (pretty_printer::format): ...this. Reduce the scope of local | |
6023 | variables "old_line_length" and "old_wrapping_mode" and make | |
6024 | const. Reduce the scope of locals "args", "new_chunk_array", | |
6025 | "curarg", "any_unnumbered", and "any_numbered". | |
6026 | (pp_output_formatted_text): Update for fields of pretty_printer | |
6027 | becoming private. | |
6028 | (pp_flush): Likewise. | |
6029 | (pp_really_flush): Likewise. | |
6030 | (pp_set_line_maximum_length): Likewise. | |
6031 | (pp_set_prefix): Convert to... | |
6032 | (pretty_printer::set_prefix): ...this. | |
6033 | (pp_take_prefix): Update for fields of pretty_printer gaining | |
6034 | "m_" prefixes. | |
6035 | (pp_destroy_prefix): Likewise. | |
6036 | (pp_emit_prefix): Convert to... | |
6037 | (pretty_printer::emit_prefix): ...this. | |
6038 | (pretty_printer::pretty_printer): Update both ctors for fields | |
6039 | gaining "m_" prefixes. | |
6040 | (pretty_printer::~pretty_printer): Likewise for dtor. | |
6041 | (pp_append_text): Update for pp_emit_prefix becoming | |
6042 | pretty_printer::emit_prefix. | |
6043 | (pp_remaining_character_count_for_line): Convert to... | |
6044 | (pretty_printer::remaining_character_count_for_line): ...this. | |
6045 | (pp_character): Update for above change. | |
6046 | (pp_maybe_space): Convert to... | |
6047 | (pretty_printer::maybe_space): ...this. | |
6048 | (pp_begin_url): Convert to... | |
6049 | (pretty_printer::begin_url): ...this. | |
6050 | (get_end_url_string): Update for fields of pretty_printer | |
6051 | becoming private. | |
6052 | (pp_end_url): Convert to... | |
6053 | (pretty_printer::end_url): ...this. | |
6054 | (selftest::test_pretty_printer::test_pretty_printer): Update for | |
6055 | fields of pretty_printer becoming private. | |
6056 | (selftest::test_urls): Likewise. | |
6057 | (selftest::test_null_urls): Likewise. | |
6058 | (selftest::test_urlification): Likewise. | |
6059 | * pretty-print.h (pp_line_cutoff): Convert from macro to inline | |
6060 | function. | |
6061 | (pp_prefixing_rule): Likewise. | |
6062 | (pp_wrapping_mode): Likewise. | |
6063 | (pp_format_decoder): Likewise. | |
6064 | (pp_needs_newline): Likewise. | |
6065 | (pp_indentation): Likewise. | |
6066 | (pp_translate_identifiers): Likewise. | |
6067 | (pp_show_color): Likewise. | |
6068 | (pp_buffer): Likewise. | |
6069 | (pp_get_prefix): Add forward decl to allow friend decl. | |
6070 | (pp_take_prefix): Likewise. | |
6071 | (pp_destroy_prefix): Likewise. | |
6072 | (class pretty_printer): Fix typo in leading comment. Add | |
6073 | "friend" decls for the various new accessor functions that were | |
6074 | formerly macros and for pp_get_prefix, pp_take_prefix, and | |
6075 | pp_destroy_prefix. Make all fields private. | |
6076 | (pretty_printer::set_output_stream): New. | |
6077 | (pretty_printer::set_prefix): New decl. | |
6078 | (pretty_printer::emit_prefix): New decl. | |
6079 | (pretty_printer::format): New decl. | |
6080 | (pretty_printer::maybe_space): New decl. | |
6081 | (pretty_printer::supports_urls_p): New. | |
6082 | (pretty_printer::get_url_format): New. | |
6083 | (pretty_printer::set_url_format): New. | |
6084 | (pretty_printer::begin_url): New decl. | |
6085 | (pretty_printer::end_url): New decl. | |
6086 | (pretty_printer::set_verbatim_wrapping): New. | |
6087 | (pretty_printer::set_padding): New. | |
6088 | (pretty_printer::get_padding): New. | |
6089 | (pretty_printer::clear_state): New decl. | |
6090 | (pretty_printer::set_real_maximum_length): New decl. | |
6091 | (pretty_printer::remaining_character_count_for_line): New decl. | |
6092 | (pretty_printer::buffer): Rename to... | |
6093 | (pretty_printer::m_buffer): ...this. | |
6094 | (pretty_printer::prefix): Rename to... | |
6095 | (pretty_printer::m_prefix): ...this; | |
6096 | (pretty_printer::padding): Rename to... | |
6097 | (pretty_printer::m_padding): ...this; | |
6098 | (pretty_printer::maximum_length): Rename to... | |
6099 | (pretty_printer::m_maximum_length): ...this; | |
6100 | (pretty_printer::indent_skip): Rename to... | |
6101 | (pretty_printer::m_indent_skip): ...this; | |
6102 | (pretty_printer::wrapping): Rename to... | |
6103 | (pretty_printer::m_wrapping): ...this; | |
6104 | (pretty_printer::format_decoder): Rename to... | |
6105 | (pretty_printer::m_format_decoder): ...this; | |
6106 | (pretty_printer::emitted_prefix): Rename to... | |
6107 | (pretty_printer::m_emitted_prefix): ...this; | |
6108 | (pretty_printer::need_newline): Rename to... | |
6109 | (pretty_printer::m_need_newline): ...this; | |
6110 | (pretty_printer::translate_identifiers): Rename to... | |
6111 | (pretty_printer::m_translate_identifiers): ...this; | |
6112 | (pretty_printer::show_color): Rename to... | |
6113 | (pretty_printer::m_show_color): ...this; | |
6114 | (pretty_printer::url_format): Rename to... | |
6115 | (pretty_printer::m_url_format): ...this; | |
6116 | (pp_get_prefix): Reformat. | |
6117 | (pp_format_postprocessor): New inline function. | |
6118 | (pp_take_prefix): Move decl to before class pretty_printer. | |
6119 | (pp_destroy_prefix): Likewise. | |
6120 | (pp_set_prefix): Convert to inline function. | |
6121 | (pp_emit_prefix): Convert to inline function. | |
6122 | (pp_format): Convert to inline function. | |
6123 | (pp_maybe_space): Convert to inline function. | |
6124 | (pp_begin_url): Convert to inline function. | |
6125 | (pp_end_url): Convert to inline function. | |
6126 | (pp_set_verbatim_wrapping): Convert from macro to inline | |
6127 | function, renaming... | |
6128 | (pp_set_verbatim_wrapping_): ...this. | |
6129 | * print-rtl.cc (dump_value_slim): Update for fields of | |
6130 | pretty_printer becoming private. | |
6131 | (dump_insn_slim): Likewise. | |
6132 | (dump_rtl_slim): Likewise. | |
6133 | * print-tree.cc (print_node): Likewise. | |
6134 | * sched-rgn.cc (dump_rgn_dependencies_dot): Likewise. | |
6135 | * text-art/canvas.cc (canvas::print_to_pp): Likewise. | |
6136 | (canvas::debug): Likewise. | |
6137 | (selftest::test_canvas_urls): Likewise. | |
6138 | * text-art/dump.h (dump_to_file): Likewise. | |
6139 | * text-art/selftests.cc (selftest::assert_canvas_streq): Likewise. | |
6140 | * text-art/style.cc (style::print_changes): Likewise. | |
6141 | * text-art/styled-string.cc (styled_string::from_fmt_va): | |
6142 | Likewise. | |
6143 | * tree-diagnostic-path.cc (control_flow_tests): Update for | |
6144 | pp_show_color becoming an inline function. | |
6145 | * tree-loop-distribution.cc (dot_rdg_1): Update for fields of | |
6146 | pretty_printer becoming private. | |
6147 | * tree-pretty-print.cc (maybe_init_pretty_print): Likewise. | |
6148 | * value-range.cc (vrange::dump): Likewise. | |
6149 | (irange_bitmask::dump): Likewise. | |
6150 | ||
6151 | 2024-06-12 David Malcolm <dmalcolm@redhat.com> | |
6152 | ||
6153 | * gimple-pretty-print.cc: Rename pretty_printer "buffer" to "pp" | |
6154 | throughout. | |
6155 | * print-tree.cc (print_node): Likewise. | |
6156 | * tree-loop-distribution.cc (dot_rdg_1): Likewise. | |
6157 | * tree-pretty-print.h (dump_location): Likewise. | |
6158 | * value-range.cc (vrange::dump): Likewise. | |
6159 | (irange_bitmask::dump): Likewise. | |
6160 | ||
6161 | 2024-06-12 Xi Ruoyao <xry111@xry111.site> | |
6162 | ||
6163 | * config/loongarch/predicates.md (high_bitmask_operand): New | |
6164 | predicate. | |
6165 | * config/loongarch/constraints.md (Yy): New constriant. | |
6166 | * config/loongarch/loongarch.md (and<mode>3_align): New | |
6167 | define_insn_and_split. | |
6168 | ||
6169 | 2024-06-12 Xi Ruoyao <xry111@xry111.site> | |
6170 | ||
6171 | * config/loongarch/loongarch.cc | |
6172 | (loongarch_expand_conditional_move): Compare mode size with | |
6173 | UNITS_PER_WORD instead of word_mode. | |
6174 | ||
6175 | 2024-06-12 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> | |
6176 | Yvan ROUX <yvan.roux@foss.st.com> | |
6177 | ||
6178 | PR target/115253 | |
6179 | * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear): | |
6180 | Sign extend for Thumb1. | |
6181 | (thumb1_expand_prologue): Add zero/sign extend. | |
6182 | ||
6183 | 2024-06-12 Gerald Pfeifer <gerald@pfeifer.com> | |
6184 | ||
6185 | PR target/69374 | |
6186 | * doc/install.texi (Specific) <*-*-cygwin>: Update web link. | |
6187 | ||
6188 | 2024-06-12 Pan Li <pan2.li@intel.com> | |
6189 | ||
6190 | * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): | |
6191 | Leverage gsi_after_labels instead of gsi_start_bb to skip the | |
6192 | leading labels of bb. | |
6193 | ||
6194 | 2024-06-12 Gerald Pfeifer <gerald@pfeifer.com> | |
6195 | ||
6196 | PR target/69374 | |
6197 | * doc/install.texi (Specific) <*-*-linux-gnu>: Do not list | |
6198 | glibc 2.1 and binutils 2.12 as minimum dependencies. | |
6199 | ||
6200 | 2024-06-12 Alexandre Oliva <oliva@adacore.com> | |
6201 | ||
6202 | PR tree-optimization/113681 | |
6203 | * tree-profile.cc (pass_ipa_tree_profile::gate): Skip if | |
6204 | seen_errors. | |
6205 | ||
6206 | 2024-06-12 liuhongt <hongtao.liu@intel.com> | |
6207 | ||
6208 | PR target/115384 | |
6209 | * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): | |
6210 | Only do the simplification of (AND (ASHIFTRT A imm) mask) | |
6211 | to (LSHIFTRT A imm) when the component of const_vector is | |
6212 | CONST_INT_P. | |
6213 | ||
6214 | 2024-06-11 Joseph Myers <josmyers@redhat.com> | |
6215 | ||
6216 | * doc/cpp.texi (__STDC_VERSION__): Document C2Y handling. | |
6217 | * doc/invoke.texi (-Wc23-c2y-compat, -std=c2y, -std=gnu2y): | |
6218 | Document options. | |
6219 | (-std=gnu23): Update documentation. | |
6220 | * doc/standards.texi (C Language): Document C2Y. Update C23 | |
6221 | description. | |
6222 | * config/rl78/rl78.cc (rl78_option_override): Handle "GNU C2Y" | |
6223 | language name. | |
6224 | * dwarf2out.cc (highest_c_language, gen_compile_unit_die): | |
6225 | Likewise. | |
6226 | ||
6227 | 2024-06-11 Gerald Pfeifer <gerald@pfeifer.com> | |
6228 | ||
6229 | PR target/69374 | |
6230 | * doc/install.texi (Specific) <x86_64-*-solaris2*>: Remove | |
6231 | redundant introduction of x86-64. | |
6232 | ||
6233 | 2024-06-11 Robin Dapp <rdapp@ventanamicro.com> | |
6234 | ||
6235 | PR tree-optimization/115382 | |
6236 | * tree-vect-loop.cc (vectorize_fold_left_reduction): Use | |
6237 | prepare_vec_mask. | |
6238 | * tree-vect-stmts.cc (check_load_store_for_partial_vectors): | |
6239 | Remove static of prepare_vec_mask. | |
6240 | * tree-vectorizer.h (prepare_vec_mask): Export. | |
6241 | ||
6242 | 2024-06-11 Patrick O'Neill <patrick@rivosinc.com> | |
6243 | ||
6244 | * config/riscv/sync.md (atomic_<atomic_optab><mode>): New expand pattern. | |
6245 | (amo_atomic_<atomic_optab><mode>): Rename amo pattern. | |
6246 | (atomic_fetch_<atomic_optab><mode>): New lrsc sequence pattern. | |
6247 | (lrsc_atomic_<atomic_optab><mode>): New expand pattern. | |
6248 | (amo_atomic_fetch_<atomic_optab><mode>): Rename amo pattern. | |
6249 | (lrsc_atomic_fetch_<atomic_optab><mode>): New lrsc sequence pattern. | |
6250 | (atomic_exchange<mode>): New expand pattern. | |
6251 | (amo_atomic_exchange<mode>): Rename amo pattern. | |
6252 | (lrsc_atomic_exchange<mode>): New lrsc sequence pattern. | |
6253 | ||
6254 | 2024-06-11 Patrick O'Neill <patrick@rivosinc.com> | |
6255 | ||
6256 | * doc/sourcebuild.texi: Add docs for atomic extension testsuite infra. | |
6257 | ||
6258 | 2024-06-11 Edwin Lu <ewlu@rivosinc.com> | |
6259 | Patrick O'Neill <patrick@rivosinc.com> | |
6260 | ||
6261 | * common/config/riscv/riscv-common.cc: Add Zaamo and Zalrsc. | |
6262 | * config/riscv/arch-canonicalize: Make A imply Zaamo and Zalrsc. | |
6263 | * config/riscv/riscv.opt: Add Zaamo and Zalrsc | |
6264 | * config/riscv/sync.md: Convert TARGET_ATOMIC to TARGET_ZAAMO and | |
6265 | TARGET_ZALRSC. | |
6266 | ||
6267 | 2024-06-11 Uros Bizjak <ubizjak@gmail.com> | |
6268 | ||
6269 | PR target/112600 | |
6270 | * config/i386/i386.md (usadd<mode>3): Emit insn sequence | |
6271 | involving conditional move for TARGET_CMOVE targets. | |
6272 | (ussub<mode>3): Ditto. | |
6273 | ||
6274 | 2024-06-11 Pengxuan Zheng <quic_pzheng@quicinc.com> | |
6275 | ||
6276 | * config/aarch64/aarch64-builtins.cc (VAR1): Remap float_truncate_lo_ | |
6277 | builtin codes to standard optab ones. | |
6278 | * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_<mode><vczle><vczbe>): | |
6279 | Rename to... | |
6280 | (trunc<Vwide><mode>2<vczle><vczbe>): ... This. | |
6281 | ||
6282 | 2024-06-11 Andi Kleen <ak@linux.intel.com> | |
6283 | ||
6284 | * doc/extend.texi: Document constexpr asm. | |
6285 | ||
6286 | 2024-06-11 Andrew MacLeod <amacleod@redhat.com> | |
6287 | ||
6288 | * gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Issue a | |
6289 | message if SCEV is not invoked due to a mismatch. | |
6290 | ||
6291 | 2024-06-11 Roger Sayle <roger@nextmovesoftware.com> | |
6292 | ||
6293 | PR target/115397 | |
6294 | * config/i386/i386-expand.cc (ix86_expand_ternlog): Move call to | |
6295 | ix86_broadcast_from_constant before call to validize_mem, but after | |
6296 | call to force_const_mem. | |
6297 | ||
6298 | 2024-06-11 Pan Li <pan2.li@intel.com> | |
6299 | ||
6300 | * config/riscv/autovec.md (ussub<mode>3): Add new pattern impl | |
6301 | for the unsigned vector modes. | |
6302 | * config/riscv/riscv-protos.h (expand_vec_ussub): Add new func | |
6303 | decl to expand .SAT_SUB for vector mode. | |
6304 | * config/riscv/riscv-v.cc (emit_vec_saddu): Add new func impl | |
6305 | to expand .SAT_SUB for vector mode. | |
6306 | (emit_vec_binary_alu): Add new helper func to emit binary alu. | |
6307 | (expand_vec_ussub): Leverage above helper func. | |
6308 | ||
6309 | 2024-06-10 Gerald Pfeifer <gerald@pfeifer.com> | |
6310 | ||
6311 | * doc/gm2.texi (Documentation): Fix typos, grammar, and a link. | |
6312 | ||
6313 | 2024-06-10 Andrew MacLeod <amacleod@redhat.com> | |
6314 | ||
6315 | * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker): | |
6316 | Always use current range_query. | |
6317 | (pass_data_array_bounds): New. | |
6318 | (pass_array_bounds): New. | |
6319 | (make_pass_array_bounds): New. | |
6320 | * gimple-array-bounds.h (array_bounds_checker): Adjust prototype. | |
6321 | * passes.def (pass_array_bounds): New. Add after VRP1. | |
6322 | * timevar.def (TV_TREE_ARRAY_BOUNDS): New timevar. | |
6323 | * tree-pass.h (make_pass_array_bounds): Add prototype. | |
6324 | * tree-vrp.cc (execute_ranger_vrp): Remove warning param and do | |
6325 | not invoke array bounds warning pass. | |
6326 | (pass_vrp::pass_vrp): Adjust params. | |
6327 | (pass_vrp::close): Adjust parameters. | |
6328 | (pass_vrp::warn_array_bounds_p): Remove. | |
6329 | (make_pass_vrp): Remove warning param. | |
6330 | (make_pass_early_vrp): Remove warning param. | |
6331 | (make_pass_fast_vrp): Remove warning param. | |
6332 | ||
6333 | 2024-06-10 Raphael Zinsly <rzinsly@ventanamicro.com> | |
6334 | ||
6335 | * config/riscv/bitmanip.md (*bextdisi): New pattern. | |
6336 | ||
6337 | 2024-06-10 Pan Li <pan2.li@intel.com> | |
6338 | ||
6339 | PR target/115387 | |
6340 | * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Take | |
6341 | the gsi of start_bb instead of last_bb. | |
6342 | ||
6343 | 2024-06-10 Raphael Zinsly <rzinsly@ventanamicro.com> | |
6344 | ||
6345 | * config/riscv/bitmanip.md (*bextdisi): New pattern. | |
6346 | ||
6347 | 2024-06-10 Richard Biener <rguenther@suse.de> | |
6348 | ||
6349 | PR tree-optimization/115388 | |
6350 | * tree-ssa-dse.cc (dse_classify_store): Handle irreducible | |
6351 | regions. | |
6352 | (pass_dse::execute): Make sure to mark backedges. | |
6353 | ||
6354 | 2024-06-10 Richard Biener <rguenther@suse.de> | |
6355 | ||
6356 | PR tree-optimization/115395 | |
6357 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): | |
6358 | Handle STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT also for SLP | |
6359 | reductions of group_size one. | |
6360 | ||
6361 | 2024-06-10 Andreas Krebbel <krebbel@linux.ibm.com> | |
6362 | ||
6363 | * config/s390/s390.cc (expand_perm_as_replicate): Handle memory | |
6364 | operands. | |
6365 | * config/s390/vx-builtins.md (vec_splats<mode>): Turn into parameterized expander. | |
6366 | (@vec_splats<mode>): New expander. | |
6367 | ||
6368 | 2024-06-10 Richard Biener <rguenther@suse.de> | |
6369 | ||
6370 | PR tree-optimization/115383 | |
6371 | * tree-vect-stmts.cc (vectorizable_condition): Handle | |
6372 | generating a chain of .FOLD_EXTRACT_LAST. | |
6373 | ||
6374 | 2024-06-09 Andreas Tobler <andreast@gcc.gnu.org> | |
6375 | ||
6376 | * config/freebsd-spec.h: Change fbsd-lib-spec for FreeBSD > 13, | |
6377 | do not link against profiled system libraries if -pg is invoked. | |
6378 | Add a define to note about this change. | |
6379 | * config/aarch64/aarch64-freebsd.h: Use the note to inform if | |
6380 | -pg is invoked on FreeBSD > 13. | |
6381 | * config/arm/freebsd.h: Likewise. | |
6382 | * config/i386/freebsd.h: Likewise. | |
6383 | * config/i386/freebsd64.h: Likewise. | |
6384 | * config/riscv/freebsd.h: Likewise. | |
6385 | * config/rs6000/freebsd64.h: Likewise. | |
6386 | * config/rs6000/sysv4.h: Likeise. | |
6387 | ||
6388 | 2024-06-09 Jeff Law <jlaw@ventanamicro.com> | |
6389 | ||
6390 | * config/riscv/riscv.cc (riscv_move_integer): Initialize "x". | |
6391 | ||
6392 | 2024-06-09 Uros Bizjak <ubizjak@gmail.com> | |
6393 | ||
6394 | PR target/112600 | |
6395 | * config/i386/i386.md (ussub<mode>3): New expander. | |
6396 | (sub<mode>_3): Ditto. | |
6397 | ||
6398 | 2024-06-09 Gerald Pfeifer <gerald@pfeifer.com> | |
6399 | ||
6400 | * doc/install.texi (avr): Remove link to www.amelek.gda.pl/avr/. | |
6401 | ||
6402 | 2024-06-09 Roger Sayle <roger@nextmovesoftware.com> | |
6403 | ||
6404 | * expmed.cc (expand_shift_1): Use add_optab instead of ior_optab | |
6405 | to generate PLUS instead or IOR when unioning disjoint bitfields. | |
6406 | * optabs.cc (expand_subword_shift): Likewise. | |
6407 | (expand_binop): Likewise for double-word rotate. | |
6408 | ||
6409 | 2024-06-08 Peter Bergner <bergner@linux.ibm.com> | |
6410 | ||
6411 | * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Update comment. | |
6412 | ||
6413 | 2024-06-08 Uros Bizjak <ubizjak@gmail.com> | |
6414 | ||
6415 | PR target/112600 | |
6416 | * config/i386/i386.md (usadd<mode>3): New expander. | |
6417 | (x86_mov<mode>cc_0_m1_neg): Use SWI mode iterator. | |
6418 | ||
6419 | 2024-06-08 Pan Li <pan2.li@intel.com> | |
6420 | ||
6421 | * config/riscv/riscv-protos.h (riscv_expand_ussub): Add new func | |
6422 | decl for ussub expanding. | |
6423 | * config/riscv/riscv.cc (riscv_expand_ussub): Ditto but for impl. | |
6424 | * config/riscv/riscv.md (ussub<mode>3): Add new pattern ussub | |
6425 | for scalar modes. | |
6426 | ||
6427 | 2024-06-07 David Malcolm <dmalcolm@redhat.com> | |
6428 | ||
6429 | * doc/invoke.texi: Add -Wanalyzer-undefined-behavior-ptrdiff. | |
6430 | ||
6431 | 2024-06-07 Jason Merrill <jason@redhat.com> | |
6432 | ||
6433 | * doc/invoke.texi (C++ Modules): Mention -include. | |
6434 | ||
6435 | 2024-06-07 Roger Sayle <roger@nextmovesoftware.com> | |
6436 | ||
6437 | PR target/115351 | |
6438 | * config/i386/i386.cc (ix86_rtx_costs): Provide estimates for | |
6439 | the *concatditi3 and *insvti_highpart patterns, about two insns. | |
6440 | ||
6441 | 2024-06-07 Roger Sayle <roger@nextmovesoftware.com> | |
6442 | Hongtao Liu <hongtao.liu@intel.com> | |
6443 | ||
6444 | * config/i386/i386-expand.cc (ix86_expand_args_builtin): Call | |
6445 | fixup_modeless_constant before testing predicates. Only call | |
6446 | copy_to_mode_reg on memory operands (after the first one). | |
6447 | (ix86_gen_bcst_mem): Helper function to convert a CONST_VECTOR | |
6448 | into a VEC_DUPLICATE if possible. | |
6449 | (ix86_ternlog_idx): Convert an RTX expression into a ternlog | |
6450 | index between 0 and 255, recording the operands in ARGS, if | |
6451 | possible or return -1 if this is not possible/valid. | |
6452 | (ix86_ternlog_leaf_p): Helper function to identify "leaves" | |
6453 | of a ternlog expression, e.g. REG_P, MEM_P, CONST_VECTOR, etc. | |
6454 | (ix86_ternlog_operand_p): Test whether a expression is suitable | |
6455 | for and prefered as an UNSPEC_TERNLOG. | |
6456 | (ix86_expand_ternlog_binop): Helper function to construct the | |
6457 | binary operation corresponding to a sufficiently simple ternlog. | |
6458 | (ix86_expand_ternlog_andnot): Helper function to construct a | |
6459 | ANDN operation corresponding to a sufficiently simple ternlog. | |
6460 | (ix86_expand_ternlog): Expand a 3-operand ternary logic | |
6461 | expression, constructing either an UNSPEC_TERNLOG or simpler | |
6462 | rtx expression. Called from builtin expanders and pre-reload | |
6463 | splitters. | |
6464 | * config/i386/i386-protos.h (ix86_ternlog_idx): Prototype here. | |
6465 | (ix86_ternlog_operand_p): Likewise. | |
6466 | (ix86_expand_ternlog): Likewise. | |
6467 | * config/i386/predicates.md (ternlog_operand): New predicate | |
6468 | that calls xi86_ternlog_operand_p. | |
6469 | * config/i386/sse.md (<avx512>_vpternlog<mode>_0): New | |
6470 | define_insn_and_split that recognizes a SET_SRC of ternlog_operand | |
6471 | and expands it via ix86_expand_ternlog pre-reload. | |
6472 | (<avx512>_vternlog<mode>_mask): Convert from define_insn to | |
6473 | define_expand. Use ix86_expand_ternlog if the mask operand is | |
6474 | ~0 (or 255 or -1). | |
6475 | (*<avx512>_vternlog<mode>_mask): define_insn renamed from above. | |
6476 | ||
6477 | 2024-06-07 Michal Jires <mjires@suse.cz> | |
6478 | ||
6479 | * common.opt: Add cache partitioning. | |
6480 | * flag-types.h (enum lto_partition_model): Likewise. | |
6481 | ||
6482 | 2024-06-07 Richard Biener <rguenther@suse.de> | |
6483 | ||
6484 | * tree-vect-loop.cc (vectorize_fold_left_reduction): Fix | |
6485 | mask vector operand indexing. | |
6486 | ||
6487 | 2024-06-07 Jakub Jelinek <jakub@redhat.com> | |
6488 | ||
6489 | PR middle-end/115352 | |
6490 | * gimple-lower-bitint.cc (lower_addsub_overflow): Don't disable | |
6491 | single_comparison if cmp_code is GE_EXPR. | |
6492 | ||
6493 | 2024-06-07 Alexandre Oliva <oliva@adacore.com> | |
6494 | ||
6495 | * target.def (call_offset_return_label): New hook. | |
6496 | * doc/tm.texi.in (TARGET_CALL_OFFSET_RETURN_LABEL): Add | |
6497 | placeholder. | |
6498 | * doc/tm.texi: Rebuild. | |
6499 | * dwarf2out.cc (struct call_arg_loc_node): Record call_insn | |
6500 | instead of call_arg_loc_note. | |
6501 | (add_AT_lbl_id): Add optional offset argument. | |
6502 | (gen_call_site_die): Compute and pass on a return pc offset. | |
6503 | (gen_subprogram_die): Move call_arg_loc_note computation... | |
6504 | (dwarf2out_var_location): ... from here. Set call_insn. | |
6505 | ||
6506 | 2024-06-06 Pan Li <pan2.li@intel.com> | |
6507 | ||
6508 | * doc/match-and-simplify.texi: Add doc for the matching flag '^'. | |
6509 | * genmatch.cc (cmp_operand): Add match_phi comparation. | |
6510 | (dt_node::gen_kids_1): Add cond_expr bool flag for phi match. | |
6511 | (dt_operand::gen_phi_on_cond): Add new func to gen phi matching | |
6512 | on cond_expr. | |
6513 | (parser::parse_expr): Add handling for the expr flag '^'. | |
6514 | * match.pd: Add more form for unsigned .SAT_ADD. | |
6515 | * tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Add | |
6516 | new func impl to build call for phi gimple. | |
6517 | (match_unsigned_saturation_add): Add new func impl to match the | |
6518 | .SAT_ADD for phi gimple. | |
6519 | (math_opts_dom_walker::after_dom_children): Add phi matching | |
6520 | try for all gimple phi stmt. | |
6521 | ||
6522 | 2024-06-06 Pengxuan Zheng <quic_pzheng@quicinc.com> | |
6523 | ||
6524 | PR target/113880 | |
6525 | PR target/113869 | |
6526 | * config/aarch64/aarch64-builtins.cc (VAR1): Remap float_extend_lo_ | |
6527 | builtin codes to standard optab ones. | |
6528 | * config/aarch64/aarch64-simd.md (aarch64_float_extend_lo_<Vwide>): Rename | |
6529 | to... | |
6530 | (extend<mode><Vwide>2): ... This. | |
6531 | ||
6532 | 2024-06-06 Andrew Pinski <quic_apinski@quicinc.com> | |
6533 | ||
6534 | PR plugins/115288 | |
6535 | * Makefile.in (CPPLIB_H): Add label-text.h. | |
6536 | ||
6537 | 2024-06-06 Richard Ball <richard.ball@arm.com> | |
6538 | ||
6539 | * config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros): | |
6540 | Add missing __ARM_NEON_SVE_BRIDGE. | |
6541 | ||
6542 | 2024-06-06 Richard Ball <richard.ball@arm.com> | |
6543 | ||
6544 | PR target/115353 | |
6545 | * config/arm/arm.h (enum arm_auto_incmodes): | |
6546 | Correct CASE_VECTOR_SHORTEN_MODE query. | |
6547 | ||
6548 | 2024-06-06 Tamar Christina <tamar.christina@arm.com> | |
6549 | ||
6550 | * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>, | |
6551 | *cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest, | |
6552 | @aarch64_pred_cmp<cmp_op><mode>_wide, | |
6553 | *aarch64_pred_cmp<cmp_op><mode>_wide_cc, | |
6554 | *aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Fix Upl tie alternative. | |
6555 | * config/aarch64/aarch64-sve2.md (@aarch64_pred_<sve_int_op><mode>): Fix | |
6556 | Upl tie alternative. | |
6557 | ||
6558 | 2024-06-06 Thomas Schwinge <tschwinge@baylibre.com> | |
6559 | ||
6560 | * config/nvptx/nvptx.md (nvptx_uniform_warp_check): Make fit for | |
6561 | non-full-warp execution, via 'vote.all.pred'. | |
6562 | ||
6563 | 2024-06-06 Pan Li <pan2.li@intel.com> | |
6564 | ||
6565 | * match.pd: Add new form for vector mode recog. | |
6566 | * tree-vect-patterns.cc (gimple_unsigned_integer_sat_sub): Add | |
6567 | new match func decl; | |
6568 | (vect_recog_build_binary_gimple_call): Extract helper func to | |
6569 | build gcall with given internal_fn. | |
6570 | (vect_recog_sat_sub_pattern): Add new func impl to recog .SAT_SUB. | |
6571 | ||
6572 | 2024-06-06 Michal Jires <mjires@suse.cz> | |
6573 | ||
6574 | * lto-streamer.cc (lto_get_section_name): Remove suffixes after WPA. | |
6575 | ||
6576 | 2024-06-06 Michal Jires <mjires@suse.cz> | |
6577 | ||
6578 | * lto-opts.cc (lto_write_options): Skip OPT_fltrans_output_list_. | |
6579 | ||
6580 | 2024-06-06 Robin Dapp <rdapp@ventanamicro.com> | |
6581 | ||
6582 | * config/riscv/riscv.opt.urls: Regenerate. | |
6583 | ||
6584 | 2024-06-06 Hongyu Wang <hongyu.wang@intel.com> | |
6585 | ||
6586 | * config/i386/i386-expand.cc (ix86_gen_ccmp_first): | |
6587 | Add fp compare and check the allowed fp compare type. | |
6588 | (ix86_gen_ccmp_next): Adjust compare_code input to ccmp for | |
6589 | fp compare. | |
6590 | ||
6591 | 2024-06-06 Hongyu Wang <hongyu.wang@intel.com> | |
6592 | ||
6593 | * ccmp.cc (expand_ccmp_expr_1): Check ret and ret2 of | |
6594 | expand_ccmp_next, returns the valid one first instead of | |
6595 | comparing cost. | |
6596 | ||
6597 | 2024-06-06 Hongyu Wang <hongyu.wang@intel.com> | |
6598 | ||
6599 | * config/i386/i386-expand.cc (ix86_gen_ccmp_first): New function | |
6600 | that test if the first compare can be generated. | |
6601 | (ix86_gen_ccmp_next): New function to emit a simgle compare and ccmp | |
6602 | sequence. | |
6603 | * config/i386/i386-opts.h (enum apx_features): Add apx_ccmp. | |
6604 | * config/i386/i386-protos.h (ix86_gen_ccmp_first): New proto | |
6605 | declare. | |
6606 | (ix86_gen_ccmp_next): Likewise. | |
6607 | (ix86_get_flags_cc): Likewise. | |
6608 | * config/i386/i386.cc (ix86_flags_cc): New enum. | |
6609 | (ix86_ccmp_dfv_mapping): New string array to map conditional | |
6610 | code to dfv. | |
6611 | (ix86_print_operand): Handle special dfv flag for CCMP. | |
6612 | (ix86_get_flags_cc): New function to return x86 CC enum. | |
6613 | (TARGET_GEN_CCMP_FIRST): Define. | |
6614 | (TARGET_GEN_CCMP_NEXT): Likewise. | |
6615 | * config/i386/i386.h (TARGET_APX_CCMP): Define. | |
6616 | * config/i386/i386.md (@ccmp<mode>): New define_insn to support | |
6617 | ccmp. | |
6618 | (UNSPEC_APX_DFV): New unspec for ccmp dfv. | |
6619 | (ALL_CC): New mode iterator. | |
6620 | (cstorecc4): Change to ... | |
6621 | (cstore<mode>4) ... this, use ALL_CC to loop through all | |
6622 | available CCmodes. | |
6623 | * config/i386/i386.opt (apx_ccmp): Add enum value for ccmp. | |
6624 | ||
6625 | 2024-06-06 Richard Biener <rguenther@suse.de> | |
6626 | ||
6627 | * tree-vect-loop.cc (vectorizable_reduction): Allow | |
6628 | single-lane SLP in-order reductions. | |
6629 | (vectorize_fold_left_reduction): Handle SLP reduction with | |
6630 | conditional reduction op. | |
6631 | ||
6632 | 2024-06-06 Richard Biener <rguenther@suse.de> | |
6633 | ||
6634 | * tree-vect-loop.cc (vect_analyze_scalar_cycles_1): Queue | |
6635 | double reductions in LOOP_VINFO_REDUCTIONS. | |
6636 | (vect_create_epilog_for_reduction): Remove asserts disabling | |
6637 | SLP for double reductions. | |
6638 | (vectorizable_reduction): Analyze SLP double reductions | |
6639 | only once and start off the correct places. | |
6640 | * tree-vect-slp.cc (vect_get_and_check_slp_defs): Allow | |
6641 | vect_double_reduction_def. | |
6642 | (vect_build_slp_tree_2): Fix condition for the ignored | |
6643 | reduction initial values. | |
6644 | * tree-vect-stmts.cc (vect_analyze_stmt): Allow | |
6645 | vect_double_reduction_def. | |
6646 | ||
6647 | 2024-06-06 Richard Biener <rguenther@suse.de> | |
6648 | ||
6649 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): | |
6650 | Adjust for single-lane COND_REDUCTION SLP vectorization. | |
6651 | (vectorizable_reduction): Likewise. | |
6652 | (vect_transform_cycle_phi): Likewise. | |
6653 | ||
6654 | 2024-06-06 Richard Biener <rguenther@suse.de> | |
6655 | ||
6656 | * tree-vect-stmts.cc (vectorizable_condition): Allow | |
6657 | single-lane SLP, but not when we need to swap then and | |
6658 | else clause. | |
6659 | ||
6660 | 2024-06-06 YunQiang Su <syq@gcc.gnu.org> | |
6661 | ||
6662 | * config/mips/mips.cc(mips_insn_cost): Add missing COSTS_N_INSNS | |
6663 | to count. | |
6664 | ||
6665 | 2024-06-06 liuhongt <hongtao.liu@intel.com> | |
6666 | ||
6667 | PR target/114428 | |
6668 | * config/i386/i386.cc (ix86_rtx_costs): Adjust cost for | |
6669 | CONST_VECTOR_DUPLICATE_P in constant_pool. | |
6670 | * config/i386/i386-expand.cc (ix86_broadcast_from_constant): | |
6671 | Remove static. | |
6672 | * config/i386/i386-protos.h (ix86_broadcast_from_constant): | |
6673 | Declare. | |
6674 | ||
6675 | 2024-06-06 liuhongt <hongtao.liu@intel.com> | |
6676 | ||
6677 | PR target/114428 | |
6678 | * simplify-rtx.cc | |
6679 | (simplify_context::simplify_binary_operation_1): | |
6680 | Simplify (AND (ASHIFTRT A imm) mask) to (LSHIFTRT A imm) for | |
6681 | specific mask. | |
6682 | ||
6683 | 2024-06-05 Robin Dapp <rdapp.gcc@gmail.com> | |
6684 | ||
6685 | * config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED): | |
6686 | Move from here... | |
6687 | * config/riscv/riscv.h (TARGET_VECTOR_MISALIGN_SUPPORTED): | |
6688 | ...to here and map to riscv_vector_unaligned_access_p. | |
6689 | * config/riscv/riscv.opt: Add -mvector-strict-align. | |
6690 | * config/riscv/riscv.cc (struct riscv_tune_param): Add | |
6691 | vector_unaligned_access. | |
6692 | (riscv_override_options_internal): Set | |
6693 | riscv_vector_unaligned_access_p. | |
6694 | * doc/invoke.texi: Document -mvector-strict-align. | |
6695 | ||
6696 | 2024-06-05 Tamar Christina <tamar.christina@arm.com> | |
6697 | ||
6698 | * config/aarch64/tuning_models/neoversen2.h (neoversen2_tunings): Add | |
6699 | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW. | |
6700 | * config/aarch64/tuning_models/neoversev1.h (neoversev1_tunings): Add | |
6701 | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW. | |
6702 | * config/aarch64/tuning_models/neoversev2.h (neoversev2_tunings): Add | |
6703 | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW. | |
6704 | ||
6705 | 2024-06-05 Tamar Christina <tamar.christina@arm.com> | |
6706 | ||
6707 | * config/aarch64/aarch64-sve.md (and<mode>3, | |
6708 | @aarch64_pred_<optab><mode>_z, *<optab><mode>3_cc, | |
6709 | *<optab><mode>3_ptest, aarch64_pred_<nlogical><mode>_z, | |
6710 | *<nlogical><mode>3_cc, *<nlogical><mode>3_ptest, | |
6711 | aarch64_pred_<logical_nn><mode>_z, *<logical_nn><mode>3_cc, | |
6712 | *<logical_nn><mode>3_ptest, @aarch64_pred_cmp<cmp_op><mode>, | |
6713 | *cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest, | |
6714 | @aarch64_pred_cmp<cmp_op><mode>_wide, | |
6715 | *aarch64_pred_cmp<cmp_op><mode>_wide_cc, | |
6716 | *aarch64_pred_cmp<cmp_op><mode>_wide_ptest, @aarch64_brk<brk_op>, | |
6717 | *aarch64_brk<brk_op>_cc, *aarch64_brk<brk_op>_ptest, | |
6718 | @aarch64_brk<brk_op>, *aarch64_brk<brk_op>_cc, | |
6719 | *aarch64_brk<brk_op>_ptest, aarch64_rdffr_z, *aarch64_rdffr_z_ptest, | |
6720 | *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc): Add | |
6721 | new early clobber | |
6722 | alternative. | |
6723 | * config/aarch64/aarch64-sve2.md | |
6724 | (@aarch64_pred_<sve_int_op><mode>): Likewise. | |
6725 | ||
6726 | 2024-06-05 Tamar Christina <tamar.christina@arm.com> | |
6727 | ||
6728 | * config/aarch64/aarch64-tuning-flags.def | |
6729 | (AVOID_PRED_RMW): New. | |
6730 | * config/aarch64/aarch64.h (TARGET_SVE_PRED_CLOBBER): New. | |
6731 | * config/aarch64/aarch64.md (pred_clobber): New. | |
6732 | (arch_enabled): Use it. | |
6733 | ||
6734 | 2024-06-05 Tamar Christina <tamar.christina@arm.com> | |
6735 | ||
6736 | * config/aarch64/aarch64-sve.md (and<mode>3, | |
6737 | @aarch64_pred_<optab><mode>_z, *<optab><mode>3_cc, | |
6738 | *<optab><mode>3_ptest, aarch64_pred_<nlogical><mode>_z, | |
6739 | *<nlogical><mode>3_cc, *<nlogical><mode>3_ptest, | |
6740 | aarch64_pred_<logical_nn><mode>_z, *<logical_nn><mode>3_cc, | |
6741 | *<logical_nn><mode>3_ptest, *cmp<cmp_op><mode>_ptest, | |
6742 | @aarch64_pred_cmp<cmp_op><mode>_wide, | |
6743 | *aarch64_pred_cmp<cmp_op><mode>_wide_cc, | |
6744 | *aarch64_pred_cmp<cmp_op><mode>_wide_ptest, *aarch64_brk<brk_op>_cc, | |
6745 | *aarch64_brk<brk_op>_ptest, @aarch64_brk<brk_op>, | |
6746 | *aarch64_brk<brk_op>_cc, *aarch64_brk<brk_op>_ptest, aarch64_rdffr_z, | |
6747 | *aarch64_rdffr_z_ptest, *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, | |
6748 | *aarch64_rdffr_cc): Convert to compact syntax. | |
6749 | * config/aarch64/aarch64-sve2.md | |
6750 | (@aarch64_pred_<sve_int_op><mode>): Likewise. | |
6751 | ||
6752 | 2024-06-05 Jakub Jelinek <jakub@redhat.com> | |
6753 | Frederik Harwath <frederik@codesourcery.com> | |
6754 | Sandra Loosemore <sandra@codesourcery.com> | |
6755 | ||
6756 | * tree.def (OMP_TILE, OMP_UNROLL): New tree codes. | |
6757 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_PARTIAL, | |
6758 | OMP_CLAUSE_FULL and OMP_CLAUSE_SIZES. | |
6759 | * tree.h (OMP_LOOPXFORM_CHECK): Define. | |
6760 | (OMP_LOOPXFORM_LOWERED): Define. | |
6761 | (OMP_CLAUSE_PARTIAL_EXPR): Define. | |
6762 | (OMP_CLAUSE_SIZES_LIST): Define. | |
6763 | * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add entries | |
6764 | for OMP_CLAUSE_{PARTIAL,FULL,SIZES}. | |
6765 | * tree-pretty-print.cc (dump_omp_clause): Handle | |
6766 | OMP_CLAUSE_{PARTIAL,FULL,SIZES}. | |
6767 | (dump_generic_node): Handle OMP_TILE and OMP_UNROLL. Skip printing | |
6768 | loops with NULL OMP_FOR_INIT (node) vector element. | |
6769 | * gimplify.cc (is_gimple_stmt): Handle OMP_TILE and OMP_UNROLL. | |
6770 | (gimplify_omp_taskloop_expr): For SAVE_EXPR use gimplify_save_expr. | |
6771 | (gimplify_omp_loop_xform): New function. | |
6772 | (gimplify_omp_for): Call omp_maybe_apply_loop_xforms and if that | |
6773 | reshuffles what the passed pointer points to, retry or return GS_OK. | |
6774 | Handle OMP_TILE and OMP_UNROLL. | |
6775 | (gimplify_omp_loop): Call omp_maybe_apply_loop_xforms and if that | |
6776 | reshuffles what the passed pointer points to, return GS_OK. | |
6777 | (gimplify_expr): Handle OMP_TILE and OMP_UNROLL. | |
6778 | * omp-general.h (omp_loop_number_of_iterations, | |
6779 | omp_maybe_apply_loop_xforms): Declare. | |
6780 | * omp-general.cc (omp_adjust_for_condition): For LE_EXPR and GE_EXPR | |
6781 | with pointers, don't add/subtract one, but the size of what the | |
6782 | pointer points to. | |
6783 | (omp_loop_number_of_iterations, omp_apply_tile, | |
6784 | find_nested_loop_xform, omp_maybe_apply_loop_xforms): New functions. | |
6785 | ||
6786 | 2024-06-05 Kewen Lin <linkw@linux.ibm.com> | |
6787 | ||
6788 | * config/darwin.cc (darwin_patch_builtins): Use TYPE_PRECISION of | |
6789 | long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. | |
6790 | ||
6791 | 2024-06-05 Pan Li <pan2.li@intel.com> | |
6792 | ||
6793 | PR target/51492 | |
6794 | PR target/112600 | |
6795 | * internal-fn.def (SAT_SUB): Add new IFN define for SAT_SUB. | |
6796 | * match.pd: Add new match for SAT_SUB. | |
6797 | * optabs.def (OPTAB_NL): Remove fixed-point for ussub/ssub. | |
6798 | * tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_sub): Add | |
6799 | new decl for generated in match.pd. | |
6800 | (build_saturation_binary_arith_call): Add new helper function | |
6801 | to build the gimple call to binary SAT alu. | |
6802 | (match_saturation_arith): Rename from. | |
6803 | (match_unsigned_saturation_add): Rename to. | |
6804 | (match_unsigned_saturation_sub): Add new func to match the | |
6805 | unsigned sat sub. | |
6806 | (math_opts_dom_walker::after_dom_children): Add SAT_SUB matching | |
6807 | try when COND_EXPR. | |
6808 | ||
6809 | 2024-06-05 Gerald Pfeifer <gerald@pfeifer.com> | |
6810 | ||
6811 | PR other/69374 | |
6812 | * doc/install.texi (Prerequisites): Drop reference to GNU awk | |
6813 | version 3.1.5. Remove fluff. | |
6814 | ||
6815 | 2024-06-05 liuhongt <hongtao.liu@intel.com> | |
6816 | ||
6817 | PR rtl-optimization/100927 | |
6818 | PR rtl-optimization/115161 | |
6819 | PR rtl-optimization/115115 | |
6820 | * simplify-rtx.cc (simplify_const_unary_operation): Prevent | |
6821 | simplication of FIX/UNSIGNED_FIX for NAN/INF/out-of-range | |
6822 | constant when flag_trapping_math. | |
6823 | * fold-const.cc (fold_convert_const_int_from_real): Don't fold | |
6824 | for overflow value when_trapping_math. | |
6825 | ||
6826 | 2024-06-05 Xiao Zeng <zengxiao@eswincomputing.com> | |
6827 | ||
6828 | * config/riscv/iterators.md: Add mode_iterator between | |
6829 | floating-point modes and BFmode. | |
6830 | * config/riscv/riscv.cc (riscv_output_move): Handle BFmode move | |
6831 | for zfbfmin. | |
6832 | * config/riscv/riscv.md (trunc<mode>bf2): New pattern for BFmode. | |
6833 | (extendbfsf2): Dotto. | |
6834 | (*movhf_hardfloat): Add BFmode. | |
6835 | (*mov<mode>_hardfloat): Dotto. | |
6836 | ||
6837 | 2024-06-04 Jakub Jelinek <jakub@redhat.com> | |
6838 | ||
6839 | PR tree-optimization/115337 | |
6840 | * gimple-range-op.cc (cfn_clz::fold_range): For | |
6841 | m_gimple_call_internal_p handle as a special case also second argument | |
6842 | of -1 next to prec. | |
6843 | ||
6844 | 2024-06-04 Jakub Jelinek <jakub@redhat.com> | |
6845 | ||
6846 | PR tree-optimization/115337 | |
6847 | * fold-const.cc (tree_call_nonnegative_warnv_p): Handle | |
6848 | CASE_CFN_CTZ like CASE_CFN_CLZ. | |
6849 | ||
6850 | 2024-06-04 Jakub Jelinek <jakub@redhat.com> | |
6851 | ||
6852 | * fold-const.cc (tree_call_nonnegative_warnv_p): Formatting fixes. | |
6853 | (tree_invalid_nonnegative_warnv_p): Likewise. | |
6854 | * gimple-fold.cc (gimple_call_nonnegative_warnv_p): Likewise. | |
6855 | ||
6856 | 2024-06-04 Jakub Jelinek <jakub@redhat.com> | |
6857 | ||
6858 | PR tree-optimization/115337 | |
6859 | * fold-const.cc (tree_call_nonnegative_warnv_p) <CASE_CFN_CLZ>: | |
6860 | If arg1 is non-NULL, RECURSE on it, otherwise return true. | |
6861 | ||
6862 | 2024-06-04 Jakub Jelinek <jakub@redhat.com> | |
6863 | ||
6864 | PR middle-end/108789 | |
6865 | * builtins.cc (fold_builtin_arith_overflow): For ovf_only, | |
6866 | don't call save_expr and don't build REALPART_EXPR, otherwise | |
6867 | set TREE_SIDE_EFFECTS on call before calling save_expr. | |
6868 | (fold_builtin_addc_subc): Set TREE_SIDE_EFFECTS on call before | |
6869 | calling save_expr. | |
6870 | ||
6871 | 2024-06-04 Jakub Jelinek <jakub@redhat.com> | |
6872 | ||
6873 | * doc/invoke.texi (lujiazui): Clarify that while the CPUs do support | |
6874 | AVX and F16C, -march=lujiazui actually doesn't enable those. | |
6875 | ||
6876 | 2024-06-04 Richard Biener <rguenther@suse.de> | |
6877 | ||
6878 | * tree-vect-slp.cc (vect_build_slp_tree_2): Only multi-lane | |
6879 | discoveries are reduction chains and need special backedge | |
6880 | treatment. | |
6881 | (vect_analyze_slp): Fall back to single-lane SLP discovery | |
6882 | for reductions. Make sure to try single-lane SLP reduction | |
6883 | for all reductions as fallback. | |
6884 | (vectorizable_load): Avoid outer loop SLP vectorization with | |
6885 | multi-copy vector stmts in the inner loop. | |
6886 | (vectorizable_store): Likewise. | |
6887 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): Allow | |
6888 | direct opcode and shift reduction also for SLP reductions | |
6889 | with a single lane. | |
6890 | * tree-vect-stmts.cc (get_group_load_store_type): For SLP also | |
6891 | check for the PR65518 single-element interleaving case as done in | |
6892 | vect_grouped_load_supported. | |
6893 | ||
6894 | 2024-06-04 Richard Biener <rguenther@suse.de> | |
6895 | ||
6896 | * tree-vect-slp.cc (vect_schedule_slp_node): For mask/len | |
6897 | loops make sure to not advance the insertion iterator | |
6898 | beyond a GIMPLE_COND. | |
6899 | ||
6900 | 2024-06-03 Jakub Jelinek <jakub@redhat.com> | |
6901 | ||
6902 | PR target/115324 | |
6903 | * config/rs6000/rs6000-gen-builtins.cc (write_decls): Remove | |
6904 | GTY markup from struct bifdata and struct ovlddata and remove their | |
6905 | fntype members. Change next member in struct ovlddata and | |
6906 | first_instance member of struct ovldrecord to have int type rather | |
6907 | than struct ovlddata *. Remove GTY markup from rs6000_builtin_info | |
6908 | and rs6000_instance_info arrays, declare new | |
6909 | rs6000_builtin_info_fntype and rs6000_instance_info_fntype arrays, | |
6910 | which have GTY markup. | |
6911 | (write_bif_static_init): Adjust for the above changes. | |
6912 | (write_ovld_static_init): Likewise. | |
6913 | (write_init_bif_table): Likewise. | |
6914 | (write_init_ovld_table): Likewise. | |
6915 | * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Likewise. | |
6916 | * config/rs6000/rs6000-c.cc (find_instance): Likewise. Make static. | |
6917 | (altivec_resolve_overloaded_builtin): Adjust for the above changes. | |
6918 | ||
6919 | 2024-06-03 David Malcolm <dmalcolm@redhat.com> | |
6920 | ||
6921 | * diagnostic-format-sarif.cc: Include "ordered-hash-map.h" and | |
6922 | "sbitmap.h". | |
6923 | (enum class diagnostic_artifact_role): New. | |
6924 | (class sarif_artifact): New. | |
6925 | (sarif_builder::maybe_make_artifact_content_object): Make public. | |
6926 | (sarif_builder::m_filenames): Replace with... | |
6927 | (sarif_builder::m_filename_to_artifact_map): ...this. | |
6928 | (sarif_artifact::add_role): New. | |
6929 | (sarif_artifact::populate_contents): New. | |
6930 | (get_artifact_role_string): New. | |
6931 | (sarif_artifact::populate_roles): New. | |
6932 | (sarif_result::on_nested_diagnostic): Pass role to | |
6933 | make_location_object. | |
6934 | (sarif_ice_notification::sarif_ice_notification): Likewise. | |
6935 | (sarif_builder::sarif_builder): Add "main_input_filename_" param. | |
6936 | Mark it as the artifact that the tool was instructed to scan. | |
6937 | (sarif_builder::make_result_object): Pass role to | |
6938 | make_locations_arr. | |
6939 | (sarif_builder::make_locations_arr): Add "role" param and pass it | |
6940 | to make_location_object. | |
6941 | (sarif_builder::make_location_object): Add "role" param and pass | |
6942 | it to maybe_make_physical_location_object. | |
6943 | (sarif_builder::maybe_make_physical_location_object): Add "role" | |
6944 | param and pass it to call to get_or_create_artifact, rather than | |
6945 | adding to now-removed "m_filenames". Flag the artifact for its | |
6946 | contents to be embedded. | |
6947 | (sarif_builder::make_thread_flow_location_object): Pass role to | |
6948 | make_location_object. | |
6949 | (sarif_builder::make_run_object): Update for change from | |
6950 | m_filename to m_filename_to_artifact_map. Call populate_contents | |
6951 | and populate_roles on each artifact_obj. | |
6952 | (sarif_builder::make_artifact_object): Convert to... | |
6953 | (sarif_builder::get_or_create_artifact): ...this, moving addition | |
6954 | of contents to make_run_object, and conditionalizing setting of | |
6955 | sourceLanguage on "role". | |
6956 | (sarif_output_format::sarif_output_format): Add | |
6957 | "main_input_filename_" param and pass to m_builder's ctor. | |
6958 | (sarif_stream_output_format::sarif_stream_output_format): | |
6959 | Likewise. | |
6960 | (sarif_file_output_format::sarif_file_output_format): Likewise. | |
6961 | (diagnostic_output_format_init_sarif_stderr): Add | |
6962 | "main_input_filename_" param and pass to ctor. | |
6963 | (diagnostic_output_format_init_sarif_file): Likewise. | |
6964 | (diagnostic_output_format_init_sarif_stream): Likewise. | |
6965 | * diagnostic.cc (diagnostic_output_format_init): Add | |
6966 | "main_input_filename_" param and pass to the | |
6967 | diagnostic_output_format_init_sarif_* calls. | |
6968 | * diagnostic.h (diagnostic_output_format_init): Add | |
6969 | main_input_filename_" param to decl. | |
6970 | (diagnostic_output_format_init_sarif_stderr): Likewise. | |
6971 | (diagnostic_output_format_init_sarif_file): Likewise. | |
6972 | (diagnostic_output_format_init_sarif_stream): Likewise. | |
6973 | * gcc.cc (driver_handle_option): Pass main input filename to | |
6974 | diagnostic_output_format_init. | |
6975 | * opts.cc (common_handle_option): Likewise. | |
6976 | ||
6977 | 2024-06-03 Eric Botcazou <ebotcazou@adacore.com> | |
6978 | ||
6979 | * dwarf2out.cc (loc_list_from_tree_1) <CEIL_DIV_EXPR>; Add const. | |
6980 | <do_comp_binop>: Use a signed comparison for small unsigned types. | |
6981 | Implement wrap-around arithmetics for small integer types. | |
6982 | ||
6983 | 2024-06-03 Uros Bizjak <ubizjak@gmail.com> | |
6984 | ||
6985 | PR target/115321 | |
6986 | * config/i386/i386.md (bswapsi2): Force operand 1 | |
6987 | to a register also for !TARGET_BSWAP. | |
6988 | ||
6989 | 2024-06-03 Aldy Hernandez <aldyh@redhat.com> | |
6990 | ||
6991 | * builtins.cc (expand_builtin_strnlen): Replace value_range use | |
6992 | with int_range_max or irange when appropriate. | |
6993 | (determine_block_size): Same. | |
6994 | * fold-const.cc (minmax_from_comparison): Same. | |
6995 | * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same. | |
6996 | (array_bounds_checker::check_array_ref): Same. | |
6997 | * gimple-fold.cc (size_must_be_zero_p): Same. | |
6998 | * gimple-predicate-analysis.cc (find_var_cmp_const): Same. | |
6999 | * gimple-ssa-sprintf.cc (get_int_range): Same. | |
7000 | (format_integer): Same. | |
7001 | (try_substitute_return_value): Same. | |
7002 | (handle_printf_call): Same. | |
7003 | * gimple-ssa-warn-restrict.cc | |
7004 | (builtin_memref::extend_offset_range): Same. | |
7005 | * graphite-sese-to-poly.cc (add_param_constraints): Same. | |
7006 | * internal-fn.cc (get_min_precision): Same. | |
7007 | * match.pd: Same. | |
7008 | * pointer-query.cc (get_size_range): Same. | |
7009 | * range-op.cc (get_shift_range): Same. | |
7010 | (operator_trunc_mod::op1_range): Same. | |
7011 | (operator_trunc_mod::op2_range): Same. | |
7012 | * range.cc (range_negatives): Same. | |
7013 | * range.h (range_positives): Same. | |
7014 | (range_negatives): Same. | |
7015 | * tree-affine.cc (expr_to_aff_combination): Same. | |
7016 | * tree-data-ref.cc (compute_distributive_range): Same. | |
7017 | (nop_conversion_for_offset_p): Same. | |
7018 | (split_constant_offset): Same. | |
7019 | (split_constant_offset_1): Same. | |
7020 | (dr_step_indicator): Same. | |
7021 | * tree-dfa.cc (get_ref_base_and_extent): Same. | |
7022 | * tree-scalar-evolution.cc (iv_can_overflow_p): Same. | |
7023 | * tree-ssa-math-opts.cc (optimize_spaceship): Same. | |
7024 | * tree-ssa-pre.cc (insert_into_preds_of_block): Same. | |
7025 | * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same. | |
7026 | * tree-ssa-strlen.cc (compare_nonzero_chars): Same. | |
7027 | (dump_strlen_info): Same. | |
7028 | (get_range_strlen_dynamic): Same. | |
7029 | (set_strlen_range): Same. | |
7030 | (maybe_diag_stxncpy_trunc): Same. | |
7031 | (strlen_pass::get_len_or_size): Same. | |
7032 | (strlen_pass::handle_builtin_string_cmp): Same. | |
7033 | (strlen_pass::count_nonzero_bytes_addr): Same. | |
7034 | (strlen_pass::handle_integral_assign): Same. | |
7035 | * tree-switch-conversion.cc (bit_test_cluster::emit): Same. | |
7036 | * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Same. | |
7037 | (vect_do_peeling): Same. | |
7038 | * tree-vect-patterns.cc (vect_get_range_info): Same. | |
7039 | (vect_recog_divmod_pattern): Same. | |
7040 | * tree.cc (get_range_pos_neg): Same. | |
7041 | * value-range.cc (debug): Remove value_range variants. | |
7042 | * value-range.h (value_range): Remove typedef. | |
7043 | * vr-values.cc | |
7044 | (simplify_using_ranges::op_with_boolean_value_range_p): Replace | |
7045 | value_range use with int_range_max or irange when appropriate. | |
7046 | (check_for_binary_op_overflow): Same. | |
7047 | (simplify_using_ranges::legacy_fold_cond_overflow): Same. | |
7048 | (find_case_label_ranges): Same. | |
7049 | (simplify_using_ranges::simplify_abs_using_ranges): Same. | |
7050 | (test_for_singularity): Same. | |
7051 | (simplify_using_ranges::simplify_compare_using_ranges_1): Same. | |
7052 | (simplify_using_ranges::simplify_casted_compare): Same. | |
7053 | (simplify_using_ranges::simplify_switch_using_ranges): Same. | |
7054 | (simplify_conversion_using_ranges): Same. | |
7055 | (simplify_using_ranges::two_valued_val_range_p): Same. | |
7056 | ||
7057 | 2024-06-03 Tobias Burnus <tburnus@baylibre.com> | |
7058 | ||
7059 | * doc/install.texi (gcn): Fix date of recommended newlib version. | |
7060 | ||
7061 | 2024-06-03 Marc Poulhiès <poulhies@adacore.com> | |
7062 | ||
7063 | * config/aarch64/aarch64-ldp-fusion.cc (struct aarch64_pair_fusion): | |
7064 | Use new type name. | |
7065 | ||
7066 | 2024-06-03 Marc Poulhiès <poulhies@adacore.com> | |
7067 | ||
7068 | * pair-fusion.h (enum class writeback): Rename to... | |
7069 | (enum class writeback_type): ...this. | |
7070 | (struct pair_fusion): Adjust type name after renaming. | |
7071 | * pair-fusion.cc (pair_fusion_bb_info::track_access): Likewise. | |
7072 | (pair_fusion_bb_info::fuse_pair): Likewise. | |
7073 | (pair_fusion::process_block): Likewise. | |
7074 | ||
7075 | 2024-06-03 Richard Biener <rguenther@suse.de> | |
7076 | ||
7077 | * tree-vect-loop.cc (vect_analyze_loop_1): Avoid extra space | |
7078 | before 'failed'. | |
7079 | ||
7080 | 2024-06-03 Richard Biener <rguenther@suse.de> | |
7081 | ||
7082 | * tree-vect-loop.cc (get_initial_defs_for_reduction): | |
7083 | Always convert neutral_op. | |
7084 | ||
7085 | 2024-06-03 liuhongt <hongtao.liu@intel.com> | |
7086 | ||
7087 | PR target/115299 | |
7088 | * config/i386/i386.cc (ix86_noce_conversion_profitable_p): Add | |
7089 | some preference for floating point ifcvt when SSE4.1 is not | |
7090 | available. | |
7091 | ||
7092 | 2024-06-03 Haochen Jiang <haochen.jiang@intel.com> | |
7093 | ||
7094 | * common/config/i386/i386-common.cc: Change Granite Rapids | |
7095 | series CPU type to P_PROC_AVX10_1_512. | |
7096 | * common/config/i386/i386-cpuinfo.h (enum feature_priority): | |
7097 | Revise comment part. Add P_AVX10_1_256, P_AVX10_1_512, | |
7098 | P_PROC_AVX10_1_512. | |
7099 | * common/config/i386/i386-isas.h: Link to avx10.1-256, avx10.1-512. | |
7100 | ||
7101 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7102 | ||
7103 | * config/i386/i386.md (clz<mode>2_lzcnt_nf): New define_insn. | |
7104 | (*clz<mode>2_lzcnt_falsedep_nf): Ditto. | |
7105 | (<lt_zcnt>_<mode>_nf): Ditto. | |
7106 | (*<lt_zcnt>_<mode>_falsedep_nf): Ditto. | |
7107 | (<lt_zcnt>_hi<nf_name>): Ditto. | |
7108 | (popcount<mode>2_nf): Ditto. | |
7109 | (*popcount<mode>2_falsedep_nf): Ditto. | |
7110 | (popcounthi2<nf_name>): Ditto. | |
7111 | ||
7112 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7113 | ||
7114 | * config/i386/i386.md (*mul<mode>3_1<nf_name>): New define_insn. | |
7115 | (*mulqi3_1<nf_name>): Ditto. | |
7116 | (*<u>divmod<mode>4_noext_nf): Ditto. | |
7117 | (<u>divmodhiqi3<nf_name>): Ditto. | |
7118 | ||
7119 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7120 | ||
7121 | * config/i386/i386.md (x86_64_shld): New define_insn. | |
7122 | (x86_64_shld<nf_name>): Ditto. | |
7123 | (x86_64_shld_ndd<nf_name>): Ditto. | |
7124 | (x86_64_shld_1<nf_name>): Ditto. | |
7125 | (x86_64_shld_ndd_1<nf_name>): Ditto. | |
7126 | (*x86_64_shld_shrd_1_nozext_nf): Ditto. | |
7127 | (x86_shld<nf_name>): Ditto. | |
7128 | (x86_shld_ndd<nf_name>): Ditto. | |
7129 | (x86_shld_1<nf_name>): Ditto. | |
7130 | (x86_shld_ndd_1<nf_name>): Ditto. | |
7131 | (*x86_shld_shrd_1_nozext_nf): Ditto. | |
7132 | (<insn><dwi>3_doubleword_lowpart_nf): Ditto. | |
7133 | (x86_64_shrd<nf_name>): Ditto. | |
7134 | (x86_64_shrd_ndd<nf_name>): Ditto. | |
7135 | (x86_64_shrd_1<nf_name>): Ditto. | |
7136 | (x86_64_shrd_ndd_1<nf_name>): Ditto. | |
7137 | (*x86_64_shrd_shld_1_nozext_nf): Ditto. | |
7138 | (x86_shrd<nf_name>): Ditto. | |
7139 | (x86_shrd_ndd<nf_name>): Ditto. | |
7140 | (x86_shrd_1<nf_name>): Ditto. | |
7141 | (x86_shrd_ndd_1<nf_name>): Ditto. | |
7142 | (*x86_shrd_shld_1_nozext_nf): Ditto. | |
7143 | ||
7144 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7145 | ||
7146 | * config/i386/i386.md (ashr<mode>3_cvt<nf_name>): New | |
7147 | define_insn. | |
7148 | (*<insn><mode>3_1<nf_name>): Ditto. | |
7149 | ||
7150 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7151 | ||
7152 | * config/i386/i386.md (*ashr<mode>3_1<nf_name>): New | |
7153 | define_insn. | |
7154 | (*lshr<mode>3_1<nf_name>): Ditto. | |
7155 | (*lshrqi3_1<nf_name>): Ditto. | |
7156 | (*lshrhi3_1<nf_name>): Ditto. | |
7157 | ||
7158 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7159 | ||
7160 | * config/i386/i386.md (*ashl<mode>3_1<nf_name>): New | |
7161 | define_insn. | |
7162 | (*ashlhi3_1<nf_name>): Ditto. | |
7163 | (*ashlqi3_1<nf_name>): Ditto. | |
7164 | * config/i386/sse.md: New define_split. | |
7165 | ||
7166 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7167 | ||
7168 | * config/i386/i386.md (nf_nonf_attr): New subst_attr. | |
7169 | (nf_nonf_x64_attr): Ditto. | |
7170 | (*sub<mode>_1<nf_name>): New define_insn. | |
7171 | (*anddi_1<nf_name>): Ditto. | |
7172 | (*and<mode>_1<nf_name>): Ditto. | |
7173 | (*andqi_1<nf_name>): Ditto. | |
7174 | (*<code><mode>_1<nf_name>): Ditto. | |
7175 | (*<code>qi_1<nf_name>): Ditto. | |
7176 | (*neg<mode>_1<nf_name>): Ditto. | |
7177 | * config/i386/sse.md: New define_split. | |
7178 | ||
7179 | 2024-06-03 Lingling Kong <lingling.kong@intel.com> | |
7180 | Hongyu Wong <hongyu.wang@intel.com> | |
7181 | ||
7182 | * config/i386/i386-opts.h (enum apx_features): Add nf | |
7183 | enumeration. | |
7184 | * config/i386/i386.h (TARGET_APX_NF): New. | |
7185 | * config/i386/i386.md (nf_name): New subst_att. | |
7186 | (nf_prefix): Ditto. | |
7187 | (nf_condition): Ditto. | |
7188 | (nf_mem_constraint): Ditto. | |
7189 | (nf_applied): Ditto. | |
7190 | (nf_subst): Add new define_subst. | |
7191 | (*add<mode>_1<nf_name>): New define_insn. | |
7192 | (*addhi_1<nf_name>): Ditto. | |
7193 | (*addqi_1<nf_name>): Diito. | |
7194 | * config/i386/i386.opt: Add apx_nf enumeration. | |
7195 | ||
7196 | 2024-06-03 Hu, Lin1 <lin1.hu@intel.com> | |
7197 | ||
7198 | PR target/113609 | |
7199 | * config/i386/sse.md | |
7200 | (*kortest_cmp<mode>_setcc): New define_insn_and_split. | |
7201 | (*kortest_cmp<mode>_jcc): Ditto. | |
7202 | ||
7203 | 2024-06-01 Georg-Johann Lay <avr@gjlay.de> | |
7204 | ||
7205 | PR tree-optimization/115307 | |
7206 | * config/avr/avr.md (SFDF): New mode iterator. | |
7207 | (isinf<mode>2) [sf, df]: New expanders. | |
7208 | ||
7209 | 2024-06-01 Jeff Law <jlaw@ventanamicro.com> | |
7210 | ||
7211 | * config/riscv/riscv.cc (riscv_integer_op): Add new field. | |
7212 | (riscv_build_integer_1): Initialize the new field. | |
7213 | (riscv_built_integer): Recognize more cases where Zbkb's | |
7214 | pack instruction is profitable. | |
7215 | (riscv_move_integer): Loop over all the codes. If requested, | |
7216 | save the current constant into a temporary. Generate pack | |
7217 | for more cases using the saved constant. | |
7218 | ||
7219 | 2024-06-01 Feng Xue <fxue@os.amperecomputing.com> | |
7220 | ||
7221 | * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Remove parameter | |
7222 | loop_vinfo. Get input vectype from stmt_info instead of reduction PHI. | |
7223 | (vect_model_reduction_cost): Remove loop_vinfo argument of call to | |
7224 | vect_is_emulated_mixed_dot_prod. | |
7225 | (vect_transform_reduction): Likewise. | |
7226 | (vectorizable_reduction): Likewise, and bind input vectype to | |
7227 | lane-reducing operation. | |
7228 | ||
7229 | 2024-06-01 Feng Xue <fxue@os.amperecomputing.com> | |
7230 | ||
7231 | * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): New | |
7232 | function. | |
7233 | (vectorizable_reduction): Move partial vectorization checking code to | |
7234 | vect_reduction_update_partial_vector_usage. | |
7235 | ||
7236 | 2024-06-01 Feng Xue <fxue@os.amperecomputing.com> | |
7237 | ||
7238 | * tree-vectorizer.h (lane_reducing_op_p): New function. | |
7239 | * tree-vect-slp.cc (vect_analyze_slp): Use new function | |
7240 | lane_reducing_op_p to check statement code. | |
7241 | * tree-vect-loop.cc (vect_transform_reduction): Likewise. | |
7242 | (vectorizable_reduction): Likewise, and change name of a local | |
7243 | variable that holds the result flag. | |
7244 | ||
7245 | 2024-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
7246 | ||
7247 | * config/xtensa/xtensa-protos.h (xtensa_expand_call): | |
7248 | Add the third argument as boolean. | |
7249 | (xtensa_expand_epilogue): Remove the first argument. | |
7250 | * config/xtensa/xtensa.cc (xtensa_expand_call): | |
7251 | Add the third argument "sibcall_p", and modify in order to prepend | |
7252 | "(use A0_REG)" to CALL_INSN_FUNCTION_USAGE if the argument is true. | |
7253 | (xtensa_expand_epilogue): Remove the first argument "sibcall_p" and | |
7254 | its conditional clause. | |
7255 | * config/xtensa/xtensa.md (call, call_value, sibcall, sibcall_value): | |
7256 | Append a boolean value to the argument of xtensa_expand_call() | |
7257 | indicating whether it is sibling call or not. | |
7258 | (epilogue): Remove the boolean argument from xtensa_expand_epilogue(), | |
7259 | and then append emitting "(return)". | |
7260 | (sibcall_epilogue): Remove the boolean argument from | |
7261 | xtensa_expand_epilogue(). | |
7262 | ||
7263 | 2024-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
7264 | ||
7265 | * config/xtensa/predicates.md | |
7266 | (subreg_HQI_lowpart_operator, xtensa_sminmax_operator): | |
7267 | New operator predicates. | |
7268 | * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p): | |
7269 | Remove. | |
7270 | * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p): Ditto. | |
7271 | * config/xtensa/xtensa.md | |
7272 | (*addsubx, *extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx): | |
7273 | Revise the output statements by conditional ternary operator rather | |
7274 | than switch-case clause in order to avoid using gcc_unreachable(). | |
7275 | (xtensa_clamps): Reduce to a single pattern definition using the | |
7276 | predicate added above. | |
7277 | (Some split patterns to assist *masktrue_const_bitcmpl): Ditto. | |
7278 | ||
7279 | 2024-05-31 Robin Dapp <rdapp@ventanamicro.com> | |
7280 | ||
7281 | * config/riscv/riscv-v.cc (expand_const_vector): Document. | |
7282 | (shuffle_extract_and_slide1up_patterns): Remove. | |
7283 | ||
7284 | 2024-05-31 Robin Dapp <rdapp@ventanamicro.com> | |
7285 | ||
7286 | * config/riscv/autovec.md (ctz<mode>2): New expander. | |
7287 | (clz<mode>2): Ditto. | |
7288 | * config/riscv/generic-vector-ooo.md: Add bitmanip ops to insn | |
7289 | reservation. | |
7290 | * config/riscv/vector-crypto.md: Add VLS modes to insns. | |
7291 | * config/riscv/vector.md: Add bitmanip ops to mode_idx and other | |
7292 | attributes. | |
7293 | ||
7294 | 2024-05-31 Robin Dapp <rdapp@ventanamicro.com> | |
7295 | ||
7296 | * config/riscv/autovec-opt.md (*vandn_<mode>): New pattern. | |
7297 | * config/riscv/vector.md: Add vandn to mode_idx. | |
7298 | ||
7299 | 2024-05-31 Robin Dapp <rdapp@ventanamicro.com> | |
7300 | ||
7301 | * config/riscv/riscv-v.cc (expand_gather_scatter): Use vwsll if | |
7302 | applicable. | |
7303 | * config/riscv/vector-crypto.md: Remove mode from vwsll shift | |
7304 | count operator. | |
7305 | * config/riscv/vector.md: Add vwsll to mode iterator. | |
7306 | ||
7307 | 2024-05-31 Robin Dapp <rdapp@ventanamicro.com> | |
7308 | ||
7309 | * config/riscv/autovec-opt.md (*vwsll_zext1_<mode>): New | |
7310 | pattern. | |
7311 | (*vwsll_zext2_<mode>): Ditto. | |
7312 | (*vwsll_zext1_scalar_<mode>): Ditto. | |
7313 | (*vwsll_zext1_trunc_<mode>): Ditto. | |
7314 | (*vwsll_zext2_trunc_<mode>): Ditto. | |
7315 | (*vwsll_zext1_trunc_scalar_<mode>): Ditto. | |
7316 | * config/riscv/vector-crypto.md: Make pattern similar to other | |
7317 | narrowing/widening patterns. | |
7318 | ||
7319 | 2024-05-31 Robin Dapp <rdapp@ventanamicro.com> | |
7320 | ||
7321 | * config/riscv/vector.md: Split vwadd.wx/vwsub.wx pattern and | |
7322 | add extended_scalar patterns. | |
7323 | ||
7324 | 2024-05-31 Robin Dapp <rdapp@ventanamicro.com> | |
7325 | ||
7326 | PR target/115068 | |
7327 | * config/riscv/vector.md: Split vfw<insn>.wf pattern. | |
7328 | ||
7329 | 2024-05-31 Qing Zhao <qing.zhao@oracle.com> | |
7330 | ||
7331 | * tree-object-size.cc (access_with_size_object_size): Use the type | |
7332 | of the 6th argument for the type of the element. | |
7333 | * internal-fn.cc (expand_ACCESS_WITH_SIZE): Update the comment with | |
7334 | the 6th argument. | |
7335 | ||
7336 | 2024-05-31 Qing Zhao <qing.zhao@oracle.com> | |
7337 | ||
7338 | * tree-object-size.cc (access_with_size_object_size): New function. | |
7339 | (call_object_size): Call the new function. | |
7340 | ||
7341 | 2024-05-31 Qing Zhao <qing.zhao@oracle.com> | |
7342 | ||
7343 | * internal-fn.cc (expand_ACCESS_WITH_SIZE): New function. | |
7344 | * internal-fn.def (ACCESS_WITH_SIZE): New internal function. | |
7345 | * tree.cc (is_access_with_size_p): New function. | |
7346 | (get_ref_from_access_with_size): New function. | |
7347 | * tree.h (is_access_with_size_p): New prototype. | |
7348 | (get_ref_from_access_with_size): New prototype. | |
7349 | ||
7350 | 2024-05-31 Qing Zhao <qing.zhao@oracle.com> | |
7351 | ||
7352 | * doc/extend.texi: Document attribute counted_by. | |
7353 | ||
7354 | 2024-05-31 Uros Bizjak <ubizjak@gmail.com> | |
7355 | ||
7356 | PR target/115297 | |
7357 | * config/alpha/alpha.md (<any_divmod:code>si3): Wrap DImode | |
7358 | operands 3 and 4 with truncate:SI RTX. | |
7359 | (*divmodsi_internal_er): Ditto for operands 1 and 2. | |
7360 | (*divmodsi_internal_er_1): Ditto. | |
7361 | (*divmodsi_internal): Ditto. | |
7362 | * config/alpha/constraints.md ("b"): Correct register | |
7363 | number in the description. | |
7364 | ||
7365 | 2024-05-31 Thomas Schwinge <tschwinge@baylibre.com> | |
7366 | ||
7367 | * config/nvptx/nvptx.h: Configure global constructor, destructor | |
7368 | support. | |
7369 | ||
7370 | 2024-05-31 Richard Biener <rguenther@suse.de> | |
7371 | ||
7372 | PR tree-optimization/115278 | |
7373 | * tree-if-conv.cc (ifcvt_local_dce): Do not DSE volatile stores. | |
7374 | ||
7375 | 2024-05-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
7376 | ||
7377 | * config.gcc: Move ${target_min} from obsolete to unsupported | |
7378 | message. | |
7379 | ||
7380 | 2024-05-31 Andrew Pinski <quic_apinski@quicinc.com> | |
7381 | ||
7382 | PR target/115022 | |
7383 | * doc/invoke.texi (fstrub=disable): Fix opindex. | |
7384 | (minline-memops-threshold): Fix opindex. | |
7385 | (mcmodel=): Add opindex and fix them. | |
7386 | * common.opt.urls: Regenerate. | |
7387 | * config/aarch64/aarch64.opt.urls: Regenerate. | |
7388 | * config/bpf/bpf.opt.urls: Regenerate. | |
7389 | * config/i386/i386.opt.urls: Regenerate. | |
7390 | * config/loongarch/loongarch.opt.urls: Regenerate. | |
7391 | * config/nds32/nds32-elf.opt.urls: Regenerate. | |
7392 | * config/nds32/nds32-linux.opt.urls: Regenerate. | |
7393 | * config/or1k/or1k.opt.urls: Regenerate. | |
7394 | * config/riscv/riscv.opt.urls: Regenerate. | |
7395 | * config/rs6000/aix64.opt.urls: Regenerate. | |
7396 | * config/rs6000/linux64.opt.urls: Regenerate. | |
7397 | * config/sparc/sparc.opt.urls: Regenerate. | |
7398 | ||
7399 | 2024-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
7400 | ||
7401 | * config/xtensa/xtensa-protos.h | |
7402 | (xtensa_use_return_instruction_p): Remove. | |
7403 | * config/xtensa/xtensa.cc | |
7404 | (machine_function): Remove "epilogue_done" field. | |
7405 | (xtensa_expand_epilogue): Remove "cfun->machine->epilogue_done" usage. | |
7406 | (xtensa_use_return_instruction_p): Remove. | |
7407 | * config/xtensa/xtensa.md ("return"): | |
7408 | Replace calling "xtensa_use_return_instruction_p()" with inline code. | |
7409 | ||
7410 | 2024-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
7411 | ||
7412 | * config/xtensa/xtensa.cc (xtensa_valid_move, constantpool_address_p, | |
7413 | xtensa_tls_symbol_p, gen_int_relational, xtensa_emit_move_sequence, | |
7414 | xtensa_copy_incoming_a7, xtensa_expand_block_move, | |
7415 | xtensa_expand_nonlocal_goto, xtensa_emit_call, | |
7416 | xtensa_legitimate_address_p, xtensa_legitimize_address, | |
7417 | xtensa_tls_referenced_p, print_operand, print_operand_address, | |
7418 | xtensa_output_literal): | |
7419 | Replace RTX code comparisons with their predicate macros such as | |
7420 | REG_P(). | |
7421 | * config/xtensa/xtensa.h (CONSTANT_ADDRESS_P, | |
7422 | LEGITIMATE_PIC_OPERAND_P): Ditto. | |
7423 | * config/xtensa/xtensa.md (reload<mode>_literal, indirect_jump): | |
7424 | Ditto. | |
7425 | ||
7426 | 2024-05-31 Martin Uecker <uecker@tugraz.at> | |
7427 | ||
7428 | PR tree-optimization/115157 | |
7429 | PR tree-optimization/115177 | |
7430 | * godump.cc (go_output_typedef): Use TYPE_MAIN_VARIANT instead | |
7431 | of TYPE_CANONICAL. | |
7432 | ||
7433 | 2024-05-31 liuhongt <hongtao.liu@intel.com> | |
7434 | ||
7435 | * config/i386/emmintrin.h (__double_u): Rename from double_u. | |
7436 | (_mm_load_sd): Replace double_u with __double_u. | |
7437 | (_mm_store_sd): Ditto. | |
7438 | (_mm_loadh_pd): Ditto. | |
7439 | (_mm_loadl_pd): Ditto. | |
7440 | * config/i386/xmmintrin.h (__float_u): Rename from float_u. | |
7441 | (_mm_load_ss): Ditto. | |
7442 | (_mm_store_ss): Ditto. | |
7443 | ||
7444 | 2024-05-30 Uros Bizjak <ubizjak@gmail.com> | |
7445 | ||
7446 | PR target/115102 | |
7447 | * config/i386/i386.md (bswaphi2): Also enable for !TARGET_MOVBE. | |
7448 | (*bswaphi2): New insn pattern. | |
7449 | (bswaphisi2_lowpart): Rename from bswaphi_lowpart. Rewrite | |
7450 | insn RTX to match the expected form of the combine pass. | |
7451 | Remove rol{w} alternative and corresponding attributes. | |
7452 | (bswsaphisi2_lowpart peephole2): New peephole2 pattern to | |
7453 | conditionally convert bswaphisi2_lowpart to rotlhi3_1_slp. | |
7454 | (bswapsi2): Update expander for rename. | |
7455 | (rotlhi3_1_slp splitter): Conditionally split to bswaphi2. | |
7456 | ||
7457 | 2024-05-30 Richard Sandiford <richard.sandiford@arm.com> | |
7458 | ||
7459 | PR rtl-optimization/115281 | |
7460 | * ira-conflicts.cc (go_through_subreg): Use the natural size of | |
7461 | the inner mode rather than the outer mode. | |
7462 | ||
7463 | 2024-05-30 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com> | |
7464 | ||
7465 | * pair-fusion.h: Generic header code for load store pair fusion | |
7466 | that can be shared across different architectures. | |
7467 | * pair-fusion.cc: Generic source code implementation for | |
7468 | load store pair fusion that can be shared across different architectures. | |
7469 | * Makefile.in: Add new object file pair-fusion.o. | |
7470 | * config/aarch64/aarch64-ldp-fusion.cc: Delete generic code and move it | |
7471 | to pair-fusion.cc in the middle-end. | |
7472 | * config/aarch64/t-aarch64: Add header file dependency on pair-fusion.h. | |
7473 | Remove unnecessary header file dependency. | |
7474 | ||
7475 | 2024-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
7476 | ||
7477 | PR c++/115031 | |
7478 | * config/sparc/sol2.h (GGC_QUIRE_SIZE): Define as 510. | |
7479 | ||
7480 | 2024-05-30 David Malcolm <dmalcolm@redhat.com> | |
7481 | ||
7482 | * Makefile.in (OBJS-libcommon): Add text-art/tree-widget.o. | |
7483 | * doc/analyzer.texi: Rewrite discussion of dumping state to | |
7484 | cover the text_art::tree_widget-based dumps, with a more | |
7485 | interesting example. | |
7486 | * text-art/dump-widget-info.h: New file. | |
7487 | * text-art/dump.h: New file. | |
7488 | * text-art/selftests.cc (selftest::text_art_tests): Call | |
7489 | text_art_tree_widget_cc_tests. | |
7490 | * text-art/selftests.h (selftest::text_art_tree_widget_cc_tests): | |
7491 | New decl. | |
7492 | * text-art/theme.cc (ascii_theme::get_cppchar): Handle the various | |
7493 | cell_kind::TREE_*. | |
7494 | (unicode_theme::get_cppchar): Likewise. | |
7495 | * text-art/theme.h (enum class theme::cell_kind): Add | |
7496 | TREE_CHILD_NON_FINAL, TREE_CHILD_FINAL, TREE_X_CONNECTOR, and | |
7497 | TREE_Y_CONNECTOR. | |
7498 | * text-art/tree-widget.cc: New file. | |
7499 | * text-art/tree-widget.h: New file. | |
7500 | ||
7501 | 2024-05-30 liuhongt <hongtao.liu@intel.com> | |
7502 | ||
7503 | * config/i386/sse.md (vcond_mask_<mode><mode>): New expander. | |
7504 | ||
7505 | 2024-05-30 liuhongt <hongtao.liu@intel.com> | |
7506 | ||
7507 | PR tree-optimization/112325 | |
7508 | * tree-ssa-loop-ivcanon.cc (estimated_unrolled_size): Move the | |
7509 | 2 / 3 loop body size reduction to .. | |
7510 | (try_unroll_loop_completely): .. here, add it for the check of | |
7511 | body size shrink, and the check of comparison against | |
7512 | param_max_completely_peeled_insns when | |
7513 | (!cunrolli ||loop->inner). | |
7514 | (canonicalize_loop_induction_variables): Add new parameter | |
7515 | cunrolli and pass down. | |
7516 | (tree_unroll_loops_completely_1): Ditto. | |
7517 | (canonicalize_induction_variables): Pass cunrolli as false to | |
7518 | canonicalize_loop_induction_variables. | |
7519 | (tree_unroll_loops_completely): Set cunrolli to true at | |
7520 | beginning and set it to false after CHANGED is true. | |
7521 | ||
7522 | 2024-05-30 Alexandre Oliva <oliva@adacore.com> | |
7523 | ||
7524 | * doc/sourcebuild.texi (dg-additional-sources): Document | |
7525 | newly-added support for target selectors, and implicit discard | |
7526 | on non-linking tests that name the compiler output explicitly. | |
7527 | ||
7528 | 2024-05-30 Jiawei <jiawei@iscas.ac.cn> | |
7529 | ||
7530 | * tree-ssa-pre.cc (create_component_ref_by_pieces_1): New conditions. | |
7531 | ||
7532 | 2024-05-30 Hans-Peter Nilsson <hp@axis.com> | |
7533 | ||
7534 | Revert: | |
7535 | 2024-05-28 Hans-Peter Nilsson <hp@axis.com> | |
7536 | ||
7537 | * resource.cc: Include cfgrtl.h. Use BLOCK_FOR_INSN (insn)->index | |
7538 | instead of calling find_basic_block (insn). Assert for not -1. | |
7539 | (find_basic_block): Remove function. | |
7540 | (init_resource_info): Call compute_bb_for_insn. | |
7541 | (free_resource_info): Call free_bb_for_insn. | |
7542 | ||
7543 | 2024-05-30 Hans-Peter Nilsson <hp@axis.com> | |
7544 | ||
7545 | Revert: | |
7546 | 2024-05-28 Hans-Peter Nilsson <hp@axis.com> | |
7547 | ||
7548 | * resource.cc (mark_target_live_regs): Remove redundant check for b | |
7549 | being -1, after gcc_assert. | |
7550 | ||
7551 | 2024-05-30 Hans-Peter Nilsson <hp@axis.com> | |
7552 | ||
7553 | Revert: | |
7554 | 2024-05-28 Hans-Peter Nilsson <hp@axis.com> | |
7555 | ||
7556 | * resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't | |
7557 | check for non-null target_hash_table and bb_ticks. | |
7558 | (mark_target_live_regs): Ditto. Replace check for non-NULL result from | |
7559 | BLOCK_FOR_INSN with a call to gcc_assert. Fold code conditioned on | |
7560 | tinfo != NULL. | |
7561 | ||
7562 | 2024-05-29 YunQiang Su <syq@gcc.gnu.org> | |
7563 | ||
7564 | * config/mips/mips.cc(mips16_gp_pseudo_reg): Mark | |
7565 | MIPS16_PIC_TEMP and MIPS_PROLOGUE_TEMP clobbered. | |
7566 | (mips_emit_call_insn): Mark MIPS16_PIC_TEMP and | |
7567 | MIPS_PROLOGUE_TEMP clobbered if MIPS16 and CALL_CLOBBERED_GP. | |
7568 | ||
7569 | 2024-05-29 Andrew Pinski <quic_apinski@quicinc.com> | |
7570 | ||
7571 | PR tree-optimization/115224 | |
7572 | * generic-match-head.cc (bitwise_inverted_equal_p): Add `a ^ CST` | |
7573 | case. | |
7574 | * gimple-match-head.cc (gimple_bit_xor_cst): New declaration. | |
7575 | (gimple_bitwise_inverted_equal_p): Add `a ^ CST` case. | |
7576 | * match.pd (bit_xor_cst): New match. | |
7577 | (maybe_bit_not): Add bit_xor_cst case. | |
7578 | ||
7579 | 2024-05-29 Andrew Pinski <quic_apinski@quicinc.com> | |
7580 | ||
7581 | * match.pd (bit_not_with_nop): Unconditionalize. | |
7582 | (maybe_cmp): Likewise. | |
7583 | (maybe_bit_not): New match pattern. | |
7584 | (`~X & X`): Use maybe_bit_not and add `:c` back. | |
7585 | (`~x ^ x`/`~x | x`): Likewise. | |
7586 | ||
7587 | 2024-05-29 Richard Sandiford <richard.sandiford@arm.com> | |
7588 | ||
7589 | PR target/115258 | |
7590 | * config/aarch64/aarch64-simd.md (aarch64_combinev16qi): Allow | |
7591 | the split before reload. | |
7592 | * config/aarch64/aarch64.cc (aarch64_split_combinev16qi): Generalize | |
7593 | into a form that handles pseudo registers. | |
7594 | ||
7595 | 2024-05-29 Feng Xue <fxue@os.amperecomputing.com> | |
7596 | ||
7597 | * tree-vect-loop.c : Removed. | |
7598 | ||
7599 | 2024-05-29 Feng Xue <fxue@os.amperecomputing.com> | |
7600 | ||
7601 | * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Move | |
7602 | initialization of bbs to explicit construction code. Adjust the | |
7603 | definition of nbbs. | |
7604 | (update_epilogue_loop_vinfo): Update nbbs for epilog vinfo. | |
7605 | * tree-vect-patterns.cc (vect_determine_precisions): Make | |
7606 | loop_vec_info and bb_vec_info share same code. | |
7607 | (vect_pattern_recog): Remove duplicated vect_pattern_recog_1 loop. | |
7608 | * tree-vect-slp.cc (vect_get_and_check_slp_defs): Access to bbs[0] | |
7609 | via base vec_info class. | |
7610 | (_bb_vec_info::_bb_vec_info): Initialize bbs and nbbs using data | |
7611 | fields of input auto_vec<> bbs. | |
7612 | (vect_slp_region): Use access to nbbs to replace original | |
7613 | bbs.length(). | |
7614 | (vect_schedule_slp_node): Access to bbs[0] via base vec_info class. | |
7615 | * tree-vectorizer.cc (vec_info::vec_info): Add initialization of | |
7616 | bbs and nbbs. | |
7617 | (vec_info::insert_seq_on_entry): Access to bbs[0] via base vec_info | |
7618 | class. | |
7619 | * tree-vectorizer.h (vec_info): Add new fields bbs and nbbs. | |
7620 | (LOOP_VINFO_NBBS): New macro. | |
7621 | (BB_VINFO_BBS): Rename BB_VINFO_BB to BB_VINFO_BBS. | |
7622 | (BB_VINFO_NBBS): New macro. | |
7623 | (_loop_vec_info): Remove field bbs. | |
7624 | (_bb_vec_info): Rename field bbs. | |
7625 | * tree-vect-loop.c: New file. | |
7626 | ||
7627 | 2024-05-29 Jeff Law <jlaw@ventanamicro.com> | |
7628 | ||
7629 | * config/riscv/crypto.md (riscv_xpack_<X:mode>_<HX:mode>_2): Remove '*' | |
7630 | allow it to be used via the gen_* interface. | |
7631 | * config/riscv/riscv.cc (riscv_build_integer): Identify when Zbkb | |
7632 | can be used to profitably synthesize repeating constants. | |
7633 | (riscv_move_integer): Codegen changes to generate those Zbkb sequences. | |
7634 | ||
7635 | 2024-05-29 Jason Merrill <jason@redhat.com> | |
7636 | ||
7637 | * doc/invoke.texi: Update module extension docs. | |
7638 | ||
7639 | 2024-05-29 Tobias Burnus <tburnus@baylibre.com> | |
7640 | ||
7641 | * config/gcn/gcn-hsa.h (gcn_local_sym_hash): Fix typo. | |
7642 | ||
7643 | 2024-05-29 Richard Biener <rguenther@suse.de> | |
7644 | ||
7645 | PR tree-optimization/115252 | |
7646 | * tree-vect-stmts.cc (get_group_load_store_type): Enhance | |
7647 | detecting the number of cases where we can avoid accessing a gap | |
7648 | during code generation. | |
7649 | (vectorizable_load): Remove old half-vector peeling for gap | |
7650 | avoidance which is now redundant. Add gap-aligned case where | |
7651 | it's OK to access the gap. Add assert that we have peeling for | |
7652 | gaps enabled when we access a gap. | |
7653 | ||
7654 | 2024-05-29 Richard Biener <rguenther@suse.de> | |
7655 | ||
7656 | PR tree-optimization/114435 | |
7657 | * tree-predcom.cc (tree_predictive_commoning): Queue | |
7658 | the next scalar cleanup sub-pipeline to be run when we | |
7659 | did something. | |
7660 | ||
7661 | 2024-05-29 Hongyu Wang <hongyu.wang@intel.com> | |
7662 | ||
7663 | PR target/113719 | |
7664 | * config/i386/i386-options.cc (ix86_override_options_after_change): | |
7665 | Remove call to ix86_default_align and | |
7666 | ix86_recompute_optlev_based_flags. | |
7667 | (ix86_option_override_internal): Call ix86_default_align and | |
7668 | ix86_recompute_optlev_based_flags. | |
7669 | ||
7670 | 2024-05-29 liuhongt <hongtao.liu@intel.com> | |
7671 | ||
7672 | * config/i386/i386.cc (ix86_avoid_jump_mispredicts): Change | |
7673 | gen_pad to gen_max_skip_align. | |
7674 | (ix86_align_loops): New function. | |
7675 | (ix86_reorg): Call ix86_align_loops. | |
7676 | * config/i386/i386.md (pad): Rename to .. | |
7677 | (max_skip_align): .. this, and accept 2 operands for align and | |
7678 | skip. | |
7679 | ||
7680 | 2024-05-29 Haochen Jiang <haochen.jiang@intel.com> | |
7681 | ||
7682 | * config/i386/x86-tune-costs.h (generic_cost): Change from | |
7683 | 16:11:8 to 16. | |
7684 | ||
7685 | 2024-05-29 Andrew MacLeod <amacleod@redhat.com> | |
7686 | ||
7687 | * gimple-range-gori.cc (gori_on_edge): Always use static ranges | |
7688 | from the specified range_query. | |
7689 | * gimple-range-gori.h (gori_on_edge): Change prototype. | |
7690 | * gimple-range.cc (dom_ranger::maybe_push_edge): Change arguments | |
7691 | to call. | |
7692 | ||
7693 | 2024-05-29 Kewen Lin <linkw@linux.ibm.com> | |
7694 | ||
7695 | PR target/114846 | |
7696 | * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): As | |
7697 | EPILOGUE_TYPE_EH_RETURN would be passed as epilogue_type directly | |
7698 | now, adjust the relevant handlings on it. | |
7699 | * config/rs6000/rs6000.md (eh_return expander): Append by calling | |
7700 | gen_eh_return_internal and emit_barrier. | |
7701 | (eh_return_internal): New define_insn_and_split, call function | |
7702 | rs6000_emit_epilogue with epilogue type EPILOGUE_TYPE_EH_RETURN. | |
7703 | ||
7704 | 2024-05-28 liuhongt <hongtao.liu@intel.com> | |
7705 | ||
7706 | PR target/67325 | |
7707 | * config/i386/i386.cc (ix86_rtx_costs): Reduce cost of MEM (A | |
7708 | + imm) to "cost of MEM (A)" + 1. | |
7709 | ||
7710 | 2024-05-28 Andrew MacLeod <amacleod@redhat.com> | |
7711 | ||
7712 | * gimple-range.cc (dom_ranger::dom_ranger): Do not initialize m_out. | |
7713 | (dom_ranger::maybe_push_edge): Use gori () rather than m_out. | |
7714 | * gimple-range.h (dom_ranger::m_out): Remove. | |
7715 | * tree-vrp.cc (remove_unreachable::remove_unreachable): Use a | |
7716 | range-query ranther than a gimple_ranger. | |
7717 | (remove_unreachable::remove): New. | |
7718 | (remove_unreachable::m_ranger): Change to a range_query. | |
7719 | (remove_unreachable::handle_early): If there is no dependency | |
7720 | information, do nothing. | |
7721 | (remove_unreachable::remove_and_update_globals): Do not update | |
7722 | globals if there is no dependecy info to use. | |
7723 | ||
7724 | 2024-05-28 Hans-Peter Nilsson <hp@axis.com> | |
7725 | ||
7726 | * resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't | |
7727 | check for non-null target_hash_table and bb_ticks. | |
7728 | (mark_target_live_regs): Ditto. Replace check for non-NULL result from | |
7729 | BLOCK_FOR_INSN with a call to gcc_assert. Fold code conditioned on | |
7730 | tinfo != NULL. | |
7731 | ||
7732 | 2024-05-28 Hans-Peter Nilsson <hp@axis.com> | |
7733 | ||
7734 | * resource.cc (mark_target_live_regs): Remove redundant check for b | |
7735 | being -1, after gcc_assert. | |
7736 | ||
7737 | 2024-05-28 Hans-Peter Nilsson <hp@axis.com> | |
7738 | ||
7739 | * resource.cc: Include cfgrtl.h. Use BLOCK_FOR_INSN (insn)->index | |
7740 | instead of calling find_basic_block (insn). Assert for not -1. | |
7741 | (find_basic_block): Remove function. | |
7742 | (init_resource_info): Call compute_bb_for_insn. | |
7743 | (free_resource_info): Call free_bb_for_insn. | |
7744 | ||
7745 | 2024-05-28 Hans-Peter Nilsson <hp@axis.com> | |
7746 | ||
7747 | PR rtl-optimization/115182 | |
7748 | * resource.cc (mark_target_live_regs): Don't look for | |
7749 | unconditional branches after the target to improve on the | |
7750 | register liveness. | |
7751 | (find_dead_or_set_registers): Remove unused function. | |
7752 | ||
7753 | 2024-05-28 Uros Bizjak <ubizjak@gmail.com> | |
7754 | ||
7755 | * config/i386/sync.md (atomic_loaddi_fpu): Use movd/pextrd | |
7756 | to move DImode value from XMM to GPR for TARGET_SSE4_1. | |
7757 | (atomic_storedi_fpu): Use movd/pinsrd to move DImode value | |
7758 | from GPR to XMM for TARGET_SSE4_1. | |
7759 | ||
7760 | 2024-05-28 David Malcolm <dmalcolm@redhat.com> | |
7761 | ||
7762 | * diagnostic-color.cc: Define INCLUDE_VECTOR. | |
7763 | Include "label-text.h" and "selftest.h". | |
7764 | (struct color_cap): Replace with... | |
7765 | (struct color_default): ...this, adding "m_" prefixes to fields | |
7766 | and dropping "name_len" and "free_val" field. | |
7767 | (color_dict): Convert to... | |
7768 | (gcc_color_defaults): ...this, making const, dropping the trailing | |
7769 | strlen and "false" from each entry. | |
7770 | (class diagnostic_color_dict): New. | |
7771 | (g_color_dict): New. | |
7772 | (colorize_start): Reimplement in terms of g_color_dict. | |
7773 | (diagnostic_color_dict::get_entry_by_name): New, based on | |
7774 | colorize_start. | |
7775 | (diagnostic_color_dict::get_start_by_name): Likewise. | |
7776 | (diagnostic_color_dict::diagnostic_color_dict): New. | |
7777 | (parse_gcc_colors): Reimplement, moving body... | |
7778 | (diagnostic_color_dict::parse_envvar_value): ...here. | |
7779 | (colorize_init): Lazily create g_color_dict. | |
7780 | (selftest::test_empty_color_dict): New. | |
7781 | (selftest::test_default_color_dict): New. | |
7782 | (selftest::test_color_dict_envvar_parsing): New. | |
7783 | (selftest::diagnostic_color_cc_tests): New. | |
7784 | * selftest-run-tests.cc (selftest::run_tests): Call | |
7785 | selftest::diagnostic_color_cc_tests. | |
7786 | * selftest.h (selftest::diagnostic_color_cc_tests): New decl. | |
7787 | ||
7788 | 2024-05-28 David Malcolm <dmalcolm@redhat.com> | |
7789 | ||
7790 | * function-tests.cc: Include "selftest-tree.h". | |
7791 | * selftest-tree.h: New file. | |
7792 | * selftest.h (make_fndecl): Move to selftest-tree.h. | |
7793 | ||
7794 | 2024-05-28 David Malcolm <dmalcolm@redhat.com> | |
7795 | ||
7796 | * config/v850/v850.opt.urls: Regenerate, with fix. | |
7797 | * config/vax/vax.opt.urls: Likewise. | |
7798 | * regenerate-opt-urls.py (TARGET_SPECIFIC_PAGES): Fix transposed | |
7799 | values for "vax" and "v850". | |
7800 | ||
7801 | 2024-05-28 Andrew MacLeod <amacleod@redhat.com> | |
7802 | ||
7803 | PR tree-optimization/115221 | |
7804 | * gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Do | |
7805 | not invoke SCEV is range_query's do not match. | |
7806 | ||
7807 | 2024-05-28 Andrew MacLeod <amacleod@redhat.com> | |
7808 | ||
7809 | * tree-ssa-strlen.cc (strlen_pass::strlen_pass): Add function | |
7810 | pointer and initialize ptr_qry with current range_query. | |
7811 | (strlen_pass::m_ranger): Remove. | |
7812 | (printf_strlen_execute): Enable and disable ranger. | |
7813 | ||
7814 | 2024-05-28 David Malcolm <dmalcolm@redhat.com> | |
7815 | ||
7816 | PR analyzer/115203 | |
7817 | * diagnostic-path.h | |
7818 | (simple_diagnostic_path::disable_event_localization): New. | |
7819 | (simple_diagnostic_path::m_localize_events): New field. | |
7820 | * diagnostic.cc | |
7821 | (simple_diagnostic_path::simple_diagnostic_path): Initialize | |
7822 | m_localize_events. | |
7823 | (simple_diagnostic_path::add_event): Only localize fmt if | |
7824 | m_localize_events is true. | |
7825 | * tree-diagnostic-path.cc | |
7826 | (test_diagnostic_path::test_diagnostic_path): Call | |
7827 | disable_event_localization. | |
7828 | ||
7829 | 2024-05-28 David Malcolm <dmalcolm@redhat.com> | |
7830 | ||
7831 | PR bootstrap/115167 | |
7832 | * Makefile.in (C_COMMON_OBJS): Add c-family/c-type-mismatch.o. | |
7833 | * gcc-rich-location.cc | |
7834 | (maybe_range_label_for_tree_type_mismatch::get_text): Move to | |
7835 | c-family/c-type-mismatch.cc. | |
7836 | (binary_op_rich_location::binary_op_rich_location): Likewise. | |
7837 | (binary_op_rich_location::use_operator_loc_p): Likewise. | |
7838 | * gcc-rich-location.h (class range_label_for_type_mismatch): | |
7839 | Likewise. | |
7840 | (class maybe_range_label_for_tree_type_mismatch): Likewise. | |
7841 | (class op_location_t): Likewise for forward decl. | |
7842 | (class binary_op_rich_location): Likewise. | |
7843 | ||
7844 | 2024-05-28 Lyut Nersisyan <lyut.nersisyan@gmail.com> | |
7845 | ||
7846 | * config/riscv/crypto.md: Add new combiner patterns to generate | |
7847 | pack, packh, packw instrutions. | |
7848 | * config/riscv/iterators.md (HX): New iterator for half X mode. | |
7849 | * config/riscv/riscv.md (<optab>_shift_reverse<X:mode>): Tighten | |
7850 | cases to avoid. Do not lose bits for XOR/IOR. | |
7851 | ||
7852 | 2024-05-28 Feng Xue <fxue@os.amperecomputing.com> | |
7853 | ||
7854 | PR tree-optimization/115060 | |
7855 | * tree-vect-patterns.cc (vect_get_internal_def): Return statement for | |
7856 | vectorization. | |
7857 | (vect_widened_op_tree): Call vect_get_internal_def instead of look_def | |
7858 | to get statement information. | |
7859 | (vect_recog_widen_abd_pattern): No need to call vect_stmt_to_vectorize. | |
7860 | ||
7861 | 2024-05-28 Richard Biener <rguenther@suse.de> | |
7862 | ||
7863 | PR tree-optimization/115236 | |
7864 | * tree-ssa-structalias.cc (build_pred_graph): Properly | |
7865 | handle *ANYTHING = X. | |
7866 | (build_succ_graph): Likewise. Do not elide direct nodes | |
7867 | from receiving from STOREDANYTHING. | |
7868 | ||
7869 | 2024-05-28 Richard Biener <rguenther@suse.de> | |
7870 | ||
7871 | * tree-ssa-structalias.cc (find_func_aliases): Use | |
7872 | get_constraint_for_address_of to build escape constraints | |
7873 | for asm inputs and outputs. | |
7874 | ||
7875 | 2024-05-28 Richard Biener <rguenther@suse.de> | |
7876 | ||
7877 | PR tree-optimization/115254 | |
7878 | * tree-vect-slp.cc (vect_build_slp_tree): Only account | |
7879 | multi-lane SLP to limit. | |
7880 | ||
7881 | 2024-05-28 Richard Biener <rguenther@suse.de> | |
7882 | ||
7883 | * tree-vect-loop.cc (get_initial_defs_for_reduction): Convert | |
7884 | neutral op to the vector component type. | |
7885 | ||
7886 | 2024-05-28 liuhongt <hongtao.liu@intel.com> | |
7887 | ||
7888 | * config/i386/sse.md | |
7889 | (<avx512>_<complexopname>_<mode>_mask<round_name>): Align | |
7890 | operands' predicate with corresponding expander. | |
7891 | (<avx512>_<complexopname>_<mode><maskc_name><round_name>): | |
7892 | Ditto. | |
7893 | ||
7894 | 2024-05-28 Xi Ruoyao <xry111@xry111.site> | |
7895 | ||
7896 | PR target/115169 | |
7897 | * config/loongarch/loongarch.cc | |
7898 | (loongarch_expand_conditional_move): Guard REGNO with REG_P. | |
7899 | ||
7900 | 2024-05-27 Andrew Pinski <quic_apinski@quicinc.com> | |
7901 | ||
7902 | PR tree-optimization/115238 | |
7903 | * generic-match-head.cc (bitwise_inverted_equal_p): Use | |
7904 | uniform_integer_cst_p instead of checking INTEGER_CST. | |
7905 | * gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Likewise. | |
7906 | ||
7907 | 2024-05-27 Gaius Mulley <gaiusmod2@gmail.com> | |
7908 | ||
7909 | * doc/gm2.texi: Replace all occurrences of xref | |
7910 | {foo, , , gm2} with xref {foo}. | |
7911 | ||
7912 | 2024-05-27 Richard Biener <rguenther@suse.de> | |
7913 | ||
7914 | * tree-ssa-structalias.cc (scc_visit): Mark the node we | |
7915 | collapse to as being in a component. | |
7916 | ||
7917 | 2024-05-27 Richard Biener <rguenther@suse.de> | |
7918 | ||
7919 | PR tree-optimization/115220 | |
7920 | PR tree-optimization/115226 | |
7921 | * tree-ssa-sink.cc (statement_sink_location): When ignoring | |
7922 | paths to kills when sinking stores make sure the final | |
7923 | sink location is still post-dominated by the original one. | |
7924 | Otherwise we'd need to insert a PHI node to merge virtual operands. | |
7925 | ||
7926 | 2024-05-27 TheShermanTanker <tanksherman27@gmail.com> | |
7927 | ||
7928 | * config/mingw/mingw32.h: Add new define for POSIX | |
7929 | threads. | |
7930 | ||
7931 | 2024-05-27 Richard Biener <rguenther@suse.de> | |
7932 | ||
7933 | PR tree-optimization/115232 | |
7934 | * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle | |
7935 | failure to demangle gracefully. | |
7936 | ||
7937 | 2024-05-27 Gerald Pfeifer <gerald@pfeifer.com> | |
7938 | ||
7939 | * doc/gm2.texi (What is GNU Modula-2): Move gcc.gnu.org links to | |
7940 | https. | |
7941 | (Other languages): Ditto. And fix casing of GCC. | |
7942 | ||
7943 | 2024-05-27 Liao Shihua <shihua@iscas.ac.cn> | |
7944 | ||
7945 | * config/riscv/riscv.cc (riscv_rtx_costs): Add TARGET_ZMMUL. | |
7946 | ||
7947 | 2024-05-27 Maciej W. Rozycki <macro@orcam.me.uk> | |
7948 | ||
7949 | * doc/invoke.texi (Option Summary): Add `-md', `-md-float', and | |
7950 | `-mg-float' options. Reorder, matching VAX Options. | |
7951 | (VAX Options): Reword the description of `-mg' option. Add | |
7952 | `-md', `-md-float', and `-mg-float' options. | |
7953 | ||
7954 | 2024-05-27 Abe Skolnik <abe_skolnik@yahoo.com> | |
7955 | ||
7956 | PR target/79646 | |
7957 | * config/vax/vax.opt (md, md-float, mg, mg-float): Correct | |
7958 | descriptions. | |
7959 | ||
7960 | 2024-05-27 Lyut Nersisyan <lyut.nersisyan@gmail.com> | |
7961 | ||
7962 | * config/riscv/riscv.md (<optab>_shift_reverse<X:mode>): New pattern. | |
7963 | ||
7964 | 2024-05-27 Levy Hsu <admin@levyhsu.com> | |
7965 | H.J. Lu <hjl.tools@gmail.com> | |
7966 | ||
7967 | PR target/115146 | |
7968 | * config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): Replace arithmatic shift | |
7969 | gen_ashrv4hi3 with logic shift gen_lshrv4hi3. | |
7970 | Replace gen_vlshrv8hi3 with gen_lshrv8hi3 and gen_vashlv8hi3 with gen_ashlv8hi3. | |
7971 | ||
7972 | 2024-05-27 Pan Li <pan2.li@intel.com> | |
7973 | ||
7974 | * genmatch.cc (dt_node::gen_kids_1): Fix indenet mis-aligned. | |
7975 | ||
7976 | 2024-05-26 Jeff Law <jlaw@ventanamicro.com> | |
7977 | ||
7978 | * config/riscv/riscv.cc (riscv_build_integer_one): Verify there | |
7979 | are no bits left to set in the constant when generating bseti. | |
7980 | (riscv_built_integer): Synthesize ~value and if it's cheap use it | |
7981 | with a trailing xori with -1. | |
7982 | ||
7983 | 2024-05-26 Gerald Pfeifer <gerald@pfeifer.com> | |
7984 | ||
7985 | * doc/extend.texi (Attribute Syntax): Use @samp{=} instead of @code{=}. | |
7986 | (Extended Asm): Ditto. | |
7987 | ||
7988 | 2024-05-26 Jeff Law <jlaw@ventanamicro.com> | |
7989 | ||
7990 | * config/riscv/riscv.cc (riscv_build_integer_1): Try generating | |
7991 | a nearby simpler constant, then using a final addi to set low | |
7992 | bits properly. | |
7993 | ||
7994 | 2024-05-26 Andrew MacLeod <amacleod@redhat.com> | |
7995 | ||
7996 | PR tree-optimization/115208 | |
7997 | * value-query.cc (range_query::create_gori): Confirm gori_map is NULL. | |
7998 | (range_query::destroy_gori): Free gori_map if one was allocated. | |
7999 | ||
8000 | 2024-05-25 Jeff Law <jlaw@ventanamicro.com> | |
8001 | ||
8002 | * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Handle | |
8003 | more logical simplifications. | |
8004 | ||
8005 | 2024-05-24 Jeff Law <jlaw@ventanamicro.com> | |
8006 | ||
8007 | * config/riscv/predicates.md (arith_operand_or_mode_mask): Renamed to.. | |
8008 | (arith_or_mode_mask_or_zbs_operand): New predicate. | |
8009 | * config/riscv/riscv.md (and<mode>3): Update predicate for operand 2. | |
8010 | * config/riscv/riscv.cc (riscv_build_integer_1): Use bclri to clear | |
8011 | bits, particularly bits 31..63 when profitable to do so. | |
8012 | ||
8013 | 2024-05-24 Richard Sandiford <richard.sandiford@arm.com> | |
8014 | ||
8015 | PR tree-optimization/115192 | |
8016 | * tree-data-ref.cc (create_intersect_range_checks): Take the | |
8017 | alignment of the access sizes into account. | |
8018 | ||
8019 | 2024-05-24 Gaius Mulley <gaiusmod2@gmail.com> | |
8020 | ||
8021 | * doc/gm2.texi: Replace all occurrences of xref {, , , gm2} | |
8022 | with xref {, , , m2}. | |
8023 | ||
8024 | 2024-05-24 Manolis Tsamis <manolis.tsamis@vrull.eu> | |
8025 | ||
8026 | * match.pd: Allow no-op view_convert between permutes. | |
8027 | ||
8028 | 2024-05-24 Richard Biener <rguenther@suse.de> | |
8029 | ||
8030 | PR tree-optimization/115144 | |
8031 | * tree-ssa-sink.cc (do_not_sink): New function, split out | |
8032 | from ... | |
8033 | (select_best_block): Here. First pick valid block to | |
8034 | sink to. From that search for the best valid block, | |
8035 | avoiding sinking across conditions to exceptional code. | |
8036 | (sink_code_in_bb): When updating vuses of stores in | |
8037 | paths we do not sink a store to make sure we didn't | |
8038 | pick a dominating sink location. | |
8039 | ||
8040 | 2024-05-24 Andrew Pinski <quic_apinski@quicinc.com> | |
8041 | ||
8042 | * tree-ssa-phiprop.cc (phiprop_insert_phi): Add | |
8043 | dce_ssa_names argument. Add the phi's result to it. | |
8044 | (propagate_with_phi): Add dce_ssa_names argument. | |
8045 | Update call to phiprop_insert_phi. | |
8046 | (pass_phiprop::execute): Update call to propagate_with_phi. | |
8047 | Call simple_dce_from_worklist if there was a change. | |
8048 | ||
8049 | 2024-05-24 Richard Biener <rguenther@suse.de> | |
8050 | ||
8051 | * tree-vect-slp.cc (vect_build_slp_instance): Do not split | |
8052 | store dataref groups on loop SLP discovery failure but create | |
8053 | a single SLP instance for the stores but branch to SLP sub-trees | |
8054 | and merge with a series of VEC_PERM nodes. | |
8055 | ||
8056 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8057 | ||
8058 | * gimple-range-edge.h (range_query::condexpr_adjust): Delete. | |
8059 | * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use | |
8060 | gori_ssa routine. | |
8061 | (fold_using_range::range_of_address): Likewise. | |
8062 | (fold_using_range::range_of_phi): Likewise. | |
8063 | (fold_using_range::condexpr_adjust): Relocated from gori_compute. | |
8064 | (fold_using_range::range_of_cond_expr): Use local condexpr_adjust. | |
8065 | (fur_source::register_outgoing_edges): Use gori_ssa routine. | |
8066 | * gimple-range-fold.h (gori_ssa): Rename from gori_bb. | |
8067 | (fold_using_range::condexpr_adjust): Add prototype. | |
8068 | * gimple-range-gori.cc (gori_compute::condexpr_adjust): Relocate. | |
8069 | * gimple-range-gori.h (gori_compute::condexpr_adjust): Delete. | |
8070 | ||
8071 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8072 | ||
8073 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Use gori_ssa. | |
8074 | (ranger_cache::dump): Likewise. | |
8075 | (ranger_cache::get_global_range): Likewise. | |
8076 | (ranger_cache::set_global_range): Likewise. | |
8077 | (ranger_cache::register_inferred_value): Likewise. | |
8078 | * gimple-range-edge.h (gimple_outgoing_range::map): Remove. | |
8079 | * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use | |
8080 | gori_ssa. | |
8081 | (fold_using_range::range_of_address): Likewise. | |
8082 | (fold_using_range::range_of_phi): Likewise. | |
8083 | (fur_source::register_outgoing_edges): Likewise. | |
8084 | * gimple-range-fold.h (fur_source::query): Make const. | |
8085 | (gori_ssa): New. | |
8086 | * gimple-range-gori.cc (gori_map::dump): Use 'this' pointer. | |
8087 | (gori_compute::gori_compute): Construct with a gori_map. | |
8088 | * gimple-range-gori.h (gori_compute:gori_compute): Change | |
8089 | prototype. | |
8090 | (gori_compute::map): Delete. | |
8091 | (gori_compute::m_map): Change to a reference. | |
8092 | (FOR_EACH_GORI_IMPORT_NAME): Change parameter gori to gorimap. | |
8093 | (FOR_EACH_GORI_EXPORT_NAME): Likewise. | |
8094 | * gimple-range-path.cc (path_range_query::compute_ranges_in_block): | |
8095 | Use gori_ssa method. | |
8096 | (path_range_query::compute_exit_dependencies): Likewise. | |
8097 | * gimple-range.cc (gimple_ranger::range_of_stmt): Likewise. | |
8098 | (gimple_ranger::register_transitive_inferred_ranges): Likewise. | |
8099 | * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): | |
8100 | Likewise. | |
8101 | * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise. | |
8102 | * tree-vrp.cc (remove_unreachable::handle_early): Likewise. | |
8103 | (remove_unreachable::remove_and_update_globals): Likewise. | |
8104 | * value-query.cc (range_query::create_gori): Create gori map. | |
8105 | (range_query::share_query): Copy gori map member. | |
8106 | (range_query::range_query): Initiialize gori_map member. | |
8107 | * value-query.h (range_query::gori_ssa): New. | |
8108 | (range_query::m_map): New. | |
8109 | ||
8110 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8111 | ||
8112 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Create | |
8113 | GORi via the range_query instead of a local member. | |
8114 | (ranger_cache::dump_bb): Use gori via from the range_query parent. | |
8115 | (ranger_cache::get_global_range): Likewise. | |
8116 | (ranger_cache::set_global_range): Likewise. | |
8117 | (ranger_cache::edge_range): Likewise. | |
8118 | (anger_cache::block_range): Likewise. | |
8119 | (ranger_cache::fill_block_cache): Likewise. | |
8120 | (ranger_cache::range_from_dom): Likewise. | |
8121 | (ranger_cache::register_inferred_value): Likewise. | |
8122 | * gimple-range-cache.h (ranger_cache::m_gori): Delete. | |
8123 | * gimple-range-fold.cc (fur_source::fur_source): Set m_depend_p. | |
8124 | (fur_depend::fur_depend): Remove gori parameter. | |
8125 | * gimple-range-fold.h (fur_source::gori): Adjust. | |
8126 | (fur_source::m_gori): Delete. | |
8127 | (fur_source::m_depend): New. | |
8128 | (fur_depend::fur_depend): Adjust prototype. | |
8129 | * gimple-range-path.cc (path_range_query::path_range_query): Share | |
8130 | ranger oracles. | |
8131 | (path_range_query::range_defined_in_block): Use oracle directly. | |
8132 | (path_range_query::compute_ranges_in_block): Use new gori() method. | |
8133 | (path_range_query::adjust_for_non_null_uses): Use oracle directly. | |
8134 | (path_range_query::compute_exit_dependencies): Likewise. | |
8135 | (jt_fur_source::jt_fur_source): No gori in the parameters. | |
8136 | (path_range_query::range_of_stmt): Likewise. | |
8137 | (path_range_query::compute_outgoing_relations): Likewise. | |
8138 | * gimple-range.cc (gimple_ranger::fold_range_internal): Likewise. | |
8139 | (gimple_ranger::range_of_stmt): Access gori via gori () method. | |
8140 | (assume_query::range_of_expr): Create a gori object. | |
8141 | (assume_query::~assume_query): Destroy a gori object. | |
8142 | (assume_query::calculate_op): Remove old gori() accessor. | |
8143 | * gimple-range.h (gimple_ranger::gori): Delete. | |
8144 | (assume_query::~assume_query): New. | |
8145 | (assume_query::m_gori): Delete. | |
8146 | * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): use | |
8147 | gori () method. | |
8148 | * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise. | |
8149 | * value-query.cc (default_gori): New. | |
8150 | (range_query::create_gori): New. | |
8151 | (range_query::destroy_gori): New. | |
8152 | (range_query::share_oracles): Set m_gori. | |
8153 | (range_query::range_query): Set m_gori to default. | |
8154 | (range_query::~range_query): call destroy gori. | |
8155 | * value-query.h (range_query): Adjust prototypes | |
8156 | (range_query::m_gori): New. | |
8157 | ||
8158 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8159 | ||
8160 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust | |
8161 | m_gori constructor. | |
8162 | (ranger_cache::edge_range): Use renamed edge_range_p name. | |
8163 | (ranger_cache::range_from_dom): Likewise. | |
8164 | * gimple-range-edge.h (gimple_outgoing_range::condexpr_adjust): New. | |
8165 | (gimple_outgoing_range::has_edge_range_p): New. | |
8166 | (gimple_outgoing_range::dump): New. | |
8167 | (gimple_outgoing_range::compute_operand_range): New. | |
8168 | (gimple_outgoing_range::map): New. | |
8169 | * gimple-range-fold.cc (fur_source::register_outgoing_edges ): Use | |
8170 | renamed edge_range_p routine | |
8171 | * gimple-range-gori.cc (gori_compute::gori_compute): Adjust | |
8172 | constructor. | |
8173 | (gori_compute::~gori_compute): New. | |
8174 | (gori_compute::edge_range_p): Rename from outgoing_edge_range_p | |
8175 | and use inherited routine instead of member method. | |
8176 | * gimple-range-gori.h (class gori_compute): Inherit from | |
8177 | gimple_outgoing_range, adjust protoypes. | |
8178 | (gori_compute::outgpoing): Delete. | |
8179 | * gimple-range-path.cc (path_range_query::compute_ranges_in_block): Use | |
8180 | renamed edge_range_p routine. | |
8181 | * tree-ssa-loop-unswitch.cc (evaluate_control_stmt_using_entry_checks): | |
8182 | Likewise. | |
8183 | ||
8184 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8185 | ||
8186 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Access | |
8187 | gori_map via member call. | |
8188 | (ranger_cache::dump_bb): Likewise. | |
8189 | (ranger_cache::get_global_range): Likewise. | |
8190 | (ranger_cache::set_global_range): Likewise. | |
8191 | (ranger_cache::register_inferred_value): Likewise. | |
8192 | * gimple-range-fold.cc (fold_using_range::range_of_range_op): Likewise. | |
8193 | (fold_using_range::range_of_address): Likewise. | |
8194 | (fold_using_range::range_of_phi): Likewise. | |
8195 | * gimple-range-gori.cc (gori_compute::compute_operand_range_switch): | |
8196 | likewise. | |
8197 | (gori_compute::compute_operand_range): Likewise. | |
8198 | (gori_compute::compute_logical_operands): Likewise. | |
8199 | (gori_compute::refine_using_relation): Likewise. | |
8200 | (gori_compute::compute_operand1_and_operand2_range): Likewise. | |
8201 | (gori_compute::may_recompute_p): Likewise. | |
8202 | (gori_compute::has_edge_range_p): Likewise. | |
8203 | (gori_compute::outgoing_edge_range_p): Likewise. | |
8204 | (gori_compute::condexpr_adjust): Likewise. | |
8205 | * gimple-range-gori.h (class gori_compute): Do not inherit from | |
8206 | gori_map. | |
8207 | (gori_compute::m_map): New. | |
8208 | * gimple-range-path.cc (gimple-range-path.cc): Use gori_map member. | |
8209 | (path_range_query::compute_exit_dependencies): Likewise. | |
8210 | * gimple-range.cc (gimple_ranger::range_of_stmt): Likewise. | |
8211 | (gimple_ranger::register_transitive_inferred_ranges): Likewise. | |
8212 | * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): Likewise. | |
8213 | * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise. | |
8214 | * tree-vrp.cc (remove_unreachable::handle_early): Likewise. | |
8215 | (remove_unreachable::remove_and_update_globals): Likewise. | |
8216 | ||
8217 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8218 | ||
8219 | * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range): | |
8220 | Do not allocate a range allocator at construction time. | |
8221 | (gimple_outgoing_range::~gimple_outgoing_range): Delete allocator | |
8222 | if one was allocated. | |
8223 | (gimple_outgoing_range::set_switch_limit): New. | |
8224 | (gimple_outgoing_range::switch_edge_range): Create an allocator if one | |
8225 | does not exist. | |
8226 | (gimple_outgoing_range::edge_range_p): Check for zero edges. | |
8227 | * gimple-range-edge.h (class gimple_outgoing_range): Adjust prototypes. | |
8228 | ||
8229 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8230 | ||
8231 | PR tree-optimization/113879 | |
8232 | * gimple-range-fold.cc (op1_range): New. | |
8233 | (op2_range): New. | |
8234 | * gimple-range-fold.h (op1_range): New prototypes. | |
8235 | (op2_range): New prototypes. | |
8236 | * gimple-range-infer.cc (gimple_infer_range::add_range): Do not | |
8237 | add an inferred range if it is VARYING. | |
8238 | (gimple_infer_range::gimple_infer_range): Add inferred ranges | |
8239 | for any range-op statements if requested. | |
8240 | * gimple-range-infer.h (gimple_infer_range): Add parameter. | |
8241 | ||
8242 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8243 | ||
8244 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Create an infer | |
8245 | oracle instead of a local member. | |
8246 | (ranger_cache::~ranger_cache): Destroy the oracle. | |
8247 | (ranger_cache::edge_range): Use oracle. | |
8248 | (ranger_cache::fill_block_cache): Likewise. | |
8249 | (ranger_cache::range_from_dom): Likewise. | |
8250 | (ranger_cache::apply_inferred_ranges): Likewise. | |
8251 | * gimple-range-cache.h (ranger_cache::m_exit): Delete. | |
8252 | * gimple-range-infer.cc (infer_oracle): New static object; | |
8253 | (class infer_oracle): New. | |
8254 | (non_null_wrapper::non_null_wrapper): New. | |
8255 | (non_null_wrapper::add_nonzero): New. | |
8256 | (non_null_wrapper::add_range): New. | |
8257 | (non_null_loadstore): Use nonnull_wrapper. | |
8258 | (gimple_infer_range::gimple_infer_range): New alternate constructor. | |
8259 | (exit_range::stmt): New. | |
8260 | (infer_range_manager::has_range_p): Combine seperate methods. | |
8261 | (infer_range_manager::maybe_adjust_range): Adjust has_range_p call. | |
8262 | (infer_range_manager::add_ranges): New. | |
8263 | (infer_range_manager::add_range): Take stmt rather than BB. | |
8264 | (infer_range_manager::add_nonzero): Adjust from BB to stmt. | |
8265 | * gimple-range-infer.h (class gimple_infer_range): Adjust methods. | |
8266 | (infer_range_oracle): New. | |
8267 | (class infer_range_manager): Inherit from infer_range_oracle. | |
8268 | Adjust methods. | |
8269 | * gimple-range-path.cc (path_range_query::range_defined_in_block): Use | |
8270 | oracle. | |
8271 | (path_range_query::adjust_for_non_null_uses): Likewise. | |
8272 | * gimple-range.cc (gimple_ranger::range_on_edge): Likewise | |
8273 | (gimple_ranger::register_transitive_inferred_ranges): Likewise. | |
8274 | * value-query.cc (default_infer_oracle): New. | |
8275 | (range_query::create_infer_oracle): New. | |
8276 | (range_query::destroy_infer_oracle): New. | |
8277 | (range_query::share_query): Copy infer pointer. | |
8278 | (range_query::range_query): Initialize infer pointer. | |
8279 | (range_query::~range_query): destroy infer object. | |
8280 | * value-query.h (range_query::infer_oracle): New. | |
8281 | (range_query::create_infer_oracle): New prototype. | |
8282 | (range_query::destroy_infer_oracle): New prototype. | |
8283 | (range_query::m_infer): New. | |
8284 | ||
8285 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8286 | ||
8287 | * gimple-range.cc (gimple_ranger::gimple_ranger): Share the | |
8288 | components from ranger_cache. | |
8289 | (gimple_ranger::~gimple_ranger): Don't clear pointer. | |
8290 | * value-query.cc (range_query::share_query): New. | |
8291 | (range_query::range_query): Clear shared component flag. | |
8292 | (range_query::~range_query): Don't free shared component copies. | |
8293 | * value-query.h (share_query): New prototype. | |
8294 | (m_shared_copy_p): New member. | |
8295 | ||
8296 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8297 | ||
8298 | * gimple-range-cache.cc (ranger_cache::dump_bb): Use m_relation. | |
8299 | (ranger_cache::fill_block_cache): Likewise | |
8300 | * gimple-range-fold.cc (fur_stmt::get_phi_operand): Use new names. | |
8301 | (fur_depend::register_relation): Likewise. | |
8302 | (fold_using_range::range_of_phi): Likewise. | |
8303 | * gimple-range-path.cc (path_range_query::path_range_query): Likewise. | |
8304 | (path_range_query::~path_range_query): Likewise. | |
8305 | (ath_range_query::compute_ranges): Likewise. | |
8306 | (jt_fur_source::register_relation): Likewise. | |
8307 | (jt_fur_source::query_relation): Likewise. | |
8308 | (path_range_query::maybe_register_phi_relation): Likewise. | |
8309 | * gimple-range-path.h (get_path_oracle): Likewise. | |
8310 | * gimple-range.cc (gimple_ranger::gimple_ranger): Likewise. | |
8311 | (gimple_ranger::~gimple_ranger): Likewise. | |
8312 | * value-query.cc (range_query::create_relation_oracle): Likewise. | |
8313 | (range_query::destroy_relation_oracle): Likewise. | |
8314 | (range_query::share_oracles): Likewise. | |
8315 | (range_query::range_query): Likewise. | |
8316 | * value-query.h (value_query::relation): Rename from oracle. | |
8317 | (m_relation): Rename from m_oracle. | |
8318 | * value-relation.cc (relation_oracle::query): Rename from | |
8319 | query_relation. | |
8320 | (equiv_oracle::query): Likewise. | |
8321 | (equiv_oracle::record): Rename from register_relation. | |
8322 | (relation_oracle::record): Likewise. | |
8323 | (dom_oracle::record): Likewise. | |
8324 | (dom_oracle::query): Rename from query_relation. | |
8325 | (path_oracle::record): Rename from register_relation. | |
8326 | (path_oracle::query): Rename from query_relation. | |
8327 | * value-relation.h (*::record): Rename from register_relation. | |
8328 | (*::query): Rename from query_relation. | |
8329 | ||
8330 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8331 | ||
8332 | * gimple-range-cache.cc (ranger_cache::dump_bb): Remove check for | |
8333 | NULL oracle pointer. | |
8334 | (ranger_cache::fill_block_cache): Likewise. | |
8335 | * gimple-range-fold.cc (fur_stmt::get_phi_operand): Likewise. | |
8336 | (fur_depend::fur_depend): Likewise. | |
8337 | (fur_depend::register_relation): Likewise, use qury_relation. | |
8338 | (fold_using_range::range_of_phi): Likewise. | |
8339 | (fold_using_range::relation_fold_and_or): Likewise. | |
8340 | * gimple-range-fold.h (fur_source::m_oracle): Delete. Oracle | |
8341 | can be accessed dirctly via m_query now. | |
8342 | * gimple-range-path.cc (path_range_query::path_range_query): | |
8343 | Adjust for oracle reference pointer. | |
8344 | (path_range_query::compute_ranges): Likewise. | |
8345 | (jt_fur_source::jt_fur_source): Adjust for no m_oracle member. | |
8346 | (jt_fur_source::register_relation): Do not check for NULL | |
8347 | pointer. | |
8348 | (jt_fur_source::query_relation): Likewise. | |
8349 | * gimple-range.cc (gimple_ranger::gimple_ranger): Adjust for | |
8350 | reference pointer. | |
8351 | * value-query.cc (default_relation_oracle): New. | |
8352 | (range_query::create_relation_oracle): Relocate from header. | |
8353 | Ensure not being added to global query. | |
8354 | (range_query::destroy_relation_oracle): Relocate from header. | |
8355 | (range_query::range_query): Initailize to default oracle. | |
8356 | (ange_query::~range_query): Call destroy_relation_oracle. | |
8357 | * value-query.h (class range_query): Adjust prototypes. | |
8358 | (range_query::create_relation_oracle): Move to source file. | |
8359 | (range_query::destroy_relation_oracle): Move to source file. | |
8360 | * value-relation.cc (relation_oracle::validate_relation): Delete. | |
8361 | (relation_oracle::register_stmt): Rename to register_relation. | |
8362 | (relation_oracle::register_edge): Likewise. | |
8363 | * value-relation.h (register_stmt): Rename to register_relation and | |
8364 | provide default function in base class. | |
8365 | (register_edge): Likewise. | |
8366 | (relation_oracle::validate_relation): Delete. | |
8367 | (relation_oracle::query_relation): Provide default in base class. | |
8368 | (relation_oracle::dump): Likewise. | |
8369 | (relation_oracle::equiv_set): Likewise. | |
8370 | (default_relation_oracle): New extenal reference. | |
8371 | (partial_equiv_set, add_partial_equiv): Move to protected. | |
8372 | ||
8373 | 2024-05-23 Andrew MacLeod <amacleod@redhat.com> | |
8374 | ||
8375 | * gimple-range-cache.cc (ranger_cache::ranger_cache): Call | |
8376 | create_relation_oracle. | |
8377 | (ranger_cache::~ranger_cache): Call destroy_relation_oracle. | |
8378 | * gimple-range-fold.cc (fur_stmt::get_phi_operand): Check for | |
8379 | relation oracle bnefore calling query_relation. | |
8380 | (fold_using_range::range_of_phi): Likewise. | |
8381 | * gimple-range-path.cc (path_range_query::~path_range_query): Set | |
8382 | relation oracle pointer to NULL when done. | |
8383 | * gimple-range.cc (gimple_ranger::~gimple_ranger): Likewise. | |
8384 | * value-query.cc (range_query::~range_query): Ensure any | |
8385 | relation oracle is destroyed. | |
8386 | (range_query::query_relation): relocate to relation_oracle object. | |
8387 | * value-query.h (class range_query): Adjust method proototypes. | |
8388 | (range_query::create_relation_oracle): New. | |
8389 | (range_query::destroy_relation_oracle): New. | |
8390 | * value-relation.cc (relation_oracle::query_relation): Relocate | |
8391 | from range query class. | |
8392 | * value-relation.h (Call relation_oracle): New prototypes. | |
8393 | ||
8394 | 2024-05-23 Pan Li <pan2.li@intel.com> | |
8395 | ||
8396 | * generic-match-head.cc (types_match): Add overloaded types_match | |
8397 | for 3 types. | |
8398 | * gimple-match-head.cc (types_match): Ditto. | |
8399 | * match.pd: Leverage overloaded types_match. | |
8400 | ||
8401 | 2024-05-23 Richard Biener <rguenther@suse.de> | |
8402 | ||
8403 | PR tree-optimization/115197 | |
8404 | * tree-loop-distribution.cc (copy_loop_before): Constant PHI | |
8405 | args remain the same. | |
8406 | ||
8407 | 2024-05-23 Richard Biener <rguenther@suse.de> | |
8408 | ||
8409 | PR tree-optimization/115199 | |
8410 | * tree-ssa-structalias.cc (process_constraint): Also | |
8411 | record &ANYTHING = X as *ANYTING = X in the end. | |
8412 | ||
8413 | 2024-05-23 Richard Biener <rguenther@suse.de> | |
8414 | ||
8415 | PR tree-optimization/115138 | |
8416 | * tree-ssa-alias.cc (ptrs_compare_unequal): Make sure | |
8417 | pt.vars_contains_nonlocal differs since we do not represent | |
8418 | FUNCTION_DECLs or LABEL_DECLs in vars explicitly. | |
8419 | ||
8420 | 2024-05-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
8421 | ||
8422 | PR target/109549 | |
8423 | * config/s390/s390.cc (TARGET_NOCE_CONVERSION_PROFITABLE_P): | |
8424 | Define. | |
8425 | (s390_noce_conversion_profitable_p): Implement. | |
8426 | ||
8427 | 2024-05-23 Aldy Hernandez <aldyh@redhat.com> | |
8428 | ||
8429 | PR tree-optimization/115191 | |
8430 | * tree-ssa-phiopt.cc (value_replacement): Use Value_Range instead | |
8431 | of int_range_max. | |
8432 | ||
8433 | 2024-05-23 Andrew Pinski <quic_apinski@quicinc.com> | |
8434 | Joel Jones <quic_joeljone@quicinc.com> | |
8435 | Wei Zhao <quic_wezhao@quicinc.com> | |
8436 | ||
8437 | * config/aarch64/aarch64-cores.def (oryon-1): New entry. | |
8438 | * config/aarch64/aarch64-tune.md: Regenerate. | |
8439 | * doc/invoke.texi (AArch64 Options): Document oryon-1. | |
8440 | ||
8441 | 2024-05-22 Pengxuan Zheng <quic_pzheng@quicinc.com> | |
8442 | ||
8443 | PR target/102171 | |
8444 | * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_HIGH_BUILTINS): | |
8445 | New macro to create definitions for all vget_high intrinsics. | |
8446 | (VGET_HIGH_BUILTIN): Likewise. | |
8447 | (enum aarch64_builtins): Add vget_high function codes. | |
8448 | (AARCH64_SIMD_VGET_LOW_BUILTINS): Delete duplicate macro. | |
8449 | (aarch64_general_fold_builtin): Fold vget_high calls. | |
8450 | * config/aarch64/aarch64-simd-builtins.def: Delete vget_high builtins. | |
8451 | * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Delete. | |
8452 | (aarch64_vget_hi_halfv8bf): Likewise. | |
8453 | * config/aarch64/arm_neon.h (__attribute__): Delete. | |
8454 | (vget_high_f16): Likewise. | |
8455 | (vget_high_f32): Likewise. | |
8456 | (vget_high_f64): Likewise. | |
8457 | (vget_high_p8): Likewise. | |
8458 | (vget_high_p16): Likewise. | |
8459 | (vget_high_p64): Likewise. | |
8460 | (vget_high_s8): Likewise. | |
8461 | (vget_high_s16): Likewise. | |
8462 | (vget_high_s32): Likewise. | |
8463 | (vget_high_s64): Likewise. | |
8464 | (vget_high_u8): Likewise. | |
8465 | (vget_high_u16): Likewise. | |
8466 | (vget_high_u32): Likewise. | |
8467 | (vget_high_u64): Likewise. | |
8468 | (vget_high_bf16): Likewise. | |
8469 | ||
8470 | 2024-05-22 Eric Botcazou <ebotcazou@adacore.com> | |
8471 | ||
8472 | PR rtl-optimization/115038 | |
8473 | * fold-mem-offsets.cc (fold_offsets): Return 0 if the defining | |
8474 | instruction of the register is frame related. | |
8475 | ||
8476 | 2024-05-22 Roger Sayle <roger@nextmovesoftware.com> | |
8477 | ||
8478 | * config/i386/i386.cc (ix86_rtx_costs) <case CONST_INT>: | |
8479 | A CONST_INT that isn't x86_64_immediate_operand requires an extra | |
8480 | (expensive) movabsq insn to load, so return COSTS_N_INSNS (1) + 1. | |
8481 | ||
8482 | 2024-05-22 Roger Sayle <roger@nextmovesoftware.com> | |
8483 | ||
8484 | * except.cc (output_function_exception_table): Move call to | |
8485 | get_personality_function after targetm_common.except_unwind_info | |
8486 | check, to avoid ICE on targets that don't support exceptions. | |
8487 | ||
8488 | 2024-05-22 Richard Biener <rguenther@suse.de> | |
8489 | ||
8490 | * tree-vect-slp.cc (change_vec_perm_layout): Ignore an | |
8491 | input partition of -1. | |
8492 | ||
8493 | 2024-05-22 Richard Biener <rguenther@suse.de> | |
8494 | ||
8495 | * tree-vect-slp.cc (vect_schedule_slp_node): Avoid looking | |
8496 | at SLP_REPRESENTATIVE for VEC_PERM nodes. | |
8497 | ||
8498 | 2024-05-22 Richard Biener <rguenther@suse.de> | |
8499 | ||
8500 | * tree-vect-stmts.cc (vect_check_store_rhs): Look at *rhs | |
8501 | only when it's a vec_constant_def. | |
8502 | (vect_is_simple_use): When we have no representative for | |
8503 | an internal node, fill in *op with error_mark_node. | |
8504 | ||
8505 | 2024-05-22 Richard Biener <rguenther@suse.de> | |
8506 | ||
8507 | * doc/invoke.texi (C++ Modules): Fix typo. | |
8508 | ||
8509 | 2024-05-22 Jakub Jelinek <jakub@redhat.com> | |
8510 | ||
8511 | PR tree-optimization/115152 | |
8512 | * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes_addr): If | |
8513 | !si->full_string_p, clear *nulterm and set maxlen to nbytes. | |
8514 | ||
8515 | 2024-05-22 Jakub Jelinek <jakub@redhat.com> | |
8516 | ||
8517 | PR sanitizer/115172 | |
8518 | * ubsan.cc (instrument_bool_enum_load): If rhs is not in generic | |
8519 | address space, use qualified version of utype with the right | |
8520 | address space. Formatting fix. | |
8521 | ||
8522 | 2024-05-22 Haochen Jiang <haochen.jiang@intel.com> | |
8523 | ||
8524 | PR target/115069 | |
8525 | * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): | |
8526 | Do not enable the optimization when AVX512BW is not enabled. | |
8527 | ||
8528 | 2024-05-21 Vineet Gupta <vineetg@rivosinc.com> | |
8529 | ||
8530 | * config/riscv/riscv.cc (riscv_expand_epilogue): Handle offset | |
8531 | being sum of two S12. | |
8532 | ||
8533 | 2024-05-21 Vineet Gupta <vineetg@rivosinc.com> | |
8534 | ||
8535 | PR target/105733 | |
8536 | * config/riscv/riscv.h: New macros for with aligned offsets. | |
8537 | * config/riscv/riscv.cc (riscv_split_sum_of_two_s12): New | |
8538 | function to split a sum of two s12 values into constituents. | |
8539 | (riscv_expand_prologue): Handle offset being sum of two S12. | |
8540 | (riscv_expand_epilogue): Ditto. | |
8541 | * config/riscv/riscv-protos.h (riscv_split_sum_of_two_s12): New. | |
8542 | ||
8543 | 2024-05-21 Andrew Pinski <quic_apinski@quicinc.com> | |
8544 | ||
8545 | PR tree-optimization/115154 | |
8546 | * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)): Disable | |
8547 | for 1bit signed types. | |
8548 | ||
8549 | 2024-05-21 Richard Biener <rguenther@suse.de> | |
8550 | ||
8551 | PR tree-optimization/115137 | |
8552 | * tree-ssa-structalias.cc (pt_solution_includes_const_pool): NONLOCAL | |
8553 | also includes constant pool entries. | |
8554 | ||
8555 | 2024-05-21 Richard Sandiford <richard.sandiford@arm.com> | |
8556 | ||
8557 | * hard-reg-set.h (target_hard_regs::x_eh_return_data_regs): New field. | |
8558 | (eh_return_data_regs): New macro. | |
8559 | * reginfo.cc (init_reg_sets_1): Initialize x_eh_return_data_regs. | |
8560 | * df-scan.cc (df_get_exit_block_use_set): Use it. | |
8561 | * ira-lives.cc (process_out_of_region_eh_regs): Likewise. | |
8562 | ||
8563 | 2024-05-21 Richard Biener <rguenther@suse.de> | |
8564 | ||
8565 | PR tree-optimization/115149 | |
8566 | * tree-ssa-live.cc (virtual_operand_live::get_live_in): | |
8567 | Explicitly track the first processed edge. | |
8568 | ||
8569 | 2024-05-21 liuhongt <hongtao.liu@intel.com> | |
8570 | ||
8571 | PR target/114427 | |
8572 | * config/i386/i386-expand.cc (expand_vec_perm_even_odd_pack): | |
8573 | Use pblendw instead of pand to clear upper bits. | |
8574 | ||
8575 | 2024-05-21 Kewen Lin <linkw@linux.ibm.com> | |
8576 | ||
8577 | * config/rs6000/rs6000.md (@ieee_128bit_vsx_neg<IEEE128>2): Remove | |
8578 | the use of operands[3]. | |
8579 | (@ieee_128bit_vsx_neg<IEEE128>2): Likewise. | |
8580 | (*ieee_128bit_vsx_nabs<mode>2): Likewise. | |
8581 | ||
8582 | 2024-05-21 Kewen Lin <linkw@linux.ibm.com> | |
8583 | ||
8584 | * config/rs6000/rs6000.md (mode attribute rreg): Remove useless | |
8585 | entries with modes TF, TD, V4SF and V2DF. | |
8586 | ||
8587 | 2024-05-21 Kewen Lin <linkw@linux.ibm.com> | |
8588 | ||
8589 | * config/rs6000/vector.md (define_expand vector_load_<mode>): Remove. | |
8590 | (vector_store_<mode>): Likewise. | |
8591 | ||
8592 | 2024-05-21 Kewen Lin <linkw@linux.ibm.com> | |
8593 | ||
8594 | * config/rs6000/rs6000-call.cc (rs6000_darwin64_record_arg_recurse): | |
8595 | Clean up TFmode and TDmode check with FLOAT128_2REG_P. | |
8596 | ||
8597 | 2024-05-21 Kewen Lin <linkw@linux.ibm.com> | |
8598 | ||
8599 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove | |
8600 | useless check on TARGET_P8_VECTOR && !TARGET_ALTIVEC and add an | |
8601 | assertion on !TARGET_VSX if !TARGET_ALTIVEC. | |
8602 | ||
8603 | 2024-05-21 Kewen Lin <linkw@linux.ibm.com> | |
8604 | ||
8605 | PR target/114402 | |
8606 | * config/rs6000/rs6000.cc (rs6000_generate_compare): Make IEEE128 | |
8607 | handling without vsx go with libcall. | |
8608 | ||
8609 | 2024-05-20 Andrew Pinski <quic_apinski@quicinc.com> | |
8610 | ||
8611 | PR tree-optimization/115143 | |
8612 | * tree-ssa-phiopt.cc (minmax_replacement): Check for empty | |
8613 | phi nodes for middle bbs for the case where middle bb is not empty. | |
8614 | ||
8615 | 2024-05-20 Pengxuan Zheng <quic_pzheng@quicinc.com> | |
8616 | ||
8617 | PR target/102171 | |
8618 | * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_LOW_BUILTINS): | |
8619 | New macro to create definitions for all vget_low intrinsics. | |
8620 | (VGET_LOW_BUILTIN): Likewise. | |
8621 | (enum aarch64_builtins): Add vget_low function codes. | |
8622 | (aarch64_general_fold_builtin): Fold vget_low calls. | |
8623 | * config/aarch64/aarch64-simd-builtins.def: Delete vget_low builtins. | |
8624 | * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Delete. | |
8625 | (aarch64_vget_lo_halfv8bf): Likewise. | |
8626 | * config/aarch64/arm_neon.h (__attribute__): Delete. | |
8627 | (vget_low_f16): Likewise. | |
8628 | (vget_low_f32): Likewise. | |
8629 | (vget_low_f64): Likewise. | |
8630 | (vget_low_p8): Likewise. | |
8631 | (vget_low_p16): Likewise. | |
8632 | (vget_low_p64): Likewise. | |
8633 | (vget_low_s8): Likewise. | |
8634 | (vget_low_s16): Likewise. | |
8635 | (vget_low_s32): Likewise. | |
8636 | (vget_low_s64): Likewise. | |
8637 | (vget_low_u8): Likewise. | |
8638 | (vget_low_u16): Likewise. | |
8639 | (vget_low_u32): Likewise. | |
8640 | (vget_low_u64): Likewise. | |
8641 | (vget_low_bf16): Likewise. | |
8642 | ||
8643 | 2024-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
8644 | ||
8645 | * config/aarch64/aarch64.cc (aarch64_rtx_costs): Improve CTZ costing. | |
8646 | ||
8647 | 2024-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
8648 | ||
8649 | * config/aarch64/aarch64.md (movsi_aarch64): Use '\;' to force | |
8650 | newline in 2-instruction pattern. | |
8651 | (movdi_aarch64): Likewise. | |
8652 | ||
8653 | 2024-05-20 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com> | |
8654 | ||
8655 | * config/aarch64/aarch64-ldp-fusion.cc: Rename generic parts of code | |
8656 | to avoid "ldp" and "stp". | |
8657 | ||
8658 | 2024-05-20 Mark Wielaard <mark@klomp.org> | |
8659 | ||
8660 | * config/riscv/riscv.opt.urls: Regenerate. | |
8661 | * config/i386/i386.opt.urls: Likewise. | |
8662 | ||
8663 | 2024-05-20 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com> | |
8664 | ||
8665 | * config/aarch64/aarch64-ldp-fusion.cc: Factor out a | |
8666 | target-independent interface and move it to the head of the file | |
8667 | ||
8668 | 2024-05-20 YunQiang Su <syq@gcc.gnu.org> | |
8669 | ||
8670 | * config/mips/mips.cc(mips_option_override): | |
8671 | Drop mips_lra_flag variable; | |
8672 | (mips_lra_p): Removed. | |
8673 | (TARGET_LRA_P): Remove definition here to use the default one. | |
8674 | * config/mips/mips.md(*mul_acc_si, *mul_acc_si_r3900, *mul_sub_si): | |
8675 | Drop mips_lra_flag variable. | |
8676 | * config/mips/mips.opt(-mlra): Removed. | |
8677 | * config/mips/mips.opt.urls(mlra): Removed. | |
8678 | ||
8679 | 2024-05-20 Haochen Jiang <haochen.jiang@intel.com> | |
8680 | ||
8681 | * common/config/i386/cpuinfo.h | |
8682 | (get_intel_cpu): Remove Xeon Phi cpus. | |
8683 | (get_available_features): Remove Xeon Phi ISAs. | |
8684 | * common/config/i386/i386-common.cc | |
8685 | (OPTION_MASK_ISA_AVX512PF_SET): Removed. | |
8686 | (OPTION_MASK_ISA_AVX512ER_SET): Ditto. | |
8687 | (OPTION_MASK_ISA2_AVX5124FMAPS_SET): Ditto. | |
8688 | (OPTION_MASK_ISA2_AVX5124VNNIW_SET): Ditto. | |
8689 | (OPTION_MASK_ISA_PREFETCHWT1_SET): Ditto. | |
8690 | (OPTION_MASK_ISA_AVX512F_UNSET): Remove AVX512PF and AVX512ER. | |
8691 | (OPTION_MASK_ISA_AVX512PF_UNSET): Removed. | |
8692 | (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto. | |
8693 | (OPTION_MASK_ISA2_AVX5124FMAPS_UNSET): Ditto. | |
8694 | (OPTION_MASK_ISA2_AVX5124VNNIW_UNSET): Ditto. | |
8695 | (OPTION_MASK_ISA_PREFETCHWT1_UNSET): Ditto. | |
8696 | (OPTION_MASK_ISA2_AVX512F_UNSET): Remove AVX5124FMAPS and | |
8697 | AVX5125VNNIW. | |
8698 | (ix86_handle_option): Remove Xeon Phi options. | |
8699 | (processor_names): Remove Xeon Phi cpus. | |
8700 | (processor_alias_table): Ditto. | |
8701 | * common/config/i386/i386-cpuinfo.h | |
8702 | (enum processor_types): Ditto. | |
8703 | (enum processor_features): Remove Xeon Phi ISAs. | |
8704 | * common/config/i386/i386-isas.h: Ditto. | |
8705 | * config.gcc: Remove Xeon Phi cpus and ISAs. | |
8706 | * config/i386/avx5124fmapsintrin.h: Remove intrin support. | |
8707 | * config/i386/avx5124vnniwintrin.h: Ditto. | |
8708 | * config/i386/avx512erintrin.h: Ditto. | |
8709 | * config/i386/avx512pfintrin.h: Ditto. | |
8710 | * config/i386/cpuid.h (bit_AVX512PF): Removed. | |
8711 | (bit_AVX512ER): Ditto. | |
8712 | (bit_PREFETCHWT1): Ditto. | |
8713 | (bit_AVX5124VNNIW): Ditto. | |
8714 | (bit_AVX5124FMAPS): Ditto. | |
8715 | * config/i386/driver-i386.cc | |
8716 | (host_detect_local_cpu): Remove Xeon Phi. | |
8717 | * config/i386/i386-builtin-types.def: Remove unused types. | |
8718 | * config/i386/i386-builtin.def (BDESC): Remove builtins. | |
8719 | * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins): Ditto. | |
8720 | * config/i386/i386-c.cc (ix86_target_macros_internal): Remove Xeon | |
8721 | Phi cpus and ISAs. | |
8722 | * config/i386/i386-expand.cc (ix86_expand_builtin): Remove Xeon Phi | |
8723 | related handlers. | |
8724 | (ix86_emit_swdivsf): Ditto. | |
8725 | (ix86_emit_swsqrtsf): Ditto. | |
8726 | * config/i386/i386-isa.def: Remove Xeon Phi ISAs. | |
8727 | * config/i386/i386-options.cc (m_KNL): Removed. | |
8728 | (m_KNM): Ditto. | |
8729 | (isa2_opts): Remove Xeon Phi ISAs. | |
8730 | (isa_opts): Ditto. | |
8731 | (processor_cost_table): Remove Xeon Phi cpus. | |
8732 | (ix86_valid_target_attribute_inner_p): Remove Xeon Phi ISAs. | |
8733 | (ix86_option_override_internal): Remove Xeon Phi related handlers. | |
8734 | * config/i386/i386-rust.cc (ix86_rust_target_cpu_info): Remove Xeon | |
8735 | Phi ISAs. | |
8736 | * config/i386/i386.cc (ix86_hard_regno_mode_ok): Remove Xeon Phi | |
8737 | related handler. | |
8738 | * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): Removed. | |
8739 | (enum processor_type): Remove Xeon Phi cpus. | |
8740 | * config/i386/i386.md (prefetch): Remove PREFETCHWT1. | |
8741 | (*prefetch_3dnow): Ditto. | |
8742 | (*prefetch_prefetchwt1): Removed. | |
8743 | * config/i386/i386.opt: Remove Xeon Phi ISAs. | |
8744 | * config/i386/immintrin.h: Ditto. | |
8745 | * config/i386/sse.md (VF1_AVX512ER_128_256): Removed. | |
8746 | (rsqrt<mode>2): Change iterator from VF1_AVX512ER_128_256 to | |
8747 | VF1_128_256. | |
8748 | (GATHER_SCATTER_SF_MEM_MODE): Removed. | |
8749 | (avx512pf_gatherpf<mode>sf): Ditto. | |
8750 | (*avx512pf_gatherpf<VI48_512:mode>sf_mask): Ditto. | |
8751 | (avx512pf_gatherpf<mode>df): Ditto. | |
8752 | (*avx512pf_gatherpf<VI4_256_8_512:mode>df_mask): Ditto. | |
8753 | (avx512pf_scatterpf<mode>sf): Ditto. | |
8754 | (*avx512pf_scatterpf<VI48_512:mode>sf_mask): Ditto. | |
8755 | (avx512pf_scatterpf<mode>df): Ditto. | |
8756 | (*avx512pf_scatterpf<VI4_256_8_512:mode>df_mask): Ditto. | |
8757 | (exp2<mode>2): Ditto. | |
8758 | (avx512er_exp2<mode><mask_name><round_saeonly_name>): Ditto. | |
8759 | (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>): | |
8760 | Ditto. | |
8761 | (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto. | |
8762 | (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>): | |
8763 | Ditto. | |
8764 | (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto. | |
8765 | (IMOD4): Ditto. | |
8766 | (imod4_narrow): Ditto. | |
8767 | (mov<mode>): Ditto. | |
8768 | (*mov<mode>_internal): Ditto. | |
8769 | (avx5124fmaddps_4fmaddps): Ditto. | |
8770 | (avx5124fmaddps_4fmaddps_mask): Ditto. | |
8771 | (avx5124fmaddps_4fmaddps_maskz): Ditto. | |
8772 | (avx5124fmaddps_4fmaddss): Ditto. | |
8773 | (avx5124fmaddps_4fmaddss_mask): Ditto. | |
8774 | (avx5124fmaddps_4fmaddss_maskz): Ditto. | |
8775 | (avx5124fmaddps_4fnmaddps): Ditto. | |
8776 | (avx5124fmaddps_4fnmaddps_mask): Ditto. | |
8777 | (avx5124fmaddps_4fnmaddps_maskz): Ditto. | |
8778 | (avx5124fmaddps_4fnmaddss): Ditto. | |
8779 | (avx5124fmaddps_4fnmaddss_mask): Ditto. | |
8780 | (avx5124fmaddps_4fnmaddss_maskz): Ditto. | |
8781 | (avx5124vnniw_vp4dpwssd): Ditto. | |
8782 | (avx5124vnniw_vp4dpwssd_mask): Ditto. | |
8783 | (avx5124vnniw_vp4dpwssd_maskz): Ditto. | |
8784 | (avx5124vnniw_vp4dpwssds): Ditto. | |
8785 | (avx5124vnniw_vp4dpwssds_mask): Ditto. | |
8786 | (avx5124vnniw_vp4dpwssds_maskz): Ditto. | |
8787 | * config/i386/x86-tune-sched.cc (ix86_issue_rate): Remove Xeon Phi cpus. | |
8788 | (ix86_adjust_cost): Ditto. | |
8789 | * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Ditto. | |
8790 | (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto. | |
8791 | (X86_TUNE_MOVX): Ditto. | |
8792 | (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto. | |
8793 | (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto. | |
8794 | (X86_TUNE_FOUR_JUMP_LIMIT): Ditto. | |
8795 | (X86_TUNE_USE_INCDEC): Ditto. | |
8796 | (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto. | |
8797 | (X86_TUNE_OPT_AGU): Ditto. | |
8798 | (X86_TUNE_AVOID_LEA_FOR_ADDR): Ditto. | |
8799 | (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Ditto. | |
8800 | (X86_TUNE_USE_SAHF): Ditto. | |
8801 | (X86_TUNE_USE_CLTD): Ditto. | |
8802 | (X86_TUNE_USE_BT): Ditto. | |
8803 | (X86_TUNE_ONE_IF_CONV_INSN): Ditto. | |
8804 | (X86_TUNE_EXPAND_ABS): Ditto. | |
8805 | (X86_TUNE_USE_SIMODE_FIOP): Ditto. | |
8806 | (X86_TUNE_EXT_80387_CONSTANTS): Ditto. | |
8807 | (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto. | |
8808 | (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto. | |
8809 | (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Ditto. | |
8810 | (X86_TUNE_SLOW_PSHUFB): Ditto. | |
8811 | (X86_TUNE_EMIT_VZEROUPPER): Removed. | |
8812 | * config/i386/xmmintrin.h (enum _mm_hint): Remove _MM_HINT_ET1. | |
8813 | * doc/extend.texi: Remove Xeon Phi. | |
8814 | * doc/invoke.texi: Ditto. | |
8815 | ||
8816 | 2024-05-20 Pan Li <pan2.li@intel.com> | |
8817 | ||
8818 | * dse.cc (get_stored_val): Make sure read_mode/write_mode | |
8819 | is valid subreg before gen_lowpart. | |
8820 | ||
8821 | 2024-05-19 Jeff Law <jlaw@ventanamicro.com> | |
8822 | ||
8823 | PR target/115142 | |
8824 | * config/riscv/riscv.cc (mem_shadd_or_shadd_rtx_p): Make sure | |
8825 | shifted argument is a register. | |
8826 | ||
8827 | 2024-05-19 Eric Botcazou <ebotcazou@adacore.com> | |
8828 | ||
8829 | * optabs-query.cc (can_mult_highpart_p): Test for the existence of | |
8830 | a wider mode instead of requiring it. | |
8831 | ||
8832 | 2024-05-19 Roger Sayle <roger@nextmovesoftware.com> | |
8833 | ||
8834 | * config/nvptx/nvptx.md (popcount<mode>2): Split into... | |
8835 | (popcountsi2): define_insn handling SImode popcount. | |
8836 | (popcountdi2): define_insn handling DImode popcount, with an | |
8837 | explicit truncate:SI to produce an SImode result. | |
8838 | ||
8839 | 2024-05-18 Palmer Dabbelt <palmer@rivosinc.com> | |
8840 | ||
8841 | * config/riscv/riscv.opt: Add -mno-fence-tso. | |
8842 | * config/riscv/sync-rvwmo.md (mem_thread_fence_rvwmo): Respect | |
8843 | -mno-fence-tso. | |
8844 | * doc/invoke.texi (RISC-V): Document -mno-fence-tso. | |
8845 | ||
8846 | 2024-05-18 Jeff Law <jlaw@ventanamicro.com> | |
8847 | ||
8848 | * config/riscv/riscv.md: Add new patterns to allow selection | |
8849 | between (x << C1) + C2 vs (x + C2') << C1 depending on the | |
8850 | cost C2 vs C2'. | |
8851 | ||
8852 | 2024-05-18 Xiao Zeng <zengxiao@eswincomputing.com> | |
8853 | ||
8854 | * config/riscv/riscv.cc (riscv_legitimize_move): Optimize movbf | |
8855 | with Nan-boxing value. | |
8856 | * config/riscv/riscv.md (*movhf_softfloat_boxing): Expand movbf | |
8857 | with Nan-boxing value. | |
8858 | (*mov<HFBF:mode>_softfloat_boxing): Ditto. | |
8859 | with Nan-boxing value. | |
8860 | (*movbf_softfloat_boxing): Delete abandon pattern. | |
8861 | ||
8862 | 2024-05-18 Xiao Zeng <zengxiao@eswincomputing.com> | |
8863 | ||
8864 | * config/riscv/riscv-builtins.cc (riscv_init_builtin_types): | |
8865 | Modify _Bfloat16 to __bf16. | |
8866 | * config/riscv/riscv.cc (riscv_mangle_type): Ditto. | |
8867 | ||
8868 | 2024-05-18 Pan Li <pan2.li@intel.com> | |
8869 | ||
8870 | PR target/51492 | |
8871 | PR target/112600 | |
8872 | * config/riscv/autovec.md (usadd<mode>3): New pattern expand for | |
8873 | the unsigned SAT_ADD in vector mode. | |
8874 | * config/riscv/riscv-protos.h (riscv_expand_usadd): New func decl | |
8875 | to expand usadd<mode>3 pattern. | |
8876 | (expand_vec_usadd): Ditto but for vector. | |
8877 | * config/riscv/riscv-v.cc (emit_vec_saddu): New func impl to emit | |
8878 | the vsadd insn. | |
8879 | (expand_vec_usadd): New func impl to expand usadd<mode>3 for vector. | |
8880 | * config/riscv/riscv.cc (riscv_expand_usadd): New func impl to | |
8881 | expand usadd<mode>3 for scalar. | |
8882 | * config/riscv/riscv.md (usadd<mode>3): New pattern expand for | |
8883 | the unsigned SAT_ADD in scalar mode. | |
8884 | * config/riscv/vector.md: Allow VLS mode for vsaddu. | |
8885 | ||
8886 | 2024-05-17 David Malcolm <dmalcolm@redhat.com> | |
8887 | ||
8888 | * common.opt.urls: Regenerate to add | |
8889 | fdiagnostics-show-event-links. | |
8890 | ||
8891 | 2024-05-17 Robin Dapp <rdapp@ventanamicro.com> | |
8892 | ||
8893 | * config/riscv/riscv-protos.h (struct common_vector_cost): Add | |
8894 | segment_permute cost. | |
8895 | * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): | |
8896 | Handle segment loads/stores. | |
8897 | * config/riscv/riscv.cc: Initialize segment_permute_[2-8] to 1. | |
8898 | ||
8899 | 2024-05-17 Robin Dapp <rdapp@ventanamicro.com> | |
8900 | ||
8901 | PR middle-end/113474 | |
8902 | * internal-fn.cc (expand_vec_cond_mask_optab_fn): Remove | |
8903 | force_regs. | |
8904 | ||
8905 | 2024-05-17 Tom Tromey <tromey@adacore.com> | |
8906 | ||
8907 | * dwarf2out.cc (gen_namespace_die): Use DW_TAG_module for Ada. | |
8908 | ||
8909 | 2024-05-17 David Malcolm <dmalcolm@redhat.com> | |
8910 | ||
8911 | * common.opt (fdiagnostics-show-event-links): New option. | |
8912 | * diagnostic-label-effects.h: New file. | |
8913 | * diagnostic-path.h (diagnostic_event::connect_to_next_event_p): | |
8914 | New pure virtual function. | |
8915 | (simple_diagnostic_event::connect_to_next_event_p): Implement it. | |
8916 | (simple_diagnostic_event::connect_to_next_event): New. | |
8917 | (simple_diagnostic_event::m_connected_to_next_event): New field. | |
8918 | (simple_diagnostic_path::connect_to_next_event): New decl. | |
8919 | * diagnostic-show-locus.cc: Include "text-art/theme.h" and | |
8920 | "diagnostic-label-effects.h". | |
8921 | (colorizer::set_cfg_edge): New. | |
8922 | (layout::m_fallback_theme): New field. | |
8923 | (layout::m_theme): New field. | |
8924 | (layout::m_effect_info): New field. | |
8925 | (layout::m_link_lhs_state): New enum and field. | |
8926 | (layout::m_link_rhs_column): New field. | |
8927 | (layout_range::has_in_edge): New. | |
8928 | (layout_range::has_out_edge): New. | |
8929 | (layout::layout): Add "effect_info" optional param. Initialize | |
8930 | m_theme, m_link_lhs_state, and m_link_rhs_column. | |
8931 | (layout::maybe_add_location_range): Remove stray "FIXME" from | |
8932 | leading comment. | |
8933 | (layout::print_source_line): Replace space after margin with a | |
8934 | call to print_leftmost_column. | |
8935 | (layout::print_leftmost_column): New. | |
8936 | (layout::start_annotation_line): Make non-const. Gain | |
8937 | responsibility for printing the leftmost column after the margin. | |
8938 | (layout::print_annotation_line): Drop pp_space, as this is now | |
8939 | added by start_annotation_line. | |
8940 | (line_label::line_label): Add "has_in_edge" and "has_out_edge" | |
8941 | params and initialize... | |
8942 | (line_label::m_has_in_edge): New field. | |
8943 | (line_label::m_has_out_edge): New field. | |
8944 | (layout::print_any_labels): Pass edge information to line_label | |
8945 | ctor. Keep track of in-edges and out-edges, adding visualizations | |
8946 | of these links between labels. | |
8947 | (layout::print_leading_fixits): Drop pp_character, as this is now | |
8948 | added by start_annotation_line. | |
8949 | (layout::print_trailing_fixits): Fix off-by-one errors in column | |
8950 | calculation. | |
8951 | (layout::move_to_column): Add comment about debugging. | |
8952 | (layout::show_ruler): Make non-const. Drop pp_space calls, as | |
8953 | this is now added by start_annotation_line. | |
8954 | (layout::print_line): Call print_any_right_to_left_edge_lines. | |
8955 | (layout::print_any_right_to_left_edge_lines): New. | |
8956 | (layout::update_any_effects): New. | |
8957 | (gcc_rich_location::add_location_if_nearby): Initialize | |
8958 | loc_range.m_label. | |
8959 | (diagnostic_context::maybe_show_locus): Add "effects" param and | |
8960 | pass it to diagnostic_context::show_locus. | |
8961 | (diagnostic_context::show_locus): Add "effects" param, passing it | |
8962 | to layout's ctor. Call update_any_effects on the layout after | |
8963 | printing the lines. | |
8964 | (selftest::test_layout_x_offset_display_utf8): Update expected | |
8965 | result for eliminated trailing newline. | |
8966 | (selftest::test_layout_x_offset_display_utf8): Likewise. | |
8967 | (selftest::test_layout_x_offset_display_tab): Likewise. | |
8968 | * diagnostic.cc (diagnostic_context::initialize): Initialize | |
8969 | m_source_printing.show_event_links_p. | |
8970 | (simple_diagnostic_path::connect_to_next_event): New. | |
8971 | (simple_diagnostic_event::simple_diagnostic_event): Initialize | |
8972 | m_connected_to_next_event. | |
8973 | * diagnostic.h (class diagnostic_source_effect_info): New forward | |
8974 | decl. | |
8975 | (diagnostic_source_printing_options::show_event_links_p): New | |
8976 | field. | |
8977 | (diagnostic_context::maybe_show_locus): Add optional "effect_info" | |
8978 | param. | |
8979 | (diagnostic_context::show_locus): Add "effect_info" param. | |
8980 | (diagnostic_show_locus): Add optional "effect_info" param. | |
8981 | * doc/invoke.texi: Add -fno-diagnostics-show-event-links. | |
8982 | * lto-wrapper.cc (merge_and_complain): Add | |
8983 | OPT_fdiagnostics_show_event_links to switch. | |
8984 | (append_compiler_options): Likewise. | |
8985 | (append_diag_options): Likewise. | |
8986 | * opts-common.cc (decode_cmdline_options_to_array): Add | |
8987 | "-fno-diagnostics-show-event-links" to -fdiagnostics-plain-output. | |
8988 | * opts.cc (common_handle_option): Add case for | |
8989 | OPT_fdiagnostics_show_event_links. | |
8990 | * text-art/theme.cc (ascii_theme::get_cppchar): Handle | |
8991 | cell_kind::CFG_*. | |
8992 | (unicode_theme::get_cppchar): Likewise. | |
8993 | * text-art/theme.h (theme::cell_kind): Add CFG_*. | |
8994 | * toplev.cc (general_init): Initialize | |
8995 | global_dc->m_source_printing.show_event_links_p. | |
8996 | * tree-diagnostic-path.cc: Define INCLUDE_ALGORITHM, | |
8997 | INCLUDE_MEMORY, and INCLUDE_STRING. Include | |
8998 | "diagnostic-label-effects.h". | |
8999 | (path_label::path_label): Initialize m_effects. | |
9000 | (path_label::get_effects): New. | |
9001 | (class path_label::path_label_effects): New. | |
9002 | (path_label::m_effects): New field. | |
9003 | (class per_thread_summary): Add "friend struct event_range;". | |
9004 | (per_thread_summary::per_thread_summary): Initialize m_last_event. | |
9005 | (per_thread_summary::m_last_event): New field. | |
9006 | (struct event_range::per_source_line_info): New. | |
9007 | (event_range::event_range): Make "t" non-const. Add | |
9008 | "show_event_links" param and use it to initialize | |
9009 | m_show_event_links. Add info for initial event. | |
9010 | (event_range::get_per_source_line_info): New. | |
9011 | (event_range::maybe_add_event): Verify compatibility of the new | |
9012 | label and existing labels with respect to the link-printing code. | |
9013 | Update per-source-line info when an event is added. | |
9014 | (event_range::print): Add"effect_info" param and pass to | |
9015 | diagnostic_show_locus. | |
9016 | (event_range::m_per_thread_summary): Make non-const. | |
9017 | (event_range::m_source_line_info_map): New field. | |
9018 | (event_range::m_show_event_links): New field. | |
9019 | (path_summary::path_summary): Add "show_event_links" optional | |
9020 | param, passing it to event_range ctor calls. Update | |
9021 | pts.m_last_event. | |
9022 | (thread_event_printer::print_swimlane_for_event_range): Add | |
9023 | "effect_info" param and pass it to range->print. | |
9024 | (print_path_summary_as_text): Keep track of the column for any | |
9025 | out-edges at the end of printing each event_range and use as | |
9026 | the leading in-edge for the next event_range. | |
9027 | (default_tree_diagnostic_path_printer): Pass in show_event_links_p | |
9028 | to path_summary ctor. | |
9029 | (selftest::path_events_have_column_data_p): New. | |
9030 | (class selftest::control_flow_test): New. | |
9031 | (selftest::test_control_flow_1): New. | |
9032 | (selftest::test_control_flow_2): New. | |
9033 | (selftest::test_control_flow_3): New. | |
9034 | (selftest::assert_cfg_edge_path_streq): New. | |
9035 | (ASSERT_CFG_EDGE_PATH_STREQ): New macro. | |
9036 | (selftest::test_control_flow_4): New. | |
9037 | (selftest::test_control_flow_5): New. | |
9038 | (selftest::test_control_flow_6): New. | |
9039 | (selftest::control_flow_tests): New. | |
9040 | (selftest::tree_diagnostic_path_cc_tests): Disable colorization on | |
9041 | global_dc's printer. Convert event_pp to a std::unique_ptr. Call | |
9042 | control_flow_tests via for_each_line_table_case. | |
9043 | (gen_command_line_string): Likewise. | |
9044 | ||
9045 | 2024-05-17 Uros Bizjak <ubizjak@gmail.com> | |
9046 | ||
9047 | PR middle-end/112600 | |
9048 | * config/i386/mmx.md (<insn><mode>3): New expander. | |
9049 | * config/i386/sse.md | |
9050 | (<sse2_avx2>_<sat_plusminus:insn><mode>3<mask_name>): | |
9051 | Rename expander to <sat_plusminus:insn><mode>3<mask_name>. | |
9052 | (<umaxmin:code><mode>3): Update for rename. | |
9053 | * config/i386/i386-builtin.def: Update for rename. | |
9054 | ||
9055 | 2024-05-17 Aldy Hernandez <aldyh@redhat.com> | |
9056 | ||
9057 | PR middle-end/115131 | |
9058 | * value-range.cc (prange::intersect): Set VARYING if intersection | |
9059 | of bitmasks made the range span the entire domain. | |
9060 | (range_tests_misc): New test. | |
9061 | ||
9062 | 2024-05-17 Alexander Monakov <amonakov@ispras.ru> | |
9063 | ||
9064 | PR c++/114480 | |
9065 | * tree-into-ssa.cc (prune_unused_phi_nodes): Add dfs_out entries | |
9066 | to the 'defs' array in the reverse order. | |
9067 | ||
9068 | 2024-05-17 Aldy Hernandez <aldyh@redhat.com> | |
9069 | ||
9070 | PR middle-end/115128 | |
9071 | * ipa-cp.cc (ipa_value_range_from_jfunc): Check for undefined_p | |
9072 | before looking at type. | |
9073 | (propagate_vr_across_jump_function): Same. | |
9074 | ||
9075 | 2024-05-17 Richard Biener <rguenther@suse.de> | |
9076 | ||
9077 | PR middle-end/115110 | |
9078 | * tree-ssa-alias.cc (view_converted_memref_p): Fix. | |
9079 | ||
9080 | 2024-05-17 Eric Botcazou <ebotcazou@adacore.com> | |
9081 | ||
9082 | * expmed.h (expmed_mult_highpart_optab): Declare. | |
9083 | * expmed.cc (expmed_mult_highpart_optab): Remove static keyword. | |
9084 | Do not assume that OP1 is a constant integer. Fix pasto. | |
9085 | (expmed_mult_highpart): Pass OP1 narrowed to MODE in all the calls | |
9086 | to expmed_mult_highpart_optab. | |
9087 | * optabs-query.cc (can_mult_highpart_p): Use 2 for integer widening | |
9088 | and shift subsequent values accordingly. | |
9089 | * optabs.cc (expand_mult_highpart): Call expmed_mult_highpart_optab | |
9090 | when can_mult_highpart_p returns 2 and adjust to above change. | |
9091 | ||
9092 | 2024-05-17 Richard Biener <rguenther@suse.de> | |
9093 | ||
9094 | * tree-ssa-alias.h (pt_solution_includes_const_pool): Declare. | |
9095 | * tree-ssa-alias.cc (ptrs_compare_unequal): Use | |
9096 | pt_solution_includes_const_pool. | |
9097 | * tree-ssa-structalias.cc (pt_solution_includes_const_pool): New. | |
9098 | ||
9099 | 2024-05-17 Alexandre Oliva <oliva@adacore.com> | |
9100 | ||
9101 | * common.opt (freg-struct-return): Make it explicitly | |
9102 | fpcc-struct-return's NegativeAlias. Copy Optimization... | |
9103 | (freg-struct-return): ... here. | |
9104 | ||
9105 | 2024-05-17 Pan Li <pan2.li@intel.com> | |
9106 | ||
9107 | * config/riscv/.riscv.cc.swo: Removed. | |
9108 | * config/riscv/j: Removed. | |
9109 | ||
9110 | 2024-05-16 Pan Li <pan2.li@intel.com> | |
9111 | ||
9112 | * config/riscv/autovec-opt.md(*vcond_mask_len_popcount_<VB_VLS:mode><P:mode>): | |
9113 | New pattern of vcond_mask_len_popcount for vector bool mode. | |
9114 | * config/riscv/autovec.md (vcond_mask_len_<mode>): New pattern of | |
9115 | vcond_mask_len for vector bool mode. | |
9116 | (cbranch<mode>4): New pattern for vector bool mode. | |
9117 | * config/riscv/vector-iterators.md: Add new unspec UNSPEC_SELECT_MASK. | |
9118 | * config/riscv/vector.md (@pred_popcount<VB:mode><P:mode>): Add VLS mode | |
9119 | to popcount pattern. | |
9120 | (@pred_popcount<VB_VLS:mode><P:mode>): Ditto. | |
9121 | ||
9122 | 2024-05-16 Jan Hubicka <jh@suse.cz> | |
9123 | ||
9124 | PR ipa/113787 | |
9125 | * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p): Do not | |
9126 | look into TARGET_MEM_REFS with constant opreand 0. | |
9127 | ||
9128 | 2024-05-16 Richard Biener <rguenther@suse.de> | |
9129 | ||
9130 | PR tree-optimization/13962 | |
9131 | PR tree-optimization/96564 | |
9132 | * tree-ssa-alias.h (pt_solution::const_pool): New flag. | |
9133 | * tree-ssa-alias.cc (ptrs_compare_unequal): Handle pointer-pointer | |
9134 | compares. | |
9135 | (dump_points_to_solution): Dump the const_pool flag, fix guard | |
9136 | of flag dumping. | |
9137 | * gimple-pretty-print.cc (pp_points_to_solution): Likewise. | |
9138 | * tree-ssa-structalias.cc (find_what_var_points_to): Set | |
9139 | the const_pool flag for STRING. | |
9140 | (pt_solution_ior_into): Handle the const_pool flag. | |
9141 | (ipa_escaped_pt): Initialize it. | |
9142 | ||
9143 | 2024-05-16 Richard Biener <rguenther@suse.de> | |
9144 | ||
9145 | * tree-ssa-structalias.cc (get_constraint_for_1): For | |
9146 | volatile referenced or decls use ANYTHING. | |
9147 | ||
9148 | 2024-05-16 Pan Li <pan2.li@intel.com> | |
9149 | ||
9150 | * tree-vect-loop.cc (vect_gen_loop_len_mask): New func to gen | |
9151 | the loop len mask. | |
9152 | * tree-vect-stmts.cc (vectorizable_early_exit): Invoke the | |
9153 | vect_gen_loop_len_mask for 1 or more stmt(s). | |
9154 | * tree-vectorizer.h (vect_gen_loop_len_mask): New func decl | |
9155 | for vect_gen_loop_len_mask. | |
9156 | ||
9157 | 2024-05-16 Pan Li <pan2.li@intel.com> | |
9158 | ||
9159 | PR target/51492 | |
9160 | PR target/112600 | |
9161 | * tree-vect-patterns.cc (gimple_unsigned_integer_sat_add): New | |
9162 | func decl generated by match.pd match. | |
9163 | (vect_recog_sat_add_pattern): New func impl to recog the pattern | |
9164 | for unsigned SAT_ADD. | |
9165 | ||
9166 | 2024-05-16 Pan Li <pan2.li@intel.com> | |
9167 | ||
9168 | PR target/51492 | |
9169 | PR target/112600 | |
9170 | * internal-fn.cc (commutative_binary_fn_p): Add type IFN_SAT_ADD | |
9171 | to the return true switch case(s). | |
9172 | * internal-fn.def (SAT_ADD): Add new signed optab SAT_ADD. | |
9173 | * match.pd: Add unsigned SAT_ADD match(es). | |
9174 | * optabs.def (OPTAB_NL): Remove fixed-point limitation for | |
9175 | us/ssadd. | |
9176 | * tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_add): New | |
9177 | extern func decl generated in match.pd match. | |
9178 | (match_saturation_arith): New func impl to match the saturation arith. | |
9179 | (math_opts_dom_walker::after_dom_children): Try match saturation | |
9180 | arith when IOR expr. | |
9181 | ||
9182 | 2024-05-16 Aldy Hernandez <aldyh@redhat.com> | |
9183 | ||
9184 | Revert: | |
9185 | 2024-05-10 Aldy Hernandez <aldyh@redhat.com> | |
9186 | ||
9187 | Revert: | |
9188 | 2024-05-08 Aldy Hernandez <aldyh@redhat.com> | |
9189 | ||
9190 | * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap): | |
9191 | Change irange to prange. | |
9192 | * gimple-range-fold.cc (fold_using_range::fold_stmt): Same. | |
9193 | (fold_using_range::range_of_address): Same. | |
9194 | * gimple-range-fold.h (range_of_address): Same. | |
9195 | * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same. | |
9196 | * gimple-range-op.cc (class cfn_strlen): Same. | |
9197 | * gimple-range-path.cc | |
9198 | (path_range_query::adjust_for_non_null_uses): Same. | |
9199 | * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same. | |
9200 | * tree-ssa-structalias.cc (find_what_p_points_to): Same. | |
9201 | * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove | |
9202 | hybrid entries in table. | |
9203 | * range-op.cc (range_op_table::range_op_table): Add pointer | |
9204 | entries for bitwise and/or and min/max. | |
9205 | * value-range.cc (irange::verify_range): Add assert. | |
9206 | * value-range.h (irange::varying_compatible_p): Remove check for | |
9207 | error_mark_node. | |
9208 | (irange::supports_p): Remove pointer support. | |
9209 | * ipa-cp.h (ipa_supports_p): Add prange support. | |
9210 | ||
9211 | 2024-05-16 Aldy Hernandez <aldyh@redhat.com> | |
9212 | ||
9213 | PR tree-optimization/114985 | |
9214 | * gimple-range-op.cc: Remove pointers_handled_p. | |
9215 | * ipa-cp.cc (ipa_value_range_from_jfunc): Skip range folding if | |
9216 | operands don't match. | |
9217 | (propagate_vr_across_jump_function): Same. | |
9218 | * range-op-mixed.h: Remove pointers_handled_p and tweak | |
9219 | operand_check_p. | |
9220 | * range-op-ptr.cc (range_operator::pointers_handled_p): Remove. | |
9221 | (pointer_plus_operator::pointers_handled_p): Remove. | |
9222 | (class operator_pointer_diff): Remove pointers_handled_p. | |
9223 | (operator_pointer_diff::pointers_handled_p): Remove. | |
9224 | (operator_identity::pointers_handled_p): Remove. | |
9225 | (operator_cst::pointers_handled_p): Remove. | |
9226 | (operator_cast::pointers_handled_p): Remove. | |
9227 | (operator_min::pointers_handled_p): Remove. | |
9228 | (operator_max::pointers_handled_p): Remove. | |
9229 | (operator_addr_expr::pointers_handled_p): Remove. | |
9230 | (operator_bitwise_and::pointers_handled_p): Remove. | |
9231 | (operator_bitwise_or::pointers_handled_p): Remove. | |
9232 | (operator_equal::pointers_handled_p): Remove. | |
9233 | (operator_not_equal::pointers_handled_p): Remove. | |
9234 | (operator_lt::pointers_handled_p): Remove. | |
9235 | (operator_le::pointers_handled_p): Remove. | |
9236 | (operator_gt::pointers_handled_p): Remove. | |
9237 | (operator_ge::pointers_handled_p): Remove. | |
9238 | * range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): Remove. | |
9239 | (range_op_handler::lhs_op1_relation): Remove pointers_handled_p checks. | |
9240 | (range_op_handler::lhs_op2_relation): Same. | |
9241 | (range_op_handler::op1_op2_relation): Same. | |
9242 | * range-op.h: Remove RO_* declarations. | |
9243 | ||
9244 | 2024-05-16 Aldy Hernandez <aldyh@redhat.com> | |
9245 | ||
9246 | PR tree-optimization/114985 | |
9247 | * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Use | |
9248 | boolean type when folding conditionals. | |
9249 | ||
9250 | 2024-05-16 Richard Biener <rguenther@suse.de> | |
9251 | ||
9252 | PR tree-optimization/79958 | |
9253 | PR tree-optimization/109087 | |
9254 | PR tree-optimization/100314 | |
9255 | PR tree-optimization/114774 | |
9256 | * tree-ssa-dse.cc (dse_classify_store): New forwarder. | |
9257 | (dse_classify_store): Add arguments cnt and visited, recurse | |
9258 | to track multiple paths when we end up with multiple defs. | |
9259 | ||
9260 | 2024-05-16 David Malcolm <dmalcolm@redhat.com> | |
9261 | ||
9262 | * text-art/theme.cc (ascii_theme::get_cppchar): Add | |
9263 | cell_kind::INTERPROCEDURAL_*. | |
9264 | (unicode_theme::get_cppchar): Likewise. | |
9265 | * text-art/theme.h (theme::cell_kind): Likewise. | |
9266 | * tree-diagnostic-path.cc: | |
9267 | (thread_event_printer::print_swimlane_for_event_range): Use the | |
9268 | above to get characters for indicating interprocedural stack | |
9269 | depth activity, falling back to ascii. | |
9270 | (selftest::test_interprocedural_path_1): Test with both ascii | |
9271 | and unicode themes. | |
9272 | (selftest::test_interprocedural_path_2): Likewise. | |
9273 | (selftest::test_recursion): Likewise. | |
9274 | ||
9275 | 2024-05-16 David Malcolm <dmalcolm@redhat.com> | |
9276 | ||
9277 | * tree-diagnostic-path.cc: Include "text-art/theme.h". | |
9278 | (path_label::get_text): If the event has | |
9279 | diagnostic_event::VERB_danger, and the theme enables emojis, then | |
9280 | add a warning emoji between the event number and the event text. | |
9281 | ||
9282 | 2024-05-16 David Malcolm <dmalcolm@redhat.com> | |
9283 | ||
9284 | * tree-diagnostic-path.cc (per_thread_summary::interprocedural_p): | |
9285 | New. | |
9286 | (thread_event_printer::print_swimlane_for_event_range): Don't | |
9287 | indent and print the stack depth line if this thread's events are | |
9288 | purely intraprocedural. | |
9289 | (selftest::test_intraprocedural_path): Update expected output. | |
9290 | ||
9291 | 2024-05-16 David Malcolm <dmalcolm@redhat.com> | |
9292 | ||
9293 | * diagnostic-path.h: Update leading comment to reflect | |
9294 | intraprocedural cases. Fix typo in comment. | |
9295 | * doc/invoke.texi: Update intraprocedural example. | |
9296 | ||
9297 | 2024-05-16 David Malcolm <dmalcolm@redhat.com> | |
9298 | ||
9299 | * diagnostic-show-locus.cc: Define INCLUDE_VECTOR and include | |
9300 | "text-art/types.h". | |
9301 | (line_label::line_label): Drop "policy" argument. Use | |
9302 | styled_string::calc_canvas_width when computing m_display_width, | |
9303 | as this skips SGR codes. | |
9304 | (layout::print_any_labels): Update for line_label ctor change. | |
9305 | (selftest::test_one_liner_labels_utf8): Update expected text to | |
9306 | reflect that the labels can fit on one line if we don't get | |
9307 | confused by SGR colorization codes. | |
9308 | ||
9309 | 2024-05-16 Xiao Zeng <zengxiao@eswincomputing.com> | |
9310 | ||
9311 | * common/config/riscv/riscv-common.cc: | |
9312 | (riscv_implied_info): Add zvfbfwma item. | |
9313 | (riscv_ext_version_table): Ditto. | |
9314 | (riscv_ext_flag_table): Ditto. | |
9315 | * config/riscv/riscv.opt: | |
9316 | (MASK_ZVFBFWMA): New macro. | |
9317 | (TARGET_ZVFBFWMA): Ditto. | |
9318 | ||
9319 | 2024-05-16 liuhongt <hongtao.liu@intel.com> | |
9320 | ||
9321 | PR target/114514 | |
9322 | * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): | |
9323 | Set d.one_operand_p to true when TARGET_SSSE3. | |
9324 | ||
9325 | 2024-05-16 liuhongt <hongtao.liu@intel.com> | |
9326 | ||
9327 | PR target/114514 | |
9328 | * config/i386/i386-expand.cc | |
9329 | (ix86_expand_vec_shift_qihi_constant): Optimize ashift >> 7 to | |
9330 | vpcmpgtb. | |
9331 | (ix86_expand_vecop_qihi_partial): Ditto. | |
9332 | ||
9333 | 2024-05-15 Jeff Law <jlaw@ventanamicro.com> | |
9334 | ||
9335 | * config/riscv/riscv-string.cc: Add missing hunk from last change. | |
9336 | ||
9337 | 2024-05-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
9338 | ||
9339 | * config/riscv/riscv-string.cc (emit_strcmp_scalar_load_and_compare): | |
9340 | Use adjust_address() to calculate MEM-PLUS pattern. | |
9341 | ||
9342 | 2024-05-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
9343 | ||
9344 | * config/riscv/riscv-protos.h (riscv_expand_block_compare): New | |
9345 | prototype. | |
9346 | * config/riscv/riscv-string.cc (GEN_EMIT_HELPER2): New helper | |
9347 | for zero_extendhi. | |
9348 | (do_load_from_addr): Add support for HI and SI/64 modes. | |
9349 | (do_load): Add helper for zero-extended loads. | |
9350 | (emit_memcmp_scalar_load_and_compare): New helper to emit memcmp. | |
9351 | (emit_memcmp_scalar_result_calculation): Likewise. | |
9352 | (riscv_expand_block_compare_scalar): Likewise. | |
9353 | (riscv_expand_block_compare): New RISC-V expander for memory compare. | |
9354 | * config/riscv/riscv.md (cmpmemsi): New cmpmem expansion. | |
9355 | ||
9356 | 2024-05-15 Marek Polacek <polacek@redhat.com> | |
9357 | ||
9358 | DR 1693 | |
9359 | PR c++/113760 | |
9360 | DR 569 | |
9361 | * doc/invoke.texi: Update -Wextra-semi documentation. | |
9362 | ||
9363 | 2024-05-15 Jakub Jelinek <jakub@redhat.com> | |
9364 | ||
9365 | PR rtl-optimization/114902 | |
9366 | PR rtl-optimization/115092 | |
9367 | * combine.cc (simplify_compare_const): Don't optimize | |
9368 | GE op0 SIGNED_MIN or LT op0 SIGNED_MIN into NE op0 const0_rtx or | |
9369 | EQ op0 const0_rtx. | |
9370 | ||
9371 | 2024-05-15 Richard Biener <rguenther@suse.de> | |
9372 | ||
9373 | PR tree-optimization/114589 | |
9374 | * tree-ssa-sink.cc (select_best_block): Remove profile-based | |
9375 | heuristics. Instead reject sink locations that sink | |
9376 | to post-dominators. Move empty latch check here from | |
9377 | statement_sink_location. Also consider early_bb for the | |
9378 | loop depth check. | |
9379 | (statement_sink_location): Remove superfluous check. Remove | |
9380 | empty latch check. | |
9381 | (pass_sink_code::execute): Compute/release post-dominators. | |
9382 | ||
9383 | 2024-05-15 Richard Biener <rguenther@suse.de> | |
9384 | ||
9385 | PR middle-end/111422 | |
9386 | * cfgexpand.cc (add_scope_conflicts_2): Handle PHIs | |
9387 | by recursing to their arguments. | |
9388 | ||
9389 | 2024-05-15 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
9390 | ||
9391 | * config/aarch64/aarch64-simd.md (aarch64_combine_internal<mode>): | |
9392 | Use UZP1 instead of INS. | |
9393 | (aarch64_combine_internal_be<mode>): Likewise. | |
9394 | ||
9395 | 2024-05-15 Jan Hubicka <jh@suse.cz> | |
9396 | ||
9397 | * alias.cc (reference_alias_ptr_type_1): Use view_converted_memref_p. | |
9398 | * alias.h (view_converted_memref_p): Declare. | |
9399 | * tree-ssa-alias.cc (view_converted_memref_p): Export. | |
9400 | (ao_compare::compare_ao_refs): Use same_type_for_tbaa. | |
9401 | ||
9402 | 2024-05-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
9403 | ||
9404 | * config/riscv/riscv-string.cc (riscv_block_move_straight): | |
9405 | Hand over up to 2xXLEN bytes to move_by_pieces(). | |
9406 | ||
9407 | 2024-05-15 Christoph Müllner <christoph.muellner@vrull.eu> | |
9408 | ||
9409 | * config/riscv/riscv-string.cc (riscv_block_move_straight): Add | |
9410 | parameter align. | |
9411 | (riscv_adjust_block_mem): Replace parameter length by align. | |
9412 | (riscv_block_move_loop): Add parameter align. | |
9413 | (riscv_expand_block_move_scalar): Set alignment properly if the | |
9414 | target has fast unaligned access. | |
9415 | ||
9416 | 2024-05-15 Aldy Hernandez <aldyh@redhat.com> | |
9417 | ||
9418 | PR tree-optimization/114995 | |
9419 | * range-op-ptr.cc (range_operator::pointers_handled_p): Default to true. | |
9420 | ||
9421 | 2024-05-15 Andrew Pinski <quic_apinski@quicinc.com> | |
9422 | ||
9423 | PR tree-optimization/114301 | |
9424 | * tree-cfg.cc (gimple_can_duplicate_bb_p): Check returns_twice | |
9425 | only on the last call statement rather than all. | |
9426 | ||
9427 | 2024-05-15 Jeff Law <jlaw@ventanamicro.com> | |
9428 | ||
9429 | * config/riscv/riscv-string.cc | |
9430 | (riscv_expand_block_clear_zicboz_zic64b): Handle rv32 correctly. | |
9431 | ||
9432 | 2024-05-15 Levy Hsu <admin@levyhsu.com> | |
9433 | ||
9434 | PR target/107563 | |
9435 | * config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): New | |
9436 | subroutine. | |
9437 | (ix86_expand_vec_perm_const_1): Call expand_vec_perm_psrlw_psllw_por. | |
9438 | ||
9439 | 2024-05-15 Jeff Law <jlaw@ventanamicro.com> | |
9440 | ||
9441 | * config/riscv/riscv.md: Add pattern for sign extended shift-add | |
9442 | sequence with a masked input. | |
9443 | ||
9444 | 2024-05-14 Dimitar Dimitrov <dimitar@dinux.eu> | |
9445 | ||
9446 | PR rtl-optimization/115013 | |
9447 | * config/pru/pru.cc (pru_class_likely_spilled_p): Implement | |
9448 | to mark classes containing one SImode register as likely | |
9449 | spilled. | |
9450 | (TARGET_CLASS_LIKELY_SPILLED_P): Define. | |
9451 | ||
9452 | 2024-05-14 Vineet Gupta <vineetg@rivosinc.com> | |
9453 | ||
9454 | * config/riscv/riscv.h: New macros to check for sum of two S12 | |
9455 | range. | |
9456 | * config/riscv/constraints.md: New constraint. | |
9457 | * config/riscv/predicates.md: New Predicate. | |
9458 | * config/riscv/riscv.md: New splitter. | |
9459 | * config/riscv/riscv.cc (riscv_reg_frame_related): New helper. | |
9460 | * config/riscv/riscv-protos.h: New helper prototype. | |
9461 | ||
9462 | 2024-05-14 Richard Biener <rguenther@suse.de> | |
9463 | ||
9464 | PR tree-optimization/99954 | |
9465 | * tree-data-ref.cc (dr_may_alias_p): For bases that are | |
9466 | not completely analyzed fall back to TBAA and points-to. | |
9467 | * tree-loop-distribution.cc | |
9468 | (loop_distribution::classify_builtin_ldst): When there | |
9469 | is no dependence again classify as memcpy. | |
9470 | * tree-ssa-alias.cc (ptr_deref_may_alias_decl_p): Verify | |
9471 | the pointer is an SSA name. | |
9472 | ||
9473 | 2024-05-14 Christoph Müllner <christoph.muellner@vrull.eu> | |
9474 | ||
9475 | * config/riscv/riscv-protos.h (riscv_expand_block_clear): New prototype. | |
9476 | * config/riscv/riscv-string.cc (riscv_expand_block_clear_zicboz_zic64b): | |
9477 | New function to expand a block-clear with cbo.zero. | |
9478 | (riscv_expand_block_clear): New RISC-V block-clear expansion function. | |
9479 | * config/riscv/riscv.md (setmem<mode>): New setmem expansion. | |
9480 | ||
9481 | 2024-05-14 Christoph Müllner <christoph.muellner@vrull.eu> | |
9482 | ||
9483 | * expr.cc (clear_by_pieces): Remove static from clear_by_pieces. | |
9484 | * expr.h (clear_by_pieces): Add prototype for clear_by_pieces. | |
9485 | ||
9486 | 2024-05-14 Tom de Vries <tdevries@suse.de> | |
9487 | ||
9488 | PR debug/115066 | |
9489 | * dwarf2out.cc (output_macinfo_op): Fix DW_MACRO_define_strx/strp | |
9490 | choice for v4 .debug_macro.dwo. Add asserts to check that choice. | |
9491 | ||
9492 | 2024-05-14 Jan Hubicka <jh@suse.cz> | |
9493 | ||
9494 | PR ipa/113291 | |
9495 | * ipa-inline.cc (enum can_inline_edge_by_limits_flags): New enum. | |
9496 | (can_inline_edge_by_limits_p): Take flags instead of multiple bools; add flag | |
9497 | for forcing inlinie limits. | |
9498 | (can_early_inline_edge_p): Update. | |
9499 | (want_inline_self_recursive_call_p): Update; use FORCE_LIMITS mode. | |
9500 | (check_callers): Update. | |
9501 | (update_caller_keys): Update. | |
9502 | (update_callee_keys): Update. | |
9503 | (recursive_inlining): Update. | |
9504 | (add_new_edges_to_heap): Update. | |
9505 | (speculation_useful_p): Update. | |
9506 | (inline_small_functions): Clear DECL_DISREGARD_INLINE_LIMITS on self recursion. | |
9507 | (flatten_function): Update. | |
9508 | (inline_to_all_callers_1): Update. | |
9509 | ||
9510 | 2024-05-14 Haochen Gui <guihaoc@gcc.gnu.org> | |
9511 | ||
9512 | * config/rs6000/rs6000.cc (TARGET_OVERLAP_OP_BY_PIECES_P): Define. | |
9513 | ||
9514 | 2024-05-14 Jeff Law <jlaw@ventanamicro.com> | |
9515 | ||
9516 | Revert: | |
9517 | 2024-05-13 Sergei Lewis <slewis@rivosinc.com> | |
9518 | ||
9519 | * config/riscv/riscv.md (movmem<mode>): Use riscv_vector::expand_block_move, | |
9520 | if and only if we know the entire operation can be performed using one vector | |
9521 | load followed by one vector store | |
9522 | ||
9523 | 2024-05-14 Pan Li <pan2.li@intel.com> | |
9524 | ||
9525 | * config/riscv/riscv-vector-builtins.cc | |
9526 | (validate_instance_type_required_extensions): Remove the | |
9527 | operator from the trailing and put it to new line. | |
9528 | ||
9529 | 2024-05-13 Jeff Law <jlaw@ventanamicro.com> | |
9530 | ||
9531 | * config/riscv/bitmanip.md: Add new splitter for AND with | |
9532 | a constant that masks off bits 32..63 and needs synthesis. | |
9533 | ||
9534 | 2024-05-13 Sergei Lewis <slewis@rivosinc.com> | |
9535 | ||
9536 | * config/riscv/riscv.md (movmem<mode>): Use riscv_vector::expand_block_move, | |
9537 | if and only if we know the entire operation can be performed using one vector | |
9538 | load followed by one vector store | |
9539 | ||
9540 | 2024-05-13 Vladimir N. Makarov <vmakarov@redhat.com> | |
9541 | ||
9542 | PR rtl-optimization/115013 | |
9543 | * lra-constraints.cc (process_alt_operands): Update all_used_nregs | |
9544 | only for winreg. Ignore reg starvation for small reg classes. | |
9545 | ||
9546 | 2024-05-13 Pan Li <pan2.li@intel.com> | |
9547 | ||
9548 | PR target/114988 | |
9549 | * config/riscv/riscv-vector-builtins.cc | |
9550 | (validate_instance_type_required_extensions): New func impl to | |
9551 | validate the intrinisc func type ops. | |
9552 | (expand_builtin): Validate instance type before expand. | |
9553 | ||
9554 | 2024-05-13 Jeff Law <jlaw@ventanamicro.com> | |
9555 | ||
9556 | * config/riscv/bitmanip.md (bextseqzdisi): New patterns. | |
9557 | * config/riscv/.riscv.cc.swo: New file. | |
9558 | * config/riscv/j: New file. | |
9559 | ||
9560 | 2024-05-13 Richard Biener <rguenther@suse.de> | |
9561 | ||
9562 | PR tree-optimization/60276 | |
9563 | * tree-vect-stmts.cc (vectorizable_load): Do not exempt | |
9564 | pure_slp grouped loads from the STMT_VINFO_MIN_NEG_DIST | |
9565 | restriction. | |
9566 | ||
9567 | 2024-05-13 Richard Biener <rguenther@suse.de> | |
9568 | ||
9569 | * tree-vect-slp.cc (vect_analyze_slp_instance): Remove | |
9570 | slp_inst_kind_reduc_group handling. | |
9571 | (vect_analyze_slp): Add the meat here. | |
9572 | ||
9573 | 2024-05-13 Jakub Jelinek <jakub@redhat.com> | |
9574 | ||
9575 | PR middle-end/113982 | |
9576 | * tree-ssa-math-opts.cc (arith_overflow_check_p): Also return 1 | |
9577 | for RSHIFT_EXPR by precision of maxval if shift result is only | |
9578 | used in a cast or comparison against zero. | |
9579 | (match_arith_overflow): Handle the RSHIFT_EXPR use case. | |
9580 | ||
9581 | 2024-05-13 YunQiang Su <syq@debian.org> | |
9582 | ||
9583 | Revert: | |
9584 | 2024-05-09 YunQiang Su <syq@gcc.gnu.org> | |
9585 | ||
9586 | * config/mips/constraints.md: Add new constraint 'w'. | |
9587 | ||
9588 | 2024-05-12 Roger Sayle <roger@nextmovesoftware.com> | |
9589 | Kyrill Tkachov <kyrylo.tkachov@foss.arm.com> | |
9590 | ||
9591 | * config/arm/arm.md (*arm_zeroextractsi2_8_8, *arm_signextractsi2_8_8, | |
9592 | *arm_zeroextractsi2_8_16, *arm_signextractsi2_8_16, | |
9593 | *arm_zeroextractsi2_16_8, *arm_signextractsi2_16_8): New. | |
9594 | ||
9595 | 2024-05-12 Jeff Law <jlaw@ventanamicro.com> | |
9596 | ||
9597 | * config/riscv/riscv.cc (riscv_build_integer_1): Use slli.uw more. | |
9598 | ||
9599 | 2024-05-12 Jeff Law <jlaw@ventanamicro.com> | |
9600 | ||
9601 | * config/riscv/riscv.cc (riscv_build_integer_1): Fix thinko in testing | |
9602 | when lui can be used to set several bits in bseti path. | |
9603 | ||
9604 | 2024-05-12 Mark Wielaard <mark@klomp.org> | |
9605 | ||
9606 | * config/mingw/cygming.opt.urls: Regenerate. | |
9607 | * config/mingw/mingw.opt.urls: Likewise. | |
9608 | ||
9609 | 2024-05-11 Mark Harmstone <mark@harmstone.com> | |
9610 | ||
9611 | * dwarf2codeview.cc (DEBUG_S_SYMBOLS): Define. | |
9612 | (S_COMPILE3, CV_CFL_80386, CV_CFL_X64): Likewise. | |
9613 | (CV_CFL_C, CV_CFL_CXX): Likewise. | |
9614 | (SYMBOL_START_LABEL, SYMBOL_END_LABEL): Likewise. | |
9615 | (start_processor, language_constant): New functions. | |
9616 | (write_compile3_symbol, write_codeview_symbols): Likewise. | |
9617 | (codeview_debug_finish): Call write_codeview_symbols. | |
9618 | ||
9619 | 2024-05-11 Mark Harmstone <mark@harmstone.com> | |
9620 | ||
9621 | * dwarf2codeview.cc (DEBUG_S_LINES, LINE_LABEL): Define. | |
9622 | (END_FUNC_LABEL): Likewise. | |
9623 | (struct codeview_line, codeview_line_block): New structures. | |
9624 | (codeview_function): Likewise. | |
9625 | (line_label_num, func_label_num, funcs, last_func): New variables. | |
9626 | (last_filename, last_file_id): Likewise. | |
9627 | (codeview_source_line, write_line_numbers): New functions. | |
9628 | (codeview_switch_text_section, codeview_end_epilogue): Likewise. | |
9629 | (codeview_debug_finish): Call write_line_numbers. | |
9630 | * dwarf2codeview.h (codeview_source_line): Prototype. | |
9631 | (codeview_switch_text_secction, codeview_end_epilogue): Likewise. | |
9632 | * dwarf2out.cc (dwarf2_end_epilogue): Add codeview support. | |
9633 | (dwarf2out_switch_text_section): Likewise. | |
9634 | (dwarf2out_source_line): Likewise. | |
9635 | * opts.cc (finish_options): Handle codeview debugging symbols. | |
9636 | ||
9637 | 2024-05-11 Mark Harmstone <mark@harmstone.com> | |
9638 | ||
9639 | * dwarf2codeview.cc (DEBUG_S_STRINGTABLE): Define. | |
9640 | (DEBUG_S_FILECHKSMS, CHKSUM_TYPE_MD5, HASH_SIZE): Likewise. | |
9641 | (codeview_string, codeview_source_file): New structures. | |
9642 | (struct string_hasher): New class for codeview_string hashing. | |
9643 | (files, last_file, num_files, string_offset): New variables. | |
9644 | (strings_hstab, strings, last_string): Likewise. | |
9645 | (add_string, codevie_start_source_file): New functions. | |
9646 | (write_strings_tabe, write_soruce_files): Likewise. | |
9647 | (codeview_debug_finish): Call new functions. | |
9648 | * dwarf2codeview.h (codeview_start_source_file): Prototype. | |
9649 | * dwarf2out.cc (dwarf2out_start_source_file): Handle codeview. | |
9650 | ||
9651 | 2024-05-11 Mark Harmstone <mark@harmstone.com> | |
9652 | ||
9653 | * Makefile.in (OBJS): Add dwarf2codeview.o. | |
9654 | (GTFILES): Add dwarf2codeview.cc | |
9655 | * config/i386/cygming.h (CODEVIEW_DEBUGGING_INFO): Define. | |
9656 | * dwarf2codeview.cc: New file. | |
9657 | * dwarf2codeview.h: New file. | |
9658 | * dwarf2out.cc: Include dwarf2codeview.h. | |
9659 | (dwarf2out_finish): Call codeview_debug_finish as needed. | |
9660 | * flag-types.h (DINFO_TYPE_CODEVIEW): Add enum member. | |
9661 | (CODEVIEW_DEBUG): Define. | |
9662 | * flags.h (codeview_debuginfo_p): Proottype. | |
9663 | * opts.cc (debug_type_names): Add codeview. | |
9664 | (debug_type_masks): Add CODEVIEW_DEBUG. | |
9665 | (df_set_names): Add codeview. | |
9666 | (codeview_debuginfo_p): New function. | |
9667 | (dwarf_based_debuginfo_p): Add CODEVIEW clause. | |
9668 | (set_debug_level): Handle CODEVIEW_DEBUG. | |
9669 | * toplev.cc (process_options): Handle codeview. | |
9670 | ||
9671 | 2024-05-11 dzhao.ampere <di.zhao@amperecomputing.com> | |
9672 | ||
9673 | PR tree-optimization/114760 | |
9674 | * tree-ssa-loop-niter.cc (is_lshift_by_1): New function | |
9675 | to check if STMT is equivalent to x << 1. | |
9676 | (is_rshift_by_1): New function to check if STMT is | |
9677 | equivalent to x >> 1. | |
9678 | (number_of_iterations_cltz): Enhance the identification | |
9679 | of logical shift by one. | |
9680 | (number_of_iterations_cltz_complement): Enhance the | |
9681 | identification of logical shift by one. | |
9682 | ||
9683 | 2024-05-11 Aldy Hernandez <aldyh@redhat.com> | |
9684 | ||
9685 | * range-op-ptr.cc (range_operator::fold_range): Return false. | |
9686 | ||
9687 | 2024-05-11 Aldy Hernandez <aldyh@redhat.com> | |
9688 | ||
9689 | * range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): New | |
9690 | (range_op_handler::fold_range): Use it. | |
9691 | (range_op_handler::op1_range): Same. | |
9692 | (range_op_handler::op2_range): Same. | |
9693 | (range_op_handler::lhs_op1_relation): Same. | |
9694 | (range_op_handler::lhs_op2_relation): Same. | |
9695 | (range_op_handler::op1_op2_relation): Same. | |
9696 | ||
9697 | 2024-05-10 Jeff Law <jlaw@ventanamicro.com> | |
9698 | ||
9699 | * config/riscv/riscv.cc (riscv_build_integer_1): Recognize cases where | |
9700 | we can use shNadd to improve constant synthesis. | |
9701 | (riscv_move_integer): Handle code generation for shNadd. | |
9702 | ||
9703 | 2024-05-10 Roger Sayle <roger@nextmovesoftware.com> | |
9704 | Hongtao Liu <hongtao.liu@intel.com> | |
9705 | ||
9706 | * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): | |
9707 | Don't attempt ix86_expand_vec_shift_qihi_constant on SSE4.1. | |
9708 | ||
9709 | 2024-05-10 Dimitar Dimitrov <dimitar@dinux.eu> | |
9710 | ||
9711 | * config/pru/predicates.md (pru_mulsrc0_operand): Use register | |
9712 | class instead of register number for the check. | |
9713 | (pru_mulsrc1_operand): Ditto. | |
9714 | ||
9715 | 2024-05-10 Vladimir N. Makarov <vmakarov@redhat.com> | |
9716 | ||
9717 | PR target/114942 | |
9718 | * lra-constraints.cc (struct input_reload): Add new member early_clobber_p. | |
9719 | (get_reload_reg): Add new arg early_clobber_p, don't reuse input | |
9720 | reload with true early_clobber_p member value, use the arg for new | |
9721 | element of curr_insn_input_reloads. | |
9722 | (match_reload): Assign false to early_clobber_p member. | |
9723 | (process_addr_reg, simplify_operand_subreg, curr_insn_transform): | |
9724 | Adjust get_reload_reg calls. | |
9725 | ||
9726 | 2024-05-10 Aldy Hernandez <aldyh@redhat.com> | |
9727 | ||
9728 | PR tree-optimization/115026 | |
9729 | * value-range.cc (prange::update_bitmask): Use operand bitmask. | |
9730 | ||
9731 | 2024-05-10 Richard Biener <rguenther@suse.de> | |
9732 | ||
9733 | PR tree-optimization/114998 | |
9734 | * tree-loop-distribution.cc (free_rdg): Take loop argument. | |
9735 | Reset UIDs of stmts still in the IL rather than all stmts | |
9736 | referenced from the RDG. | |
9737 | (loop_distribution::build_rdg): Pass loop to free_rdg. | |
9738 | (loop_distribution::distribute_loop): Likewise. | |
9739 | (loop_distribution::transform_reduction_loop): Likewise. | |
9740 | ||
9741 | 2024-05-10 Richard Biener <rguenther@suse.de> | |
9742 | ||
9743 | * tree-vect-patterns.cc (vect_pattern_recog_1): Do not | |
9744 | remove reductions involving patterns. | |
9745 | * tree-vect-loop.cc (vectorizable_reduction): Reject SLP | |
9746 | reduction groups with multiple lane-reducing reductions. | |
9747 | * tree-vect-slp.cc (vect_analyze_slp_instance): When discovering | |
9748 | SLP reduction groups avoid including lane-reducing ones. | |
9749 | ||
9750 | 2024-05-10 Jose E. Marchesi <jose.marchesi@oracle.com> | |
9751 | ||
9752 | * config/bpf/bpf.cc (bpf_print_operand_address): Include | |
9753 | surrounding parenthesis around mem operands in pseudoc asm | |
9754 | dialect. | |
9755 | * config/bpf/bpf.md (*mov<MM:mode>): Adapt accordingly. | |
9756 | (zero_extendhidi2): Likewise. | |
9757 | (zero_extendqidi2): Likewise. | |
9758 | (*extendsidi2): Likewise. | |
9759 | (*extendsidi2): Likewise. | |
9760 | (extendhidi2): Likewise. | |
9761 | (extendqidi2): Likewise. | |
9762 | (extendhisi2): Likewise. | |
9763 | * config/bpf/atomic.md (atomic_add<AMO:mode>): Likewise. | |
9764 | (atomic_and<AMO:mode>): Likewise. | |
9765 | (atomic_or<AMO:mode>): Likewise. | |
9766 | (atomic_xor<AMO:mode>): Likewise. | |
9767 | (atomic_fetch_add<AMO:mode>): Likewise. | |
9768 | (atomic_fetch_and<AMO:mode>): Likewise. | |
9769 | (atomic_fetch_or<AMO:mode>): Likewise. | |
9770 | (atomic_fetch_xor<AMO:mode>): Likewise. | |
9771 | ||
9772 | 2024-05-10 Jakub Jelinek <jakub@redhat.com> | |
9773 | ||
9774 | PR target/114968 | |
9775 | * target.def (use_atexit_for_cxa_atexit): Remove spurious space | |
9776 | from comment. | |
9777 | (adjust_cdtor_callabi_fntype): New cxx target hook. | |
9778 | * targhooks.h (default_cxx_adjust_cdtor_callabi_fntype): Declare. | |
9779 | * targhooks.cc (default_cxx_adjust_cdtor_callabi_fntype): New | |
9780 | function. | |
9781 | * doc/tm.texi.in (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Add. | |
9782 | * doc/tm.texi: Regenerate. | |
9783 | * config/i386/i386.cc (ix86_cxx_adjust_cdtor_callabi_fntype): New | |
9784 | function. | |
9785 | (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Redefine. | |
9786 | ||
9787 | 2024-05-10 Aldy Hernandez <aldyh@redhat.com> | |
9788 | ||
9789 | PR tree-optimization/115009 | |
9790 | * value-range-storage.cc (prange_storage::alloc): Do not assume | |
9791 | all pointers are the same size. | |
9792 | (prange_storage::prange_storage): Same. | |
9793 | (prange_storage::fits_p): Same. | |
9794 | ||
9795 | 2024-05-10 Kito Cheng <kito.cheng@sifive.com> | |
9796 | ||
9797 | * config/riscv/riscv-vsetvl.cc: Fix typos in comments. | |
9798 | (get_all_predecessors): Ditto. | |
9799 | (pre_vsetvl::m_unknow_info): Rename to... | |
9800 | (pre_vsetvl::m_unknown_info): this. | |
9801 | (pre_vsetvl::compute_vsetvl_def_data): Rename m_unknow_info to | |
9802 | m_unknown_info. | |
9803 | (pre_vsetvl::cleaup): Rename to... | |
9804 | (pre_vsetvl::cleanup): this. | |
9805 | (pre_vsetvl::compute_vsetvl_def_data): Fix typos. | |
9806 | (pass_vsetvl::lazy_vsetvl): Update function name and fix typos. | |
9807 | * config/riscv/riscv.cc: Fix typos in comments. | |
9808 | (struct machine_function): Fix typo in comments. | |
9809 | (riscv_valid_lo_sum_p): Ditto. | |
9810 | (riscv_force_address): Ditto. | |
9811 | (riscv_immediate_operand_p): Ditto. | |
9812 | (riscv_in_small_data_p): Ditto. | |
9813 | (riscv_first_stack_step): Ditto. | |
9814 | (riscv_expand_prologue): Ditto. | |
9815 | (riscv_convert_vector_chunks): Ditto. | |
9816 | (riscv_override_options_internal): Ditto. | |
9817 | (get_common_costs): Ditto. | |
9818 | ||
9819 | 2024-05-10 Xi Ruoyao <xry111@xry111.site> | |
9820 | ||
9821 | PR driver/114980 | |
9822 | * opts-common.cc (prune_options): Move -fdiagnostics-urls= | |
9823 | early like -fdiagnostics-color=. | |
9824 | ||
9825 | 2024-05-10 Jeff Law <jlaw@ventanamicro.com> | |
9826 | ||
9827 | * config/riscv/bitmanip.md: Add splitter for shadd feeding another | |
9828 | add instruction. | |
9829 | ||
9830 | 2024-05-10 Aldy Hernandez <aldyh@redhat.com> | |
9831 | ||
9832 | Revert: | |
9833 | 2024-05-08 Aldy Hernandez <aldyh@redhat.com> | |
9834 | ||
9835 | * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap): | |
9836 | Change irange to prange. | |
9837 | * gimple-range-fold.cc (fold_using_range::fold_stmt): Same. | |
9838 | (fold_using_range::range_of_address): Same. | |
9839 | * gimple-range-fold.h (range_of_address): Same. | |
9840 | * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same. | |
9841 | * gimple-range-op.cc (class cfn_strlen): Same. | |
9842 | * gimple-range-path.cc | |
9843 | (path_range_query::adjust_for_non_null_uses): Same. | |
9844 | * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same. | |
9845 | * tree-ssa-structalias.cc (find_what_p_points_to): Same. | |
9846 | * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove | |
9847 | hybrid entries in table. | |
9848 | * range-op.cc (range_op_table::range_op_table): Add pointer | |
9849 | entries for bitwise and/or and min/max. | |
9850 | * value-range.cc (irange::verify_range): Add assert. | |
9851 | * value-range.h (irange::varying_compatible_p): Remove check for | |
9852 | error_mark_node. | |
9853 | (irange::supports_p): Remove pointer support. | |
9854 | * ipa-cp.h (ipa_supports_p): Add prange support. | |
9855 | ||
9856 | 2024-05-09 Roger Sayle <roger@nextmovesoftware.com> | |
9857 | ||
9858 | * simplify-rtx.cc (simplify_const_binary_operation): Constant | |
9859 | fold binary operations where the LHS is CONST_VECTOR and the | |
9860 | RHS is CONST_INT (or CONST_DOUBLE) such as vector shifts. | |
9861 | ||
9862 | 2024-05-09 Martin Jambor <mjambor@suse.cz> | |
9863 | ||
9864 | * tree-sra.cc (sra_modify_assign): Remove the original statement | |
9865 | also when dealing with a store to a fully covered aggregate from a | |
9866 | non-candidate. | |
9867 | ||
9868 | 2024-05-09 YunQiang Su <syq@gcc.gnu.org> | |
9869 | ||
9870 | * config/mips/constraints.md: Add new constraint 'w'. | |
9871 | ||
9872 | 2024-05-09 Hu, Lin1 <lin1.hu@intel.com> | |
9873 | ||
9874 | PR target/84508 | |
9875 | * config/i386/emmintrin.h | |
9876 | (_mm_load_sd): Remove alignment requirement. | |
9877 | (_mm_store_sd): Ditto. | |
9878 | (_mm_loadh_pd): Ditto. | |
9879 | (_mm_loadl_pd): Ditto. | |
9880 | (_mm_storel_pd): Add alignment requirement. | |
9881 | * config/i386/xmmintrin.h | |
9882 | (_mm_loadh_pi): Remove alignment requirement. | |
9883 | (_mm_loadl_pi): Ditto. | |
9884 | (_mm_load_ss): Ditto. | |
9885 | (_mm_store_ss): Ditto. | |
9886 | ||
9887 | 2024-05-09 Aldy Hernandez <aldyh@redhat.com> | |
9888 | ||
9889 | PR tree-optimization/114912 | |
9890 | * value-range.h (class Value_Range): Use a union. | |
9891 | ||
9892 | 2024-05-09 Aldy Hernandez <aldyh@redhat.com> | |
9893 | ||
9894 | * range-op.cc (range_op_handler::discriminator_fail): Reword error | |
9895 | message. | |
9896 | ||
9897 | 2024-05-09 konglin1 <lingling.kong@intel.com> | |
9898 | ||
9899 | * config/i386/i386.cc (ix86_hardreg_mov_ok): Relax | |
9900 | hard reg mov restriction when lra in progress. | |
9901 | ||
9902 | 2024-05-08 Xiao Zeng <zengxiao@eswincomputing.com> | |
9903 | ||
9904 | * config/riscv/riscv.cc (riscv_legitimize_move): Expand movbf | |
9905 | with Nan-boxing value. | |
9906 | * config/riscv/riscv.md (*movbf_softfloat_boxing): New pattern. | |
9907 | ||
9908 | 2024-05-08 Jeff Law <jlaw@ventanamicro.com> | |
9909 | ||
9910 | * config/riscv/riscv.cc (riscv_build_integer_1): Fix incorrect | |
9911 | if-then-else nesting of Zbs code. | |
9912 | ||
9913 | 2024-05-08 Vladimir N. Makarov <vmakarov@redhat.com> | |
9914 | ||
9915 | PR target/114810 | |
9916 | * lra-constraints.cc (process_alt_operands): Calculate union reg | |
9917 | class for the alternative, peak matched regs and required reload | |
9918 | regs. Recognize alternatives with lack of available registers and | |
9919 | make them costly. Add debug print about this case. | |
9920 | ||
9921 | 2024-05-08 Andrew Pinski <quic_apinski@quicinc.com> | |
9922 | ||
9923 | PR tree-optimization/112392 | |
9924 | * match.pd (`x CMP nonnegative ? x : ABS<x>`): New pattern; | |
9925 | where CMP is ==, > and >=. | |
9926 | (`x CMP nonnegative@y ? y : ABS<x>`): New pattern. | |
9927 | ||
9928 | 2024-05-08 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com> | |
9929 | ||
9930 | PR tree-optimization/81953 | |
9931 | * tree-ssa-sink.cc (statement_sink_location):Sink statements at | |
9932 | the begining of the basic block after labels. | |
9933 | ||
9934 | 2024-05-08 Christoph Müllner <christoph.muellner@vrull.eu> | |
9935 | ||
9936 | * config/riscv/iterators.md (ashiftrt): New code attribute | |
9937 | 'extract_shift' and adding extractions to optab. | |
9938 | * config/riscv/riscv.md (*lshr<GPR:mode>3_zero_extend_4): Rename to... | |
9939 | (*<any_extract:optab><GPR:mode>3):...this and add support for | |
9940 | sign-extensions. | |
9941 | ||
9942 | 2024-05-08 Christoph Müllner <christoph.muellner@vrull.eu> | |
9943 | ||
9944 | PR target/111501 | |
9945 | * config/riscv/riscv.md (*lshr<GPR:mode>3_zero_extend_4): New | |
9946 | pattern for zero-extraction. | |
9947 | ||
9948 | 2024-05-08 Christoph Müllner <christoph.muellner@vrull.eu> | |
9949 | ||
9950 | * config/riscv/iterators.md (sraiw): New code iterator 'any_extract'. | |
9951 | New code attribute 'extract_sidi_shift'. | |
9952 | * config/riscv/riscv.md (*lshrsi3_zero_extend_2): Rename to... | |
9953 | (*lshrsi3_extend_2):...this and add support for sign-extensions. | |
9954 | ||
9955 | 2024-05-08 Richard Biener <rguenther@suse.de> | |
9956 | ||
9957 | * tree-vect-loop.cc (get_initial_defs_for_reduction): Convert | |
9958 | initial value to the vector component type. | |
9959 | ||
9960 | 2024-05-08 Richard Biener <rguenther@suse.de> | |
9961 | ||
9962 | * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): | |
9963 | Properly guard DR_GROUP_SIZE access with STMT_VINFO_GROUPED_ACCESS. | |
9964 | ||
9965 | 2024-05-08 Alex Coplan <alex.coplan@arm.com> | |
9966 | ||
9967 | PR target/114936 | |
9968 | * config/aarch64/aarch64-ldp-fusion.cc (combine_reg_notes): | |
9969 | Ensure insn iN has its REG_FRAME_RELATED_EXPR (if any) stored in | |
9970 | FR_EXPR[N-1], thus matching the correspondence expected by the | |
9971 | copy_rtx calls. | |
9972 | ||
9973 | 2024-05-08 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
9974 | ||
9975 | * tree-ssa-loop-prefetch.cc (determine_unroll_factor): Honour | |
9976 | -fno-unroll-loops. | |
9977 | ||
9978 | 2024-05-08 Georg-Johann Lay <avr@gjlay.de> | |
9979 | ||
9980 | PR target/114975 | |
9981 | * config/avr/avr.md: Add combine pattern for | |
9982 | 8-bit parity detection. | |
9983 | ||
9984 | 2024-05-08 Georg-Johann Lay <avr@gjlay.de> | |
9985 | ||
9986 | PR target/114975 | |
9987 | * config/avr/avr.md: Add combine pattern for | |
9988 | 8-bit popcount detection. | |
9989 | ||
9990 | 2024-05-08 Richard Biener <rguenther@suse.de> | |
9991 | ||
9992 | * tree-into-ssa.cc (insert_updated_phi_nodes_for): Skip | |
9993 | pruning when the nearest common dominator is the successor | |
9994 | of ENTRY_BLOCK. Do not copy IDF but prune it directly. | |
9995 | ||
9996 | 2024-05-08 Jakub Jelinek <jakub@redhat.com> | |
9997 | ||
9998 | PR tree-optimization/114965 | |
9999 | * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Don't try to | |
10000 | optimize away exp - lowi subtraction from shift count unless entry | |
10001 | test is emitted or unless r.upper_bound () is smaller than prec. | |
10002 | ||
10003 | 2024-05-08 Eric Botcazou <ebotcazou@adacore.com> | |
10004 | ||
10005 | * expmed.h (choose_multiplier): Tweak description and remove last | |
10006 | parameter. | |
10007 | * expmed.cc (choose_multiplier): Likewise. Add assertion for the | |
10008 | third parameter and adds details to various comments. | |
10009 | (invert_mod2n): Tweak description and add assertion for the first | |
10010 | parameter. | |
10011 | (expand_divmod): Adjust calls to choose_multiplier. | |
10012 | * tree-vect-generic.cc (expand_vector_divmod): Likewise. | |
10013 | * tree-vect-patterns.cc (vect_recog_divmod_pattern): Likewise. | |
10014 | ||
10015 | 2024-05-08 konglin1 <lingling.kong@intel.com> | |
10016 | ||
10017 | PR target/109549 | |
10018 | * config/i386/i386.cc (ix86_rtx_costs): The XEXP (x, 0) for cmov | |
10019 | is an operator do not need to compute cost. | |
10020 | ||
10021 | 2024-05-08 Aldy Hernandez <aldyh@redhat.com> | |
10022 | ||
10023 | * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap): | |
10024 | Change irange to prange. | |
10025 | * gimple-range-fold.cc (fold_using_range::fold_stmt): Same. | |
10026 | (fold_using_range::range_of_address): Same. | |
10027 | * gimple-range-fold.h (range_of_address): Same. | |
10028 | * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same. | |
10029 | * gimple-range-op.cc (class cfn_strlen): Same. | |
10030 | * gimple-range-path.cc | |
10031 | (path_range_query::adjust_for_non_null_uses): Same. | |
10032 | * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same. | |
10033 | * tree-ssa-structalias.cc (find_what_p_points_to): Same. | |
10034 | * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove | |
10035 | hybrid entries in table. | |
10036 | * range-op.cc (range_op_table::range_op_table): Add pointer | |
10037 | entries for bitwise and/or and min/max. | |
10038 | * value-range.cc (irange::verify_range): Add assert. | |
10039 | * value-range.h (irange::varying_compatible_p): Remove check for | |
10040 | error_mark_node. | |
10041 | (irange::supports_p): Remove pointer support. | |
10042 | * ipa-cp.h (ipa_supports_p): Add prange support. | |
10043 | ||
10044 | 2024-05-07 Andrew Pinski <quic_apinski@quicinc.com> | |
10045 | ||
10046 | PR tree-optimization/19661 | |
10047 | * tree-ssa-dce.cc (is_cxa_atexit): New function. | |
10048 | (is_removable_cxa_atexit_call): New function. | |
10049 | (mark_stmt_if_obviously_necessary): Don't mark removable | |
10050 | cxa_at_exit calls. | |
10051 | (mark_all_reaching_defs_necessary_1): Likewise. | |
10052 | (propagate_necessity): Likewise. | |
10053 | ||
10054 | 2024-05-07 Andrew Pinski <quic_apinski@quicinc.com> | |
10055 | ||
10056 | PR tree-optimization/114894 | |
10057 | * match.pd (`a != 0 ? a / b : 0`): New pattern. | |
10058 | (`a != 0 ? a * b : 0`): New pattern. | |
10059 | (`a != 0 ? a & b : 0`): New pattern. | |
10060 | ||
10061 | 2024-05-07 Jeff Law <jlaw@ventanamicro.com> | |
10062 | ||
10063 | * config/riscv/riscv.cc (generic_ooo_tune_info): Turn on | |
10064 | overlap_op_by_pieces. | |
10065 | ||
10066 | 2024-05-07 Christoph Müllner <christoph.muellner@vrull.eu> | |
10067 | ||
10068 | * config/riscv/riscv.cc (struct riscv_tune_param): Add new | |
10069 | "overlap_op_by_pieces" field. | |
10070 | (rocket_tune_info, sifive_7_tune_info): Set it. | |
10071 | (sifive_p400_tune_info, sifive_p600_tune_info): Likewise. | |
10072 | (thead_c906_tune_info, xiangshan_nanhu_tune_info): Likewise. | |
10073 | (generic_ooo_tune_info, optimize_size_tune_info): Likewise. | |
10074 | (riscv_overlap_op_by_pieces): New function. | |
10075 | (TARGET_OVERLAP_OP_BY_PIECES_P): define. | |
10076 | ||
10077 | 2024-05-07 Jakub Jelinek <jakub@redhat.com> | |
10078 | ||
10079 | PR middle-end/114907 | |
10080 | * expr.cc (convert_mode_scalar): Use trunc_optab rather than | |
10081 | sext_optab for HF->BF conversions. | |
10082 | * optabs-libfuncs.cc (gen_trunc_conv_libfunc): Likewise. | |
10083 | ||
10084 | 2024-05-07 Jakub Jelinek <jakub@redhat.com> | |
10085 | ||
10086 | PR sanitizer/114956 | |
10087 | * tree-inline.cc: Include asan.h. | |
10088 | (copy_bb): Remove also .ASAN_MARK calls if id->dst_fn has asan/hwasan | |
10089 | sanitization disabled. | |
10090 | ||
10091 | 2024-05-07 Jeff Law <jlaw@ventanamicro.com> | |
10092 | ||
10093 | * config/riscv/riscv-string.cc (riscv_expand_strcmp): Do not inline | |
10094 | strncmp with zero size. | |
10095 | (emit_strcmp_scalar_compare_subword): Adjust rotation for rv32 vs rv64. | |
10096 | * config/riscv/riscv.opt (var_inline_strcmp): Enable by default. | |
10097 | (vriscv_inline_strncmp, riscv_inline_strlen): Likewise. | |
10098 | ||
10099 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10100 | ||
10101 | * config.gcc: Build and add objects for Cygwin and MinGW. Add Cygwin | |
10102 | and MinGW options to the target. | |
10103 | ||
10104 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10105 | ||
10106 | * config/i386/mingw-w64.opt.urls: Rename options' name and | |
10107 | regenerate option URLs. | |
10108 | * config/lynx.opt.urls: Likewise. | |
10109 | * config/mingw/cygming.opt.urls: Likewise. | |
10110 | * config/mingw/mingw.opt.urls: Likewise. | |
10111 | * doc/invoke.texi: Likewise. | |
10112 | ||
10113 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10114 | ||
10115 | * config/aarch64/aarch64.h (struct seh_frame_state): Declare SEH | |
10116 | structure in machine_function. | |
10117 | (GTY): Add SEH field. | |
10118 | ||
10119 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10120 | ||
10121 | * config.gcc: Add Cygwin and MinGW difinitions. | |
10122 | * config/aarch64/aarch64-protos.h | |
10123 | (mingw_pe_maybe_record_exported_symbol): Declare functions | |
10124 | which are used in Cygwin and MinGW environment. | |
10125 | (mingw_pe_section_type_flags): Likewise. | |
10126 | (mingw_pe_unique_section): Likewise. | |
10127 | (mingw_pe_encode_section_info): Likewise. | |
10128 | * config/aarch64/cygming.h: New file. | |
10129 | ||
10130 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10131 | ||
10132 | * config.gcc: Define TARGET_AARCH64_MS_ABI. | |
10133 | * config/mingw/mingw-stdint.h (INTPTR_TYPE): Use | |
10134 | TARGET_AARCH64_MS_ABI to adjust MinGW headers for | |
10135 | AArch64 MS ABI. | |
10136 | (UINTPTR_TYPE): Likewise. | |
10137 | (defined): Likewise. | |
10138 | * config/mingw/mingw32.h (DEFAULT_ABI): Likewise. | |
10139 | (defined): Likewise. | |
10140 | * config/mingw/winnt.cc (defined): Use TARGET_ARM64_MS_ABI to | |
10141 | exclude ix86_get_callcvt. | |
10142 | (i386_pe_maybe_mangle_decl_assembler_name): Likewise. | |
10143 | (i386_pe_mangle_decl_assembler_name): Likewise. | |
10144 | ||
10145 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10146 | ||
10147 | * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): | |
10148 | Rename functions in mingw folder which will be reused for | |
10149 | aarch64. | |
10150 | (TARGET_ASM_UNIQUE_SECTION): Likewise. | |
10151 | (TARGET_ASM_NAMED_SECTION): Likewise. | |
10152 | (TARGET_SECTION_TYPE_FLAGS): Likewise. | |
10153 | (ASM_DECLARE_COLD_FUNCTION_NAME): Likewise. | |
10154 | (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. | |
10155 | * config/i386/i386-protos.h (i386_pe_unique_section): | |
10156 | Rename into ... | |
10157 | (mingw_pe_unique_section): ... this. | |
10158 | (i386_pe_declare_function_type): Rename into ... | |
10159 | (mingw_pe_declare_function_type): ... this. | |
10160 | (i386_pe_encode_section_info): Rename into ... | |
10161 | (mingw_pe_encode_section_info): ... this. | |
10162 | (i386_pe_maybe_record_exported_symbol): Rename into ... | |
10163 | (mingw_pe_maybe_record_exported_symbol): ... this. | |
10164 | (i386_pe_section_type_flags): Rename into ... | |
10165 | (mingw_pe_section_type_flags): ... this. | |
10166 | (i386_pe_asm_named_section): Rename into ... | |
10167 | (mingw_pe_asm_named_section): ... this. | |
10168 | * config/mingw/winnt.cc (i386_pe_encode_section_info): | |
10169 | Rename into ... | |
10170 | (mingw_pe_encode_section_info): ... this. | |
10171 | (i386_pe_unique_section): Rename into ... | |
10172 | (mingw_pe_unique_section): ... this. | |
10173 | (i386_pe_section_type_flags): Rename into ... | |
10174 | (mingw_pe_section_type_flags): ... this. | |
10175 | (i386_pe_asm_named_section): Rename into ... | |
10176 | (mingw_pe_asm_named_section): ... this. | |
10177 | (i386_pe_asm_output_aligned_decl_common): Likewise. | |
10178 | (i386_pe_declare_function_type): Rename into ... | |
10179 | (mingw_pe_declare_function_type): ... this. | |
10180 | (i386_pe_maybe_record_exported_symbol): Rename into ... | |
10181 | (mingw_pe_maybe_record_exported_symbol): ... this. | |
10182 | (i386_pe_start_function): Likewise. | |
10183 | * varasm.cc (switch_to_comdat_section): Likewise. | |
10184 | ||
10185 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10186 | ||
10187 | * config.gcc: Adjust targets after moving MinGW related files | |
10188 | from i386 to mingw folder. | |
10189 | * config/i386/cygming.opt: Move to... | |
10190 | * config/mingw/cygming.opt: ...here. | |
10191 | * config/i386/cygming.opt.urls: Move to... | |
10192 | * config/mingw/cygming.opt.urls: ...here. | |
10193 | * config/i386/cygwin-d.cc: Move to... | |
10194 | * config/mingw/cygwin-d.cc: ...here. | |
10195 | * config/i386/mingw-stdint.h: Move to... | |
10196 | * config/mingw/mingw-stdint.h: ...here. | |
10197 | * config/i386/mingw.opt: Move to... | |
10198 | * config/mingw/mingw.opt: ...here. | |
10199 | * config/i386/mingw.opt.urls: Move to... | |
10200 | * config/mingw/mingw.opt.urls: ...here. | |
10201 | * config/i386/mingw32.h: Move to... | |
10202 | * config/mingw/mingw32.h: ...here. | |
10203 | * config/i386/msformat-c.cc: Move to... | |
10204 | * config/mingw/msformat-c.cc: ...here. | |
10205 | * config/i386/t-cygming: Move to... | |
10206 | * config/mingw/t-cygming: ...here and updated. | |
10207 | * config/i386/winnt-cxx.cc: Move to... | |
10208 | * config/mingw/winnt-cxx.cc: ...here. | |
10209 | * config/i386/winnt-d.cc: Move to... | |
10210 | * config/mingw/winnt-d.cc: ...here. | |
10211 | * config/i386/winnt-stubs.cc: Move to... | |
10212 | * config/mingw/winnt-stubs.cc: ...here. | |
10213 | * config/i386/winnt.cc: Move to... | |
10214 | * config/mingw/winnt.cc: ...here. | |
10215 | ||
10216 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10217 | ||
10218 | * config.gcc: Add COFF format support definitions. | |
10219 | * config/aarch64/aarch64-coff.h: New file. | |
10220 | ||
10221 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10222 | ||
10223 | * config.gcc: Define TARGET_AARCH64_MS_ABI when | |
10224 | AArch64 MS ABI is used. | |
10225 | * config/aarch64/aarch64.h (FIXED_X18): Adjust | |
10226 | FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS and | |
10227 | STATIC_CHAIN_REGNUM for AArch64 MS ABI. | |
10228 | (CALL_USED_X18): Likewise. | |
10229 | (FIXED_REGISTERS): Likewise. | |
10230 | * config/aarch64/aarch64-abi-ms.h: New file. | |
10231 | ||
10232 | 2024-05-07 Zac Walker <zacwalker@microsoft.com> | |
10233 | ||
10234 | * config.gcc: Add aarch64-w64-mingw32 target. | |
10235 | ||
10236 | 2024-05-07 Alex Coplan <alex.coplan@arm.com> | |
10237 | ||
10238 | PR target/114674 | |
10239 | * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair): | |
10240 | Use replace_equiv_address_nv on a change of base instead of | |
10241 | adjust_address_nv on the other access. | |
10242 | ||
10243 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10244 | ||
10245 | * tree-into-ssa.cc (insert_updated_phi_nodes_for): Fix block | |
10246 | index check. | |
10247 | ||
10248 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10249 | ||
10250 | * tree-ssa-live.cc (init_var_map): Pre-allocate vec_bbs vector | |
10251 | to the correct size and use quick_push. | |
10252 | ||
10253 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10254 | ||
10255 | PR middle-end/27800 | |
10256 | * gimplify.cc (gimplify_modify_expr_rhs): For a COND_EXPR | |
10257 | avoid a temporary from gimplify_cond_expr when the LHS is | |
10258 | a register by pushing the assignment into the COND_EXPR arms. | |
10259 | ||
10260 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10261 | ||
10262 | * gimplify.cc (gimplify_hasher::equal): Remove redundant | |
10263 | checking. | |
10264 | ||
10265 | 2024-05-07 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
10266 | ||
10267 | PR tree-optimization/110490 | |
10268 | * tree-scalar-evolution.cc (expression_expensive_p): Also | |
10269 | consider mode widening for popcount, clz, and ctz. | |
10270 | ||
10271 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10272 | ||
10273 | * cfgexpand.cc (stack_var::representative): Use 'unsigned' | |
10274 | for stack var indexes instead of 'size_t'. | |
10275 | (stack_var::next): Likewise. | |
10276 | (EOC): Likewise. | |
10277 | (stack_vars_alloc): Likewise. | |
10278 | (stack_vars_num): Likewise. | |
10279 | (decl_to_stack_part): Likewise. | |
10280 | (stack_vars_sorted): Likewise. | |
10281 | (add_stack_var): Likewise. | |
10282 | (add_stack_var_conflict): Likewise. | |
10283 | (stack_var_conflict_p): Likewise. | |
10284 | (visit_op): Likewise. | |
10285 | (visit_conflict): Likewise. | |
10286 | (add_scope_conflicts_1): Likewise. | |
10287 | (stack_var_cmp): Likewise. | |
10288 | (part_hashmap): Likewise. | |
10289 | (update_alias_info_with_stack_vars): Likewise. | |
10290 | (union_stack_vars): Likewise. | |
10291 | (partition_stack_vars): Likewise. | |
10292 | (dump_stack_var_partition): Likewise. | |
10293 | (expand_stack_vars): Likewise. | |
10294 | (account_stack_vars): Likewise. | |
10295 | (stack_protect_decl_phase_1): Likewise. | |
10296 | (stack_protect_decl_phase_2): Likewise. | |
10297 | (asan_decl_phase_3): Likewise. | |
10298 | (init_vars_expansion): Likewise. | |
10299 | (estimated_stack_frame_size): Likewise. | |
10300 | ||
10301 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10302 | ||
10303 | PR middle-end/114931 | |
10304 | * tree.cc (type_hash_canon_hash): Hash TYPE_STRUCTURAL_EQUALITY_P. | |
10305 | (type_cache_hasher::equal): Compare TYPE_STRUCTURAL_EQUALITY_P. | |
10306 | (build_array_type_1): Set TYPE_STRUCTURAL_EQUALITY_P before | |
10307 | probing with type_hash_canon. | |
10308 | (build_function_type): Likewise. | |
10309 | (build_method_type_directly): Likewise. | |
10310 | (build_offset_type): Likewise. | |
10311 | (build_complex_type): Likewise. | |
10312 | * attribs.cc (build_type_attribute_qual_variant): Likewise. | |
10313 | ||
10314 | 2024-05-07 Aldy Hernandez <aldyh@redhat.com> | |
10315 | ||
10316 | * ipa-cp.cc (ipa_vr_operation_and_type_effects): Use ipa_supports_p. | |
10317 | (ipa_value_range_from_jfunc): Change Value_Range type. | |
10318 | (propagate_vr_across_jump_function): Same. | |
10319 | * ipa-cp.h (ipa_supports_p): New. | |
10320 | * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Change Value_Range type. | |
10321 | * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Use ipa_supports_p. | |
10322 | (ipcp_get_parm_bits): Same. | |
10323 | ||
10324 | 2024-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
10325 | ||
10326 | * config.gcc: Move *-*-solaris2.11.[0-3]* to unsupported list. | |
10327 | <*-*-solaris2*> (default_use_cxa_atexit): Set unconditionally. | |
10328 | * configure.ac (AX_LIB_SOCKET_NSL): Don't call. | |
10329 | (NETLIBS): Remove. | |
10330 | (gcc_cv_ld_aligned_shf_merge): Remove. | |
10331 | (hidden_linkonce) <i?86-*-solaris2* | x86_64-*-solaris2*>: Remove. | |
10332 | (gcc_cv_target_dl_iterate_phdr) <*-*-solaris2*>: Always set to yes. | |
10333 | * Makefile.in (NETLIBS): Remove. | |
10334 | * configure, config.in, aclocal.m4: Regenerate. | |
10335 | * config/sol2.h: Don't check HAVE_SOLARIS_CRTS. | |
10336 | (STARTFILE_SPEC): Remove !HAVE_SOLARIS_CRTS case. | |
10337 | [USE_GLD] (LINK_EH_SPEC): Remove TARGET_DL_ITERATE_PHDR guard. | |
10338 | * config/i386/i386.cc (USE_HIDDEN_LINKONCE): Remove guard. | |
10339 | * varasm.cc (mergeable_string_section): Remove | |
10340 | HAVE_LD_ALIGNED_SHF_MERGE handling. | |
10341 | (mergeable_constant_section): Likewise. | |
10342 | * doc/install.texi (Specific,i?86-*-solaris2*): Reference Solaris | |
10343 | 11.4 only. | |
10344 | (Specific, *-*-solaris2*): Document Solaris 11.3 removal. Remove | |
10345 | 11.3 references and caveats. Update for 11.4. | |
10346 | ||
10347 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10348 | ||
10349 | Revert: | |
10350 | 2024-04-10 Richard Biener <rguenther@suse.de> | |
10351 | ||
10352 | Revert: | |
10353 | 2024-03-27 Segher Boessenkool <segher@kernel.crashing.org> | |
10354 | ||
10355 | PR rtl-optimization/101523 | |
10356 | * combine.cc (try_combine): Don't do a 2-insn combination if | |
10357 | it does not in fact change I2. | |
10358 | ||
10359 | 2024-05-07 Andrew Pinski <quic_apinski@quicinc.com> | |
10360 | ||
10361 | PR middle-end/97263 | |
10362 | * doc/invoke.texi(fmath-errno): Document it is turned on | |
10363 | with -Ofast. | |
10364 | (funsafe-math-optimizations): Likewise. | |
10365 | (ffinite-math-only): Likewise. | |
10366 | (fno-trapping-math): Likewise and use less strong language. | |
10367 | ||
10368 | 2024-05-07 liuhongt <hongtao.liu@intel.com> | |
10369 | ||
10370 | * config/i386/sse.md (usdot_prodv*qi): Extend to VI1_AVX512 | |
10371 | with vpmaddwd when avxvnni/avx512vnni is not available. | |
10372 | ||
10373 | 2024-05-07 liuhongt <hongtao.liu@intel.com> | |
10374 | ||
10375 | PR target/113079 | |
10376 | * config/i386/mmx.md (usdot_prodv8qi): New expander. | |
10377 | (sdot_prodv8qi): Ditto. | |
10378 | (udot_prodv8qi): Ditto. | |
10379 | (usdot_prodv4hi): Ditto. | |
10380 | (udot_prodv4hi): Ditto. | |
10381 | (sdot_prodv4hi): Ditto. | |
10382 | ||
10383 | 2024-05-07 liuhongt <hongtao.liu@intel.com> | |
10384 | ||
10385 | PR target/113090 | |
10386 | * config/i386/i386-expand.cc | |
10387 | (expand_vec_perm_punpckldq_pshuf): New function. | |
10388 | (ix86_expand_vec_perm_const_1): Try | |
10389 | expand_vec_perm_punpckldq_pshuf for sequence of 2 | |
10390 | instructions. | |
10391 | ||
10392 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10393 | ||
10394 | * config/pru/pru-passes.cc (class pass_pru_minrt_check): New | |
10395 | pass. | |
10396 | (pass_pru_minrt_check::execute): New method. | |
10397 | (make_pru_minrt_check): New function. | |
10398 | * config/pru/pru-passes.def (INSERT_PASS_AFTER): Register the | |
10399 | minrt check pass. | |
10400 | * config/pru/pru-protos.h (make_pru_minrt_check): Add | |
10401 | declaration. | |
10402 | ||
10403 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10404 | ||
10405 | * config/pru/pru-passes.cc (class pass_tiabi_check): Rename to | |
10406 | add "pru_" prefix. | |
10407 | (class pass_pru_tiabi_check): Ditto. | |
10408 | (pass_tiabi_check::execute): Ditto. | |
10409 | (pass_pru_tiabi_check::execute): Ditto. | |
10410 | (make_pru_tiabi_check): Ditto. | |
10411 | (pru_register_abicheck_pass): Remove. | |
10412 | * config/pru/pru-protos.h (pru_register_abicheck_pass): Remove. | |
10413 | (make_pru_tiabi_check): Add declaration. | |
10414 | * config/pru/pru.cc (pru_option_override): Remove explicit pass | |
10415 | registration. | |
10416 | * config/pru/t-pru: Register PRU passes definition file. | |
10417 | * config/pru/pru-passes.def: New file. | |
10418 | ||
10419 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10420 | ||
10421 | * config/pru/pru.md (lshrdi3): Use HOST_WIDE_INT_1U macro. | |
10422 | (ashldi3): Ditto. | |
10423 | ||
10424 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10425 | ||
10426 | * config/pru/pru-passes.cc: Drop ATTRIBUTE_UNUSED and remove | |
10427 | argument's name. | |
10428 | * config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Ditto. | |
10429 | * config/pru/pru.cc (pru_function_profiler): Ditto. | |
10430 | (pru_can_eliminate): Ditto. | |
10431 | (pru_rtx_costs): Ditto. | |
10432 | (pru_insert_attributes): Ditto. | |
10433 | (pru_function_value): Ditto. | |
10434 | (pru_libcall_value): Ditto. | |
10435 | (pru_return_in_memory): Ditto. | |
10436 | (pru_builtin_decl): Ditto. | |
10437 | (pru_expand_builtin): Ditto. | |
10438 | ||
10439 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10440 | ||
10441 | * config/pru/pru.cc (prologue_saved_reg_p): Skip saving | |
10442 | if function will not return. | |
10443 | ||
10444 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10445 | ||
10446 | * config/pru/alu-zext.md (_noz0): New subst attribute. | |
10447 | (<code>_impl): Allow zero-extending the destination. | |
10448 | (<shift_op>): Remove unified pattern | |
10449 | (ashl_impl): New distinct pattern. | |
10450 | (lshr_impl): Ditto. | |
10451 | (alu3_zext_op0_subst): New subst iterator to zero-extend the | |
10452 | destination register. | |
10453 | ||
10454 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10455 | ||
10456 | * config/pru/pru.md (extzv<mode>): Make it an expand pattern, | |
10457 | handle efficiently zero-positioned bit-fields. | |
10458 | (insv<mode>): New expand pattern. | |
10459 | ||
10460 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10461 | ||
10462 | * config/pru/pru.md: New pattern alternative for zero-filling | |
10463 | 64-bit registers. | |
10464 | ||
10465 | 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu> | |
10466 | ||
10467 | * config/pru/pru.cc (pru_address_cost): Implement address cost | |
10468 | calculation. | |
10469 | (TARGET_ADDRESS_COST): Define for PRU. | |
10470 | ||
10471 | 2024-05-07 Richard Biener <rguenther@suse.de> | |
10472 | ||
10473 | PR tree-optimization/114921 | |
10474 | * tree-vect-stmts.cc (vectorizable_assignment): Use | |
10475 | tree_nop_conversion_p to identify converts we can vectorize | |
10476 | with a simple assignment. | |
10477 | ||
10478 | 2024-05-07 Roger Sayle <roger@nextmovesoftware.com> | |
10479 | Hongtao Liu <hongtao.liu@intel.com> | |
10480 | ||
10481 | PR target/106060 | |
10482 | * config/i386/i386-expand.cc (enum ix86_vec_bcast_alg): New. | |
10483 | (struct ix86_vec_bcast_map_simode_t): New type for table below. | |
10484 | (ix86_vec_bcast_map_simode): Table of SImode constants that may | |
10485 | be efficiently synthesized by a ix86_vec_bcast_alg method. | |
10486 | (ix86_vec_bcast_map_simode_cmp): New comparator for bsearch. | |
10487 | (ix86_vector_duplicate_simode_const): Efficiently synthesize | |
10488 | V4SImode and V8SImode constants that duplicate special constants. | |
10489 | (ix86_vector_duplicate_value): Attempt to synthesize "special" | |
10490 | vector constants using ix86_vector_duplicate_simode_const. | |
10491 | * config/i386/i386.cc (ix86_rtx_costs) <case ABS>: ABS of a | |
10492 | vector integer mode costs with a single SSE instruction. | |
10493 | ||
10494 | 2024-05-06 Xiao Zeng <zengxiao@eswincomputing.com> | |
10495 | ||
10496 | * common/config/riscv/riscv-common.cc (riscv_implied_info): zfbfmin | |
10497 | implies zfhmin. | |
10498 | (riscv_ext_version_table, riscv_ext_flag_table): Add zfbfmin. | |
10499 | * config/riscv/riscv.opt (ZFBFMIN): Add optoion. | |
10500 | ||
10501 | 2024-05-06 Xiao Zeng <zengxiao@eswincomputing.com> | |
10502 | Jin Ma <jinma@linux.alibaba.com> | |
10503 | ||
10504 | * config/riscv/iterators.md: New mode iterator HFBF. | |
10505 | * config/riscv/riscv-builtins.cc (riscv_init_builtin_types): | |
10506 | Initialize data type _Bfloat16. | |
10507 | * config/riscv/riscv-modes.def (FLOAT_MODE): New. | |
10508 | (ADJUST_FLOAT_FORMAT): New. | |
10509 | * config/riscv/riscv.cc (riscv_mangle_type): Support for BFmode. | |
10510 | (riscv_scalar_mode_supported_p): Ditto. | |
10511 | (riscv_libgcc_floating_mode_supported_p): Ditto. | |
10512 | (riscv_init_libfuncs): Set the conversion method for BFmode and | |
10513 | HFmode. | |
10514 | (riscv_block_arith_comp_libfuncs_for_mode): Set the arithmetic | |
10515 | and comparison libfuncs for the mode. | |
10516 | * config/riscv/riscv.md (mode" ): Add BF. | |
10517 | (movhf): Support for BFmode. | |
10518 | (mov<mode>): Ditto. | |
10519 | (*movhf_softfloat): Ditto. | |
10520 | (*mov<mode>_softfloat): Ditto. | |
10521 | ||
10522 | 2024-05-06 Palmer Dabbelt <palmer@rivosinc.com> | |
10523 | ||
10524 | * doc/invoke.texi (RISC-V): Add -mcmodel=large. | |
10525 | ||
10526 | 2024-05-06 Jeff Law <jlaw@ventanamicro.com> | |
10527 | ||
10528 | * config/riscv/riscv.cc (riscv_integer_op): Add field tracking if we | |
10529 | want to use a "uw" instruction variant. | |
10530 | (riscv_build_integer_1): Initialize the new field in various places. | |
10531 | Use lui+slli.uw for some constants. | |
10532 | (riscv_move_integer): Handle slli.uw. | |
10533 | ||
10534 | 2024-05-06 Qing Zhao <qing.zhao@oracle.com> | |
10535 | ||
10536 | PR c/53548 | |
10537 | * stor-layout.cc (place_union_field): Use zero sizes for flexible array | |
10538 | member fields. | |
10539 | ||
10540 | 2024-05-06 Qing Zhao <qing.zhao@oracle.com> | |
10541 | ||
10542 | PR c/53548 | |
10543 | * doc/extend.texi: Add documentation for Flexible Array Members in | |
10544 | Unions and Flexible Array Members alone in Structures. | |
10545 | ||
10546 | 2024-05-06 Georg-Johann Lay <avr@gjlay.de> | |
10547 | ||
10548 | PR ipa/92606 | |
10549 | * config/avr/avr.cc (avr_option_override): Set | |
10550 | flag_ipa_icf_variables = 0. | |
10551 | ||
10552 | 2024-05-06 Sandra Loosemore <sloosemore@baylibre.com> | |
10553 | ||
10554 | * tree-nested.cc (convert_tramp_reference_stmt): Use the correct | |
10555 | accessor for GIMPLE_OMP_TARGET clauses. | |
10556 | ||
10557 | 2024-05-06 Richard Biener <rguenther@suse.de> | |
10558 | ||
10559 | PR tree-optimization/100923 | |
10560 | * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize | |
10561 | base SSA_NAME. | |
10562 | (vn_reference_lookup_3): Adjust vn_context_bb around calls | |
10563 | to ao_ref_init_from_vn_reference. | |
10564 | (vn_reference_lookup_pieces): Revert original PR100923 fix. | |
10565 | (vn_reference_lookup): Likewise. | |
10566 | ||
10567 | 2024-05-06 Richard Biener <rguenther@suse.de> | |
10568 | ||
10569 | * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Add | |
10570 | TARGET_MEM_REF support. Handle more bases. | |
10571 | ||
10572 | 2024-05-06 YunQiang Su <syq@gcc.gnu.org> | |
10573 | ||
10574 | PR target/113179 | |
10575 | * expmed.cc(store_bit_field_using_insv): TRUNCATE value1 if | |
10576 | needed. | |
10577 | ||
10578 | 2024-05-05 Andrew Pinski <quic_apinski@quicinc.com> | |
10579 | ||
10580 | * gimple-loop-versioning.cc (loop_versioning): Remove m_nloops field. | |
10581 | (loop_versioning::loop_versioning): Remove initialization of | |
10582 | m_nloops field and move it to be a local variable. | |
10583 | (loop_versioning::analyze_blocks): Fix formating. | |
10584 | ||
10585 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10586 | ||
10587 | * gimple-range-op.cc (class cfn_pass_through_arg1): Add overloads | |
10588 | for prange operations. | |
10589 | (cfn_strlen): Same. | |
10590 | ||
10591 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10592 | ||
10593 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10594 | * range-op-ptr.cc (operator_ge::fold_range): New. | |
10595 | (operator_ge::op1_range): New. | |
10596 | (operator_ge::op2_range): New. | |
10597 | (operator_ge::op1_op2_relation): New. | |
10598 | (operator_ge::pointers_handled_p): New. | |
10599 | ||
10600 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10601 | ||
10602 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10603 | * range-op-ptr.cc (operator_gt::fold_range): New. | |
10604 | (operator_gt::op1_range): New. | |
10605 | (operator_gt::op2_range): New. | |
10606 | (operator_gt::op1_op2_relation): New. | |
10607 | (operator_gt::pointers_handled_p): New. | |
10608 | ||
10609 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10610 | ||
10611 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10612 | * range-op-ptr.cc (operator_le::fold_range): New. | |
10613 | (operator_le::op1_range): New. | |
10614 | (operator_le::op2_range): New. | |
10615 | (operator_le::op1_op2_relation): New. | |
10616 | (operator_le::pointers_handled_p): New. | |
10617 | ||
10618 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10619 | ||
10620 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10621 | * range-op-ptr.cc (max_limit): New. | |
10622 | (min_limit): New. | |
10623 | (build_lt): New. | |
10624 | (build_le): New. | |
10625 | (build_gt): New. | |
10626 | (build_ge): New. | |
10627 | (operator_lt::fold_range): New. | |
10628 | (operator_lt::op1_range): New. | |
10629 | (operator_lt::op2_range): New. | |
10630 | (operator_lt::op1_op2_relation): New. | |
10631 | (operator_lt::pointers_handled_p): New. | |
10632 | ||
10633 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10634 | ||
10635 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10636 | * range-op-ptr.cc (operator_equal::fold_range): New. | |
10637 | (operator_equal::op1_range): New. | |
10638 | (operator_equal::op2_range): New. | |
10639 | (operator_equal::op1_op2_relation): New. | |
10640 | (operator_equal::pointers_handled_p): New. | |
10641 | ||
10642 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10643 | ||
10644 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10645 | * range-op-ptr.cc (operator_not_equal::fold_range): New. | |
10646 | (operator_not_equal::op1_range): New. | |
10647 | (operator_not_equal::op2_range): New. | |
10648 | (operator_not_equal::op1_op2_relation): New. | |
10649 | (operator_not_equal::pointers_handled_p): New. | |
10650 | ||
10651 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10652 | ||
10653 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10654 | * range-op-ptr.cc (operator_bitwise_or::pointers_handled_p): New. | |
10655 | ||
10656 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10657 | ||
10658 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10659 | * range-op-ptr.cc (operator_bitwise_and::fold_range): New. | |
10660 | (operator_bitwise_and::pointers_handled_p): New. | |
10661 | ||
10662 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10663 | ||
10664 | * range-op-ptr.cc | |
10665 | (operator_pointer_diff::op1_op2_relation_effect): New. | |
10666 | (operator_pointer_diff::pointers_handled_p): New. | |
10667 | ||
10668 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10669 | ||
10670 | * range-op-ptr.cc (class pointer_plus_operator): Add overloaded declarations | |
10671 | for pointer variants. | |
10672 | (pointer_plus_operator::fold_range): New. | |
10673 | (pointer_plus_operator::op2_range): New. | |
10674 | (pointer_plus_operator::pointers_handled_p): New. | |
10675 | ||
10676 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10677 | ||
10678 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10679 | * range-op-ptr.cc (operator_addr_expr::op1_range): New. | |
10680 | (operator_addr_expr::pointers_handled_p): New. | |
10681 | ||
10682 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10683 | ||
10684 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10685 | * range-op-ptr.cc (operator_min::fold_range): New. | |
10686 | (operator_min::pointers_handled_p): New. | |
10687 | (operator_max::fold_range): New. | |
10688 | (operator_max::pointers_handled_p): New. | |
10689 | ||
10690 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10691 | ||
10692 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10693 | * range-op-ptr.cc (operator_cast::fold_range): New. | |
10694 | (operator_cast::op1_range): New. | |
10695 | (operator_cast::lhs_op1_relation): New. | |
10696 | (operator_cast::pointers_handled_p): New. | |
10697 | ||
10698 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10699 | ||
10700 | * range-op-mixed.h: Add overloaded declarations for pointer variants. | |
10701 | * range-op-ptr.cc (operator_cst::fold_range): New. | |
10702 | (operator_cst::pointers_handled_p): New. | |
10703 | ||
10704 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10705 | ||
10706 | * range-op-mixed.h: Add overloaded declarations for fold_range, op1_range, | |
10707 | lhs_op1_relation, pointers_handled_p. | |
10708 | * range-op-ptr.cc (operator_identity::fold_range): New. | |
10709 | (operator_identity::lhs_op1_relation): New. | |
10710 | (operator_identity::op1_range): New. | |
10711 | (operator_identity::pointers_handled_p): New. | |
10712 | ||
10713 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10714 | ||
10715 | * range-op-mixed.h: Add using declarator for all classes. | |
10716 | * range-op-ptr.cc (range_operator::pointers_handled_p): New. | |
10717 | (range_operator::fold_range): New. | |
10718 | (range_operator::op1_op2_relation_effect): New. | |
10719 | (range_operator::op1_range): New. | |
10720 | (range_operator::op2_range): New. | |
10721 | (range_operator::op1_op2_relation): New. | |
10722 | (range_operator::lhs_op1_relation): New. | |
10723 | (range_operator::update_bitmask): New. | |
10724 | (class pointer_plus_operator): New. | |
10725 | (class operator_pointer_diff): New. | |
10726 | (class hybrid_min_operator): New. | |
10727 | (class hybrid_max_operator): New. | |
10728 | * range-op.cc: Add RO_PPP, RO_PPI, RO_IPP, RO_IPI, RO_PIP, RO_PII. | |
10729 | (range_op_handler::discriminator_fail): New. | |
10730 | (has_pointer_operand_p): New. | |
10731 | (range_op_handler::fold_range): Add pointer support. | |
10732 | (range_op_handler::op1_range): Same. | |
10733 | (range_op_handler::op2_range): Same. | |
10734 | (range_op_handler::lhs_op1_relation): Same. | |
10735 | (range_op_handler::lhs_op2_relation): Same. | |
10736 | (range_op_handler::op1_op2_relation): Same. | |
10737 | (class operator_div): Add using. | |
10738 | (class operator_lshift): Add using. | |
10739 | (class operator_rshift):Add using. | |
10740 | (class operator_trunc_mod):Add using. | |
10741 | (class operator_absu):Add using. | |
10742 | * range-op.h (enum range_op_dispatch_type): New. | |
10743 | Add extern definitions for RO_*. | |
10744 | ||
10745 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10746 | ||
10747 | * value-range.cc (get_legacy_range): New version for prange. | |
10748 | ||
10749 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10750 | ||
10751 | * value-range.cc (add_vrange): Add prange support. | |
10752 | ||
10753 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10754 | ||
10755 | * value-range-storage.cc (vrange_allocator::clone_varying): Add | |
10756 | prange support. | |
10757 | (vrange_allocator::clone_undefined): Same. | |
10758 | (vrange_storage::alloc): Same. | |
10759 | (vrange_storage::set_vrange): Same. | |
10760 | (vrange_storage::get_vrange): Same. | |
10761 | (vrange_storage::fits_p): Same. | |
10762 | (vrange_storage::equal_p): Same. | |
10763 | (prange_storage::alloc): New. | |
10764 | (prange_storage::prange_storage): New. | |
10765 | (prange_storage::set_prange): New. | |
10766 | (prange_storage::get_prange): New. | |
10767 | (prange_storage::equal_p): New. | |
10768 | (prange_storage::fits_p): New. | |
10769 | * value-range-storage.h (class prange_storage): Add prange support. | |
10770 | ||
10771 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10772 | ||
10773 | * data-streamer-in.cc (streamer_read_value_range): Add prange support. | |
10774 | * data-streamer-out.cc (streamer_write_vrange): Same. | |
10775 | ||
10776 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10777 | ||
10778 | * value-range-pretty-print.cc (vrange_printer::visit): New. | |
10779 | * value-range-pretty-print.h: Declare prange visit() method. | |
10780 | * value-range.cc (vrange::operator=): Add prange support. | |
10781 | (vrange::operator==): Same. | |
10782 | (prange::accept): New. | |
10783 | (prange::set_nonnegative): New. | |
10784 | (prange::set): New. | |
10785 | (prange::contains_p): New. | |
10786 | (prange::singleton_p): New. | |
10787 | (prange::lbound): New. | |
10788 | (prange::ubound): New. | |
10789 | (prange::union_): New. | |
10790 | (prange::intersect): New. | |
10791 | (prange::operator=): New. | |
10792 | (prange::operator==): New. | |
10793 | (prange::invert): New. | |
10794 | (prange::verify_range): New. | |
10795 | (prange::update_bitmask): New. | |
10796 | (range_tests_misc): Use prange. | |
10797 | * value-range.h (enum value_range_discriminator): Add VR_PRANGE. | |
10798 | (class prange): New. | |
10799 | (Value_Range::init): Add prange support. | |
10800 | (Value_Range::operator=): Same. | |
10801 | (Value_Range::supports_type_p): Same. | |
10802 | (prange::prange): New. | |
10803 | (prange::supports_p): New. | |
10804 | (prange::supports_type_p): New. | |
10805 | (prange::set_undefined): New. | |
10806 | (prange::set_varying): New. | |
10807 | (prange::set_nonzero): New. | |
10808 | (prange::set_zero): New. | |
10809 | (prange::contains_p): New. | |
10810 | (prange::zero_p): New. | |
10811 | (prange::nonzero_p): New. | |
10812 | (prange::type): New. | |
10813 | (prange::lower_bound): New. | |
10814 | (prange::upper_bound): New. | |
10815 | (prange::varying_compatible_p): New. | |
10816 | (prange::get_bitmask): New. | |
10817 | (prange::fits_p): New. | |
10818 | ||
10819 | 2024-05-04 Aldy Hernandez <aldyh@redhat.com> | |
10820 | ||
10821 | * value-range.h (class prange): New. | |
10822 | ||
10823 | 2024-05-03 Andrew Pinski <quic_apinski@quicinc.com> | |
10824 | ||
10825 | PR middle-end/23872 | |
10826 | * tree-pretty-print.cc (dump_generic_node <case COMPOUND_EXPR>): Fix | |
10827 | calls to dump_generic_node and also remove unreachable code that is testing | |
10828 | `flags & TDF_SLIM`. | |
10829 | ||
10830 | 2024-05-03 Vineet Gupta <vineetg@rivosinc.com> | |
10831 | ||
10832 | * config/riscv/riscv.cc: Comment updates. | |
10833 | * config/riscv/riscv.h: Ditto. | |
10834 | ||
10835 | 2024-05-03 Vineet Gupta <vineetg@rivosinc.com> | |
10836 | ||
10837 | * doc/rtl.texi: Add entry for GET_MODE_INNER. | |
10838 | ||
10839 | 2024-05-03 Richard Biener <rguenther@suse.de> | |
10840 | ||
10841 | * bitmap.cc (bitmap_alloc): When using the global bitmap obstack | |
10842 | assert that is initialized. | |
10843 | ||
10844 | 2024-05-03 Richard Biener <rguenther@suse.de> | |
10845 | ||
10846 | PR middle-end/114931 | |
10847 | * tree.cc (build_array_type_1): Return early when type_hash_canon | |
10848 | returned an older existing type. | |
10849 | (build_function_type): Likewise. | |
10850 | (build_method_type_directly): Likewise. | |
10851 | (build_offset_type): Likewise. | |
10852 | ||
10853 | 2024-05-03 Alex Coplan <alex.coplan@arm.com> | |
10854 | ||
10855 | PR rtl-optimization/114924 | |
10856 | * cfgrtl.cc (duplicate_insn_chain): When updating MEM_EXPRs, | |
10857 | don't strip (e.g.) ARRAY_REFs from the final MEM_EXPR. | |
10858 | ||
10859 | 2024-05-03 Jakub Jelinek <jakub@redhat.com> | |
10860 | ||
10861 | PR middle-end/113596 | |
10862 | * tree-inline.cc (expand_call_inline): Emit __builtin_stack_save | |
10863 | and __builtin_stack_restore calls around inlined functions which | |
10864 | call alloca. | |
10865 | ||
10866 | 2024-05-03 Richard Biener <rguenther@suse.de> | |
10867 | ||
10868 | PR tree-optimization/114921 | |
10869 | * tree-vect-stmts.cc (vectorizable_assignment): Require | |
10870 | same vector component modes for input and output for | |
10871 | CONVERT_EXPR_CODE_P. | |
10872 | ||
10873 | 2024-05-02 Jeff Law <jlaw@ventanamicro.com> | |
10874 | ||
10875 | * config/riscv/riscv.md (<round_pattern><ANYF:mode>2): Adjust | |
10876 | condition to match what can be properly implemented. Fix various | |
10877 | formatting issues. | |
10878 | (l<round_pattern><ANYF:mode>si2_sext): Fix formatting | |
10879 | ||
10880 | 2024-05-02 Jeff Law <jlaw@ventanamicro.com> | |
10881 | ||
10882 | * config/riscv/predicates.md (arith_or_zbs_operand): New predicate. | |
10883 | * config/riscv/riscv.cc (riscv_build_integer_one): Use bseti to set | |
10884 | single bits when profitable. | |
10885 | * config/riscv/riscv.md (*<optab><mode>3): Renamed with '*' prefix. | |
10886 | (<optab><mode>3): New expander for IOR/XOR. | |
10887 | ||
10888 | 2024-05-02 Richard Biener <rguenther@suse.de> | |
10889 | ||
10890 | * tree-vect-slp.cc (vect_print_slp_tree): Mark live lanes. | |
10891 | (dot_slp_tree): New overload for multiple entries. | |
10892 | ||
10893 | 2024-05-02 Gaius Mulley <gaiusmod2@gmail.com> | |
10894 | ||
10895 | PR modula2/113836 | |
10896 | * doc/gm2.texi (Compiler options): Add -fm2-debug-trace=, | |
10897 | -fm2-dump, -fm2-dump-decl=, -fm2-dump-gimple=, -fm2-dump-quad= | |
10898 | and -fm2-dump-filter=. | |
10899 | ||
10900 | 2024-05-02 Marc Poulhiès <poulhies@adacore.com> | |
10901 | ||
10902 | * value-range.h: fix static_assert to use 2 arguments. | |
10903 | ||
10904 | 2024-05-02 Peter Damianov <peter0x44@disroot.org> | |
10905 | ||
10906 | PR lto/110710 | |
10907 | * lto-wrapper.cc (run_gcc): Instead of truncating a processed | |
10908 | ltrans input from the Makefile use the new -truncate option | |
10909 | to accomplish the same. | |
10910 | ||
10911 | 2024-05-02 Peter Damianov <peter0x44@disroot.org> | |
10912 | ||
10913 | PR lto/110710 | |
10914 | * common.opt (truncate): New internal option. | |
10915 | * gcc.cc (totruncate_file): New global. | |
10916 | (driver_handle_option): Handle -truncate <file>. | |
10917 | (driver::final_actions): Truncate the file indicated. | |
10918 | ||
10919 | 2024-05-02 Richard Biener <rguenther@suse.de> | |
10920 | ||
10921 | * graphds.cc (dump_graph): Dump in graphviz format. | |
10922 | ||
10923 | 2024-05-02 Richard Biener <rguenther@suse.de> | |
10924 | ||
10925 | * tree-ssa-live.h (tree_live_info_d::global): Remove. | |
10926 | (partition_is_global): Likewise. | |
10927 | (make_live_on_entry): Do not set bit in global. | |
10928 | * tree-ssa-live.cc (new_tree_live_info): Do not allocate | |
10929 | global bitmap. | |
10930 | (delete_tree_live_info): Do not release it. | |
10931 | (set_var_live_on_entry): Do not set bits in it. | |
10932 | ||
10933 | 2024-05-02 Richard Biener <rguenther@suse.de> | |
10934 | ||
10935 | PR middle-end/114579 | |
10936 | * cfgexpand.cc (add_scope_conflicts_1): Record all-to-all | |
10937 | conflicts only when there's a CFG merge but for all CFG merges. | |
10938 | ||
10939 | 2024-05-01 Gerald Pfeifer <gerald@pfeifer.com> | |
10940 | ||
10941 | PR target/69374 | |
10942 | PR target/112959 | |
10943 | * doc/install.texi (Specific) <*-*-freebsd*>: The Ada and D | |
10944 | run-time libraries are broken on i386 which also can affect | |
10945 | 64-bit builds. Go is broken. | |
10946 | ||
10947 | 2024-05-01 Jeff Law <jlaw@ventanamicro.com> | |
10948 | ||
10949 | * config/riscv/bitmanip.md (splitter to use w-form division): Remove | |
10950 | explicit subregs. | |
10951 | (zero extended bitfield extraction): Similarly. | |
10952 | * config/riscv/thead.md (*th_memidx_operand): Similarly. | |
10953 | ||
10954 | 2024-05-01 Jeff Law <jlaw@ventanamicro.com> | |
10955 | ||
10956 | * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Break out | |
10957 | tests for easier debugging in store pair fusion case. Fix offset | |
10958 | check in same. | |
10959 | ||
10960 | 2024-05-01 Gerald Pfeifer <gerald@pfeifer.com> | |
10961 | ||
10962 | PR target/69374 | |
10963 | PR target/112959 | |
10964 | * doc/install.texi (Specific) <*-*-freebsd*>: No longer refer | |
10965 | to GCC or binutils in base. Recommend bootstrap using binutils. | |
10966 | ||
10967 | 2024-05-01 Gerald Pfeifer <gerald@pfeifer.com> | |
10968 | ||
10969 | PR target/69374 | |
10970 | * doc/install.texi (Specific) <ia64-*-hpux*>: Remove details | |
10971 | on libunwind for GCC 3.4 and earlier. | |
10972 | ||
10973 | 2024-05-01 Aldy Hernandez <aldyh@redhat.com> | |
10974 | ||
10975 | * ipa-fnsummary.cc (evaluate_properties_for_edge): Initialize Value_Range's. | |
10976 | * value-range.h (class Value_Range): Add a buffer and remove | |
10977 | m_irange and m_frange. | |
10978 | (Value_Range::Value_Range): Call init. | |
10979 | (Value_Range::set_type): Same. | |
10980 | (Value_Range::init): Use in place new to initialize buffer. | |
10981 | (Value_Range::operator=): Tidy. | |
10982 | ||
10983 | 2024-05-01 Aldy Hernandez <aldyh@redhat.com> | |
10984 | ||
10985 | * value-range.cc (unsupported_range::union_): Cast vrange to | |
10986 | unsupported_range. | |
10987 | (unsupported_range::intersect): Same. | |
10988 | (unsupported_range::operator=): Make argument an unsupported_range. | |
10989 | * value-range.h: New constructor. | |
10990 | ||
10991 | 2024-04-30 Andrew MacLeod <amacleod@redhat.com> | |
10992 | ||
10993 | * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Don't | |
10994 | assert that here are less than 3 operands. | |
10995 | (gimple_range_op_handler::maybe_builtin_call): Simply return if | |
10996 | there is no type for the function call. | |
10997 | ||
10998 | 2024-04-30 Andrew MacLeod <amacleod@redhat.com> | |
10999 | ||
11000 | * gimple-range.cc (gimple_ranger::range_on_entry): Adjust for new | |
11001 | API and support non-SSA expressions. | |
11002 | (gimple_ranger::range_on_exit): Ditto. | |
11003 | * gimple-range.h (range_on_entry, range_on_exit): Adjust API. | |
11004 | * value-query.cc (range_query::range_on_entry): New. | |
11005 | (range_query::range_on_exit): New. | |
11006 | (range_query::value_on_entry): New. | |
11007 | (range_query::value_on_exit): New. | |
11008 | (range_query::invoke_range_of_expr): New. | |
11009 | (range_query::get_tree_range): Allow stmt, on_entry or on_exit | |
11010 | range queries. | |
11011 | SSA_NAMES should invoke range_of_expr if possible. | |
11012 | * value-query.h (class range_query): Adjust prototypes. | |
11013 | ||
11014 | 2024-04-30 Andrew MacLeod <amacleod@redhat.com> | |
11015 | ||
11016 | * gimple-range.cc (gimple_ranger::range_of_expr): Call range_of_stmt | |
11017 | when there is no context stmt. | |
11018 | ||
11019 | 2024-04-30 Andrew MacLeod <amacleod@redhat.com> | |
11020 | ||
11021 | * gimple-range-cache.cc (ranger_cache::get_global_range): Do not | |
11022 | pre-evaluate PHI nodes from the cache. | |
11023 | (ranger_cache::fill_block_cache): Make re-entrant. | |
11024 | ||
11025 | 2024-04-30 Andrew MacLeod <amacleod@redhat.com> | |
11026 | ||
11027 | * value-query.cc (get_range_global): Rename to gimple_range_global. | |
11028 | (gimple_range_global): Remove wrapper function. | |
11029 | (global_range_query::range_of_expr): Call gimple_range_global. | |
11030 | ||
11031 | 2024-04-30 Andrew Pinski <quic_apinski@quicinc.com> | |
11032 | ||
11033 | * tree-cfg.cc (verify_gimple_assign): Remove quote | |
11034 | mark to shut up the warning. | |
11035 | ||
11036 | 2024-04-30 Andrew Pinski <quic_apinski@quicinc.com> | |
11037 | ||
11038 | * tree-ssa-phiopt.cc (value_replacement): Reject undef variables | |
11039 | so they don't become unconditional used. | |
11040 | ||
11041 | 2024-04-30 Andrew Pinski <quic_apinski@quicinc.com> | |
11042 | ||
11043 | * tree-ssa-phiopt.cc (value_replacement): Move check for | |
11044 | NE/EQ earlier. | |
11045 | ||
11046 | 2024-04-30 Andrew Pinski <quic_apinski@quicinc.com> | |
11047 | ||
11048 | * tree-ssa-phiopt.cc (single_non_singleton_phi_for_edges): | |
11049 | Remove the special case of gimple_seq_singleton_p. | |
11050 | ||
11051 | 2024-04-30 Andrew Pinski <quic_apinski@quicinc.com> | |
11052 | ||
11053 | PR middle-end/112976 | |
11054 | * cfgexpand.cc (expand_gimple_stmt_1): Remove | |
11055 | support for expanding nontemporal "moves" with | |
11056 | ssa names on the LHS. | |
11057 | ||
11058 | 2024-04-30 Andrew Pinski <quic_apinski@quicinc.com> | |
11059 | ||
11060 | PR middle-end/112976 | |
11061 | * tree-cfg.cc (verify_gimple_assign): Verify that | |
11062 | nontmporal moves are stores. | |
11063 | * gimple.h (struct gimple): Note that only | |
11064 | nontemporal stores are supported. | |
11065 | ||
11066 | 2024-04-30 Jivan Hakobyan <jivanhakobyan9@gmail.com> | |
11067 | ||
11068 | * config/riscv/iterators.md (fix_ops, fix_uns): New iterators. | |
11069 | (RINT, rint_pattern, rint_rm): Remove unused iterators. | |
11070 | * config/riscv/riscv-protos.h (get_fp_rounding_coefficient): Prototype. | |
11071 | * config/riscv/riscv-v.cc (get_fp_rounding_coefficient): Externalize. | |
11072 | external linkage. | |
11073 | * config/riscv/riscv.md (UNSPEC_LROUND): Remove. | |
11074 | (fix_trunc<ANYF:mode><GPR:mode>2): Replace with ... | |
11075 | (<fix_uns>_trunc<ANYF:mode>si2): New expander & associated insn. | |
11076 | (<fix_uns>_trunc<ANYF:mode>si2_ext): New insn. | |
11077 | (<fix_uns>_trunc<ANYF:mode>di2): Likewise. | |
11078 | (l<rint_pattern><ANYF:mode><GPR:mode>2): Replace with ... | |
11079 | (lrint<ANYF:mode>si2): New expander and associated insn. | |
11080 | (lrint<ANYF:mode>si2_ext, lrint<ANYF:mode>di2): New insns. | |
11081 | (<round_pattern><ANYF:mode>2): Replace with.... | |
11082 | (l<round_pattern><ANYF:mode>si2): New expander and associated insn. | |
11083 | (l<round_pattern><ANYF:mode>si2_sext): New insn. | |
11084 | (l<round_pattern><ANYF:mode>di2): Likewise. | |
11085 | (<round_pattern><ANYF:mode>2): New expander. | |
11086 | ||
11087 | 2024-04-30 Aldy Hernandez <aldyh@redhat.com> | |
11088 | ||
11089 | * gimple-ssa-warn-access.cc (check_nul_terminated_array): Change | |
11090 | int_range<2> to int_range_max. | |
11091 | (memmodel_to_uhwi): Same. | |
11092 | * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same. | |
11093 | (determine_value_range): Same. | |
11094 | (infer_loop_bounds_from_signedness): Same. | |
11095 | (scev_var_range_cant_overflow): Same. | |
11096 | ||
11097 | 2024-04-30 Richard Biener <rguenther@suse.de> | |
11098 | ||
11099 | PR middle-end/13421 | |
11100 | * optabs-tree.cc (optab_for_tree_code): Do not consider | |
11101 | {add,sub}v or {us,ss}{add,sub} optabs for POINTER_DIFF_EXPR | |
11102 | or POINTER_PLUS_EXPR. | |
11103 | ||
11104 | 2024-04-30 Jakub Jelinek <jakub@redhat.com> | |
11105 | ||
11106 | PR tree-optimization/114876 | |
11107 | * gimple-ssa-sprintf.cc (format_character): For min == 0 && max == 0, | |
11108 | set max, likely and unlikely members to 1 rather than 0. Remove | |
11109 | useless res.knownrange = true;. Formatting fixes. | |
11110 | ||
11111 | 2024-04-30 Jakub Jelinek <jakub@redhat.com> | |
11112 | Hongtao Liu <hongtao.liu@intel.com> | |
11113 | ||
11114 | PR tree-optimization/114883 | |
11115 | * tree-vect-loop.cc (vect_transform_reduction): Allow IFN_COND_MIN and | |
11116 | IFN_COND_MAX in the assert. | |
11117 | ||
11118 | 2024-04-30 Jakub Jelinek <jakub@redhat.com> | |
11119 | ||
11120 | * doc/cpp.texi (__STDC_VERSION__): Document 202311L value | |
11121 | for -std=c23/-std=gnu23. | |
11122 | ||
11123 | 2024-04-30 Richard Biener <rguenther@suse.de> | |
11124 | ||
11125 | PR middle-end/114734 | |
11126 | * internal-fn.cc (expand_call_mem_ref): Use | |
11127 | get_gimple_for_ssa_name to get at the def stmt of the address | |
11128 | argument to honor SSA coalescing constraints. | |
11129 | ||
11130 | 2024-04-29 demin.han <demin.han@starfivetech.com> | |
11131 | ||
11132 | PR target/114506 | |
11133 | * config/riscv/riscv-vector-costs.cc (non_contiguous_memory_access_p): Rename | |
11134 | (need_additional_vector_vars_p): Rename and refine condition | |
11135 | ||
11136 | 2024-04-29 Pan Li <pan2.li@intel.com> | |
11137 | ||
11138 | PR target/114885 | |
11139 | * config/riscv/riscv.cc (riscv_legitimize_subreg_const_poly_move): New | |
11140 | func impl to take care of (const_int_poly:TI 8). | |
11141 | (riscv_legitimize_move): Handle subreg is const_int_poly, | |
11142 | ||
11143 | 2024-04-29 Christoph Müllner <christoph.muellner@vrull.eu> | |
11144 | ||
11145 | * common/config/riscv/riscv-common.cc: Move ziccamoa, ziccif, | |
11146 | zicclsm, and ziccrse into riscv_zi_subext. | |
11147 | * config/riscv/riscv.opt: Define MASK_ZIC64B for | |
11148 | riscv_ziccmo_subext. | |
11149 | ||
11150 | 2024-04-29 Jie Mei <jie.mei@oss.cipunited.com> | |
11151 | ||
11152 | * config/mips/i6400.md (i6400_fpu_minmax): New | |
11153 | define_insn_reservation. | |
11154 | * config/mips/mips.h (ISA_HAS_FMIN_FMAX): Define new macro. | |
11155 | * config/mips/mips.md (UNSPEC_FMIN): New unspec. | |
11156 | (UNSPEC_FMAX): Same as above. | |
11157 | (type): Add fminmax. | |
11158 | (smin<mode>3): Generates MIN.fmt instructions. | |
11159 | (smax<mode>3): Generates MAX.fmt instructions. | |
11160 | (fmin<mode>3): Generates MIN.fmt instructions. | |
11161 | (fmax<mode>3): Generates MAX.fmt instructions. | |
11162 | * config/mips/p6600.md (p6600_fpu_fabs): Include fminmax | |
11163 | type. | |
11164 | ||
11165 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11166 | ||
11167 | * tree-ssa-ccp.cc (ccp_finalize): Normalize before calling | |
11168 | set_bitmask. | |
11169 | * value-range.cc (irange::intersect_bitmask): Calculate changed | |
11170 | irange_bitmask bits on our own. | |
11171 | (irange::union_bitmask): Same. | |
11172 | (irange_bitmask::verify_mask): Verify that bits are normalized. | |
11173 | * value-range.h (irange_bitmask::union_): Do not normalize. | |
11174 | Remove return value. | |
11175 | (irange_bitmask::intersect): Same. | |
11176 | ||
11177 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11178 | ||
11179 | * range-op-ptr.cc (pointer_plus_operator::wi_fold): Use method | |
11180 | range setters instead of out of line functions. | |
11181 | (pointer_min_max_operator::wi_fold): Same. | |
11182 | (pointer_and_operator::wi_fold): Same. | |
11183 | (pointer_or_operator::wi_fold): Same. | |
11184 | * range-op.cc (operator_negate::fold_range): Same. | |
11185 | (operator_addr_expr::fold_range): Same. | |
11186 | (range_op_cast_tests): Same. | |
11187 | * range.cc (range_zero): Remove. | |
11188 | (range_nonzero): Remove. | |
11189 | * range.h (range_zero): Remove. | |
11190 | (range_nonzero): Remove. | |
11191 | * value-range.cc (range_tests_misc): Use method instead of out of | |
11192 | line function. | |
11193 | ||
11194 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11195 | ||
11196 | * value-range-pretty-print.cc (print_int_bound): New. | |
11197 | (print_irange_bitmasks): New. | |
11198 | (vrange_printer::print_irange_bound): Remove. | |
11199 | (vrange_printer::print_irange_bitmasks): Remove. | |
11200 | * value-range-pretty-print.h: Remove print_irange_bitmasks and | |
11201 | print_irange_bound | |
11202 | ||
11203 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11204 | ||
11205 | * value-range.h (range_includes_zero_p): Accept vrange. | |
11206 | ||
11207 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11208 | ||
11209 | * tree-ssa-loop-split.cc (split_at_bb_p): Make int_range a Value_Range. | |
11210 | * tree-ssa-strlen.cc (get_range): Same. | |
11211 | * value-query.cc (range_query::get_tree_range): Handle both | |
11212 | integers and pointers. | |
11213 | * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Make | |
11214 | r0 and r1 Value_Range's. | |
11215 | ||
11216 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11217 | ||
11218 | * value-range.cc (get_bitmask_from_range): Move out of irange class. | |
11219 | (irange::get_bitmask): Call function instead of internal method. | |
11220 | * value-range.h (class irange): Remove get_bitmask_from_range. | |
11221 | ||
11222 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11223 | ||
11224 | * value-range.cc (get_legacy_range): Make static and add another | |
11225 | version of get_legacy_range that takes a vrange. | |
11226 | * value-range.h (class irange): Remove unnecessary friendship with | |
11227 | get_legacy_range. | |
11228 | (get_legacy_range): Accept a vrange. | |
11229 | ||
11230 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11231 | ||
11232 | * value-range-storage.cc (irange_storage::set_irange): Move | |
11233 | verification code from here... | |
11234 | (vrange_storage::set_vrange): ...to here. | |
11235 | ||
11236 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11237 | ||
11238 | * gimple-range-op.cc (cfn_clz::fold_range): Change | |
11239 | range_includes_zero_p argument to a reference. | |
11240 | (cfn_ctz::fold_range): Same. | |
11241 | * range-op.cc (operator_plus::lhs_op1_relation): Same. | |
11242 | * value-range.h (range_includes_zero_p): Same. | |
11243 | ||
11244 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11245 | ||
11246 | * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Remove | |
11247 | type from range_true and range_false. | |
11248 | ||
11249 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11250 | ||
11251 | * value-range-storage.h: Remove friends. | |
11252 | * value-range.cc (gt_ggc_mx): Remove. | |
11253 | (gt_pch_nx): Remove. | |
11254 | * value-range.h (class vrange): Remove GTY markers. | |
11255 | (class irange): Same. | |
11256 | (class int_range): Same. | |
11257 | (class frange): Same. | |
11258 | (gt_ggc_mx): Remove. | |
11259 | (gt_pch_nx): Remove. | |
11260 | ||
11261 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11262 | ||
11263 | * ipa-cp.cc (propagate_bits_across_jump_function): Access bitmask | |
11264 | through base class. | |
11265 | (ipcp_store_vr_results): Same. | |
11266 | * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same. | |
11267 | (ipcp_get_parm_bits): Same. | |
11268 | (ipcp_update_vr): Same. | |
11269 | * range-op-mixed.h (update_known_bitmask): Change argument to vrange. | |
11270 | * range-op.cc (update_known_bitmask): Same. | |
11271 | * value-range.cc (vrange::update_bitmask): New. | |
11272 | (irange::set_nonzero_bits): Move to vrange class. | |
11273 | (irange::get_nonzero_bits): Same. | |
11274 | * value-range.h (class vrange): Add update_bitmask, get_bitmask, | |
11275 | get_nonzero_bits, and set_nonzero_bits. | |
11276 | (class irange): Make bitmask methods virtual overrides. | |
11277 | (class Value_Range): Add get_bitmask and update_bitmask. | |
11278 | ||
11279 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11280 | ||
11281 | * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Convert | |
11282 | bound to wide_int. | |
11283 | * value-range.cc (Value_Range::lower_bound): Remove. | |
11284 | (Value_Range::upper_bound): Remove. | |
11285 | (unsupported_range::lbound): New. | |
11286 | (unsupported_range::ubound): New. | |
11287 | (frange::lbound): New. | |
11288 | (frange::ubound): New. | |
11289 | (irange::lbound): New. | |
11290 | (irange::ubound): New. | |
11291 | * value-range.h (class vrange): Add lbound() and ubound(). | |
11292 | (class irange): Same. | |
11293 | (class frange): Same. | |
11294 | (class unsupported_range): Same. | |
11295 | (class Value_Range): Rename lower_bound and upper_bound to lbound | |
11296 | and ubound respectively. | |
11297 | ||
11298 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11299 | ||
11300 | * gimple-ssa-warn-access.cc (check_nul_terminated_array): Make Value_Range an int_range. | |
11301 | (memmodel_to_uhwi): Same | |
11302 | * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same. | |
11303 | (determine_value_range): Same. | |
11304 | (infer_loop_bounds_from_signedness): Same. | |
11305 | (scev_var_range_cant_overflow): Same. | |
11306 | ||
11307 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11308 | ||
11309 | * value-range.h (vrange::~vrange): New. | |
11310 | (int_range::~int_range): Make final override. | |
11311 | ||
11312 | 2024-04-28 Aldy Hernandez <aldyh@redhat.com> | |
11313 | ||
11314 | * value-range.cc (unsupported_range::accept): Move down. | |
11315 | (vrange::contains_p): Rename to... | |
11316 | (unsupported_range::contains_p): ...this. | |
11317 | (vrange::singleton_p): Rename to... | |
11318 | (unsupported_range::singleton_p): ...this. | |
11319 | (vrange::set): Rename to... | |
11320 | (unsupported_range::set): ...this. | |
11321 | (vrange::type): Rename to... | |
11322 | (unsupported_range::type): ...this. | |
11323 | (vrange::supports_type_p): Rename to... | |
11324 | (unsupported_range::supports_type_p): ...this. | |
11325 | (vrange::set_undefined): Rename to... | |
11326 | (unsupported_range::set_undefined): ...this. | |
11327 | (vrange::set_varying): Rename to... | |
11328 | (unsupported_range::set_varying): ...this. | |
11329 | (vrange::union_): Rename to... | |
11330 | (unsupported_range::union_): ...this. | |
11331 | (vrange::intersect): Rename to... | |
11332 | (unsupported_range::intersect): ...this. | |
11333 | (vrange::zero_p): Rename to... | |
11334 | (unsupported_range::zero_p): ...this. | |
11335 | (vrange::nonzero_p): Rename to... | |
11336 | (unsupported_range::nonzero_p): ...this. | |
11337 | (vrange::set_nonzero): Rename to... | |
11338 | (unsupported_range::set_nonzero): ...this. | |
11339 | (vrange::set_zero): Rename to... | |
11340 | (unsupported_range::set_zero): ...this. | |
11341 | (vrange::set_nonnegative): Rename to... | |
11342 | (unsupported_range::set_nonnegative): ...this. | |
11343 | (vrange::fits_p): Rename to... | |
11344 | (unsupported_range::fits_p): ...this. | |
11345 | (unsupported_range::operator=): New. | |
11346 | (frange::fits_p): New. | |
11347 | * value-range.h (class vrange): Make an abstract class. | |
11348 | (class unsupported_range): Declare override methods. | |
11349 | ||
11350 | 2024-04-28 Gerald Pfeifer <gerald@pfeifer.com> | |
11351 | ||
11352 | PR target/69374 | |
11353 | PR target/112959 | |
11354 | * doc/install.texi (Specific) <*-*-freebsd*>: Remove references to | |
11355 | FreeBSD 7 and older. | |
11356 | ||
11357 | 2024-04-28 Gerald Pfeifer <gerald@pfeifer.com> | |
11358 | ||
11359 | * doc/contrib.texi: Update David Binderman's entry. | |
11360 | ||
11361 | 2024-04-28 liuhongt <hongtao.liu@intel.com> | |
11362 | ||
11363 | * config/i386/i386.md: (zero_extendsidi2): Adjust | |
11364 | alternative *k to ?k. | |
11365 | (zero_extend<mode>di2): Ditto. | |
11366 | (*zero_extend<mode>si2): Ditto. | |
11367 | (*zero_extendqihi2): Ditto. | |
11368 | ||
11369 | 2024-04-28 Jiufu Guo <guojiufu@linux.ibm.com> | |
11370 | ||
11371 | PR target/95782 | |
11372 | * config/s390/s390-c.cc (s390_macro_to_expand): Avoid empty identifier. | |
11373 | ||
11374 | 2024-04-28 Andrew Pinski <quic_apinski@quicinc.com> | |
11375 | ||
11376 | PR target/113822 | |
11377 | * config/aarch64/aarch64.cc (aarch64_evpc_reencode): Use | |
11378 | vec_perm_indices::new_shrunk_vector instead of manually | |
11379 | going through the indices. | |
11380 | ||
11381 | 2024-04-27 Xi Ruoyao <xry111@xry111.site> | |
11382 | ||
11383 | PR target/114861 | |
11384 | * config/loongarch/loongarch.md (bstrins_<mode>_for_mask): Add | |
11385 | constraints for operands. | |
11386 | (bstrins_<mode>_for_ior_mask): Likewise. | |
11387 | ||
11388 | 2024-04-27 Fangrui Song <maskray@gcc.gnu.org> | |
11389 | ||
11390 | * config/riscv/elf.h (LINK_SPEC): Add -X. | |
11391 | * config/riscv/freebsd.h (LINK_SPEC): Add -X. | |
11392 | * config/riscv/linux.h (LINK_SPEC): Add -X. | |
11393 | ||
11394 | 2024-04-26 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
11395 | ||
11396 | * config/aarch64/aarch64.cc (MAX_SET_SIZE): New define. | |
11397 | (aarch64_progress_pointer): Remove function. | |
11398 | (aarch64_set_one_block_and_progress_pointer): Simplify and clean up. | |
11399 | (aarch64_expand_setmem): Clean up implementation, use byte offsets, | |
11400 | simplify size calculation. | |
11401 | ||
11402 | 2024-04-26 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
11403 | ||
11404 | * config/aarch64/aarch64.cc (aarch64_mode_valid_for_sched_fusion_p): | |
11405 | Remove check for AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS. | |
11406 | (aarch64_advsimd_ldp_stp_p): Likewise. | |
11407 | (aarch64_stp_sequence_cost): Likewise. | |
11408 | (aarch64_expand_cpymem): Likewise. | |
11409 | (aarch64_expand_setmem): Likewise. | |
11410 | * config/aarch64/aarch64-ldp-fusion.cc (ldp_operand_mode_ok_p): | |
11411 | Likewise. | |
11412 | * config/aarch64/aarch64-ldpstp.md: Likewise. | |
11413 | * config/aarch64/aarch64-tuning-flags.def: Remove NO_LDP_STP_QREGS. | |
11414 | * config/aarch64/tuning_models/emag.h: Likewise. | |
11415 | * config/aarch64/tuning_models/xgene1.h: Likewise. | |
11416 | ||
11417 | 2024-04-26 Frederik Harwath <frederik@harwath.name> | |
11418 | ||
11419 | * config.gcc: Add gfx90c. | |
11420 | * config/gcn/gcn-hsa.h (NO_SRAM_ECC): Likewise. | |
11421 | * config/gcn/gcn-opts.h (enum processor_type): Likewise. | |
11422 | (TARGET_GFX90c): New macro. | |
11423 | * config/gcn/gcn.cc (gcn_option_override): Handle gfx90c. | |
11424 | (gcn_omp_device_kind_arch_isa): Likewise. | |
11425 | (output_file_start): Likewise. | |
11426 | * config/gcn/gcn.h: Add gfx90c. | |
11427 | * config/gcn/gcn.opt: Likewise. | |
11428 | * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90c): New macro. | |
11429 | (get_arch): Handle gfx90c. | |
11430 | (main): Handle EF_AMDGPU_MACH_AMDGCN_GFX90c | |
11431 | * config/gcn/t-omp-device: Add gfx90c. | |
11432 | * doc/install.texi: Likewise. | |
11433 | * doc/invoke.texi: Likewise. | |
11434 | ||
11435 | 2024-04-25 David Faust <david.faust@oracle.com> | |
11436 | ||
11437 | * config/bpf/bpf.h (PREFERRED_DEBUGGING_TYPE): Set to BTF_DEBUG. | |
11438 | ||
11439 | 2024-04-25 David Faust <david.faust@oracle.com> | |
11440 | ||
11441 | * config/bpf/bpf.cc (bpf_option_override): Improve handling of CO-RE | |
11442 | options to avoid issues with -gtoggle. | |
11443 | ||
11444 | 2024-04-25 Jakub Jelinek <jakub@redhat.com> | |
11445 | ||
11446 | PR fortran/114825 | |
11447 | * tree-nested.cc (get_debug_decl): New function. | |
11448 | (get_nonlocal_debug_decl): Use it. | |
11449 | (get_local_debug_decl): Likewise. | |
11450 | ||
11451 | 2024-04-25 Jose E. Marchesi <jose.marchesi@oracle.com> | |
11452 | ||
11453 | * config/bpf/bpf.opt: Use ASM_PSEUDOC for the default value of | |
11454 | -masm. | |
11455 | * config/bpf/bpf.h (ASM_SPEC): Adapt accordingly. | |
11456 | * doc/invoke.texi (eBPF Options): Update. | |
11457 | ||
11458 | 2024-04-25 Richard Ball <richard.ball@arm.com> | |
11459 | ||
11460 | PR target/114837 | |
11461 | * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear): | |
11462 | Add zero/sign extend. | |
11463 | (arm_expand_prologue): Add zero/sign extend. | |
11464 | ||
11465 | 2024-04-25 Richard Biener <rguenther@suse.de> | |
11466 | ||
11467 | PR tree-optimization/114792 | |
11468 | * tree-ssa-loop-ch.cc (ch_order_loops): New function. | |
11469 | (ch_base::copy_headers): Sort loops to unloop inner-to-outer. | |
11470 | ||
11471 | 2024-04-25 Eric Botcazou <ebotcazou@adacore.com> | |
11472 | ||
11473 | PR target/114416 | |
11474 | * config/sparc/sparc.h (SUN_V9_ABI_COMPATIBILITY): New macro. | |
11475 | * config/sparc/sol2.h (SUN_V9_ABI_COMPATIBILITY): Redefine it. | |
11476 | * config/sparc/sparc.cc (fp_type_for_abi): New predicate. | |
11477 | (traverse_record_type): Use it to spot floating-point types. | |
11478 | (compute_fp_layout): Also deal with array types. | |
11479 | ||
11480 | 2024-04-25 Pan Li <pan2.li@intel.com> | |
11481 | ||
11482 | * config/riscv/vector-crypto.md: Add early clobber to the | |
11483 | dest operand of vwsll. | |
11484 | ||
11485 | 2024-04-25 Haochen Gui <guihaoc@gcc.gnu.org> | |
11486 | ||
11487 | * config/rs6000/altivec.md (*bcdinvalid_<mode>): Replace bcdadd | |
11488 | with bcdsub. | |
11489 | (bcdinvalid_<mode>): Likewise. | |
11490 | ||
11491 | 2024-04-24 Jakub Jelinek <jakub@redhat.com> | |
11492 | ||
11493 | PR other/114738 | |
11494 | * opts.cc (get_option_url): Revert 2024-04-17 changes. | |
11495 | * gcc-urlifier.cc: Don't include diagnostic-core.h. | |
11496 | (gcc_urlifier::make_doc_url): Revert 2024-04-17 changes. | |
11497 | * configure.ac (documentation-root-url): On release branches | |
11498 | append gcc-MAJOR.MINOR.0/ to the default DOCUMENTATION_ROOT_URL. | |
11499 | * doc/install.texi (--with-documentation-root-url=): Document | |
11500 | the change of the default. | |
11501 | * configure: Regenerate. | |
11502 | ||
11503 | 2024-04-24 Pan Li <pan2.li@intel.com> | |
11504 | ||
11505 | Revert: | |
11506 | 2023-11-29 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11507 | kito-cheng <kito.cheng@sifive.com> | |
11508 | kito-cheng <kito.cheng@gmail.com> | |
11509 | ||
11510 | PR target/112431 | |
11511 | * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): New register filters. | |
11512 | * config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Ditto. | |
11513 | (no,yes): Ditto. | |
11514 | * config/riscv/vector.md: Support highpart register overlap for vwcvt. | |
11515 | ||
11516 | 2024-04-24 Jose E. Marchesi <jose.marchesi@oracle.com> | |
11517 | ||
11518 | * config.gcc: Add bpf-c.o as a target object for C and C++. | |
11519 | * config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc. | |
11520 | * config/bpf/bpf-c.cc: New file. | |
11521 | (bpf_target_macros): Move from bpf.cc and define BPF CPU | |
11522 | feature macros. | |
11523 | * config/bpf/t-bpf: Add rules to build bpf-c.o. | |
11524 | ||
11525 | 2024-04-24 Richard Biener <rguenther@suse.de> | |
11526 | ||
11527 | PR tree-optimization/114787 | |
11528 | * tree-cfg.cc (remove_edge_and_dominated_blocks): When | |
11529 | removing a loop backedge clear niter info and when removing | |
11530 | the last backedge of a loop mark that loop for removal. | |
11531 | ||
11532 | 2024-04-24 Richard Biener <rguenther@suse.de> | |
11533 | ||
11534 | PR tree-optimization/114832 | |
11535 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
11536 | Fix dominance check. | |
11537 | ||
11538 | 2024-04-24 Haochen Jiang <haochen.jiang@intel.com> | |
11539 | ||
11540 | * config/i386/i386-options.cc (ix86_valid_target_attribute_tree): | |
11541 | Check whether AVX512F is explicitly enabled. | |
11542 | ||
11543 | 2024-04-24 Pan Li <pan2.li@intel.com> | |
11544 | ||
11545 | Revert: | |
11546 | 2023-11-30 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11547 | ||
11548 | * config/riscv/vector.md: Support highpart overlap for vext.vf2 | |
11549 | ||
11550 | 2024-04-23 Jakub Jelinek <jakub@redhat.com> | |
11551 | ||
11552 | PR target/114810 | |
11553 | * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Split the =&r,r,ro | |
11554 | alternative into =&r,r,r enabled only for x64 and =&r,r,o. | |
11555 | ||
11556 | 2024-04-23 Jan Hubicka <jh@suse.cz> | |
11557 | ||
11558 | * doc/invoke.texi (-ftree-loop-distribute-patterns): Remove duplicated | |
11559 | sentence about optimization flags implying this. | |
11560 | ||
11561 | 2024-04-23 Jakub Jelinek <jakub@redhat.com> | |
11562 | ||
11563 | * config/darwin.opt (init): Spelling fix: initialiser -> initializer. | |
11564 | ||
11565 | 2024-04-23 Jakub Jelinek <jakub@redhat.com> | |
11566 | ||
11567 | * config/epiphany/epiphany.opt (may-round-for-trunc): Spelling fix: | |
11568 | floatig -> floating. | |
11569 | * config/riscv/riscv.opt (mcsr-check): Spelling fix: CRS -> CSR. | |
11570 | * params.opt (-param=ipa-cp-profile-count-base=): Spelling fix: | |
11571 | frequncy -> frequency. | |
11572 | ||
11573 | 2024-04-23 Richard Biener <rguenther@suse.de> | |
11574 | ||
11575 | PR tree-optimization/114799 | |
11576 | * tree-vect-slp.cc (vect_get_and_check_slp_defs): Properly | |
11577 | update ->any_pattern when swapping operands. | |
11578 | ||
11579 | 2024-04-23 Andreas Krebbel <krebbel@linux.ibm.com> | |
11580 | ||
11581 | PR target/114676 | |
11582 | * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Use a | |
11583 | MEM_REF with an addend of type ptr_type_node. | |
11584 | ||
11585 | 2024-04-23 Yang Yujie <yangyujie@loongson.cn> | |
11586 | ||
11587 | * config.gcc: Add loongarch-evolution.o. | |
11588 | * config/loongarch/genopts/genstr.sh: Enable generation of | |
11589 | loongarch-evolution.[cc,h]. | |
11590 | * config/loongarch/t-loongarch: Likewise. | |
11591 | * config/loongarch/genopts/gen-evolution.awk: New file. | |
11592 | * config/loongarch/genopts/isa-evolution.in: Mark ISA version | |
11593 | of introduction for each ISA evolution feature. | |
11594 | * config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): | |
11595 | Define builtin macros for enabled ISA evolutions and the ISA | |
11596 | version. | |
11597 | * config/loongarch/loongarch-cpu.cc: Use loongarch-evolution.h. | |
11598 | * config/loongarch/loongarch.h: Likewise. | |
11599 | * config/loongarch/loongarch-cpucfg-map.h: Delete. | |
11600 | * config/loongarch/loongarch-evolution.cc: New file. | |
11601 | * config/loongarch/loongarch-evolution.h: New file. | |
11602 | * config/loongarch/loongarch-opts.h (ISA_HAS_FRECIPE): Define. | |
11603 | (ISA_HAS_DIV32): Likewise. | |
11604 | (ISA_HAS_LAM_BH): Likewise. | |
11605 | (ISA_HAS_LAMCAS): Likewise. | |
11606 | (ISA_HAS_LD_SEQ_SA): Likewise. | |
11607 | ||
11608 | 2024-04-23 Yang Yujie <yangyujie@loongson.cn> | |
11609 | ||
11610 | * config.gcc: Make la64v1.0 the default ISA preset of the lp64d ABI. | |
11611 | * config/loongarch/genopts/loongarch-strings: Define la64v1.0, la64v1.1. | |
11612 | * config/loongarch/genopts/loongarch.opt.in: Likewise. | |
11613 | * config/loongarch/loongarch-c.cc (LARCH_CPP_SET_PROCESSOR): Likewise. | |
11614 | (loongarch_cpu_cpp_builtins): Likewise. | |
11615 | * config/loongarch/loongarch-cpu.cc (get_native_prid): Likewise. | |
11616 | (fill_native_cpu_config): Likewise. | |
11617 | * config/loongarch/loongarch-def.cc (array_tune): Likewise. | |
11618 | * config/loongarch/loongarch-def.h: Likewise. | |
11619 | * config/loongarch/loongarch-driver.cc (driver_set_m_parm): Likewise. | |
11620 | (driver_get_normalized_m_opts): Likewise. | |
11621 | * config/loongarch/loongarch-opts.cc (default_tune_for_arch): Likewise. | |
11622 | (TUNE_FOR_ARCH): Likewise. | |
11623 | (arch_str): Likewise. | |
11624 | (loongarch_target_option_override): Likewise. | |
11625 | * config/loongarch/loongarch-opts.h (TARGET_uARCH_LA464): Likewise. | |
11626 | (TARGET_uARCH_LA664): Likewise. | |
11627 | * config/loongarch/loongarch-str.h (STR_CPU_ABI_DEFAULT): Likewise. | |
11628 | (STR_ARCH_ABI_DEFAULT): Likewise. | |
11629 | (STR_TUNE_GENERIC): Likewise. | |
11630 | (STR_ARCH_LA64V1_0): Likewise. | |
11631 | (STR_ARCH_LA64V1_1): Likewise. | |
11632 | * config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width): Likewise. | |
11633 | (loongarch_asm_code_end): Likewise. | |
11634 | * config/loongarch/loongarch.opt: Likewise. | |
11635 | * doc/invoke.texi: Likewise. | |
11636 | ||
11637 | 2024-04-22 Pan Li <pan2.li@intel.com> | |
11638 | ||
11639 | * config/riscv/vector-crypto.md: | |
11640 | ||
11641 | 2024-04-22 Pan Li <pan2.li@intel.com> | |
11642 | ||
11643 | Revert: | |
11644 | 2023-11-30 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11645 | ||
11646 | * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Fix constraint. | |
11647 | * config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Rename vconstraint into group_overlap. | |
11648 | (no,yes): Ditto. | |
11649 | (none,W21,W42,W84,W43,W86,W87): Ditto. | |
11650 | * config/riscv/vector.md: Ditto. | |
11651 | ||
11652 | 2024-04-22 Pan Li <pan2.li@intel.com> | |
11653 | ||
11654 | Revert: | |
11655 | 2023-12-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11656 | ||
11657 | * config/riscv/riscv.md: Rostify the constraints. | |
11658 | ||
11659 | 2024-04-22 Haochen Jiang <haochen.jiang@intel.com> | |
11660 | ||
11661 | * common/config/i386/i386-common.cc (processor_alias_table): | |
11662 | Let Sierra Forest map to CPU_TYPE enum. | |
11663 | ||
11664 | 2024-04-22 Andreas Krebbel <krebbel@linux.ibm.com> | |
11665 | ||
11666 | * config/s390/s390.cc (s390_option_override_internal): Check zarch | |
11667 | flag before enabling -mvx. | |
11668 | ||
11669 | 2024-04-22 Pan Li <pan2.li@intel.com> | |
11670 | ||
11671 | Revert: | |
11672 | 2023-11-30 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11673 | ||
11674 | PR target/112431 | |
11675 | * config/riscv/vector.md: Add widenning overlap. | |
11676 | ||
11677 | 2024-04-22 Pan Li <pan2.li@intel.com> | |
11678 | ||
11679 | Revert: | |
11680 | 2023-12-01 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11681 | ||
11682 | PR target/112431 | |
11683 | * config/riscv/vector.md: Support highpart overlap for indexed load. | |
11684 | ||
11685 | 2024-04-22 Pan Li <pan2.li@intel.com> | |
11686 | ||
11687 | Revert: | |
11688 | 2023-12-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11689 | ||
11690 | PR target/112431 | |
11691 | * config/riscv/vector.md: Add highest-number overlap support. | |
11692 | ||
11693 | 2024-04-22 Pan Li <pan2.li@intel.com> | |
11694 | ||
11695 | Revert: | |
11696 | 2023-11-30 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11697 | ||
11698 | PR target/112431 | |
11699 | * config/riscv/vector.md: Add widening overlap of vf2/vf4. | |
11700 | ||
11701 | 2024-04-21 Pan Li <pan2.li@intel.com> | |
11702 | ||
11703 | Revert: | |
11704 | 2023-12-01 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11705 | ||
11706 | PR target/112431 | |
11707 | * config/riscv/vector.md: Support highpart overlap for vx/vf. | |
11708 | ||
11709 | 2024-04-20 Pan Li <pan2.li@intel.com> | |
11710 | ||
11711 | Revert: | |
11712 | 2023-12-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11713 | ||
11714 | PR target/112431 | |
11715 | * config/riscv/vector.md: Fix incorrect overlap in v0. | |
11716 | ||
11717 | 2024-04-20 Pan Li <pan2.li@intel.com> | |
11718 | ||
11719 | Revert: | |
11720 | 2023-12-11 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11721 | ||
11722 | PR target/112431 | |
11723 | * config/riscv/vector.md: Support highest overlap for wv instructions. | |
11724 | ||
11725 | 2024-04-20 Pan Li <pan2.li@intel.com> | |
11726 | ||
11727 | Revert: | |
11728 | 2023-12-18 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
11729 | ||
11730 | PR target/112432 | |
11731 | * config/riscv/riscv.md (none,W21,W42,W84,W43,W86,W87): Add W0. | |
11732 | (none,W21,W42,W84,W43,W86,W87,W0): Ditto. | |
11733 | * config/riscv/vector.md: Ditto. | |
11734 | ||
11735 | 2024-04-19 Jakub Jelinek <jakub@redhat.com> | |
11736 | ||
11737 | PR target/114783 | |
11738 | * config/i386/sse.md (*avx2_eq<mode>3): Change last operand's | |
11739 | constraint from "jm" to "xjm". | |
11740 | ||
11741 | 2024-04-19 Jakub Jelinek <jakub@redhat.com> | |
11742 | ||
11743 | PR middle-end/114753 | |
11744 | * internal-fn.cc (expand_arith_overflow): Add one missing restore | |
11745 | of flag_trapv before return. | |
11746 | ||
11747 | 2024-04-19 Tamar Christina <tamar.christina@arm.com> | |
11748 | ||
11749 | PR tree-optimization/114769 | |
11750 | * tree-vect-patterns.cc: | |
11751 | (vect_recog_absolute_difference): Have only one success condition. | |
11752 | (vect_recog_abd_pattern): Handle further checks if | |
11753 | vect_recog_absolute_difference fails. | |
11754 | ||
11755 | 2024-04-19 Cupertino Miranda <cupertino.miranda@oracle.com> | |
11756 | ||
11757 | * config/bpf/core-builtins.cc (get_index_for_enum_value): Create | |
11758 | function. | |
11759 | (pack_enum_value): Check for enumerator and error out. | |
11760 | (process_enum_value): Correct string allocation. | |
11761 | ||
11762 | 2024-04-19 Cupertino Miranda <cupertino.miranda@oracle.com> | |
11763 | ||
11764 | * config/bpf/bpf-protos.h (bpf_add_core_reloc): Renamed function | |
11765 | to bpf_output_move. | |
11766 | * config/bpf/bpf.cc (bpf_legitimate_address_p): Allow | |
11767 | UNSPEC_CORE_RELOC to match an address. | |
11768 | (bpf_insn_cost): Make UNSPEC_CORE_RELOC immediate moves | |
11769 | expensive to prioritize loads and stores. | |
11770 | (TARGET_INSN_COST): Add hook. | |
11771 | (bpf_output_move): Wrapper to call bpf_output_core_reloc. | |
11772 | (bpf_print_operand): Add support to print immediate operands | |
11773 | specified with the UNSPEC_CORE_RELOC. | |
11774 | (bpf_print_operand_address): Likewise, but to support | |
11775 | UNSPEC_CORE_RELOC in addresses. | |
11776 | (bpf_init_builtins): Flag BPF_BUILTIN_CORE_RELOC as NOTHROW. | |
11777 | * config/bpf/bpf.md: Wrap patterns for MOV, LD and ST | |
11778 | instruction with bpf_output_move call. | |
11779 | (mov_reloc_core<MM:mode>): Remove now spurious define_insn. | |
11780 | * config/bpf/constraints.md: Added "c" and "C" constraints to | |
11781 | match immediates represented with UNSPEC_CORE_RELOC. | |
11782 | * config/bpf/core-builtins.cc (bpf_add_core_reloc): Remove | |
11783 | (bpf_output_core_reloc): Add function to create the CO-RE | |
11784 | relocations based on new matching rules. | |
11785 | * config/bpf/core-builtins.h (bpf_output_core_reloc): Add | |
11786 | prototype. | |
11787 | * config/bpf/predicates.md (core_imm_operand) Add predicate. | |
11788 | (mov_src_operand): Add match for core_imm_operand. | |
11789 | ||
11790 | 2024-04-19 Jakub Jelinek <jakub@redhat.com> | |
11791 | ||
11792 | PR rtl-optimization/114768 | |
11793 | * rtlanal.cc (set_noop_p): Don't return true for MEM <- MEM | |
11794 | sets if src has side-effects or for stores into ZERO_EXTRACT | |
11795 | if ZERO_EXTRACT operand has side-effects. | |
11796 | ||
11797 | 2024-04-19 Alexandre Oliva <oliva@adacore.com> | |
11798 | ||
11799 | * config/t-vxworks (vxw-glimits.h): Don't mangle c23-required | |
11800 | __STDC_VERSION_LIMITS_H__ define. | |
11801 | ||
11802 | 2024-04-18 Sandra Loosemore <sloosemore@baylibre.com> | |
11803 | ||
11804 | * config.gcc: Add nios2*-*-* to the list of obsoleted targets. | |
11805 | ||
11806 | 2024-04-18 Alexandre Oliva <oliva@adacore.com> | |
11807 | ||
11808 | * doc/sourcebuild.texi (strndup): Add effective target. | |
11809 | ||
11810 | 2024-04-18 Tamar Christina <tamar.christina@arm.com> | |
11811 | ||
11812 | PR target/114741 | |
11813 | * config/aarch64/aarch64.md (<optab><mode>3): Remove ^ from alt 2. | |
11814 | (copysign<GPF:mode>3): Use SIMD version of IOR directly. | |
11815 | ||
11816 | 2024-04-18 Jakub Jelinek <jakub@redhat.com> | |
11817 | ||
11818 | PR middle-end/114753 | |
11819 | * internal-fn.cc (expand_mul_overflow): Save flag_trapv and | |
11820 | temporarily clear it for the duration of the function, then | |
11821 | restore previous value. | |
11822 | (expand_vector_ubsan_overflow): Likewise. | |
11823 | (expand_arith_overflow): Likewise. | |
11824 | ||
11825 | 2024-04-17 Jakub Jelinek <jakub@redhat.com> | |
11826 | ||
11827 | PR other/114738 | |
11828 | * opts.cc (get_option_url): On release branches append | |
11829 | gcc-MAJOR.MINOR.0/ after DOCUMENTATION_ROOT_URL. | |
11830 | * gcc-urlifier.cc (gcc_urlifier::make_doc_url): Likewise. | |
11831 | ||
11832 | 2024-04-17 Richard Biener <rguenther@suse.de> | |
11833 | ||
11834 | PR tree-optimization/114749 | |
11835 | * tree-vect-loop.cc (vect_analyze_loop_2): Reset | |
11836 | LOOP_VINFO_USING_PARTIAL_VECTORS_P when re-trying without SLP. | |
11837 | ||
11838 | 2024-04-17 Georg-Johann Lay <avr@gjlay.de> | |
11839 | ||
11840 | PR target/114752 | |
11841 | * config/avr/avr.cc (avr_print_operand) [CONST_DOUBLE_P]: Handle DFmode. | |
11842 | ||
11843 | 2024-04-17 Jakub Jelinek <jakub@redhat.com> | |
11844 | ||
11845 | PR sanitizer/114743 | |
11846 | * asan.cc (maybe_instrument_call): Don't instrument calls to | |
11847 | .ABNORMAL_DISPATCHER. | |
11848 | ||
11849 | 2024-04-16 Andrew Pinski <quic_apinski@quicinc.com> | |
11850 | ||
11851 | PR c/92880 | |
11852 | * doc/extend.texi (Using Vector Instructions): Add that | |
11853 | the base_types could be a typedef of them. | |
11854 | ||
11855 | 2024-04-16 Richard Biener <rguenther@suse.de> | |
11856 | ||
11857 | PR tree-optimization/114736 | |
11858 | * tree-vect-slp.cc (vect_optimize_slp_pass::is_cfg_latch_edge): | |
11859 | Do not consider VEC_PERM_EXPRs as PHI use. | |
11860 | ||
11861 | 2024-04-16 Richard Biener <rguenther@suse.de> | |
11862 | ||
11863 | PR tree-optimization/114733 | |
11864 | * tree-vect-loop.cc (vectorizable_nonlinear_induction): Reject | |
11865 | neg induction vectorization of single element vectors. | |
11866 | ||
11867 | 2024-04-16 Jakub Jelinek <jakub@redhat.com> | |
11868 | ||
11869 | * tree.cc (array_type_nelts): Ensure 2 spaces after . in comment | |
11870 | instead of just one. | |
11871 | (build_variant_type_copy): Likewise. | |
11872 | (tree_check_failed): Likewise. | |
11873 | (build_atomic_base): Likewise. | |
11874 | * ipa-free-lang-data.cc (fld_incomplete_type_of): Use an indefinite | |
11875 | article rather than a. | |
11876 | ||
11877 | 2024-04-16 Fei Gao <gaofei@eswincomputing.com> | |
11878 | ||
11879 | * config/riscv/riscv.cc (riscv_expand_conditional_move): | |
11880 | replace or with add when expanding zicond if possible. | |
11881 | ||
11882 | 2024-04-16 Alexandre Oliva <oliva@adacore.com> | |
11883 | ||
11884 | PR middle-end/112938 | |
11885 | * ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from | |
11886 | indirected parm. | |
11887 | (maybe_make_indirect): Restore volatility in dereferences. | |
11888 | ||
11889 | 2024-04-16 Lulu Cheng <chenglulu@loongson.cn> | |
11890 | ||
11891 | * config/loongarch/loongarch.opt.urls: Regenerate. | |
11892 | * config/mn10300/mn10300.opt.urls: Likewise. | |
11893 | * config/msp430/msp430.opt.urls: Likewise. | |
11894 | * config/nds32/nds32-elf.opt.urls: Likewise. | |
11895 | * config/nds32/nds32-linux.opt.urls: Likewise. | |
11896 | * config/nds32/nds32.opt.urls: Likewise. | |
11897 | * config/pru/pru.opt.urls: Likewise. | |
11898 | * config/riscv/riscv.opt.urls: Likewise. | |
11899 | * config/rx/rx.opt.urls: Likewise. | |
11900 | * config/sh/sh.opt.urls: Likewise. | |
11901 | * config/sparc/sparc.opt.urls: Likewise. | |
11902 | * doc/invoke.texi: Add indexes for some compilation options. | |
11903 | ||
11904 | 2024-04-15 Georg-Johann Lay <avr@gjlay.de> | |
11905 | ||
11906 | * config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28, | |
11907 | avr16du32, avr32du14, avr32du20, avr32du28, avr32du32. | |
11908 | * doc/avr-mmcu.texi: Rebuild. | |
11909 | ||
11910 | 2024-04-15 Robin Dapp <rdapp@ventanamicro.com> | |
11911 | ||
11912 | PR target/114668 | |
11913 | * config/riscv/autovec.md: Add VLS. | |
11914 | ||
11915 | 2024-04-15 Richard Biener <rguenther@suse.de> | |
11916 | ||
11917 | PR gcov-profile/114715 | |
11918 | * gimplify.cc (gimplify_switch_expr): Set the location of the | |
11919 | GIMPLE switch. | |
11920 | ||
11921 | 2024-04-15 H.J. Lu <hjl.tools@gmail.com> | |
11922 | ||
11923 | PR target/114696 | |
11924 | * config/i386/i386.md (isa): Add apx_ndd_64. | |
11925 | (enabled): Likewise. | |
11926 | (*add<dwi>3_doubleword): Change rjO to r,ro,jO with 8-bit | |
11927 | signed integer constant and enable jO only for apx_ndd_64. | |
11928 | (*add<dwi>3_doubleword_cc_overflow_1): Likewise. | |
11929 | (*and<dwi>3_doubleword): Likewise. | |
11930 | (*<code><dwi>3_doubleword): Likewise. | |
11931 | ||
11932 | 2024-04-15 Tamar Christina <tamar.christina@arm.com> | |
11933 | ||
11934 | PR tree-optimization/114403 | |
11935 | * tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when | |
11936 | peeling for gaps and early break. | |
11937 | ||
11938 | 2024-04-15 Jakub Jelinek <jakub@redhat.com> | |
11939 | ||
11940 | PR c++/114634 | |
11941 | * attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for | |
11942 | decls with NULL TREE_TYPE. | |
11943 | ||
11944 | 2024-04-12 Andrew Carlotti <andrew.carlotti@arm.com> | |
11945 | ||
11946 | * config/aarch64/aarch64-option-extensions.def: Add RCPC to | |
11947 | RCPC3 dependencies. | |
11948 | * config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for | |
11949 | RCPC3 bit | |
11950 | ||
11951 | 2024-04-12 Andrew Carlotti <andrew.carlotti@arm.com> | |
11952 | ||
11953 | * config/aarch64/aarch64-arches.def: Add CSSC to V8_9A | |
11954 | dependencies. | |
11955 | ||
11956 | 2024-04-12 Will Schmidt <will_schmidt@linux.ibm.com> | |
11957 | Peter Bergner <bergner@linux.ibm.com> | |
11958 | ||
11959 | PR target/101865 | |
11960 | * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use | |
11961 | TARGET_POWER8. | |
11962 | * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use | |
11963 | OPTION_MASK_POWER8. | |
11964 | * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8. | |
11965 | (ISA_2_7_MASKS_SERVER): Likewise. | |
11966 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Update | |
11967 | comment. Use OPTION_MASK_POWER8 and TARGET_POWER8. | |
11968 | * config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8. | |
11969 | * config/rs6000/rs6000.md (define_attr "isa"): Add p8. | |
11970 | (define_attr "enabled"): Handle it. | |
11971 | (define_insn "prefetch"): Use TARGET_POWER8. | |
11972 | * config/rs6000/rs6000.opt (mpower8-internal): New. | |
11973 | ||
11974 | 2024-04-12 Jason Merrill <jason@redhat.com> | |
11975 | Patrick Palka <ppalka@redhat.com> | |
11976 | ||
11977 | PR c++/113141 | |
11978 | * doc/invoke.texi: Document -Wcast-user-defined. | |
11979 | ||
11980 | 2024-04-12 Tatsuyuki Ishi <ishitatsuyuki@gmail.com> | |
11981 | ||
11982 | * config/riscv/riscv.opt.urls: Regenerated. | |
11983 | ||
11984 | 2024-04-12 Andrew Pinski <quic_apinski@quicinc.com> | |
11985 | ||
11986 | PR tree-optimization/114666 | |
11987 | * match.pd (`!a?b:c`): Reject signed types for the condition. | |
11988 | (`a?~t:t`): Likewise. | |
11989 | ||
11990 | 2024-04-12 Richard Sandiford <richard.sandiford@arm.com> | |
11991 | ||
11992 | * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require | |
11993 | all tiles to have the same suffix. | |
11994 | ||
11995 | 2024-04-12 Pan Li <pan2.li@intel.com> | |
11996 | ||
11997 | * config/riscv/riscv.cc (riscv_vector_float_type_p): Take int | |
11998 | as the return value instead of unsigned. | |
11999 | (riscv_vector_element_bitsize): Ditto. | |
12000 | (riscv_vector_required_min_vlen): Ditto. | |
12001 | (riscv_validate_vector_type): Take int type for local variable(s). | |
12002 | ||
12003 | 2024-04-12 Jakub Jelinek <jakub@redhat.com> | |
12004 | ||
12005 | * tree-cfg.cc (gimple_verify_flow_info): Make the misplaced | |
12006 | returns_twice diagnostics translatable. | |
12007 | ||
12008 | 2024-04-12 Jakub Jelinek <jakub@redhat.com> | |
12009 | ||
12010 | PR sanitizer/114687 | |
12011 | * gimple-iterator.cc (gsi_safe_insert_before): Only use | |
12012 | edge_before_returns_twice_call if bb_has_abnormal_pred. | |
12013 | (gsi_safe_insert_seq_before): Likewise. | |
12014 | * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only | |
12015 | push to m_returns_twice_calls if bb_has_abnormal_pred. | |
12016 | ||
12017 | 2024-04-12 Pan Li <pan2.li@intel.com> | |
12018 | ||
12019 | PR target/114639 | |
12020 | * config/riscv/riscv.cc (riscv_function_value_regno_p): Add | |
12021 | TARGET_VECTOR predicate for V_RETURN regno. | |
12022 | ||
12023 | 2024-04-11 David Faust <david.faust@oracle.com> | |
12024 | ||
12025 | * btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and | |
12026 | fix potentially looking up wrong type for asm debug comment info. | |
12027 | Split into... | |
12028 | (btf_asm_datasec_type_ref): ... This. New. | |
12029 | (btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref. | |
12030 | (btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member) | |
12031 | (btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call. | |
12032 | ||
12033 | 2024-04-11 David Faust <david.faust@oracle.com> | |
12034 | ||
12035 | * btfout.cc (btf_asm_sou_member): Always emit non-representable | |
12036 | bitfield members as having 'void' type. Refactor slightly. | |
12037 | ||
12038 | 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com> | |
12039 | ||
12040 | * config/aarch64/aarch64-option-extensions.def: | |
12041 | Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v" | |
12042 | and "ls64_accdata" FMV features. | |
12043 | ||
12044 | 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com> | |
12045 | ||
12046 | * config/aarch64/aarch64-option-extensions.def: | |
12047 | Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt", | |
12048 | "fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16", | |
12049 | "sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and | |
12050 | "wfxt" entries. | |
12051 | ||
12052 | 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com> | |
12053 | ||
12054 | * config/aarch64/aarch64-option-extensions.def: | |
12055 | Fix "rmd"->"rdm", and add FMV to "rdma". | |
12056 | * config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM. | |
12057 | ||
12058 | 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com> | |
12059 | ||
12060 | * config/aarch64/aarch64.cc (compare_feature_masks): | |
12061 | Use ARRAY_SIZE and >=0 for iteration bounds. | |
12062 | (aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE. | |
12063 | ||
12064 | 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com> | |
12065 | ||
12066 | * config/aarch64/aarch64-option-extensions.def: Reorder FMV entries. | |
12067 | ||
12068 | 2024-04-11 Gaius Mulley <gaiusmod2@gmail.com> | |
12069 | ||
12070 | * doc/standards.texi (Language Standards Supported by GCC): | |
12071 | Add Modula-2 language section. | |
12072 | ||
12073 | 2024-04-11 Jakub Jelinek <jakub@redhat.com> | |
12074 | ||
12075 | PR middle-end/110027 | |
12076 | * asan.cc (asan_emit_stack_protection): Assert offsets[0] is | |
12077 | zero if there is no stack protect guard, otherwise | |
12078 | -ASAN_RED_ZONE_SIZE. If alignb > ASAN_RED_ZONE_SIZE and there is | |
12079 | stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at | |
12080 | the top of the stack into account when computing base_align_bias. | |
12081 | Recompute use_after_return_class from asan_frame_size + base_align_bias | |
12082 | and set to -1 if that would overflow to 11. | |
12083 | ||
12084 | 2024-04-11 Richard Biener <rguenther@suse.de> | |
12085 | ||
12086 | PR tree-optimization/109596 | |
12087 | * tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate | |
12088 | debug stmts to nonexit->dest rather than exit->dest. | |
12089 | ||
12090 | 2024-04-11 Richard Biener <rguenther@suse.de> | |
12091 | ||
12092 | PR middle-end/114681 | |
12093 | * tree-inline.cc (copy_bb): Key on the remapped stmt | |
12094 | to identify gconds to have condition coverage data remapped. | |
12095 | ||
12096 | 2024-04-11 Pan Li <pan2.li@intel.com> | |
12097 | ||
12098 | PR target/114639 | |
12099 | * config/riscv/riscv.cc (riscv_function_value_regno_p): New func | |
12100 | impl for hook TARGET_FUNCTION_VALUE_REGNO_P. | |
12101 | (riscv_get_raw_result_mode): New func imple for hook | |
12102 | TARGET_GET_RAW_RESULT_MODE. | |
12103 | (TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook. | |
12104 | (TARGET_GET_RAW_RESULT_MODE): Ditto. | |
12105 | * config/riscv/riscv.h (V_RETURN): New macro for vector return. | |
12106 | (GP_RETURN_FIRST): New macro for the first GPR in return. | |
12107 | (GP_RETURN_LAST): New macro for the last GPR in return. | |
12108 | (FP_RETURN_FIRST): Diito but for FPR. | |
12109 | (FP_RETURN_LAST): Ditto. | |
12110 | (FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by | |
12111 | TARGET_FUNCTION_VALUE_REGNO_P. | |
12112 | ||
12113 | 2024-04-11 Indu Bhagat <indu.bhagat@oracle.com> | |
12114 | ||
12115 | * btfout.cc (btf_asm_type): Do not skip emitting members of | |
12116 | unknown type. | |
12117 | ||
12118 | 2024-04-11 Indu Bhagat <indu.bhagat@oracle.com> | |
12119 | ||
12120 | PR debug/112878 | |
12121 | * dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before | |
12122 | call to ctf_add_slice. Use CTF_K_UNKNOWN type if fail. | |
12123 | ||
12124 | 2024-04-10 Marek Polacek <polacek@redhat.com> | |
12125 | ||
12126 | PR target/114606 | |
12127 | * config/i386/i386-options.cc (ix86_option_override_internal): Use | |
12128 | opts_set rather than checking == CF_NONE. | |
12129 | ||
12130 | 2024-04-10 David Malcolm <dmalcolm@redhat.com> | |
12131 | ||
12132 | * doc/analyzer.texi: Various tweaks. | |
12133 | ||
12134 | 2024-04-10 Richard Biener <rguenther@suse.de> | |
12135 | ||
12136 | PR tree-optimization/114672 | |
12137 | * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only | |
12138 | allow mode-precision results. | |
12139 | ||
12140 | 2024-04-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
12141 | ||
12142 | * config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO. | |
12143 | (aarch64_bitint_type_info): New function. | |
12144 | (aarch64_return_in_memory_1): Return large _BitInt's in memory. | |
12145 | (aarch64_function_arg_alignment): Adapt to correctly return the ABI | |
12146 | mandated alignment of _BitInt(N) where N > 128 as the alignment of | |
12147 | TImode. | |
12148 | (aarch64_composite_type_p): Return true for _BitInt(N), where N > 128. | |
12149 | ||
12150 | 2024-04-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
12151 | ||
12152 | * config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function. | |
12153 | (aarch64_layout_arg): Don't emit diagnostics for types involving | |
12154 | _BitInt(N). | |
12155 | ||
12156 | 2024-04-10 Jakub Jelinek <jakub@redhat.com> | |
12157 | ||
12158 | PR c++/114462 | |
12159 | * tree-core.h (enum annot_expr_kind): Add | |
12160 | annot_expr_maybe_infinite_kind enumerator. | |
12161 | * gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind. | |
12162 | * tree-cfg.cc (replace_loop_annotate_in_block): Likewise. | |
12163 | (replace_loop_annotate): Likewise. Move loop->finite_p initialization | |
12164 | before the replace_loop_annotate_in_block calls. | |
12165 | * tree-pretty-print.cc (dump_generic_node): Handle | |
12166 | annot_expr_maybe_infinite_kind. | |
12167 | ||
12168 | 2024-04-10 Richard Biener <rguenther@suse.de> | |
12169 | ||
12170 | Revert: | |
12171 | 2024-03-27 Segher Boessenkool <segher@kernel.crashing.org> | |
12172 | ||
12173 | PR rtl-optimization/101523 | |
12174 | * combine.cc (try_combine): Don't do a 2-insn combination if | |
12175 | it does not in fact change I2. | |
12176 | ||
12177 | 2024-04-10 Peter Bergner <bergner@linux.ibm.com> | |
12178 | ||
12179 | PR target/101865 | |
12180 | * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define. | |
12181 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace | |
12182 | OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete redundant | |
12183 | OPTION_MASK_DIRECT_MOVE usage. Delete TARGET_DIRECT_MOVE dead code. | |
12184 | (rs6000_opt_masks): Neuter the "direct-move" option. | |
12185 | * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace | |
12186 | OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete useless | |
12187 | comment. | |
12188 | * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete | |
12189 | OPTION_MASK_DIRECT_MOVE. | |
12190 | (OTHER_VSX_VECTOR_MASKS): Likewise. | |
12191 | (POWERPC_MASKS): Likewise. | |
12192 | * config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var. | |
12193 | ||
12194 | 2024-04-10 Hongyu Wang <hongyu.wang@intel.com> | |
12195 | ||
12196 | * config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for | |
12197 | memory constraint. | |
12198 | (sha1msg2): Likewise. | |
12199 | (sha1nexte): Likewise. | |
12200 | (sha1rnds4): Likewise. | |
12201 | (sha256msg1): Likewise. | |
12202 | (sha256msg2): Likewise. | |
12203 | (sha256rnds2): Likewise. | |
12204 | (aes<aesklvariant>u8): Use "jm" instead of "m" for memory | |
12205 | constraint. | |
12206 | (*aes<aeswideklvariant>u8): Likewise. | |
12207 | (*encodekey128u32): Use "jr" instead of "r" for register | |
12208 | constraints. | |
12209 | (*encodekey256u32): Likewise. | |
12210 | ||
12211 | 2024-04-09 Juergen Christ <jchrist@linux.ibm.com> | |
12212 | ||
12213 | * config/s390/s390.cc (expand_perm_as_replicate): Implement. | |
12214 | (vectorize_vec_perm_const_1): Call new function. | |
12215 | * config/s390/vx-builtins.md (vec_splat<mode>): Change to... | |
12216 | (@vec_splat<mode>): ...this. | |
12217 | ||
12218 | 2024-04-09 David Faust <david.faust@oracle.com> | |
12219 | ||
12220 | PR debug/114608 | |
12221 | * btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when | |
12222 | generating BTF for BPF CO-RE target. | |
12223 | ||
12224 | 2024-04-09 Richard Ball <richard.ball@arm.com> | |
12225 | ||
12226 | * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): | |
12227 | Add functions_nulls parameter to pragma_handlers. | |
12228 | * config/aarch64/aarch64-protos.h: Likewise. | |
12229 | * config/aarch64/aarch64-sve-builtins.h | |
12230 | (enum handle_pragma_index): Add enum to count | |
12231 | number of pragmas to be handled. | |
12232 | * config/aarch64/aarch64-sve-builtins.cc | |
12233 | (GTY): Add global variable for initial indexes | |
12234 | and change overload_names to an array. | |
12235 | (function_builder::function_builder): | |
12236 | Add pragma handler information. | |
12237 | (function_builder::add_function): | |
12238 | Add code for overwriting previous | |
12239 | registered_functions entries. | |
12240 | (add_unique_function): | |
12241 | Use an array to register overload_names | |
12242 | for both pragma handler modes. | |
12243 | (add_overloaded_function): Likewise. | |
12244 | (init_builtins): | |
12245 | Add functions_nulls parameter to pragma_handlers. | |
12246 | (handle_arm_sve_h): | |
12247 | Initialize pragma handler information. | |
12248 | (handle_arm_neon_sve_bridge_h): Likewise. | |
12249 | (handle_arm_sme_h): Likewise. | |
12250 | ||
12251 | 2024-04-09 Richard Biener <rguenther@suse.de> | |
12252 | ||
12253 | PR lto/114655 | |
12254 | * lto-wrapper.cc (merge_flto_options): Add force argument. | |
12255 | (merge_and_complain): Do not force here. | |
12256 | (run_gcc): But here to make the link-time -flto option override | |
12257 | any compile-time one. | |
12258 | ||
12259 | 2024-04-09 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
12260 | ||
12261 | * config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define. | |
12262 | ||
12263 | 2024-04-09 Jørgen Kvalsvik <j@lambda.is> | |
12264 | ||
12265 | PR gcov-profile/114601 | |
12266 | * tree-profile.cc (condition_uid): Guard fn->cond_uids access. | |
12267 | ||
12268 | 2024-04-09 Jakub Jelinek <jakub@redhat.com> | |
12269 | ||
12270 | PR target/114576 | |
12271 | * config/i386/i386.md (isa): Remove aes, add vaes_avx512vl. | |
12272 | (enabled): Remove aes isa check, add vaes_avx512vl. | |
12273 | * config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use | |
12274 | jm instead of m for second alternative and emit {evex} prefix | |
12275 | for it if !TARGET_AES. Use noavx,avx,vaes_avx512vl isa attribute. | |
12276 | (vaesdec_<mode>, vaesdeclast_<mode>, vaesenc_<mode>, | |
12277 | vaesenclast_<mode>): Add second alternative with x instead of v | |
12278 | and jm instead of m. | |
12279 | ||
12280 | 2024-04-09 Gaius Mulley <gaiusmod2@gmail.com> | |
12281 | ||
12282 | * doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad. | |
12283 | Remove -fdebug-trace-api. | |
12284 | Add -fm2-debug-trace=. | |
12285 | ||
12286 | 2024-04-09 Yang Yujie <yangyujie@loongson.cn> | |
12287 | ||
12288 | PR target/113233 | |
12289 | * config/loongarch/loongarch.cc (loongarch_reg_init): | |
12290 | Reinitialize the loongarch_regno_mode_ok cache. | |
12291 | (loongarch_option_override): Same. | |
12292 | (loongarch_save_restore_target_globals): Restore target globals. | |
12293 | (loongarch_set_current_function): Restore the target contexts | |
12294 | for functions. | |
12295 | (TARGET_SET_CURRENT_FUNCTION): Define. | |
12296 | * config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable | |
12297 | switchable target context. | |
12298 | * config/loongarch/loongarch-builtins.cc (loongarch_init_builtins): | |
12299 | Initialize all builtin functions at startup. | |
12300 | (loongarch_expand_builtin): Turn assertion of builtin availability | |
12301 | into a test. | |
12302 | ||
12303 | 2024-04-09 Jørgen Kvalsvik <j@lambda.is> | |
12304 | ||
12305 | PR middle-end/114627 | |
12306 | * tree-profile.cc (instrument_decisions): Generate constant | |
12307 | at the start of loop. | |
12308 | ||
12309 | 2024-04-09 Jørgen Kvalsvik <j@lambda.is> | |
12310 | ||
12311 | PR middle-end/114599 | |
12312 | * tree-inline.cc (copy_bb): Copy cond_uids into callee. | |
12313 | (prepend_lexical_block): Remove outdated comment. | |
12314 | (add_local_variables): Remove bad cond_uids copy. | |
12315 | ||
12316 | 2024-04-09 Jakub Jelinek <jakub@redhat.com> | |
12317 | ||
12318 | * expr.cc (convert_mode_scalar): Fix duplicated words in comment; | |
12319 | into into -> it into. | |
12320 | * function.h (function::cond_uids): Fix duplicated words in comment; | |
12321 | same same -> same. | |
12322 | * config/riscv/riscv-vector-costs.cc | |
12323 | (costs::adjust_vect_cost_per_loop): Fix duplicated words in comment; | |
12324 | model model -> model. | |
12325 | * config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix | |
12326 | duplicated words in comment; for for -> for. | |
12327 | * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix | |
12328 | duplicated words in comment; more more -> more. | |
12329 | * config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix | |
12330 | duplicated words in comment; be be -> be. | |
12331 | * tree-profile.cc (masking_vectors): Fix duplicated words in comment; | |
12332 | has has -> has, the the -> the. | |
12333 | * value-range.cc (irange::set_range_from_bitmask): Fix duplicated | |
12334 | words in comment; the the -> the. | |
12335 | * gcov.cc (add_condition_counts): Fix duplicated words in comment; | |
12336 | to to -> to. | |
12337 | * vr-values.cc (get_scev_info): Fix duplicated words in comment; | |
12338 | the the -> to the. | |
12339 | * tree-vrp.cc (fully_replaceable): Fix duplicated words in comment; | |
12340 | by by -> by. | |
12341 | * mode-switching.cc (single_succ_confluence_n): Fix duplicated words | |
12342 | in comment; the the -> the. | |
12343 | * tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in | |
12344 | comment; can can -> we can. | |
12345 | * gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words | |
12346 | in comment; it it -> it is. | |
12347 | * tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment; | |
12348 | to to -> to. | |
12349 | * rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated | |
12350 | words in comment; if if -> if. | |
12351 | * doc/options.texi (InverseMask): Fix duplicated words; and and -> and. | |
12352 | Change take to takes. | |
12353 | * doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words; | |
12354 | be be -> be. | |
12355 | (-minline-memops-threshold): Likewise. | |
12356 | ||
12357 | 2024-04-09 Jakub Jelinek <jakub@redhat.com> | |
12358 | ||
12359 | PR middle-end/114628 | |
12360 | * gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts | |
12361 | before returns_twice calls as is, don't push them into arg_stmts | |
12362 | vector/move to edges. | |
12363 | ||
12364 | 2024-04-09 Sergey Bugaev <bugaevc@gmail.com> | |
12365 | ||
12366 | * config.gcc: Recognize aarch64*-*-gnu* targets. | |
12367 | * config/aarch64/aarch64-gnu.h: New file. | |
12368 | ||
12369 | 2024-04-09 Sergey Bugaev <bugaevc@gmail.com> | |
12370 | ||
12371 | * config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here... | |
12372 | * config/gnu.h: ...to here. | |
12373 | ||
12374 | 2024-04-09 Richard Biener <rguenther@suse.de> | |
12375 | ||
12376 | PR middle-end/114604 | |
12377 | * gimple-range.cc (enable_ranger): Initialize the global | |
12378 | bitmap obstack. | |
12379 | (disable_ranger): Release it. | |
12380 | ||
12381 | 2024-04-09 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
12382 | ||
12383 | * config.gcc (aarch64-*-rtems*): Add target makefile fragment | |
12384 | t-aarch64-rtems. | |
12385 | * config/aarch64/t-aarch64-rtems: New file. | |
12386 | ||
12387 | 2024-04-09 H.J. Lu <hjl.tools@gmail.com> | |
12388 | ||
12389 | PR target/114587 | |
12390 | * config/i386/i386-c.cc (ix86_target_macros_internal): Define | |
12391 | __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32. | |
12392 | ||
12393 | 2024-04-09 Kewen Lin <linkw@linux.ibm.com> | |
12394 | Andrew Pinski <quic_apinski@quicinc.com> | |
12395 | ||
12396 | PR target/88309 | |
12397 | * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix | |
12398 | wrong align passed to function build_aligned_type. | |
12399 | * tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an | |
12400 | assertion to ensure align_unit should be positive. | |
12401 | * tree.cc (build_qualified_type): Update function comments. | |
12402 | ||
12403 | 2024-04-08 Uros Bizjak <ubizjak@gmail.com> | |
12404 | ||
12405 | PR rtl-optimization/112560 | |
12406 | * combine.cc (try_combine): Replace cc_use_loc with the entire | |
12407 | new RTX only in case cc_use_loc satisfies COMPARISON_P predicate. | |
12408 | Otherwise scan the entire cc_use_loc RTX for CC reg to be updated | |
12409 | with a new mode. | |
12410 | * config/i386/i386.md (@pushf<mode>2): Allow all CC modes for | |
12411 | operand 1. | |
12412 | ||
12413 | 2024-04-08 Thomas Schwinge <tschwinge@baylibre.com> | |
12414 | ||
12415 | * config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor): | |
12416 | New. | |
12417 | * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it. | |
12418 | * doc/invoke.texi (Optimize Options): Document it. | |
12419 | ||
12420 | 2024-04-08 Thomas Schwinge <tschwinge@baylibre.com> | |
12421 | ||
12422 | * doc/sourcebuild.texi (Effective-Target Keywords): Document | |
12423 | 'asm_goto_with_outputs'. Add comment to 'lra'. | |
12424 | ||
12425 | 2024-04-08 Martin Jambor <mjambor@suse.cz> | |
12426 | ||
12427 | PR ipa/113359 | |
12428 | * ipa-icf-gimple.h (func_checker): New members | |
12429 | safe_for_total_scalarization_p, m_total_scalarization_limit_known_p | |
12430 | and m_total_scalarization_limit. | |
12431 | (func_checker::func_checker): Initialize new member variables. | |
12432 | * ipa-icf-gimple.cc: Include tree-sra.h. | |
12433 | (func_checker::func_checker): Initialize new member variables. | |
12434 | (func_checker::safe_for_total_scalarization_p): New function. | |
12435 | (func_checker::compare_operand): Use the new function. | |
12436 | * tree-sra.h (sra_get_max_scalarization_size): Declare. | |
12437 | (sra_total_scalarization_would_copy_same_data_p): Likewise. | |
12438 | * tree-sra.cc (prepare_iteration_over_array_elts): New function. | |
12439 | (class sra_padding_collecting): New. | |
12440 | (sra_padding_collecting::record_padding): Likewise. | |
12441 | (scalarizable_type_p): Rename to totally_scalarizable_type_p. Add | |
12442 | ability to record padding when requested. | |
12443 | (totally_scalarize_subtree): Split out gathering information necessary | |
12444 | to iterate over array elements to prepare_iteration_over_array_elts. | |
12445 | Fix errornous early exit. | |
12446 | (analyze_all_variable_accesses): Adjust the call to | |
12447 | totally_scalarizable_type_p. Move determining of total scalariation | |
12448 | size limit... | |
12449 | (sra_get_max_scalarization_size): ...here. | |
12450 | (check_ts_and_push_padding_to_vec): New function. | |
12451 | (sra_total_scalarization_would_copy_same_data_p): Likewise. | |
12452 | ||
12453 | 2024-04-08 Martin Jambor <mjambor@suse.cz> | |
12454 | ||
12455 | PR ipa/113907 | |
12456 | * ipa-prop.h (class ipa_vr): Declare new overload of a member function | |
12457 | equal_p. | |
12458 | (ipa_jump_functions_equivalent_p): Declare. | |
12459 | * ipa-prop.cc (ipa_vr::equal_p): New function. | |
12460 | (ipa_agg_pass_through_jf_equivalent_p): Likewise. | |
12461 | (ipa_agg_jump_functions_equivalent_p): Likewise. | |
12462 | (ipa_jump_functions_equivalent_p): Likewise. | |
12463 | * ipa-cp.h (values_equal_for_ipcp_p): Declare. | |
12464 | * ipa-cp.cc (values_equal_for_ipcp_p): Make function public. | |
12465 | * ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h, | |
12466 | ipa-cp.h and ipa-prop.h. | |
12467 | (func_checker::compare_gimple_call): Comapre jump functions. | |
12468 | ||
12469 | 2024-04-08 Richard Sandiford <richard.sandiford@arm.com> | |
12470 | ||
12471 | PR target/114607 | |
12472 | * config/aarch64/aarch64-sve-builtins-base.cc | |
12473 | (svusdot_impl::expand): Fix botched attempt to swap the operands | |
12474 | for svsudot. | |
12475 | ||
12476 | 2024-04-08 Tatsuyuki Ishi <ishitatsuyuki@gmail.com> | |
12477 | ||
12478 | * config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor. | |
12479 | * config.gcc: Add --with-tls configuration option to change the | |
12480 | default TLS flavor. | |
12481 | * config/riscv/riscv.h: Add TARGET_TLSDESC determined from | |
12482 | -mtls-dialect and with_tls defaults. | |
12483 | * config/riscv/riscv-opts.h: Define enum riscv_tls_type for the | |
12484 | two TLS flavors. | |
12485 | * config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type. | |
12486 | * config/riscv/riscv.md: Add instruction sequence for TLSDESC. | |
12487 | * config/riscv/riscv.cc (riscv_symbol_insns): Add instruction | |
12488 | sequence length data for TLSDESC. | |
12489 | (riscv_legitimize_tls_address): Add lowering of TLSDESC. | |
12490 | * doc/install.texi: Document --with-tls for RISC-V. | |
12491 | * doc/invoke.texi: Document -mtls-dialect for RISC-V. | |
12492 | ||
12493 | 2024-04-08 Jakub Jelinek <jakub@redhat.com> | |
12494 | ||
12495 | PR target/114605 | |
12496 | * config/s390/s390.cc (s390_const_int_pool_entry_p): Punt | |
12497 | if mem doesn't have MODE_INT mode, or pool constant doesn't | |
12498 | have MODE_INT mode, or if pool constant mode is smaller than | |
12499 | mem mode. If mem mode is different from pool constant mode, | |
12500 | try to simplify subreg. If that doesn't work, punt, if it | |
12501 | does, use the simplified constant instead of the constant pool | |
12502 | constant. | |
12503 | * config/s390/s390.md (movdi from const pool peephole): If | |
12504 | either low or high 32-bit part is zero, just emit move insn | |
12505 | instead of move + ior. | |
12506 | ||
12507 | 2024-04-08 Richard Biener <rguenther@suse.de> | |
12508 | ||
12509 | PR tree-optimization/114624 | |
12510 | * tree-scalar-evolution.cc (final_value_replacement_loop): | |
12511 | Get at the PHI arg location before releasing the PHI node. | |
12512 | ||
12513 | 2024-04-08 Pan Li <pan2.li@intel.com> | |
12514 | ||
12515 | * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass | |
12516 | required_ext arg when invoke add function. | |
12517 | (build_th_loadstore): Ditto. | |
12518 | (struct vcreate_def): Ditto. | |
12519 | (struct read_vl_def): Ditto. | |
12520 | (struct vlenb_def): Ditto. | |
12521 | * config/riscv/riscv-vector-builtins.cc (function_builder::add_function): | |
12522 | Introduce new arg required_ext to fill in the register func. | |
12523 | (function_builder::add_unique_function): Ditto. | |
12524 | (function_builder::add_overloaded_function): Ditto. | |
12525 | (expand_builtin): Leverage required_extensions_specified to | |
12526 | check if the required extension is provided. | |
12527 | * config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New | |
12528 | func impl to convert the required_ext enum to the extension name. | |
12529 | (required_extensions_specified): New func impl to predicate if | |
12530 | the required extension is well feeded. | |
12531 | ||
12532 | 2024-04-08 Iain Sandoe <iain@sandoe.co.uk> | |
12533 | ||
12534 | * config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage | |
12535 | specs. | |
12536 | ||
12537 | 2024-04-08 demin.han <demin.han@starfivetech.com> | |
12538 | ||
12539 | * config/riscv/riscv-vector-costs.cc: Use length() | |
12540 | ||
12541 | 2024-04-08 Pan Li <pan2.li@intel.com> | |
12542 | ||
12543 | * config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New | |
12544 | struct to hold all intrinisc related flags. | |
12545 | (riscv_pragma_intrinsic_flags_pollute): New func to pollute | |
12546 | the intrinsic flags and backup original flags. | |
12547 | (riscv_pragma_intrinsic_flags_restore): New func to restore | |
12548 | the flags from the backup intrinsic flags. | |
12549 | (riscv_pragma_intrinsic): Pollute the flags and register all | |
12550 | possible builtin types and functions, then restore and reinit. | |
12551 | * config/riscv/riscv-protos.h (reinit_builtins): New func | |
12552 | decl to reinit after flags pollution. | |
12553 | (riscv_option_override): New extern func decl. | |
12554 | * config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null): | |
12555 | New func to register builtin types if null. | |
12556 | (DEF_RVV_TYPE): Ditto. | |
12557 | (DEF_RVV_TUPLE_TYPE): Ditto. | |
12558 | (reinit_builtins): New func impl to reinit after flags pollution. | |
12559 | (expand_builtin): Return | |
12560 | target rtx after error_at. | |
12561 | * config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate | |
12562 | func to tell one tree type is integer or not. | |
12563 | (riscv_vector_float_type_p): New predicate func to tell one tree | |
12564 | type is float or not. | |
12565 | (riscv_vector_element_bitsize): New func to get the element bitsize | |
12566 | of a vector tree type. | |
12567 | (riscv_vector_required_min_vlen): New func to get the required min vlen | |
12568 | of a vector tree type. | |
12569 | (riscv_validate_vector_type): New func to validate the tree type | |
12570 | is valid on flags. | |
12571 | (riscv_return_value_is_vector_type_p): Leverage the func | |
12572 | riscv_validate_vector_type to do the tree type validation. | |
12573 | (riscv_arguments_is_vector_type_p): Ditto. | |
12574 | (riscv_override_options_internal): Ditto. | |
12575 | ||
12576 | 2024-04-08 Lulu Cheng <chenglulu@loongson.cn> | |
12577 | ||
12578 | PR target/112919 | |
12579 | * config/loongarch/loongarch-def.cc (la664_align): Newly defined | |
12580 | function that sets alignment rules under the LA664 microarchitecture. | |
12581 | * config/loongarch/loongarch-opts.cc | |
12582 | (loongarch_target_option_override): If not optimizing for size, set | |
12583 | the default alignment to what the target wants. | |
12584 | * config/loongarch/loongarch-tune.h (struct loongarch_align): Add | |
12585 | new member variables jump and loop. | |
12586 | ||
12587 | 2024-04-06 H.J. Lu <hjl.tools@gmail.com> | |
12588 | ||
12589 | PR target/114590 | |
12590 | * config/i386/i386.md (x86_64_shld): Use explicit shift count in | |
12591 | AT&T syntax. | |
12592 | (x86_64_shld_ndd): Likewise. | |
12593 | (x86_shld): Likewise. | |
12594 | (x86_shld_ndd): Likewise. | |
12595 | (x86_64_shrd): Likewise. | |
12596 | (x86_64_shrd_ndd): Likewise. | |
12597 | (x86_shrd): Likewise. | |
12598 | (x86_shrd_ndd): Likewise. | |
12599 | ||
12600 | 2024-04-06 Jørgen Kvalsvik <j@lambda.is> | |
12601 | ||
12602 | PR middle-end/114599 | |
12603 | * tree-inline.cc (add_local_variables): Copy cond_uids mappings. | |
12604 | ||
12605 | 2024-04-05 David Malcolm <dmalcolm@redhat.com> | |
12606 | ||
12607 | PR analyzer/114588 | |
12608 | * diagnostic-color.cc (color_dict): Add "valid" and "invalid" as | |
12609 | color capability names. | |
12610 | * doc/invoke.texi: Document them in description of GCC_COLORS. | |
12611 | * text-art/style.cc: Include "diagnostic-color.h". | |
12612 | (text_art::get_style_from_color_cap_name): New. | |
12613 | * text-art/types.h (get_style_from_color_cap_name): New decl. | |
12614 | ||
12615 | 2024-04-05 Alex Coplan <alex.coplan@arm.com> | |
12616 | ||
12617 | * config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker): | |
12618 | Fix double space after const qualifier on valid (). | |
12619 | ||
12620 | 2024-04-05 Martin Jambor <mjambor@suse.cz> | |
12621 | ||
12622 | PR ipa/113964 | |
12623 | * ipa-param-manipulation.cc (ipa_param_adjustments::modify_call): | |
12624 | Force values obtined through pass-through maps to the expected | |
12625 | split type. | |
12626 | ||
12627 | 2024-04-05 Mark Wielaard <mark@klomp.org> | |
12628 | ||
12629 | * common.opt.urls: Regenerate. | |
12630 | ||
12631 | 2024-04-05 Richard Sandiford <richard.sandiford@arm.com> | |
12632 | ||
12633 | PR target/114603 | |
12634 | * config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace | |
12635 | with... | |
12636 | (@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be | |
12637 | a ptrue. | |
12638 | (*cnot<mode>): Require operand 1 to be a ptrue. | |
12639 | * config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand): | |
12640 | Use aarch64_ptrue_cnot<mode> for _x operations that are predicated | |
12641 | with a ptrue. Represent other _x operations as fully-defined _m | |
12642 | operations. | |
12643 | ||
12644 | 2024-04-05 Jakub Jelinek <jakub@redhat.com> | |
12645 | ||
12646 | PR tree-optimization/114566 | |
12647 | * tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear | |
12648 | base_misaligned. | |
12649 | ||
12650 | 2024-04-05 Richard Biener <rguenther@suse.de> | |
12651 | ||
12652 | PR middle-end/114599 | |
12653 | PR gcov-profile/114115 | |
12654 | * symtab.cc (ifunc_ref_map): Do not use auto_bitmap. | |
12655 | (is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit | |
12656 | pair. | |
12657 | (symtab_node::check_ifunc_callee_symtab_nodes): Properly | |
12658 | allocate ifunc_ref_map here. | |
12659 | ||
12660 | 2024-04-04 Martin Jambor <mjambor@suse.cz> | |
12661 | ||
12662 | PR ipa/111571 | |
12663 | * ipa-param-manipulation.cc | |
12664 | (ipa_param_body_adjustments::common_initialization): Avoid creating | |
12665 | duplicate replacement entries. | |
12666 | ||
12667 | 2024-04-04 Vladimir N. Makarov <vmakarov@redhat.com> | |
12668 | ||
12669 | PR rtl-optimization/114415 | |
12670 | * sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument. | |
12671 | (sched_analyze_1): Treat stack pointer modification as memory read. | |
12672 | (sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems. | |
12673 | * sched-int.h (deps_desc): Add comment to pending_read_mems. | |
12674 | ||
12675 | 2024-04-04 Tobias Burnus <tburnus@baylibre.com> | |
12676 | ||
12677 | * config/nvptx/mkoffload.cc (main): Call | |
12678 | gcc_init_libintl and diagnostic_color_init. | |
12679 | ||
12680 | 2024-04-04 H.J. Lu <hjl.tools@gmail.com> | |
12681 | ||
12682 | PR target/114587 | |
12683 | * config/i386/i386-c.cc (ix86_target_macros_internal): Define | |
12684 | __APX_F__ when APX is enabled. | |
12685 | ||
12686 | 2024-04-04 Jørgen Kvalsvik <j@lambda.is> | |
12687 | ||
12688 | * builtins.cc (expand_builtin_fork_or_exec): Check | |
12689 | condition_coverage_flag. | |
12690 | * collect2.cc (main): Add -fno-condition-coverage to OBSTACK. | |
12691 | * common.opt: Add new options -fcondition-coverage and | |
12692 | -Wcoverage-too-many-conditions. | |
12693 | * doc/gcov.texi: Add --conditions documentation. | |
12694 | * doc/invoke.texi: Add -fcondition-coverage documentation. | |
12695 | * function.cc (free_after_compilation): Free cond_uids. | |
12696 | * function.h (struct function): Add cond_uids. | |
12697 | * gcc.cc: Link gcov on -fcondition-coverage. | |
12698 | * gcov-counter.def (GCOV_COUNTER_CONDS): New. | |
12699 | * gcov-dump.cc (tag_conditions): New. | |
12700 | * gcov-io.h (GCOV_TAG_CONDS): New. | |
12701 | (GCOV_TAG_CONDS_LENGTH): New. | |
12702 | (GCOV_TAG_CONDS_NUM): New. | |
12703 | * gcov.cc (class condition_info): New. | |
12704 | (condition_info::condition_info): New. | |
12705 | (condition_info::popcount): New. | |
12706 | (struct coverage_info): New. | |
12707 | (add_condition_counts): New. | |
12708 | (output_conditions): New. | |
12709 | (print_usage): Add -g, --conditions. | |
12710 | (process_args): Likewise. | |
12711 | (output_intermediate_json_line): Output conditions. | |
12712 | (read_graph_file): Read condition counters. | |
12713 | (read_count_file): Likewise. | |
12714 | (file_summary): Print conditions. | |
12715 | (accumulate_line_info): Accumulate conditions. | |
12716 | (output_line_details): Print conditions. | |
12717 | * gimplify.cc (next_cond_uid): New. | |
12718 | (reset_cond_uid): New. | |
12719 | (shortcut_cond_r): Set condition discriminator. | |
12720 | (tag_shortcut_cond): New. | |
12721 | (gimple_associate_condition_with_expr): New. | |
12722 | (shortcut_cond_expr): Set condition discriminator. | |
12723 | (gimplify_cond_expr): Likewise. | |
12724 | (gimplify_function_tree): Call reset_cond_uid. | |
12725 | * ipa-inline.cc (can_early_inline_edge_p): Check | |
12726 | condition_coverage_flag. | |
12727 | * ipa-split.cc (pass_split_functions::gate): Likewise. | |
12728 | * passes.cc (finish_optimization_passes): Likewise. | |
12729 | * profile.cc (struct condcov): New declaration. | |
12730 | (cov_length): Likewise. | |
12731 | (cov_blocks): Likewise. | |
12732 | (cov_masks): Likewise. | |
12733 | (cov_maps): Likewise. | |
12734 | (cov_free): Likewise. | |
12735 | (instrument_decisions): New. | |
12736 | (read_thunk_profile): Control output to file. | |
12737 | (branch_prob): Call find_conditions, instrument_decisions. | |
12738 | (init_branch_prob): Add total_num_conds. | |
12739 | (end_branch_prob): Likewise. | |
12740 | * tree-core.h (struct tree_exp): Add condition_uid. | |
12741 | * tree-profile.cc (struct conds_ctx): New. | |
12742 | (CONDITIONS_MAX_TERMS): New. | |
12743 | (EDGE_CONDITION): New. | |
12744 | (topological_cmp): New. | |
12745 | (index_of): New. | |
12746 | (single_p): New. | |
12747 | (single_edge): New. | |
12748 | (contract_edge_up): New. | |
12749 | (struct outcomes): New. | |
12750 | (conditional_succs): New. | |
12751 | (condition_index): New. | |
12752 | (condition_uid): New. | |
12753 | (masking_vectors): New. | |
12754 | (emit_assign): New. | |
12755 | (emit_bitwise_op): New. | |
12756 | (make_top_index_visit): New. | |
12757 | (make_top_index): New. | |
12758 | (paths_between): New. | |
12759 | (struct condcov): New. | |
12760 | (cov_length): New. | |
12761 | (cov_blocks): New. | |
12762 | (cov_masks): New. | |
12763 | (cov_maps): New. | |
12764 | (cov_free): New. | |
12765 | (find_conditions): New. | |
12766 | (struct counters): New. | |
12767 | (find_counters): New. | |
12768 | (resolve_counter): New. | |
12769 | (resolve_counters): New. | |
12770 | (instrument_decisions): New. | |
12771 | (tree_profiling): Check condition_coverage_flag. | |
12772 | (pass_ipa_tree_profile::gate): Likewise. | |
12773 | * tree.h (SET_EXPR_UID): New. | |
12774 | (EXPR_COND_UID): New. | |
12775 | ||
12776 | 2024-04-04 Richard Sandiford <richard.sandiford@arm.com> | |
12777 | ||
12778 | PR target/114577 | |
12779 | * config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl): | |
12780 | Declare. | |
12781 | * config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl): | |
12782 | New function. | |
12783 | * config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise. | |
12784 | (svset_neonq_impl::expand): Optimise expansions whose first argument | |
12785 | is undefined. | |
12786 | ||
12787 | 2024-04-04 Richard Biener <rguenther@suse.de> | |
12788 | ||
12789 | PR tree-optimization/114485 | |
12790 | * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): | |
12791 | vect_step_op_neg isn't OK for partial vectors but only | |
12792 | for unknown niter. | |
12793 | ||
12794 | 2024-04-04 Jakub Jelinek <jakub@redhat.com> | |
12795 | ||
12796 | PR c++/114537 | |
12797 | * fold-const.cc (native_encode_initializer): Look through | |
12798 | NON_LVALUE_EXPR if val is INTEGER_CST. | |
12799 | ||
12800 | 2024-04-04 Jakub Jelinek <jakub@redhat.com> | |
12801 | ||
12802 | PR tree-optimization/114555 | |
12803 | * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For | |
12804 | m_bitfld_load and save_cast_conditional add any needed PHIs | |
12805 | and adjust t4 accordingly. | |
12806 | ||
12807 | 2024-04-04 Richard Biener <rguenther@suse.de> | |
12808 | ||
12809 | PR tree-optimization/114551 | |
12810 | * tree-ssa-loop-split.cc (split_loop): If the guard is | |
12811 | only conditionally evaluated rewrite computations with | |
12812 | possibly undefined overflow to unsigned arithmetic. | |
12813 | ||
12814 | 2024-04-04 Eugene Rozenfeld <erozen@microsoft.com> | |
12815 | ||
12816 | PR gcov-profile/113765 | |
12817 | * auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true | |
12818 | ||
12819 | 2024-04-03 Mark Wielaard <mark@klomp.org> | |
12820 | ||
12821 | * config/i386/i386.opt.urls: Regenerate. | |
12822 | ||
12823 | 2024-04-03 H.J. Lu <hjl.tools@gmail.com> | |
12824 | ||
12825 | PR tree-optimization/114115 | |
12826 | * cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes. | |
12827 | (cgraph_node): Add called_by_ifunc_resolver. | |
12828 | * cgraphunit.cc (symbol_table::compile): Call | |
12829 | symtab_node::check_ifunc_callee_symtab_nodes. | |
12830 | * symtab.cc (check_ifunc_resolver): New. | |
12831 | (ifunc_ref_map): Likewise. | |
12832 | (is_caller_ifunc_resolver): Likewise. | |
12833 | (symtab_node::check_ifunc_callee_symtab_nodes): Likewise. | |
12834 | * tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect | |
12835 | call profiling for IFUNC resolvers and their callees. | |
12836 | ||
12837 | 2024-04-03 Tobias Burnus <tburnus@baylibre.com> | |
12838 | ||
12839 | * lto-wrapper.cc (compile_offload_image): Prefix 'offload_args' | |
12840 | suffix by the target name. | |
12841 | ||
12842 | 2024-04-03 Tobias Burnus <tburnus@baylibre.com> | |
12843 | ||
12844 | * doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation | |
12845 | and update wording for LLVM 18 release. | |
12846 | ||
12847 | 2024-04-03 Tobias Burnus <tburnus@baylibre.com> | |
12848 | ||
12849 | PR other/111966 | |
12850 | * config/gcn/mkoffload.cc (get_arch): New; moved -march= flag | |
12851 | handling from ... | |
12852 | (main): ... here; call it to handle --with-arch config option | |
12853 | and -march= commandline. | |
12854 | ||
12855 | 2024-04-03 Jakub Jelinek <jakub@redhat.com> | |
12856 | ||
12857 | PR middle-end/114552 | |
12858 | * expr.cc (emit_push_insn): Only use store_constructor for | |
12859 | immediate_const_ctor_p if int_expr_size matches size. | |
12860 | ||
12861 | 2024-04-03 Richard Biener <rguenther@suse.de> | |
12862 | ||
12863 | PR tree-optimization/114557 | |
12864 | PR tree-optimization/114480 | |
12865 | * tree-phinodes.cc (release_phi_node): Return PHIs from | |
12866 | allocation buckets not covered by free_phinodes to GC. | |
12867 | (remove_phi_node): Release the PHI LHS before freeing the | |
12868 | PHI node. | |
12869 | * tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs | |
12870 | before releasing it. | |
12871 | ||
12872 | 2024-04-03 Jiahao Xu <xujiahao@loongson.cn> | |
12873 | ||
12874 | * config/loongarch/lasx.md: Remove unused code. | |
12875 | * config/loongarch/loongarch-protos.h | |
12876 | (loongarch_split_lsx_copy_d): Remove. | |
12877 | (loongarch_split_lsx_insert_d): Ditto. | |
12878 | (loongarch_split_lsx_fill_d): Ditto. | |
12879 | * config/loongarch/loongarch.cc | |
12880 | (loongarch_split_lsx_copy_d): Ditto. | |
12881 | (loongarch_split_lsx_insert_d): Ditto. | |
12882 | (loongarch_split_lsx_fill_d): Ditto. | |
12883 | * config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter. | |
12884 | (lsx_vpickve2gr_<lsxfmt_f>): Ditto. | |
12885 | (abs<mode>2): Remove expander. | |
12886 | (vabs<mode>2): Rename 2 abs<mode>2. | |
12887 | ||
12888 | 2024-04-02 Christophe Lyon <christophe.lyon@linaro.org> | |
12889 | ||
12890 | * config/aarch64/aarch64-option-extensions.def: Fix comment. | |
12891 | ||
12892 | 2024-04-02 Tom Tromey <tromey@adacore.com> | |
12893 | ||
12894 | * dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't | |
12895 | print newline when not recursing. | |
12896 | ||
12897 | 2024-04-02 Iain Sandoe <iain@sandoe.co.uk> | |
12898 | ||
12899 | * config/darwin.cc (darwin_override_options): Update the | |
12900 | clang major version value in the dsymutil check. | |
12901 | ||
12902 | 2024-04-02 Iain Sandoe <iain@sandoe.co.uk> | |
12903 | ||
12904 | * config/darwin.cc (darwin_override_options): Reduce the debug | |
12905 | level to 2 if dsymutil cannot handle .macinfo sections. | |
12906 | ||
12907 | 2024-04-02 Yang Yujie <yangyujie@loongson.cn> | |
12908 | ||
12909 | * config/loongarch/t-loongarch: Add loongarch-def-arrays.h | |
12910 | to OPTION_H_EXTRA. | |
12911 | ||
12912 | 2024-04-02 mengqinggang <mengqinggang@loongson.cn> | |
12913 | Lulu Cheng <chenglulu@loongson.cn> | |
12914 | Xi Ruoyao <xry111@xry111.site> | |
12915 | ||
12916 | * config.gcc: Add --with-tls option to change TLS flavor. | |
12917 | * config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to | |
12918 | configure TLS flavor. | |
12919 | * config/loongarch/loongarch-def.h (struct loongarch_target): Add | |
12920 | tls_dialect. | |
12921 | * config/loongarch/loongarch-driver.cc (la_driver_init): Add tls | |
12922 | flavor. | |
12923 | * config/loongarch/loongarch-opts.cc (loongarch_init_target): Add | |
12924 | tls_dialect. | |
12925 | (loongarch_config_target): Ditto. | |
12926 | (loongarch_update_gcc_opt_status): Ditto. | |
12927 | * config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto. | |
12928 | (TARGET_TLS_DESC): New define. | |
12929 | * config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS | |
12930 | DESC instructions sequence length. | |
12931 | (loongarch_legitimize_tls_address): New TLS DESC instruction sequence. | |
12932 | (loongarch_option_override_internal): Add la_opt_tls_dialect. | |
12933 | (loongarch_option_restore): Add la_target.tls_dialect. | |
12934 | * config/loongarch/loongarch.md (@got_load_tls_desc<mode>): Normal | |
12935 | code model for TLS DESC. | |
12936 | (got_load_tls_desc_off64): Extreme cmode model for TLS DESC. | |
12937 | * config/loongarch/loongarch.opt: Regenerate. | |
12938 | * config/loongarch/loongarch.opt.urls: Ditto. | |
12939 | * doc/invoke.texi: Add a description of the compilation option | |
12940 | '-mtls-dialect={trad,desc}'. | |
12941 | ||
12942 | 2024-04-02 Lulu Cheng <chenglulu@loongson.cn> | |
12943 | ||
12944 | * config/loongarch/loongarch.opt.urls: Regenerate. | |
12945 | ||
12946 | 2024-04-01 Yang Yujie <yangyujie@loongson.cn> | |
12947 | ||
12948 | * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as | |
12949 | aliases to -mrecip={all,none}, respectively. | |
12950 | * config/loongarch/loongarch.opt: Regenerate. | |
12951 | * config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to... | |
12952 | (ABI_FPU64_P): ...this. | |
12953 | (ABI_FPU_32): Rename to... | |
12954 | (ABI_FPU32_P): ...this. | |
12955 | (ABI_FPU_NONE): Rename to... | |
12956 | (ABI_NOFPU_P): ...this. | |
12957 | (ABI_LP64_P): Define. | |
12958 | * config/loongarch/loongarch.cc (loongarch_init_print_operand_punct): | |
12959 | Merged into loongarch_global_init. | |
12960 | (loongarch_cpu_option_override): Renamed to | |
12961 | loongarch_target_option_override. | |
12962 | (loongarch_option_override_internal): Move the work after | |
12963 | loongarch_config_target into loongarch_target_option_override. | |
12964 | (loongarch_global_init): Define. | |
12965 | (INIT_TARGET_FLAG): Move to loongarch-opts.cc. | |
12966 | (loongarch_option_override): Call loongarch_global_init | |
12967 | separately. | |
12968 | * config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme): | |
12969 | Split the parsing of -mrecip=<string> from | |
12970 | loongarch_option_override_internal. | |
12971 | (loongarch_generate_mrecip_scheme): Define. Split from | |
12972 | loongarch_option_override_internal. | |
12973 | (loongarch_target_option_override): Define. Renamed from | |
12974 | loongarch_cpu_option_override. | |
12975 | (loongarch_init_misc_options): Define. Split from | |
12976 | loongarch_option_override_internal. | |
12977 | (INIT_TARGET_FLAG): Move from loongarch.cc. | |
12978 | * config/loongarch/loongarch-opts.h (loongarch_target_option_override): | |
12979 | New prototype. | |
12980 | (loongarch_parse_mrecip_scheme): New prototype. | |
12981 | (loongarch_init_misc_options): New prototype. | |
12982 | (TARGET_ABI_LP64): Simplify with ABI_LP64_P. | |
12983 | * config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify. | |
12984 | Do not reference specific CPU architecture (LA664). | |
12985 | (TARGET_RECIP_SQRT): Same. | |
12986 | (TARGET_RECIP_RSQRT): Same. | |
12987 | (TARGET_RECIP_VEC_DIV): Same. | |
12988 | (TARGET_RECIP_VEC_SQRT): Same. | |
12989 | (TARGET_RECIP_VEC_RSQRT): Same. | |
12990 | ||
12991 | 2024-04-01 Lulu Cheng <chenglulu@loongson.cn> | |
12992 | ||
12993 | * doc/invoke.texi: Add descriptions for the compilation | |
12994 | options. | |
12995 | ||
12996 | 2024-03-31 Jeff Law <jlaw@ventanamicro.com> | |
12997 | ||
12998 | * config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret | |
12999 | and sfb_alu. | |
13000 | ||
13001 | 2024-03-31 Pan Li <pan2.li@intel.com> | |
13002 | ||
13003 | * config/riscv/riscv-vector-builtins.cc (expand_builtin): Take | |
13004 | the term built-in over builtin. | |
13005 | ||
13006 | 2024-03-31 Pan Li <pan2.li@intel.com> | |
13007 | ||
13008 | * common/config/riscv/riscv-common.cc (riscv_subset_list::parse): | |
13009 | Remove unused var decl. | |
13010 | ||
13011 | 2024-03-30 Xi Ruoyao <xry111@xry111.site> | |
13012 | ||
13013 | PR target/114175 | |
13014 | * config/mips/mips.cc (mips_setup_incoming_varargs): Only skip | |
13015 | mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P | |
13016 | functions if arg.type is NULL. | |
13017 | ||
13018 | 2024-03-29 Andrew Pinski <quic_apinski@quicinc.com> | |
13019 | ||
13020 | * lto-compress.cc (lto_end_uncompression): Use | |
13021 | fatal_error instead of internal_error when ZSTD | |
13022 | is not enabled. | |
13023 | ||
13024 | 2024-03-28 Jeff Law <jlaw@ventanamicro.com> | |
13025 | ||
13026 | * config/h8300/extensions.md (zero_extendqihi*): Add output | |
13027 | template for reg->reg case where the regs don't match. | |
13028 | ||
13029 | 2024-03-28 Gaius Mulley <(no_default)> | |
13030 | ||
13031 | PR modula2/114517 | |
13032 | * doc/gm2.texi: Mention gm2 treats a # in the first column | |
13033 | as a preprocessor directive unless -fno-cpp is supplied. | |
13034 | ||
13035 | 2024-03-28 Jakub Jelinek <jakub@redhat.com> | |
13036 | ||
13037 | * predict.cc (estimate_bb_frequencies): Fix comment typo, | |
13038 | scalling -> scaling. | |
13039 | ||
13040 | 2024-03-28 Jakub Jelinek <jakub@redhat.com> | |
13041 | ||
13042 | PR tree-optimization/112303 | |
13043 | * profile-count.h (profile_count::operator+): Perform | |
13044 | addition in uint64_t variable and set m_val to MIN of that | |
13045 | val and max_count. | |
13046 | (profile_count::operator+=): Likewise. | |
13047 | (profile_count::operator-=): Formatting fix. | |
13048 | (profile_count::apply_probability): Use safe_scale_64bit | |
13049 | even in the int overload. | |
13050 | ||
13051 | 2024-03-28 Jan Hubicka <jh@suse.cz> | |
13052 | ||
13053 | PR middle-end/113907 | |
13054 | * ipa-icf.cc (sem_function::init): Hash PHI operands | |
13055 | (sem_function::compare_phi_node): Add argument about preserving order | |
13056 | ||
13057 | 2024-03-28 Richard Biener <rguenther@suse.de> | |
13058 | ||
13059 | PR middle-end/114480 | |
13060 | * cfganal.cc (compute_idf): Use simpler bitmap iteration, | |
13061 | touch work_set only when phi_insertion_points changed. | |
13062 | ||
13063 | 2024-03-28 Palmer Dabbelt <palmer@rivosinc.com> | |
13064 | ||
13065 | * config/riscv/riscv.h (REGISTER_NAMES): Add vxsat. | |
13066 | ||
13067 | 2024-03-27 Segher Boessenkool <segher@kernel.crashing.org> | |
13068 | ||
13069 | PR rtl-optimization/101523 | |
13070 | * combine.cc (try_combine): Don't do a 2-insn combination if | |
13071 | it does not in fact change I2. | |
13072 | ||
13073 | 2024-03-27 Jakub Jelinek <jakub@redhat.com> | |
13074 | ||
13075 | * doc/invoke.texi (Spec Files): Use @var{S} instead of S, | |
13076 | @var{X} instead of X etc. for other placeholders. | |
13077 | ||
13078 | 2024-03-27 Richard Biener <rguenther@suse.de> | |
13079 | ||
13080 | PR tree-optimization/114057 | |
13081 | * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark | |
13082 | BB reduction remain defs as scalar uses. | |
13083 | ||
13084 | 2024-03-27 Victor Do Nascimento <victor.donascimento@arm.com> | |
13085 | ||
13086 | * config/aarch64/aarch64-option-extensions.def (rcpc3): | |
13087 | Fix FEATURE_STRING field to "lrcpc3". | |
13088 | ||
13089 | 2024-03-27 Victor Do Nascimento <victor.donascimento@arm.com> | |
13090 | ||
13091 | * config/aarch64/aarch64-option-extensions.def: Add LSE128 | |
13092 | AARCH64_OPT_EXTENSION, adding it as a dependency for the D128 | |
13093 | feature. | |
13094 | * doc/invoke.texi (AArch64 Options): Document +lse128. | |
13095 | ||
13096 | 2024-03-26 Richard Sandiford <richard.sandiford@arm.com> | |
13097 | ||
13098 | * config/aarch64/aarch64-feature-deps.h: Use constexpr for | |
13099 | out-of-line statics. | |
13100 | ||
13101 | 2024-03-26 Cupertino Miranda <cupertino.miranda@oracle.com> | |
13102 | ||
13103 | PR target/114431 | |
13104 | * btfout.cc (get_name_for_datasec_entry): Add function. | |
13105 | (btf_asm_datasec_entry): Print label when possible. | |
13106 | ||
13107 | 2024-03-26 Richard Ball <richard.ball@arm.com> | |
13108 | ||
13109 | PR target/114272 | |
13110 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): | |
13111 | Change SCHEDULER_IDENT from cortexa55 to cortexa53 | |
13112 | for Cortex-A510 and Cortex-A520. | |
13113 | ||
13114 | 2024-03-26 Jakub Jelinek <jakub@redhat.com> | |
13115 | ||
13116 | PR middle-end/111151 | |
13117 | * fold-const.cc (extract_muldiv_1) <case MAX_EXPR>: Punt for | |
13118 | MULT_EXPR altogether, or for MAX_EXPR if c is -1. | |
13119 | ||
13120 | 2024-03-26 Jakub Jelinek <jakub@redhat.com> | |
13121 | ||
13122 | PR sanitizer/111736 | |
13123 | * tsan.cc (instrument_expr): Punt on non-generic address space | |
13124 | accesses. | |
13125 | ||
13126 | 2024-03-26 Richard Biener <rguenther@suse.de> | |
13127 | ||
13128 | PR tree-optimization/114471 | |
13129 | * tree-vect-stmts.cc (vectorizable_operation): Verify operand | |
13130 | types are compatible with the result type. | |
13131 | ||
13132 | 2024-03-26 Richard Biener <rguenther@suse.de> | |
13133 | ||
13134 | PR tree-optimization/114464 | |
13135 | * tree-vect-loop.cc (vectorizable_recurr): Verify the latch | |
13136 | vector type is compatible with what we chose for the recurrence. | |
13137 | ||
13138 | 2024-03-26 Jakub Jelinek <jakub@redhat.com> | |
13139 | ||
13140 | * cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs): | |
13141 | Fix comment typo - multple -> multiple. | |
13142 | * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): | |
13143 | Likewise. | |
13144 | ||
13145 | 2024-03-26 YunQiang Su <syq@gcc.gnu.org> | |
13146 | ||
13147 | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine | |
13148 | __mips_strict_alignment if STRICT_ALIGNMENT. | |
13149 | ||
13150 | 2024-03-25 Richard Biener <rguenther@suse.de> | |
13151 | ||
13152 | * config.gcc (amdgcn): Add gfx1036 entries. | |
13153 | * config/gcn/gcn-hsa.h (NO_XNACK): Likewise. | |
13154 | (gcn_local_sym_hash): Likewise. | |
13155 | * config/gcn/gcn-opts.h (enum processor_type): Likewise. | |
13156 | (TARGET_GFX1036): New macro. | |
13157 | * config/gcn/gcn.cc (gcn_option_override): Handle gfx1036. | |
13158 | (gcn_omp_device_kind_arch_isa): Likewise. | |
13159 | (output_file_start): Likewise. | |
13160 | * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__. | |
13161 | (TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__. | |
13162 | * config/gcn/gcn.opt: Add gfx1036. | |
13163 | * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New. | |
13164 | (main): Handle gfx1036. | |
13165 | * config/gcn/t-omp-device: Add gfx1036 isa. | |
13166 | * doc/install.texi (amdgcn): Add gfx1036. | |
13167 | * doc/invoke.texi (-march): Likewise. | |
13168 | ||
13169 | 2024-03-25 Pan Li <pan2.li@intel.com> | |
13170 | ||
13171 | * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error | |
13172 | when V is disabled and init the RVV types and intrinic APIs. | |
13173 | * config/riscv/riscv-vector-builtins.cc (expand_builtin): Report | |
13174 | error if V ext is disabled. | |
13175 | * config/riscv/riscv.cc (riscv_return_value_is_vector_type_p): | |
13176 | Ditto. | |
13177 | (riscv_arguments_is_vector_type_p): Ditto. | |
13178 | (riscv_vector_cc_function_p): Ditto. | |
13179 | * config/riscv/riscv_vector.h: Remove error if V is disable. | |
13180 | ||
13181 | 2024-03-23 John David Anglin <danglin@gcc.gnu.org> | |
13182 | ||
13183 | * config/pa/pa.cc (pa_output_global_address): Handle | |
13184 | UNSPEC_DLTIND14R addresses. | |
13185 | * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for | |
13186 | UNSPEC_DLTIND14R address. | |
13187 | ||
13188 | 2024-03-23 Jakub Jelinek <jakub@redhat.com> | |
13189 | ||
13190 | PR tree-optimization/114433 | |
13191 | * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For | |
13192 | m_bitfld_load check save_first rather than m_first. | |
13193 | ||
13194 | 2024-03-23 Jakub Jelinek <jakub@redhat.com> | |
13195 | ||
13196 | PR tree-optimization/114425 | |
13197 | * gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle | |
13198 | _Complex large/huge _BitInt types like the large/huge _BitInt types. | |
13199 | ||
13200 | 2024-03-23 Jakub Jelinek <jakub@redhat.com> | |
13201 | ||
13202 | PR middle-end/111683 | |
13203 | * tree-predcom.cc (pcom_worker::suitable_component_p): If has_write | |
13204 | and comp_step is RS_NONZERO, return false if any reference in the | |
13205 | component doesn't have DR_STEP a multiple of access size. | |
13206 | ||
13207 | 2024-03-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
13208 | ||
13209 | * config/xtensa/xtensa.md: Add new split pattern described above. | |
13210 | ||
13211 | 2024-03-22 Georg-Johann Lay <avr@gjlay.de> | |
13212 | ||
13213 | * config/avr/avr.cc (avr_set_current_function): Adjust diagnostic | |
13214 | for deprecated SIGNAL and INTERRUPT usage without respective header. | |
13215 | ||
13216 | 2024-03-22 Andrew Stubbs <ams@baylibre.com> | |
13217 | ||
13218 | * config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA. | |
13219 | (atomic_load<mode>): Adjust RDNA cache settings. | |
13220 | (atomic_store<mode>): Likewise. | |
13221 | (atomic_exchange<mode>): Likewise. | |
13222 | ||
13223 | 2024-03-22 Andrew Stubbs <ams@baylibre.com> | |
13224 | ||
13225 | * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on | |
13226 | RDNA devices. | |
13227 | ||
13228 | 2024-03-22 Andrew Stubbs <ams@baylibre.com> | |
13229 | ||
13230 | * config.gcc (amdgcn): Add gfx1103 entries. | |
13231 | * config/gcn/gcn-hsa.h (NO_XNACK): Likewise. | |
13232 | (gcn_local_sym_hash): Likewise. | |
13233 | * config/gcn/gcn-opts.h (enum processor_type): Likewise. | |
13234 | (TARGET_GFX1103): New macro. | |
13235 | * config/gcn/gcn.cc (gcn_option_override): Handle gfx1103. | |
13236 | (gcn_omp_device_kind_arch_isa): Likewise. | |
13237 | (output_file_start): Likewise. | |
13238 | (gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100. | |
13239 | * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__. | |
13240 | * config/gcn/gcn.opt: Add gfx1103. | |
13241 | * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New. | |
13242 | (main): Handle gfx1103. | |
13243 | * config/gcn/t-omp-device: Add gfx1103 isa. | |
13244 | * doc/install.texi (amdgcn): Add gfx1103. | |
13245 | * doc/invoke.texi (-march): Likewise. | |
13246 | ||
13247 | 2024-03-22 Andrew Stubbs <ams@baylibre.com> | |
13248 | ||
13249 | * dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector | |
13250 | bitmasks. | |
13251 | (do_compare_and_jump): Remove now-redundant similar code. | |
13252 | * internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector | |
13253 | bitmasks. | |
13254 | (add_mask_and_len_args): Likewise. | |
13255 | ||
13256 | 2024-03-22 Pan Li <pan2.li@intel.com> | |
13257 | ||
13258 | * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define | |
13259 | macro __riscv_v_fixed_vlen when zvl. | |
13260 | * config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute): | |
13261 | New static func to take care of the RVV types decorated by | |
13262 | the attributes. | |
13263 | ||
13264 | 2024-03-22 Andrew Pinski <quic_apinski@quicinc.com> | |
13265 | ||
13266 | PR c/109619 | |
13267 | * builtins.cc (fold_builtin_1): Use error_operand_p | |
13268 | instead of checking against ERROR_MARK. | |
13269 | (fold_builtin_2): Likewise. | |
13270 | (fold_builtin_3): Likewise. | |
13271 | ||
13272 | 2024-03-22 Jakub Jelinek <jakub@redhat.com> | |
13273 | ||
13274 | PR sanitizer/111736 | |
13275 | * ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid | |
13276 | SANITIZE_NULL instrumentation for non-generic address spaces | |
13277 | for which targetm.addr_space.zero_address_valid (as) is true. | |
13278 | ||
13279 | 2024-03-22 Jakub Jelinek <jakub@redhat.com> | |
13280 | ||
13281 | PR tree-optimization/114405 | |
13282 | * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): | |
13283 | Set rprec to limb_prec rather than 0 if tprec is divisible by | |
13284 | limb_prec. In the last bf_cur handling, set rprec to (tprec + bo_bit) | |
13285 | % limb_prec rather than tprec % limb_prec and use just rprec instead | |
13286 | of rprec + bo_bit. For build_bit_field_ref offset, divide | |
13287 | (tprec + bo_bit) by limb_prec rather than just tprec. | |
13288 | ||
13289 | 2024-03-22 Christoph Müllner <christoph.muellner@vrull.eu> | |
13290 | ||
13291 | PR target/114194 | |
13292 | * config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC. | |
13293 | Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR. | |
13294 | ||
13295 | 2024-03-22 Jeff Law <jlaw@ventanamicro.com> | |
13296 | ||
13297 | * config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack | |
13298 | tie for scalable and final stack adjustment if needed. | |
13299 | Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com> | |
13300 | ||
13301 | 2024-03-22 Pan Li <pan2.li@intel.com> | |
13302 | ||
13303 | PR target/114352 | |
13304 | * common/config/riscv/riscv-common.cc (struct riscv_func_target_info): | |
13305 | New struct for func decl and target name. | |
13306 | (struct riscv_func_target_hasher): New hasher for hash table mapping | |
13307 | from the fn_decl to fn_target_name. | |
13308 | (riscv_func_decl_hash): New func to compute the hash for fn_decl. | |
13309 | (riscv_func_target_hasher::hash): New func to impl hash interface. | |
13310 | (riscv_func_target_hasher::equal): New func to impl equal interface. | |
13311 | (riscv_cmdline_subset_list): New static var for cmdline subset list. | |
13312 | (riscv_func_target_table_lazy_init): New func to lazy init the func | |
13313 | target hash table. | |
13314 | (riscv_func_target_get): New func to get target name from hash table. | |
13315 | (riscv_func_target_put): New func to put target name into hash table. | |
13316 | (riscv_func_target_remove_and_destory): New func to remove target | |
13317 | info from the hash table and destory it. | |
13318 | (riscv_parse_arch_string): Set the static var cmdline_subset_list. | |
13319 | * config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static | |
13320 | var for cmdline subset list. | |
13321 | (riscv_func_target_get): New func decl. | |
13322 | (riscv_func_target_put): Ditto. | |
13323 | (riscv_func_target_remove_and_destory): Ditto. | |
13324 | * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): | |
13325 | Take cmdline_subset_list instead of current_subset_list when clone. | |
13326 | (riscv_process_target_attr): Record the func target info to hash table. | |
13327 | (riscv_option_valid_attribute_p): Add new arg tree fndel. | |
13328 | * config/riscv/riscv.cc (riscv_declare_function_name): Consume the | |
13329 | func target info and print the arch message. | |
13330 | ||
13331 | 2024-03-22 Pan Li <pan2.li@intel.com> | |
13332 | ||
13333 | PR target/114352 | |
13334 | * common/config/riscv/riscv-common.cc (riscv_subset_list::parse): | |
13335 | Replace implied, combine and check to func finalize. | |
13336 | (riscv_subset_list::finalize): New func impl to take care of | |
13337 | implied, combine ext and related checks. | |
13338 | * config/riscv/riscv-subset.h: Add func decl for finalize. | |
13339 | * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): | |
13340 | Finalize the ext before return succeed. | |
13341 | * config/riscv/riscv.cc (riscv_set_current_function): Reinit the | |
13342 | machine mode before when set cur function. | |
13343 | ||
13344 | 2024-03-21 Andrew Stubbs <ams@baylibre.com> | |
13345 | ||
13346 | * config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction. | |
13347 | ||
13348 | 2024-03-21 Andrew Stubbs <ams@baylibre.com> | |
13349 | ||
13350 | * config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode. | |
13351 | ||
13352 | 2024-03-21 Andrew Stubbs <ams@baylibre.com> | |
13353 | ||
13354 | * config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each | |
13355 | device_malloc call. | |
13356 | ||
13357 | 2024-03-21 liuhongt <hongtao.liu@intel.com> | |
13358 | ||
13359 | PR tree-optimization/114396 | |
13360 | * tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype | |
13361 | and true to wi::from_mpz. | |
13362 | ||
13363 | 2024-03-21 Richard Biener <rguenther@suse.de> | |
13364 | ||
13365 | PR tree-optimization/111736 | |
13366 | * asan.cc (instrument_derefs): Do not instrument accesses | |
13367 | to non-generic address-spaces. | |
13368 | ||
13369 | 2024-03-21 Richard Biener <rguenther@suse.de> | |
13370 | ||
13371 | PR tree-optimization/113727 | |
13372 | * tree-sra.cc (analyze_access_subtree): Do not allow | |
13373 | replacements in subtrees when grp_partial_lhs. | |
13374 | ||
13375 | 2024-03-21 liuhongt <hongtao.liu@intel.com> | |
13376 | ||
13377 | PR middle-end/114347 | |
13378 | * doc/invoke.texi: Document -fexcess-precision=16. | |
13379 | ||
13380 | 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com> | |
13381 | ||
13382 | * config/bpf/core-builtins.cc (bpf_core_get_index): Check if | |
13383 | field contains a DECL_NAME. | |
13384 | ||
13385 | 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com> | |
13386 | ||
13387 | * config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code. | |
13388 | Add assert to validate the string is set. | |
13389 | * config/bpf/core-builtins.cc (cr_final): Make string struct | |
13390 | field as const. | |
13391 | (process_enum_value): Correct for field type change. | |
13392 | (process_type): Set access string to "0". | |
13393 | ||
13394 | 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com> | |
13395 | ||
13396 | * config/bpf/core-builtins.cc (core_field_info): Add | |
13397 | support for POINTER_PLUS_EXPR in the root of the field expression. | |
13398 | (bpf_core_get_index): Likewise. | |
13399 | (pack_field_expr): Make the BTF type to point to the structure | |
13400 | related node, instead of its pointer type. | |
13401 | (make_core_safe_access_index): Correct to new code. | |
13402 | ||
13403 | 2024-03-20 Xi Ruoyao <xry111@xry111.site> | |
13404 | ||
13405 | PR target/114407 | |
13406 | * config/loongarch/loongarch-opts.cc (loongarch_config_target): | |
13407 | Fix typo in diagnostic message, enabing -> enabling. | |
13408 | ||
13409 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13410 | ||
13411 | PR target/114175 | |
13412 | * config/visium/visium.cc (visium_setup_incoming_varargs): Only skip | |
13413 | TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13414 | if arg.type is NULL. | |
13415 | ||
13416 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13417 | ||
13418 | PR target/114175 | |
13419 | * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip | |
13420 | nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13421 | if arg.type is NULL. | |
13422 | ||
13423 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13424 | ||
13425 | PR target/114175 | |
13426 | * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip | |
13427 | function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13428 | if arg.type is NULL. | |
13429 | ||
13430 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13431 | ||
13432 | PR target/114175 | |
13433 | * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip | |
13434 | function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13435 | if arg.type is NULL. | |
13436 | ||
13437 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13438 | ||
13439 | PR target/114175 | |
13440 | * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip | |
13441 | function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13442 | if arg.type is NULL. | |
13443 | ||
13444 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13445 | ||
13446 | PR target/114175 | |
13447 | * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only | |
13448 | skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13449 | if arg.type is NULL. | |
13450 | ||
13451 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13452 | ||
13453 | PR target/114175 | |
13454 | * config/csky/csky.cc (csky_setup_incoming_varargs): Only skip | |
13455 | csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13456 | if arg.type is NULL. | |
13457 | ||
13458 | 2024-03-20 Yury Khrustalev <yury.khrustalev@arm.com> | |
13459 | ||
13460 | * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. | |
13461 | ||
13462 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13463 | ||
13464 | PR tree-optimization/114365 | |
13465 | * gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding | |
13466 | a PHI node, set iv2 to its result afterwards. | |
13467 | ||
13468 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13469 | ||
13470 | * tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo: | |
13471 | probabbility -> probability. | |
13472 | (ch_base::copy_headers): Fix comment typo: itrations -> iterations. | |
13473 | ||
13474 | 2024-03-20 Jakub Jelinek <jakub@redhat.com> | |
13475 | ||
13476 | PR bootstrap/114369 | |
13477 | * system.h (vec_step): Define to vec_step_ when compiling | |
13478 | with clang on PowerPC. | |
13479 | ||
13480 | 2024-03-20 demin.han <demin.han@starfivetech.com> | |
13481 | ||
13482 | PR target/112651 | |
13483 | * config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename | |
13484 | (enum rvv_max_lmul_enum): Ditto | |
13485 | (TARGET_MAX_LMUL): Ditto | |
13486 | * config/riscv/riscv-v.cc (preferred_simd_mode): Ditto | |
13487 | * config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto | |
13488 | (costs::better_main_loop_than_p): Ditto | |
13489 | * config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul | |
13490 | ||
13491 | 2024-03-20 Richard Biener <rguenther@suse.de> | |
13492 | ||
13493 | PR middle-end/113396 | |
13494 | * tree-dfa.cc (get_ref_base_and_extent): Use index range | |
13495 | bounds only if they fit within the address-range constraints | |
13496 | of offset_int. | |
13497 | ||
13498 | 2024-03-20 Chenghui Pan <panchenghui@loongson.cn> | |
13499 | ||
13500 | * config/loongarch/loongarch.cc | |
13501 | (loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and | |
13502 | UNITS_PER_FPREG macros. | |
13503 | (loongarch_hard_regno_nregs): Ditto. | |
13504 | (loongarch_class_max_nregs): Ditto. | |
13505 | (loongarch_get_separate_components): Ditto. | |
13506 | (loongarch_process_components): Ditto. | |
13507 | * config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto. | |
13508 | (UNITS_PER_HWFPVALUE): Ditto. | |
13509 | (UNITS_PER_FPVALUE): Ditto. | |
13510 | ||
13511 | 2024-03-20 Chenghui Pan <panchenghui@loongson.cn> | |
13512 | ||
13513 | * config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove checking | |
13514 | of loongarch_expand_vec_cmp()'s return value. | |
13515 | (vec_cmpu<ILASX:mode><mode256_i>): Ditto. | |
13516 | * config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Ditto. | |
13517 | (vec_cmpu<ILSX:mode><mode_i>): Ditto. | |
13518 | * config/loongarch/loongarch-protos.h | |
13519 | (loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return | |
13520 | type from bool to void. | |
13521 | * config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto. | |
13522 | ||
13523 | 2024-03-20 Chenghui Pan <panchenghui@loongson.cn> | |
13524 | ||
13525 | * config/loongarch/loongarch-protos.h | |
13526 | (loongarch_cfun_has_cprestore_slot_p): Delete. | |
13527 | (loongarch_adjust_insn_length): Delete. | |
13528 | (current_section_name): Delete. | |
13529 | (loongarch_split_symbol_type): Delete. | |
13530 | * config/loongarch/loongarch.cc | |
13531 | (loongarch_case_values_threshold): Delete. | |
13532 | (loongarch_spill_class): Delete. | |
13533 | (TARGET_OPTAB_SUPPORTED_P): Delete. | |
13534 | (TARGET_CASE_VALUES_THRESHOLD): Delete. | |
13535 | (TARGET_SPILL_CLASS): Delete. | |
13536 | ||
13537 | 2024-03-20 Lewis Hyatt <lhyatt@gmail.com> | |
13538 | ||
13539 | PR c++/111918 | |
13540 | * diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag. | |
13541 | * diagnostic.cc (diagnostic_option_classifier::classify_diagnostic): | |
13542 | Make use of DK_ANY to indicate a diagnostic was initially enabled. | |
13543 | (diagnostic_context::diagnostic_enabled): Do not change the type of | |
13544 | a diagnostic if the saved classification is type DK_ANY. | |
13545 | ||
13546 | 2024-03-19 Martin Jambor <mjambor@suse.cz> | |
13547 | ||
13548 | PR ipa/108802 | |
13549 | PR ipa/114254 | |
13550 | * ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking | |
13551 | at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from | |
13552 | a pointer parameter. | |
13553 | (ipa_analyze_indirect_call_uses): Also recognize loads from a pointer | |
13554 | parameter, also recognize the case when pfn pointer is loaded in its | |
13555 | own BB. | |
13556 | ||
13557 | 2024-03-19 Vladimir N. Makarov <vmakarov@redhat.com> | |
13558 | ||
13559 | PR target/99829 | |
13560 | * lra-constraints.cc (lra_constraints): Prevent removing insn | |
13561 | with reverse equivalence to memory if the memory was reloaded. | |
13562 | ||
13563 | 2024-03-19 David Malcolm <dmalcolm@redhat.com> | |
13564 | ||
13565 | PR middle-end/114348 | |
13566 | * diagnostic-format-json.cc | |
13567 | (json_stderr_output_format::machine_readable_stderr_p): New. | |
13568 | (json_file_output_format::machine_readable_stderr_p): New. | |
13569 | * diagnostic-format-sarif.cc | |
13570 | (sarif_stream_output_format::machine_readable_stderr_p): New. | |
13571 | (sarif_file_output_format::machine_readable_stderr_p): New. | |
13572 | * diagnostic.cc (diagnostic_context::action_after_output): Move | |
13573 | "fnotice" to before "finish" call, so that we still have the | |
13574 | diagnostic_context. | |
13575 | (fnotice): Bail out if the user requested one of the | |
13576 | machine-readable diagnostic output formats on stderr. | |
13577 | * diagnostic.h | |
13578 | (diagnostic_output_format::machine_readable_stderr_p): New pure | |
13579 | virtual function. | |
13580 | (diagnostic_text_output_format::machine_readable_stderr_p): New. | |
13581 | (diagnostic_context::get_output_format): New accessor. | |
13582 | ||
13583 | 2024-03-19 Edwin Lu <ewlu@rivosinc.com> | |
13584 | ||
13585 | PR target/114175 | |
13586 | * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip | |
13587 | riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13588 | if arg.type is NULL | |
13589 | ||
13590 | 2024-03-19 Jonathan Wakely <jwakely@redhat.com> | |
13591 | ||
13592 | * doc/install.texi (Prerequisites): Document use of autogen for | |
13593 | libstdc++. | |
13594 | ||
13595 | 2024-03-19 Richard Biener <rguenther@suse.de> | |
13596 | ||
13597 | PR tree-optimization/114151 | |
13598 | PR tree-optimization/114269 | |
13599 | PR tree-optimization/114322 | |
13600 | PR tree-optimization/114074 | |
13601 | * tree-chrec.cc (chrec_fold_multiply): Restrict the use of | |
13602 | unsigned arithmetic when actual overflow on constant operands | |
13603 | is observed. | |
13604 | ||
13605 | 2024-03-19 Jakub Jelinek <jakub@redhat.com> | |
13606 | ||
13607 | PR target/114175 | |
13608 | * config/arc/arc.cc (arc_setup_incoming_varargs): Only skip | |
13609 | arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13610 | if arg.type is NULL. | |
13611 | ||
13612 | 2024-03-19 Xi Ruoyao <xry111@xry111.site> | |
13613 | ||
13614 | PR target/114175 | |
13615 | * config/loongarch/loongarch.cc | |
13616 | (loongarch_setup_incoming_varargs): Only skip | |
13617 | loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P | |
13618 | functions if arg.type is NULL. | |
13619 | ||
13620 | 2024-03-19 Christophe Lyon <christophe.lyon@linaro.org> | |
13621 | ||
13622 | PR target/114323 | |
13623 | * config/arm/arm-mve-builtins.cc | |
13624 | (function_instance::reads_global_state_p): Take CP_READ_MEMORY | |
13625 | into account. | |
13626 | ||
13627 | 2024-03-19 Jakub Jelinek <jakub@redhat.com> | |
13628 | ||
13629 | PR target/114175 | |
13630 | * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip | |
13631 | function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13632 | if arg.type is NULL. | |
13633 | ||
13634 | 2024-03-19 Jakub Jelinek <jakub@redhat.com> | |
13635 | ||
13636 | PR target/114175 | |
13637 | * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip | |
13638 | rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13639 | if arg.type is NULL. | |
13640 | ||
13641 | 2024-03-19 Richard Biener <rguenther@suse.de> | |
13642 | ||
13643 | PR tree-optimization/114375 | |
13644 | * tree-vect-slp.cc (vect_build_slp_tree_2): Compute the | |
13645 | load permutation for masked loads but reject it when any | |
13646 | such is necessary. | |
13647 | * tree-vect-stmts.cc (vectorizable_load): Reject masked | |
13648 | VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not | |
13649 | supported. | |
13650 | ||
13651 | 2024-03-19 Mary Bennett <mary.bennett@embecosm.com> | |
13652 | ||
13653 | * common/config/riscv/riscv-common.cc: Create XCVbi extension | |
13654 | support. | |
13655 | * config/riscv/riscv.opt: Likewise. | |
13656 | * config/riscv/corev.md: Implement cv_branch<mode> pattern | |
13657 | for cv.beqimm and cv.bneimm. | |
13658 | * config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V | |
13659 | branch instruction pattern. | |
13660 | * config/riscv/constraints.md: Implement constraints | |
13661 | cv_bi_s5 - signed 5-bit immediate. | |
13662 | * config/riscv/predicates.md: Implement predicate | |
13663 | const_int5s_operand - signed 5 bit immediate. | |
13664 | * doc/sourcebuild.texi: Add XCVbi documentation. | |
13665 | ||
13666 | 2024-03-19 Chen Jiawei <jiawei@iscas.ac.cn> | |
13667 | ||
13668 | * config/riscv/riscv-cores.def (RISCV_TUNE): New def. | |
13669 | (RISCV_CORE): Ditto. | |
13670 | * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New | |
13671 | option. | |
13672 | * config/riscv/riscv.cc: New def. | |
13673 | * config/riscv/riscv.md: New include. | |
13674 | * config/riscv/xiangshan.md: New file. | |
13675 | ||
13676 | 2024-03-18 David Malcolm <dmalcolm@redhat.com> | |
13677 | ||
13678 | PR analyzer/110902 | |
13679 | PR analyzer/110928 | |
13680 | PR analyzer/111305 | |
13681 | PR analyzer/111441 | |
13682 | * selftest.h (ASSERT_NE_AT): New macro. | |
13683 | ||
13684 | 2024-03-18 Uros Bizjak <ubizjak@gmail.com> | |
13685 | ||
13686 | PR target/111822 | |
13687 | * config/i386/i386-features.cc (smode_convert_cst): New function | |
13688 | to handle SImode, DImode and TImode immediates, generalized from | |
13689 | timode_convert_cst. | |
13690 | (timode_convert_cst): Remove. | |
13691 | (scalar_chain::convert_op): Unify from | |
13692 | general_scalar_chain::convert_op and timode_scalar_chain::convert_op. | |
13693 | (general_scalar_chain::convert_op): Remove. | |
13694 | (timode_scalar_chain::convert_op): Remove. | |
13695 | (timode_scalar_chain::convert_insn): Update the call to | |
13696 | renamed timode_convert_cst. | |
13697 | * config/i386/i386-features.h (class scalar_chain): | |
13698 | Redeclare convert_op as protected class member. | |
13699 | (class general_calar_chain): Remove convert_op. | |
13700 | (class timode_scalar_chain): Ditto. | |
13701 | ||
13702 | 2024-03-18 Jan Hubicka <jh@suse.cz> | |
13703 | ||
13704 | * config/i386/zn4zn5.md: Add file missed in the previous commit. | |
13705 | ||
13706 | 2024-03-18 Jan Hubicka <jh@suse.cz> | |
13707 | Karthiban Anbazhagan <Karthiban.Anbazhagan@amd.com> | |
13708 | ||
13709 | * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5. | |
13710 | * common/config/i386/i386-common.cc (processor_names): Add znver5. | |
13711 | (processor_alias_table): Likewise. | |
13712 | * common/config/i386/i386-cpuinfo.h (processor_types): Add new zen | |
13713 | family. | |
13714 | (processor_subtypes): Add znver5. | |
13715 | * config.gcc (x86_64-*-* |...): Likewise. | |
13716 | * config/i386/driver-i386.cc (host_detect_local_cpu): Let | |
13717 | march=native detect znver5 cpu's. | |
13718 | * config/i386/i386-c.cc (ix86_target_macros_internal): Add | |
13719 | znver5. | |
13720 | * config/i386/i386-options.cc (m_ZNVER5): New definition | |
13721 | (processor_cost_table): Add znver5. | |
13722 | * config/i386/i386.cc (ix86_reassociation_width): Likewise. | |
13723 | * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5 | |
13724 | (PTA_ZNVER5): New definition. | |
13725 | * config/i386/i386.md (define_attr "cpu"): Add znver5. | |
13726 | (Scheduling descriptions) Add znver5.md. | |
13727 | * config/i386/x86-tune-costs.h (znver5_cost): New definition. | |
13728 | * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5. | |
13729 | (ix86_adjust_cost): Likewise. | |
13730 | * config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5. | |
13731 | (avx512_store_by_pieces): Add m_ZNVER5. | |
13732 | * doc/extend.texi: Add znver5. | |
13733 | * doc/invoke.texi: Likewise. | |
13734 | * config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler. | |
13735 | ||
13736 | 2024-03-18 Georg-Johann Lay <avr@gjlay.de> | |
13737 | ||
13738 | * config/avr/constraints.md (CX2, CX3, CX4): New constraints. | |
13739 | * config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto. | |
13740 | * config/avr/avr.cc (avr_xor_noclobber_dconst): New function. | |
13741 | * config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative. | |
13742 | (xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative. | |
13743 | (xorsi3, *xorsi3): Add "d,0,CX4,X" alternative. | |
13744 | ||
13745 | 2024-03-18 liuhongt <hongtao.liu@intel.com> | |
13746 | ||
13747 | PR target/114334 | |
13748 | * config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF. | |
13749 | (MODEF248): New mode iterator. | |
13750 | (ssevecmodesuffix): Hanlde BF and HF. | |
13751 | * config/i386/sse.md (andnot<mode>3): Extend to HF/BF. | |
13752 | (<code><mode>3): Ditto. | |
13753 | ||
13754 | 2024-03-18 John David Anglin <danglin@gcc.gnu.org> | |
13755 | ||
13756 | PR rtl-optimization/112415 | |
13757 | * config/pa/pa.cc (pa_emit_move_sequence): Revise condition | |
13758 | for symbolic memory operands. | |
13759 | (pa_legitimate_address_p): Revise LO_SUM condition. | |
13760 | * config/pa/pa.h (INT14_OK_STRICT): Revise define. Move | |
13761 | comment about GNU linker to predicates.md. | |
13762 | * config/pa/predicates.md (floating_point_store_memory_operand): | |
13763 | Revise condition for symbolic memory operands. Update | |
13764 | comment. | |
13765 | ||
13766 | 2024-03-17 John David Anglin <danglin@gcc.gnu.org> | |
13767 | ||
13768 | * config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP. | |
13769 | ||
13770 | 2024-03-16 Jakub Jelinek <jakub@redhat.com> | |
13771 | ||
13772 | PR target/114175 | |
13773 | * config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip | |
13774 | ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions | |
13775 | if arg.type is NULL. | |
13776 | ||
13777 | 2024-03-16 Jakub Jelinek <jakub@redhat.com> | |
13778 | ||
13779 | PR tree-optimization/114329 | |
13780 | * gimple-lower-bitint.cc (struct bitint_large_huge): Declare | |
13781 | build_bit_field_ref method. | |
13782 | (bitint_large_huge::build_bit_field_ref): New method. | |
13783 | (bitint_large_huge::lower_mergeable_stmt): Use it. | |
13784 | ||
13785 | 2024-03-15 YunQiang Su <syq@gcc.gnu.org> | |
13786 | ||
13787 | * config/riscv/riscv.opt.urls: Regenerated. | |
13788 | * config/rs6000/sysv4.opt.urls: Likewise. | |
13789 | * config/xtensa/xtensa.opt.urls: Likewise. | |
13790 | ||
13791 | 2024-03-15 Jakub Jelinek <jakub@redhat.com> | |
13792 | ||
13793 | * lower-subreg.cc (resolve_simple_move): Fix comment typo, | |
13794 | betwee -> between. | |
13795 | * edit-context.cc (class line_event): Fix comment typo, | |
13796 | betweeen -> between. | |
13797 | ||
13798 | 2024-03-15 Jakub Jelinek <jakub@redhat.com> | |
13799 | ||
13800 | PR target/114339 | |
13801 | * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) <case LE>: Fix | |
13802 | a pasto, compare code against LE rather than GE. | |
13803 | ||
13804 | 2024-03-15 Joe Ramsay <Joe.Ramsay@arm.com> | |
13805 | ||
13806 | * match.pd: Fix truncation pattern for -fno-signed-zeroes | |
13807 | ||
13808 | 2024-03-15 Jakub Jelinek <jakub@redhat.com> | |
13809 | ||
13810 | PR middle-end/114332 | |
13811 | * expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results. | |
13812 | ||
13813 | 2024-03-15 Jakub Jelinek <jakub@redhat.com> | |
13814 | ||
13815 | PR tree-optimization/113466 | |
13816 | * gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls | |
13817 | member. | |
13818 | (bitint_large_huge::bitint_large_huge): Initialize it. | |
13819 | (bitint_large_huge::~bitint_large_huge): Release it. | |
13820 | (bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts | |
13821 | before which at least one statement has been inserted. | |
13822 | (gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE | |
13823 | calls to a different block and add corresponding PHIs. | |
13824 | ||
13825 | 2024-03-15 YunQiang Su <syq@gcc.gnu.org> | |
13826 | ||
13827 | * config/mips/mips.opt: Support -mstrict-align, and use | |
13828 | TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access | |
13829 | as alias. | |
13830 | * config/mips/mips.h: Use TARGET_STRICT_ALIGN. | |
13831 | * config/mips/mips.opt.urls: Regenerate. | |
13832 | * doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6. | |
13833 | ||
13834 | 2024-03-15 Tejas Belagod <tejas.belagod@arm.com> | |
13835 | ||
13836 | PR middle-end/114108 | |
13837 | * tree-vect-patterns.cc (vect_recog_abd_pattern): Call | |
13838 | vect_convert_output with the correct vecitype. | |
13839 | ||
13840 | 2024-03-15 Chenghui Pan <panchenghui@loongson.cn> | |
13841 | ||
13842 | * config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>): | |
13843 | Remove masking of operand 3. | |
13844 | ||
13845 | 2024-03-14 Jason Merrill <jason@redhat.com> | |
13846 | ||
13847 | * tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_* | |
13848 | comments. | |
13849 | ||
13850 | 2024-03-14 John David Anglin <danglin@gcc.gnu.org> | |
13851 | ||
13852 | PR target/114288 | |
13853 | * config/pa/pa.cc (pa_legitimate_address_p): Don't allow | |
13854 | 14-bit displacements before reload for modes that may use | |
13855 | a floating-point load or store. | |
13856 | ||
13857 | 2024-03-14 David Faust <david.faust@oracle.com> | |
13858 | ||
13859 | * config/bpf/bpf.h (INT8_TYPE): Change to signed char. | |
13860 | ||
13861 | 2024-03-14 Max Filippov <jcmvbkbc@gmail.com> | |
13862 | ||
13863 | * config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i | |
13864 | patterns ahead of the l32i.n and s32i.n. | |
13865 | ||
13866 | 2024-03-14 Jakub Jelinek <jakub@redhat.com> | |
13867 | ||
13868 | * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo. | |
13869 | ||
13870 | 2024-03-14 Jakub Jelinek <jakub@redhat.com> | |
13871 | ||
13872 | PR middle-end/113907 | |
13873 | * ipa-icf.cc (sem_item_optimizer::merge_classes): Reset | |
13874 | SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged | |
13875 | functions. | |
13876 | ||
13877 | 2024-03-14 Xi Ruoyao <xry111@xry111.site> | |
13878 | ||
13879 | * config/loongarch/loongarch.md (any_ge): Remove. | |
13880 | (sge<u>_<X:mode><GPR:mode>): Remove. | |
13881 | ||
13882 | 2024-03-14 Jakub Jelinek <jakub@redhat.com> | |
13883 | ||
13884 | PR target/114310 | |
13885 | * config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For | |
13886 | TImode force newval into a register. | |
13887 | ||
13888 | 2024-03-14 Chung-Lin Tang <cltang@baylibre.com> | |
13889 | ||
13890 | * tree.h (OMP_CLAUSE_MAP_READONLY): New macro. | |
13891 | (OMP_CLAUSE__CACHE__READONLY): New macro. | |
13892 | * tree-core.h (struct GTY(()) tree_base): Adjust comments for new | |
13893 | uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and | |
13894 | OMP_CLAUSE__CACHE__READONLY. | |
13895 | * tree-pretty-print.cc (dump_omp_clause): Add support for printing | |
13896 | OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY. | |
13897 | ||
13898 | 2024-03-14 Andreas Krebbel <krebbel@linux.ibm.com> | |
13899 | ||
13900 | * config/s390/s390.cc (s390_encode_section_info): Adjust the check | |
13901 | for misaligned symbols. | |
13902 | * config/s390/s390.opt: Improve documentation. | |
13903 | ||
13904 | 2024-03-14 Jakub Jelinek <jakub@redhat.com> | |
13905 | ||
13906 | * gimple-iterator.cc (edge_before_returns_twice_call): Copy all | |
13907 | flags and probability from ad_edge to e edge. If CDI_DOMINATORS | |
13908 | are computed, recompute immediate dominator of other_edge->src | |
13909 | and other_edge->dest. | |
13910 | (gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter | |
13911 | for the returns_twice call case to the gsi_for_stmt (stmt) to deal | |
13912 | with update it for bb splitting. | |
13913 | ||
13914 | 2024-03-14 liuhongt <hongtao.liu@intel.com> | |
13915 | ||
13916 | * config/i386/i386-features.cc | |
13917 | (general_scalar_chain::convert_op): Handle REG_EH_REGION note. | |
13918 | (convert_scalars_to_vector): Ditto. | |
13919 | * config/i386/i386-features.h (class scalar_chain): New | |
13920 | memeber control_flow_insns. | |
13921 | ||
13922 | 2024-03-13 Jakub Jelinek <jakub@redhat.com> | |
13923 | ||
13924 | PR middle-end/114319 | |
13925 | * gimple-ssa-store-merging.cc | |
13926 | (imm_store_chain_info::try_coalesce_bswap): For 32-bit targets | |
13927 | allow matching __builtin_bswap64 if there is bswapsi2 optab. | |
13928 | ||
13929 | 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
13930 | ||
13931 | * config/s390/s390.cc (s390_secondary_reload): Guard | |
13932 | SYMBOL_FLAG_NOTALIGN2_P. | |
13933 | ||
13934 | 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
13935 | ||
13936 | * config/s390/s390-builtin-types.def: Update to reflect latest | |
13937 | changes. | |
13938 | * config/s390/s390-builtins.def: Streamline vector builtins with | |
13939 | LLVM. | |
13940 | ||
13941 | 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
13942 | ||
13943 | * config/s390/s390-builtins.def (vec_permi): Deprecate. | |
13944 | (vec_ctd): Deprecate. | |
13945 | (vec_ctd_s64): Deprecate. | |
13946 | (vec_ctd_u64): Deprecate. | |
13947 | (vec_ctsl): Deprecate. | |
13948 | (vec_ctul): Deprecate. | |
13949 | (vec_ld2f): Deprecate. | |
13950 | (vec_st2f): Deprecate. | |
13951 | (vec_insert): Deprecate overloads with bool vectors. | |
13952 | ||
13953 | 2024-03-13 Jakub Jelinek <jakub@redhat.com> | |
13954 | ||
13955 | PR middle-end/114313 | |
13956 | * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use | |
13957 | TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type. | |
13958 | (bitint_large_huge::handle_load): Pass NULL_TREE rather than | |
13959 | rhs_type to limb_access for the bitfield load cases. | |
13960 | (bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than | |
13961 | lhs_type to limb_access if nlhs is non-NULL. | |
13962 | ||
13963 | 2024-03-13 Jakub Jelinek <jakub@redhat.com> | |
13964 | ||
13965 | PR sanitizer/112709 | |
13966 | * asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode, | |
13967 | build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use | |
13968 | gsi_safe_insert_before instead of gsi_insert_before. | |
13969 | ||
13970 | 2024-03-13 Jakub Jelinek <jakub@redhat.com> | |
13971 | ||
13972 | PR sanitizer/112709 | |
13973 | * gimple-iterator.h (gsi_safe_insert_before, | |
13974 | gsi_safe_insert_seq_before): Declare. | |
13975 | * gimple-iterator.cc: Include gimplify.h. | |
13976 | (edge_before_returns_twice_call, adjust_before_returns_twice_call, | |
13977 | gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions. | |
13978 | * ubsan.cc (instrument_mem_ref, instrument_pointer_overflow, | |
13979 | instrument_nonnull_arg, instrument_nonnull_return): Use | |
13980 | gsi_safe_insert_before instead of gsi_insert_before. | |
13981 | (maybe_instrument_pointer_overflow): Use force_gimple_operand, | |
13982 | gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before | |
13983 | instead of force_gimple_operand_gsi. | |
13984 | (instrument_object_size): Likewise. Use gsi_safe_insert_before | |
13985 | instead of gsi_insert_before. | |
13986 | ||
13987 | 2024-03-12 Richard Biener <rguenther@suse.de> | |
13988 | ||
13989 | PR tree-optimization/114121 | |
13990 | * tree-chrec.cc (chrec_fold_plus_1): Guard recursion with | |
13991 | converted operand properly. | |
13992 | (chrec_fold_multiply): Likewise. Handle missed recursion. | |
13993 | ||
13994 | 2024-03-12 Jakub Jelinek <jakub@redhat.com> | |
13995 | ||
13996 | PR sanitizer/112709 | |
13997 | * asan.cc (has_stmt_been_instrumented_p): Don't instrument call | |
13998 | stores on the caller side unless it is a call to a builtin or | |
13999 | internal function or function doesn't return by hidden reference. | |
14000 | (maybe_instrument_call): Likewise. | |
14001 | (instrument_derefs): Instrument stores to RESULT_DECL if | |
14002 | returning by hidden reference. | |
14003 | ||
14004 | 2024-03-12 Jakub Jelinek <jakub@redhat.com> | |
14005 | ||
14006 | PR tree-optimization/114293 | |
14007 | * tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If | |
14008 | max is smaller than min, set max to ~(size_t)0. | |
14009 | ||
14010 | 2024-03-12 Pan Li <pan2.li@intel.com> | |
14011 | ||
14012 | * config/riscv/riscv-c.cc (riscv_ext_version_value): Fix | |
14013 | code style greater than 80 chars. | |
14014 | (riscv_cpu_cpp_builtins): Fix useless empty line, indent | |
14015 | with 3 space(s) and argument unalignment. | |
14016 | ||
14017 | 2024-03-12 Richard Biener <rguenther@suse.de> | |
14018 | ||
14019 | PR tree-optimization/114297 | |
14020 | * tree-vect-loop.cc (vectorizable_live_operation): Pass in the | |
14021 | live stmts SLP node to vect_create_epilog_for_reduction. | |
14022 | ||
14023 | 2024-03-12 Andrew Pinski <quic_apinski@quicinc.com> | |
14024 | ||
14025 | PR driver/114314 | |
14026 | * common.opt (fmultiflags): Add RejectNegative. | |
14027 | ||
14028 | 2024-03-11 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
14029 | ||
14030 | * config/aarch64/aarch64.md: Rename aarch_ to aarch64_. | |
14031 | * config/aarch64/aarch64.opt: Likewise. | |
14032 | * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise. | |
14033 | * config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise. | |
14034 | (aarch64_expand_epilogue): Likewise. | |
14035 | (aarch64_post_cfi_startproc): Likewise. | |
14036 | (aarch64_handle_no_branch_protection): Copy and rename. | |
14037 | (aarch64_handle_standard_branch_protection): Likewise. | |
14038 | (aarch64_handle_pac_ret_protection): Likewise. | |
14039 | (aarch64_handle_pac_ret_leaf): Likewise. | |
14040 | (aarch64_handle_pac_ret_b_key): Likewise. | |
14041 | (aarch64_handle_bti_protection): Likewise. | |
14042 | (aarch64_override_options): Update branch protection validation. | |
14043 | (aarch64_handle_attr_branch_protection): Likewise. | |
14044 | * config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection): | |
14045 | Pass branch protection type description as argument. | |
14046 | (struct aarch_branch_protect_type): Move from aarch-common.h. | |
14047 | * config/arm/aarch-common.cc (aarch_handle_no_branch_protection): | |
14048 | Remove. | |
14049 | (aarch_handle_standard_branch_protection): Remove. | |
14050 | (aarch_handle_pac_ret_protection): Remove. | |
14051 | (aarch_handle_pac_ret_leaf): Remove. | |
14052 | (aarch_handle_pac_ret_b_key): Remove. | |
14053 | (aarch_handle_bti_protection): Remove. | |
14054 | (aarch_validate_mbranch_protection): Pass branch protection type | |
14055 | description as argument. | |
14056 | * config/arm/aarch-common.h (enum aarch_key_type): Remove. | |
14057 | (struct aarch_branch_protect_type): Remove. | |
14058 | * config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key. | |
14059 | * config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename. | |
14060 | (arm_handle_standard_branch_protection): Likewise. | |
14061 | (arm_handle_pac_ret_protection): Likewise. | |
14062 | (arm_handle_pac_ret_leaf): Likewise. | |
14063 | (arm_handle_bti_protection): Likewise. | |
14064 | (arm_configure_build_target): Update branch protection validation. | |
14065 | * config/arm/arm.opt: Remove aarch_ra_sign_key. | |
14066 | ||
14067 | 2024-03-11 Richard Biener <rguenther@suse.de> | |
14068 | ||
14069 | PR middle-end/114299 | |
14070 | * gimplify.cc (internal_get_tmp_var): When gimplification | |
14071 | of VAL failed, return a decl. | |
14072 | ||
14073 | 2024-03-11 Jakub Jelinek <jakub@redhat.com> | |
14074 | ||
14075 | PR tree-optimization/114278 | |
14076 | * tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no | |
14077 | longer addressable, set DECL_NOT_GIMPLE_REG_P on them. | |
14078 | ||
14079 | 2024-03-11 Eric Botcazou <ebotcazou@adacore.com> | |
14080 | ||
14081 | PR debug/113519 | |
14082 | PR debug/113777 | |
14083 | * dwarf2out.cc (gen_enumeration_type_die): In the reverse case, | |
14084 | generate the DIE with the same parent as in the regular case. | |
14085 | ||
14086 | 2024-03-11 Andrew Pinski <quic_apinski@quicinc.com> | |
14087 | ||
14088 | PR middle-end/95351 | |
14089 | * fold-const.cc (merge_truthop_with_opposite_arm): Use | |
14090 | the type of the operands of the comparison and not the type | |
14091 | of the comparison. | |
14092 | ||
14093 | 2024-03-10 jlaw <jeffreyalaw@gmail.com> | |
14094 | ||
14095 | PR tree-optimization/110199 | |
14096 | * tree-ssa-scopedtables.cc | |
14097 | (avail_exprs_stack::simplify_binary_operation): Generalize handling | |
14098 | of MIN_EXPR/MAX_EXPR to allow additional simplifications. Canonicalize | |
14099 | comparison operands for other cases. | |
14100 | ||
14101 | 2024-03-10 Pan Li <pan2.li@intel.com> | |
14102 | ||
14103 | * tree-vect-stmts.cc (vectorizable_store): Enable the assert | |
14104 | during transform process. | |
14105 | (vectorizable_load): Ditto. | |
14106 | ||
14107 | 2024-03-10 jlaw <jeffreyalaw@gmail.com> | |
14108 | ||
14109 | PR target/102250 | |
14110 | * doc/install.texi: Document need for python when building | |
14111 | RISC-V compilers. | |
14112 | ||
14113 | 2024-03-10 jlaw <jeffreyalaw@gmail.com> | |
14114 | ||
14115 | PR target/111362 | |
14116 | * mode-switching.cc (optimize_mode_switching): Only process | |
14117 | NONDEBUG insns. | |
14118 | ||
14119 | 2024-03-09 Georg-Johann Lay <avr@gjlay.de> | |
14120 | ||
14121 | * config/avr/avr.md: Fix typos in comment, indentation glitches | |
14122 | and some other nits. | |
14123 | ||
14124 | 2024-03-09 Jakub Jelinek <jakub@redhat.com> | |
14125 | ||
14126 | PR target/114284 | |
14127 | * fwprop.cc (try_fwprop_subst_pattern): Don't propagate | |
14128 | src containing MEMs unless prop.likely_profitable_p (). | |
14129 | ||
14130 | 2024-03-09 Xi Ruoyao <xry111@xry111.site> | |
14131 | ||
14132 | * config/loongarch/loongarch.cc (loongarch_print_operand_reloc): | |
14133 | Support 'Q' for R_LARCH_RELAX for TLS IE. | |
14134 | (loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS | |
14135 | IE. | |
14136 | * config/loongarch/loongarch.md (ld_from_got<mode>): Likewise. | |
14137 | ||
14138 | 2024-03-09 Georg-Johann Lay <avr@gjlay.de> | |
14139 | ||
14140 | * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for | |
14141 | usum_widenqihi and add_zero_extend1. | |
14142 | [MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend, | |
14143 | sub+sign_extend. | |
14144 | * config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2): | |
14145 | Compute exact insn lengths. | |
14146 | (*usum_widenqihi3): Allow input operands to commute. | |
14147 | ||
14148 | 2024-03-09 Jakub Jelinek <jakub@redhat.com> | |
14149 | ||
14150 | * config/i386/i386.opt.urls: Regenerate. | |
14151 | ||
14152 | 2024-03-09 Lulu Cheng <chenglulu@loongson.cn> | |
14153 | ||
14154 | * config/loongarch/sync.md (atomic_cas_value_strong<mode>): | |
14155 | In loongarch64, a sign extension operation is added when | |
14156 | operands[2] is a register operand and the mode is SImode. | |
14157 | ||
14158 | 2024-03-08 Martin Jambor <mjambor@suse.cz> | |
14159 | ||
14160 | PR ipa/113757 | |
14161 | * tree-inline.cc (redirect_all_calls): Remove code adding SSAs to | |
14162 | id->killed_new_ssa_names. | |
14163 | ||
14164 | 2024-03-08 Vladimir N. Makarov <vmakarov@redhat.com> | |
14165 | ||
14166 | PR target/113790 | |
14167 | * lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos | |
14168 | for non-reload pseudo too. | |
14169 | ||
14170 | 2024-03-08 David Faust <david.faust@oracle.com> | |
14171 | ||
14172 | * config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do | |
14173 | not attempt inline expansion if size is above threshold. | |
14174 | * config/bpf/bpf.opt (-minline-memops-threshold): New option. | |
14175 | * doc/invoke.texi (eBPF Options) <-minline-memops-threshold>: | |
14176 | Document. | |
14177 | ||
14178 | 2024-03-08 Richard Biener <rguenther@suse.de> | |
14179 | ||
14180 | PR tree-optimization/114269 | |
14181 | PR tree-optimization/114074 | |
14182 | * tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions | |
14183 | in the third CASE_CONVERT case as well. | |
14184 | (chrec_fold_multiply): Handle sign-conversions from unsigned | |
14185 | by performing the operation in the unsigned type. | |
14186 | ||
14187 | 2024-03-08 Georg-Johann Lay <avr@gjlay.de> | |
14188 | ||
14189 | * config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern. | |
14190 | * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost. | |
14191 | ||
14192 | 2024-03-08 Jakub Jelinek <jakub@redhat.com> | |
14193 | ||
14194 | * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert, | |
14195 | asm_noperands < 0 means it is not asm goto too. | |
14196 | ||
14197 | 2024-03-08 Jakub Jelinek <jakub@redhat.com> | |
14198 | ||
14199 | PR target/38534 | |
14200 | * config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New | |
14201 | option. | |
14202 | * config/i386/i386-options.cc (ix86_set_func_type): Don't use | |
14203 | TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless | |
14204 | ix86_noreturn_no_callee_saved_registers is enabled. | |
14205 | * doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document. | |
14206 | ||
14207 | 2024-03-08 Jakub Jelinek <jakub@redhat.com> | |
14208 | ||
14209 | PR debug/113918 | |
14210 | * dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols | |
14211 | on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf. | |
14212 | ||
14213 | 2024-03-08 demin.han <demin.han@starfivetech.com> | |
14214 | ||
14215 | PR target/114264 | |
14216 | * config/riscv/riscv-vector-costs.cc: Fix ICE | |
14217 | ||
14218 | 2024-03-08 Haochen Gui <guihaoc@gcc.gnu.org> | |
14219 | ||
14220 | * fwprop.cc (forward_propagate_into): Return false for volatile set | |
14221 | source rtx. | |
14222 | ||
14223 | 2024-03-07 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
14224 | ||
14225 | PR target/113618 | |
14226 | * config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove. | |
14227 | (aarch64_expand_cpymem): Emit single load/store only. | |
14228 | (aarch64_set_one_block): Emit single stores only. | |
14229 | ||
14230 | 2024-03-07 Robin Dapp <rdapp@ventanamicro.com> | |
14231 | ||
14232 | PR middle-end/114196 | |
14233 | * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge | |
14234 | vectorization guards. | |
14235 | ||
14236 | 2024-03-07 Jonathan Wakely <jwakely@redhat.com> | |
14237 | ||
14238 | * doc/cppopts.texi: Remove incorrect claim about -dD not | |
14239 | outputting predefined macros. | |
14240 | ||
14241 | 2024-03-07 Jeevitha Palanisamy <jeevitha@linux.ibm.com> | |
14242 | ||
14243 | PR target/113950 | |
14244 | * config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1 | |
14245 | and simplify else if with else. | |
14246 | ||
14247 | 2024-03-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
14248 | ||
14249 | * system.h: Include safe-ctype.h after C++ standard headers. | |
14250 | ||
14251 | 2024-03-07 Jakub Jelinek <jakub@redhat.com> | |
14252 | ||
14253 | PR rtl-optimization/110079 | |
14254 | * bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust | |
14255 | asm goto. | |
14256 | ||
14257 | 2024-03-07 Jakub Jelinek <jakub@redhat.com> | |
14258 | ||
14259 | PR middle-end/105533 | |
14260 | * expmed.cc (choose_mult_variant): Only try the val - 1 variant | |
14261 | if val is not HOST_WIDE_INT_MIN or if mode has exactly | |
14262 | HOST_BITS_PER_WIDE_INT precision. Avoid triggering UB while computing | |
14263 | val - 1. | |
14264 | ||
14265 | 2024-03-07 Jakub Jelinek <jakub@redhat.com> | |
14266 | ||
14267 | PR middle-end/105533 | |
14268 | * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>: | |
14269 | Multiple op->off by BITS_PER_UNIT instead of shifting it left by | |
14270 | LOG2_BITS_PER_UNIT. | |
14271 | ||
14272 | 2024-03-07 Yang Yujie <yangyujie@loongson.cn> | |
14273 | ||
14274 | * config.gcc: Add a case for loongarch*-*-linux-musl*. | |
14275 | * config/loongarch/linux.h: Disable the multilib-compatible | |
14276 | treatment for *musl* targets. | |
14277 | * config/loongarch/musl.h: New file. | |
14278 | ||
14279 | 2024-03-07 Jakub Jelinek <jakub@redhat.com> | |
14280 | ||
14281 | PR tree-optimization/114009 | |
14282 | * genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures | |
14283 | argument even for GENERIC, not just for GIMPLE. | |
14284 | * match.pd (a * !a -> 0): New simplifications. | |
14285 | ||
14286 | 2024-03-07 demin.han <demin.han@starfivetech.com> | |
14287 | ||
14288 | * config/riscv/riscv-protos.h (expand_vec_cmp): Change proto | |
14289 | * config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments | |
14290 | (expand_vec_cmp_float): Adapt arguments | |
14291 | ||
14292 | 2024-03-06 Uros Bizjak <ubizjak@gmail.com> | |
14293 | ||
14294 | PR target/114232 | |
14295 | * config/i386/mmx.md (negv2qi2): Enable for optimize_size instead | |
14296 | of optimize_function_for_size_p. Explictily enable for TARGET_SSE2. | |
14297 | (negv2qi SSE reg splitter): Enable for TARGET_SSE2 only. | |
14298 | (<plusminus:insn>v2qi3): Enable for optimize_size instead | |
14299 | of optimize_function_for_size_p. Explictily enable for TARGET_SSE2. | |
14300 | (<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only. | |
14301 | (<any_shift:insn>v2qi3): Enable for optimize_size instead | |
14302 | of optimize_function_for_size_p. | |
14303 | ||
14304 | 2024-03-06 Robin Dapp <rdapp@ventanamicro.com> | |
14305 | ||
14306 | PR target/114200 | |
14307 | PR target/114202 | |
14308 | * config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v. | |
14309 | ||
14310 | 2024-03-06 Robin Dapp <rdapp@ventanamicro.com> | |
14311 | ||
14312 | * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move... | |
14313 | (costs::adjust_stmt_cost): ... to here and add vec_load/vec_store | |
14314 | offset handling. | |
14315 | (costs::add_stmt_cost): Also adjust cost for statements without | |
14316 | stmt_info. | |
14317 | * config/riscv/riscv-vector-costs.h: Define zero constant. | |
14318 | ||
14319 | 2024-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
14320 | ||
14321 | PR target/113915 | |
14322 | * config/arm/arm.md (NOCOND): Improve comment. | |
14323 | (arm_rev*) Add predicable. | |
14324 | * config/arm/arm.cc (arm_final_prescan_insn): Add check for | |
14325 | PREDICABLE_YES. | |
14326 | ||
14327 | 2024-03-06 Jeff Law <jlaw@ventanamicro.com> | |
14328 | ||
14329 | PR target/113001 | |
14330 | PR target/112871 | |
14331 | * config/riscv/riscv.cc (expand_conditional_move): Do not swap | |
14332 | operands when the comparison operand is the same as the false | |
14333 | arm for a NE test. | |
14334 | ||
14335 | 2024-03-06 Uros Bizjak <ubizjak@gmail.com> | |
14336 | ||
14337 | * config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]: | |
14338 | Eliminate common code and use generic code instead. | |
14339 | ||
14340 | 2024-03-06 Georg-Johann Lay <avr@gjlay.de> | |
14341 | ||
14342 | * config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust | |
14343 | rtx cost. | |
14344 | ||
14345 | 2024-03-06 Richard Biener <rguenther@suse.de> | |
14346 | ||
14347 | PR tree-optimization/114239 | |
14348 | * tree-vect-loop.cc (vect_get_vect_def): Remove. | |
14349 | (vect_create_epilog_for_reduction): The passed in stmt_info | |
14350 | should now be the live stmt that produces the scalar reduction | |
14351 | result. Revert PR114192 fix. Base reduction info off | |
14352 | info_for_reduction. Remove special handling of | |
14353 | early-break/peeled, restore original vector def gathering. | |
14354 | Make sure to pick the correct exit PHIs. | |
14355 | (vectorizable_live_operation): Pass in the proper stmt_info | |
14356 | for early break exits. | |
14357 | ||
14358 | 2024-03-06 Richard Sandiford <richard.sandiford@arm.com> | |
14359 | ||
14360 | * config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add | |
14361 | out-of-class definitions of static constants. | |
14362 | ||
14363 | 2024-03-06 Richard Biener <rguenther@suse.de> | |
14364 | ||
14365 | PR tree-optimization/114249 | |
14366 | * tree-vect-slp.cc (vect_build_slp_instance): Move making | |
14367 | a BB reduction lane number even ... | |
14368 | (vect_slp_check_for_roots): ... here to avoid leaking | |
14369 | pattern defs. | |
14370 | ||
14371 | 2024-03-06 Richard Biener <rguenther@suse.de> | |
14372 | ||
14373 | PR tree-optimization/114246 | |
14374 | * tree-ssa-dse.cc (increment_start_addr): Strip useless | |
14375 | type conversions from the adjusted address. | |
14376 | ||
14377 | 2024-03-06 Jakub Jelinek <jakub@redhat.com> | |
14378 | ||
14379 | PR rtl-optimization/114190 | |
14380 | * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper): | |
14381 | Call df_remove_problem for df_note before calling df_analyze. | |
14382 | ||
14383 | 2024-03-05 Cupertino Miranda <cupertino.miranda@oracle.com> | |
14384 | Indu Bhagat <indu.bhagat@oracle.com> | |
14385 | ||
14386 | PR debug/114186 | |
14387 | * dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array () | |
14388 | in the correct order of the dimensions. | |
14389 | (gen_ctf_subrange_type): Refactor out handling of | |
14390 | DW_TAG_subrange_type DIE to here. | |
14391 | ||
14392 | 2024-03-05 Richard Sandiford <richard.sandiford@arm.com> | |
14393 | ||
14394 | PR sanitizer/97696 | |
14395 | * asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int. | |
14396 | ||
14397 | 2024-03-05 Richard Sandiford <richard.sandiford@arm.com> | |
14398 | ||
14399 | * config/aarch64/aarch64.md (stride_type): Remove luti_consecutive | |
14400 | and luti_strided. | |
14401 | * config/aarch64/aarch64-sme.md | |
14402 | (@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute. | |
14403 | (@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete. | |
14404 | (@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise. | |
14405 | * config/aarch64/aarch64-early-ra.cc (is_stride_candidate) | |
14406 | (early_ra::maybe_convert_to_strided_access): Remove support for | |
14407 | strided LUTI2 and LUTI4. | |
14408 | ||
14409 | 2024-03-05 Richard Earnshaw <rearnsha@arm.com> | |
14410 | ||
14411 | PR target/113510 | |
14412 | * config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use | |
14413 | low_register_operand. | |
14414 | ||
14415 | 2024-03-05 Georg-Johann Lay <avr@gjlay.de> | |
14416 | ||
14417 | * config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND | |
14418 | in HI, PSI, SI that swap operation order from "X = CST, X o= Y" | |
14419 | to "X = Y, X o= CST". | |
14420 | ||
14421 | 2024-03-05 Xi Ruoyao <xry111@xry111.site> | |
14422 | ||
14423 | * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add | |
14424 | s9 as an alias of r22. | |
14425 | ||
14426 | 2024-03-05 Roger Sayle <roger@nextmovesoftware.com> | |
14427 | ||
14428 | * config/avr/avr-protos.h (avr_out_insv): New proto. | |
14429 | * config/avr/avr.cc (avr_out_insv): New function. | |
14430 | (avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case. | |
14431 | (avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs. | |
14432 | * config/avr/avr.md (define_attr "adjust_len") Add insv. | |
14433 | (andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3): | |
14434 | Add constraint alternative where the 3rd operand is a power | |
14435 | of 2, and the source register may differ from the destination. | |
14436 | (*insv.any_shift.<mode>_split): Call avr_out_insv to output | |
14437 | instructions. Set attr "length" to "insv". | |
14438 | * config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints. | |
14439 | ||
14440 | 2024-03-05 Richard Biener <rguenther@suse.de> | |
14441 | ||
14442 | PR tree-optimization/114231 | |
14443 | * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when | |
14444 | processing a BB SLP root. | |
14445 | ||
14446 | 2024-03-05 Jakub Jelinek <jakub@redhat.com> | |
14447 | ||
14448 | PR rtl-optimization/114211 | |
14449 | * lower-subreg.cc (resolve_simple_move): For double-word | |
14450 | rotates by BITS_PER_WORD if there is overlap between source | |
14451 | and destination use a temporary. | |
14452 | ||
14453 | 2024-03-05 Jakub Jelinek <jakub@redhat.com> | |
14454 | ||
14455 | PR middle-end/114157 | |
14456 | * gimple-lower-bitint.cc: Include stor-layout.h. | |
14457 | (mergeable_op): Return true for BIT_FIELD_REF. | |
14458 | (struct bitint_large_huge): Declare handle_bit_field_ref method. | |
14459 | (bitint_large_huge::handle_bit_field_ref): New method. | |
14460 | (bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF. | |
14461 | ||
14462 | 2024-03-05 Jakub Jelinek <jakub@redhat.com> | |
14463 | ||
14464 | PR target/114116 | |
14465 | * config/i386/i386.h (enum call_saved_registers_type): Add | |
14466 | TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator. | |
14467 | * config/i386/i386-options.cc (ix86_set_func_type): Remove | |
14468 | has_no_callee_saved_registers variable, add no_callee_saved_registers | |
14469 | instead, initialize it depending on whether it is | |
14470 | no_callee_saved_registers function or not. Don't set it if | |
14471 | no_caller_saved_registers attribute is present. Adjust users. | |
14472 | * config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle | |
14473 | TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like | |
14474 | TYPE_NO_CALLEE_SAVED_REGISTERS. | |
14475 | (ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP. | |
14476 | ||
14477 | 2024-03-05 Pan Li <pan2.li@intel.com> | |
14478 | ||
14479 | * config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused | |
14480 | mode_size related code. | |
14481 | ||
14482 | 2024-03-05 Patrick Palka <ppalka@redhat.com> | |
14483 | ||
14484 | * doc/invoke.texi (-Wno-global-module): Document. | |
14485 | ||
14486 | 2024-03-04 David Faust <david.faust@oracle.com> | |
14487 | ||
14488 | * config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype. | |
14489 | * config/bpf/bpf.cc (bpf_expand_setmem): New. | |
14490 | * config/bpf/bpf.md (setmemdi): New define_expand. | |
14491 | ||
14492 | 2024-03-04 Jakub Jelinek <jakub@redhat.com> | |
14493 | ||
14494 | PR rtl-optimization/113010 | |
14495 | * combine.cc (simplify_comparison): Guard the | |
14496 | WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG | |
14497 | and initialize inner_mode. | |
14498 | ||
14499 | 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
14500 | ||
14501 | * config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U, | |
14502 | VMLALDAVAXQ_U cases. | |
14503 | (VMLALDAVXQ): Remove iterator. | |
14504 | (VMLALDAVXQ_P): Likewise. | |
14505 | (VMLALDAVAXQ): Likewise. | |
14506 | * config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED> | |
14507 | mode iterator attribute with V4BI mode. | |
14508 | * config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U, | |
14509 | VMLALDAVAXQ_U): Remove unused unspecs. | |
14510 | ||
14511 | 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
14512 | ||
14513 | * config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute. | |
14514 | * config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator | |
14515 | attribute. | |
14516 | * config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u, | |
14517 | vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u, | |
14518 | vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u, | |
14519 | vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s, | |
14520 | vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s, | |
14521 | vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u, | |
14522 | vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u, | |
14523 | vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s, | |
14524 | vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s, | |
14525 | vmlsldavaxq_s): Added mve_safe_imp_xlane_pred. | |
14526 | ||
14527 | 2024-03-04 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
14528 | ||
14529 | * config/arm/arm.md (mve_unpredicated_insn): New attribute. | |
14530 | * config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define. | |
14531 | (MVE_VPT_UNPREDICATED_INSN_P): Likewise. | |
14532 | (MVE_VPT_PREDICABLE_INSN_P): Likewise. | |
14533 | * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute. | |
14534 | * config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute. | |
14535 | (arm_vcx1q<a>v16qi): Likewise. | |
14536 | (arm_vcx1qav16qi): Likewise. | |
14537 | (arm_vcx1qv16qi): Likewise. | |
14538 | (arm_vcx2q<a>_p_v16qi): Likewise. | |
14539 | (arm_vcx2q<a>v16qi): Likewise. | |
14540 | (arm_vcx2qav16qi): Likewise. | |
14541 | (arm_vcx2qv16qi): Likewise. | |
14542 | (arm_vcx3q<a>_p_v16qi): Likewise. | |
14543 | (arm_vcx3q<a>v16qi): Likewise. | |
14544 | (arm_vcx3qav16qi): Likewise. | |
14545 | (arm_vcx3qv16qi): Likewise. | |
14546 | (@mve_<mve_insn>q_<supf><mode>): Likewise. | |
14547 | (@mve_<mve_insn>q_int_<supf><mode>): Likewise. | |
14548 | (@mve_<mve_insn>q_<supf>v4si): Likewise. | |
14549 | (@mve_<mve_insn>q_n_<supf><mode>): Likewise. | |
14550 | (@mve_<mve_insn>q_r_<supf><mode>): Likewise. | |
14551 | (@mve_<mve_insn>q_f<mode>): Likewise. | |
14552 | (@mve_<mve_insn>q_m_<supf><mode>): Likewise. | |
14553 | (@mve_<mve_insn>q_m_n_<supf><mode>): Likewise. | |
14554 | (@mve_<mve_insn>q_m_r_<supf><mode>): Likewise. | |
14555 | (@mve_<mve_insn>q_m_f<mode>): Likewise. | |
14556 | (@mve_<mve_insn>q_int_m_<supf><mode>): Likewise. | |
14557 | (@mve_<mve_insn>q_p_<supf>v4si): Likewise. | |
14558 | (@mve_<mve_insn>q_p_<supf><mode>): Likewise. | |
14559 | (@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise. | |
14560 | (@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise. | |
14561 | (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise. | |
14562 | (@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise. | |
14563 | (mve_v<absneg_str>q_f<mode>): Likewise. | |
14564 | (mve_<mve_addsubmul>q<mode>): Likewise. | |
14565 | (mve_<mve_addsubmul>q_f<mode>): Likewise. | |
14566 | (mve_vadciq_<supf>v4si): Likewise. | |
14567 | (mve_vadciq_m_<supf>v4si): Likewise. | |
14568 | (mve_vadcq_<supf>v4si): Likewise. | |
14569 | (mve_vadcq_m_<supf>v4si): Likewise. | |
14570 | (mve_vandq_<supf><mode>): Likewise. | |
14571 | (mve_vandq_f<mode>): Likewise. | |
14572 | (mve_vandq_m_<supf><mode>): Likewise. | |
14573 | (mve_vandq_m_f<mode>): Likewise. | |
14574 | (mve_vandq_s<mode>): Likewise. | |
14575 | (mve_vandq_u<mode>): Likewise. | |
14576 | (mve_vbicq_<supf><mode>): Likewise. | |
14577 | (mve_vbicq_f<mode>): Likewise. | |
14578 | (mve_vbicq_m_<supf><mode>): Likewise. | |
14579 | (mve_vbicq_m_f<mode>): Likewise. | |
14580 | (mve_vbicq_m_n_<supf><mode>): Likewise. | |
14581 | (mve_vbicq_n_<supf><mode>): Likewise. | |
14582 | (mve_vbicq_s<mode>): Likewise. | |
14583 | (mve_vbicq_u<mode>): Likewise. | |
14584 | (@mve_vclzq_s<mode>): Likewise. | |
14585 | (mve_vclzq_u<mode>): Likewise. | |
14586 | (@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise. | |
14587 | (@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise. | |
14588 | (@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise. | |
14589 | (@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise. | |
14590 | (@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise. | |
14591 | (@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise. | |
14592 | (@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise. | |
14593 | (@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise. | |
14594 | (mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise. | |
14595 | (mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise. | |
14596 | (mve_vcvtaq_<supf><mode>): Likewise. | |
14597 | (mve_vcvtaq_m_<supf><mode>): Likewise. | |
14598 | (mve_vcvtbq_f16_f32v8hf): Likewise. | |
14599 | (mve_vcvtbq_f32_f16v4sf): Likewise. | |
14600 | (mve_vcvtbq_m_f16_f32v8hf): Likewise. | |
14601 | (mve_vcvtbq_m_f32_f16v4sf): Likewise. | |
14602 | (mve_vcvtmq_<supf><mode>): Likewise. | |
14603 | (mve_vcvtmq_m_<supf><mode>): Likewise. | |
14604 | (mve_vcvtnq_<supf><mode>): Likewise. | |
14605 | (mve_vcvtnq_m_<supf><mode>): Likewise. | |
14606 | (mve_vcvtpq_<supf><mode>): Likewise. | |
14607 | (mve_vcvtpq_m_<supf><mode>): Likewise. | |
14608 | (mve_vcvtq_from_f_<supf><mode>): Likewise. | |
14609 | (mve_vcvtq_m_from_f_<supf><mode>): Likewise. | |
14610 | (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise. | |
14611 | (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise. | |
14612 | (mve_vcvtq_m_to_f_<supf><mode>): Likewise. | |
14613 | (mve_vcvtq_n_from_f_<supf><mode>): Likewise. | |
14614 | (mve_vcvtq_n_to_f_<supf><mode>): Likewise. | |
14615 | (mve_vcvtq_to_f_<supf><mode>): Likewise. | |
14616 | (mve_vcvttq_f16_f32v8hf): Likewise. | |
14617 | (mve_vcvttq_f32_f16v4sf): Likewise. | |
14618 | (mve_vcvttq_m_f16_f32v8hf): Likewise. | |
14619 | (mve_vcvttq_m_f32_f16v4sf): Likewise. | |
14620 | (mve_vdwdupq_m_wb_u<mode>_insn): Likewise. | |
14621 | (mve_vdwdupq_wb_u<mode>_insn): Likewise. | |
14622 | (mve_veorq_s><mode>): Likewise. | |
14623 | (mve_veorq_u><mode>): Likewise. | |
14624 | (mve_veorq_f<mode>): Likewise. | |
14625 | (mve_vidupq_m_wb_u<mode>_insn): Likewise. | |
14626 | (mve_vidupq_u<mode>_insn): Likewise. | |
14627 | (mve_viwdupq_m_wb_u<mode>_insn): Likewise. | |
14628 | (mve_viwdupq_wb_u<mode>_insn): Likewise. | |
14629 | (mve_vldrbq_<supf><mode>): Likewise. | |
14630 | (mve_vldrbq_gather_offset_<supf><mode>): Likewise. | |
14631 | (mve_vldrbq_gather_offset_z_<supf><mode>): Likewise. | |
14632 | (mve_vldrbq_z_<supf><mode>): Likewise. | |
14633 | (mve_vldrdq_gather_base_<supf>v2di): Likewise. | |
14634 | (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise. | |
14635 | (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise. | |
14636 | (mve_vldrdq_gather_base_z_<supf>v2di): Likewise. | |
14637 | (mve_vldrdq_gather_offset_<supf>v2di): Likewise. | |
14638 | (mve_vldrdq_gather_offset_z_<supf>v2di): Likewise. | |
14639 | (mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise. | |
14640 | (mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise. | |
14641 | (mve_vldrhq_<supf><mode>): Likewise. | |
14642 | (mve_vldrhq_fv8hf): Likewise. | |
14643 | (mve_vldrhq_gather_offset_<supf><mode>): Likewise. | |
14644 | (mve_vldrhq_gather_offset_fv8hf): Likewise. | |
14645 | (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise. | |
14646 | (mve_vldrhq_gather_offset_z_fv8hf): Likewise. | |
14647 | (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise. | |
14648 | (mve_vldrhq_gather_shifted_offset_fv8hf): Likewise. | |
14649 | (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise. | |
14650 | (mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise. | |
14651 | (mve_vldrhq_z_<supf><mode>): Likewise. | |
14652 | (mve_vldrhq_z_fv8hf): Likewise. | |
14653 | (mve_vldrwq_<supf>v4si): Likewise. | |
14654 | (mve_vldrwq_fv4sf): Likewise. | |
14655 | (mve_vldrwq_gather_base_<supf>v4si): Likewise. | |
14656 | (mve_vldrwq_gather_base_fv4sf): Likewise. | |
14657 | (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise. | |
14658 | (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise. | |
14659 | (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise. | |
14660 | (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise. | |
14661 | (mve_vldrwq_gather_base_z_<supf>v4si): Likewise. | |
14662 | (mve_vldrwq_gather_base_z_fv4sf): Likewise. | |
14663 | (mve_vldrwq_gather_offset_<supf>v4si): Likewise. | |
14664 | (mve_vldrwq_gather_offset_fv4sf): Likewise. | |
14665 | (mve_vldrwq_gather_offset_z_<supf>v4si): Likewise. | |
14666 | (mve_vldrwq_gather_offset_z_fv4sf): Likewise. | |
14667 | (mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise. | |
14668 | (mve_vldrwq_gather_shifted_offset_fv4sf): Likewise. | |
14669 | (mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise. | |
14670 | (mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise. | |
14671 | (mve_vldrwq_z_<supf>v4si): Likewise. | |
14672 | (mve_vldrwq_z_fv4sf): Likewise. | |
14673 | (mve_vmvnq_s<mode>): Likewise. | |
14674 | (mve_vmvnq_u<mode>): Likewise. | |
14675 | (mve_vornq_<supf><mode>): Likewise. | |
14676 | (mve_vornq_f<mode>): Likewise. | |
14677 | (mve_vornq_m_<supf><mode>): Likewise. | |
14678 | (mve_vornq_m_f<mode>): Likewise. | |
14679 | (mve_vornq_s<mode>): Likewise. | |
14680 | (mve_vornq_u<mode>): Likewise. | |
14681 | (mve_vorrq_<supf><mode>): Likewise. | |
14682 | (mve_vorrq_f<mode>): Likewise. | |
14683 | (mve_vorrq_m_<supf><mode>): Likewise. | |
14684 | (mve_vorrq_m_f<mode>): Likewise. | |
14685 | (mve_vorrq_m_n_<supf><mode>): Likewise. | |
14686 | (mve_vorrq_n_<supf><mode>): Likewise. | |
14687 | (mve_vorrq_s<mode>): Likewise. | |
14688 | (mve_vorrq_s<mode>): Likewise. | |
14689 | (mve_vsbciq_<supf>v4si): Likewise. | |
14690 | (mve_vsbciq_m_<supf>v4si): Likewise. | |
14691 | (mve_vsbcq_<supf>v4si): Likewise. | |
14692 | (mve_vsbcq_m_<supf>v4si): Likewise. | |
14693 | (mve_vshlcq_<supf><mode>): Likewise. | |
14694 | (mve_vshlcq_m_<supf><mode>): Likewise. | |
14695 | (mve_vshrq_m_n_<supf><mode>): Likewise. | |
14696 | (mve_vshrq_n_<supf><mode>): Likewise. | |
14697 | (mve_vstrbq_<supf><mode>): Likewise. | |
14698 | (mve_vstrbq_p_<supf><mode>): Likewise. | |
14699 | (mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise. | |
14700 | (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise. | |
14701 | (mve_vstrdq_scatter_base_<supf>v2di): Likewise. | |
14702 | (mve_vstrdq_scatter_base_p_<supf>v2di): Likewise. | |
14703 | (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise. | |
14704 | (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise. | |
14705 | (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise. | |
14706 | (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise. | |
14707 | (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise. | |
14708 | (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise. | |
14709 | (mve_vstrhq_<supf><mode>): Likewise. | |
14710 | (mve_vstrhq_fv8hf): Likewise. | |
14711 | (mve_vstrhq_p_<supf><mode>): Likewise. | |
14712 | (mve_vstrhq_p_fv8hf): Likewise. | |
14713 | (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise. | |
14714 | (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise. | |
14715 | (mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise. | |
14716 | (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise. | |
14717 | (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise. | |
14718 | (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise. | |
14719 | (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise. | |
14720 | (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise. | |
14721 | (mve_vstrwq_<supf>v4si): Likewise. | |
14722 | (mve_vstrwq_fv4sf): Likewise. | |
14723 | (mve_vstrwq_p_<supf>v4si): Likewise. | |
14724 | (mve_vstrwq_p_fv4sf): Likewise. | |
14725 | (mve_vstrwq_scatter_base_<supf>v4si): Likewise. | |
14726 | (mve_vstrwq_scatter_base_fv4sf): Likewise. | |
14727 | (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise. | |
14728 | (mve_vstrwq_scatter_base_p_fv4sf): Likewise. | |
14729 | (mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise. | |
14730 | (mve_vstrwq_scatter_base_wb_fv4sf): Likewise. | |
14731 | (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise. | |
14732 | (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise. | |
14733 | (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise. | |
14734 | (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise. | |
14735 | (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise. | |
14736 | (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise. | |
14737 | (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise. | |
14738 | (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise. | |
14739 | (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise. | |
14740 | (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise. | |
14741 | ||
14742 | 2024-03-04 Marek Polacek <polacek@redhat.com> | |
14743 | ||
14744 | * doc/extend.texi: Update [[gnu::no_dangling]]. | |
14745 | ||
14746 | 2024-03-04 Andrew Stubbs <ams@baylibre.com> | |
14747 | ||
14748 | * dojump.cc (do_compare_and_jump): Use full-width integers for shifts. | |
14749 | * expr.cc (store_constructor): Likewise. | |
14750 | (do_store_flag): Likewise. | |
14751 | ||
14752 | 2024-03-04 Mark Wielaard <mark@klomp.org> | |
14753 | ||
14754 | * common.opt.urls: Regenerate. | |
14755 | * config/avr/avr.opt.urls: Likewise. | |
14756 | * config/i386/i386.opt.urls: Likewise. | |
14757 | * config/pru/pru.opt.urls: Likewise. | |
14758 | * config/riscv/riscv.opt.urls: Likewise. | |
14759 | * config/rs6000/rs6000.opt.urls: Likewise. | |
14760 | ||
14761 | 2024-03-04 Richard Biener <rguenther@suse.de> | |
14762 | ||
14763 | PR tree-optimization/114197 | |
14764 | * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if | |
14765 | there are volatile bitfield accesses. | |
14766 | (pass_if_conversion::execute): Throw away result if the | |
14767 | if-converted and original loops are not nested as expected. | |
14768 | ||
14769 | 2024-03-04 Richard Biener <rguenther@suse.de> | |
14770 | ||
14771 | PR tree-optimization/114164 | |
14772 | * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if | |
14773 | the code generated for mask argument setup is not supported. | |
14774 | ||
14775 | 2024-03-04 Richard Biener <rguenther@suse.de> | |
14776 | ||
14777 | PR tree-optimization/114203 | |
14778 | * tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ | |
14779 | adjustment before making the result defined at zero. | |
14780 | ||
14781 | 2024-03-04 Richard Biener <rguenther@suse.de> | |
14782 | ||
14783 | PR tree-optimization/114192 | |
14784 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the | |
14785 | appropriate def for the live out stmt in case of an alternate | |
14786 | exit. | |
14787 | ||
14788 | 2024-03-04 Jakub Jelinek <jakub@redhat.com> | |
14789 | ||
14790 | PR middle-end/114209 | |
14791 | * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call | |
14792 | unshare_expr when creating a MEM_REF from MEM_REF. | |
14793 | (bitint_large_huge::lower_stmt): Call unshare_expr. | |
14794 | ||
14795 | 2024-03-04 Jakub Jelinek <jakub@redhat.com> | |
14796 | ||
14797 | PR target/114184 | |
14798 | * config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1 | |
14799 | is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or | |
14800 | register. | |
14801 | ||
14802 | 2024-03-04 Roger Sayle <roger@nextmovesoftware.com> | |
14803 | ||
14804 | PR target/114187 | |
14805 | * simplify-rtx.cc (simplify_context::simplify_subreg): Call | |
14806 | lowpart_subreg to perform type conversion, to avoid confusion | |
14807 | over the offset to use in the call to simplify_reg_subreg. | |
14808 | ||
14809 | 2024-03-03 Greg McGary <gkm@rivosinc.com> | |
14810 | ||
14811 | PR rtl-optimization/113010 | |
14812 | * combine.cc (simplify_comparison): Simplify a SUBREG on | |
14813 | WORD_REGISTER_OPERATIONS targets only if it is a zero-extending | |
14814 | MEM load. | |
14815 | ||
14816 | 2024-03-03 Georg-Johann Lay <avr@gjlay.de> | |
14817 | ||
14818 | * config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED. | |
14819 | Use bool in place of int for boolean logic (if possible). | |
14820 | Move declarations to definitions (if possible). | |
14821 | * config/avr/avr.md: Use C++ comments. Fix some indentation glitches. | |
14822 | * config/avr/avr-dimode.md: Same. | |
14823 | * config/avr/constraints.md: Same. | |
14824 | * config/avr/predicates.md: Same. | |
14825 | ||
14826 | 2024-03-03 Uros Bizjak <ubizjak@gmail.com> | |
14827 | ||
14828 | PR target/113720 | |
14829 | * config/alpha/alpha.md (umuldi3_highpart): Remove expander. | |
14830 | (*umuldi3_highpart_reg): Rename to umuldi3_highpart and | |
14831 | simplify insn RTX using UMUL_HIGHPART rtx_code. | |
14832 | (*umuldi3_highpart_const): Remove. | |
14833 | ||
14834 | 2024-03-03 Georg-Johann Lay <avr@gjlay.de> | |
14835 | ||
14836 | PR target/114100 | |
14837 | * config/avr/avr-protos.h (_reg_unused_after): Remove proto. | |
14838 | * config/avr/avr.cc (_reg_unused_after): Make static. And | |
14839 | add 3rd argument to skip the current insn. | |
14840 | (reg_unused_after): Adjust call of reg_unused_after. | |
14841 | (avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output | |
14842 | unneeded frame pointer adjustments. | |
14843 | ||
14844 | 2024-03-03 Georg-Johann Lay <avr@gjlay.de> | |
14845 | ||
14846 | PR target/92729 | |
14847 | * config/avr/avr.md (define_attr "cc"): Remove. | |
14848 | * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument | |
14849 | from prototype. | |
14850 | * config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and | |
14851 | its uses. Add insn argument. | |
14852 | (avr_out_plus_symbol): Remove pcc argument and its uses. | |
14853 | (avr_out_plus): Remove pcc argument and its uses. | |
14854 | Adjust calls of avr_out_plus_symbol and avr_out_plus_1. | |
14855 | (avr_out_round): Adjust call of avr_out_plus. | |
14856 | ||
14857 | 2024-03-03 Georg-Johann Lay <avr@gjlay.de> | |
14858 | ||
14859 | * config/avr/avr.cc (avr_init_cumulative_args): Fix a typo | |
14860 | from r14-9273. | |
14861 | ||
14862 | 2024-03-03 Oleg Endo <olegendo@gcc.gnu.org> | |
14863 | ||
14864 | PR target/101737 | |
14865 | * config/sh/sh.cc (sh_is_nott_insn): Handle case where the input | |
14866 | is not an insn, but e.g. a code label. | |
14867 | ||
14868 | 2024-03-02 Georg-Johann Lay <avr@gjlay.de> | |
14869 | ||
14870 | * config/avr/avr.md (REG_0, ... REG_36): New define_constants. | |
14871 | * config/avr/avr.cc: Use them instead of magic numbers when it | |
14872 | means a register number. | |
14873 | ||
14874 | 2024-03-02 Georg-Johann Lay <avr@gjlay.de> | |
14875 | ||
14876 | * config/avr/avr.cc: Adjust some comments. | |
14877 | ||
14878 | 2024-03-02 Georg-Johann Lay <avr@gjlay.de> | |
14879 | ||
14880 | PR target/114100 | |
14881 | * config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust | |
14882 | the low part of the frame pointer with 8-bit stack pointer. | |
14883 | ||
14884 | 2024-03-01 Patrick Palka <ppalka@redhat.com> | |
14885 | ||
14886 | PR c++/104919 | |
14887 | PR c++/106009 | |
14888 | * tree-inline.cc (remap_decl): Handle copy_decl returning the | |
14889 | original decl. | |
14890 | (remap_decls): Handle remap_decl returning the original decl. | |
14891 | (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and | |
14892 | CONST_DECL. | |
14893 | ||
14894 | 2024-03-01 Jeff Law <jlaw@ventanamicro.com> | |
14895 | ||
14896 | * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix | |
14897 | type attribute. | |
14898 | (extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise. | |
14899 | (movdi_32bit, movdi_64bit, movsi_internal): Likewise. | |
14900 | (movhi_internal, movqi_internal): Likewise. | |
14901 | (movsf_softfloat, movsf_hardfloat): Likewise. | |
14902 | (movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise. | |
14903 | (movdf_softfloat): Likewise. | |
14904 | ||
14905 | 2024-03-01 Marek Polacek <polacek@redhat.com> | |
14906 | ||
14907 | PR c++/110358 | |
14908 | PR c++/109642 | |
14909 | * doc/extend.texi: Document gnu::no_dangling. | |
14910 | * doc/invoke.texi: Mention that gnu::no_dangling disables | |
14911 | -Wdangling-reference. | |
14912 | ||
14913 | 2024-03-01 Georg-Johann Lay <avr@gjlay.de> | |
14914 | ||
14915 | * config/avr/avr.opt: Overhaul help screen. | |
14916 | ||
14917 | 2024-03-01 Jakub Jelinek <jakub@redhat.com> | |
14918 | Tobias Burnus <tburnus@baylibre.com> | |
14919 | ||
14920 | PR c++/110347 | |
14921 | * gimplify.cc (omp_notice_variable): Fix 'shared' arg to | |
14922 | lang_hooks.decls.omp_disregard_value_expr for | |
14923 | (first)private in target regions. | |
14924 | ||
14925 | 2024-03-01 Jakub Jelinek <jakub@redhat.com> | |
14926 | ||
14927 | PR middle-end/114136 | |
14928 | * calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set | |
14929 | n_named_args initially before INIT_CUMULATIVE_ARGS to | |
14930 | structure_value_addr_parm rather than 0, after it don't modify | |
14931 | it if strict_argument_naming and clear only if | |
14932 | !pretend_outgoing_varargs_named. | |
14933 | ||
14934 | 2024-03-01 Jakub Jelinek <jakub@redhat.com> | |
14935 | ||
14936 | PR debug/114015 | |
14937 | * dwarf2out.cc (should_move_die_to_comdat): Return false for | |
14938 | aggregates without DW_AT_byte_size attribute or with non-constant | |
14939 | DW_AT_byte_size. | |
14940 | ||
14941 | 2024-03-01 Georg-Johann Lay <avr@gjlay.de> | |
14942 | ||
14943 | * doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document | |
14944 | valid values for level. | |
14945 | ||
14946 | 2024-03-01 Richard Biener <rguenther@suse.de> | |
14947 | ||
14948 | PR middle-end/114070 | |
14949 | * match.pd ((c ? a : b) op d --> c ? (a op d) : (b op d)): | |
14950 | Allow the folding if before lowering and the current IL | |
14951 | isn't supported with vcond_mask. | |
14952 | ||
14953 | 2024-03-01 xuli <xuli1@eswincomputing.com> | |
14954 | ||
14955 | * config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc | |
14956 | attribute to riscv_attribute_table. | |
14957 | (riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function. | |
14958 | (riscv_fntype_abi): Add riscv_vector_cc attribute check. | |
14959 | * doc/extend.texi: Add riscv_vector_cc attribute description. | |
14960 | ||
14961 | 2024-03-01 Pan Li <pan2.li@intel.com> | |
14962 | ||
14963 | PR target/112817 | |
14964 | * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace | |
14965 | RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL. | |
14966 | * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove. | |
14967 | (enum rvv_vector_bits_enum): New enum for different RVV vector bits. | |
14968 | * config/riscv/riscv-selftests.cc (riscv_run_selftests): Update | |
14969 | comments for option replacement. | |
14970 | * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of | |
14971 | riscv_autovec_preference to rvv_vector_bits. | |
14972 | (vls_mode_valid_p): Ditto. | |
14973 | (estimated_poly_value): Ditto. | |
14974 | * config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to | |
14975 | vector chunks and honor new option mrvv-vector-bits. | |
14976 | (riscv_override_options_internal): Update comments and rename the | |
14977 | vector chunks. | |
14978 | * config/riscv/riscv.opt: Add option mrvv-vector-bits and remove | |
14979 | internal option param=riscv-autovec-preference. | |
14980 | ||
14981 | 2024-03-01 Jakub Jelinek <jakub@redhat.com> | |
14982 | ||
14983 | * function.cc (assign_parms): Only call assign_parms_setup_varargs | |
14984 | early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty. | |
14985 | ||
14986 | 2024-03-01 Jakub Jelinek <jakub@redhat.com> | |
14987 | ||
14988 | PR middle-end/114156 | |
14989 | * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow | |
14990 | rhs1 of a VCE to have no underlying variable if it is a load and | |
14991 | handle that case. | |
14992 | ||
14993 | 2024-02-29 David Malcolm <dmalcolm@redhat.com> | |
14994 | ||
14995 | PR analyzer/114159 | |
14996 | * function.cc (function_name): Make param const. | |
14997 | * function.h (function_name): Likewise. | |
14998 | ||
14999 | 2024-02-29 Georg-Johann Lay <avr@gjlay.de> | |
15000 | ||
15001 | PR target/114100 | |
15002 | * doc/invoke.texi (AVR Options) <-mfuse-add>: Document. | |
15003 | * config/avr/avr.opt (-mfuse-add=): New target option. | |
15004 | * common/config/avr/avr-common.cc (avr_option_optimization_table) | |
15005 | [OPT_LEVELS_1_PLUS]: Set -mfuse-add=1. | |
15006 | [OPT_LEVELS_2_PLUS]: Set -mfuse-add=2. | |
15007 | * config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass. | |
15008 | * config/avr/avr-protos.h (avr_split_tiny_move) | |
15009 | (make_avr_pass_fuse_add): New protos. | |
15010 | * config/avr/avr.md [AVR_TINY]: New post-reload splitter uses | |
15011 | avr_split_tiny_move to split indirect memory accesses. | |
15012 | (gen_move_clobbercc): New define_expand helper. | |
15013 | * config/avr/avr.cc (avr_pass_data_fuse_add): New pass data. | |
15014 | (avr_pass_fuse_add): New class from rtl_opt_pass. | |
15015 | (make_avr_pass_fuse_add, avr_split_tiny_move): New functions. | |
15016 | (reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions. | |
15017 | (avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets | |
15018 | of PLUS addressing for AVR_TINY. | |
15019 | (avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X. | |
15020 | (avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y. | |
15021 | (avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS. | |
15022 | ||
15023 | 2024-02-29 Georg-Johann Lay <avr@gjlay.de> | |
15024 | ||
15025 | PR target/114132 | |
15026 | * config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field. | |
15027 | * config/avr/avr.cc (avr_init_cumulative_args): Initialize it. | |
15028 | (avr_function_arg): Set it. | |
15029 | (avr_frame_pointer_required_p): Use it instead of .nregs. | |
15030 | ||
15031 | 2024-02-29 Andrew Pinski <quic_apinski@quicinc.com> | |
15032 | ||
15033 | PR target/108174 | |
15034 | * config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make | |
15035 | static and mark with GTY. | |
15036 | ||
15037 | 2024-02-29 Xi Ruoyao <xry111@xry111.site> | |
15038 | ||
15039 | * config/loongarch/loongarch.md | |
15040 | (loongarch_<crc>_w_<size>_w_extended): New define_insn. | |
15041 | ||
15042 | 2024-02-29 Xi Ruoyao <xry111@xry111.site> | |
15043 | ||
15044 | * config/loongarch/loongarch.md (CRC): New define_int_iterator. | |
15045 | (crc): New define_int_attr. | |
15046 | (loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify | |
15047 | into ... | |
15048 | (loongarch_<crc>_w_<size>_w): ... here. | |
15049 | ||
15050 | 2024-02-29 Kito Cheng <kito.cheng@sifive.com> | |
15051 | ||
15052 | PR target/114130 | |
15053 | * config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign | |
15054 | extend the expected value if needed. | |
15055 | ||
15056 | 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com> | |
15057 | ||
15058 | * config.gcc (target_gtfiles): Change coreout to btfext-out. | |
15059 | (extra_objs): Change coreout to btfext-out. | |
15060 | * config/bpf/coreout.cc: Rename to btfext-out.cc. | |
15061 | * config/bpf/btfext-out.cc: Add. | |
15062 | * config/bpf/coreout.h: Rename to btfext-out.h. | |
15063 | * config/bpf/btfext-out.h: Add. | |
15064 | * config/bpf/core-builtins.cc: Change include. | |
15065 | * config/bpf/core-builtins.h: Change include. | |
15066 | * config/bpf/t-bpf: Accomodate renamed files. | |
15067 | ||
15068 | 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com> | |
15069 | ||
15070 | PR target/113453 | |
15071 | * config/bpf/bpf.cc (bpf_function_prologue): Define target | |
15072 | hook. | |
15073 | * config/bpf/coreout.cc (brf_ext_info_section) | |
15074 | (btf_ext_info): Move from coreout.h | |
15075 | (btf_ext_funcinfo, btf_ext_lineinfo): Add struct. | |
15076 | (bpf_core_reloc): Rename to btf_ext_core_reloc. | |
15077 | (btf_ext): Add static variable. | |
15078 | (btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN) | |
15079 | (bpf_create_or_find_funcinfo, bpt_create_core_reloc) | |
15080 | (btf_ext_add_string, btf_funcinfo_type_callback) | |
15081 | (btf_add_func_info_for, btf_validate_funcinfo) | |
15082 | (btf_ext_info_len, output_btfext_func_info): Add function. | |
15083 | (output_btfext_header, bpf_core_reloc_add) | |
15084 | (output_btfext_core_relocs, btf_ext_init, btf_ext_output): | |
15085 | Change to support new structs. | |
15086 | * config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo): | |
15087 | Move and change in coreout.cc. | |
15088 | (btf_add_func_info_for, btf_ext_add_string): Add prototypes. | |
15089 | ||
15090 | 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com> | |
15091 | ||
15092 | * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext | |
15093 | enabled by default for BPF. | |
15094 | (bpf_file_end): Call BTF deallocation. | |
15095 | (bpf_asm_init_sections): Correct condition. | |
15096 | * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF | |
15097 | deallocation. | |
15098 | (ctf_debuf_finish): Correct condition for calling | |
15099 | ctf_debug_finalize. | |
15100 | ||
15101 | 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com> | |
15102 | ||
15103 | * btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT. | |
15104 | (traverse_btf_func_types): Define function. | |
15105 | * ctfc.h (funcs_traverse_callback): Typedef for function | |
15106 | prototype. | |
15107 | (traverse_btf_func_types): Add prototype. | |
15108 | ||
15109 | 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com> | |
15110 | ||
15111 | * btfout.cc (btf_collect_dataset): Corrects BTF type id. | |
15112 | ||
15113 | 2024-02-28 Richard Biener <rguenther@suse.de> | |
15114 | ||
15115 | PR tree-optimization/113831 | |
15116 | PR tree-optimization/108355 | |
15117 | * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert | |
15118 | PR113831 fix. | |
15119 | ||
15120 | 2024-02-28 Richard Biener <rguenther@suse.de> | |
15121 | ||
15122 | PR tree-optimization/114121 | |
15123 | * tree-ssa-sccvn.h (vn_reference_s::offset, | |
15124 | vn_reference_s::max_size): New fields. | |
15125 | (vn_reference_insert_pieces): Adjust prototype. | |
15126 | * tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size. | |
15127 | * tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and | |
15128 | size, allow using "don't know" state. | |
15129 | (vn_walk_cb_data::finish): Pass along offset/max_size. | |
15130 | (vn_reference_lookup_or_insert_for_pieces): Take offset and | |
15131 | max_size as argument and use it. | |
15132 | (vn_reference_lookup_3): Properly adjust offset and max_size | |
15133 | according to the adjusted ao_ref. | |
15134 | (vn_reference_lookup_pieces): Initialize offset and max_size. | |
15135 | (vn_reference_lookup): Likewise. | |
15136 | (vn_reference_lookup_call): Likewise. | |
15137 | (vn_reference_insert): Likewise. | |
15138 | (visit_reference_op_call): Likewise. | |
15139 | (vn_reference_insert_pieces): Take offset and max_size | |
15140 | as argument and use it. | |
15141 | ||
15142 | 2024-02-28 Juergen Christ <jchrist@linux.ibm.com> | |
15143 | ||
15144 | PR tree-optimization/114075 | |
15145 | * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating | |
15146 | point vectors | |
15147 | ||
15148 | 2024-02-28 Jakub Jelinek <jakub@redhat.com> | |
15149 | ||
15150 | PR tree-optimization/114041 | |
15151 | * graphite-sese-to-poly.cc (add_conditions_to_domain): Check for | |
15152 | INTEGRAL_TYPE_P check rather than INTEGER_TYPE. | |
15153 | ||
15154 | 2024-02-28 Jakub Jelinek <jakub@redhat.com> | |
15155 | ||
15156 | PR tree-optimization/113988 | |
15157 | * stor-layout.h (bitwise_mode_for_size): Declare. | |
15158 | * stor-layout.cc (bitwise_mode_for_size): New function. | |
15159 | * gimple-fold.cc (gimple_fold_builtin_memory_op): Use it. | |
15160 | Use bitwise_type_for_mode instead of build_nonstandard_integer_type. | |
15161 | Use BITS_PER_UNIT instead of 8. | |
15162 | ||
15163 | 2024-02-27 Uros Bizjak <ubizjak@gmail.com> | |
15164 | ||
15165 | PR target/113871 | |
15166 | * config/i386/mmx.md (V248FI): Add V2BF mode. | |
15167 | (V24FI_32): Ditto. | |
15168 | ||
15169 | 2024-02-27 Eric Botcazou <ebotcazou@adacore.com> | |
15170 | ||
15171 | * tree-ssa-dse.cc (compute_trims): Fix description. Return early | |
15172 | if either ref->offset is not byte aligned or ref->size is not known | |
15173 | to be equal to ref->max_size. | |
15174 | (maybe_trim_complex_store): Fix description. | |
15175 | (maybe_trim_constructor_store): Likewise. | |
15176 | (maybe_trim_partially_dead_store): Likewise. | |
15177 | ||
15178 | 2024-02-27 Richard Earnshaw <rearnsha@arm.com> | |
15179 | ||
15180 | * config/arm/mmintrin.h: Warn if this header is included without | |
15181 | defining __ENABLE_DEPRECATED_IWMMXT. | |
15182 | ||
15183 | 2024-02-27 Richard Biener <rguenther@suse.de> | |
15184 | ||
15185 | PR tree-optimization/114074 | |
15186 | * tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL. | |
15187 | * tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs. | |
15188 | Handle poly vs. non-poly multiplication correctly with respect | |
15189 | to undefined behavior on overflow. | |
15190 | ||
15191 | 2024-02-27 Jakub Jelinek <jakub@redhat.com> | |
15192 | ||
15193 | PR rtl-optimization/114044 | |
15194 | * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use | |
15195 | DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN. | |
15196 | * internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS, | |
15197 | expand_PARITY): Declare. | |
15198 | * internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ, | |
15199 | expand_CTZ, expand_FFS, expand_PARITY): New functions. | |
15200 | (expand_POPCOUNT): Use expand_bitquery. | |
15201 | ||
15202 | 2024-02-27 Richard Biener <rguenther@suse.de> | |
15203 | ||
15204 | PR tree-optimization/114081 | |
15205 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
15206 | Perform manual dominator update for prologue peeling. | |
15207 | (vect_do_peeling): Properly update dominators after adding the | |
15208 | prologue-around guard. | |
15209 | ||
15210 | 2024-02-26 Georg-Johann Lay <avr@gjlay.de> | |
15211 | ||
15212 | * config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args) | |
15213 | (mstrict-X): Tag as "Optimization". | |
15214 | ||
15215 | 2024-02-26 Georg-Johann Lay <avr@gjlay.de> | |
15216 | ||
15217 | * config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in | |
15218 | an "if avr_adiw_reg_p()" block that's dead for AVR_TINY. | |
15219 | ||
15220 | 2024-02-26 Jakub Jelinek <jakub@redhat.com> | |
15221 | H.J. Lu <hjl.tools@gmail.com> | |
15222 | ||
15223 | PR rtl-optimization/113617 | |
15224 | * varasm.cc (default_elf_select_rtx_section): For | |
15225 | references to private symbols in comdat sections | |
15226 | use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat> | |
15227 | or .rodata.<comdat> comdat sections. | |
15228 | ||
15229 | 2024-02-26 Richard Biener <rguenther@suse.de> | |
15230 | ||
15231 | PR tree-optimization/114099 | |
15232 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
15233 | Create and fill in a needed virtual LC PHI for the alternate | |
15234 | exits. Remove code dealing with that missing. | |
15235 | ||
15236 | 2024-02-26 Richard Biener <rguenther@suse.de> | |
15237 | ||
15238 | PR tree-optimization/114068 | |
15239 | * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge): | |
15240 | New function. | |
15241 | (slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI | |
15242 | on the main exit if needed. Remove band-aid for the case | |
15243 | it was missing. | |
15244 | ||
15245 | 2024-02-26 H.J. Lu <hjl.tools@gmail.com> | |
15246 | ||
15247 | PR target/114097 | |
15248 | * config/i386/i386-options.cc (ix86_set_func_type): Check | |
15249 | interrupt instead of noreturn attribute. | |
15250 | ||
15251 | 2024-02-26 Jakub Jelinek <jakub@redhat.com> | |
15252 | ||
15253 | * config/i386/i386.cc (ix86_bitint_type_info): Add support for | |
15254 | !TARGET_64BIT. | |
15255 | ||
15256 | 2024-02-26 Jakub Jelinek <jakub@redhat.com> | |
15257 | ||
15258 | PR tree-optimization/114090 | |
15259 | * match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x): | |
15260 | Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED | |
15261 | types. | |
15262 | ((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise. | |
15263 | ||
15264 | 2024-02-26 Jakub Jelinek <jakub@redhat.com> | |
15265 | ||
15266 | PR middle-end/114084 | |
15267 | * fold-const.cc (fold_binary_loc): Avoid the final associate_trees | |
15268 | if all subtrees of var0 come from one of the op0 or op1 operands | |
15269 | and all subtrees of con0 come from the other one. Don't clear | |
15270 | variables which are never used afterwards. | |
15271 | ||
15272 | 2024-02-26 Richard Biener <rguenther@suse.de> | |
15273 | ||
15274 | PR middle-end/114070 | |
15275 | * genmatch.cc (parser::parse_c_expr): Do not record operand | |
15276 | lists but only mark operators used. | |
15277 | * match.pd ((c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e)): | |
15278 | Properly guard the case of tcc_comparison changing the VEC_COND | |
15279 | value operand type. | |
15280 | ||
15281 | 2024-02-26 Jakub Jelinek <jakub@redhat.com> | |
15282 | ||
15283 | PR target/114094 | |
15284 | * config/i386/i386.cc (x86_function_profiler): Add missing new-line | |
15285 | to printed instruction. | |
15286 | ||
15287 | 2024-02-26 H.J. Lu <hjl.tools@gmail.com> | |
15288 | ||
15289 | PR target/114098 | |
15290 | * config/i386/amxtileintrin.h (_tile_loadconfig): Use | |
15291 | __builtin_ia32_ldtilecfg. | |
15292 | (_tile_storeconfig): Use __builtin_ia32_sttilecfg. | |
15293 | * config/i386/i386-builtin.def (BDESC): Add | |
15294 | __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg. | |
15295 | * config/i386/i386-expand.cc (ix86_expand_builtin): Handle | |
15296 | IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG. | |
15297 | * config/i386/i386.md (ldtilecfg): New pattern. | |
15298 | (sttilecfg): Likewise. | |
15299 | ||
15300 | 2024-02-24 Richard Sandiford <richard.sandiford@arm.com> | |
15301 | ||
15302 | PR tree-optimization/113205 | |
15303 | * tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject | |
15304 | the proposed layout if it does not allow a source partition with | |
15305 | layout 2 to keep that layout. | |
15306 | ||
15307 | 2024-02-24 Jakub Jelinek <jakub@redhat.com> | |
15308 | ||
15309 | * builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro. | |
15310 | * combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro. | |
15311 | * double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros. | |
15312 | * genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro. | |
15313 | (mk_attr_alt): Use HOST_WIDE_INT_0 macro. | |
15314 | * genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1 | |
15315 | macros. | |
15316 | * ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro. | |
15317 | * loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro. | |
15318 | * pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and | |
15319 | HOST_WIDE_INT_UC macros. | |
15320 | * rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro. | |
15321 | * tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro. | |
15322 | * tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro. | |
15323 | * tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U | |
15324 | macros. | |
15325 | * wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro. | |
15326 | * config/i386/constraints.md (define_constraint "L"): Use | |
15327 | HOST_WIDE_INT_C macro. | |
15328 | * config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C | |
15329 | macro. | |
15330 | (movl + movb peephole2): Likewise. | |
15331 | * config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise. | |
15332 | (const_32bit_mask): Likewise. | |
15333 | ||
15334 | 2024-02-24 Jakub Jelinek <jakub@redhat.com> | |
15335 | ||
15336 | PR middle-end/114073 | |
15337 | * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle | |
15338 | VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer | |
15339 | types like vector or complex types. | |
15340 | (gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral | |
15341 | types. Fix up VIEW_CONVERT_EXPR handling. Allow merging | |
15342 | VIEW_CONVERT_EXPR from non-integral/pointer types with a store. | |
15343 | ||
15344 | 2024-02-23 Robin Dapp <rdapp@ventanamicro.com> | |
15345 | ||
15346 | PR target/114028 | |
15347 | * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p): | |
15348 | Return false if inner mode is already Pmode. | |
15349 | (rvv_builder::is_all_same_sequence): New function. | |
15350 | (expand_vec_init): Emit broadcast if sequence is all same. | |
15351 | ||
15352 | 2024-02-23 Richard Sandiford <richard.sandiford@arm.com> | |
15353 | ||
15354 | PR target/113613 | |
15355 | * config/aarch64/aarch64-early-ra.cc | |
15356 | (early_ra::m_current_region): New member variable. | |
15357 | (early_ra::m_fpr_recency): Likewise. | |
15358 | (early_ra::start_new_region): Bump m_current_region. | |
15359 | (early_ra::allocate_colors): Prefer less recently used registers | |
15360 | in the event of a tie. Add a comment to explain why we prefer(ed) | |
15361 | higher-numbered registers. | |
15362 | (early_ra::find_oldest_color): Prefer less recently used registers | |
15363 | here too. | |
15364 | (early_ra::finalize_allocation): Update recency information for | |
15365 | allocated registers. | |
15366 | (early_ra::process_blocks): Initialize m_current_region and | |
15367 | m_fpr_recency. | |
15368 | ||
15369 | 2024-02-23 Richard Sandiford <richard.sandiford@arm.com> | |
15370 | ||
15371 | PR target/113295 | |
15372 | * config/aarch64/aarch64-early-ra.cc | |
15373 | (early_ra::test_strictness): New enum. | |
15374 | (early_ra::is_chain_candidate): Add a strictness parameter to | |
15375 | control whether only correctness matters, or whether both correctness | |
15376 | and heuristics should be used. Handle multiple levels of equivalence. | |
15377 | (early_ra::find_related_start): Update call accordingly. | |
15378 | (early_ra::strided_polarity_pref): Likewise. | |
15379 | (early_ra::form_chains): Likewise. | |
15380 | (early_ra::try_to_chain_allocnos): Use is_chain_candidate in | |
15381 | correctness mode rather than trying to inline the test. | |
15382 | ||
15383 | 2024-02-23 Richard Sandiford <richard.sandiford@arm.com> | |
15384 | ||
15385 | PR target/113295 | |
15386 | * config/aarch64/aarch64-early-ra.cc | |
15387 | (early_ra::find_related_start): Account for definitions by shared | |
15388 | registers when testing for a single register definition. | |
15389 | (early_ra::accumulate_defs): New function. | |
15390 | (early_ra::record_copy): If A shares B's register, fold A's | |
15391 | definition information into B's. Fold A's use information into B's. | |
15392 | ||
15393 | 2024-02-23 H.J. Lu <hjl.tools@gmail.com> | |
15394 | ||
15395 | * configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1 | |
15396 | if R_X86_64_CODE_6_GOTTPOFF is supported. | |
15397 | * config.in: Regenerated. | |
15398 | * configure: Likewise. | |
15399 | * config/i386/predicates.md (apx_ndd_add_memory_operand): Allow | |
15400 | UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported. | |
15401 | ||
15402 | 2024-02-23 Richard Earnshaw <rearnsha@arm.com> | |
15403 | ||
15404 | PR target/108120 | |
15405 | * config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3. | |
15406 | Gate with ARM_HAVE_NEON_<MODE>_ARITH. | |
15407 | ||
15408 | 2024-02-23 Jakub Jelinek <jakub@redhat.com> | |
15409 | ||
15410 | PR rtl-optimization/114054 | |
15411 | * expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use | |
15412 | temp variable instead of target parameter for result. | |
15413 | ||
15414 | 2024-02-23 Jakub Jelinek <jakub@redhat.com> | |
15415 | ||
15416 | PR tree-optimization/114040 | |
15417 | * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow): | |
15418 | Use EQ_EXPR rather than LT_EXPR for g2 condition and change its | |
15419 | probability from likely to unlikely. When handling the true true | |
15420 | store, first cast to limb_access_type and then to l's type. | |
15421 | ||
15422 | 2024-02-23 Richard Biener <rguenther@suse.de> | |
15423 | ||
15424 | PR target/90785 | |
15425 | * config.gcc: Add ia64*-*-* to the list of obsoleted targets. | |
15426 | ||
15427 | 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com> | |
15428 | ||
15429 | PR other/109668 | |
15430 | * config/riscv/arch-canonicalize: Move to python3 | |
15431 | * config/riscv/multilib-generator: Likewise | |
15432 | ||
15433 | 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com> | |
15434 | ||
15435 | * doc/invoke.texi: Document -mcpu. | |
15436 | ||
15437 | 2024-02-23 Lulu Cheng <chenglulu@loongson.cn> | |
15438 | ||
15439 | * configure: Regenerate. | |
15440 | * configure.ac: Add parameter "--fatal-warnings" to assemble | |
15441 | when checking whether the assemble support conditional branch | |
15442 | relaxation. | |
15443 | ||
15444 | 2024-02-22 Jakub Jelinek <jakub@redhat.com> | |
15445 | ||
15446 | PR c/114007 | |
15447 | * doc/extend.texi: (__extension__): Remove comments about scope | |
15448 | tokens vs. two colons. | |
15449 | ||
15450 | 2024-02-22 Andrew Pinski <quic_apinski@quicinc.com> | |
15451 | ||
15452 | PR tree-optimization/109804 | |
15453 | * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle | |
15454 | DEMANGLE_COMPONENT_UNNAMED_TYPE. | |
15455 | ||
15456 | 2024-02-22 Richard Biener <rguenther@suse.de> | |
15457 | ||
15458 | PR tree-optimization/114048 | |
15459 | * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF | |
15460 | can also produce -1 off. | |
15461 | ||
15462 | 2024-02-22 Richard Biener <rguenther@suse.de> | |
15463 | ||
15464 | PR tree-optimization/114027 | |
15465 | * tree-vect-loop.cc (vecctorizable_reduction): Use optimized | |
15466 | condition reduction classification only for single-element | |
15467 | chains. | |
15468 | ||
15469 | 2024-02-22 Jakub Jelinek <jakub@redhat.com> | |
15470 | ||
15471 | PR ipa/111960 | |
15472 | * profile-count.h (profile_count::dump): Remove overload with | |
15473 | char * first argument. | |
15474 | * profile-count.cc (profile_count::dump): Change overload with char * | |
15475 | first argument which uses sprintf into the overfload with FILE * | |
15476 | first argument and use fprintf instead. Remove overload which wrapped | |
15477 | it. | |
15478 | ||
15479 | 2024-02-22 Jakub Jelinek <jakub@redhat.com> | |
15480 | ||
15481 | PR tree-optimization/113993 | |
15482 | * tree-call-cdce.cc (get_no_error_domain): Handle | |
15483 | BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}. Handle | |
15484 | BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for | |
15485 | REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384 | |
15486 | the as the F128 suffixed cases, otherwise as non-suffixed ones. | |
15487 | Handle BUILT_IN_{EXP,POW}10L for | |
15488 | REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384 | |
15489 | as (-inf, 4932). | |
15490 | ||
15491 | 2024-02-22 Jakub Jelinek <jakub@redhat.com> | |
15492 | ||
15493 | PR tree-optimization/114038 | |
15494 | * gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix | |
15495 | loop exit condition if end is divisible by limb_prec. | |
15496 | ||
15497 | 2024-02-22 YunQiang Su <syq@gcc.gnu.org> | |
15498 | ||
15499 | * doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix | |
15500 | problem of mabi=, mno-flush-func, mexplicit-relocs; | |
15501 | add missing leading - of mbranch-cost option. | |
15502 | * config/mips/mips.opt.urls: Regenerate. | |
15503 | ||
15504 | 2024-02-22 Kewen Lin <linkw@linux.ibm.com> | |
15505 | ||
15506 | PR target/109987 | |
15507 | * config/rs6000/constraints.md (we): Update internal doc without | |
15508 | referring to option -mpower9-vector. | |
15509 | * config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector | |
15510 | special handlings. | |
15511 | * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS, | |
15512 | OTHER_P8_VECTOR_MASKS): Merge to ... | |
15513 | (OTHER_VSX_VECTOR_MASKS): ... here. | |
15514 | * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove | |
15515 | some error message handlings and explicit option mask adjustments on | |
15516 | explicit option power{8,9}-vector conflicting with other options. | |
15517 | (rs6000_print_isa_options): Update comments. | |
15518 | (rs6000_disable_incompatible_switches): Remove power{8,9}-vector | |
15519 | related array items and handlings. | |
15520 | * config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector | |
15521 | special handlings. | |
15522 | * config/rs6000/rs6000.opt: Make option power{8,9}-vector as | |
15523 | WarnRemoved. | |
15524 | * doc/extend.texi: Remove documentation referring to option | |
15525 | -mpower8-vector. | |
15526 | * doc/invoke.texi: Remove documentation for option | |
15527 | -mpower{8,9}-vector and adjust some documentation referring to them. | |
15528 | * doc/md.texi: Update documentation for constraint we. | |
15529 | * doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok. | |
15530 | ||
15531 | 2024-02-22 Pan Li <pan2.li@intel.com> | |
15532 | ||
15533 | PR target/114017 | |
15534 | * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade | |
15535 | the version to 0.12. | |
15536 | ||
15537 | 2024-02-21 Edwin Lu <ewlu@rivosinc.com> | |
15538 | ||
15539 | * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert | |
15540 | ||
15541 | 2024-02-21 Edwin Lu <ewlu@rivosinc.com> | |
15542 | Robin Dapp <rdapp.gcc@gmail.com> | |
15543 | ||
15544 | * config/riscv/generic-ooo.md (generic_ooo): Move reservation | |
15545 | (generic_ooo_vec_load): Ditto | |
15546 | (generic_ooo_vec_store): Ditto | |
15547 | (generic_ooo_vec_loadstore_seg): Ditto | |
15548 | (generic_ooo_vec_alu): Ditto | |
15549 | (generic_ooo_vec_fcmp): Ditto | |
15550 | (generic_ooo_vec_imul): Ditto | |
15551 | (generic_ooo_vec_fadd): Ditto | |
15552 | (generic_ooo_vec_fmul): Ditto | |
15553 | (generic_ooo_crypto): Ditto | |
15554 | (generic_ooo_perm): Ditto | |
15555 | (generic_ooo_vec_reduction): Ditto | |
15556 | (generic_ooo_vec_ordered_reduction): Ditto | |
15557 | (generic_ooo_vec_idiv): Ditto | |
15558 | (generic_ooo_vec_float_divsqrt): Ditto | |
15559 | (generic_ooo_vec_mask): Ditto | |
15560 | (generic_ooo_vec_vesetvl): Ditto | |
15561 | (generic_ooo_vec_setrm): Ditto | |
15562 | (generic_ooo_vec_readlen): Ditto | |
15563 | * config/riscv/riscv.md: Include generic-vector-ooo | |
15564 | * config/riscv/generic-vector-ooo.md: New file. To here | |
15565 | ||
15566 | 2024-02-21 Edwin Lu <ewlu@rivosinc.com> | |
15567 | ||
15568 | * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation | |
15569 | (generic_ooo_branch): Ditto | |
15570 | * config/riscv/generic.md (generic_sfb_alu): Ditto | |
15571 | (generic_fmul_half): Ditto | |
15572 | * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types | |
15573 | * config/riscv/sifive-7.md (sifive_7_hfma): Add reservation | |
15574 | (sifive_7_popcount): Ditto | |
15575 | * config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto | |
15576 | * config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto | |
15577 | * config/riscv/vector.md: Change rdfrm to fmove | |
15578 | * config/riscv/zc.md: Change pushpop to load/store | |
15579 | ||
15580 | 2024-02-21 Jonathan Wakely <jwakely@redhat.com> | |
15581 | ||
15582 | * doc/invoke.texi (Warning Options): Fix typos. | |
15583 | ||
15584 | 2024-02-21 David Faust <david.faust@oracle.com> | |
15585 | ||
15586 | * config/bpf/bpf-protos.h (bpf_expand_cpymem): New. | |
15587 | * config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New. | |
15588 | * config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands. | |
15589 | ||
15590 | 2024-02-21 Martin Jambor <mjambor@suse.cz> | |
15591 | ||
15592 | PR ipa/113476 | |
15593 | * ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust | |
15594 | initializers in the contructor. | |
15595 | (ipa_node_params::~ipa_node_params): Release lattices as a vector. | |
15596 | * ipa-cp.h: New file. | |
15597 | * ipa-cp.cc: Include sreal.h and ipa-cp.h. | |
15598 | (ipcp_value_source): Move to ipa-cp.h. | |
15599 | (ipcp_value_base): Likewise. | |
15600 | (ipcp_value): Likewise. | |
15601 | (ipcp_lattice): Likewise. | |
15602 | (ipcp_agg_lattice): Likewise. | |
15603 | (ipcp_bits_lattice): Likewise. | |
15604 | (ipcp_vr_lattice): Likewise. | |
15605 | (ipcp_param_lattices): Likewise. | |
15606 | (ipa_get_parm_lattices): Remove assert latticess is non-NULL. | |
15607 | (ipa_value_from_jfunc): Adjust a check for empty lattices. | |
15608 | (ipa_context_from_jfunc): Likewise. | |
15609 | (ipa_agg_value_from_jfunc): Likewise. | |
15610 | (merge_agg_lats_step): Do not memset new aggregate lattices to zero. | |
15611 | (ipcp_propagate_stage): Allocate lattices in a vector as opposed to | |
15612 | just in contiguous memory. | |
15613 | (ipcp_store_vr_results): Adjust a check for empty lattices. | |
15614 | * auto-profile.cc: Include sreal.h and ipa-cp.h. | |
15615 | * cgraph.cc: Likewise. | |
15616 | * cgraphclones.cc: Likewise. | |
15617 | * cgraphunit.cc: Likewise. | |
15618 | * config/aarch64/aarch64.cc: Likewise. | |
15619 | * config/i386/i386-builtins.cc: Likewise. | |
15620 | * config/i386/i386-expand.cc: Likewise. | |
15621 | * config/i386/i386-features.cc: Likewise. | |
15622 | * config/i386/i386-options.cc: Likewise. | |
15623 | * config/i386/i386.cc: Likewise. | |
15624 | * config/rs6000/rs6000.cc: Likewise. | |
15625 | * config/s390/s390.cc: Likewise. | |
15626 | * gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the | |
15627 | files to be included in gtype-desc.cc. | |
15628 | * gimple-range-fold.cc: Include sreal.h and ipa-cp.h. | |
15629 | * ipa-devirt.cc: Likewise. | |
15630 | * ipa-fnsummary.cc: Likewise. | |
15631 | * ipa-icf.cc: Likewise. | |
15632 | * ipa-inline-analysis.cc: Likewise. | |
15633 | * ipa-inline-transform.cc: Likewise. | |
15634 | * ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher. | |
15635 | * ipa-modref.cc: Include sreal.h and ipa-cp.h. | |
15636 | * ipa-param-manipulation.cc: Likewise. | |
15637 | * ipa-predicate.cc: Likewise. | |
15638 | * ipa-profile.cc: Likewise. | |
15639 | * ipa-prop.cc: Likewise. | |
15640 | (ipa_node_params_t::duplicate): Assert new lattices remain empty | |
15641 | instead of setting them to NULL. | |
15642 | * ipa-pure-const.cc: Include sreal.h and ipa-cp.h. | |
15643 | * ipa-split.cc: Likewise. | |
15644 | * ipa-sra.cc: Likewise. | |
15645 | * ipa-strub.cc: Likewise. | |
15646 | * ipa-utils.cc: Likewise. | |
15647 | * ipa.cc: Likewise. | |
15648 | * toplev.cc: Likewise. | |
15649 | * tree-ssa-ccp.cc: Likewise. | |
15650 | * tree-ssa-sccvn.cc: Likewise. | |
15651 | * tree-vrp.cc: Likewise. | |
15652 | ||
15653 | 2024-02-21 Tamar Christina <tamar.christina@arm.com> | |
15654 | ||
15655 | * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from | |
15656 | Armv8.7-a. | |
15657 | ||
15658 | 2024-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
15659 | ||
15660 | * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): | |
15661 | Use aarch64_gen_compare_zero_and_branch rather than emitting | |
15662 | a CBZ directly. | |
15663 | ||
15664 | 2024-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
15665 | ||
15666 | * config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p): | |
15667 | Remove duplicated call. | |
15668 | ||
15669 | 2024-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
15670 | ||
15671 | * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall): | |
15672 | Check that each individual piece of state is shared in the same | |
15673 | way, rather than using an aggregate check for PSTATE.ZA. | |
15674 | ||
15675 | 2024-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
15676 | ||
15677 | * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): | |
15678 | In the code that commits a lazy save, only zero ZA if the function | |
15679 | has ZA state. Similarly zero ZT0 if the function has ZT0 state. | |
15680 | ||
15681 | 2024-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
15682 | ||
15683 | * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove, | |
15684 | directly inserting the associated sequence | |
15685 | * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): | |
15686 | ...here instead. | |
15687 | ||
15688 | 2024-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
15689 | ||
15690 | PR target/113995 | |
15691 | * config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't | |
15692 | fold the SVE allocation into the initial allocation if the | |
15693 | initial allocation includes a VG save. | |
15694 | ||
15695 | 2024-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
15696 | ||
15697 | PR target/113220 | |
15698 | * cfgrtl.cc (commit_one_edge_insertion): Handle sequences that | |
15699 | contain jumps even if called after initial RTL expansion. | |
15700 | * mode-switching.cc: Include cfgbuild.h. | |
15701 | (optimize_mode_switching): Allow the sequence returned by the | |
15702 | emit hook to contain internal jumps. Record which blocks | |
15703 | contain such jumps and split the blocks at the end. | |
15704 | * config/aarch64/aarch64.cc (aarch64_mode_emit): Check for | |
15705 | non-debug insns when scanning the sequence. | |
15706 | ||
15707 | 2024-02-21 Tobias Burnus <tburnus@baylibre.com> | |
15708 | ||
15709 | * config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch. | |
15710 | * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise. | |
15711 | ||
15712 | 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu> | |
15713 | ||
15714 | * doc/invoke.texi (-mmcu): Add information about MCU specs. | |
15715 | ||
15716 | 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu> | |
15717 | ||
15718 | * doc/invoke.texi (-minrt): Clarify that main | |
15719 | must take no arguments. | |
15720 | ||
15721 | 2024-02-20 Georg-Johann Lay <avr@gjlay.de> | |
15722 | ||
15723 | * config/avr/builtins.def: Use function prototypes of given size | |
15724 | and signedness. | |
15725 | * config/avr/avr.cc (avr_init_builtins): Adjust types required | |
15726 | by builtins.def. | |
15727 | * doc/extend.texi (AVR Built-in Functions): Adjust accordingly. | |
15728 | ||
15729 | 2024-02-20 Georg-Johann Lay <avr@gjlay.de> | |
15730 | ||
15731 | * doc/extend.texi (AVR Built-in Functions): Use @defbuiltin | |
15732 | instead of @table. | |
15733 | ||
15734 | 2024-02-20 Will Hawkins <hawkinsw@obs.cr> | |
15735 | ||
15736 | * config/bpf/bpf.opt: Add help information for -mcpu. | |
15737 | ||
15738 | 2024-02-20 Richard Sandiford <richard.sandiford@arm.com> | |
15739 | ||
15740 | PR target/113805 | |
15741 | * config/aarch64/aarch64-passes.def (pass_late_track_speculation): | |
15742 | New pass. | |
15743 | * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation): | |
15744 | Declare. | |
15745 | * config/aarch64/aarch64.md (is_call): New attribute. | |
15746 | (*and<mode>3nr_compare0): Rename to... | |
15747 | (@aarch64_and<mode>3nr_compare0): ...this. | |
15748 | * config/aarch64/aarch64-sme.md (aarch64_get_sme_state) | |
15749 | (aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes. | |
15750 | * config/aarch64/aarch64-speculation.cc: Update file comment to | |
15751 | describe the new late pass. | |
15752 | (aarch64_do_track_speculation): Handle is_call insns like other calls. | |
15753 | (pass_track_speculation): Add an is_late member variable. | |
15754 | (pass_track_speculation::gate): Run the late pass for streaming- | |
15755 | compatible functions and the early pass for other functions. | |
15756 | (make_pass_track_speculation): Update accordingly. | |
15757 | (make_pass_late_track_speculation): New function. | |
15758 | * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New | |
15759 | function. | |
15760 | (aarch64_guard_switch_pstate_sm): Use it. | |
15761 | ||
15762 | 2024-02-19 Iain Sandoe <iain@sandoe.co.uk> | |
15763 | ||
15764 | * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins): | |
15765 | Register these builtins with a pointer to uint64_t rather than unsigned | |
15766 | DI mode. | |
15767 | ||
15768 | 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com> | |
15769 | ||
15770 | PR target/113615 | |
15771 | * config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"): | |
15772 | Conditionalize on '!TARGET_RDNA2_PLUS'. | |
15773 | * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn) | |
15774 | (gcn_expand_reduc_scalar): | |
15775 | 'gcc_checking_assert (!TARGET_RDNA2_PLUS);'. | |
15776 | ||
15777 | 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com> | |
15778 | ||
15779 | * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost | |
15780 | '__gfx90a__' target CPU definition. Add some safeguards for the future. | |
15781 | ||
15782 | 2024-02-19 Richard Biener <rguenther@suse.de> | |
15783 | ||
15784 | PR rtl-optimization/54052 | |
15785 | * rtl-ssa/blocks.cc (function_info::place_phis): Filter | |
15786 | local defs by LR_OUT. | |
15787 | ||
15788 | 2024-02-19 Jakub Jelinek <jakub@redhat.com> | |
15789 | ||
15790 | PR tree-optimization/113967 | |
15791 | * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require | |
15792 | in condition that @rpos is multiple of vector element size. | |
15793 | ||
15794 | 2024-02-19 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
15795 | ||
15796 | PR target/113696 | |
15797 | * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): | |
15798 | Suppress vsetvl fusion. | |
15799 | ||
15800 | 2024-02-18 H.J. Lu <hjl.tools@gmail.com> | |
15801 | ||
15802 | PR target/113912 | |
15803 | * config/i386/i386.cc (ix86_can_use_push2pop2): New. | |
15804 | (ix86_pro_and_epilogue_can_use_push2pop2): Use it. | |
15805 | (ix86_emit_save_regs): Don't generate push2 if | |
15806 | ix86_can_use_push2pop2 return false. | |
15807 | (ix86_expand_epilogue): Don't generate pop2 if | |
15808 | ix86_can_use_push2pop2 return false. | |
15809 | ||
15810 | 2024-02-18 Georg-Johann Lay <avr@gjlay.de> | |
15811 | ||
15812 | * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel". | |
15813 | Note on complete device support. | |
15814 | ||
15815 | 2024-02-18 Georg-Johann Lay <avr@gjlay.de> | |
15816 | ||
15817 | * doc/extend.texi (AVR Function Attributes): Fuse description | |
15818 | of "signal" and "interrupt" attribute. Link pseudo instruction. | |
15819 | ||
15820 | 2024-02-18 Lulu Cheng <chenglulu@loongson.cn> | |
15821 | ||
15822 | * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant | |
15823 | symbol type conversions. | |
15824 | (__cacop_d): Likewise. | |
15825 | (__cpucfg): Likewise. | |
15826 | (__asrtle_d): Likewise. | |
15827 | (__asrtgt_d): Likewise. | |
15828 | (__lddir_d): Likewise. | |
15829 | (__ldpte_d): Likewise. | |
15830 | (__crc_w_b_w): Likewise. | |
15831 | (__crc_w_h_w): Likewise. | |
15832 | (__crc_w_w_w): Likewise. | |
15833 | (__crc_w_d_w): Likewise. | |
15834 | (__crcc_w_b_w): Likewise. | |
15835 | (__crcc_w_h_w): Likewise. | |
15836 | (__crcc_w_w_w): Likewise. | |
15837 | (__crcc_w_d_w): Likewise. | |
15838 | (__csrrd_w): Likewise. | |
15839 | (__csrwr_w): Likewise. | |
15840 | (__csrxchg_w): Likewise. | |
15841 | (__csrrd_d): Likewise. | |
15842 | (__csrwr_d): Likewise. | |
15843 | (__csrxchg_d): Likewise. | |
15844 | (__iocsrrd_b): Likewise. | |
15845 | (__iocsrrd_h): Likewise. | |
15846 | (__iocsrrd_w): Likewise. | |
15847 | (__iocsrrd_d): Likewise. | |
15848 | (__iocsrwr_b): Likewise. | |
15849 | (__iocsrwr_h): Likewise. | |
15850 | (__iocsrwr_w): Likewise. | |
15851 | (__iocsrwr_d): Likewise. | |
15852 | (__frecipe_s): Likewise. | |
15853 | (__frecipe_d): Likewise. | |
15854 | (__frsqrte_s): Likewise. | |
15855 | (__frsqrte_d): Likewise. | |
15856 | ||
15857 | 2024-02-18 Lulu Cheng <chenglulu@loongson.cn> | |
15858 | ||
15859 | * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the | |
15860 | function return value type to unsigned short. | |
15861 | ||
15862 | 2024-02-16 Edwin Lu <ewlu@rivosinc.com> | |
15863 | ||
15864 | * doc/sourcebuild.texi: add scan-assembler-bound | |
15865 | ||
15866 | 2024-02-16 Jason Merrill <jason@redhat.com> | |
15867 | ||
15868 | * gdbhooks.py: Fix regex syntax. | |
15869 | ||
15870 | 2024-02-16 Richard Biener <rguenther@suse.de> | |
15871 | ||
15872 | PR tree-optimization/113895 | |
15873 | * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable | |
15874 | consistency checking when there are out-of-bound array | |
15875 | accesses. Allow -1 off when from an array reference with | |
15876 | constant index. | |
15877 | ||
15878 | 2024-02-16 Kito Cheng <kito.cheng@sifive.com> | |
15879 | ||
15880 | PR target/106543 | |
15881 | * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm | |
15882 | pattern. | |
15883 | ||
15884 | 2024-02-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
15885 | ||
15886 | * doc/sourcebuild.texi (Effective-Target Keywords, Other | |
15887 | attribugs): Document linker_plugin. | |
15888 | (Require Support): Document dg-require-linker-plugin. | |
15889 | ||
15890 | 2024-02-16 Kito Cheng <kito.cheng@sifive.com> | |
15891 | ||
15892 | PR target/109349 | |
15893 | * common/config/riscv/riscv-common.cc (riscv_arch_help): New. | |
15894 | * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New. | |
15895 | (RISCV_MINOR_VERSION_BASE): Ditto. | |
15896 | (RISCV_REVISION_VERSION_BASE): Ditto. | |
15897 | * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum | |
15898 | rather than magic number. | |
15899 | * config/riscv/riscv.h (riscv_arch_help): New. | |
15900 | (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help. | |
15901 | (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and | |
15902 | --print-supported-extensions. | |
15903 | * config/riscv/riscv.opt (march=help): New. | |
15904 | (print-supported-extensions): New. | |
15905 | (-print-supported-extensions): New. | |
15906 | * doc/invoke.texi (RISC-V Options): Document -march=help. | |
15907 | ||
15908 | 2024-02-16 Tejas Belagod <tejas.belagod@arm.com> | |
15909 | ||
15910 | PR target/113780 | |
15911 | * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls | |
15912 | for indirect calls with 4 or more arguments in pac-enabled functions. | |
15913 | ||
15914 | 2024-02-15 David Faust <david.faust@oracle.com> | |
15915 | ||
15916 | * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to | |
15917 | use ldxb instead of ldxh. | |
15918 | ||
15919 | 2024-02-15 Jakub Jelinek <jakub@redhat.com> | |
15920 | ||
15921 | PR middle-end/113921 | |
15922 | * cfgrtl.h (prepend_insn_to_edge): New declaration. | |
15923 | * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function | |
15924 | comment. | |
15925 | (prepend_insn_to_edge): New function. | |
15926 | * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of | |
15927 | insert_insn_on_edge. | |
15928 | ||
15929 | 2024-02-15 Richard Biener <rguenther@suse.de> | |
15930 | ||
15931 | PR tree-optimization/111156 | |
15932 | * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look | |
15933 | at the pattern stmt if any. | |
15934 | ||
15935 | 2024-02-15 Georg-Johann Lay <avr@gjlay.de> | |
15936 | ||
15937 | PR target/113927 | |
15938 | * config/avr/avr.h (AVR_HAVE_ADIW): New macro. | |
15939 | * config/avr/avr-protos.h (avr_adiw_reg_p): New proto. | |
15940 | * config/avr/avr.cc (avr_adiw_reg_p): New function. | |
15941 | (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS. | |
15942 | Replace test_hard_reg_class (ADDW_REGS, ...) with calls to | |
15943 | * config/avr/avr.md: Same. | |
15944 | (attr "isa") <tiny, no_tiny>: Remove. | |
15945 | <adiw, no_adiw>: Add. | |
15946 | (define_insn, define_insn_and_split): When an alternative has | |
15947 | constraint "w", then set attribute "isa" to "adiw". | |
15948 | * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]: | |
15949 | Built-in define __AVR_HAVE_ADIW__. | |
15950 | * doc/invoke.texi (AVR Options): Document it. | |
15951 | ||
15952 | 2024-02-15 Andrew Stubbs <ams@baylibre.com> | |
15953 | ||
15954 | * config/gcn/gcn-valu.md | |
15955 | (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA. | |
15956 | * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation | |
15957 | details are supported on RDNA devices. | |
15958 | ||
15959 | 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com> | |
15960 | ||
15961 | PR middle-end/113508 | |
15962 | * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m}, | |
15963 | usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3, | |
15964 | smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3): | |
15965 | Add sentence about what the mode m is. | |
15966 | ||
15967 | 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com> | |
15968 | ||
15969 | * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs, | |
15970 | smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the | |
15971 | var. | |
15972 | ||
15973 | 2024-02-15 Richard Biener <rguenther@suse.de> | |
15974 | ||
15975 | * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug | |
15976 | stmts. | |
15977 | ||
15978 | 2024-02-15 Jakub Jelinek <jakub@redhat.com> | |
15979 | ||
15980 | PR tree-optimization/113567 | |
15981 | * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge | |
15982 | _BitInt multiplication, division or modulo with | |
15983 | SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2 | |
15984 | force the affected inputs into a new SSA_NAME. | |
15985 | ||
15986 | 2024-02-14 Uros Bizjak <ubizjak@gmail.com> | |
15987 | ||
15988 | PR target/113871 | |
15989 | * config/i386/mmx.md (V248FI): New mode iterator. | |
15990 | (V24FI_32): DItto. | |
15991 | (vec_shl_<V248FI:mode>): New expander. | |
15992 | (vec_shl_<V24FI_32:mode>): Ditto. | |
15993 | (vec_shr_<V248FI:mode>): Ditto. | |
15994 | (vec_shr_<V24FI_32:mode>): Ditto. | |
15995 | * config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander. | |
15996 | (vec_shr_<V248FI:mode>): Ditto. | |
15997 | ||
15998 | 2024-02-14 Jan Hubicka <jh@suse.cz> | |
15999 | ||
16000 | PR tree-optimization/111054 | |
16001 | * tree-ssa-loop-split.cc (split_loop): Check for profile being present. | |
16002 | ||
16003 | 2024-02-14 Tamar Christina <tamar.christina@arm.com> | |
16004 | ||
16005 | * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations. | |
16006 | ||
16007 | 2024-02-14 Richard Biener <rguenther@suse.de> | |
16008 | ||
16009 | PR tree-optimization/113910 | |
16010 | * bitmap.cc (bitmap_hash): Mix the full element "hash" to | |
16011 | the hashval_t hash. | |
16012 | ||
16013 | 2024-02-14 Jakub Jelinek <jakub@redhat.com> | |
16014 | ||
16015 | * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined. | |
16016 | (pp_integer_with_precision): For unsigned ptrdiff_t printing | |
16017 | with u, o or x print ptrdiff_t argument converted to | |
16018 | unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1. | |
16019 | ||
16020 | 2024-02-14 Richard Biener <rguenther@suse.de> | |
16021 | ||
16022 | PR middle-end/113576 | |
16023 | * expr.cc (do_store_flag): For vector bool compares of vectors | |
16024 | with padding zero that. | |
16025 | * dojump.cc (do_compare_and_jump): Likewise. | |
16026 | ||
16027 | 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com> | |
16028 | ||
16029 | * doc/install.texi (Prerequisites): Update gettext link. | |
16030 | ||
16031 | 2024-02-13 H.J. Lu <hjl.tools@gmail.com> | |
16032 | ||
16033 | PR target/113876 | |
16034 | * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2): | |
16035 | Return false if the incoming stack isn't 16-byte aligned. | |
16036 | ||
16037 | 2024-02-13 Tobias Burnus <tburnus@baylibre.com> | |
16038 | ||
16039 | PR middle-end/113904 | |
16040 | * omp-general.cc (struct omp_ts_info): Update for splitting of | |
16041 | OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR. | |
16042 | * omp-selectors.h (enum omp_tp_type): Replace | |
16043 | OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR. | |
16044 | ||
16045 | 2024-02-13 Monk Chiang <monk.chiang@sifive.com> | |
16046 | ||
16047 | PR target/113742 | |
16048 | * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix | |
16049 | recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI. | |
16050 | ||
16051 | 2024-02-13 Richard Biener <rguenther@suse.de> | |
16052 | ||
16053 | PR tree-optimization/113895 | |
16054 | * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track | |
16055 | offset to discover constant array indices in bits, handle | |
16056 | COMPONENT_REF to bitfields. | |
16057 | ||
16058 | 2024-02-13 Richard Biener <rguenther@suse.de> | |
16059 | ||
16060 | PR tree-optimization/113831 | |
16061 | * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix | |
16062 | typo in comment. | |
16063 | ||
16064 | 2024-02-13 Richard Biener <rguenther@suse.de> | |
16065 | ||
16066 | PR tree-optimization/113902 | |
16067 | * tree-vect-loop.cc (move_early_exit_stmts): Track | |
16068 | last_seen_vuse for VUSE updating. | |
16069 | ||
16070 | 2024-02-13 Tamar Christina <tamar.christina@arm.com> | |
16071 | ||
16072 | PR tree-optimization/113734 | |
16073 | * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of | |
16074 | an early break loop as partial. | |
16075 | ||
16076 | 2024-02-13 Richard Biener <rguenther@suse.de> | |
16077 | ||
16078 | PR tree-optimization/113898 | |
16079 | * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add | |
16080 | missing accumulated off adjustment. | |
16081 | ||
16082 | 2024-02-13 Jakub Jelinek <jakub@redhat.com> | |
16083 | ||
16084 | * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions, | |
16085 | instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare | |
16086 | it against UINT_MAX and ULONG_MAX. | |
16087 | ||
16088 | 2024-02-13 David Malcolm <dmalcolm@redhat.com> | |
16089 | ||
16090 | * diagnostic-core.h (emit_diagnostic_valist): Rename overload | |
16091 | to... | |
16092 | (emit_diagnostic_valist_meta): ...this. | |
16093 | * diagnostic.cc (emit_diagnostic_valist): Likewise, to... | |
16094 | (emit_diagnostic_valist_meta): ...this. | |
16095 | ||
16096 | 2024-02-12 Jakub Jelinek <jakub@redhat.com> | |
16097 | ||
16098 | PR tree-optimization/113849 | |
16099 | * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use | |
16100 | fast path for widening casts where !m_upwards_2limb and lhs_type | |
16101 | has precision which is a multiple of limb_prec. | |
16102 | ||
16103 | 2024-02-12 Jakub Jelinek <jakub@redhat.com> | |
16104 | ||
16105 | PR c++/113674 | |
16106 | * attribs.cc (extract_attribute_substring): Remove. | |
16107 | (lookup_scoped_attribute_spec): Don't call it. | |
16108 | ||
16109 | 2024-02-12 Jakub Jelinek <jakub@redhat.com> | |
16110 | ||
16111 | * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED | |
16112 | and cast to fmt_size_t instead of %lu and cast to unsigned long. | |
16113 | ||
16114 | 2024-02-12 Christophe Lyon <christophe.lyon@linaro.org> | |
16115 | ||
16116 | * Makefile.in: Add no-info dependency. | |
16117 | * configure.ac: Set BUILD_INFO=no-info if makeinfo is not | |
16118 | available. | |
16119 | * configure: Regenerate. | |
16120 | ||
16121 | 2024-02-12 Iain Sandoe <iain@sandoe.co.uk> | |
16122 | ||
16123 | PR target/113855 | |
16124 | * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be | |
16125 | available to all sub-targets. | |
16126 | * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete. | |
16127 | * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete. | |
16128 | ||
16129 | 2024-02-12 Richard Biener <rguenther@suse.de> | |
16130 | ||
16131 | PR tree-optimization/113831 | |
16132 | PR tree-optimization/108355 | |
16133 | * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When | |
16134 | we see variable array indices and get_ref_base_and_extent | |
16135 | can resolve those to constants fix up the ops to constants | |
16136 | as well. | |
16137 | (ao_ref_init_from_vn_reference): Use 'off' member for | |
16138 | ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it. | |
16139 | (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF. | |
16140 | ||
16141 | 2024-02-12 Pan Li <pan2.li@intel.com> | |
16142 | ||
16143 | * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): | |
16144 | Replace args to arguments for misspelled term. | |
16145 | ||
16146 | 2024-02-12 Georg-Johann Lay <avr@gjlay.de> | |
16147 | ||
16148 | PR target/112944 | |
16149 | * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]: | |
16150 | <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init | |
16151 | when not linked with -mrodata-in-ram. | |
16152 | ||
16153 | 2024-02-12 Richard Biener <rguenther@suse.de> | |
16154 | ||
16155 | PR tree-optimization/113863 | |
16156 | * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): | |
16157 | Record crossed virtual PHIs. | |
16158 | * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed | |
16159 | virtual PHIs. | |
16160 | ||
16161 | 2024-02-10 Marek Polacek <polacek@redhat.com> | |
16162 | ||
16163 | DR 2237 | |
16164 | PR c++/107126 | |
16165 | PR c++/97202 | |
16166 | * doc/invoke.texi: Document -Wtemplate-id-cdtor. | |
16167 | ||
16168 | 2024-02-10 Jakub Jelinek <jakub@redhat.com> | |
16169 | ||
16170 | * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix | |
16171 | computation of idx for i == 4 of bitint_prec_huge. | |
16172 | ||
16173 | 2024-02-10 Jakub Jelinek <jakub@redhat.com> | |
16174 | ||
16175 | PR middle-end/110754 | |
16176 | * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE | |
16177 | decls create PARM_DECL with pointer to original type, set | |
16178 | TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE, | |
16179 | DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared. | |
16180 | (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls | |
16181 | wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF. | |
16182 | (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR | |
16183 | of the var as argument. | |
16184 | ||
16185 | 2024-02-10 Jakub Jelinek <jakub@redhat.com> | |
16186 | ||
16187 | * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for | |
16188 | size_t and precision 4 for ptrdiff_t. Formatting fix. | |
16189 | (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers. | |
16190 | Formatting fixes. | |
16191 | (test_pp_format): Test t and z modifiers. | |
16192 | * gcc.cc (read_specs): Use %td instead of %ld and casts to long. | |
16193 | ||
16194 | 2024-02-10 Jakub Jelinek <jakub@redhat.com> | |
16195 | ||
16196 | * ipa-icf.cc (sem_item_optimizer::process_cong_reduction, | |
16197 | sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED | |
16198 | and casts to fmt_size_t instead of "%lu" and casts to unsigned long. | |
16199 | * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC | |
16200 | and casts to fmt_size_t instead of "%ld" and casts to long. | |
16201 | (print_value_expr_statistics, print_type_hash_statistics): Likewise. | |
16202 | * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED | |
16203 | instead of "%lu" and casts to unsigned long. | |
16204 | * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to | |
16205 | unsigned long. | |
16206 | * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC | |
16207 | and casts to fmt_size_t instead of "%ld" and casts to long. | |
16208 | * cfgexpand.cc (dump_stack_var_partition): Use | |
16209 | HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu" | |
16210 | and casts to unsigned long. | |
16211 | * gengtype.cc (adjust_field_rtx_def): Likewise. | |
16212 | * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC | |
16213 | and casts to fmt_size_t instead of "%ld" and casts to long. | |
16214 | * postreload-gcse.cc (dump_hash_table): Likewise. | |
16215 | * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED | |
16216 | and casts to fmt_size_t instead of "%lu" and casts to unsigned long. | |
16217 | (ggc_internal_alloc, ggc_free): Likewise. | |
16218 | * genpreds.cc (write_lookup_constraint_1): Likewise. | |
16219 | (write_insn_constraint_len): Likewise. | |
16220 | * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC | |
16221 | and casts to fmt_size_t instead of "%ld" and casts to long. | |
16222 | * varasm.cc (output_constant_pool_contents): Use | |
16223 | HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long. | |
16224 | * var-tracking.cc (dump_var): Likewise. | |
16225 | ||
16226 | 2024-02-09 Jakub Jelinek <jakub@redhat.com> | |
16227 | ||
16228 | PR tree-optimization/113783 | |
16229 | * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look | |
16230 | through VIEW_CONVERT_EXPR for final cast checks. Handle | |
16231 | VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE | |
16232 | INTEGER_TYPEs. | |
16233 | (gimple_lower_bitint): Don't merge mergeable operations or other | |
16234 | casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs. | |
16235 | * expr.cc (expand_expr_real_1): Don't use convert_modes if either | |
16236 | mode is BLKmode. | |
16237 | ||
16238 | 2024-02-09 Jakub Jelinek <jakub@redhat.com> | |
16239 | ||
16240 | * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC, | |
16241 | HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX, | |
16242 | HOST_SIZE_T_PRINT_HEX_PURE): Define. | |
16243 | * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting | |
16244 | fixes. | |
16245 | ||
16246 | 2024-02-09 Jakub Jelinek <jakub@redhat.com> | |
16247 | ||
16248 | PR middle-end/113415 | |
16249 | * cfgexpand.cc (expand_asm_stmt): For asm goto, use | |
16250 | duplicate_insn_chain to duplicate after_rtl_seq sequence instead | |
16251 | of hand written loop with emit_insn of copy_insn and emit original | |
16252 | after_rtl_seq on the last edge. | |
16253 | ||
16254 | 2024-02-09 Jakub Jelinek <jakub@redhat.com> | |
16255 | ||
16256 | PR tree-optimization/113818 | |
16257 | * gimple-lower-bitint.cc (add_eh_edge): New function. | |
16258 | (bitint_large_huge::handle_load, | |
16259 | bitint_large_huge::lower_mergeable_stmt, | |
16260 | bitint_large_huge::lower_muldiv_stmt): Use it. | |
16261 | ||
16262 | 2024-02-09 Jakub Jelinek <jakub@redhat.com> | |
16263 | ||
16264 | PR tree-optimization/113774 | |
16265 | * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't | |
16266 | emit any comparison if m_first and low + 1 is equal to | |
16267 | m_upwards_2limb, simplify condition for that. If not | |
16268 | single_comparison, not m_first and we can prove that the idx <= low | |
16269 | comparison will be always true, emit instead of idx <= low | |
16270 | comparison low <= low such that cfg cleanup will optimize it at | |
16271 | the end of the pass. | |
16272 | ||
16273 | 2024-02-08 Aldy Hernandez <aldyh@redhat.com> | |
16274 | ||
16275 | PR tree-optimization/113735 | |
16276 | * value-relation.cc (equiv_oracle::add_equiv_to_block): Call | |
16277 | limit_check(). | |
16278 | ||
16279 | 2024-02-08 Georg-Johann Lay <avr@gjlay.de> | |
16280 | ||
16281 | * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New. | |
16282 | (main, print_mcu, diagnose_mrodata_in_ram): Pass it down. | |
16283 | ||
16284 | 2024-02-08 H.J. Lu <hjl.tools@gmail.com> | |
16285 | ||
16286 | PR target/113711 | |
16287 | PR target/113733 | |
16288 | * config/i386/constraints.md: List all constraints with j prefix. | |
16289 | (j>): Change auto-dec to auto-inc in documentation. | |
16290 | (je): Changed to a memory constraint with APX NDD TLS operand | |
16291 | check. | |
16292 | (jM): New memory constraint for APX NDD instructions. | |
16293 | (jO): Likewise. | |
16294 | * config/i386/i386-protos.h (x86_poff_operand_p): Removed. | |
16295 | * config/i386/i386.cc (x86_poff_operand_p): Likewise. | |
16296 | * config/i386/i386.md (*add<dwi>3_doubleword): Use rjO. | |
16297 | (*add<mode>_1[SWI48]): Use je and jM. | |
16298 | (addsi_1_zext): Use jM. | |
16299 | (*addv<dwi>4_doubleword_1[DWI]): Likewise. | |
16300 | (*sub<mode>_1[SWI]): Use jM. | |
16301 | (@add<mode>3_cc_overflow_1[SWI]): Likewise. | |
16302 | (*add<dwi>3_doubleword_cc_overflow_1): Use rjO. | |
16303 | (*and<dwi>3_doubleword): Likewise. | |
16304 | (*anddi_1): Use jM. | |
16305 | (*andsi_1_zext): Likewise. | |
16306 | (*and<mode>_1[SWI24]): Likewise. | |
16307 | (*<code><dwi>3_doubleword[any_or]): Use rjO | |
16308 | (*code<mode>_1[any_or SWI248]): Use jM. | |
16309 | (*<code>si_1_zext[zero_extend + any_or]): Likewise. | |
16310 | * config/i386/predicates.md (apx_ndd_memory_operand): New. | |
16311 | (apx_ndd_add_memory_operand): Likewise. | |
16312 | ||
16313 | 2024-02-08 Georg-Johann Lay <avr@gjlay.de> | |
16314 | ||
16315 | PR target/113824 | |
16316 | * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4. | |
16317 | * doc/avr-mmcu.texi: Rebuild. | |
16318 | ||
16319 | 2024-02-08 Tamar Christina <tamar.christina@arm.com> | |
16320 | ||
16321 | PR tree-optimization/113808 | |
16322 | * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the | |
16323 | value cross iterations. | |
16324 | ||
16325 | 2024-02-08 Georg-Johann Lay <avr@gjlay.de> | |
16326 | ||
16327 | * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always | |
16328 | defines __AVR_PM_BASE_ADDRESS__ if the core has it. | |
16329 | ||
16330 | 2024-02-08 Richard Biener <rguenther@suse.de> | |
16331 | ||
16332 | * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): | |
16333 | Revert last change to dr_may_alias_p. | |
16334 | ||
16335 | 2024-02-08 Georg-Johann Lay <avr@gjlay.de> | |
16336 | ||
16337 | * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to | |
16338 | cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram. | |
16339 | Remove spec asm_misc. | |
16340 | * config/avr/specs.h: Same. | |
16341 | ||
16342 | 2024-02-08 Pan Li <pan2.li@intel.com> | |
16343 | ||
16344 | PR target/113766 | |
16345 | * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make | |
16346 | sure the c.arg_num is >= 2 before checking. | |
16347 | (struct build_frm_base): Ditto. | |
16348 | (struct narrow_alu_def): Ditto. | |
16349 | ||
16350 | 2024-02-07 Richard Biener <rguenther@suse.de> | |
16351 | ||
16352 | PR tree-optimization/113796 | |
16353 | * tree-if-conv.cc (combine_blocks): Wipe range-info before | |
16354 | replacing PHIs and inserting predicates. | |
16355 | ||
16356 | 2024-02-07 Roger Sayle <roger@nextmovesoftware.com> | |
16357 | Uros Bizjak <ubizjak@gmail.com> | |
16358 | ||
16359 | PR target/113690 | |
16360 | * config/i386/i386-features.cc (timode_convert_cst): New helper | |
16361 | function to convert a TImode CONST_SCALAR_INT_P to a V1TImode | |
16362 | CONST_VECTOR. | |
16363 | (timode_scalar_chain::convert_op): Use timode_convert_cst. | |
16364 | (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes. | |
16365 | Use timode_convert_cst. | |
16366 | ||
16367 | 2024-02-07 Victor Do Nascimento <victor.donascimento@arm.com> | |
16368 | ||
16369 | * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. | |
16370 | * config/aarch64/aarch64.h (AARCH64_FL_AIE): New. | |
16371 | (AARCH64_FL_DEBUGv8p9): Likewise. | |
16372 | (AARCH64_FL_FGT2): Likewise.Likewise. | |
16373 | (AARCH64_FL_ITE): Likewise. | |
16374 | (AARCH64_FL_PFAR): Likewise. | |
16375 | (AARCH64_FL_PMUv3_ICNTR): Likewise. | |
16376 | (AARCH64_FL_PMUv3_SS): Likewise. | |
16377 | (AARCH64_FL_PMUv3p9): Likewise. | |
16378 | (AARCH64_FL_RASv2): Likewise. | |
16379 | (AARCH64_FL_S1PIE): Likewise. | |
16380 | (AARCH64_FL_S1POE): Likewise. | |
16381 | (AARCH64_FL_S2PIE): Likewise. | |
16382 | (AARCH64_FL_S2POE): Likewise. | |
16383 | (AARCH64_FL_SCTLR2): Likewise. | |
16384 | (AARCH64_FL_SEBEP): Likewise. | |
16385 | (AARCH64_FL_SPE_FDS): Likewise. | |
16386 | (AARCH64_FL_TCR2): Likewise. | |
16387 | ||
16388 | 2024-02-07 Richard Biener <rguenther@suse.de> | |
16389 | ||
16390 | * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): | |
16391 | Only check whether reads are in-bound in places that are not safe. | |
16392 | Fix dependence check. Add missing newline. Clarify comments. | |
16393 | ||
16394 | 2024-02-07 Tamar Christina <tamar.christina@arm.com> | |
16395 | ||
16396 | PR tree-optimization/113750 | |
16397 | * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check | |
16398 | for single predecessor when doing early break vect. | |
16399 | * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but | |
16400 | after labels. | |
16401 | ||
16402 | 2024-02-07 Tamar Christina <tamar.christina@arm.com> | |
16403 | ||
16404 | PR tree-optimization/113731 | |
16405 | * gimple-iterator.cc (gsi_move_before): Take new parameter for update | |
16406 | method. | |
16407 | * gimple-iterator.h (gsi_move_before): Default new param to | |
16408 | GSI_SAME_STMT. | |
16409 | * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with | |
16410 | GSI_NEW_STMT. | |
16411 | ||
16412 | 2024-02-07 Jakub Jelinek <jakub@redhat.com> | |
16413 | ||
16414 | PR tree-optimization/113756 | |
16415 | * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS, | |
16416 | use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from | |
16417 | of lh_bits value and mask. | |
16418 | ||
16419 | 2024-02-07 Jakub Jelinek <jakub@redhat.com> | |
16420 | ||
16421 | PR tree-optimization/113753 | |
16422 | * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with | |
16423 | UNSIGNED rather than SIGNED. If high or needs_overflow and prec is | |
16424 | not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec | |
16425 | so that they start with r[half_blocks_needed] lowest bit. Fix up | |
16426 | computation of top mask for SIGNED. | |
16427 | ||
16428 | 2024-02-07 Pan Li <pan2.li@intel.com> | |
16429 | ||
16430 | PR target/113766 | |
16431 | * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust | |
16432 | the signature of func. | |
16433 | * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto. | |
16434 | * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make | |
16435 | overloaded func with empty args error. | |
16436 | ||
16437 | 2024-02-06 H.J. Lu <hjl.tools@gmail.com> | |
16438 | ||
16439 | PR target/113689 | |
16440 | * config/i386/i386.cc (x86_64_select_profile_regnum): Return | |
16441 | R10_REG after sorry. | |
16442 | ||
16443 | 2024-02-06 Andrew Carlotti <andrew.carlotti@arm.com> | |
16444 | ||
16445 | * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name): | |
16446 | Move before new caller, and add ".default" suffix. | |
16447 | (get_suffixed_assembler_name): New. | |
16448 | (make_resolver_func): Use get_suffixed_assembler_name. | |
16449 | (aarch64_generate_version_dispatcher_body): Redo name mangling. | |
16450 | ||
16451 | 2024-02-06 Jakub Jelinek <jakub@redhat.com> | |
16452 | ||
16453 | PR target/113763 | |
16454 | * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles | |
16455 | element from std::pair<unsigned int, char> to an unnamed struct. | |
16456 | Adjust uses of tile range variable. | |
16457 | ||
16458 | 2024-02-06 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
16459 | ||
16460 | * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation. | |
16461 | (pre_vsetvl::remove_vsetvl_pre_insns): Ditto. | |
16462 | ||
16463 | 2024-02-06 Jakub Jelinek <jakub@redhat.com> | |
16464 | ||
16465 | PR sanitizer/110676 | |
16466 | * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address | |
16467 | reset maxlen to sizetype maximum. | |
16468 | ||
16469 | 2024-02-06 Jakub Jelinek <jakub@redhat.com> | |
16470 | ||
16471 | PR tree-optimization/113736 | |
16472 | * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use | |
16473 | var's address space for MEM_REF or VIEW_CONVERT_EXPRs. | |
16474 | ||
16475 | 2024-02-06 Jakub Jelinek <jakub@redhat.com> | |
16476 | ||
16477 | PR tree-optimization/113759 | |
16478 | * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision | |
16479 | or from_unsignedN differs from properties of typeN, update typeN | |
16480 | to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not | |
16481 | uselessly convertible to typeN, convert it using fold_convert or | |
16482 | build_and_insert_cast depending on if rhsN is INTEGER_CST or not. | |
16483 | (convert_plusminus_to_widen): Likewise. | |
16484 | ||
16485 | 2024-02-06 Tejas Belagod <tejas.belagod@arm.com> | |
16486 | ||
16487 | PR target/112577 | |
16488 | * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit | |
16489 | vector structure modes correctly. | |
16490 | ||
16491 | 2024-02-05 Christoph Müllner <christoph.muellner@vrull.eu> | |
16492 | ||
16493 | * config/riscv/thead.cc (th_print_operand_address): Fix compiler | |
16494 | warning. | |
16495 | ||
16496 | 2024-02-05 H.J. Lu <hjl.tools@gmail.com> | |
16497 | ||
16498 | PR target/113689 | |
16499 | * config/i386/i386.cc (x86_64_select_profile_regnum): New. | |
16500 | (x86_function_profiler): Call x86_64_select_profile_regnum to | |
16501 | get a scratch register for large model profiling. | |
16502 | ||
16503 | 2024-02-05 Richard Ball <richard.ball@arm.com> | |
16504 | ||
16505 | * config/arm/arm.cc (arm_output_mi_thunk): Emit | |
16506 | insn for bti_c when bti is enabled. | |
16507 | ||
16508 | 2024-02-05 Xi Ruoyao <xry111@xry111.site> | |
16509 | ||
16510 | * config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for | |
16511 | neg. | |
16512 | ||
16513 | 2024-02-05 Xi Ruoyao <xry111@xry111.site> | |
16514 | ||
16515 | * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr. | |
16516 | (neg<mode>2): Change the mode iterator from MSA to IMSA because | |
16517 | in FP arithmetic we cannot use (0 - x) for -x. | |
16518 | (neg<mode>2): New define_insn to implement FP vector negation, | |
16519 | using a bnegi instruction to negate the sign bit. | |
16520 | ||
16521 | 2024-02-05 Richard Biener <rguenther@suse.de> | |
16522 | ||
16523 | PR tree-optimization/113707 | |
16524 | * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After | |
16525 | checking the avail set treat out-of-region defines as | |
16526 | available. | |
16527 | ||
16528 | 2024-02-05 Richard Biener <rguenther@suse.de> | |
16529 | ||
16530 | * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use | |
16531 | the default mode when building a pointer. | |
16532 | ||
16533 | 2024-02-05 Jakub Jelinek <jakub@redhat.com> | |
16534 | ||
16535 | PR tree-optimization/113737 | |
16536 | * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH | |
16537 | has just a single label, remove it and make single successor edge | |
16538 | EDGE_FALLTHRU. | |
16539 | ||
16540 | 2024-02-05 Jakub Jelinek <jakub@redhat.com> | |
16541 | ||
16542 | PR target/113059 | |
16543 | * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper): | |
16544 | Remove REG_DEAD/REG_UNUSED notes at the end of the pass before | |
16545 | df_analyze call. | |
16546 | ||
16547 | 2024-02-05 Richard Biener <rguenther@suse.de> | |
16548 | ||
16549 | PR target/113255 | |
16550 | * config/i386/i386-expand.cc | |
16551 | (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves): | |
16552 | Use a new pseudo for the skipped number of bytes. | |
16553 | ||
16554 | 2024-02-05 Monk Chiang <monk.chiang@sifive.com> | |
16555 | ||
16556 | * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670. | |
16557 | * doc/invoke.texi (RISC-V Options): Add sifive-p450, | |
16558 | sifive-p670. | |
16559 | ||
16560 | 2024-02-05 Monk Chiang <monk.chiang@sifive.com> | |
16561 | ||
16562 | * config/riscv/riscv.md: Include sifive-p400.md. | |
16563 | * config/riscv/sifive-p400.md: New file. | |
16564 | * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter. | |
16565 | * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): | |
16566 | Add sifive_p400. | |
16567 | * config/riscv/riscv.cc (sifive_p400_tune_info): New. | |
16568 | * config/riscv/riscv.h (TARGET_SFB_ALU): Update. | |
16569 | * doc/invoke.texi (RISC-V Options): Add sifive-p400-series | |
16570 | ||
16571 | 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
16572 | ||
16573 | * config/xtensa/xtensa.md (*eqne_zero_masked_bits): | |
16574 | Add missing ":SI" to the match_operator. | |
16575 | ||
16576 | 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
16577 | ||
16578 | * config/xtensa/xtensa.md (SHI): New mode iterator. | |
16579 | (2 split patterns related to constsynth): | |
16580 | Change to also accept HImode operands. | |
16581 | ||
16582 | 2024-02-04 Jeff Law <jlaw@ventanamicro.com> | |
16583 | ||
16584 | * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG | |
16585 | similarly. | |
16586 | ||
16587 | 2024-02-04 Xi Ruoyao <xry111@xry111.site> | |
16588 | ||
16589 | * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the | |
16590 | incorrect expand. | |
16591 | * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr. | |
16592 | (elmsgnbit): Likewise. | |
16593 | (neg<mode:FVEC>2): New define_insn. | |
16594 | * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they | |
16595 | are now instantiated in simd.md. | |
16596 | ||
16597 | 2024-02-04 Xi Ruoyao <xry111@xry111.site> | |
16598 | ||
16599 | * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not | |
16600 | use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is | |
16601 | MAX_MACHINE_MODE. | |
16602 | ||
16603 | 2024-02-04 Li Wei <liwei@loongson.cn> | |
16604 | ||
16605 | * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust. | |
16606 | (loongarch_expand_vselect_vconcat): Ditto. | |
16607 | (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement | |
16608 | all 128-bit constant permutation situations. | |
16609 | (loongarch_expand_lsx_shuffle): Adjust and rename function name. | |
16610 | (loongarch_is_imm_set_shuffle): Renamed function name. | |
16611 | (loongarch_expand_vec_perm_even_odd): Function forward declaration. | |
16612 | (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit | |
16613 | extract-even and extract-odd permutations. | |
16614 | (loongarch_is_odd_extraction): Delete. | |
16615 | (loongarch_is_even_extraction): Ditto. | |
16616 | (loongarch_expand_vec_perm_const): Adjust. | |
16617 | ||
16618 | 2024-02-03 Jakub Jelinek <jakub@redhat.com> | |
16619 | ||
16620 | PR middle-end/113722 | |
16621 | * wide-int.cc (wi::bswap_large): Rename third argument from | |
16622 | len to xlen and adjust use in safe_uhwi. Add len variable, set | |
16623 | it to BLOCKS_NEEDED (precision) and use it for clearing of val | |
16624 | and as canonize argument. Clear val using memset instead of | |
16625 | a loop. | |
16626 | ||
16627 | 2024-02-03 Jakub Jelinek <jakub@redhat.com> | |
16628 | ||
16629 | * ggc-common.cc (gt_pch_save): Allow addr to be equal to | |
16630 | mmi.preferred_base + mmi.size - sizeof (void *). | |
16631 | ||
16632 | 2024-02-03 Xi Ruoyao <xry111@xry111.site> | |
16633 | ||
16634 | * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare. | |
16635 | * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove | |
16636 | the ODR-violating locale declaration. | |
16637 | ||
16638 | 2024-02-02 Tamar Christina <tamar.christina@arm.com> | |
16639 | ||
16640 | PR tree-optimization/113588 | |
16641 | PR tree-optimization/113467 | |
16642 | * tree-vect-data-refs.cc | |
16643 | (vect_analyze_data_ref_dependence): Choose correct dest and fix checks. | |
16644 | (vect_analyze_early_break_dependences): Update comments. | |
16645 | ||
16646 | 2024-02-02 John David Anglin <danglin@gcc.gnu.org> | |
16647 | ||
16648 | PR target/59778 | |
16649 | * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR | |
16650 | and PA_BUILTIN_SET_FPSR builtins. | |
16651 | * (pa_builtins_icode): Declare. | |
16652 | * (def_builtin, pa_fpu_init_builtins): New. | |
16653 | * (pa_init_builtins): Initialize FPU builtins. | |
16654 | * (pa_builtin_decl, pa_expand_builtin_1): New. | |
16655 | * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and | |
16656 | PA_BUILTIN_SET_FPSR builtins. | |
16657 | * (pa_atomic_assign_expand_fenv): New. | |
16658 | * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New | |
16659 | UNSPECV constants. | |
16660 | (get_fpsr, put_fpsr): New expanders. | |
16661 | (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New | |
16662 | insn patterns. | |
16663 | ||
16664 | 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
16665 | ||
16666 | PR target/113697 | |
16667 | * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move. | |
16668 | ||
16669 | 2024-02-02 Jonathan Wakely <jwakely@redhat.com> | |
16670 | ||
16671 | * doc/extend.texi (Common Type Attributes): Fix typo in | |
16672 | description of hardbool. | |
16673 | ||
16674 | 2024-02-02 Jakub Jelinek <jakub@redhat.com> | |
16675 | ||
16676 | PR tree-optimization/113692 | |
16677 | * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts | |
16678 | from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as | |
16679 | final_cast_p. | |
16680 | ||
16681 | 2024-02-02 Jakub Jelinek <jakub@redhat.com> | |
16682 | ||
16683 | PR middle-end/113699 | |
16684 | * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle | |
16685 | uninitialized large/huge _BitInt SSA_NAME inputs. | |
16686 | ||
16687 | 2024-02-02 Jakub Jelinek <jakub@redhat.com> | |
16688 | ||
16689 | PR middle-end/113705 | |
16690 | * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from | |
16691 | around wi::to_wide in order to compare value in prec precision. | |
16692 | ||
16693 | 2024-02-02 Lehua Ding <lehua.ding@rivai.ai> | |
16694 | ||
16695 | Revert: | |
16696 | 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
16697 | ||
16698 | * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation. | |
16699 | ||
16700 | 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
16701 | ||
16702 | * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation. | |
16703 | ||
16704 | 2024-02-02 Pan Li <pan2.li@intel.com> | |
16705 | ||
16706 | * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments. | |
16707 | (riscv_pass_by_reference): Ditto. | |
16708 | (riscv_fntype_abi): Ditto. | |
16709 | ||
16710 | 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
16711 | ||
16712 | * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function. | |
16713 | (pre_vsetvl::cleaup): Remove vsetvl_pre. | |
16714 | (pre_vsetvl::remove_vsetvl_pre_insns): New function. | |
16715 | ||
16716 | 2024-02-02 Jiahao Xu <xujiahao@loongson.cn> | |
16717 | ||
16718 | * config/loongarch/larchintrin.h | |
16719 | (__frecipe_s): Update function return type. | |
16720 | (__frecipe_d): Ditto. | |
16721 | (__frsqrte_s): Ditto. | |
16722 | (__frsqrte_d): Ditto. | |
16723 | ||
16724 | 2024-02-02 Li Wei <liwei@loongson.cn> | |
16725 | ||
16726 | * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New. | |
16727 | (loongarch_vector_costs::add_stmt_cost): Adjust. | |
16728 | ||
16729 | 2024-02-02 Xi Ruoyao <xry111@xry111.site> | |
16730 | ||
16731 | * config/loongarch/loongarch.md (unspec): Add | |
16732 | UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2. | |
16733 | (la_pcrel64_two_parts): New define_insn. | |
16734 | * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a | |
16735 | typo in the comment. | |
16736 | (loongarch_call_tls_get_addr): If -mcmodel=extreme | |
16737 | -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for | |
16738 | addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL | |
16739 | note to allow CSE addressing __tls_get_addr. | |
16740 | (loongarch_legitimize_tls_address): If -mcmodel=extreme | |
16741 | -mexplicit-relocs={always,auto}, address TLS IE symbols with | |
16742 | la_pcrel64_two_parts. | |
16743 | (loongarch_split_symbol): If -mcmodel=extreme | |
16744 | -mexplicit-relocs={always,auto}, address symbols with | |
16745 | la_pcrel64_two_parts. | |
16746 | (loongarch_output_mi_thunk): Clean up unreachable code. If | |
16747 | -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI | |
16748 | thunks with la_pcrel64_two_parts. | |
16749 | ||
16750 | 2024-02-02 Lulu Cheng <chenglulu@loongson.cn> | |
16751 | ||
16752 | * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr): | |
16753 | Add support for call36. | |
16754 | ||
16755 | 2024-02-02 Lulu Cheng <chenglulu@loongson.cn> | |
16756 | ||
16757 | * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p): | |
16758 | When the code model of the symbol is extreme and -mexplicit-relocs=auto, | |
16759 | the macro instruction loading symbol address is not applicable. | |
16760 | (loongarch_call_tls_get_addr): Adjust code. | |
16761 | (loongarch_legitimize_tls_address): Likewise. | |
16762 | ||
16763 | 2024-02-02 Lulu Cheng <chenglulu@loongson.cn> | |
16764 | ||
16765 | * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p): | |
16766 | Add function declaration. | |
16767 | * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p): | |
16768 | For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend" | |
16769 | is not allowed | |
16770 | (loongarch_load_tls): Added macro support in extreme mode. | |
16771 | (loongarch_call_tls_get_addr): Likewise. | |
16772 | (loongarch_legitimize_tls_address): Likewise. | |
16773 | (loongarch_force_address): Likewise. | |
16774 | (loongarch_legitimize_move): Likewise. | |
16775 | (loongarch_output_mi_thunk): Likewise. | |
16776 | (loongarch_option_override_internal): Remove the code that detects | |
16777 | explicit relocs status. | |
16778 | (loongarch_handle_model_attribute): Likewise. | |
16779 | * config/loongarch/loongarch.md (movdi_symbolic_off64): New template. | |
16780 | * config/loongarch/predicates.md (symbolic_off64_operand): New predicate. | |
16781 | (symbolic_off64_or_reg_operand): Likewise. | |
16782 | ||
16783 | 2024-02-02 Lulu Cheng <chenglulu@loongson.cn> | |
16784 | ||
16785 | * config/loongarch/loongarch.cc (loongarch_load_tls): | |
16786 | Load all types of tls symbols through one function. | |
16787 | (loongarch_got_load_tls_gd): Delete. | |
16788 | (loongarch_got_load_tls_ld): Delete. | |
16789 | (loongarch_got_load_tls_ie): Delete. | |
16790 | (loongarch_got_load_tls_le): Delete. | |
16791 | (loongarch_call_tls_get_addr): Modify the called function name. | |
16792 | (loongarch_legitimize_tls_address): Likewise. | |
16793 | * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete. | |
16794 | (@load_tls<mode>): New template. | |
16795 | (@got_load_tls_ld<mode>): Delete. | |
16796 | (@got_load_tls_le<mode>): Delete. | |
16797 | (@got_load_tls_ie<mode>): Delete. | |
16798 | ||
16799 | 2024-02-02 Lulu Cheng <chenglulu@loongson.cn> | |
16800 | ||
16801 | * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function. | |
16802 | (loongarch_legitimize_address): Add logical transformation code. | |
16803 | ||
16804 | 2024-02-01 Marek Polacek <polacek@redhat.com> | |
16805 | ||
16806 | * doc/invoke.texi: Update -Wdangling-reference documentation. | |
16807 | ||
16808 | 2024-02-01 Uros Bizjak <ubizjak@gmail.com> | |
16809 | ||
16810 | PR target/113701 | |
16811 | * config/i386/i386.md (*cmp<dwi>_doubleword): | |
16812 | Do not force SUBREG pieces to pseudos. | |
16813 | ||
16814 | 2024-02-01 John David Anglin <danglin@gcc.gnu.org> | |
16815 | ||
16816 | * config/pa/pa.md (atomic_storedi_1): Fix bug in | |
16817 | alternative 1. | |
16818 | ||
16819 | 2024-02-01 Georg-Johann Lay <avr@gjlay.de> | |
16820 | ||
16821 | * config/avr/avr.cc: Tabify. | |
16822 | ||
16823 | 2024-02-01 Richard Ball <richard.ball@arm.com> | |
16824 | ||
16825 | PR tree-optimization/111268 | |
16826 | * tree-vect-slp.cc (vectorizable_slp_permutation_1): | |
16827 | Add variable-length check for vector input arguments | |
16828 | to a function. | |
16829 | ||
16830 | 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com> | |
16831 | ||
16832 | * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't | |
16833 | hard-code number of SGPR/VGPR/AVGPR registers. | |
16834 | * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of | |
16835 | SGPR/VGPR/AVGPR registers. | |
16836 | ||
16837 | 2024-02-01 Monk Chiang <monk.chiang@sifive.com> | |
16838 | ||
16839 | * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type | |
16840 | attribute, and include sifive-p600.md. | |
16841 | * config/riscv/generic-ooo.md: Update type attribute. | |
16842 | * config/riscv/generic.md: Update type attribute. | |
16843 | * config/riscv/sifive-7.md: Update type attribute. | |
16844 | * config/riscv/sifive-p600.md: New file. | |
16845 | * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter. | |
16846 | * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): | |
16847 | Add sifive_p600. | |
16848 | * config/riscv/riscv.cc (sifive_p600_tune_info): New. | |
16849 | * config/riscv/riscv.h (TARGET_SFB_ALU): Update. | |
16850 | * doc/invoke.texi (RISC-V Options): Add sifive-p600-series | |
16851 | ||
16852 | 2024-02-01 Monk Chiang <monk.chiang@sifive.com> | |
16853 | ||
16854 | * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs, | |
16855 | Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items. | |
16856 | * config/riscv/riscv.opt: New macro for 7 new unprivileged | |
16857 | extensions. | |
16858 | * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs, | |
16859 | Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions. | |
16860 | ||
16861 | 2024-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
16862 | ||
16863 | * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless | |
16864 | -static-libasan. Add missing whitespace. | |
16865 | ||
16866 | 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com> | |
16867 | ||
16868 | * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG) | |
16869 | (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG): | |
16870 | Don't 'define_constants'. | |
16871 | ||
16872 | 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com> | |
16873 | ||
16874 | * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove. | |
16875 | ||
16876 | 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com> | |
16877 | ||
16878 | * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn) | |
16879 | [TARGET_RDNA3]: Adjust. | |
16880 | ||
16881 | 2024-02-01 Richard Biener <rguenther@suse.de> | |
16882 | ||
16883 | PR tree-optimization/113693 | |
16884 | * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail | |
16885 | data when available. | |
16886 | ||
16887 | 2024-02-01 Jakub Jelinek <jakub@redhat.com> | |
16888 | Jason Merrill <jason@redhat.com> | |
16889 | ||
16890 | PR c++/113531 | |
16891 | * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls | |
16892 | on variables which were promoted to TREE_STATIC. | |
16893 | ||
16894 | 2024-02-01 Roger Sayle <roger@nextmovesoftware.com> | |
16895 | Richard Biener <rguenther@suse.de> | |
16896 | ||
16897 | PR target/113560 | |
16898 | * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range | |
16899 | information via tree_non_zero_bits to check if this operand | |
16900 | is suitably extended for a widening (or highpart) multiplication. | |
16901 | (convert_mult_to_widen): Insert explicit casts if the RHS or LHS | |
16902 | isn't already of the claimed type. | |
16903 | ||
16904 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16905 | ||
16906 | Revert: | |
16907 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16908 | ||
16909 | * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation | |
16910 | (generic_ooo_branch): ditto | |
16911 | * config/riscv/generic.md (generic_sfb_alu): ditto | |
16912 | (generic_fmul_half): ditto | |
16913 | * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types | |
16914 | * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation | |
16915 | (sifive_7_popcount): ditto | |
16916 | * config/riscv/vector.md: change rdfrm to fmove | |
16917 | * config/riscv/zc.md: change pushpop to load/store | |
16918 | ||
16919 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16920 | ||
16921 | Revert: | |
16922 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16923 | Robin Dapp <rdapp.gcc@gmail.com> | |
16924 | ||
16925 | * config/riscv/generic-ooo.md (generic_ooo): Move reservation | |
16926 | (generic_ooo_vec_load): ditto | |
16927 | (generic_ooo_vec_store): ditto | |
16928 | (generic_ooo_vec_loadstore_seg): ditto | |
16929 | (generic_ooo_vec_alu): ditto | |
16930 | (generic_ooo_vec_fcmp): ditto | |
16931 | (generic_ooo_vec_imul): ditto | |
16932 | (generic_ooo_vec_fadd): ditto | |
16933 | (generic_ooo_vec_fmul): ditto | |
16934 | (generic_ooo_crypto): ditto | |
16935 | (generic_ooo_perm): ditto | |
16936 | (generic_ooo_vec_reduction): ditto | |
16937 | (generic_ooo_vec_ordered_reduction): ditto | |
16938 | (generic_ooo_vec_idiv): ditto | |
16939 | (generic_ooo_vec_float_divsqrt): ditto | |
16940 | (generic_ooo_vec_mask): ditto | |
16941 | (generic_ooo_vec_vesetvl): ditto | |
16942 | (generic_ooo_vec_setrm): ditto | |
16943 | (generic_ooo_vec_readlen): ditto | |
16944 | * config/riscv/riscv.md: include generic-vector-ooo | |
16945 | * config/riscv/generic-vector-ooo.md: New file. to here | |
16946 | ||
16947 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16948 | ||
16949 | Revert: | |
16950 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16951 | ||
16952 | * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert | |
16953 | ||
16954 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16955 | ||
16956 | * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert | |
16957 | ||
16958 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16959 | Robin Dapp <rdapp.gcc@gmail.com> | |
16960 | ||
16961 | * config/riscv/generic-ooo.md (generic_ooo): Move reservation | |
16962 | (generic_ooo_vec_load): ditto | |
16963 | (generic_ooo_vec_store): ditto | |
16964 | (generic_ooo_vec_loadstore_seg): ditto | |
16965 | (generic_ooo_vec_alu): ditto | |
16966 | (generic_ooo_vec_fcmp): ditto | |
16967 | (generic_ooo_vec_imul): ditto | |
16968 | (generic_ooo_vec_fadd): ditto | |
16969 | (generic_ooo_vec_fmul): ditto | |
16970 | (generic_ooo_crypto): ditto | |
16971 | (generic_ooo_perm): ditto | |
16972 | (generic_ooo_vec_reduction): ditto | |
16973 | (generic_ooo_vec_ordered_reduction): ditto | |
16974 | (generic_ooo_vec_idiv): ditto | |
16975 | (generic_ooo_vec_float_divsqrt): ditto | |
16976 | (generic_ooo_vec_mask): ditto | |
16977 | (generic_ooo_vec_vesetvl): ditto | |
16978 | (generic_ooo_vec_setrm): ditto | |
16979 | (generic_ooo_vec_readlen): ditto | |
16980 | * config/riscv/riscv.md: include generic-vector-ooo | |
16981 | * config/riscv/generic-vector-ooo.md: New file. to here | |
16982 | ||
16983 | 2024-02-01 Edwin Lu <ewlu@rivosinc.com> | |
16984 | ||
16985 | * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation | |
16986 | (generic_ooo_branch): ditto | |
16987 | * config/riscv/generic.md (generic_sfb_alu): ditto | |
16988 | (generic_fmul_half): ditto | |
16989 | * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types | |
16990 | * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation | |
16991 | (sifive_7_popcount): ditto | |
16992 | * config/riscv/vector.md: change rdfrm to fmove | |
16993 | * config/riscv/zc.md: change pushpop to load/store | |
16994 | ||
16995 | 2024-02-01 Andrew Pinski <quic_apinski@quicinc.com> | |
16996 | ||
16997 | PR target/113657 | |
16998 | * config/aarch64/aarch64-simd.md (split for movv8di): | |
16999 | For strict aligned mode, use DImode instead of TImode. | |
17000 | ||
17001 | 2024-01-31 Robin Dapp <rdapp@ventanamicro.com> | |
17002 | ||
17003 | PR middle-end/113607 | |
17004 | * match.pd: Make sure else values match when folding a | |
17005 | vec_cond into a conditional operation. | |
17006 | ||
17007 | 2024-01-31 Marek Polacek <polacek@redhat.com> | |
17008 | ||
17009 | * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14. | |
17010 | ||
17011 | 2024-01-31 Tamar Christina <tamar.christina@arm.com> | |
17012 | Matthew Malcomson <matthew.malcomson@arm.com> | |
17013 | ||
17014 | PR sanitizer/112644 | |
17015 | * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and | |
17016 | memcmp. | |
17017 | * builtins.cc (expand_builtin): Include HWASAN when checking for | |
17018 | builtin inlining. | |
17019 | ||
17020 | 2024-01-31 Richard Biener <rguenther@suse.de> | |
17021 | ||
17022 | PR middle-end/110176 | |
17023 | * match.pd (zext (bool) <= (int) 4294967295u): Make sure | |
17024 | to match INTEGER_CST only without outstanding conversion. | |
17025 | ||
17026 | 2024-01-31 Alex Coplan <alex.coplan@arm.com> | |
17027 | ||
17028 | PR target/111677 | |
17029 | * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use | |
17030 | V16QImode for the full 16-byte FPR saves in the vector PCS case. | |
17031 | ||
17032 | 2024-01-31 Richard Biener <rguenther@suse.de> | |
17033 | ||
17034 | PR tree-optimization/111444 | |
17035 | * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use | |
17036 | vn_reference_lookup_2 when optimistically skipping may-defs. | |
17037 | ||
17038 | 2024-01-31 Richard Biener <rguenther@suse.de> | |
17039 | ||
17040 | PR tree-optimization/113630 | |
17041 | * tree-ssa-pre.cc (compute_avail): Avoid registering a | |
17042 | reference with a representation with not matching base | |
17043 | access size. | |
17044 | ||
17045 | 2024-01-31 Jakub Jelinek <jakub@redhat.com> | |
17046 | ||
17047 | PR rtl-optimization/113656 | |
17048 | * simplify-rtx.cc (simplify_context::simplify_unary_operation_1) | |
17049 | <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary. | |
17050 | ||
17051 | 2024-01-31 Jakub Jelinek <jakub@redhat.com> | |
17052 | ||
17053 | PR debug/113637 | |
17054 | * dwarf2out.cc (loc_list_from_tree_1): Assume integral types | |
17055 | with BLKmode are larger than DWARF2_ADDR_SIZE. | |
17056 | ||
17057 | 2024-01-31 Jakub Jelinek <jakub@redhat.com> | |
17058 | ||
17059 | PR tree-optimization/113639 | |
17060 | * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): | |
17061 | For VIEW_CONVERT_EXPR set rhs1 to its operand. | |
17062 | ||
17063 | 2024-01-31 Richard Biener <rguenther@suse.de> | |
17064 | ||
17065 | PR tree-optimization/113670 | |
17066 | * tree-vect-data-refs.cc (vect_check_gather_scatter): | |
17067 | Make sure we can take the address of the reference base. | |
17068 | ||
17069 | 2024-01-31 Georg-Johann Lay <avr@gjlay.de> | |
17070 | ||
17071 | * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787, | |
17072 | ATA5835, ATtiny64AUTO, ATA5700M322. | |
17073 | * doc/avr-mmcu.texi: Rebuild. | |
17074 | ||
17075 | 2024-01-31 Alexandre Oliva <oliva@adacore.com> | |
17076 | ||
17077 | PR debug/113394 | |
17078 | * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust | |
17079 | caller. | |
17080 | ||
17081 | 2024-01-31 Alexandre Oliva <oliva@adacore.com> | |
17082 | ||
17083 | PR middle-end/112917 | |
17084 | PR middle-end/113100 | |
17085 | * builtins.cc (expand_builtin_stack_address): Use | |
17086 | STACK_ADDRESS_OFFSET. | |
17087 | * doc/extend.texi (__builtin_stack_address): Adjust. | |
17088 | * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define. | |
17089 | * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document. | |
17090 | * doc/tm.texi: Rebuilt. | |
17091 | ||
17092 | 2024-01-31 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17093 | ||
17094 | PR target/113495 | |
17095 | * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove. | |
17096 | (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue. | |
17097 | (pre_vsetvl::compute_transparent): New function. | |
17098 | (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue. | |
17099 | ||
17100 | 2024-01-30 Fangrui Song <maskray@google.com> | |
17101 | ||
17102 | PR target/105576 | |
17103 | * config/i386/constraints.md: Define constraint "Ws". | |
17104 | * doc/md.texi: Document it. | |
17105 | ||
17106 | 2024-01-30 Marek Polacek <polacek@redhat.com> | |
17107 | ||
17108 | PR c++/110358 | |
17109 | PR c++/109640 | |
17110 | * doc/invoke.texi: Update -Wdangling-reference description. | |
17111 | ||
17112 | 2024-01-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
17113 | ||
17114 | * config/xtensa/constraints.md (R, T, U): | |
17115 | Change define_constraint to define_memory_constraint. | |
17116 | * config/xtensa/predicates.md (move_operand): Don't check that a | |
17117 | constant pool operand size is a multiple of UNITS_PER_WORD. | |
17118 | * config/xtensa/xtensa.cc | |
17119 | (xtensa_lra_p, TARGET_LRA_P): Remove. | |
17120 | (xtensa_emit_move_sequence): Remove "if (reload_in_progress)" | |
17121 | clause as it can no longer be true. | |
17122 | (fixup_subreg_mem): Drop function. | |
17123 | (xtensa_output_integer_literal_parts): Consider 16-bit wide | |
17124 | constants. | |
17125 | (xtensa_legitimate_constant_p): Add short-circuit path for | |
17126 | integer load instructions. Don't check that mode size is | |
17127 | at least UNITS_PER_WORD. | |
17128 | * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p() | |
17129 | rather reload_in_progress and reload_completed. | |
17130 | (doloop_end): Drop operand 2. | |
17131 | (movhi_internal): Add alternative loading constant from a | |
17132 | literal pool. | |
17133 | (define_split for DI register_operand): Don't limit to | |
17134 | !TARGET_AUTO_LITPOOLS. | |
17135 | * config/xtensa/xtensa.opt (mlra): Change to no effect. | |
17136 | ||
17137 | 2024-01-30 Pan Li <pan2.li@intel.com> | |
17138 | ||
17139 | * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to | |
17140 | calculate the gpr count required by vls mode. | |
17141 | (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode. | |
17142 | (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr | |
17143 | for vls mode. | |
17144 | (riscv_get_arg_info): Add vls mode handling. | |
17145 | (riscv_pass_by_reference): Return false if arg info has no zero gpr count. | |
17146 | ||
17147 | 2024-01-30 Richard Biener <rguenther@suse.de> | |
17148 | ||
17149 | PR tree-optimization/113659 | |
17150 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
17151 | Handle main exit without virtual use. | |
17152 | ||
17153 | 2024-01-30 Christoph Müllner <christoph.muellner@vrull.eu> | |
17154 | ||
17155 | * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum. | |
17156 | ||
17157 | 2024-01-30 Iain Sandoe <iain@sandoe.co.uk> | |
17158 | ||
17159 | PR libgcc/113403 | |
17160 | * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New. | |
17161 | (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec. | |
17162 | * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New. | |
17163 | * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New. | |
17164 | * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New. | |
17165 | * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New. | |
17166 | ||
17167 | 2024-01-30 Richard Sandiford <richard.sandiford@arm.com> | |
17168 | ||
17169 | PR target/113623 | |
17170 | * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns): | |
17171 | Mark all registers that occur in addresses as needing a GPR. | |
17172 | ||
17173 | 2024-01-30 Richard Sandiford <richard.sandiford@arm.com> | |
17174 | ||
17175 | PR target/113636 | |
17176 | * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take | |
17177 | the containing insn as an extra parameter. Reset debug instructions | |
17178 | if they reference a register that is no longer used by real insns. | |
17179 | (early_ra::apply_allocation): Update calls accordingly. | |
17180 | ||
17181 | 2024-01-30 Jakub Jelinek <jakub@redhat.com> | |
17182 | ||
17183 | PR tree-optimization/113603 | |
17184 | * tree-ssa-strlen.cc (strlen_pass::handle_store): After | |
17185 | count_nonzero_bytes call refetch si using get_strinfo in case it | |
17186 | has been unshared in the meantime. | |
17187 | ||
17188 | 2024-01-30 Jakub Jelinek <jakub@redhat.com> | |
17189 | ||
17190 | PR middle-end/101195 | |
17191 | * except.cc (expand_builtin_eh_return_data_regno): If which doesn't | |
17192 | fit into unsigned HOST_WIDE_INT, return constm1_rtx. | |
17193 | ||
17194 | 2024-01-30 Jin Ma <jinma@linux.alibaba.com> | |
17195 | ||
17196 | * config/riscv/thead.cc (th_print_operand_address): Change %ld | |
17197 | to %lld. | |
17198 | ||
17199 | 2024-01-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu> | |
17200 | Manolis Tsamis <manolis.tsamis@vrull.eu> | |
17201 | Philipp Tomsich <philipp.tomsich@vrull.eu> | |
17202 | ||
17203 | * config/aarch64/aarch64-ldpstp.md: Remove unused mode. | |
17204 | * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp): | |
17205 | Likewise. | |
17206 | * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): | |
17207 | Call on framework moved later. | |
17208 | ||
17209 | 2024-01-29 Jose E. Marchesi <jose.marchesi@oracle.com> | |
17210 | ||
17211 | * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return | |
17212 | instruction in naked function epilogues. | |
17213 | ||
17214 | 2024-01-29 YunQiang Su <syq@gcc.gnu.org> | |
17215 | ||
17216 | PR target/113655 | |
17217 | * configure.ac: Fix typo gcc_cv_as_mips_explicit should be | |
17218 | gcc_cv_as_mips_explicit_relocs. | |
17219 | * configure: Regnerated. | |
17220 | ||
17221 | 2024-01-29 Matthieu Longo <matthieu.longo@arm.com> | |
17222 | ||
17223 | PR target/108933 | |
17224 | * config/arm/arm.md (arm_rev16si2): Convert to define_insn. | |
17225 | Correct generated RTL. | |
17226 | (arm_rev16si2_alt1): Correctly handle conditional execution. | |
17227 | (arm_rev16si2_alt2): Likewise. | |
17228 | ||
17229 | 2024-01-29 Richard Biener <rguenther@suse.de> | |
17230 | ||
17231 | PR middle-end/113622 | |
17232 | * expr.cc (expand_assignment): Spill hard registers if | |
17233 | we index them with a variable offset. | |
17234 | ||
17235 | 2024-01-29 Richard Biener <rguenther@suse.de> | |
17236 | ||
17237 | PR middle-end/113622 | |
17238 | * gimple-isel.cc (gimple_expand_vec_set_extract_expr): | |
17239 | Also allow DECL_HARD_REGISTER variables. | |
17240 | ||
17241 | 2024-01-29 Alex Coplan <alex.coplan@arm.com> | |
17242 | ||
17243 | PR target/113616 | |
17244 | * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add): | |
17245 | Use iterate_safely when iterating over debug uses. | |
17246 | (fixup_debug_uses): Likewise. | |
17247 | (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate | |
17248 | over nondebug insns instead of manually maintaining the next insn. | |
17249 | * iterator-utils.h (class safe_iterator): New. | |
17250 | (iterate_safely): New. | |
17251 | ||
17252 | 2024-01-29 H.J. Lu <hjl.tools@gmail.com> | |
17253 | ||
17254 | PR target/38534 | |
17255 | * config/i386/i386-options.cc (ix86_set_func_type): Save | |
17256 | callee-saved registers in noreturn functions for -O0/-Og. | |
17257 | ||
17258 | 2024-01-29 Tobias Burnus <tburnus@baylibre.com> | |
17259 | ||
17260 | PR target/113615 | |
17261 | * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only | |
17262 | define for !TARGET_RDNA2_PLUS. | |
17263 | ||
17264 | 2024-01-29 Richard Sandiford <richard.sandiford@arm.com> | |
17265 | ||
17266 | PR target/113281 | |
17267 | * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove | |
17268 | workaround for right shifts. | |
17269 | (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR. | |
17270 | (vect_determine_precisions_from_range): Be more selective about | |
17271 | which codes can be narrowed based on their input and output ranges. | |
17272 | For shifts, require at least one more bit of precision than the | |
17273 | maximum shift amount. | |
17274 | ||
17275 | 2024-01-29 Tobias Burnus <tburnus@baylibre.com> | |
17276 | ||
17277 | * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a. | |
17278 | ||
17279 | 2024-01-29 Tobias Burnus <tburnus@baylibre.com> | |
17280 | ||
17281 | * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+, | |
17282 | but keep requiring only newlib 4.3+ and, if gfx1100 is disabled, | |
17283 | LLVM 13.0.1+. | |
17284 | ||
17285 | 2024-01-29 Tobias Burnus <tburnus@baylibre.com> | |
17286 | ||
17287 | PR other/111966 | |
17288 | * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New. | |
17289 | (SET_SRAM_ECC_UNSUPPORTED): Renamed to ... | |
17290 | (SET_SRAM_ECC_UNSET): ... this. | |
17291 | (copy_early_debug_info): Remove gfx900 special case, now handled as | |
17292 | part of the generic handling. | |
17293 | (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h. | |
17294 | ||
17295 | 2024-01-29 Jakub Jelinek <jakub@redhat.com> | |
17296 | ||
17297 | PR tree-optimization/110603 | |
17298 | * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect | |
17299 | setting of pdata->maxlen to vr.upper_bound (which is unconditionally | |
17300 | overwritten anyway). Avoid creating invalid range with minlen | |
17301 | larger than maxlen. Formatting fix. | |
17302 | ||
17303 | 2024-01-29 Richard Biener <rguenther@suse.de> | |
17304 | ||
17305 | PR debug/103047 | |
17306 | * tree-inline.cc (initialize_inlined_parameters): Reverse | |
17307 | the decl chain of inlined parameters. | |
17308 | ||
17309 | 2024-01-28 Iain Sandoe <iain@sandoe.co.uk> | |
17310 | ||
17311 | * config/darwin.cc (darwin_build_constant_cfstring): Prevent over- | |
17312 | alignment of CFString constants by setting DECL_USER_ALIGN. | |
17313 | ||
17314 | 2024-01-28 Iain Sandoe <iain@sandoe.co.uk> | |
17315 | Jakub Jelinek <jakub@redhat.com> | |
17316 | ||
17317 | PR libgcc/113402 | |
17318 | * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED | |
17319 | and BUILT_IN_GCC_NESTED_PTR_DELETED. | |
17320 | * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED, | |
17321 | BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and | |
17322 | rename the library fallbacks to __gcc_nested_func_ptr_created and | |
17323 | __gcc_nested_func_ptr_deleted. | |
17324 | * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created | |
17325 | and __gcc_nested_func_ptr_deleted. | |
17326 | * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for | |
17327 | BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED. | |
17328 | * tree.cc (build_common_builtin_nodes): Build the | |
17329 | BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local | |
17330 | builtins only for non-explicit. | |
17331 | ||
17332 | 2024-01-28 YunQiang Su <syq@gcc.gnu.org> | |
17333 | ||
17334 | * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option. | |
17335 | ||
17336 | 2024-01-27 H.J. Lu <hjl.tools@gmail.com> | |
17337 | ||
17338 | PR target/38534 | |
17339 | * config/i386/i386-options.cc (ix86_set_func_type): Don't | |
17340 | save and restore callee saved registers for a noreturn function | |
17341 | with nothrow or compiled with -fno-exceptions. | |
17342 | ||
17343 | 2024-01-27 H.J. Lu <hjl.tools@gmail.com> | |
17344 | ||
17345 | PR target/103503 | |
17346 | PR target/113312 | |
17347 | * config/i386/i386-expand.cc (ix86_expand_call): Replace | |
17348 | no_caller_saved_registers check with call_saved_registers check. | |
17349 | Clobber all registers that are not used by the callee with | |
17350 | no_callee_saved_registers attribute. | |
17351 | * config/i386/i386-options.cc (ix86_set_func_type): Set | |
17352 | call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for | |
17353 | noreturn function. Disallow no_callee_saved_registers with | |
17354 | interrupt or no_caller_saved_registers attributes together. | |
17355 | (ix86_set_current_function): Replace no_caller_saved_registers | |
17356 | check with call_saved_registers check. | |
17357 | (ix86_handle_no_caller_saved_registers_attribute): Renamed to ... | |
17358 | (ix86_handle_call_saved_registers_attribute): This. | |
17359 | (ix86_gnu_attributes): Add | |
17360 | ix86_handle_call_saved_registers_attribute. | |
17361 | * config/i386/i386.cc (ix86_conditional_register_usage): Replace | |
17362 | no_caller_saved_registers check with call_saved_registers check. | |
17363 | (ix86_function_ok_for_sibcall): Don't allow callee with | |
17364 | no_callee_saved_registers attribute when the calling function | |
17365 | has callee-saved registers. | |
17366 | (ix86_comp_type_attributes): Also check | |
17367 | no_callee_saved_registers. | |
17368 | (ix86_epilogue_uses): Replace no_caller_saved_registers check | |
17369 | with call_saved_registers check. | |
17370 | (ix86_hard_regno_scratch_ok): Likewise. | |
17371 | (ix86_save_reg): Replace no_caller_saved_registers check with | |
17372 | call_saved_registers check. Don't save any registers for | |
17373 | TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with | |
17374 | TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with | |
17375 | no_callee_saved_registers attribute is called. | |
17376 | (find_drap_reg): Replace no_caller_saved_registers check with | |
17377 | call_saved_registers check. | |
17378 | * config/i386/i386.h (call_saved_registers_type): New enum. | |
17379 | (machine_function): Replace no_caller_saved_registers with | |
17380 | call_saved_registers. | |
17381 | * doc/extend.texi: Document no_callee_saved_registers attribute. | |
17382 | ||
17383 | 2024-01-27 Jakub Jelinek <jakub@redhat.com> | |
17384 | ||
17385 | PR tree-optimization/113614 | |
17386 | * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge | |
17387 | widening casts from signed to unsigned types with TRUNC_DIV_EXPR, | |
17388 | TRUNC_MOD_EXPR or FLOAT_EXPR uses. | |
17389 | ||
17390 | 2024-01-27 Jakub Jelinek <jakub@redhat.com> | |
17391 | ||
17392 | PR tree-optimization/113568 | |
17393 | * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): | |
17394 | For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1 | |
17395 | in the widening extension checks. | |
17396 | ||
17397 | 2024-01-27 Jakub Jelinek <jakub@redhat.com> | |
17398 | ||
17399 | * gimple-lower-bitint.cc (gimple_lower_bitint): For | |
17400 | TDF_DETAILS dump mapping of SSA_NAMEs to decls. | |
17401 | ||
17402 | 2024-01-26 Hans-Peter Nilsson <hp@axis.com> | |
17403 | ||
17404 | * cgraphunit.cc (process_function_and_variable_attributes): Tweak | |
17405 | the warning for an attribute-always_inline without inline declaration. | |
17406 | ||
17407 | 2024-01-26 Robin Dapp <rdapp@ventanamicro.com> | |
17408 | ||
17409 | PR other/113575 | |
17410 | * genopinit.cc (main): Split init_all_optabs into functions | |
17411 | of 1000 patterns each. | |
17412 | ||
17413 | 2024-01-26 Tobias Burnus <tburnus@baylibre.com> | |
17414 | ||
17415 | * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to | |
17416 | TM_MULTILIB_CONFIG. | |
17417 | * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100. | |
17418 | * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to | |
17419 | -march/-mtune. | |
17420 | ||
17421 | 2024-01-26 Andrew Stubbs <ams@baylibre.com> | |
17422 | ||
17423 | * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3. | |
17424 | * config/gcn/gcn-valu.md (all_convert): New iterator. | |
17425 | (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New | |
17426 | define_expand, and rename the old one to ... | |
17427 | (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this. | |
17428 | (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ... | |
17429 | (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this. | |
17430 | (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New. | |
17431 | * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly. | |
17432 | (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100. | |
17433 | * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3. | |
17434 | (<u>mulqihi3_scalar): Likewise. | |
17435 | ||
17436 | 2024-01-26 Richard Biener <rguenther@suse.de> | |
17437 | ||
17438 | PR tree-optimization/113602 | |
17439 | * tree-data-ref.cc (dr_analyze_innermost): Fail when | |
17440 | the base object isn't addressable. | |
17441 | ||
17442 | 2024-01-26 Tobias Burnus <tburnus@baylibre.com> | |
17443 | ||
17444 | * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the | |
17445 | "--amdhsa-code-object-version=" argument. | |
17446 | (ASM_SPEC): Use it; replace previous version of it. | |
17447 | ||
17448 | 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17449 | ||
17450 | * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes. | |
17451 | (pre_vsetvl::emit_vsetvl): Ditto. | |
17452 | ||
17453 | 2024-01-26 Jiahao Xu <xujiahao@loongson.cn> | |
17454 | ||
17455 | * config/loongarch/lasx.md (vec_extract<mode>_0): | |
17456 | New define_insn_and_split patten. | |
17457 | ||
17458 | 2024-01-26 Jiahao Xu <xujiahao@loongson.cn> | |
17459 | ||
17460 | * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. | |
17461 | ||
17462 | 2024-01-26 Li Wei <liwei@loongson.cn> | |
17463 | ||
17464 | * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust. | |
17465 | ||
17466 | 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17467 | ||
17468 | PR target/113469 | |
17469 | * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug. | |
17470 | ||
17471 | 2024-01-26 Andrew Pinski <quic_apinski@quicinc.com> | |
17472 | ||
17473 | PR target/100212 | |
17474 | * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid | |
17475 | undefined shift after the call to exact_log2. | |
17476 | ||
17477 | 2024-01-25 Andrew Pinski <quic_apinski@quicinc.com> | |
17478 | ||
17479 | PR target/100204 | |
17480 | * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT` | |
17481 | before taking the negative of it. | |
17482 | ||
17483 | 2024-01-25 Vladimir N. Makarov <vmakarov@redhat.com> | |
17484 | ||
17485 | PR target/113526 | |
17486 | * lra-constraints.cc (curr_insn_transform): Change class even for | |
17487 | spilled pseudo successfully matched with with NO_REGS. | |
17488 | ||
17489 | 2024-01-25 Georg-Johann Lay <avr@gjlay.de> | |
17490 | ||
17491 | PR target/113601 | |
17492 | * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start. | |
17493 | ||
17494 | 2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
17495 | ||
17496 | PR target/112987 | |
17497 | * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New. | |
17498 | (aarch64_expand_epilogue): Use the new function. | |
17499 | (aarch64_split_compare_and_swap): Likewise. | |
17500 | (aarch64_split_atomic_op): Likewise. | |
17501 | ||
17502 | 2024-01-25 Robin Dapp <rdapp.gcc@gmail.com> | |
17503 | ||
17504 | PR middle-end/112971 | |
17505 | * fold-const.cc (simplify_const_binop): New function for binop | |
17506 | simplification of two constant vectors when element-wise | |
17507 | handling is not necessary. | |
17508 | (const_binop): Call new function. | |
17509 | ||
17510 | 2024-01-25 Mary Bennett <mary.bennett@embecosm.com> | |
17511 | ||
17512 | * common/config/riscv/riscv-common.cc: Add XCVbitmanip. | |
17513 | * config/riscv/constraints.md: Likewise. | |
17514 | * config/riscv/corev.def: Likewise. | |
17515 | * config/riscv/corev.md: Likewise. | |
17516 | * config/riscv/predicates.md: Likewise. | |
17517 | * config/riscv/riscv-builtins.cc (AVAIL): Likewise. | |
17518 | * config/riscv/riscv-ftypes.def: Likewise. | |
17519 | * config/riscv/riscv.opt: Likewise. | |
17520 | * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'. | |
17521 | * doc/extend.texi: Add XCVbitmanip builtin documentation. | |
17522 | * doc/sourcebuild.texi: Likewise. | |
17523 | ||
17524 | 2024-01-25 Tobias Burnus <tburnus@baylibre.com> | |
17525 | ||
17526 | * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument. | |
17527 | ||
17528 | 2024-01-25 Yanzhang Wang <yanzhang.wang@intel.com> | |
17529 | ||
17530 | PR target/113538 | |
17531 | * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag. | |
17532 | (riscv_fntype_abi): Ditto. | |
17533 | * config/riscv/riscv.opt: Ditto. | |
17534 | ||
17535 | 2024-01-25 Jakub Jelinek <jakub@redhat.com> | |
17536 | ||
17537 | PR middle-end/113574 | |
17538 | * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift | |
17539 | count against TYPE_PRECISION rather than TYPE_SIZE. | |
17540 | ||
17541 | 2024-01-25 Richard Sandiford <richard.sandiford@arm.com> | |
17542 | ||
17543 | PR target/113572 | |
17544 | * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same): | |
17545 | Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT | |
17546 | ||
17547 | 2024-01-25 Richard Sandiford <richard.sandiford@arm.com> | |
17548 | ||
17549 | PR target/113550 | |
17550 | * config/aarch64/aarch64-simd.md: In the movv8di splitter, check | |
17551 | whether each split instruction is a load that clobbers the source | |
17552 | address. Emit that instruction last if so. | |
17553 | ||
17554 | 2024-01-25 Richard Sandiford <richard.sandiford@arm.com> | |
17555 | ||
17556 | PR target/113485 | |
17557 | * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New | |
17558 | pattern. | |
17559 | (<optab><Vnarrowq><mode>2): Use it instead of generating a | |
17560 | paradoxical subreg for the input. | |
17561 | ||
17562 | 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17563 | ||
17564 | * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function. | |
17565 | (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all | |
17566 | predecessors dump information. | |
17567 | ||
17568 | 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17569 | ||
17570 | * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove | |
17571 | redundant full available computation. | |
17572 | (pre_vsetvl::pre_global_vsetvl_info): Ditto. | |
17573 | ||
17574 | 2024-01-25 Jakub Jelinek <jakub@redhat.com> | |
17575 | ||
17576 | * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns. | |
17577 | * doc/rtl.texi (CONST_VECTOR): Likewise. | |
17578 | ||
17579 | 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17580 | ||
17581 | * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option. | |
17582 | * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto. | |
17583 | (pass_vsetvl::execute): Ditto. | |
17584 | * config/riscv/riscv.opt: Ditto. | |
17585 | ||
17586 | 2024-01-25 Jiahao Xu <xujiahao@loongson.cn> | |
17587 | ||
17588 | * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern. | |
17589 | * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>. | |
17590 | ||
17591 | 2024-01-25 Richard Biener <rguenther@suse.de> | |
17592 | ||
17593 | PR tree-optimization/113576 | |
17594 | * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow | |
17595 | exits with may_be_zero niters when its the last one. | |
17596 | ||
17597 | 2024-01-25 Lulu Cheng <chenglulu@loongson.cn> | |
17598 | ||
17599 | * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p): | |
17600 | For symbols of type tls, non-zero Offset is not generated. | |
17601 | ||
17602 | 2024-01-25 Haochen Gui <guihaoc@gcc.gnu.org> | |
17603 | ||
17604 | * config/rs6000/rs6000-string.cc (expand_block_compare): Enable | |
17605 | P9 with m32 and mpowerpc64. | |
17606 | ||
17607 | 2024-01-25 liuhongt <hongtao.liu@intel.com> | |
17608 | ||
17609 | * config/i386/i386-options.cc (ix86_option_override_internal): | |
17610 | Enable -mlam=u57 by default when compiled with | |
17611 | -fsanitize=hwaddress. | |
17612 | ||
17613 | 2024-01-25 Palmer Dabbelt <palmer@rivosinc.com> | |
17614 | ||
17615 | * common/config/riscv/riscv-common.cc (riscv_implied_info): | |
17616 | Remove {"ztso", "a"}. | |
17617 | ||
17618 | 2024-01-24 Martin Jambor <mjambor@suse.cz> | |
17619 | ||
17620 | PR ipa/108007 | |
17621 | PR ipa/112616 | |
17622 | * cgraph.h (cgraph_edge): Add a parameter to | |
17623 | redirect_call_stmt_to_callee. | |
17624 | * ipa-param-manipulation.h (ipa_param_adjustments): Add a | |
17625 | parameter to modify_call. | |
17626 | (ipa_release_ssas_in_hash): Declare. | |
17627 | * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New | |
17628 | parameter killed_ssas, pass it to padjs->modify_call. | |
17629 | * ipa-param-manipulation.cc (purge_all_uses): New function. | |
17630 | (ipa_param_adjustments::modify_call): New parameter killed_ssas. | |
17631 | Instead of substituting uses, invoke purge_all_uses. If | |
17632 | hash of killed SSAs has not been provided, create a temporary one | |
17633 | and release SSAs that have been added to it. | |
17634 | (compare_ssa_versions): New function. | |
17635 | (ipa_release_ssas_in_hash): Likewise. | |
17636 | * tree-inline.cc (redirect_all_calls): Create | |
17637 | id->killed_new_ssa_names earlier, pass it to edge redirection, | |
17638 | adjust a comment. | |
17639 | (copy_body): Release SSAs in id->killed_new_ssa_names. | |
17640 | ||
17641 | 2024-01-24 Andrew Pinski <quic_apinski@quicinc.com> | |
17642 | ||
17643 | PR target/113486 | |
17644 | * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For | |
17645 | TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno. | |
17646 | ||
17647 | 2024-01-24 Monk Chiang <monk.chiang@sifive.com> | |
17648 | ||
17649 | PR target/113095 | |
17650 | * config/riscv/sfb.md: New splitters to rewrite single bit | |
17651 | sign extension as the condition to SFB instructions. | |
17652 | ||
17653 | 2024-01-24 Jan Hubicka <jh@suse.cz> | |
17654 | ||
17655 | PR middle-end/88345 | |
17656 | * common.opt: (flimit-function-alignment): Reorder alphabeticaly | |
17657 | (fmin-function-alignment): New parameter. | |
17658 | * doc/invoke.texi: (-fmin-function-alignment): Document. | |
17659 | (-falign-functions,-falign-loops,-falign-labels): Mention that | |
17660 | aglinments are ignored in cold code. | |
17661 | * varasm.cc (assemble_start_function): Handle min-function-alignment. | |
17662 | ||
17663 | 2024-01-24 Tamar Christina <tamar.christina@arm.com> | |
17664 | ||
17665 | PR target/109636 | |
17666 | * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3, | |
17667 | mulv2di3): Remove. | |
17668 | * config/aarch64/iterators.md (VQDIV): Remove. | |
17669 | (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI, | |
17670 | SVE_I_SIMD_DI): New. | |
17671 | (VPRED, sve_lane_con): Add V4SI and V2DI. | |
17672 | * config/aarch64/aarch64-sve.md (<optab><mode>3, | |
17673 | @aarch64_pred_<optab><mode>): Support Advanced SIMD types. | |
17674 | (mul<mode>3): New, split from <optab><mode>3. | |
17675 | (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New. | |
17676 | * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>, | |
17677 | *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to | |
17678 | SVE_FULL_HSDI_SIMD_DI. | |
17679 | ||
17680 | 2024-01-24 Tamar Christina <tamar.christina@arm.com> | |
17681 | ||
17682 | PR tree-optimization/113552 | |
17683 | * config/aarch64/aarch64.cc | |
17684 | (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1. | |
17685 | ||
17686 | 2024-01-24 Martin Jambor <mjambor@suse.cz> | |
17687 | ||
17688 | PR ipa/113490 | |
17689 | * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value | |
17690 | count is equal or greater than the limit. Use the limit from the | |
17691 | callee. | |
17692 | ||
17693 | 2024-01-24 YunQiang Su <syq@gcc.gnu.org> | |
17694 | ||
17695 | * configure.ac: Detect the explicit relocs support for | |
17696 | mips, and define C macro MIPS_EXPLICIT_RELOCS. | |
17697 | * config.in: Regenerated. | |
17698 | * configure: Regenerated. | |
17699 | * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs. | |
17700 | * config/mips/mips-opts.h: Define enum mips_explicit_relocs. | |
17701 | * config/mips/mips.cc(mips_set_compression_mode): Sorry if | |
17702 | !TARGET_EXPLICIT_RELOCS instead of just set it. | |
17703 | * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and | |
17704 | TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs. | |
17705 | * config/mips/mips.opt: Introduce -mexplicit-relocs= option | |
17706 | and define -m(no-)explicit-relocs as aliases. | |
17707 | ||
17708 | 2024-01-24 Alex Coplan <alex.coplan@arm.com> | |
17709 | ||
17710 | * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default | |
17711 | to 1. | |
17712 | (-mlate-ldp-fusion): Likewise. | |
17713 | ||
17714 | 2024-01-24 Tamar Christina <tamar.christina@arm.com> | |
17715 | ||
17716 | * tree-vect-loop.cc (vect_get_vect_def, | |
17717 | vect_create_epilog_for_reduction): Rename main_exit_p to | |
17718 | last_val_reduc_p. | |
17719 | ||
17720 | 2024-01-24 Tamar Christina <tamar.christina@arm.com> | |
17721 | ||
17722 | PR tree-optimization/113364 | |
17723 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all | |
17724 | early exits then we must reduce from the first offset for all of them. | |
17725 | ||
17726 | 2024-01-24 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17727 | ||
17728 | PR target/113495 | |
17729 | * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove. | |
17730 | (get_regno): Ditto. | |
17731 | (get_bb_index): Ditto. | |
17732 | (pre_vsetvl::compute_avl_def_data): Ditto. | |
17733 | (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage. | |
17734 | (pre_vsetvl::pre_global_vsetvl_info): Ditto. | |
17735 | ||
17736 | 2024-01-23 Andrew Pinski <quic_apinski@quicinc.com> | |
17737 | Richard Sandiford <richard.sandiford@arm.com> | |
17738 | ||
17739 | PR target/100942 | |
17740 | * ccmp.cc (ccmp_candidate_p): Add outer argument. | |
17741 | Allow if the outer is true and the lhs is used more | |
17742 | than once. | |
17743 | (expand_ccmp_expr): Update call to ccmp_candidate_p. | |
17744 | * expr.h (expand_expr_real_gassign): Declare. | |
17745 | * expr.cc (expand_expr_real_gassign): New function, split out from... | |
17746 | (expand_expr_real_1): ...here. | |
17747 | * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign. | |
17748 | ||
17749 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17750 | ||
17751 | PR target/113089 | |
17752 | * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New. | |
17753 | (fixup_debug_use): New. | |
17754 | (fixup_debug_uses_trailing_add): New. | |
17755 | (fixup_debug_uses): New. Use it ... | |
17756 | (ldp_bb_info::fuse_pair): ... here. | |
17757 | (try_promote_writeback): Call fixup_debug_uses_trailing_add to | |
17758 | fix up debug uses of the base register that are affected by | |
17759 | folding in the trailing add insn. | |
17760 | ||
17761 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17762 | ||
17763 | PR target/113089 | |
17764 | * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair): | |
17765 | Update trailing nondebug uses of the base register in the case | |
17766 | of cancelling writeback. | |
17767 | ||
17768 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17769 | ||
17770 | PR target/113089 | |
17771 | * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New. | |
17772 | (debug_insn_use_iterator): New. | |
17773 | (set_info::first_debug_insn_use): New. | |
17774 | (set_info::debug_insn_uses): New. | |
17775 | * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New. | |
17776 | (set_info::first_debug_insn_use): New. | |
17777 | (set_info::debug_insn_uses): New. | |
17778 | ||
17779 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17780 | ||
17781 | PR target/113356 | |
17782 | * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair): | |
17783 | Don't record hazards against the opposite insn in the pair. | |
17784 | ||
17785 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17786 | ||
17787 | PR target/113070 | |
17788 | * config/aarch64/aarch64-ldp-fusion.cc | |
17789 | (struct stp_change_builder): New. | |
17790 | (decide_stp_strategy): Reanme to ... | |
17791 | (try_repurpose_store): ... this. | |
17792 | (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to | |
17793 | construct stp changes. Fix up uses when inserting new stp insns. | |
17794 | ||
17795 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17796 | ||
17797 | PR target/113070 | |
17798 | * rtl-ssa.h: Include hash-set.h. | |
17799 | * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add | |
17800 | new_sets parameter and use it to keep track of new user-created sets. | |
17801 | (function_info::apply_changes_to_insn): Also call add_def on new sets. | |
17802 | (function_info::change_insns): Add hash_set to keep track of new | |
17803 | user-created defs. Plumb it through. | |
17804 | * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and | |
17805 | apply_changes_to_insn. | |
17806 | ||
17807 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17808 | ||
17809 | PR target/113070 | |
17810 | * rtl-ssa/accesses.cc (function_info::create_use): New. | |
17811 | * rtl-ssa/changes.cc (function_info::finalize_new_accesses): | |
17812 | Ensure new uses end up referring to permanent defs. | |
17813 | * rtl-ssa/functions.h (function_info::create_use): Declare. | |
17814 | ||
17815 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17816 | ||
17817 | PR target/113070 | |
17818 | * rtl-ssa/changes.cc (function_info::change_insns): Split out the call | |
17819 | to finalize_new_accesses from the backwards placement loop, run it | |
17820 | forwards in a separate loop. | |
17821 | ||
17822 | 2024-01-23 Richard Biener <rguenther@suse.de> | |
17823 | ||
17824 | PR tree-optimization/113552 | |
17825 | * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use | |
17826 | floor_log2 instead of exact_log2 on the number of calls. | |
17827 | ||
17828 | 2024-01-23 Jeff Law <jlaw@ventanamicro.com> | |
17829 | Jakub Jelinek <jakub@redhat.com> | |
17830 | ||
17831 | * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to | |
17832 | decl. | |
17833 | ||
17834 | 2024-01-23 Richard Biener <rguenther@suse.de> | |
17835 | ||
17836 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
17837 | Separate single and multi-exit case when creating PHIs between | |
17838 | the main and epilogue. | |
17839 | ||
17840 | 2024-01-23 Richard Sandiford <richard.sandiford@arm.com> | |
17841 | ||
17842 | PR target/112989 | |
17843 | * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip | |
17844 | MODE_single variants of functions that don't take tuple arguments. | |
17845 | ||
17846 | 2024-01-23 Alex Coplan <alex.coplan@arm.com> | |
17847 | ||
17848 | PR target/113114 | |
17849 | * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback): | |
17850 | Don't assert recog success, just punt if the writeback pair | |
17851 | isn't recognized. | |
17852 | ||
17853 | 2024-01-23 Jakub Jelinek <jakub@redhat.com> | |
17854 | ||
17855 | * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add | |
17856 | ATTRIBUTE_UNUSED to decl. | |
17857 | ||
17858 | 2024-01-23 Richard Biener <rguenther@suse.de> | |
17859 | ||
17860 | PR debug/107058 | |
17861 | * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully | |
17862 | handle unexpected but bogus DIE contexts when not checking | |
17863 | enabled. | |
17864 | ||
17865 | 2024-01-23 Jakub Jelinek <jakub@redhat.com> | |
17866 | ||
17867 | PR tree-optimization/113462 | |
17868 | * fold-const.cc (native_interpret_int): Don't punt if total_bytes | |
17869 | is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT. | |
17870 | (fold_view_convert_expr): Use XALLOCAVEC buffers for types with | |
17871 | sizes between 129 and 8192 bytes. | |
17872 | ||
17873 | 2024-01-23 Xi Ruoyao <xry111@xry111.site> | |
17874 | ||
17875 | * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p): | |
17876 | If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false | |
17877 | for SYMBOL_TLS_LDM and SYMBOL_TLS_GD. | |
17878 | (loongarch_call_tls_get_addr): Do not split symbols of | |
17879 | SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is | |
17880 | EXPLICIT_RELOCS_AUTO. | |
17881 | ||
17882 | 2024-01-23 Richard Biener <rguenther@suse.de> | |
17883 | ||
17884 | * alias.cc (known_base_value_p): Remove. | |
17885 | (find_base_value): Remove PLUS/MINUS handling | |
17886 | when both operands are not CONST_INT_P. | |
17887 | ||
17888 | 2024-01-23 Richard Biener <rguenther@suse.de> | |
17889 | ||
17890 | PR rtl-optimization/113255 | |
17891 | * alias.cc (find_base_term): Remove PLUS/MINUS handling | |
17892 | when both operands are not CONST_INT_P. | |
17893 | ||
17894 | 2024-01-23 Richard Biener <rguenther@suse.de> | |
17895 | ||
17896 | PR debug/112718 | |
17897 | * dwarf2out.cc (dwarf2out_finish): Reset all type units | |
17898 | for the fat part of an LTO compile. | |
17899 | ||
17900 | 2024-01-23 chenxiaolong <chenxiaolong@loongson.cn> | |
17901 | ||
17902 | * doc/sourcebuild.texi: Add attributes for keywords. | |
17903 | ||
17904 | 2024-01-23 Sandra Loosemore <sandra@codesourcery.com> | |
17905 | ||
17906 | PR c++/90463 | |
17907 | * doc/invoke.texi (Warning Options): Correct lists of options | |
17908 | enabled by -Wall and -Wextra by checking against common.opt | |
17909 | and c-family/c.opt. | |
17910 | ||
17911 | 2024-01-22 Andrew Pinski <quic_apinski@quicinc.com> | |
17912 | ||
17913 | PR target/113030 | |
17914 | * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias | |
17915 | instead of cpu_optaliases. | |
17916 | (check_arch): Use arch_opt_alias instead of arch_optaliases. | |
17917 | ||
17918 | 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17919 | ||
17920 | * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function. | |
17921 | * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto. | |
17922 | * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x. | |
17923 | ||
17924 | 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17925 | ||
17926 | PR target/109092 | |
17927 | * config/riscv/riscv.md: Use reg instead of subreg. | |
17928 | ||
17929 | 2024-01-22 Tobias Burnus <tburnus@baylibre.com> | |
17930 | ||
17931 | PR other/111966 | |
17932 | * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900 | |
17933 | to match the compiler default. | |
17934 | (simple_object_copy_lto_debug_sections): Never unlink the outfile | |
17935 | on error as the caller does so. | |
17936 | (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error. | |
17937 | (main): Likewise. Fix 'mkoffload.dbg.o' cleanup. | |
17938 | ||
17939 | 2024-01-22 Richard Biener <rguenther@suse.de> | |
17940 | ||
17941 | PR tree-optimization/113373 | |
17942 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
17943 | Create LC PHIs in the exit blocks where necessary. | |
17944 | * tree-vect-loop.cc (vectorizable_live_operation): Do not try | |
17945 | to handle missing LC PHIs. | |
17946 | (find_connected_edge): Remove. | |
17947 | (vect_create_epilog_for_reduction): Cleanup use of auto_vec. | |
17948 | ||
17949 | 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
17950 | ||
17951 | * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes. | |
17952 | ||
17953 | 2024-01-22 xuli <xuli1@eswincomputing.com> | |
17954 | ||
17955 | PR target/113420 | |
17956 | * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove. | |
17957 | (registered_function::overloaded_hash):refactor. | |
17958 | (resolve_overloaded_builtin):avoid internal ICE. | |
17959 | ||
17960 | 2024-01-21 Mikael Pettersson <mikpelinux@gmail.com> | |
17961 | ||
17962 | PR target/82420 | |
17963 | PR target/111279 | |
17964 | * calls.cc (emit_library_call_value_1): Pass valid TYPE | |
17965 | to emit_push_insn. | |
17966 | * expr.cc (emit_push_insn): Likewise. | |
17967 | ||
17968 | 2024-01-21 Jeff Law <jlaw@ventanamicro.com> | |
17969 | ||
17970 | * config/riscv/riscv.cc (riscv_init_cumulative_args): Install | |
17971 | correcction version of last change. | |
17972 | ||
17973 | 2024-01-21 Jeff Law <jlaw@ventanamicro.com> | |
17974 | ||
17975 | * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and | |
17976 | fix bugs in signature. | |
17977 | ||
17978 | 2024-01-21 Roger Sayle <roger@nextmovesoftware.com> | |
17979 | Richard Biener <rguenther@suse.de> | |
17980 | ||
17981 | PR rtl-optimization/111267 | |
17982 | * fwprop.cc (fwprop_propagation::profitabe_p): Rename | |
17983 | profitable_p method to likely_profitable_p. | |
17984 | (try_fwprop_subst_node): Update call to likely_profitable_p. | |
17985 | Only bail-out early when !prop.likely_profitable_p for instructions | |
17986 | that are not single sets. When comparing costs, bail-out if the | |
17987 | cost is unchanged and !prop.likely_profitable_p. | |
17988 | ||
17989 | 2024-01-21 Sandra Loosemore <sandra@codesourcery.com> | |
17990 | ||
17991 | PR c++/90464 | |
17992 | * doc/invoke.texi (Warning Options): Document that -Wunused-parameter | |
17993 | isn't enabled by -Wunused unless -Wextra is provided, and that | |
17994 | -Wunused does enable -Wunused-const-variable=1 for C. Clarify that | |
17995 | -Wunused doesn't enable -Wunused-* options documented as behaving | |
17996 | otherwise, and list them explicitly. | |
17997 | ||
17998 | 2024-01-21 Sandra Loosemore <sandra@codesourcery.com> | |
17999 | ||
18000 | PR c/109708 | |
18001 | * doc/invoke.texi (Warning Options): Fix broken example and | |
18002 | clean up/reorganize the others. Also describe what the short-form | |
18003 | options mean. | |
18004 | ||
18005 | 2024-01-20 Sandra Loosemore <sandra@codesourcery.com> | |
18006 | ||
18007 | PR c/102998 | |
18008 | * doc/invoke.texi (Option Summary): Add -Warray-parameter. | |
18009 | (Warning Options): Correct/edit discussion of -Warray-parameter | |
18010 | to make the first example less confusing, and fill in missing info. | |
18011 | ||
18012 | 2024-01-20 Jakub Jelinek <jakub@redhat.com> | |
18013 | ||
18014 | PR tree-optimization/113462 | |
18015 | * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): | |
18016 | Handle rhs1 INTEGER_CST like SSA_NAME. | |
18017 | ||
18018 | 2024-01-20 Jakub Jelinek <jakub@redhat.com> | |
18019 | ||
18020 | PR tree-optimization/113491 | |
18021 | * tree-switch-conversion.cc (switch_conversion::build_constructors): | |
18022 | If elt.index has precision higher than sizetype, fold_convert it to | |
18023 | sizetype. | |
18024 | (switch_conversion::array_value_type): Return type if type is | |
18025 | BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode. | |
18026 | (switch_conversion::build_arrays): Use unsigned_type_for rather than | |
18027 | lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision | |
18028 | above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision | |
18029 | higher than sizetype, use sizetype as tidx type and fold_convert the | |
18030 | subtraction to sizetype. | |
18031 | ||
18032 | 2024-01-20 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18033 | ||
18034 | * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning. | |
18035 | (riscv_vector_mode_supported_any_target_p): Ditto. | |
18036 | ||
18037 | 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com> | |
18038 | ||
18039 | PR target/110934 | |
18040 | * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function. | |
18041 | (TARGET_ZERO_CALL_USED_REGS): Define. | |
18042 | ||
18043 | 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com> | |
18044 | ||
18045 | PR target/108640 | |
18046 | * config/m68k/m68k.cc (output_andsi3): Use QImode for | |
18047 | address adjusted for 1-byte RMW access. | |
18048 | (output_iorsi3): Likewise. | |
18049 | (output_xorsi3): Likewise. | |
18050 | ||
18051 | 2024-01-19 Kito Cheng <kito.cheng@sifive.com> | |
18052 | ||
18053 | * doc/invoke.texi (RISC-V Options): Add list of supported | |
18054 | extensions. | |
18055 | ||
18056 | 2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18057 | ||
18058 | PR target/113495 | |
18059 | * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM]. | |
18060 | (RVV_VUNDEF): Ditto. | |
18061 | * config/riscv/riscv-vsetvl.cc: Add timevar. | |
18062 | ||
18063 | 2024-01-19 Richard Biener <rguenther@suse.de> | |
18064 | ||
18065 | PR debug/113488 | |
18066 | * lto-streamer-in.cc (lto_read_tree_1): When there isn't | |
18067 | an early DIE but there should be, do not pretend there is. | |
18068 | ||
18069 | 2024-01-19 Richard Biener <rguenther@suse.de> | |
18070 | ||
18071 | PR tree-optimization/113494 | |
18072 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
18073 | Handle endless loop on exit. Handle re-allocated PHI. | |
18074 | ||
18075 | 2024-01-19 Jakub Jelinek <jakub@redhat.com> | |
18076 | ||
18077 | PR tree-optimization/113464 | |
18078 | * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to | |
18079 | optimize loads into GIMPLE_ASM stmts. | |
18080 | ||
18081 | 2024-01-19 Jakub Jelinek <jakub@redhat.com> | |
18082 | ||
18083 | PR tree-optimization/113463 | |
18084 | * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range): | |
18085 | Only look through NOP_EXPRs if rhs1 doesn't have wider type than | |
18086 | lhs. | |
18087 | ||
18088 | 2024-01-19 Jakub Jelinek <jakub@redhat.com> | |
18089 | ||
18090 | PR tree-optimization/113459 | |
18091 | * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use | |
18092 | TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE | |
18093 | of SCALAR_INT_TYPE_MODE if type has BLKmode. | |
18094 | (vn_reference_lookup_3): Likewise. Formatting fix. | |
18095 | ||
18096 | 2024-01-19 Jakub Jelinek <jakub@redhat.com> | |
18097 | Richard Biener <rguenther@suse.de> | |
18098 | ||
18099 | * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode | |
18100 | VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory. | |
18101 | * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing | |
18102 | but adjust_address also for BLKmode mode and MEM op0. | |
18103 | ||
18104 | 2024-01-19 Palmer Dabbelt <palmer@rivosinc.com> | |
18105 | ||
18106 | * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr | |
18107 | extensions. | |
18108 | ||
18109 | 2024-01-19 Kito Cheng <kito.cheng@sifive.com> | |
18110 | ||
18111 | * doc/invoke.texi (RISC-V Options): Document the syntax of -march. | |
18112 | ||
18113 | 2024-01-19 Kito Cheng <kito.cheng@sifive.com> | |
18114 | ||
18115 | * common/config/riscv/riscv-common.cc | |
18116 | (riscv_subset_list::parse_std_ext): Remove. | |
18117 | (riscv_subset_list::parse_multiletter_ext): Remove. | |
18118 | * config/riscv/riscv-subset.h | |
18119 | (riscv_subset_list::parse_std_ext): Remove. | |
18120 | (riscv_subset_list::parse_multiletter_ext): Remove. | |
18121 | ||
18122 | 2024-01-19 Kito Cheng <kito.cheng@sifive.com> | |
18123 | ||
18124 | * common/config/riscv/riscv-common.cc | |
18125 | (riscv_subset_list::parse_single_std_ext): New parameter. | |
18126 | (riscv_subset_list::parse_single_multiletter_ext): Ditto. | |
18127 | (riscv_subset_list::parse_single_ext): Ditto. | |
18128 | (riscv_subset_list::parse): Relax the order for the input of ISA | |
18129 | string. | |
18130 | * config/riscv/riscv-subset.h | |
18131 | (riscv_subset_list::parse_single_std_ext): New parameter. | |
18132 | (riscv_subset_list::parse_single_multiletter_ext): Ditto. | |
18133 | (riscv_subset_list::parse_single_ext): Ditto. | |
18134 | ||
18135 | 2024-01-19 Kito Cheng <kito.cheng@sifive.com> | |
18136 | ||
18137 | * common/config/riscv/riscv-common.cc | |
18138 | (riscv_subset_list::parse_base_ext): New. | |
18139 | (riscv_subset_list::parse): Extract part of logic into | |
18140 | riscv_subset_list::parse_base_ext. | |
18141 | * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext): | |
18142 | New. | |
18143 | ||
18144 | 2024-01-19 Kito Cheng <kito.cheng@sifive.com> | |
18145 | ||
18146 | * config/riscv/riscv.cc (riscv_override_options_internal): Tweak | |
18147 | sorry message. | |
18148 | ||
18149 | 2024-01-19 Kuan-Lin Chen <rufus@andestech.com> | |
18150 | ||
18151 | * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to | |
18152 | UNSPEC_CLMUL_VC. | |
18153 | ||
18154 | 2024-01-19 Sandra Loosemore <sandra@codesourcery.com> | |
18155 | ||
18156 | PR c/110029 | |
18157 | * doc/extend.texi (Common Variable Attributes): Explain what | |
18158 | happens when multiple variables with cleanups are in the same scope. | |
18159 | ||
18160 | 2024-01-18 Sandra Loosemore <sandra@codesourcery.com> | |
18161 | ||
18162 | PR ipa/108470 | |
18163 | * doc/extend.texi (Common Function Attributes): Document that | |
18164 | noinline also disables some interprocedural optimizations and | |
18165 | improve flow to the part about using inline asm instead to | |
18166 | disable calls from being optimized away completely. Remove the | |
18167 | sentence that says noipa is mainly for internal compiler testing. | |
18168 | ||
18169 | 2024-01-18 John David Anglin <danglin@gcc.gnu.org> | |
18170 | ||
18171 | PR tree-optimization/69807 | |
18172 | * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT. | |
18173 | ||
18174 | 2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca> | |
18175 | ||
18176 | PR target/108521 | |
18177 | * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin | |
18178 | from x86 Windows Options. | |
18179 | ||
18180 | 2024-01-18 Sandra Loosemore <sandra@codesourcery.com> | |
18181 | ||
18182 | PR c/107942 | |
18183 | * doc/extend.texi (C Extensions): Add new section to menu. | |
18184 | (Function Attributes): Move dangling index entries to.... | |
18185 | (Const and Volatile Functions): New section. | |
18186 | ||
18187 | 2024-01-18 David Malcolm <dmalcolm@redhat.com> | |
18188 | ||
18189 | PR middle-end/112684 | |
18190 | * toplev.cc (toplev::main): Don't ICE in | |
18191 | -fdiagnostics-generate-patch when exiting after options, | |
18192 | since no edit context will have been created. | |
18193 | ||
18194 | 2024-01-18 Richard Biener <rguenther@suse.de> | |
18195 | ||
18196 | * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate | |
18197 | operands vector. | |
18198 | ||
18199 | 2024-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
18200 | ||
18201 | * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp | |
18202 | when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'. | |
18203 | ||
18204 | 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com> | |
18205 | Jin Ma <jinma@linux.alibaba.com> | |
18206 | Xianmiao Qu <cooper.qu@linux.alibaba.com> | |
18207 | Christoph Müllner <christoph.muellner@vrull.eu> | |
18208 | ||
18209 | * config/riscv/thead.cc | |
18210 | (th_asm_output_opcode): Rewrite some instructions. | |
18211 | ||
18212 | 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com> | |
18213 | Jin Ma <jinma@linux.alibaba.com> | |
18214 | Xianmiao Qu <cooper.qu@linux.alibaba.com> | |
18215 | Christoph Müllner <christoph.muellner@vrull.eu> | |
18216 | ||
18217 | * config/riscv/riscv.md (none,thv,rvv): New attribute. | |
18218 | (no,yes): Add an attribute to disable alternative | |
18219 | for xtheadvector or RVV1.0. | |
18220 | * config/riscv/vector.md: | |
18221 | Disable alternatives that destination register overlaps | |
18222 | source register group for xtheadvector. | |
18223 | ||
18224 | 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com> | |
18225 | Jin Ma <jinma@linux.alibaba.com> | |
18226 | Xianmiao Qu <cooper.qu@linux.alibaba.com> | |
18227 | Christoph Müllner <christoph.muellner@vrull.eu> | |
18228 | ||
18229 | * config/riscv/riscv-vector-builtins-bases.cc | |
18230 | (class th_loadstore_width): Define new builtin bases. | |
18231 | (class th_extract): Define new builtin bases. | |
18232 | (BASE): Define new builtin bases. | |
18233 | * config/riscv/riscv-vector-builtins-bases.h: | |
18234 | Define new builtin class. | |
18235 | * config/riscv/riscv-vector-builtins-shapes.cc | |
18236 | (struct th_loadstore_width_def): Define new builtin shapes. | |
18237 | (struct th_indexed_loadstore_width_def): | |
18238 | Define new builtin shapes. | |
18239 | (struct th_extract_def): Define new builtin shapes. | |
18240 | (SHAPE): Define new builtin shapes. | |
18241 | * config/riscv/riscv-vector-builtins-shapes.h: | |
18242 | Define new builtin shapes. | |
18243 | * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION): | |
18244 | Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics. | |
18245 | * config/riscv/riscv-vector-builtins.h | |
18246 | (enum required_ext): Add new XTheadVector member. | |
18247 | (struct function_group_info): Likewise. | |
18248 | * config/riscv/t-riscv: | |
18249 | Add thead-vector-builtins-functions.def | |
18250 | * config/riscv/thead-vector.md | |
18251 | (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns. | |
18252 | (*pred_mov_width<vlmem_op_attr><mode>): Likewise. | |
18253 | (@pred_store_width<vlmem_op_attr><mode>): Likewise. | |
18254 | (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise. | |
18255 | (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise. | |
18256 | (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise. | |
18257 | (@pred_th_extract<mode>): Likewise. | |
18258 | (*pred_th_extract<mode>): Likewise. | |
18259 | * config/riscv/thead-vector-builtins-functions.def: New file. | |
18260 | ||
18261 | 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com> | |
18262 | Jin Ma <jinma@linux.alibaba.com> | |
18263 | Xianmiao Qu <cooper.qu@linux.alibaba.com> | |
18264 | Christoph Müllner <christoph.muellner@vrull.eu> | |
18265 | ||
18266 | * config.gcc: Add files for XTheadVector intrinsics. | |
18267 | * config/riscv/autovec.md: Guard XTheadVector. | |
18268 | * config/riscv/predicates.md: Disable immediate vl | |
18269 | for XTheadVector. | |
18270 | * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): | |
18271 | Add pragma for XTheadVector. | |
18272 | * config/riscv/riscv-string.cc (riscv_expand_block_move): | |
18273 | Guard XTheadVector. | |
18274 | * config/riscv/riscv-v.cc (vls_mode_valid_p): | |
18275 | Avoid autovec. | |
18276 | * config/riscv/riscv-vector-builtins-bases.cc: | |
18277 | Do not normalize vsetvl instructions for XTheadVector. | |
18278 | * config/riscv/riscv-vector-builtins-shapes.cc (check_type): | |
18279 | New check type function. | |
18280 | (build_one): Adjust for XTheadVector. | |
18281 | * config/riscv/riscv-vector-switch.def (ENTRY): | |
18282 | Disable fractional mode for the XTheadVector extension. | |
18283 | (TUPLE_ENTRY): Likewise. | |
18284 | * config/riscv/riscv.cc (riscv_v_adjust_bytesize): | |
18285 | Guard XTheadVector. | |
18286 | (riscv_preferred_simd_mode): Likewsie. | |
18287 | (riscv_autovectorize_vector_modes): Likewise. | |
18288 | (riscv_vector_mode_supported_any_target_p): Likewise. | |
18289 | (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise. | |
18290 | * config/riscv/thead.cc (th_asm_output_opcode): | |
18291 | Rewrite vsetvl instructions. | |
18292 | * config/riscv/vector.md: | |
18293 | Include thead-vector.md and change fractional LMUL | |
18294 | into 1 for vbool. | |
18295 | * config/riscv/riscv_th_vector.h: New file. | |
18296 | * config/riscv/thead-vector.md: New file. | |
18297 | ||
18298 | 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com> | |
18299 | Jin Ma <jinma@linux.alibaba.com> | |
18300 | Xianmiao Qu <cooper.qu@linux.alibaba.com> | |
18301 | Christoph Müllner <christoph.muellner@vrull.eu> | |
18302 | ||
18303 | * config/riscv/riscv-protos.h (riscv_asm_output_opcode): | |
18304 | Add new function to add assembler insn code prefix/suffix. | |
18305 | (th_asm_output_opcode): | |
18306 | Add Thead function to add assembler insn code prefix/suffix. | |
18307 | * config/riscv/riscv.cc (riscv_asm_output_opcode): | |
18308 | Implement function to add assembler insn code prefix/suffix. | |
18309 | * config/riscv/riscv.h (ASM_OUTPUT_OPCODE): | |
18310 | Add new function to add assembler insn code prefix/suffix. | |
18311 | * config/riscv/thead.cc (th_asm_output_opcode): | |
18312 | Implement Thead function to add assembler insn code | |
18313 | prefix/suffix. | |
18314 | ||
18315 | 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com> | |
18316 | Jin Ma <jinma@linux.alibaba.com> | |
18317 | Xianmiao Qu <cooper.qu@linux.alibaba.com> | |
18318 | Christoph Müllner <christoph.muellner@vrull.eu> | |
18319 | ||
18320 | * common/config/riscv/riscv-common.cc | |
18321 | (riscv_subset_list::parse): Add new vendor extension. | |
18322 | * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): | |
18323 | Add test marco. | |
18324 | * config/riscv/riscv.opt: Add new mask. | |
18325 | ||
18326 | 2024-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
18327 | ||
18328 | * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec | |
18329 | to be conditional on macosx-version-min. | |
18330 | ||
18331 | 2024-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
18332 | ||
18333 | * config/darwin.cc (darwin_objc1_section): Use the correct | |
18334 | meta-data version for constant strings. | |
18335 | (machopic_select_section): Assert if we fail to handle CFString | |
18336 | sections as Obejctive-C meta-data or drectly. | |
18337 | ||
18338 | 2024-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
18339 | ||
18340 | * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX, | |
18341 | OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME, | |
18342 | OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax | |
18343 | versions when the object format is Mach-O. | |
18344 | ||
18345 | 2024-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
18346 | ||
18347 | PR target/105522 | |
18348 | * config/darwin.cc (machopic_select_section): Handle C and C++ | |
18349 | CFStrings. | |
18350 | (darwin_rename_builtins): Move this out of the CFString code. | |
18351 | (darwin_libc_has_function): Likewise. | |
18352 | (darwin_build_constant_cfstring): Create an anonymous var to | |
18353 | hold each CFString. | |
18354 | * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant | |
18355 | CFstrings. | |
18356 | ||
18357 | 2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
18358 | ||
18359 | PR bootstrap/113445 | |
18360 | * haifa-sched.cc (dep_list_size): Make global. | |
18361 | * sched-deps.cc (find_inc): Use instead of sd_lists_size(). | |
18362 | * sched-int.h (dep_list_size): Declare. | |
18363 | ||
18364 | 2024-01-18 Martin Jambor <mjambor@suse.cz> | |
18365 | ||
18366 | PR tree-optimization/110422 | |
18367 | * tree-sra.cc (scan_function): Disqualify bases of operands of asm | |
18368 | gotos. | |
18369 | ||
18370 | 2024-01-18 Richard Biener <rguenther@suse.de> | |
18371 | ||
18372 | PR tree-optimization/113475 | |
18373 | * gimple-range-phi.h (phi_analyzer::m_phi_groups): New. | |
18374 | * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize. | |
18375 | (phi_analyzer::~phi_analyzer): Deallocate and free collected | |
18376 | phi_grous. | |
18377 | (phi_analyzer::process_phi): Record allocated phi_groups. | |
18378 | ||
18379 | 2024-01-18 Richard Biener <rguenther@suse.de> | |
18380 | ||
18381 | * tree-vect-stmts.cc (vectorizable_store): Do not allocate | |
18382 | storage for gvec_oprnds elements. | |
18383 | ||
18384 | 2024-01-18 Richard Biener <rguenther@suse.de> | |
18385 | ||
18386 | * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment, | |
18387 | prefer all later exits we can handle. | |
18388 | (vect_analyze_loop_form): Free the allocated loop body. | |
18389 | Adjust comments. | |
18390 | ||
18391 | 2024-01-18 Georg-Johann Lay <avr@gjlay.de> | |
18392 | ||
18393 | * config/avr/avr-log.cc: Tabify. | |
18394 | ||
18395 | 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18396 | ||
18397 | * config/riscv/autovec.md: Support vi variant. | |
18398 | ||
18399 | 2024-01-18 Georg-Johann Lay <avr@gjlay.de> | |
18400 | ||
18401 | * config/avr/avr-devices.cc: Tabify. | |
18402 | ||
18403 | 2024-01-18 Georg-Johann Lay <avr@gjlay.de> | |
18404 | ||
18405 | * config/avr/avr-c.cc: Tabify. | |
18406 | ||
18407 | 2024-01-18 Georg-Johann Lay <avr@gjlay.de> | |
18408 | ||
18409 | * config/avr/driver-avr.cc: Tabify. | |
18410 | ||
18411 | 2024-01-18 Georg-Johann Lay <avr@gjlay.de> | |
18412 | ||
18413 | * config/avr/gen-avr-mmcu-texi.cc: Tabify. | |
18414 | ||
18415 | 2024-01-18 Georg-Johann Lay <avr@gjlay.de> | |
18416 | ||
18417 | * config/avr/gen-avr-mmcu-specs.cc: Tabify. | |
18418 | ||
18419 | 2024-01-18 Jakub Jelinek <jakub@redhat.com> | |
18420 | ||
18421 | * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check, | |
18422 | minline-strcmp, minline-strncmp, minline-strlen, | |
18423 | -param=riscv-vector-abi): Remove Bool keywords. | |
18424 | ||
18425 | 2024-01-18 Jakub Jelinek <jakub@redhat.com> | |
18426 | ||
18427 | PR target/113122 | |
18428 | * config/i386/i386.cc (x86_function_profiler): Add -masm=intel | |
18429 | support. Add missing space after , in emitted assembly in some | |
18430 | cases. Formatting fixes. | |
18431 | ||
18432 | 2024-01-18 Xi Ruoyao <xry111@xry111.site> | |
18433 | ||
18434 | * config/loongarch/loongarch.md (movsi_internal): Remove | |
18435 | constraint z. | |
18436 | ||
18437 | 2024-01-18 Georg-Johann Lay <avr@gjlay.de> | |
18438 | ||
18439 | * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo | |
18440 | in the diagnostic, and capitalize the device name. | |
18441 | (print_mcu): Generate specs such that: | |
18442 | <*check_rodata_in_ram>: New. | |
18443 | <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram. | |
18444 | <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram. | |
18445 | <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove. | |
18446 | ||
18447 | 2024-01-18 Jakub Jelinek <jakub@redhat.com> | |
18448 | ||
18449 | PR other/113399 | |
18450 | * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add | |
18451 | Common and Optimization. | |
18452 | ||
18453 | 2024-01-18 Richard Biener <rguenther@suse.de> | |
18454 | ||
18455 | PR tree-optimization/113431 | |
18456 | * tree-vect-data-refs.cc (vect_preserves_scalar_order_p): | |
18457 | When there is an invariant load we might not preserve | |
18458 | scalar order. | |
18459 | ||
18460 | 2024-01-18 Richard Biener <rguenther@suse.de> | |
18461 | ||
18462 | PR tree-optimization/113374 | |
18463 | * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New. | |
18464 | * tree-vect-loop.cc (move_early_exit_stmts): Update | |
18465 | virtual LC PHIs. | |
18466 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
18467 | Refactor. Preserve virtual LC PHIs on all exits. | |
18468 | ||
18469 | 2024-01-18 Lulu Cheng <chenglulu@loongson.cn> | |
18470 | ||
18471 | * config/loongarch/loongarch.cc (loongarch_split_symbol): | |
18472 | Assign the '/u' attribute to the mem. | |
18473 | ||
18474 | 2024-01-18 Sandra Loosemore <sandra@codesourcery.com> | |
18475 | ||
18476 | PR middle-end/110847 | |
18477 | * doc/invoke.texi (Option Summary): Document negative forms of | |
18478 | -Wtsan and -Wxor-used-as-pow. | |
18479 | (Warning Options): Likewise. | |
18480 | ||
18481 | 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18482 | ||
18483 | PR target/113429 | |
18484 | * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug. | |
18485 | ||
18486 | 2024-01-18 Sandra Loosemore <sandra@codesourcery.com> | |
18487 | ||
18488 | * doc/extend.texi (Common Function Attributes): Re-alphabetize | |
18489 | the table. | |
18490 | (Common Variable Attributes): Likewise. | |
18491 | (Common Type Attributes): Likewise. | |
18492 | ||
18493 | 2024-01-17 Sandra Loosemore <sandra@codesourcery.com> | |
18494 | ||
18495 | PR middle-end/111659 | |
18496 | * doc/extend.texi (Common Variable Attributes): Fix long lines | |
18497 | in documentation of strict_flex_array + other minor copy-editing. | |
18498 | Add a cross-reference to -Wstrict-flex-arrays. | |
18499 | * doc/invoke.texi (Option Summary): Fix whitespace in tables | |
18500 | before -fstrict-flex-arrays and -Wstrict-flex-arrays. | |
18501 | (C Dialect Options): Combine the docs for the two | |
18502 | -fstrict-flex-arrays forms into a single entry. Note this option | |
18503 | is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays. | |
18504 | (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only. | |
18505 | Minor copy-editing. Add cross references to the strict_flex_array | |
18506 | attribute and -fstrict-flex-arrays option. Add note that this | |
18507 | option depends on -ftree-vrp. | |
18508 | ||
18509 | 2024-01-17 Andrew Pinski <quic_apinski@quicinc.com> | |
18510 | ||
18511 | PR target/113221 | |
18512 | * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg, | |
18513 | only allow REG operands instead of allowing all. | |
18514 | ||
18515 | 2024-01-17 Vineet Gupta <vineetg@rivosinc.com> | |
18516 | ||
18517 | * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info): | |
18518 | Remove redundant checks in else condition for readablity. | |
18519 | (earliest_fuse_vsetvl_info) Print iteration count in debug | |
18520 | prints. | |
18521 | (earliest_fuse_vsetvl_info) Fix misleading vsetvl info | |
18522 | dump details in certain cases. | |
18523 | ||
18524 | 2024-01-17 Vineet Gupta <vineetg@rivosinc.com> | |
18525 | ||
18526 | * config/riscv/riscv.opt: New -param=vsetvl-strategy. | |
18527 | * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum. | |
18528 | * config/riscv/riscv-vsetvl.cc | |
18529 | (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy. | |
18530 | (pass_vsetvl::execute): Use vsetvl_strategy. | |
18531 | ||
18532 | 2024-01-17 Jan Hubicka <jh@suse.cz> | |
18533 | ||
18534 | * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove | |
18535 | accidental hack reseting offset. | |
18536 | ||
18537 | 2024-01-17 Jan Hubicka <jh@suse.cz> | |
18538 | ||
18539 | * config/i386/i386-options.cc (ix86_option_override_internal): Fix | |
18540 | handling of X86_TUNE_AVOID_512FMA_CHAINS. | |
18541 | ||
18542 | 2024-01-17 Jan Hubicka <jh@suse.cz> | |
18543 | Jakub Jelinek <jakub@redhat.com> | |
18544 | ||
18545 | PR tree-optimization/110852 | |
18546 | * predict.cc (expr_expected_value_1): Fix profile merging of PHI and | |
18547 | binary operations | |
18548 | (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and | |
18549 | PRED_COMBINED_VALUE_PREDICTIONS_PHI | |
18550 | * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor. | |
18551 | (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor. | |
18552 | ||
18553 | 2024-01-17 Jakub Jelinek <jakub@redhat.com> | |
18554 | ||
18555 | PR tree-optimization/113421 | |
18556 | * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function | |
18557 | comment. | |
18558 | (bitint_dom_walker::before_dom_children): Add g temporary to simplify | |
18559 | formatting. Start at vop rather than cvop even if stmt is a store | |
18560 | and needs_operand_addr. | |
18561 | ||
18562 | 2024-01-17 Jakub Jelinek <jakub@redhat.com> | |
18563 | ||
18564 | PR middle-end/113410 | |
18565 | * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes): | |
18566 | If access_nelts is integral with larger precision than sizetype, | |
18567 | fold_convert it to sizetype. | |
18568 | ||
18569 | 2024-01-17 Jakub Jelinek <jakub@redhat.com> | |
18570 | ||
18571 | PR tree-optimization/113408 | |
18572 | * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For | |
18573 | VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1 | |
18574 | to handle_cast. | |
18575 | ||
18576 | 2024-01-17 Jakub Jelinek <jakub@redhat.com> | |
18577 | ||
18578 | PR middle-end/113406 | |
18579 | * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p | |
18580 | regardless of whether is_gimple_reg_type (restype) or not. | |
18581 | ||
18582 | 2024-01-17 Jakub Jelinek <jakub@redhat.com> | |
18583 | ||
18584 | * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo, | |
18585 | funcions -> functions, and use were instead of was. | |
18586 | * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function | |
18587 | and guaranteee -> guarantee. | |
18588 | * attribs.h (struct attr_access): Fix comment typo funcion -> function. | |
18589 | ||
18590 | 2024-01-17 Jakub Jelinek <jakub@redhat.com> | |
18591 | ||
18592 | PR middle-end/113409 | |
18593 | * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like | |
18594 | INTEGER_TYPE. | |
18595 | (omp_extract_for_data): Use build_bitint_type rather than | |
18596 | build_nonstandard_integer_type if either iter_type or loop->v type | |
18597 | is BITINT_TYPE. | |
18598 | * omp-expand.cc (expand_omp_for_generic, | |
18599 | expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle | |
18600 | BITINT_TYPE like INTEGER_TYPE. | |
18601 | ||
18602 | 2024-01-17 Richard Biener <rguenther@suse.de> | |
18603 | ||
18604 | PR tree-optimization/113371 | |
18605 | * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): | |
18606 | Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED. | |
18607 | * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do | |
18608 | not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED. | |
18609 | ||
18610 | 2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
18611 | ||
18612 | PR rtl-optimization/96388 | |
18613 | PR rtl-optimization/111554 | |
18614 | * sched-deps.cc (find_inc): Avoid exponential behavior. | |
18615 | ||
18616 | 2024-01-17 Sandra Loosemore <sandra@codesourcery.com> | |
18617 | ||
18618 | PR c/111693 | |
18619 | * doc/invoke.texi (Option Summary): Move -Wuseless-cast | |
18620 | from C++ Language Options to Warning Options. Add entry for | |
18621 | -Wuse-after-free. | |
18622 | (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast | |
18623 | from here.... | |
18624 | (Warning Options): ...to here. Minor copy-editing to fix typo | |
18625 | and grammar. | |
18626 | ||
18627 | 2024-01-17 YunQiang Su <syq@gcc.gnu.org> | |
18628 | ||
18629 | * config/mips/mips.cc (mips_compute_frame_info): If another | |
18630 | register is used as global_pointer, mark $GP live false. | |
18631 | ||
18632 | 2024-01-17 Sandra Loosemore <sandra@codesourcery.com> | |
18633 | ||
18634 | PR target/112973 | |
18635 | * doc/extend.texi (BPF Built-in Functions): Wrap long lines and | |
18636 | give the section a light copy-editing pass. | |
18637 | ||
18638 | 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
18639 | ||
18640 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU. | |
18641 | * config/aarch64/aarch64-tune.md: Regenerated. | |
18642 | * doc/invoke.texi (-mcpu): Add cobalt-100 core. | |
18643 | ||
18644 | 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com> | |
18645 | ||
18646 | PR target/112573 | |
18647 | * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate | |
18648 | badly formed CONST expressions. | |
18649 | ||
18650 | 2024-01-16 Daniel Cederman <cederman@gaisler.com> | |
18651 | ||
18652 | * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty | |
18653 | ||
18654 | 2024-01-16 Daniel Cederman <cederman@gaisler.com> | |
18655 | ||
18656 | * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic | |
18657 | * config/sparc/sync.md (membar_storeload): Turn into named insn | |
18658 | and add GR712RC errata workaround. | |
18659 | (membar_v8): Add GR712RC errata workaround. | |
18660 | ||
18661 | 2024-01-16 Andreas Larsson <andreas@gaisler.com> | |
18662 | ||
18663 | * config/sparc/sync.md (*membar_storeload_leon3): Remove | |
18664 | (*membar_storeload): Enable for LEON | |
18665 | ||
18666 | 2024-01-16 Jakub Jelinek <jakub@redhat.com> | |
18667 | ||
18668 | PR tree-optimization/113372 | |
18669 | PR middle-end/90348 | |
18670 | PR middle-end/110115 | |
18671 | PR middle-end/111422 | |
18672 | * cfgexpand.cc (add_scope_conflicts_2): New function. | |
18673 | (add_scope_conflicts_1): Use it. | |
18674 | ||
18675 | 2024-01-16 Georg-Johann Lay <avr@gjlay.de> | |
18676 | ||
18677 | * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32) | |
18678 | (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add. | |
18679 | * doc/avr-mmcu.texi: Regenerate. | |
18680 | ||
18681 | 2024-01-16 Feng Xue <fxue@os.amperecomputing.com> | |
18682 | ||
18683 | PR tree-optimization/113091 | |
18684 | * tree-vect-slp.cc (vect_slp_has_scalar_use): New function. | |
18685 | (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check | |
18686 | scalar use with new function. | |
18687 | (vect_bb_slp_mark_live_stmts): New function as entry to existing | |
18688 | overriden functions with same name. | |
18689 | (vect_slp_analyze_operations): Call new entry function to mark | |
18690 | live statements. | |
18691 | ||
18692 | 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18693 | ||
18694 | PR target/113404 | |
18695 | * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry | |
18696 | for RVV in big-endian mode. | |
18697 | ||
18698 | 2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com> | |
18699 | ||
18700 | * config/riscv/riscv.cc (riscv_arg_has_vector): Delete. | |
18701 | (riscv_pass_in_vector_p): Delete. | |
18702 | (riscv_init_cumulative_args): Delete the checking. | |
18703 | (riscv_get_arg_info): Delete the checking. | |
18704 | (riscv_function_value): Delete the checking. | |
18705 | * config/riscv/riscv.h: Delete the member for checking. | |
18706 | ||
18707 | 2024-01-15 Georg-Johann Lay <avr@gjlay.de> | |
18708 | ||
18709 | * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation. | |
18710 | ||
18711 | 2024-01-15 Liao Shihua <shihua@iscas.ac.cn> | |
18712 | ||
18713 | * config.gcc: Include riscv_bitmanip.h. | |
18714 | * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern. | |
18715 | * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern. | |
18716 | * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins. | |
18717 | (RISCV_BUILTIN_NO_PREFIX): New helper macro. | |
18718 | * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins. | |
18719 | * config/riscv/riscv-ftypes.def (2): New ftypes. | |
18720 | * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins. | |
18721 | (RISCV_BUILTIN_NO_PREFIX): Likewise. | |
18722 | * config/riscv/riscv_bitmanip.h: New file. | |
18723 | ||
18724 | 2024-01-15 Liao Shihua <shihua@iscas.ac.cn> | |
18725 | ||
18726 | * config.gcc: Include riscv_crypto.h. | |
18727 | * config/riscv/riscv_crypto.h: New file. | |
18728 | ||
18729 | 2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com> | |
18730 | ||
18731 | PR middle-end/113354 | |
18732 | * lra-constraints.cc (curr_insn_transform): Spill pseudo only used | |
18733 | in the insn if the corresponding operand does not require hard | |
18734 | register anymore. | |
18735 | ||
18736 | 2024-01-15 Georg-Johann Lay <avr@gjlay.de> | |
18737 | ||
18738 | PR target/107201 | |
18739 | * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib. | |
18740 | * config/avr/driver-avr.cc (avr_no_devlib): New function. | |
18741 | (avr_devicespecs_file): Use it to remove -nodevicelib from the | |
18742 | options for cores only. | |
18743 | * config/avr/avr-arch.h (avr_get_parch): New prototype. | |
18744 | * config/avr/avr-devices.cc (avr_get_parch): New function. | |
18745 | ||
18746 | 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18747 | ||
18748 | PR target/113247 | |
18749 | * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove. | |
18750 | * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto. | |
18751 | * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost. | |
18752 | ||
18753 | 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18754 | ||
18755 | PR target/113281 | |
18756 | * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function. | |
18757 | (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF. | |
18758 | * config/riscv/riscv-vector-costs.h: New function. | |
18759 | ||
18760 | 2024-01-15 Richard Biener <rguenther@suse.de> | |
18761 | ||
18762 | PR tree-optimization/113385 | |
18763 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
18764 | First redirect, then split the exit edge. | |
18765 | ||
18766 | 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18767 | ||
18768 | * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo): | |
18769 | Remove m_num_vector_iterations. | |
18770 | * config/riscv/riscv-vector-costs.h: Ditto. | |
18771 | ||
18772 | 2024-01-15 Andrew Pinski <quic_apinski@quicinc.com> | |
18773 | ||
18774 | PR target/113156 | |
18775 | * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag. | |
18776 | (-mbranch-cost): Set "Optimization" flag. | |
18777 | ||
18778 | 2024-01-15 Jakub Jelinek <jakub@redhat.com> | |
18779 | ||
18780 | PR tree-optimization/113370 | |
18781 | * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only | |
18782 | set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise | |
18783 | set it to just prec % limb_prec. | |
18784 | ||
18785 | 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
18786 | ||
18787 | PR target/113393 | |
18788 | * config/riscv/vector.md: Fix ternary attributes. | |
18789 | ||
18790 | 2024-01-14 Georg-Johann Lay <avr@gjlay.de> | |
18791 | ||
18792 | PR target/112944 | |
18793 | * configure.ac [target=avr]: Check availability of emulations | |
18794 | avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars | |
18795 | HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP. | |
18796 | * configure: Regenerate. | |
18797 | * config.in: Regenerate. | |
18798 | * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram, | |
18799 | __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__. | |
18800 | * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options. | |
18801 | * config/avr/avr-arch.h (enum avr_device_specific_features): | |
18802 | Add AVR_ISA_FLMAP. | |
18803 | * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag | |
18804 | AVR_ISA_FLMAP. | |
18805 | * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars. | |
18806 | (avr_set_core_architecture): Set avr_arch_index. | |
18807 | (have_avrxmega2_flmap, have_avrxmega4_flmap) | |
18808 | (have_avrxmega3_rodata_in_flash): Set new static const bool according | |
18809 | to configure results. | |
18810 | (avr_rodata_in_flash_p): New function using them. | |
18811 | (avr_asm_init_sections): Let readonly_data_section->unnamed.callback | |
18812 | track avr_need_copy_data_p only if not avr_rodata_in_flash_p(). | |
18813 | (avr_asm_named_section): Track avr_has_rodata_p. | |
18814 | (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p | |
18815 | and not avr_rodata_in_flash_p (). | |
18816 | * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram). | |
18817 | (LINK_SPEC): Add %(link_rodata_in_ram). | |
18818 | (LINK_ARCH_SPEC): Remove. | |
18819 | * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash) | |
18820 | (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static | |
18821 | const bool according to configure results. | |
18822 | (diagnose_mrodata_in_ram): New function. | |
18823 | (print_mcu): Generate specs with the following changes: | |
18824 | <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't | |
18825 | need to extend avr/specs.h each time we add a new bell or whistle. | |
18826 | <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose | |
18827 | -m[no-]rodata-in-ram. | |
18828 | <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1. | |
18829 | <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies. | |
18830 | <*cpp>: Add %(cpp_rodata_in_ram). | |
18831 | <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as | |
18832 | requested. | |
18833 | <*self_spec>: Add -mflmap or %<mflmap as needed. | |
18834 | ||
18835 | 2024-01-14 Jeff Law <jlaw@ventanamicro.com> | |
18836 | ||
18837 | * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode, | |
18838 | not the GPR iterator. Adjust pattern name and mode attribute | |
18839 | accordingly. | |
18840 | ||
18841 | 2024-01-13 Jakub Jelinek <jakub@redhat.com> | |
18842 | ||
18843 | PR tree-optimization/113361 | |
18844 | * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): | |
18845 | Fix up determination of the type for > limb_prec constants. | |
18846 | ||
18847 | 2024-01-12 Georg-Johann Lay <avr@gjlay.de> | |
18848 | ||
18849 | * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats): | |
18850 | Add web-link to the avr-gcc wiki. | |
18851 | ||
18852 | 2024-01-12 Georg-Johann Lay <avr@gjlay.de> | |
18853 | ||
18854 | * doc/extend.texi (AVR Variable Attributes) [address]: Remove | |
18855 | documentation for a version without argument, which is not supported. | |
18856 | ||
18857 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18858 | ||
18859 | * config/arm/arm_neon.h | |
18860 | (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New. | |
18861 | (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New. | |
18862 | (vld1_f16_x4, vld1_f32_x4): New. | |
18863 | (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New. | |
18864 | (vld1_bf16_x4): New. | |
18865 | (vld1q_types_x4): Updated to use vld1q_x4 | |
18866 | from arm_neon_builtins.def | |
18867 | * config/arm/arm_neon_builtins.def | |
18868 | (vld1_x4): Updated entries. | |
18869 | (vld1q_x4): New entries, but comes from the old vld1_x4 | |
18870 | * config/arm/neon.md | |
18871 | (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>. | |
18872 | ||
18873 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18874 | ||
18875 | * config/arm/arm_neon.h | |
18876 | (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New. | |
18877 | (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New. | |
18878 | (vld1_f16_x3, vld1_f32_x3): New. | |
18879 | (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New. | |
18880 | (vld1_bf16_x3): New. | |
18881 | (vld1q_types_x3): Updated to use vld1q_x3 from | |
18882 | arm_neon_builtins.def | |
18883 | * config/arm/arm_neon_builtins.def | |
18884 | (vld1_x3): Updated entries. | |
18885 | (vld1q_x3): New entries, but comes from the old vld1_x2 | |
18886 | * config/arm/neon.md | |
18887 | (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>. | |
18888 | ||
18889 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18890 | ||
18891 | * config/arm/arm_neon.h | |
18892 | (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New. | |
18893 | (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New. | |
18894 | (vld1_f16_x2, vld1_f32_x2): New. | |
18895 | (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New. | |
18896 | (vld1_bf16_x2): New. | |
18897 | (vld1q_types_x2): Updated to use vld1q_x2 from | |
18898 | arm_neon_builtins.def | |
18899 | * config/arm/arm_neon_builtins.def | |
18900 | (vld1_x2): Updated entries. | |
18901 | (vld1q_x2): New entries, but comes from the old vld1_x2 | |
18902 | * config/arm/neon.md | |
18903 | (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from | |
18904 | neon_vld1_x2<mode>. | |
18905 | ||
18906 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18907 | ||
18908 | * config/arm/arm_neon.h | |
18909 | (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New. | |
18910 | (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New. | |
18911 | (vst1q_f16_x4, vst1q_f32_x4): New. | |
18912 | (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New. | |
18913 | (vst1q_bf16_x4): New. | |
18914 | * config/arm/arm_neon_builtins.def (vst1q_x4): New entries. | |
18915 | * config/arm/neon.md | |
18916 | (neon_vst1q_x4<mode>): New. | |
18917 | (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New. | |
18918 | * config/arm/unspecs.md | |
18919 | (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New. | |
18920 | ||
18921 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18922 | ||
18923 | * config/arm/arm_neon.h | |
18924 | (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New. | |
18925 | (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New. | |
18926 | (vst1q_f16_x3, vst1q_f32_x3): New. | |
18927 | (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New. | |
18928 | (vst1q_bf16_x3): New. | |
18929 | * config/arm/arm_neon_builtins.def (vst1q_x3): New entries. | |
18930 | * config/arm/neon.md | |
18931 | (neon_vst1q_x3<mode>): New. | |
18932 | (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New. | |
18933 | * config/arm/unspecs.md | |
18934 | (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New. | |
18935 | ||
18936 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18937 | ||
18938 | * config/arm/arm_neon.h | |
18939 | (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New. | |
18940 | (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New. | |
18941 | (vst1q_f16_x2, vst1q_f32_x2): New. | |
18942 | (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New. | |
18943 | (vst1q_bf16_x2): New. | |
18944 | * config/arm/arm_neon_builtins.def (vst1<_x2): New entries. | |
18945 | * config/arm/neon.md | |
18946 | (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from | |
18947 | neon_vst1_x2<mode>. | |
18948 | * config/arm/iterators.md | |
18949 | (VMEMX2): New mode iterator. | |
18950 | (VMEMX2_q): New mode attribute. | |
18951 | ||
18952 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18953 | ||
18954 | * config/arm/arm_neon.h | |
18955 | (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New. | |
18956 | (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New. | |
18957 | (vst1_f16_x4, vst1_f32_x4): New. | |
18958 | (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New. | |
18959 | (vst1_bf16_x4): New. | |
18960 | * config/arm/arm_neon_builtins.def (vst1_x4): New entries. | |
18961 | * config/arm/neon.md (vst1_x4<mode>): New. | |
18962 | ||
18963 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18964 | ||
18965 | * config/arm/arm_neon.h | |
18966 | (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New. | |
18967 | (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New. | |
18968 | (vst1_f16_x3, vst1_f32_x3): New. | |
18969 | (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New. | |
18970 | (vst1_bf16_x3): New. | |
18971 | * config/arm/arm_neon_builtins.def (vst1_x3): New entries. | |
18972 | * config/arm/neon.md (vst1_x3<mode>): New. | |
18973 | ||
18974 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18975 | ||
18976 | * config/arm/arm_neon.h | |
18977 | (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New. | |
18978 | (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New. | |
18979 | (vst1_f16_x2, vst1_f32_x2): New. | |
18980 | (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New. | |
18981 | (vst1_bf16_x2): New. | |
18982 | * config/arm/arm_neon_builtins.def (vst1_x2): New entries. | |
18983 | * config/arm/neon.md (vst1_x2<mode>): New. | |
18984 | ||
18985 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
18986 | ||
18987 | * config/arm/arm_neon.h | |
18988 | (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New. | |
18989 | (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New. | |
18990 | (vld1q_f16_x4, vld1q_f32_x4): New. | |
18991 | (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New. | |
18992 | (vld1q_bf16_x4): New. | |
18993 | * config/arm/arm_neon_builtins.def (vld1_x4): New entries. | |
18994 | * config/arm/neon.md | |
18995 | (neon_vld1_x4<mode>): New. | |
18996 | (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New | |
18997 | * config/arm/unspecs.md | |
18998 | (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New. | |
18999 | ||
19000 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
19001 | ||
19002 | * config/arm/arm_neon.h | |
19003 | (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New. | |
19004 | (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New. | |
19005 | (vld1q_f16_x3, vld1q_f32_x3): New. | |
19006 | (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New. | |
19007 | (vld1q_bf16_x3): New. | |
19008 | * config/arm/arm_neon_builtins.def (vld1_x3): New entries. | |
19009 | * config/arm/neon.md | |
19010 | (neon_vld1_x3<mode>): New. | |
19011 | (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New. | |
19012 | * config/arm/unspecs.md | |
19013 | (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New. | |
19014 | ||
19015 | 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com> | |
19016 | ||
19017 | * config/arm/arm_neon.h | |
19018 | (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New. | |
19019 | (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New. | |
19020 | (vld1q_f16_x2, vld1q_f32_x2): New. | |
19021 | (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New. | |
19022 | (vld1q_bf16_x2): New. | |
19023 | * config/arm/arm_neon_builtins.def (vld1_x2): New entries. | |
19024 | * config/arm/neon.md (vld1_x2<mode>): New. | |
19025 | ||
19026 | 2024-01-12 Tamar Christina <tamar.christina@arm.com> | |
19027 | ||
19028 | PR tree-optimization/113287 | |
19029 | * doc/sourcebuild.texi (check_effective_target_bitint65535): New. | |
19030 | ||
19031 | 2024-01-12 Tamar Christina <tamar.christina@arm.com> | |
19032 | ||
19033 | * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit. | |
19034 | * tree-vect-loop.cc (vect_transform_loop): Likewise. | |
19035 | ||
19036 | 2024-01-12 Tamar Christina <tamar.christina@arm.com> | |
19037 | ||
19038 | PR tree-optimization/113178 | |
19039 | * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all | |
19040 | alternate exits. | |
19041 | ||
19042 | 2024-01-12 Tamar Christina <tamar.christina@arm.com> | |
19043 | ||
19044 | PR tree-optimization/113237 | |
19045 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use | |
19046 | existing LCSSA variable for exit when all exits are early break. | |
19047 | ||
19048 | 2024-01-12 Tamar Christina <tamar.christina@arm.com> | |
19049 | ||
19050 | PR tree-optimization/113137 | |
19051 | PR tree-optimization/113136 | |
19052 | PR tree-optimization/113172 | |
19053 | PR tree-optimization/113178 | |
19054 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
19055 | Maintain PHIs on inverted loops. | |
19056 | (vect_do_peeling): Maintain virtual PHIs on inverted loops. | |
19057 | * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to | |
19058 | latch. | |
19059 | (vect_create_loop_vinfo): Record all conds instead of only alt ones. | |
19060 | ||
19061 | 2024-01-12 Tamar Christina <tamar.christina@arm.com> | |
19062 | ||
19063 | PR tree-optimization/113135 | |
19064 | * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework | |
19065 | dependency analysis. | |
19066 | ||
19067 | 2024-01-12 Iain Sandoe <iain@sandoe.co.uk> | |
19068 | ||
19069 | * config/rs6000/host-darwin.cc (segv_handler): Use the revised | |
19070 | diagnostics class member name for abort of error. | |
19071 | ||
19072 | 2024-01-12 Georg-Johann Lay <avr@gjlay.de> | |
19073 | ||
19074 | * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from | |
19075 | format string to %s argument. | |
19076 | ||
19077 | 2024-01-12 John David Anglin <danglin@gcc.gnu.org> | |
19078 | Jakub Jelinek <jakub@redhat.com> | |
19079 | ||
19080 | PR middle-end/113182 | |
19081 | * varasm.cc (process_pending_assemble_externals, | |
19082 | assemble_external_libcall): Use targetm.strip_name_encoding | |
19083 | before calling get_identifier. | |
19084 | ||
19085 | 2024-01-12 Richard Sandiford <richard.sandiford@arm.com> | |
19086 | ||
19087 | PR target/113196 | |
19088 | * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn): | |
19089 | New member variable. | |
19090 | * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p): | |
19091 | Declare. | |
19092 | * config/aarch64/iterators.md (Vnarrowq2): New mode attribute. | |
19093 | * config/aarch64/aarch64-simd.md | |
19094 | (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into... | |
19095 | (vec_unpack<su>_hi_<mode>): ...this. Move the generation of | |
19096 | zip2 for zero-extends to... | |
19097 | (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this | |
19098 | instruction. Fix big-endian handling. | |
19099 | (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into... | |
19100 | (vec_unpack<su>_lo_<mode>): ...this. Move the generation of | |
19101 | zip1 for zero-extends to... | |
19102 | (<optab><Vnarrowq><mode>2): ...a split of this instruction. | |
19103 | Fix big-endian handling. | |
19104 | (*aarch64_zip1_uxtl): New pattern. | |
19105 | (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete | |
19106 | (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise. | |
19107 | * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function. | |
19108 | (aarch64_gen_shareable_zero): Use it. | |
19109 | (aarch64_split_simd_shift_p): New function. | |
19110 | ||
19111 | 2024-01-12 Richard Sandiford <richard.sandiford@arm.com> | |
19112 | ||
19113 | * emit-rtl.h (rtl_data::x_function_beg_note): New member variable. | |
19114 | (function_beg_insn): New macro. | |
19115 | * function.cc (expand_function_start): Initialize function_beg_insn. | |
19116 | ||
19117 | 2024-01-12 Richard Sandiford <richard.sandiford@arm.com> | |
19118 | ||
19119 | PR target/112989 | |
19120 | * config/aarch64/aarch64-sve-builtins.h | |
19121 | (function_builder::m_overload_names): Replace with... | |
19122 | * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this | |
19123 | new global. | |
19124 | (add_overloaded_function): Update accordingly, using get_identifier | |
19125 | to get a GGC-friendly record of the name. | |
19126 | ||
19127 | 2024-01-12 Richard Sandiford <richard.sandiford@arm.com> | |
19128 | ||
19129 | PR target/112989 | |
19130 | * config/aarch64/aarch64-sve-builtins.def: Don't include | |
19131 | aarch64-sve-builtins-sme.def. | |
19132 | (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to... | |
19133 | * config/aarch64/aarch64-sve-builtins-sme.def: ...here. | |
19134 | (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS | |
19135 | instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that | |
19136 | requires AARCH64_FL_SME2. | |
19137 | * config/aarch64/aarch64-sve-builtins-sve2.def: Make same | |
19138 | AARCH64_FL_SME adjustment here. | |
19139 | * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't | |
19140 | include SME intrinsics. | |
19141 | (sme_function_groups): New array. | |
19142 | (handle_arm_sve_h): Remove check for AARCH64_FL_SME. | |
19143 | (handle_arm_sme_h): Use sme_function_groups instead of function_groups. | |
19144 | ||
19145 | 2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19146 | ||
19147 | PR target/113281 | |
19148 | * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct. | |
19149 | (struct cpu_vector_cost): Add regmove struct. | |
19150 | (get_vector_costs): Export as global. | |
19151 | * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost. | |
19152 | (costs::add_stmt_cost): Ditto. | |
19153 | * config/riscv/riscv.cc (get_common_costs): Export global function. | |
19154 | ||
19155 | 2024-01-12 Jakub Jelinek <jakub@redhat.com> | |
19156 | ||
19157 | PR tree-optimization/113334 | |
19158 | * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use | |
19159 | wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0 | |
19160 | to determine if number should be extended by all ones rather than zero | |
19161 | extended. | |
19162 | ||
19163 | 2024-01-12 Jakub Jelinek <jakub@redhat.com> | |
19164 | ||
19165 | PR tree-optimization/113330 | |
19166 | * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with | |
19167 | too large size. | |
19168 | ||
19169 | 2024-01-12 Jakub Jelinek <jakub@redhat.com> | |
19170 | ||
19171 | PR tree-optimization/113323 | |
19172 | * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix | |
19173 | check for lhs being large/huge _BitInt not in m_names. | |
19174 | ||
19175 | 2024-01-12 Jakub Jelinek <jakub@redhat.com> | |
19176 | ||
19177 | PR tree-optimization/113316 | |
19178 | * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle | |
19179 | uninitialized large/huge _BitInt arguments to calls. | |
19180 | ||
19181 | 2024-01-12 Jakub Jelinek <jakub@redhat.com> | |
19182 | ||
19183 | * gimple-lower-bitint.cc (mergeable_op): Instead of comparing | |
19184 | TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare | |
19185 | CEIL (TYPE_PRECISION (t), limb_prec). | |
19186 | (bitint_large_huge::handle_cast): Likewise. | |
19187 | ||
19188 | 2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com> | |
19189 | ||
19190 | PR sanitizer/113284 | |
19191 | * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name): | |
19192 | Use assemble_function_label_final () for Power ELF V1 ABI. | |
19193 | * output.h (assemble_function_label_final): New function. | |
19194 | * varasm.cc (assemble_function_label_raw): Use | |
19195 | assemble_function_label_final (). | |
19196 | (assemble_function_label_final): New function. | |
19197 | ||
19198 | 2024-01-12 Richard Biener <rguenther@suse.de> | |
19199 | ||
19200 | PR middle-end/113344 | |
19201 | * match.pd ((double)float CMP (double)float -> float CMP float): | |
19202 | Perform result type check only for vectors. | |
19203 | * fold-const.cc (fold_binary_loc): Likewise. | |
19204 | ||
19205 | 2024-01-12 Haochen Jiang <haochen.jiang@intel.com> | |
19206 | ||
19207 | * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET. | |
19208 | (usdot_prod<mode>): Ditto. | |
19209 | (sdot_prod<mode>): Ditto. | |
19210 | (udot_prod<mode>): Ditto. | |
19211 | ||
19212 | 2024-01-12 Haochen Jiang <haochen.jiang@intel.com> | |
19213 | ||
19214 | PR target/113288 | |
19215 | * config/i386/i386-c.cc (ix86_target_macros_internal): | |
19216 | Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__. | |
19217 | ||
19218 | 2024-01-12 Richard Biener <rguenther@suse.de> | |
19219 | ||
19220 | PR target/112280 | |
19221 | * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate): | |
19222 | Do not generate code when d.testing_p. | |
19223 | ||
19224 | 2024-01-12 liuhongt <hongtao.liu@intel.com> | |
19225 | ||
19226 | PR target/113039 | |
19227 | * doc/invoke.texi (fcf-protection=): Update documents. | |
19228 | ||
19229 | 2024-01-12 Pan Li <pan2.li@intel.com> | |
19230 | ||
19231 | * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the | |
19232 | comments of predicate func riscv_v_ext_mode_p. | |
19233 | ||
19234 | 2024-01-12 Feng Wang <wangfeng@eswincomputing.com> | |
19235 | ||
19236 | * config/riscv/riscv-vector-builtins.def (vfloat16m8_t): | |
19237 | Modify ABI-name length of vfloat16m8_t | |
19238 | ||
19239 | 2024-01-12 Li Wei <liwei@loongson.cn> | |
19240 | ||
19241 | * config/loongarch/loongarch.cc (loongarch_expand_conditional_move): | |
19242 | Adjust. | |
19243 | ||
19244 | 2024-01-12 Li Wei <liwei@loongson.cn> | |
19245 | ||
19246 | * config/loongarch/loongarch.md (add<mode>3): Removed. | |
19247 | (*addsi3): New. | |
19248 | (addsi3): Ditto. | |
19249 | (adddi3): Ditto. | |
19250 | (*addsi3_extended): Removed. | |
19251 | (addsi3_extended): New. | |
19252 | ||
19253 | 2024-01-11 Jin Ma <jinma@linux.alibaba.com> | |
19254 | ||
19255 | * config/riscv/thead.md: Add limits for splits. | |
19256 | ||
19257 | 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com> | |
19258 | ||
19259 | PR middle-end/113322 | |
19260 | * expr.cc (do_store_flag): Don't try single bit tests with | |
19261 | comparison on vector types. | |
19262 | ||
19263 | 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com> | |
19264 | ||
19265 | PR tree-optimization/113301 | |
19266 | * match.pd (`1/x`): Delay signed case until late. | |
19267 | ||
19268 | 2024-01-11 Georg-Johann Lay <avr@gjlay.de> | |
19269 | ||
19270 | * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls | |
19271 | and -msp8 to... | |
19272 | (AVR Internal Options): ...this new @subsubsection. | |
19273 | ||
19274 | 2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com> | |
19275 | ||
19276 | PR rtl-optimization/112918 | |
19277 | * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p. | |
19278 | (in_class_p): Restrict condition for narrowing class in case of | |
19279 | allow_all_reload_class_changes_p. | |
19280 | (process_alt_operands): Try to match operand without and with | |
19281 | narrowing reg class. Discourage narrowing the class. Finish insn | |
19282 | matching only if there is no class narrowing. | |
19283 | (curr_insn_transform): Pass true to in_class_p for reg operand win. | |
19284 | ||
19285 | 2024-01-11 Richard Biener <rguenther@suse.de> | |
19286 | ||
19287 | PR tree-optimization/112505 | |
19288 | * tree-vect-loop.cc (vectorizable_induction): Reject | |
19289 | bit-precision induction. | |
19290 | ||
19291 | 2024-01-11 Richard Biener <rguenther@suse.de> | |
19292 | ||
19293 | PR tree-optimization/113126 | |
19294 | * match.pd ((double)float CMP (double)float -> float CMP float): | |
19295 | Make sure the boolean type is the same. | |
19296 | * fold-const.cc (fold_binary_loc): Likewise. | |
19297 | ||
19298 | 2024-01-11 Richard Biener <rguenther@suse.de> | |
19299 | ||
19300 | PR tree-optimization/112636 | |
19301 | * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call | |
19302 | estimate_numbers_of_iterations before querying | |
19303 | get_max_loop_iterations_int. | |
19304 | (pass_ch::execute): Initialize SCEV and loops appropriately. | |
19305 | ||
19306 | 2024-01-11 Georg-Johann Lay <avr@gjlay.de> | |
19307 | ||
19308 | * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for | |
19309 | Reduced Tiny. | |
19310 | * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core. | |
19311 | * doc/extend.texi (AVR Variable Attributes): Improve documentation | |
19312 | of io, io_low and address attributes. | |
19313 | * doc/invoke.texi (AVR Options): Add some anchors for external refs. | |
19314 | * doc/avr-mmcu.texi: Rebuild. | |
19315 | ||
19316 | 2024-01-11 Yang Yujie <yangyujie@loongson.cn> | |
19317 | ||
19318 | PR target/113233 | |
19319 | * config/loongarch/genopts/loongarch.opt.in: Mark options with | |
19320 | the "Save" property. | |
19321 | * config/loongarch/loongarch.opt: Same. | |
19322 | * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state | |
19323 | according to la_target. | |
19324 | * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE, | |
19325 | RESTORE} for the la_target structure; Rename option conditions | |
19326 | to have the same "la_" prefix. | |
19327 | * config/loongarch/loongarch.h: Same. | |
19328 | ||
19329 | 2024-01-11 Pan Li <pan2.li@intel.com> | |
19330 | ||
19331 | * loop-unroll.cc (insert_var_expansion_initialization): Leverage | |
19332 | MODE_HAS_SIGNED_ZEROS for expansion variable initialization. | |
19333 | ||
19334 | 2024-01-11 Alex Coplan <alex.coplan@arm.com> | |
19335 | ||
19336 | PR target/113077 | |
19337 | * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add | |
19338 | fr_expr param to extract REG_FRAME_RELATED_EXPR notes. | |
19339 | (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and | |
19340 | synthesize these if needed. Update caller ... | |
19341 | (ldp_bb_info::fuse_pair): ... here. | |
19342 | (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback | |
19343 | and either insn is frame-related. | |
19344 | (find_trailing_add): Punt on frame-related insns. | |
19345 | * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use | |
19346 | REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET. | |
19347 | ||
19348 | 2024-01-11 YunQiang Su <syq@gcc.gnu.org> | |
19349 | ||
19350 | * config/mips/mips.cc (mips_start_function_definition): | |
19351 | Add ATTRIBUTE_UNUSED. | |
19352 | ||
19353 | 2024-01-11 Richard Biener <rguenther@suse.de> | |
19354 | ||
19355 | PR middle-end/112740 | |
19356 | * expr.cc (store_constructor): Check the integer vector | |
19357 | mask has a single bit per element before using sign-extension | |
19358 | to expand an uniform vector. | |
19359 | ||
19360 | 2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19361 | ||
19362 | * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA | |
19363 | preempt VLS on unknown NITERS loop. | |
19364 | ||
19365 | 2024-01-11 Haochen Jiang <haochen.jiang@intel.com> | |
19366 | ||
19367 | * doc/invoke.texi: Add -mevex512. | |
19368 | ||
19369 | 2024-01-11 Lulu Cheng <chenglulu@loongson.cn> | |
19370 | ||
19371 | * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X. | |
19372 | (*nor<mode>3): Likewise. | |
19373 | (nor<mode>3): Likewise. | |
19374 | (*negsi2_extended): New template. | |
19375 | (*<optab>si3_internal): Likewise. | |
19376 | (*one_cmplsi2_internal): Likewise. | |
19377 | (*norsi3_internal): Likewise. | |
19378 | (*<optab>nsi_internal): Likewise. | |
19379 | (bytepick_w_<bytepick_imm>_extend): Modify this template according to the | |
19380 | modified bit operation to make the optimization work. | |
19381 | ||
19382 | 2024-01-11 liuhongt <hongtao.liu@intel.com> | |
19383 | ||
19384 | PR target/104401 | |
19385 | * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match. | |
19386 | ||
19387 | 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19388 | ||
19389 | * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model. | |
19390 | (get_vector_costs): Ditto. | |
19391 | (riscv_builtin_vectorization_cost): Ditto. | |
19392 | ||
19393 | 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19394 | ||
19395 | * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak. | |
19396 | ||
19397 | 2024-01-10 Antoni Boucher <bouanto@zoho.com> | |
19398 | ||
19399 | PR jit/111396 | |
19400 | * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call | |
19401 | ipa_free_size_summary. | |
19402 | * ipa-icf.cc (ipa_icf_cc_finalize): New function. | |
19403 | * ipa-profile.cc (ipa_profile_cc_finalize): New function. | |
19404 | * ipa-prop.cc (ipa_prop_cc_finalize): New function. | |
19405 | * ipa-prop.h (ipa_prop_cc_finalize): New function. | |
19406 | * ipa-sra.cc (ipa_sra_cc_finalize): New function. | |
19407 | * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize, | |
19408 | ipa_sra_cc_finalize): New functions. | |
19409 | * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize, | |
19410 | ipa_prop_cc_finalize, ipa_profile_cc_finalize and | |
19411 | ipa_sra_cc_finalize | |
19412 | Include ipa-utils.h. | |
19413 | ||
19414 | 2024-01-10 Jin Ma <jinma@linux.alibaba.com> | |
19415 | ||
19416 | * config/riscv/riscv-protos.h (th_int_get_mask): New prototype. | |
19417 | (th_int_get_save_adjustment): Likewise. | |
19418 | (th_int_adjust_cfi_prologue): Likewise. | |
19419 | * config/riscv/riscv.cc (BITSET_P): Moved away from here. | |
19420 | (TH_INT_INTERRUPT): New macro. | |
19421 | (riscv_expand_prologue): Add the processing of XTheadInt. | |
19422 | (riscv_expand_epilogue): Likewise. | |
19423 | * config/riscv/riscv.h (BITSET_P): Moved to here. | |
19424 | * config/riscv/riscv.md: New unspec. | |
19425 | * config/riscv/thead.cc (th_int_get_mask): New function. | |
19426 | (th_int_get_save_adjustment): Likewise. | |
19427 | (th_int_adjust_cfi_prologue): Likewise. | |
19428 | * config/riscv/thead.md (th_int_push): New pattern. | |
19429 | (th_int_pop): new pattern. | |
19430 | ||
19431 | 2024-01-10 Tamar Christina <tamar.christina@arm.com> | |
19432 | ||
19433 | PR tree-optimization/112468 | |
19434 | * doc/sourcebuild.texi: Document ifn_copysign. | |
19435 | * match.pd: Only apply transformation if target supports the IFN. | |
19436 | ||
19437 | 2024-01-10 Andrew Pinski <quic_apinski@quicinc.com> | |
19438 | ||
19439 | PR tree-optimization/112581 | |
19440 | * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call | |
19441 | mark_ssa_maybe_undefs. | |
19442 | * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized | |
19443 | variables can not be reassociated. | |
19444 | (init_range_entry): Check for uninitialized variables too. | |
19445 | (init_reassoc): Call mark_ssa_maybe_undefs. | |
19446 | ||
19447 | 2024-01-10 Maciej W. Rozycki <macro@embecosm.com> | |
19448 | ||
19449 | * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): | |
19450 | Also handle sign extension. | |
19451 | ||
19452 | 2024-01-10 Alex Coplan <alex.coplan@arm.com> | |
19453 | ||
19454 | * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default | |
19455 | to 0. | |
19456 | (-mlate-ldp-fusion): Likewise. | |
19457 | ||
19458 | 2024-01-10 Tamar Christina <tamar.christina@arm.com> | |
19459 | ||
19460 | PR tree-optimization/113287 | |
19461 | * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge | |
19462 | instead of using BRANCH_EDGE to determine true edge. | |
19463 | ||
19464 | 2024-01-10 Richard Biener <rguenther@suse.de> | |
19465 | ||
19466 | PR tree-optimization/113078 | |
19467 | * tree-vect-loop.cc (check_reduction_path): Canonicalize | |
19468 | .COND_SUB to .COND_ADD. | |
19469 | ||
19470 | 2024-01-10 David Malcolm <dmalcolm@redhat.com> | |
19471 | ||
19472 | * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option): | |
19473 | Handle prefix mappings before calling find_opt. | |
19474 | (selftest::gcc_urlifier_cc_tests): Add example of urlifying a | |
19475 | "-fno-"-prefixed command-line option. | |
19476 | * opts-common.cc (get_option_prefix_remapping): New. | |
19477 | * opts.h (get_option_prefix_remapping): New decl. | |
19478 | ||
19479 | 2024-01-10 David Malcolm <dmalcolm@redhat.com> | |
19480 | ||
19481 | * diagnostic.cc (diagnostic_context::report_diagnostic): Pass | |
19482 | m_urlifier to pp_output_formatted_text. | |
19483 | * pretty-print.cc: Add #define of INCLUDE_VECTOR. | |
19484 | (obstack_append_string): New overload, taking a length. | |
19485 | (urlify_quoted_string): Pass in an obstack ptr, rather than using | |
19486 | that of the pp's buffer. Generalize to handle trailing text in | |
19487 | the buffer beyond the run of quoted text. | |
19488 | (class quoting_info): New. | |
19489 | (on_begin_quote): New. | |
19490 | (on_end_quote): New. | |
19491 | (pp_format): Refactor phase 1 and phase 2 quoting support, moving | |
19492 | it to calls to on_begin_quote and on_end_quote. | |
19493 | (struct auto_obstack): New. | |
19494 | (quoting_info::handle_phase_3): New. | |
19495 | (pp_output_formatted_text): Add urlifier param. Use it if there | |
19496 | is deferred urlification. Delete m_quotes. | |
19497 | (selftest::pp_printf_with_urlifier): Pass urlifier to | |
19498 | pp_output_formatted_text. | |
19499 | (selftest::test_urlification): Update results for the existing | |
19500 | case of quoted text stradding chunks; add more such test cases. | |
19501 | * pretty-print.h (class quoting_info): New forward decl. | |
19502 | (chunk_info::m_quotes): New field. | |
19503 | (pp_output_formatted_text): Add optional urlifier param. | |
19504 | ||
19505 | 2024-01-10 David Malcolm <dmalcolm@redhat.com> | |
19506 | ||
19507 | * pretty-print.cc (selftest::test_pp_format): Add selftest | |
19508 | coverage for numbered args. | |
19509 | ||
19510 | 2024-01-10 Tamar Christina <tamar.christina@arm.com> | |
19511 | ||
19512 | PR tree-optimization/113144 | |
19513 | PR tree-optimization/113145 | |
19514 | * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): | |
19515 | Update all BB that the original exits dominated. | |
19516 | ||
19517 | 2024-01-10 Eric Botcazou <ebotcazou@adacore.com> | |
19518 | ||
19519 | * dwarf2out.cc (modified_type_die): Extend the support of reverse | |
19520 | storage order to enumeration types if -gstrict-dwarf is not passed. | |
19521 | (gen_enumeration_type_die): Add REVERSE parameter and generate the | |
19522 | DIE immediately after the existing one if it is true. | |
19523 | (gen_tagged_type_die): Add REVERSE parameter and pass it in the | |
19524 | call to gen_enumeration_type_die. | |
19525 | (gen_type_die_with_usage): Add REVERSE parameter and pass it in the | |
19526 | first recursive call as well as the call to gen_tagged_type_die. | |
19527 | (gen_type_die): Add REVERSE parameter and pass it in the call to | |
19528 | gen_type_die_with_usage. | |
19529 | ||
19530 | 2024-01-10 Jakub Jelinek <jakub@redhat.com> | |
19531 | ||
19532 | PR tree-optimization/113120 | |
19533 | * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE | |
19534 | with root->size TYPE_PRECISION don't build anything new. | |
19535 | Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type | |
19536 | rather than build_nonstandard_integer_type. | |
19537 | ||
19538 | 2024-01-10 Hongyu Wang <hongyu.wang@intel.com> | |
19539 | ||
19540 | * config/i386/i386.opt: Adjust document. | |
19541 | * doc/invoke.texi: Add description for | |
19542 | -mapx-inline-asm-use-gpr32. | |
19543 | ||
19544 | 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19545 | ||
19546 | * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove. | |
19547 | (avg<v_double_trunc>3_floor): New pattern. | |
19548 | (<u>avg<v_double_trunc>3_ceil): Remove. | |
19549 | (avg<v_double_trunc>3_ceil): New pattern. | |
19550 | (uavg<mode>3_floor): Ditto. | |
19551 | (uavg<mode>3_ceil): Ditto. | |
19552 | * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition. | |
19553 | (enum insn_type): Ditto. | |
19554 | * config/riscv/riscv-v.cc: Ditto. | |
19555 | * config/riscv/vector-iterators.md (ashiftrt): Remove. | |
19556 | (ASHIFTRT): Ditto. | |
19557 | * config/riscv/vector.md: Add VLS modes. | |
19558 | ||
19559 | 2024-01-10 Kewen Lin <linkw@linux.ibm.com> | |
19560 | ||
19561 | PR target/111480 | |
19562 | * config/rs6000/vsx.md (VCZLSBB): New int iterator. | |
19563 | (vczlsbb_char): New int attribute. | |
19564 | (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ... | |
19565 | (vc<vczlsbb_char>zlsbb_<mode>): ... this. | |
19566 | (*vctzlsbb_zext_<mode>): Rename to ... | |
19567 | (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to | |
19568 | cover vclzlsbb. | |
19569 | ||
19570 | 2024-01-10 Kewen Lin <linkw@linux.ibm.com> | |
19571 | ||
19572 | PR target/112606 | |
19573 | * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate | |
19574 | of the last argument from altivec_register_operand to any_operand. If | |
19575 | operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign | |
19576 | otherwise if it doesn't satisfy altivec_register_operand, force it to | |
19577 | REG using copy_to_mode_reg. | |
19578 | ||
19579 | 2024-01-10 Kewen Lin <linkw@linux.ibm.com> | |
19580 | ||
19581 | PR middle-end/113100 | |
19582 | * builtins.cc (expand_builtin_stack_address): Guard stack point | |
19583 | adjustment with SPARC_STACK_BOUNDARY_HACK. | |
19584 | ||
19585 | 2024-01-10 Yang Yujie <yangyujie@loongson.cn> | |
19586 | ||
19587 | * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc | |
19588 | argument string definitions. | |
19589 | * config/loongarch/loongarch-str.h: Same. | |
19590 | * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs | |
19591 | as aliases to -mexplicit-relocs={always,none} | |
19592 | * config/loongarch/loongarch.opt: Regenerate. | |
19593 | * config/loongarch/loongarch.cc: Same. | |
19594 | ||
19595 | 2024-01-10 Yang Yujie <yangyujie@loongson.cn> | |
19596 | ||
19597 | * config/loongarch/loongarch-def.h: Define constants with | |
19598 | enums instead of Macros. | |
19599 | ||
19600 | 2024-01-10 Yang Yujie <yangyujie@loongson.cn> | |
19601 | ||
19602 | * config/loongarch/genopts/loongarch-strings: Rename. | |
19603 | * config/loongarch/genopts/loongarch.opt.in: Same. | |
19604 | * config/loongarch/loongarch-cpu.cc: Same. | |
19605 | * config/loongarch/loongarch-def.cc: Same. | |
19606 | * config/loongarch/loongarch-def.h: Same. | |
19607 | * config/loongarch/loongarch-opts.cc: Same. | |
19608 | * config/loongarch/loongarch-opts.h: Same. | |
19609 | * config/loongarch/loongarch-str.h: Same. | |
19610 | * config/loongarch/loongarch.opt: Same. | |
19611 | ||
19612 | 2024-01-10 Yang Yujie <yangyujie@loongson.cn> | |
19613 | ||
19614 | * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution | |
19615 | variable with the common la_ prefix. | |
19616 | * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution | |
19617 | flags as saved using TargetVariable. | |
19618 | * config/loongarch/loongarch.opt: Same. | |
19619 | * config/loongarch/loongarch-def.h: Define evolution_set to | |
19620 | mark changes to the -march default. | |
19621 | * config/loongarch/loongarch-driver.cc: Same. | |
19622 | * config/loongarch/loongarch-opts.cc: Same. | |
19623 | * config/loongarch/loongarch-opts.h: Define and use ISA evolution | |
19624 | conditions around the la_target structure. | |
19625 | * config/loongarch/loongarch.cc: Same. | |
19626 | * config/loongarch/loongarch.md: Same. | |
19627 | * config/loongarch/loongarch-builtins.cc: Same. | |
19628 | * config/loongarch/loongarch-c.cc: Same. | |
19629 | * config/loongarch/lasx.md: Same. | |
19630 | * config/loongarch/lsx.md: Same. | |
19631 | * config/loongarch/sync.md: Same. | |
19632 | ||
19633 | 2024-01-09 Jeff Law <jlaw@ventanamicro.com> | |
19634 | ||
19635 | * config/epiphany/constraints.md (Car): Allow -1024..1023, no more, | |
19636 | no less. | |
19637 | ||
19638 | 2024-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
19639 | ||
19640 | * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute. | |
19641 | ||
19642 | 2024-01-09 Tamar Christina <tamar.christina@arm.com> | |
19643 | ||
19644 | * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused | |
19645 | restart_loop. | |
19646 | (vectorizable_live_operation): Likewise. | |
19647 | ||
19648 | 2024-01-09 Tamar Christina <tamar.christina@arm.com> | |
19649 | ||
19650 | PR tree-optimization/113199 | |
19651 | * tree-vect-loop.cc (vectorizable_live_operation_1): Use | |
19652 | BIT_FIELD_REF. | |
19653 | ||
19654 | 2024-01-09 Jakub Jelinek <jakub@redhat.com> | |
19655 | ||
19656 | PR target/113270 | |
19657 | * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles. | |
19658 | * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern | |
19659 | GTY(()) declaration before the definition, drop GTY(()) drom the | |
19660 | definition. | |
19661 | ||
19662 | 2024-01-09 Richard Biener <rguenther@suse.de> | |
19663 | ||
19664 | PR tree-optimization/113026 | |
19665 | * tree-vect-loop-manip.cc (vect_do_peeling): Remove | |
19666 | redundant and wrong niter bound setting. Move niter | |
19667 | bound adjustment down. | |
19668 | ||
19669 | 2024-01-09 Tamar Christina <tamar.christina@arm.com> | |
19670 | ||
19671 | PR middle-end/113163 | |
19672 | * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): | |
19673 | Reject non-linear inductions that aren't supported. | |
19674 | ||
19675 | 2024-01-09 Roger Sayle <roger@nextmovesoftware.com> | |
19676 | ||
19677 | * config/arc/arc.cc (arc_shift_alg): New enumerated type for | |
19678 | left shift implementation strategies. | |
19679 | (arc_shift_info): Type for each entry of the shift strategy table. | |
19680 | (arc_shift_context_idx): Return a integer value for each code | |
19681 | generation context, used as an index | |
19682 | (arc_ashl_alg): Table indexed by context and shifted bit count. | |
19683 | (arc_split_ashl): Use the arc_ashl_alg table to select SImode | |
19684 | left shift implementation. | |
19685 | (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to | |
19686 | provide accurate costs, when optimizing for speed or size. | |
19687 | ||
19688 | 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19689 | ||
19690 | * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check. | |
19691 | ||
19692 | 2024-01-09 Julian Brown <julian@codesourcery.com> | |
19693 | ||
19694 | * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been | |
19695 | processed out before gimplification. | |
19696 | * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION. | |
19697 | * tree.def (OMP_ARRAY_SECTION): New tree code. | |
19698 | ||
19699 | 2024-01-09 Jakub Jelinek <jakub@redhat.com> | |
19700 | ||
19701 | PR tree-optimization/113210 | |
19702 | * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST | |
19703 | value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into | |
19704 | INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST | |
19705 | minus 1. | |
19706 | ||
19707 | 2024-01-09 Eric Botcazou <ebotcazou@adacore.com> | |
19708 | ||
19709 | PR rtl-optimization/113140 | |
19710 | * reorg.cc (fill_slots_from_thread): If we are to branch after the | |
19711 | last instruction of the function, create an end label. | |
19712 | ||
19713 | 2024-01-09 Roger Sayle <roger@nextmovesoftware.com> | |
19714 | Hongtao Liu <hongtao.liu@intel.com> | |
19715 | ||
19716 | PR target/112992 | |
19717 | * config/i386/i386-expand.cc | |
19718 | (ix86_convert_const_wide_int_to_broadcast): Allow call to | |
19719 | ix86_expand_vector_init_duplicate to fail, and return NULL_RTX. | |
19720 | (ix86_broadcast_from_constant): Revert recent change; Return a | |
19721 | suitable MEMREF independently of mode/target combinations. | |
19722 | (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate | |
19723 | to decide whether expansion is possible/preferrable. Only try | |
19724 | forcing DImode constants to memory (and trying again) if calling | |
19725 | ix86_expand_vector_init_duplicate fails with an DImode immediate | |
19726 | constant. | |
19727 | (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using | |
19728 | V4SImode for suitable immediate constants. | |
19729 | <case E_V4DImode>: Try using V8SImode for suitable constants. | |
19730 | <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool. | |
19731 | <case E_V2HImode>: Likewise. | |
19732 | <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen. | |
19733 | <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen. | |
19734 | <label widen>: Handle CONT_INTs via simplify_binary_operation. | |
19735 | Allow recursive calls to ix86_expand_vector_init_duplicate to fail. | |
19736 | <case E_V16HImode>: For CONST_INT_P try V8SImode via widen. | |
19737 | <case E_V32QImode>: For CONST_INT_P try V16HImode via widen. | |
19738 | (ix86_expand_vector_init): Move try using a broadcast for all_same | |
19739 | with ix86_expand_vector_init_duplicate before using constant pool. | |
19740 | ||
19741 | 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com> | |
19742 | ||
19743 | * doc/invoke.texi (Arm Options): Document Cortex-M52 options. | |
19744 | ||
19745 | 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com> | |
19746 | ||
19747 | * config/arm/arm-cpus.in (cortex-m52): New cpu. | |
19748 | * config/arm/arm-tables.opt: Regenerate. | |
19749 | * config/arm/arm-tune.md: Regenerate. | |
19750 | ||
19751 | 2024-01-09 Jiahao Xu <xujiahao@loongson.cn> | |
19752 | ||
19753 | * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to .. | |
19754 | (vec_init<mode><lasxhalf>): .. this, and extend to mode. | |
19755 | (@vec_concatz<mode>): New insn pattern. | |
19756 | * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): | |
19757 | Handle VALS containing two vectors. | |
19758 | ||
19759 | 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19760 | ||
19761 | * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments. | |
19762 | (vundefined): Ditto. | |
19763 | ||
19764 | 2024-01-09 Feng Wang <wangfeng@eswincomputing.com> | |
19765 | ||
19766 | * config/riscv/riscv-vector-builtins-bases.cc (class vandn): | |
19767 | Add new function_base for crypto vector. | |
19768 | (class bitmanip): Ditto. | |
19769 | (class b_reverse):Ditto. | |
19770 | (class vwsll): Ditto. | |
19771 | (class clmul): Ditto. | |
19772 | (class vg_nhab): Ditto. | |
19773 | (class crypto_vv):Ditto. | |
19774 | (class crypto_vi):Ditto. | |
19775 | (class vaeskf2_vsm3c):Ditto. | |
19776 | (class vsm3me): Ditto. | |
19777 | (BASE): Add BASE declaration for crypto vector. | |
19778 | * config/riscv/riscv-vector-builtins-bases.h: Ditto. | |
19779 | * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): | |
19780 | Add crypto vector intrinsic definition. | |
19781 | (vbrev): Ditto. | |
19782 | (vclz): Ditto. | |
19783 | (vctz): Ditto. | |
19784 | (vwsll): Ditto. | |
19785 | (vandn): Ditto. | |
19786 | (vbrev8): Ditto. | |
19787 | (vrev8): Ditto. | |
19788 | (vrol): Ditto. | |
19789 | (vror): Ditto. | |
19790 | (vclmul): Ditto. | |
19791 | (vclmulh): Ditto. | |
19792 | (vghsh): Ditto. | |
19793 | (vgmul): Ditto. | |
19794 | (vaesef): Ditto. | |
19795 | (vaesem): Ditto. | |
19796 | (vaesdf): Ditto. | |
19797 | (vaesdm): Ditto. | |
19798 | (vaesz): Ditto. | |
19799 | (vaeskf1): Ditto. | |
19800 | (vaeskf2): Ditto. | |
19801 | (vsha2ms): Ditto. | |
19802 | (vsha2ch): Ditto. | |
19803 | (vsha2cl): Ditto. | |
19804 | (vsm4k): Ditto. | |
19805 | (vsm4r): Ditto. | |
19806 | (vsm3me): Ditto. | |
19807 | (vsm3c): Ditto. | |
19808 | * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def): | |
19809 | Add new function_shape for crypto vector. | |
19810 | (struct crypto_vi_def): Ditto. | |
19811 | (struct crypto_vv_no_op_type_def): Ditto. | |
19812 | (SHAPE): Add SHAPE declaration of crypto vector. | |
19813 | * config/riscv/riscv-vector-builtins-shapes.h: Ditto. | |
19814 | * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS): | |
19815 | Add new data type for crypto vector. | |
19816 | (DEF_RVV_CRYPTO_SEW64_OPS): Ditto. | |
19817 | (vuint32mf2_t): Ditto. | |
19818 | (vuint32m1_t): Ditto. | |
19819 | (vuint32m2_t): Ditto. | |
19820 | (vuint32m4_t): Ditto. | |
19821 | (vuint32m8_t): Ditto. | |
19822 | (vuint64m1_t): Ditto. | |
19823 | (vuint64m2_t): Ditto. | |
19824 | (vuint64m4_t): Ditto. | |
19825 | (vuint64m8_t): Ditto. | |
19826 | * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS): | |
19827 | Add new data struct for crypto vector. | |
19828 | (DEF_RVV_CRYPTO_SEW64_OPS): Ditto. | |
19829 | (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func. | |
19830 | * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE. | |
19831 | ||
19832 | 2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com> | |
19833 | ||
19834 | PR sanitizer/113251 | |
19835 | * varasm.cc (assemble_function_label_raw): Do not call | |
19836 | asan_function_start () without the current function. | |
19837 | ||
19838 | 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com> | |
19839 | ||
19840 | PR target/113225 | |
19841 | * btfout.cc (btf_collect_datasec): Skip creating BTF info for | |
19842 | extern and kernel_helper attributed function decls. | |
19843 | ||
19844 | 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com> | |
19845 | ||
19846 | * btfout.cc (output_btf_strs): Changed. | |
19847 | ||
19848 | 2024-01-08 Tobias Burnus <tobias@codesourcery.com> | |
19849 | ||
19850 | * config/gcn/mkoffload.cc (main): Handle gfx1100 | |
19851 | when setting the default XNACK. | |
19852 | ||
19853 | 2024-01-08 Tobias Burnus <tobias@codesourcery.com> | |
19854 | ||
19855 | * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100. | |
19856 | * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100: | |
19857 | (ASM_SPEC): Handle gfx1100. | |
19858 | * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100. | |
19859 | (enum gcn_isa): Add ISA_RDNA3. | |
19860 | (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define. | |
19861 | * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS. | |
19862 | * config/gcn/gcn.cc (gcn_option_override, | |
19863 | gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100. | |
19864 | (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change | |
19865 | TARGET_RDNA2 to TARGET_RDNA2_PLUS. | |
19866 | (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch' | |
19867 | with gfx1100. | |
19868 | * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise. | |
19869 | (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and | |
19870 | __gfx1100__. | |
19871 | * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS. | |
19872 | * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100. | |
19873 | * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define. | |
19874 | (isa_has_combined_avgprs, main): Handle gfx1100. | |
19875 | * config/gcn/t-omp-device (isa): Add gfx1100. | |
19876 | ||
19877 | 2024-01-08 Richard Biener <rguenther@suse.de> | |
19878 | ||
19879 | * doc/invoke.texi (-mmovbe): Clarify. | |
19880 | ||
19881 | 2024-01-08 Richard Biener <rguenther@suse.de> | |
19882 | ||
19883 | PR tree-optimization/113026 | |
19884 | * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p): | |
19885 | Avoid an epilog in more cases. | |
19886 | * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the | |
19887 | epilogues niter upper bounds and estimates. | |
19888 | ||
19889 | 2024-01-08 Jakub Jelinek <jakub@redhat.com> | |
19890 | ||
19891 | PR tree-optimization/113228 | |
19892 | * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs. | |
19893 | ||
19894 | 2024-01-08 Jakub Jelinek <jakub@redhat.com> | |
19895 | ||
19896 | PR tree-optimization/113120 | |
19897 | * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very | |
19898 | large _BitInt zero INTEGER_CST PHI argument. | |
19899 | ||
19900 | 2024-01-08 Jakub Jelinek <jakub@redhat.com> | |
19901 | ||
19902 | PR tree-optimization/113119 | |
19903 | * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if | |
19904 | both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast | |
19905 | is before REALPART_EXPR. | |
19906 | ||
19907 | 2024-01-08 Georg-Johann Lay <avr@gjlay.de> | |
19908 | ||
19909 | PR target/112952 | |
19910 | * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid | |
19911 | range when diagnosing attribute "io" and "io_low" are out of range. | |
19912 | (avr_eval_addr_attrib): Don't ICE on empty address at that place. | |
19913 | (avr_insert_attributes): Reject if attribute "address", "io" or "io_low" | |
19914 | in contexts other than static storage. | |
19915 | (avr_asm_output_aligned_decl_common): Move output of decls with | |
19916 | attribute "address", "io", and "io_low" to... | |
19917 | (avr_output_addr_attrib): ...this new function. | |
19918 | (avr_asm_asm_output_aligned_bss): Remove output for decls with | |
19919 | attribute "address", "io", and "io_low". | |
19920 | (avr_encode_section_info): Rectify handling of decls with attribute | |
19921 | "address", "io", and "io_low". | |
19922 | ||
19923 | 2024-01-08 Andrew Stubbs <ams@codesourcery.com> | |
19924 | ||
19925 | * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New. | |
19926 | (elf_flags): Remove XNACK from the default value. | |
19927 | (main): Set a default XNACK according to the arch. | |
19928 | ||
19929 | 2024-01-08 Andrew Stubbs <ams@codesourcery.com> | |
19930 | ||
19931 | * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete. | |
19932 | (process_asm): Don't count avgprs. | |
19933 | ||
19934 | 2024-01-08 Hongyu Wang <hongyu.wang@intel.com> | |
19935 | ||
19936 | * config/i386/i386.opt: Add supported sub-features. | |
19937 | * doc/extend.texi: Add description for target attribute. | |
19938 | ||
19939 | 2024-01-08 Feng Wang <wangfeng@eswincomputing.com> | |
19940 | ||
19941 | * config/riscv/vector.md: Modify avl_type operand index of zvbc ins. | |
19942 | ||
19943 | 2024-01-07 Roger Sayle <roger@nextmovesoftware.com> | |
19944 | Uros Bizjak <ubizjak@gmail.com> | |
19945 | ||
19946 | PR target/113231 | |
19947 | * config/i386/i386-features.cc (compute_convert_gain): Include | |
19948 | the overhead of explicit load and store (movd) instructions when | |
19949 | converting non-store scalar operations with memory destinations. | |
19950 | Various indentation whitespace fixes. | |
19951 | ||
19952 | 2024-01-07 Tamar Christina <tamar.christina@arm.com> | |
19953 | ||
19954 | * config/arm/neon.md (cbranch<mode>4): New. | |
19955 | ||
19956 | 2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19957 | ||
19958 | * config/riscv/riscv-vsetvl.cc: replace std::max by MAX. | |
19959 | ||
19960 | 2024-01-06 Jiahao Xu <xujiahao@loongson.cn> | |
19961 | ||
19962 | * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0. | |
19963 | ||
19964 | 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19965 | ||
19966 | PR target/113248 | |
19967 | * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info): | |
19968 | Update the MAX_SEW. | |
19969 | ||
19970 | 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19971 | ||
19972 | * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function. | |
19973 | (variable_vectorized_p): Teach loop invariant. | |
19974 | (has_unexpected_spills_p): Ditto. | |
19975 | ||
19976 | 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
19977 | ||
19978 | * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function. | |
19979 | * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto. | |
19980 | * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification. | |
19981 | ||
19982 | 2024-01-05 Richard Sandiford <richard.sandiford@arm.com> | |
19983 | ||
19984 | PR target/113104 | |
19985 | * doc/invoke.texi (aarch64-sve-compare-costs): Replace with... | |
19986 | (aarch64-vect-compare-costs): ...this. | |
19987 | * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=): | |
19988 | Replace with... | |
19989 | (-param=aarch64-vect-compare-costs=): ...this new param. | |
19990 | * config/aarch64/aarch64.cc (aarch64_override_options_internal): | |
19991 | Don't disable it when vectorizing for Advanced SIMD only. | |
19992 | (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS | |
19993 | whenever aarch64_vect_compare_costs is true. | |
19994 | ||
19995 | 2024-01-05 Lulu Cheng <chenglulu@loongson.cn> | |
19996 | ||
19997 | * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>): | |
19998 | Modify the method of determining the memory offset of [x]vld/[x]vst. | |
19999 | (lasx_mxst_<lasxfmt_f>): Likewise. | |
20000 | * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete. | |
20001 | (loongarch_address_insns): Likewise. | |
20002 | * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise. | |
20003 | (lsx_st_<lsxfmt_f>): Likewise. | |
20004 | * config/loongarch/predicates.md (aq10b_operand): Likewise. | |
20005 | (aq10h_operand): Likewise. | |
20006 | (aq10w_operand): Likewise. | |
20007 | (aq10d_operand): Likewise. | |
20008 | ||
20009 | 2024-01-05 Alex Coplan <alex.coplan@arm.com> | |
20010 | ||
20011 | PR target/113217 | |
20012 | * config/aarch64/aarch64-ldp-fusion.cc | |
20013 | (ldp_bb_info::try_fuse_pair): If the second access can throw, | |
20014 | narrow the move range to exactly that insn. | |
20015 | ||
20016 | 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com> | |
20017 | ||
20018 | * asan.cc (asan_function_start): Drop switch_to_section (). | |
20019 | (asan_emit_stack_protection): Set .LASANPC alignment. | |
20020 | * config/i386/i386.cc: Use assemble_function_label_raw () | |
20021 | instead of ASM_OUTPUT_LABEL (). | |
20022 | * config/s390/s390.cc (s390_asm_output_function_label): | |
20023 | Likewise. | |
20024 | * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise. | |
20025 | * final.cc (final_start_function_1): Drop | |
20026 | asan_function_start (). | |
20027 | * output.h (assemble_function_label_raw): New function. | |
20028 | * varasm.cc (assemble_function_label_raw): Likewise. | |
20029 | ||
20030 | 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com> | |
20031 | ||
20032 | * config/aarch64/aarch64.cc (aarch64_declare_function_name): | |
20033 | Use ASM_OUTPUT_FUNCTION_LABEL (). | |
20034 | * config/alpha/alpha.cc (alpha_start_function): Likewise. | |
20035 | * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise. | |
20036 | * config/arm/arm.cc (arm_asm_declare_function_name): Likewise. | |
20037 | * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise. | |
20038 | * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise. | |
20039 | * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise. | |
20040 | * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise. | |
20041 | * config/ia64/ia64.cc (ia64_start_function): Likewise. | |
20042 | * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME): | |
20043 | Likewise. | |
20044 | * config/microblaze/microblaze.cc (microblaze_function_prologue): | |
20045 | Likewise. | |
20046 | * config/mips/mips.cc (mips_start_unique_function): Return the | |
20047 | tree. | |
20048 | (mips_start_function_definition): Use | |
20049 | ASM_OUTPUT_FUNCTION_LABEL (). | |
20050 | (mips_finish_stub): Pass the tree to | |
20051 | mips_start_function_definition (). | |
20052 | (mips16_build_function_stub): Likewise. | |
20053 | (mips16_build_call_stub): Likewise. | |
20054 | (mips_output_function_prologue): Likewise. | |
20055 | * config/pa/pa.cc (pa_output_function_label): Use | |
20056 | ASM_OUTPUT_FUNCTION_LABEL (). | |
20057 | * config/riscv/riscv.cc (riscv_declare_function_name): Likewise. | |
20058 | * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name): | |
20059 | Likewise. | |
20060 | (rs6000_xcoff_declare_function_name): Likewise. | |
20061 | ||
20062 | 2024-01-05 Jakub Jelinek <jakub@redhat.com> | |
20063 | ||
20064 | PR tree-optimization/113201 | |
20065 | * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call | |
20066 | replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt. | |
20067 | ||
20068 | 2024-01-05 Jakub Jelinek <jakub@redhat.com> | |
20069 | ||
20070 | PR tree-optimization/90693 | |
20071 | * tree-ssa-math-opts.cc (match_single_bit_test): If | |
20072 | tree_expr_nonzero_p (arg), remember it in the second argument to | |
20073 | IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than | |
20074 | arg ^ (arg - 1) > arg - 1. | |
20075 | * internal-fn.cc (expand_POPCOUNT): If second argument to | |
20076 | IFN_POPCOUNT suggests arg is non-zero, try to expand it as | |
20077 | arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1. | |
20078 | ||
20079 | 2024-01-05 Kito Cheng <kito.cheng@sifive.com> | |
20080 | ||
20081 | * config/riscv/riscv-v.cc (expand_load_store): | |
20082 | Remove `value`. | |
20083 | (expand_cond_len_op): Ditto. | |
20084 | (expand_gather_scatter): Ditto. | |
20085 | (expand_lanes_load_store): Ditto. | |
20086 | (expand_fold_extract_last): Ditto. | |
20087 | ||
20088 | 2024-01-05 Pan Li <pan2.li@intel.com> | |
20089 | ||
20090 | Revert: | |
20091 | 2024-01-05 Feng Wang <wangfeng@eswincomputing.com> | |
20092 | ||
20093 | * config/riscv/riscv-vector-builtins-bases.cc (class vandn): | |
20094 | Add new function_base for crypto vector. | |
20095 | (class bitmanip): Ditto. | |
20096 | (class b_reverse):Ditto. | |
20097 | (class vwsll): Ditto. | |
20098 | (class clmul): Ditto. | |
20099 | (class vg_nhab): Ditto. | |
20100 | (class crypto_vv):Ditto. | |
20101 | (class crypto_vi):Ditto. | |
20102 | (class vaeskf2_vsm3c):Ditto. | |
20103 | (class vsm3me): Ditto. | |
20104 | (BASE): Add BASE declaration for crypto vector. | |
20105 | * config/riscv/riscv-vector-builtins-bases.h: Ditto. | |
20106 | * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): | |
20107 | Add crypto vector intrinsic definition. | |
20108 | (vbrev): Ditto. | |
20109 | (vclz): Ditto. | |
20110 | (vctz): Ditto. | |
20111 | (vwsll): Ditto. | |
20112 | (vandn): Ditto. | |
20113 | (vbrev8): Ditto. | |
20114 | (vrev8): Ditto. | |
20115 | (vrol): Ditto. | |
20116 | (vror): Ditto. | |
20117 | (vclmul): Ditto. | |
20118 | (vclmulh): Ditto. | |
20119 | (vghsh): Ditto. | |
20120 | (vgmul): Ditto. | |
20121 | (vaesef): Ditto. | |
20122 | (vaesem): Ditto. | |
20123 | (vaesdf): Ditto. | |
20124 | (vaesdm): Ditto. | |
20125 | (vaesz): Ditto. | |
20126 | (vaeskf1): Ditto. | |
20127 | (vaeskf2): Ditto. | |
20128 | (vsha2ms): Ditto. | |
20129 | (vsha2ch): Ditto. | |
20130 | (vsha2cl): Ditto. | |
20131 | (vsm4k): Ditto. | |
20132 | (vsm4r): Ditto. | |
20133 | (vsm3me): Ditto. | |
20134 | (vsm3c): Ditto. | |
20135 | * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def): | |
20136 | Add new function_shape for crypto vector. | |
20137 | (struct crypto_vi_def): Ditto. | |
20138 | (struct crypto_vv_no_op_type_def): Ditto. | |
20139 | (SHAPE): Add SHAPE declaration of crypto vector. | |
20140 | * config/riscv/riscv-vector-builtins-shapes.h: Ditto. | |
20141 | * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS): | |
20142 | Add new data type for crypto vector. | |
20143 | (DEF_RVV_CRYPTO_SEW64_OPS): Ditto. | |
20144 | (vuint32mf2_t): Ditto. | |
20145 | (vuint32m1_t): Ditto. | |
20146 | (vuint32m2_t): Ditto. | |
20147 | (vuint32m4_t): Ditto. | |
20148 | (vuint32m8_t): Ditto. | |
20149 | (vuint64m1_t): Ditto. | |
20150 | (vuint64m2_t): Ditto. | |
20151 | (vuint64m4_t): Ditto. | |
20152 | (vuint64m8_t): Ditto. | |
20153 | * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS): | |
20154 | Add new data struct for crypto vector. | |
20155 | (DEF_RVV_CRYPTO_SEW64_OPS): Ditto. | |
20156 | (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func. | |
20157 | * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE. | |
20158 | ||
20159 | 2024-01-05 Feng Wang <wangfeng@eswincomputing.com> | |
20160 | ||
20161 | * config/riscv/riscv-vector-builtins-bases.cc (class vandn): | |
20162 | Add new function_base for crypto vector. | |
20163 | (class bitmanip): Ditto. | |
20164 | (class b_reverse):Ditto. | |
20165 | (class vwsll): Ditto. | |
20166 | (class clmul): Ditto. | |
20167 | (class vg_nhab): Ditto. | |
20168 | (class crypto_vv):Ditto. | |
20169 | (class crypto_vi):Ditto. | |
20170 | (class vaeskf2_vsm3c):Ditto. | |
20171 | (class vsm3me): Ditto. | |
20172 | (BASE): Add BASE declaration for crypto vector. | |
20173 | * config/riscv/riscv-vector-builtins-bases.h: Ditto. | |
20174 | * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): | |
20175 | Add crypto vector intrinsic definition. | |
20176 | (vbrev): Ditto. | |
20177 | (vclz): Ditto. | |
20178 | (vctz): Ditto. | |
20179 | (vwsll): Ditto. | |
20180 | (vandn): Ditto. | |
20181 | (vbrev8): Ditto. | |
20182 | (vrev8): Ditto. | |
20183 | (vrol): Ditto. | |
20184 | (vror): Ditto. | |
20185 | (vclmul): Ditto. | |
20186 | (vclmulh): Ditto. | |
20187 | (vghsh): Ditto. | |
20188 | (vgmul): Ditto. | |
20189 | (vaesef): Ditto. | |
20190 | (vaesem): Ditto. | |
20191 | (vaesdf): Ditto. | |
20192 | (vaesdm): Ditto. | |
20193 | (vaesz): Ditto. | |
20194 | (vaeskf1): Ditto. | |
20195 | (vaeskf2): Ditto. | |
20196 | (vsha2ms): Ditto. | |
20197 | (vsha2ch): Ditto. | |
20198 | (vsha2cl): Ditto. | |
20199 | (vsm4k): Ditto. | |
20200 | (vsm4r): Ditto. | |
20201 | (vsm3me): Ditto. | |
20202 | (vsm3c): Ditto. | |
20203 | * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def): | |
20204 | Add new function_shape for crypto vector. | |
20205 | (struct crypto_vi_def): Ditto. | |
20206 | (struct crypto_vv_no_op_type_def): Ditto. | |
20207 | (SHAPE): Add SHAPE declaration of crypto vector. | |
20208 | * config/riscv/riscv-vector-builtins-shapes.h: Ditto. | |
20209 | * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS): | |
20210 | Add new data type for crypto vector. | |
20211 | (DEF_RVV_CRYPTO_SEW64_OPS): Ditto. | |
20212 | (vuint32mf2_t): Ditto. | |
20213 | (vuint32m1_t): Ditto. | |
20214 | (vuint32m2_t): Ditto. | |
20215 | (vuint32m4_t): Ditto. | |
20216 | (vuint32m8_t): Ditto. | |
20217 | (vuint64m1_t): Ditto. | |
20218 | (vuint64m2_t): Ditto. | |
20219 | (vuint64m4_t): Ditto. | |
20220 | (vuint64m8_t): Ditto. | |
20221 | * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS): | |
20222 | Add new data struct for crypto vector. | |
20223 | (DEF_RVV_CRYPTO_SEW64_OPS): Ditto. | |
20224 | (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func. | |
20225 | * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE. | |
20226 | ||
20227 | 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20228 | ||
20229 | * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant. | |
20230 | ||
20231 | 2024-01-04 Andrew Pinski <quic_apinski@quicinc.com> | |
20232 | ||
20233 | PR tree-optimization/113186 | |
20234 | * gimple-match-head.cc (gimple_bitwise_inverted_equal_p): | |
20235 | Match `^` with the `==` for 1bit integral types. | |
20236 | * match.pd (maybe_cmp): Allow for bit_xor for 1bit | |
20237 | integral types. | |
20238 | ||
20239 | 2024-01-04 David Malcolm <dmalcolm@redhat.com> | |
20240 | ||
20241 | * toplev.cc (general_init): Pass lang_mask to urlifier. | |
20242 | ||
20243 | 2024-01-04 David Malcolm <dmalcolm@redhat.com> | |
20244 | ||
20245 | * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask | |
20246 | param. | |
20247 | (diagnostic_context::make_option_url): Update for lang_mask param. | |
20248 | * gcc-urlifier.cc: Include "opts.h" and "options.h". | |
20249 | (gcc_urlifier::gcc_urlifier): Add lang_mask param. | |
20250 | (gcc_urlifier::m_lang_mask): New field. | |
20251 | (doc_urls): Make static. | |
20252 | (gcc_urlifier::get_url_for_quoted_text): Use label_text. | |
20253 | (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text. | |
20254 | Look for an option by name before trying a binary search in | |
20255 | doc_urls. | |
20256 | (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text. | |
20257 | (gcc_urlifier::get_url_suffix_for_option): New. | |
20258 | (make_gcc_urlifier): Add lang_mask param. | |
20259 | (selftest::gcc_urlifier_cc_tests): Update for above changes. | |
20260 | Verify that a URL is found for "-fpack-struct". | |
20261 | * gcc-urlifier.def: Drop options "--version" and "-fpack-struct". | |
20262 | * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param. | |
20263 | * gcc.cc (driver::global_initializations): Pass 0 for lang_mask | |
20264 | to make_gcc_urlifier. | |
20265 | * opts-diagnostic.h (get_option_url): Add lang_mask param. | |
20266 | * opts.cc (get_option_html_page): Remove special-casing for | |
20267 | analyzer and LTO. | |
20268 | (get_option_url_suffix): New. | |
20269 | (get_option_url): Reimplement. | |
20270 | (selftest::test_get_option_html_page): Rename to... | |
20271 | (selftest::test_get_option_url_suffix): ...this and update for | |
20272 | above changes. | |
20273 | (selftest::opts_cc_tests): Update for renaming. | |
20274 | * opts.h: Include "rich-location.h". | |
20275 | (get_option_url_suffix): New decl. | |
20276 | ||
20277 | 2024-01-04 David Malcolm <dmalcolm@redhat.com> | |
20278 | ||
20279 | * Makefile.in (ALL_OPT_URL_FILES): New. | |
20280 | (GCC_OBJS): Add options-urls.o. | |
20281 | (OBJS): Likewise. | |
20282 | (OBJS-libcommon): Likewise. | |
20283 | (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to | |
20284 | inputs to opt-gather.awk. | |
20285 | (options-urls.cc): New Makefile target. | |
20286 | * opt-functions.awk (url_suffix): New function. | |
20287 | (lang_url_suffix): New function. | |
20288 | * options-urls-cc-gen.awk: New file. | |
20289 | * opts.h (get_opt_url_suffix): New decl. | |
20290 | ||
20291 | 2024-01-04 David Malcolm <dmalcolm@redhat.com> | |
20292 | ||
20293 | * params.opt.urls: New file, autogenerated by | |
20294 | regenerate-opt-urls.py. | |
20295 | ||
20296 | 2024-01-04 David Malcolm <dmalcolm@redhat.com> | |
20297 | ||
20298 | * common.opt.urls: New file, autogenerated by | |
20299 | regenerate-opt-urls.py. | |
20300 | * config/aarch64/aarch64.opt.urls: Likewise. | |
20301 | * config/alpha/alpha.opt.urls: Likewise. | |
20302 | * config/alpha/elf.opt.urls: Likewise. | |
20303 | * config/arc/arc-tables.opt.urls: Likewise. | |
20304 | * config/arc/arc.opt.urls: Likewise. | |
20305 | * config/arm/arm-tables.opt.urls: Likewise. | |
20306 | * config/arm/arm.opt.urls: Likewise. | |
20307 | * config/arm/vxworks.opt.urls: Likewise. | |
20308 | * config/avr/avr.opt.urls: Likewise. | |
20309 | * config/bpf/bpf.opt.urls: Likewise. | |
20310 | * config/c6x/c6x-tables.opt.urls: Likewise. | |
20311 | * config/c6x/c6x.opt.urls: Likewise. | |
20312 | * config/cris/cris.opt.urls: Likewise. | |
20313 | * config/cris/elf.opt.urls: Likewise. | |
20314 | * config/csky/csky.opt.urls: Likewise. | |
20315 | * config/csky/csky_tables.opt.urls: Likewise. | |
20316 | * config/darwin.opt.urls: Likewise. | |
20317 | * config/dragonfly.opt.urls: Likewise. | |
20318 | * config/epiphany/epiphany.opt.urls: Likewise. | |
20319 | * config/fr30/fr30.opt.urls: Likewise. | |
20320 | * config/freebsd.opt.urls: Likewise. | |
20321 | * config/frv/frv.opt.urls: Likewise. | |
20322 | * config/ft32/ft32.opt.urls: Likewise. | |
20323 | * config/fused-madd.opt.urls: Likewise. | |
20324 | * config/g.opt.urls: Likewise. | |
20325 | * config/gcn/gcn.opt.urls: Likewise. | |
20326 | * config/gnu-user.opt.urls: Likewise. | |
20327 | * config/h8300/h8300.opt.urls: Likewise. | |
20328 | * config/hpux11.opt.urls: Likewise. | |
20329 | * config/i386/cygming.opt.urls: Likewise. | |
20330 | * config/i386/cygwin.opt.urls: Likewise. | |
20331 | * config/i386/djgpp.opt.urls: Likewise. | |
20332 | * config/i386/i386.opt.urls: Likewise. | |
20333 | * config/i386/mingw-w64.opt.urls: Likewise. | |
20334 | * config/i386/mingw.opt.urls: Likewise. | |
20335 | * config/i386/nto.opt.urls: Likewise. | |
20336 | * config/ia64/ia64.opt.urls: Likewise. | |
20337 | * config/ia64/ilp32.opt.urls: Likewise. | |
20338 | * config/ia64/vms.opt.urls: Likewise. | |
20339 | * config/iq2000/iq2000.opt.urls: Likewise. | |
20340 | * config/linux-android.opt.urls: Likewise. | |
20341 | * config/linux.opt.urls: Likewise. | |
20342 | * config/lm32/lm32.opt.urls: Likewise. | |
20343 | * config/loongarch/loongarch.opt.urls: Likewise. | |
20344 | * config/lynx.opt.urls: Likewise. | |
20345 | * config/m32c/m32c.opt.urls: Likewise. | |
20346 | * config/m32r/m32r.opt.urls: Likewise. | |
20347 | * config/m68k/ieee.opt.urls: Likewise. | |
20348 | * config/m68k/m68k-tables.opt.urls: Likewise. | |
20349 | * config/m68k/m68k.opt.urls: Likewise. | |
20350 | * config/m68k/uclinux.opt.urls: Likewise. | |
20351 | * config/mcore/mcore.opt.urls: Likewise. | |
20352 | * config/microblaze/microblaze.opt.urls: Likewise. | |
20353 | * config/mips/mips-tables.opt.urls: Likewise. | |
20354 | * config/mips/mips.opt.urls: Likewise. | |
20355 | * config/mips/sde.opt.urls: Likewise. | |
20356 | * config/mmix/mmix.opt.urls: Likewise. | |
20357 | * config/mn10300/mn10300.opt.urls: Likewise. | |
20358 | * config/moxie/moxie.opt.urls: Likewise. | |
20359 | * config/msp430/msp430.opt.urls: Likewise. | |
20360 | * config/nds32/nds32-elf.opt.urls: Likewise. | |
20361 | * config/nds32/nds32-linux.opt.urls: Likewise. | |
20362 | * config/nds32/nds32.opt.urls: Likewise. | |
20363 | * config/netbsd-elf.opt.urls: Likewise. | |
20364 | * config/netbsd.opt.urls: Likewise. | |
20365 | * config/nios2/elf.opt.urls: Likewise. | |
20366 | * config/nios2/nios2.opt.urls: Likewise. | |
20367 | * config/nvptx/nvptx-gen.opt.urls: Likewise. | |
20368 | * config/nvptx/nvptx.opt.urls: Likewise. | |
20369 | * config/openbsd.opt.urls: Likewise. | |
20370 | * config/or1k/elf.opt.urls: Likewise. | |
20371 | * config/or1k/or1k.opt.urls: Likewise. | |
20372 | * config/pa/pa-hpux.opt.urls: Likewise. | |
20373 | * config/pa/pa-hpux1010.opt.urls: Likewise. | |
20374 | * config/pa/pa-hpux1111.opt.urls: Likewise. | |
20375 | * config/pa/pa-hpux1131.opt.urls: Likewise. | |
20376 | * config/pa/pa.opt.urls: Likewise. | |
20377 | * config/pa/pa64-hpux.opt.urls: Likewise. | |
20378 | * config/pdp11/pdp11.opt.urls: Likewise. | |
20379 | * config/pru/pru.opt.urls: Likewise. | |
20380 | * config/riscv/riscv.opt.urls: Likewise. | |
20381 | * config/rl78/rl78.opt.urls: Likewise. | |
20382 | * config/rpath.opt.urls: Likewise. | |
20383 | * config/rs6000/476.opt.urls: Likewise. | |
20384 | * config/rs6000/aix64.opt.urls: Likewise. | |
20385 | * config/rs6000/darwin.opt.urls: Likewise. | |
20386 | * config/rs6000/linux64.opt.urls: Likewise. | |
20387 | * config/rs6000/rs6000-tables.opt.urls: Likewise. | |
20388 | * config/rs6000/rs6000.opt.urls: Likewise. | |
20389 | * config/rs6000/sysv4.opt.urls: Likewise. | |
20390 | * config/rtems.opt.urls: Likewise. | |
20391 | * config/rx/elf.opt.urls: Likewise. | |
20392 | * config/rx/rx.opt.urls: Likewise. | |
20393 | * config/s390/s390.opt.urls: Likewise. | |
20394 | * config/s390/tpf.opt.urls: Likewise. | |
20395 | * config/sh/sh.opt.urls: Likewise. | |
20396 | * config/sh/superh.opt.urls: Likewise. | |
20397 | * config/sol2.opt.urls: Likewise. | |
20398 | * config/sparc/long-double-switch.opt.urls: Likewise. | |
20399 | * config/sparc/sparc.opt.urls: Likewise. | |
20400 | * config/stormy16/stormy16.opt.urls: Likewise. | |
20401 | * config/v850/v850.opt.urls: Likewise. | |
20402 | * config/vax/elf.opt.urls: Likewise. | |
20403 | * config/vax/vax.opt.urls: Likewise. | |
20404 | * config/visium/visium.opt.urls: Likewise. | |
20405 | * config/vms/vms.opt.urls: Likewise. | |
20406 | * config/vxworks-smp.opt.urls: Likewise. | |
20407 | * config/vxworks.opt.urls: Likewise. | |
20408 | * config/xtensa/elf.opt.urls: Likewise. | |
20409 | * config/xtensa/uclinux.opt.urls: Likewise. | |
20410 | * config/xtensa/xtensa.opt.urls: Likewise. | |
20411 | * config/bfin/bfin.opt.urls: New file. | |
20412 | ||
20413 | 2024-01-04 David Malcolm <dmalcolm@redhat.com> | |
20414 | ||
20415 | * Makefile.in (OPT_URLS_HTML_DEPS): New. | |
20416 | (regenerate-opt-urls): New target. | |
20417 | (regenerate-opt-urls-unit-test): New target. | |
20418 | * doc/options.texi (Option properties): Add UrlSuffix and | |
20419 | description of regenerate-opt-urls.py. Add LangUrlSuffix_*. | |
20420 | * doc/sourcebuild.texi (Anatomy of a Language Front End): Add | |
20421 | reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES | |
20422 | and Makefile.in's OPT_URLS_HTML_DEPS. | |
20423 | (Anatomy of a Target Back End): Add | |
20424 | reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES. | |
20425 | * regenerate-opt-urls.py: New file. | |
20426 | ||
20427 | 2024-01-04 David Malcolm <dmalcolm@redhat.com> | |
20428 | ||
20429 | * diagnostic-format-sarif.cc | |
20430 | (sarif_builder::make_logical_location_object): Convert to... | |
20431 | (make_sarif_logical_location_object): ...this. | |
20432 | (sarif_builder::set_any_logical_locs_arr): Update for above | |
20433 | change. | |
20434 | (sarif_builder::make_thread_flow_location_object): Call | |
20435 | maybe_add_sarif_properties on each diagnostic_event. | |
20436 | * diagnostic-format-sarif.h (class logical_location): New forward | |
20437 | decl. | |
20438 | (make_sarif_logical_location_object): New decl. | |
20439 | * diagnostic-path.h (class sarif_object): New forward decl. | |
20440 | (diagnostic_event::maybe_add_sarif_properties): New vfunc. | |
20441 | ||
20442 | 2024-01-04 Kuan-Lin Chen <rufus@andestech.com> | |
20443 | Patrick Lin <patrick@andestech.com> | |
20444 | Rufus Chen <rufus@andestech.com> | |
20445 | Monk Chiang <monk.chiang@sifive.com> | |
20446 | ||
20447 | * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh | |
20448 | with Nan-boxing value. | |
20449 | * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern. | |
20450 | ||
20451 | 2024-01-04 Roger Sayle <roger@nextmovesoftware.com> | |
20452 | Jeff Law <jlaw@ventanamicro.com> | |
20453 | ||
20454 | PR rtl-optimization/104914 | |
20455 | * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P | |
20456 | a sign or zero extension is only required if the modified field | |
20457 | overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED | |
20458 | targets, don't refer to the temporarily incorrectly extended value | |
20459 | using a SUBREG, but instead generate an explicit TRUNCATE rtx. | |
20460 | ||
20461 | 2024-01-04 Pan Li <pan2.li@intel.com> | |
20462 | ||
20463 | Revert: | |
20464 | 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20465 | ||
20466 | * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant. | |
20467 | ||
20468 | 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20469 | ||
20470 | * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant. | |
20471 | ||
20472 | 2024-01-04 Kito Cheng <kito.cheng@sifive.com> | |
20473 | ||
20474 | * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the | |
20475 | offset of fcsr. | |
20476 | ||
20477 | 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20478 | ||
20479 | * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function. | |
20480 | (compute_nregs_for_mode): Refine LMUL. | |
20481 | (max_number_of_live_regs): Ditto. | |
20482 | (compute_estimated_lmul): Ditto. | |
20483 | (has_unexpected_spills_p): Ditto. | |
20484 | ||
20485 | 2024-01-04 Li Wei <liwei@loongson.cn> | |
20486 | ||
20487 | * config/loongarch/loongarch.cc (loongarch_is_odd_extraction): | |
20488 | Remove useless forward declaration. | |
20489 | (loongarch_is_even_extraction): Remove useless forward declaration. | |
20490 | (loongarch_try_expand_lsx_vshuf_const): Removed. | |
20491 | (loongarch_expand_vec_perm_const_1): Merged. | |
20492 | (loongarch_is_double_duplicate): Removed. | |
20493 | (loongarch_is_center_extraction): Ditto. | |
20494 | (loongarch_is_reversing_permutation): Ditto. | |
20495 | (loongarch_is_di_misalign_extract): Ditto. | |
20496 | (loongarch_is_si_misalign_extract): Ditto. | |
20497 | (loongarch_is_lasx_lowpart_extract): Ditto. | |
20498 | (loongarch_is_op_reverse_perm): Ditto. | |
20499 | (loongarch_is_single_op_perm): Ditto. | |
20500 | (loongarch_is_divisible_perm): Ditto. | |
20501 | (loongarch_is_triple_stride_extract): Ditto. | |
20502 | (loongarch_expand_vec_perm_const_2): Merged. | |
20503 | (loongarch_expand_vec_perm_const): New. | |
20504 | (loongarch_vectorize_vec_perm_const): Adjust. | |
20505 | ||
20506 | 2024-01-04 Sandra Loosemore <sandra@codesourcery.com> | |
20507 | ||
20508 | * omp-general.cc: Fix comment typos and misplaced/confusing | |
20509 | comments. Delete redundant include of omp-general.h. | |
20510 | ||
20511 | 2024-01-04 YunQiang Su <syq@gcc.gnu.org> | |
20512 | ||
20513 | PR rtl-optimization/104914 | |
20514 | * config/mips/mips.md (insqisi_extended): New patterns. | |
20515 | (inshisi_extended): Ditto. | |
20516 | ||
20517 | 2024-01-04 YunQiang Su <syq@gcc.gnu.org> | |
20518 | ||
20519 | * config/mips/mips.cc (mips_insn_cost): New function. | |
20520 | ||
20521 | 2024-01-04 YunQiang Su <syq@gcc.gnu.org> | |
20522 | ||
20523 | * config/mips/mips.md (perf_ratio): New attribute. | |
20524 | ||
20525 | 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20526 | ||
20527 | PR target/113206 | |
20528 | PR target/113209 | |
20529 | * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function. | |
20530 | (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on | |
20531 | blocks belong to infinite loop. | |
20532 | (pre_vsetvl::emit_vsetvl): Remove fake edges. | |
20533 | * config/riscv/t-riscv: Add a new include file. | |
20534 | ||
20535 | 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20536 | ||
20537 | * config/riscv/vector.md: Fix indent. | |
20538 | ||
20539 | 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com> | |
20540 | ||
20541 | * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before | |
20542 | OMP_CLAUSE__SIMDUID_. | |
20543 | * tree.cc (omp_clause_num_ops): Update position of entry for | |
20544 | OMP_CLAUSE_INDIRECT to correspond with omp_clause_code. | |
20545 | (omp_clause_code_name): Likewise. | |
20546 | ||
20547 | 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com> | |
20548 | ||
20549 | * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture | |
20550 | printing of FUNC_MAP/IND_FUNC_MAP labels. | |
20551 | ||
20552 | 2024-01-03 Jakub Jelinek <jakub@redhat.com> | |
20553 | ||
20554 | * gcc.cc (process_command): Update copyright notice dates. | |
20555 | * gcov-dump.cc (print_version): Ditto. | |
20556 | * gcov.cc (print_version): Ditto. | |
20557 | * gcov-tool.cc (print_version): Ditto. | |
20558 | * gengtype.cc (create_file): Ditto. | |
20559 | * doc/cpp.texi: Bump @copying's copyright year. | |
20560 | * doc/cppinternals.texi: Ditto. | |
20561 | * doc/gcc.texi: Ditto. | |
20562 | * doc/gccint.texi: Ditto. | |
20563 | * doc/gcov.texi: Ditto. | |
20564 | * doc/install.texi: Ditto. | |
20565 | * doc/invoke.texi: Ditto. | |
20566 | ||
20567 | 2024-01-03 Xi Ruoyao <xry111@xry111.site> | |
20568 | ||
20569 | * config/loongarch/simd.md (fmax<mode>3): New define_insn. | |
20570 | (fmin<mode>3): Likewise. | |
20571 | (reduc_fmax_scal_<mode>3): New define_expand. | |
20572 | (reduc_fmin_scal_<mode>3): Likewise. | |
20573 | ||
20574 | 2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20575 | ||
20576 | PR target/113112 | |
20577 | * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info. | |
20578 | (max_number_of_live_regs): Ditto. | |
20579 | (has_unexpected_spills_p): Ditto. | |
20580 | ||
20581 | 2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com> | |
20582 | Jin Ma <jinma@linux.alibaba.com> | |
20583 | Xianmiao Qu <cooper.qu@linux.alibaba.com> | |
20584 | Christoph Müllner <christoph.muellner@vrull.eu> | |
20585 | ||
20586 | * config/riscv/vector.md: | |
20587 | Use vector_length_operand for vsetvl patterns. | |
20588 | ||
20589 | 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20590 | ||
20591 | * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K. | |
20592 | (expand_cond_len_op): Add simplification of dummy len and dummy mask. | |
20593 | ||
20594 | 2024-01-02 Di Zhao <dizhao@os.amperecomputing.com> | |
20595 | ||
20596 | * config/aarch64/aarch64-tuning-flags.def | |
20597 | (AARCH64_EXTRA_TUNING_OPTION): New tuning option | |
20598 | AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA. | |
20599 | * config/aarch64/aarch64.cc | |
20600 | (aarch64_override_options_internal): Set | |
20601 | param_fully_pipelined_fma according to tuning option. | |
20602 | * config/aarch64/tuning_models/ampere1.h: Add | |
20603 | AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags. | |
20604 | * config/aarch64/tuning_models/ampere1a.h: Likewise. | |
20605 | * config/aarch64/tuning_models/ampere1b.h: Likewise. | |
20606 | ||
20607 | 2024-01-02 Feng Wang <wangfeng@eswincomputing.com> | |
20608 | ||
20609 | * config/riscv/vector-crypto.md: Modify copyright year. | |
20610 | ||
20611 | 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20612 | ||
20613 | * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local. | |
20614 | ||
20615 | 2024-01-02 Lulu Cheng <chenglulu@loongson.cn> | |
20616 | ||
20617 | * config.in: Regenerate. | |
20618 | * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define. | |
20619 | * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address): | |
20620 | Added TLS Le Relax support. | |
20621 | (loongarch_print_operand_reloc): Add the output string of TLS Le Relax. | |
20622 | * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template. | |
20623 | * configure: Regenerate. | |
20624 | * configure.ac: Check if binutils supports TLS le relax. | |
20625 | ||
20626 | 2024-01-02 Feng Wang <wangfeng@eswincomputing.com> | |
20627 | ||
20628 | * config/riscv/iterators.md: Add rotate insn name. | |
20629 | * config/riscv/riscv.md: Add new insns name for crypto vector. | |
20630 | * config/riscv/vector-iterators.md: Add new iterators for crypto vector. | |
20631 | * config/riscv/vector.md: Add the corresponding attr for crypto vector. | |
20632 | * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector. | |
20633 | ||
20634 | 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
20635 | ||
20636 | PR target/113112 | |
20637 | * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix | |
20638 | pointer type liveness count. | |
20639 | \f | |
20640 | Copyright (C) 2024 Free Software Foundation, Inc. | |
20641 | ||
20642 | Copying and distribution of this file, with or without modification, | |
20643 | are permitted in any medium without royalty provided the copyright | |
20644 | notice and this notice are preserved. |