[llvm] r194880 - During folding for patchpoint/stackmap instructions, defer creation of new MIs

Lang Hames lhames at gmail.com
Fri Nov 15 15:13:21 PST 2013


Author: lhames
Date: Fri Nov 15 17:13:21 2013
New Revision: 194880

URL: http://llvm.org/viewvc/llvm-project?rev=194880&view=rev
Log:
During folding for patchpoint/stackmap instructions, defer creation of new MIs
until we know that folding will be successful.

No functional change.


Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=194880&r1=194879&r2=194880&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Fri Nov 15 17:13:21 2013
@@ -4207,10 +4207,6 @@ static MachineInstr* foldPatchpoint(Mach
                 !MI->getOperand(0).isImplicit();
   unsigned StartIdx = hasDef ? 1 : 0;
 
-  MachineInstr *NewMI =
-    MF.CreateMachineInstr(TII.get(MI->getOpcode()), MI->getDebugLoc(), true);
-  MachineInstrBuilder MIB(MF, NewMI);
-
   switch (MI->getOpcode()) {
   case TargetOpcode::STACKMAP:
     StartIdx += 2; // Skip ID, nShadowBytes.
@@ -4231,6 +4227,11 @@ static MachineInstr* foldPatchpoint(Mach
     if (*I < StartIdx)
       return 0;
   }
+
+  MachineInstr *NewMI =
+    MF.CreateMachineInstr(TII.get(MI->getOpcode()), MI->getDebugLoc(), true);
+  MachineInstrBuilder MIB(MF, NewMI);
+
   // No need to fold return, the meta data, and function arguments
   for (unsigned i = 0; i < StartIdx; ++i)
     MIB.addOperand(MI->getOperand(i));





More information about the llvm-commits mailing list