[clang] [clang][driver] Allow unaligned access on ARMv7 and higher by default (PR #82400)
Paul Kirth via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 22 09:11:00 PST 2024
================
@@ -305,6 +305,17 @@ X86 Support
Arm and AArch64 Support
^^^^^^^^^^^^^^^^^^^^^^^
+- ARMv7+ targets now default to allowing unaligned access, except Armv6-M, and
+ Armv8-M without the Main Extension. Baremetal targets should check that the
+ new default will work with their system configurations, since it requires
+ that SCTLR.A is 0, SCTLR.U is 1, and that the memory in question is
+ configured as "normal" memory. We've made the value judgment that the
+ performance gains here outweigh breakages, since it is difficult to identify
+ performance loss from disabling unaligned access, but incorrect enabling
+ unaligned access will generate an obvious alignment fault on ARMv7+. This is
+ also the default setting for ARM's downstream compilers. We have not changed
+ the default behavior for ARMv6, but may revisit that decision in the future.
----------------
ilovepi wrote:
Thanks for the suggested edits. I've mostly kept them, but as you mentioned added a bit about the performance/size benefits.
https://github.com/llvm/llvm-project/pull/82400
More information about the cfe-commits
mailing list