|
|
|
@ -35,6 +35,7 @@ class OpHandleBase;
|
|
|
|
|
// A variable can only be generated by a single operator. i.e.
|
|
|
|
|
// This is a single assignment graph.
|
|
|
|
|
struct VarHandleBase {
|
|
|
|
|
// Owned by `node`. No need to be deleted explicitly.
|
|
|
|
|
explicit VarHandleBase(ir::Node* node) : node_(node) {
|
|
|
|
|
node_->WrappedBy(this);
|
|
|
|
|
}
|
|
|
|
@ -96,6 +97,8 @@ struct VarHandleBase {
|
|
|
|
|
struct VarHandle : public VarHandleBase {
|
|
|
|
|
explicit VarHandle(ir::Node* node) : VarHandleBase(node) {}
|
|
|
|
|
|
|
|
|
|
virtual ~VarHandle();
|
|
|
|
|
|
|
|
|
|
std::string DebugString() const override;
|
|
|
|
|
|
|
|
|
|
VarHandle(ir::Node* node, size_t version, size_t scope_index,
|
|
|
|
@ -123,6 +126,8 @@ struct VarHandle : public VarHandleBase {
|
|
|
|
|
struct DummyVarHandle : public VarHandleBase {
|
|
|
|
|
explicit DummyVarHandle(ir::Node* node) : VarHandleBase(node) {}
|
|
|
|
|
|
|
|
|
|
virtual ~DummyVarHandle();
|
|
|
|
|
|
|
|
|
|
std::string DebugString() const override;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|