[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