Commit f7f9945c authored by Hans Wennborg's avatar Hans Wennborg
Browse files

Merging r352945:

------------------------------------------------------------------------
r352945 | mgrang | 2019-02-02 02:32:48 +0100 (Sat, 02 Feb 2019) | 13 lines

[AutoUpgrade] Fix AutoUpgrade for x86.seh.recoverfp

Summary: This fixes the bug in https://reviews.llvm.org/D56747#inline-502711.

Reviewers: efriedma

Reviewed By: efriedma

Subscribers: javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57614
------------------------------------------------------------------------

llvm-svn: 353159
parent 9c110d55
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -469,6 +469,11 @@ static bool UpgradeX86IntrinsicFunction(Function *F, StringRef Name,
    }
  }

  if (Name == "seh.recoverfp") {
    NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::eh_recoverfp);
    return true;
  }

  return false;
}

@@ -544,10 +549,6 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) {
      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;
  }

+11 −0
Original line number Diff line number Diff line
; 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()