Small tidy-up. Fix the comment on the combination of CSE and control flow.
Change: 139540050
This commit is contained in:
parent
2eabf986b0
commit
bcdb8eb5ae
@ -919,15 +919,6 @@ class ExecutorState {
|
||||
void FindOrCreateChildFrame(FrameState* frame, int64 iter, const Node* node,
|
||||
FrameState** child);
|
||||
|
||||
// Get the output frame/iter of a node. Create new frame/iteration if
|
||||
// needed. If there are dead roots for the new iteration, we need to
|
||||
// "execute" them so add them to the ready queue. Returns true if
|
||||
// we need to check for the completion of output frame/iter.
|
||||
void FindOrCreateOutputFrameIter(const TaggedNode& tagged_node,
|
||||
const EntryVector& outputs,
|
||||
FrameState** frame, int64* iter,
|
||||
TaggedNodeSeq* ready);
|
||||
|
||||
// Delete a frame. Called when the frame is done.
|
||||
void DeleteFrame(FrameState* frame, TaggedNodeSeq* ready);
|
||||
|
||||
|
@ -183,8 +183,9 @@ bool OptimizerCSE::Equivalent(const Node* a, const Node* b, Scratch* scratch) {
|
||||
bool OptimizerCSE::Optimize(std::function<bool(const Node*)> consider_fn) {
|
||||
// This very simple implementation works if the whole graph is one
|
||||
// giant basic block (because we just traverse nodes in a
|
||||
// topological order). We'll need to do something more
|
||||
// sophisticated when we have control flow/loops/etc.
|
||||
// topological order). This simple implementation works well
|
||||
// with control flow/loops/etc. But we need to be careful about
|
||||
// control flow if we want to add more sophisticated CSE optimizations.
|
||||
|
||||
// TODO(jeff): We need to handle Update nodes specially, but dealing
|
||||
// with more general control flow will also solve this issue, and for
|
||||
|
Loading…
Reference in New Issue
Block a user