Remove the FlaggedNodes member from SUnit. Instead of requiring each SUnit

to carry a SmallVector of flagged nodes, just calculate the flagged nodes
dynamically when they are needed.

The local-liveness change is due to a trivial scheduling change where
the scheduler arbitrary decision differently.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59273 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman
2008-11-13 23:24:17 +00:00
parent e4f309e582
commit d23e0f81bc
9 changed files with 59 additions and 61 deletions

View File

@@ -95,7 +95,6 @@ namespace llvm {
private:
SDNode *Node; // Representative node.
public:
SmallVector<SDNode*,4> FlaggedNodes;// All nodes flagged to Node.
SUnit *OrigNode; // If not this, the node from which
// this node was cloned.

View File

@@ -1308,6 +1308,15 @@ public:
SDVTList X = { ValueList, NumValues };
return X;
};
/// getFlaggedNode - If this node has a flag operand, return the node
/// to which the flag operand points. Otherwise return NULL.
SDNode *getFlaggedNode() const {
if (getNumOperands() != 0 &&
getOperand(getNumOperands()-1).getValueType() == MVT::Flag)
return getOperand(getNumOperands()-1).getNode();
return 0;
}
/// getNumValues - Return the number of values defined/returned by this
/// operator.