[PATCH] D108679: Restrict ARM IT Blocks on Windows
Daniel Paoliello via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 24 18:06:32 PDT 2021
dpaoliello created this revision.
Herald added subscribers: hiraditya, kristof.beyls.
dpaoliello requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Per Microsoft's documentation (https://docs.microsoft.com/en-us/cpp/build/overview-of-arm-abi-conventions?view=msvc-160#it-instructions) ARM IT Blocks should be restricted as if targeting ARMv8, even on older versions of ARM.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D108679
Files:
llvm/lib/Target/ARM/ARMSubtarget.cpp
Index: llvm/lib/Target/ARM/ARMSubtarget.cpp
===================================================================
--- llvm/lib/Target/ARM/ARMSubtarget.cpp
+++ llvm/lib/Target/ARM/ARMSubtarget.cpp
@@ -235,9 +235,12 @@
if (isTargetMachO() && isTargetIOS() && getTargetTriple().isOSVersionLT(5, 0))
SupportsTailCall = false;
+ // Multi-instruction IT Blocks have been deprecated in ARMv8, additionally
+ // Windows does not permit them, even for older ARM versions.
+
switch (IT) {
case DefaultIT:
- RestrictIT = hasV8Ops() && !hasMinSize();
+ RestrictIT = (hasV8Ops() && !hasMinSize()) || isTargetWindows();
break;
case RestrictedIT:
RestrictIT = true;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D108679.368516.patch
Type: text/x-patch
Size: 686 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210825/b576a37b/attachment.bin>
More information about the llvm-commits
mailing list