[llvm] r180912 - Avoid duplicating logic on frame register selecting when lowering frameaddr

Michael Liao michael.liao at intel.com
Thu May 2 01:21:56 PDT 2013


Author: hliao
Date: Thu May  2 03:21:56 2013
New Revision: 180912

URL: http://llvm.org/viewvc/llvm-project?rev=180912&view=rev
Log:
Avoid duplicating logic on frame register selecting when lowering frameaddr

No functionality change


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

Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=180912&r1=180911&r2=180912&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Thu May  2 03:21:56 2013
@@ -11030,7 +11030,9 @@ SDValue X86TargetLowering::LowerFRAMEADD
   EVT VT = Op.getValueType();
   DebugLoc dl = Op.getDebugLoc();  // FIXME probably not meaningful
   unsigned Depth = cast<ConstantSDNode>(Op.getOperand(0))->getZExtValue();
-  unsigned FrameReg = Subtarget->is64Bit() ? X86::RBP : X86::EBP;
+  unsigned FrameReg = RegInfo->getFrameRegister(DAG.getMachineFunction());
+  assert(((FrameReg == X86::RBP && VT == MVT::i64) ||
+          (FrameReg == X86::EBP && VT == MVT::i32)) && "Invalid Frame Register!");
   SDValue FrameAddr = DAG.getCopyFromReg(DAG.getEntryNode(), dl, FrameReg, VT);
   while (Depth--)
     FrameAddr = DAG.getLoad(VT, dl, DAG.getEntryNode(), FrameAddr,





More information about the llvm-commits mailing list