[PATCH] D57614: [AutoUpgrade] Fix AutoUpgrade for x86.seh.recoverfp

Mandeep Singh Grang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 1 13:32:13 PST 2019


mgrang updated this revision to Diff 184832.
mgrang retitled this revision from "[AutoUpgrade] Fix AutoUpgrade for x86.eh.recoverfp" to "[AutoUpgrade] Fix AutoUpgrade for x86.seh.recoverfp".
mgrang added a comment.
Herald added a subscriber: javed.absar.

Added unit test.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57614/new/

https://reviews.llvm.org/D57614

Files:
  lib/IR/AutoUpgrade.cpp
  test/CodeGen/AArch64/eh_recoverfp.ll


Index: test/CodeGen/AArch64/eh_recoverfp.ll
===================================================================
--- /dev/null
+++ test/CodeGen/AArch64/eh_recoverfp.ll
@@ -0,0 +1,11 @@
+; RUN: llc -mtriple arm64-windows %s -o - 2>&1 | FileCheck %s
+
+define i8* @foo(i8* %a) {
+; CHECK-LABEL: foo
+; CHECK-NOT: llvm.x86.seh.recoverfp
+  %1 = call i8* @llvm.x86.seh.recoverfp(i8* bitcast (i32 ()* @f to i8*), i8* %a)
+  ret i8* %1
+}
+
+declare i8* @llvm.x86.seh.recoverfp(i8*, i8*)
+declare i32 @f()
Index: lib/IR/AutoUpgrade.cpp
===================================================================
--- lib/IR/AutoUpgrade.cpp
+++ lib/IR/AutoUpgrade.cpp
@@ -471,6 +471,11 @@
     }
   }
 
+  if (Name == "seh.recoverfp") {
+    NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::eh_recoverfp);
+    return true;
+  }
+
   return false;
 }
 
@@ -546,10 +551,6 @@
       NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::thread_pointer);
       return true;
     }
-    if (Name == "x86.seh.recoverfp") {
-      NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::eh_recoverfp);
-      return true;
-    }
     break;
   }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57614.184832.patch
Type: text/x-patch
Size: 1150 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190201/fcddeb05/attachment.bin>


More information about the llvm-commits mailing list