x86: Remove the W64ALLOCA pseudo
authorReid Kleckner <reid@kleckner.net>
Thu, 29 Jan 2015 23:09:37 +0000 (23:09 +0000)
committerReid Kleckner <reid@kleckner.net>
Thu, 29 Jan 2015 23:09:37 +0000 (23:09 +0000)
This is just an alias for CALL64pcrel32, and we can just use that opcode
with explicit defs in the MI.

No functionality change.

llvm-svn: 227508

llvm/lib/Target/X86/X86FrameLowering.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrControl.td

index 4cccfa2..37ac465 100644 (file)
@@ -415,7 +415,7 @@ void X86FrameLowering::getStackProbeFunction(const MachineFunction &MF,
   if (STI.is64Bit())
     CallOp = MF.getTarget().getCodeModel() == CodeModel::Large
                  ? X86::CALL64r
-                 : X86::W64ALLOCA;
+                 : X86::CALL64pcrel32;
   else
     CallOp = X86::CALLpcrel32;
 
index 3247299..bb6c919 100644 (file)
@@ -21070,7 +21070,7 @@ X86TargetLowering::EmitLoweredWinAlloca(MachineInstr *MI,
       // ___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(MachineInstr *MI,
     } 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);
index 7baff19..e1c36a8 100644 (file)
@@ -278,18 +278,6 @@ let isCall = 1, Uses = [RSP], SchedRW = [WriteJump] in {
                        "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 {