]> granicus.if.org Git - llvm/commitdiff
GlobalISel: mark incoming landing-pad registers as live.
authorTim Northover <tnorthover@apple.com>
Fri, 27 Jan 2017 21:31:17 +0000 (21:31 +0000)
committerTim Northover <tnorthover@apple.com>
Fri, 27 Jan 2017 21:31:17 +0000 (21:31 +0000)
Should fix machine verifier failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293334 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/GlobalISel/IRTranslator.cpp
test/CodeGen/AArch64/GlobalISel/legalize-exceptions.ll

index 4a642f44cb3d45ccc43412a16e015e1245ce8fce..ce3e682f14e4ff814bf23e370980def22088ceb4 100644 (file)
@@ -759,6 +759,7 @@ bool IRTranslator::translateLandingPad(const User &U,
   SmallVector<unsigned, 2> Regs;
   SmallVector<uint64_t, 2> Offsets;
   if (unsigned Reg = TLI.getExceptionPointerRegister(PersonalityFn)) {
+    MBB.addLiveIn(Reg);
     unsigned VReg = MRI->createGenericVirtualRegister(Tys[0]);
     MIRBuilder.buildCopy(VReg, Reg);
     Regs.push_back(VReg);
@@ -766,6 +767,7 @@ bool IRTranslator::translateLandingPad(const User &U,
   }
 
   if (unsigned Reg = TLI.getExceptionSelectorRegister(PersonalityFn)) {
+    MBB.addLiveIn(Reg);
     unsigned VReg = MRI->createGenericVirtualRegister(Tys[1]);
     MIRBuilder.buildCopy(VReg, Reg);
     Regs.push_back(VReg);
index 1e1cf2bd7cdc921ef0f0697b1621ae5b1024eb89..7e32a25f1dd2e71ff157c3d245398662223e4184 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=aarch64-apple-ios -global-isel -stop-after=legalizer %s -o - | FileCheck %s
+; RUN: llc -O0 -mtriple=aarch64-apple-ios -verify-machineinstrs -global-isel -stop-after=legalizer %s -o - | FileCheck %s
 
 @_ZTIi = external global i8*