aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tensorflow/compiler/xla/service/hlo_computation.cc9
-rw-r--r--tensorflow/compiler/xla/service/hlo_computation.h3
2 files changed, 10 insertions, 2 deletions
diff --git a/tensorflow/compiler/xla/service/hlo_computation.cc b/tensorflow/compiler/xla/service/hlo_computation.cc
index a9c7fdc4e5..1677c77f2e 100644
--- a/tensorflow/compiler/xla/service/hlo_computation.cc
+++ b/tensorflow/compiler/xla/service/hlo_computation.cc
@@ -697,8 +697,9 @@ Status HloComputation::AcceptWithOperandOrder(
/*call_finish_visit=*/true);
}
+template <typename HloInstructionPtr>
Status HloComputation::AcceptOrdered(
- DfsHloVisitor* visitor,
+ DfsHloVisitorBase<HloInstructionPtr>* visitor,
const std::vector<const HloInstruction*>& order) const {
VLOG(3) << "Accepting visitor with order.";
for (HloInstruction* root : CollectUnreachableRoots()) {
@@ -727,6 +728,12 @@ Status HloComputation::AcceptOrdered(
return Status::OK();
}
+// Explicit instantiations.
+template Status HloComputation::AcceptOrdered(
+ DfsHloVisitor*, const std::vector<const HloInstruction*>&) const;
+template Status HloComputation::AcceptOrdered(
+ ConstDfsHloVisitor*, const std::vector<const HloInstruction*>&) const;
+
Status HloComputation::Accept(
const std::function<Status(HloInstruction*)>& visitor_func) {
FunctionVisitor visitor(visitor_func);
diff --git a/tensorflow/compiler/xla/service/hlo_computation.h b/tensorflow/compiler/xla/service/hlo_computation.h
index f72a6e13c1..3208197f89 100644
--- a/tensorflow/compiler/xla/service/hlo_computation.h
+++ b/tensorflow/compiler/xla/service/hlo_computation.h
@@ -289,7 +289,8 @@ class HloComputation {
// Visit every node in the computation in the given order. 'order' must
// be a topological sort of all instructions in the computation.
- Status AcceptOrdered(DfsHloVisitor* visitor,
+ template <typename HloInstructionPtr>
+ Status AcceptOrdered(DfsHloVisitorBase<HloInstructionPtr>* visitor,
const std::vector<const HloInstruction*>& order) const;
// Same as Accept() above, but the visitor is given as a function.