Add a new node type, add comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19525 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h
index 5fc6f31..77fd05a 100644
--- a/include/llvm/CodeGen/SelectionDAGISel.h
+++ b/include/llvm/CodeGen/SelectionDAGISel.h
@@ -21,6 +21,7 @@
namespace llvm {
class SelectionDAG;
class SelectionDAGLowering;
+ class SDOperand;
class SSARegMap;
class MachineBasicBlock;
class MachineFunction;
@@ -49,8 +50,8 @@
virtual void InstructionSelectBasicBlock(SelectionDAG &SD) = 0;
- void CopyValueToVirtualRegister(SelectionDAGLowering &SDL,
- Value *V, unsigned Reg);
+ SDOperand CopyValueToVirtualRegister(SelectionDAGLowering &SDL,
+ Value *V, unsigned Reg);
void SelectBasicBlock(BasicBlock *BB, MachineFunction &MF,
FunctionLoweringInfo &FuncInfo);
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h
index 2ca6e15..2957a51 100644
--- a/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -44,8 +44,16 @@
/// SelectionDAG.
///
enum NodeType {
- // Leaf nodes
- EntryToken, Constant, ConstantFP, GlobalAddress, FrameIndex, ConstantPool,
+ // EntryToken - This is the marker used to indicate the start of the region.
+ EntryToken,
+
+ // Token factor - This node is takes multiple tokens as input and produces a
+ // single token result. This is used to represent the fact that the operand
+ // operators are independent of each other.
+ TokenFactor,
+
+ // Various leaf nodes.
+ Constant, ConstantFP, GlobalAddress, FrameIndex, ConstantPool,
BasicBlock, ExternalSymbol,
// CopyToReg - This node has chain and child nodes, and an associated