[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Evan Cheng
evan.cheng at apple.com
Fri Aug 25 22:35:00 PDT 2006
Changes in directory llvm/lib/Target/X86:
X86ISelDAGToDAG.cpp updated: 1.94 -> 1.95
---
Log message:
Select() no longer require Result operand by reference.
---
Diffs of the changes: (+17 -16)
X86ISelDAGToDAG.cpp | 33 +++++++++++++++++----------------
1 files changed, 17 insertions(+), 16 deletions(-)
Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.94 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.95
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.94 Fri Aug 25 20:05:16 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Sat Aug 26 00:34:46 2006
@@ -123,7 +123,7 @@
#include "X86GenDAGISel.inc"
private:
- SDNode *Select(SDOperand &Result, SDOperand N);
+ SDNode *Select(SDOperand N);
bool MatchAddress(SDOperand N, X86ISelAddressMode &AM, bool isRoot = true);
bool SelectAddr(SDOperand N, SDOperand &Base, SDOperand &Scale,
@@ -176,7 +176,7 @@
/// getGlobalBaseReg - insert code into the entry mbb to materialize the PIC
/// base register. Return the virtual register that holds this value.
- SDOperand getGlobalBaseReg();
+ SDNode *getGlobalBaseReg();
#ifndef NDEBUG
unsigned Indent;
@@ -582,7 +582,7 @@
/// getGlobalBaseReg - Output the instructions required to put the
/// base address to use for accessing globals into a register.
///
-SDOperand X86DAGToDAGISel::getGlobalBaseReg() {
+SDNode *X86DAGToDAGISel::getGlobalBaseReg() {
if (!GlobalBaseReg) {
// Insert the set of GlobalBaseReg into the first MBB of the function
MachineBasicBlock &FirstMBB = BB->getParent()->front();
@@ -594,7 +594,7 @@
BuildMI(FirstMBB, MBBI, X86::MovePCtoStack, 0);
BuildMI(FirstMBB, MBBI, X86::POP32r, 1, GlobalBaseReg);
}
- return CurDAG->getRegister(GlobalBaseReg, MVT::i32);
+ return CurDAG->getRegister(GlobalBaseReg, MVT::i32).Val;
}
static SDNode *FindCallStartFromCall(SDNode *Node) {
@@ -604,7 +604,7 @@
return FindCallStartFromCall(Node->getOperand(0).Val);
}
-SDNode *X86DAGToDAGISel::Select(SDOperand &Result, SDOperand N) {
+SDNode *X86DAGToDAGISel::Select(SDOperand N) {
SDNode *Node = N.Val;
MVT::ValueType NVT = Node->getValueType(0);
unsigned Opc, MOpc;
@@ -619,7 +619,6 @@
#endif
if (Opcode >= ISD::BUILTIN_OP_END && Opcode < X86ISD::FIRST_NUMBER) {
- Result = N;
#ifndef NDEBUG
DEBUG(std::cerr << std::string(Indent-2, ' '));
DEBUG(std::cerr << "== ");
@@ -633,8 +632,7 @@
switch (Opcode) {
default: break;
case X86ISD::GlobalBaseReg:
- Result = getGlobalBaseReg();
- return Result.Val;
+ return getGlobalBaseReg();
case ISD::ADD: {
// Turn ADD X, c to MOV32ri X+c. This cannot be done with tblgen'd
@@ -736,7 +734,7 @@
SDOperand(CurDAG->getTargetNode(Opc, MVT::Flag, N1, InFlag), 0);
}
- Result = CurDAG->getCopyFromReg(Chain, HiReg, NVT, InFlag);
+ SDOperand Result = CurDAG->getCopyFromReg(Chain, HiReg, NVT, InFlag);
ReplaceUses(N.getValue(0), Result);
if (foldedLoad)
ReplaceUses(N1.getValue(1), Result.getValue(1));
@@ -840,8 +838,8 @@
SDOperand(CurDAG->getTargetNode(Opc, MVT::Flag, N1, InFlag), 0);
}
- Result = CurDAG->getCopyFromReg(Chain, isDiv ? LoReg : HiReg,
- NVT, InFlag);
+ SDOperand Result = CurDAG->getCopyFromReg(Chain, isDiv ? LoReg : HiReg,
+ NVT, InFlag);
ReplaceUses(N.getValue(0), Result);
if (foldedLoad)
ReplaceUses(N1.getValue(1), Result.getValue(1));
@@ -878,28 +876,31 @@
AddToISelQueue(Node->getOperand(0));
SDOperand Tmp =
SDOperand(CurDAG->getTargetNode(Opc, VT, Node->getOperand(0)), 0);
- Result = SDOperand(CurDAG->getTargetNode(Opc2, NVT, Tmp), 0);
+ SDNode *ResNode = CurDAG->getTargetNode(Opc2, NVT, Tmp);
#ifndef NDEBUG
DEBUG(std::cerr << std::string(Indent-2, ' '));
DEBUG(std::cerr << "=> ");
- DEBUG(Result.Val->dump(CurDAG));
+ DEBUG(ResNode->dump(CurDAG));
DEBUG(std::cerr << "\n");
Indent -= 2;
#endif
- return Result.Val;
+ return ResNode;
}
break;
}
}
- SDNode *ResNode = SelectCode(Result, N);
+ SDNode *ResNode = SelectCode(N);
#ifndef NDEBUG
DEBUG(std::cerr << std::string(Indent-2, ' '));
DEBUG(std::cerr << "=> ");
- DEBUG(Result.Val->dump(CurDAG));
+ if (ResNode == NULL || ResNode == N.Val)
+ DEBUG(N.Val->dump(CurDAG));
+ else
+ DEBUG(ResNode->dump(CurDAG));
DEBUG(std::cerr << "\n");
Indent -= 2;
#endif
More information about the llvm-commits
mailing list