Save the MachineFunction in startFunction so that we can use it for
authorEric Christopher <echristo@gmail.com>
Fri, 20 Feb 2015 08:01:55 +0000 (08:01 +0000)
committerEric Christopher <echristo@gmail.com>
Fri, 20 Feb 2015 08:01:55 +0000 (08:01 +0000)
lookups of the subtarget later.

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

lib/Target/X86/X86AsmPrinter.h
lib/Target/X86/X86MCInstLower.cpp

index 3a3cbadc365d3604f8d161cdd4789175a3415601..d101b8ca0e4fbb1a30e76d64ad697c6ea56e59ff 100644 (file)
@@ -57,6 +57,7 @@ class LLVM_LIBRARY_VISIBILITY X86AsmPrinter : public AsmPrinter {
     void emitShadowPadding(MCStreamer &OutStreamer, const MCSubtargetInfo &STI);
   private:
     TargetMachine &TM;
+    const MachineFunction *MF;
     std::unique_ptr<MCCodeEmitter> CodeEmitter;
     bool InShadow;
 
index e7f5b784bcc4ee8499a8c06392aa4332e5d24ef6..6af59d43531b8a646074c6d2aba98c07ff778d9f 100644 (file)
@@ -74,10 +74,11 @@ namespace llvm {
   X86AsmPrinter::StackMapShadowTracker::~StackMapShadowTracker() {}
 
   void
-  X86AsmPrinter::StackMapShadowTracker::startFunction(MachineFunction &MF) {
+  X86AsmPrinter::StackMapShadowTracker::startFunction(MachineFunction &F) {
+    MF = &F;
     CodeEmitter.reset(TM.getTarget().createMCCodeEmitter(
-        *MF.getSubtarget().getInstrInfo(), *MF.getSubtarget().getRegisterInfo(),
-        MF.getSubtarget(), MF.getContext()));
+        *MF->getSubtarget().getInstrInfo(), *MF->getSubtarget().getRegisterInfo(),
+        MF->getSubtarget(), MF->getContext()));
   }
 
   void X86AsmPrinter::StackMapShadowTracker::count(MCInst &Inst,
@@ -99,7 +100,7 @@ namespace llvm {
     if (InShadow && CurrentShadowSize < RequiredShadowSize) {
       InShadow = false;
       EmitNops(OutStreamer, RequiredShadowSize - CurrentShadowSize,
-               TM.getSubtarget<X86Subtarget>().is64Bit(), STI);
+               MF->getSubtarget<X86Subtarget>().is64Bit(), STI);
     }
   }