[llvm] r227508 - x86: Remove the W64ALLOCA pseudo

Reid Kleckner reid at kleckner.net
Thu Jan 29 15:09:37 PST 2015


Author: rnk
Date: Thu Jan 29 17:09:37 2015
New Revision: 227508

URL: http://llvm.org/viewvc/llvm-project?rev=227508&view=rev
Log:
x86: Remove the W64ALLOCA pseudo

This is just an alias for CALL64pcrel32, and we can just use that opcode
with explicit defs in the MI.

No functionality change.

Modified:
    llvm/trunk/lib/Target/X86/X86FrameLowering.cpp
    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
    llvm/trunk/lib/Target/X86/X86InstrControl.td

Modified: llvm/trunk/lib/Target/X86/X86FrameLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp?rev=227508&r1=227507&r2=227508&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86FrameLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86FrameLowering.cpp Thu Jan 29 17:09:37 2015
@@ -415,7 +415,7 @@ void X86FrameLowering::getStackProbeFunc
   if (STI.is64Bit())
     CallOp = MF.getTarget().getCodeModel() == CodeModel::Large
                  ? X86::CALL64r
-                 : X86::W64ALLOCA;
+                 : X86::CALL64pcrel32;
   else
     CallOp = X86::CALLpcrel32;
 

Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=227508&r1=227507&r2=227508&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Thu Jan 29 17:09:37 2015
@@ -21070,7 +21070,7 @@ X86TargetLowering::EmitLoweredWinAlloca(
       // ___chkstk(Mingw64):
       // Clobbers R10, R11, RAX and EFLAGS.
       // Updates RSP.
-      BuildMI(*BB, MI, DL, TII->get(X86::W64ALLOCA))
+      BuildMI(*BB, MI, DL, TII->get(X86::CALL64pcrel32))
         .addExternalSymbol("___chkstk")
         .addReg(X86::RAX, RegState::Implicit)
         .addReg(X86::RSP, RegState::Implicit)
@@ -21080,7 +21080,7 @@ X86TargetLowering::EmitLoweredWinAlloca(
     } else {
       // __chkstk(MSVCRT): does not update stack pointer.
       // Clobbers R10, R11 and EFLAGS.
-      BuildMI(*BB, MI, DL, TII->get(X86::W64ALLOCA))
+      BuildMI(*BB, MI, DL, TII->get(X86::CALL64pcrel32))
         .addExternalSymbol("__chkstk")
         .addReg(X86::RAX, RegState::Implicit)
         .addReg(X86::EFLAGS, RegState::Define | RegState::Implicit);

Modified: llvm/trunk/lib/Target/X86/X86InstrControl.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrControl.td?rev=227508&r1=227507&r2=227508&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrControl.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrControl.td Thu Jan 29 17:09:37 2015
@@ -278,18 +278,6 @@ let isCall = 1, Uses = [RSP], SchedRW =
                        "lcall{q}\t{*}$dst", [], IIC_CALL_FAR_MEM>;
 }
 
-let isCall = 1, isCodeGenOnly = 1 in
-  // __chkstk(MSVC):     clobber R10, R11 and EFLAGS
-  // ___chkstk_ms(Mingw64): clobber R10, R11 and EFLAGS
-  // ___chkstk(Mingw64): clobber R10, R11, RAX and EFLAGS, and update RSP.
-  let Defs = [RAX, R10, R11, RSP, EFLAGS],
-      Uses = [RSP] in {
-    def W64ALLOCA : Ii32PCRel<0xE8, RawFrm,
-                      (outs), (ins i64i32imm_pcrel:$dst),
-                      "call{q}\t$dst", [], IIC_CALL_RI>,
-                    Requires<[IsWin64]>, Sched<[WriteJump]>;
-  }
-
 let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1,
     isCodeGenOnly = 1, Uses = [RSP], usesCustomInserter = 1,
     SchedRW = [WriteJump] in {





More information about the llvm-commits mailing list