aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2024-02-21 11:12:27 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2024-02-21 11:12:27 +0000
commit58930e9fd1816c2a71c4f4e54a82e870d3afe10a (patch)
treec86a7ac323fa2ad94e8c68801e18ebf615e3d283 /libgcc
parentad4df8cd080c9be738f61b5e91cc70a594c4419d (diff)
downloadgcc-58930e9fd1816c2a71c4f4e54a82e870d3afe10a.zip
gcc-58930e9fd1816c2a71c4f4e54a82e870d3afe10a.tar.gz
gcc-58930e9fd1816c2a71c4f4e54a82e870d3afe10a.tar.bz2
aarch64: Remove the aarch64_commit_lazy_save pattern
The main purpose of the aarch64_commit_lazy_save pattern was to defer insertion of a half-diamond until splitting, since splitting knew how to create the associated basic blocks. However, the fix for PR113220 means that mode-switching also knows how to do that. This patch therefore removes the pattern and emits the subinstructions directly. On its own, this is actually a slight regression, since it means we keep an unnecessary zero { za }. But the cases where that happens are wrong for a different reason, and this patch is a prerequisite to fixing it. gcc/ * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove, directly inserting the associated sequence * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): ...here instead. gcc/testsuite/ * gcc.target/aarch64/sme/zt0_state_5.c (test3, test5): Expect zero { za }s.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions