forked from OSchip/llvm-project
parent
ffa8d3def7
commit
8b9c9822a1
|
@ -1708,13 +1708,14 @@ public:
|
|||
/// This SDNode is used for LIFETIME_START/LIFETIME_END values, which indicate
|
||||
/// the offet and size that are started/ended in the underlying FrameIndex.
|
||||
class LifetimeSDNode : public SDNode {
|
||||
friend class SelectionDAG;
|
||||
int64_t Size;
|
||||
int64_t Offset; // -1 if offset is unknown.
|
||||
public:
|
||||
|
||||
LifetimeSDNode(unsigned Opcode, unsigned Order, const DebugLoc &dl,
|
||||
SDVTList VTs, int64_t Size, int64_t Offset)
|
||||
: SDNode(Opcode, Order, dl, VTs), Size(Size), Offset(Offset) {}
|
||||
|
||||
public:
|
||||
int64_t getFrameIndex() const {
|
||||
return cast<FrameIndexSDNode>(getOperand(1))->getIndex();
|
||||
}
|
||||
|
|
|
@ -517,6 +517,13 @@ static void AddNodeIDCustom(FoldingSetNodeID &ID, const SDNode *N) {
|
|||
case ISD::TargetFrameIndex:
|
||||
ID.AddInteger(cast<FrameIndexSDNode>(N)->getIndex());
|
||||
break;
|
||||
case ISD::LIFETIME_START:
|
||||
case ISD::LIFETIME_END:
|
||||
if (cast<LifetimeSDNode>(N)->hasOffset()) {
|
||||
ID.AddInteger(cast<LifetimeSDNode>(N)->getSize());
|
||||
ID.AddInteger(cast<LifetimeSDNode>(N)->getOffset());
|
||||
}
|
||||
break;
|
||||
case ISD::JumpTable:
|
||||
case ISD::TargetJumpTable:
|
||||
ID.AddInteger(cast<JumpTableSDNode>(N)->getIndex());
|
||||
|
|
Loading…
Reference in New Issue