Index: src/compiler/node-marker.h |
diff --git a/src/compiler/node-marker.h b/src/compiler/node-marker.h |
index 5ef2063f18715cc5c59ddb9816f1de37c5ae2f1e..84666d5f076747d7e1be76ced39f8d7c10dd4c79 100644 |
--- a/src/compiler/node-marker.h |
+++ b/src/compiler/node-marker.h |
@@ -42,9 +42,22 @@ class NodeMarkerBase { |
DISALLOW_COPY_AND_ASSIGN(NodeMarkerBase); |
}; |
- |
-// A NodeMarker uses monotonically increasing marks to assign local "states" |
-// to nodes. Only one NodeMarker per graph is valid at a given time. |
+// A NodeMarker assigns a local "state" to every node of a graph in constant |
+// memory. Only one NodeMarker per graph is valid at a given time, that is, |
+// after you create a NodeMarker you should no longer use NodeMarkers that |
+// were created earlier. Internally, the local state is stored in the Node |
+// structure. |
+// |
+// When you initialize a NodeMarker, all the local states are conceptually |
+// set to State(0) in constant time. |
+// |
+// In its current implementation, in debug mode NodeMarker will try to |
+// (efficiently) detect invalid use of an older NodeMarker. Namely, if you get |
+// or set a node with a NodeMarker, and then get or set that node |
+// with an older NodeMarker you will get a crash. |
+// |
+// GraphReducer uses a NodeMarker, so individual Reducers cannot use a |
+// NodeMarker. |
template <typename State> |
class NodeMarker : public NodeMarkerBase { |
public: |