Support array allocations

llvm-svn: 2326
This commit is contained in:
Chris Lattner 2002-04-27 02:27:11 +00:00
parent b6cbad7be6
commit a09451cc7b
1 changed files with 7 additions and 2 deletions

View File

@ -180,6 +180,7 @@ public:
// isEquivalentTo - Return true if the nodes should be merged...
virtual bool isEquivalentTo(DSNode *Node) const = 0;
virtual void mergeInto(DSNode *Node) const {}
DSNode *clone() const {
DSNode *New = cloneImpl();
@ -210,8 +211,9 @@ protected:
//
class AllocDSNode : public DSNode {
AllocationInst *Allocation;
bool isVarSize; // Allocating variable sized objects
public:
AllocDSNode(AllocationInst *V);
AllocDSNode(AllocationInst *V, bool isVarSize = false);
virtual std::string getCaption() const;
@ -219,15 +221,18 @@ public:
bool isMallocNode() const { return !isAllocaNode(); }
AllocationInst *getAllocation() const { return Allocation; }
bool isVariableSize() const { return isVarSize; }
// isEquivalentTo - Return true if the nodes should be merged...
virtual bool isEquivalentTo(DSNode *Node) const;
virtual void mergeInto(DSNode *Node) const;
// Support type inquiry through isa, cast, and dyn_cast...
static bool classof(const AllocDSNode *) { return true; }
static bool classof(const DSNode *N) { return N->NodeType == NewNode; }
protected:
virtual AllocDSNode *cloneImpl() const { return new AllocDSNode(Allocation); }
virtual AllocDSNode *cloneImpl() const { return new AllocDSNode(Allocation,
isVarSize); }
};