diff options
author | Tim Shen <timshen@google.com> | 2018-08-30 16:03:10 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-08-30 16:07:27 -0700 |
commit | 6f879f891abe2e267c5cf512d034d7c3641cfdb0 (patch) | |
tree | 33dfda2aa13bdec06d3aa330dd5816441d449fa7 /tensorflow/compiler/jit | |
parent | 5d5591fbd4624ff7e50f305464667315f2d41ebb (diff) |
[XLA] Rename all (Mutable)ArraySlice to absl::Span.
PiperOrigin-RevId: 210998142
Diffstat (limited to 'tensorflow/compiler/jit')
4 files changed, 103 insertions, 96 deletions
diff --git a/tensorflow/compiler/jit/deadness_analysis.cc b/tensorflow/compiler/jit/deadness_analysis.cc index fe28502f69..82aa03810b 100644 --- a/tensorflow/compiler/jit/deadness_analysis.cc +++ b/tensorflow/compiler/jit/deadness_analysis.cc @@ -108,7 +108,7 @@ class Predicate { virtual string ToString() const = 0; int64 hash() const { return hash_; } - virtual gtl::ArraySlice<Predicate*> GetOperands() const = 0; + virtual absl::Span<Predicate* const> GetOperands() const = 0; virtual Kind kind() const = 0; virtual ~Predicate() {} @@ -129,7 +129,7 @@ class Predicate { }; int64 HashPredicateSequence(Predicate::Kind kind, - gtl::ArraySlice<Predicate*> preds) { + absl::Span<Predicate* const> preds) { int64 hash = ::tensorflow::hash<Predicate::Kind>()(kind); for (Predicate* pred : preds) { hash = Hash64Combine(hash, pred->hash()); @@ -159,8 +159,10 @@ class AndPredicate : public Predicate { Kind kind() const override { return Kind::kAnd; } - gtl::ArraySlice<Predicate*> GetOperands() const override { return operands_; } - gtl::ArraySlice<Predicate*> operands() const { return operands_; } + absl::Span<Predicate* const> GetOperands() const override { + return operands_; + } + absl::Span<Predicate* const> operands() const { return operands_; } private: std::vector<Predicate*> operands_; @@ -187,8 +189,10 @@ class OrPredicate : public Predicate { } Kind kind() const override { return Kind::kOr; } - gtl::ArraySlice<Predicate*> GetOperands() const override { return operands_; } - gtl::ArraySlice<Predicate*> operands() const { return operands_; } + absl::Span<Predicate* const> GetOperands() const override { + return operands_; + } + absl::Span<Predicate* const> operands() const { return operands_; } private: std::vector<Predicate*> operands_; @@ -207,7 +211,9 @@ class NotPredicate : public Predicate { Kind kind() const override { return Kind::kNot; } Predicate* operand() const { return operands_[0]; } - gtl::ArraySlice<Predicate*> GetOperands() const override { return operands_; } + absl::Span<Predicate* const> GetOperands() const override { + return operands_; + } private: std::array<Predicate*, 1> operands_; @@ -240,7 +246,9 @@ class AndRecurrencePredicate : public Predicate { Kind kind() const override { return Kind::kAndRecurrence; } - gtl::ArraySlice<Predicate*> GetOperands() const override { return operands_; } + absl::Span<Predicate* const> GetOperands() const override { + return operands_; + } private: std::array<Predicate*, 2> operands_; @@ -264,7 +272,7 @@ class SymbolPredicate : public Predicate { } Kind kind() const override { return Kind::kSymbol; } - gtl::ArraySlice<Predicate*> GetOperands() const override { return {}; } + absl::Span<Predicate* const> GetOperands() const override { return {}; } // If `must_be_true()` is true this SymbolPredicate represents the proposition // "tensor_id() is live and evaluates to true". @@ -313,11 +321,11 @@ template <typename FunctionTy> // them. class PredicateFactory { public: - Predicate* MakeAndPredicate(gtl::ArraySlice<Predicate*> operands) { + Predicate* MakeAndPredicate(absl::Span<Predicate* const> operands) { return MakeAndOrImpl(operands, /*is_and=*/true); } - Predicate* MakeOrPredicate(gtl::ArraySlice<Predicate*> operands) { + Predicate* MakeOrPredicate(absl::Span<Predicate* const> operands) { return MakeAndOrImpl(operands, /*is_and=*/false); } @@ -374,7 +382,7 @@ class PredicateFactory { new PredicateT(std::forward<Args>(args)...)); } - Predicate* MakeAndOrImpl(gtl::ArraySlice<Predicate*> operands, bool is_and); + Predicate* MakeAndOrImpl(absl::Span<Predicate* const> operands, bool is_and); // Predicate instances are interned, meaning that there is only a single // instance of a Predicate object with a given content. This makes checking @@ -387,7 +395,7 @@ class PredicateFactory { // for the owning pointers to predicate instances. using SignatureForAndOr = - std::pair<Predicate::Kind, gtl::ArraySlice<Predicate*>>; + std::pair<Predicate::Kind, absl::Span<Predicate* const>>; using SignatureForNot = Predicate*; using SignatureForAndRec = std::pair<Predicate*, Predicate*>; using SignatureForSymbol = std::pair<SafeTensorId, bool>; @@ -422,8 +430,8 @@ class PredicateFactory { }; // Common code to create AndPredicate or OrPredicate instances. -Predicate* PredicateFactory::MakeAndOrImpl(gtl::ArraySlice<Predicate*> operands, - bool is_and) { +Predicate* PredicateFactory::MakeAndOrImpl( + absl::Span<Predicate* const> operands, bool is_and) { Predicate::Kind pred_kind = is_and ? Predicate::Kind::kAnd : Predicate::Kind::kOr; gtl::FlatSet<Predicate*> simplified_ops_set; @@ -474,7 +482,7 @@ Predicate* PredicateFactory::MakeAndOrImpl(gtl::ArraySlice<Predicate*> operands, // NB! Because we'll use a non-owning reference to simplified_ops in the // key for interned_and_or_instances_ we need to be careful to std::move() // it all the way through. - gtl::ArraySlice<Predicate*> operands_slice = simplified_ops; + absl::Span<Predicate* const> operands_slice = simplified_ops; std::unique_ptr<Predicate> new_pred = is_and ? Make<AndPredicate>(std::move(simplified_ops)) : Make<OrPredicate>(std::move(simplified_ops)); @@ -496,7 +504,7 @@ class DeadnessAnalysisImpl : public DeadnessAnalysis { : graph_(*graph), vlog_(VLOG_IS_ON(2)) {} Status Populate(); - Status PopulateWithReversePostOrder(gtl::ArraySlice<Node*> rpo); + Status PopulateWithReversePostOrder(absl::Span<Node* const> rpo); bool HasInputsWithMismatchingDeadness(const Node& node) override; void Print() const override; gtl::FlatMap<TensorId, string, TensorId::Hasher> PredicateMapAsString() const; @@ -527,7 +535,7 @@ class DeadnessAnalysisImpl : public DeadnessAnalysis { } } - void SetPredicate(Node* n, gtl::ArraySlice<int> output_idxs, Predicate* pred, + void SetPredicate(Node* n, absl::Span<const int> output_idxs, Predicate* pred, std::vector<bool>* should_revisit) { for (int output_idx : output_idxs) { SetPredicate(n, output_idx, pred, should_revisit); @@ -625,7 +633,7 @@ Predicate* DeduceStepPredicate(PredicateFactory* predicate_factory, } std::vector<Predicate*> and_ops; - gtl::ArraySlice<Predicate*> recurrent_pred_ops = + absl::Span<Predicate* const> recurrent_pred_ops = backedge_predicate->GetOperands(); bool found_sym = false; @@ -784,7 +792,7 @@ Status DeadnessAnalysisImpl::Populate() { } Status DeadnessAnalysisImpl::PopulateWithReversePostOrder( - gtl::ArraySlice<Node*> rpo) { + absl::Span<Node* const> rpo) { // This an abstract interpretation over the deadness propagation semantics of // the graph executor. // @@ -924,7 +932,7 @@ Status ComputePredicates(const Graph& graph, } Status ComputePredicates(const Graph& graph, - gtl::ArraySlice<Node*> reverse_post_order, + absl::Span<Node* const> reverse_post_order, PredicateMapTy* out_predicate_map) { DeadnessAnalysisImpl impl(&graph); TF_RETURN_IF_ERROR(impl.PopulateWithReversePostOrder(reverse_post_order)); diff --git a/tensorflow/compiler/jit/deadness_analysis_internal.h b/tensorflow/compiler/jit/deadness_analysis_internal.h index 401d6e406a..3df2679c62 100644 --- a/tensorflow/compiler/jit/deadness_analysis_internal.h +++ b/tensorflow/compiler/jit/deadness_analysis_internal.h @@ -32,7 +32,7 @@ Status ComputePredicates(const Graph& graph, PredicateMapTy* out_predicate_map); // specified in `reverse_post_order` which must be a valid RPO for the graph // minus NextIteration->Merge edges. Status ComputePredicates(const Graph& graph, - gtl::ArraySlice<Node*> reverse_post_order, + absl::Span<Node* const> reverse_post_order, PredicateMapTy* out_predicate_map); } // namespace deadness_analysis_internal } // namespace tensorflow diff --git a/tensorflow/compiler/jit/encapsulate_subgraphs_pass_test.cc b/tensorflow/compiler/jit/encapsulate_subgraphs_pass_test.cc index b3600fc48b..7bc0ef0303 100644 --- a/tensorflow/compiler/jit/encapsulate_subgraphs_pass_test.cc +++ b/tensorflow/compiler/jit/encapsulate_subgraphs_pass_test.cc @@ -379,7 +379,7 @@ Node* InputShaped(const GraphDefBuilder::Options& opts) { return ops::SourceOp("InputTestShaped", opts); } -Node* KnownShapeBase(DataType dtype, const gtl::ArraySlice<int>& shape, +Node* KnownShapeBase(DataType dtype, absl::Span<const int> shape, const GraphDefBuilder::Options& opts) { if (opts.HaveError()) return nullptr; NodeBuilder node_builder(opts.GetNameForOp("Const"), "Const", @@ -394,7 +394,7 @@ Node* KnownShapeBase(DataType dtype, const gtl::ArraySlice<int>& shape, .FinalizeBuilder(&node_builder); } -Node* KnownShape(const gtl::ArraySlice<int>& shape, +Node* KnownShape(absl::Span<const int> shape, const GraphDefBuilder::Options& opts) { return KnownShapeBase(DT_FLOAT, shape, opts); } @@ -417,8 +417,7 @@ Node* KeyPlaceholder(const string& call_node, } Node* RecvAtHost(ops::NodeOut key_input, const string& cluster, - const string& oc_cluster, - const gtl::ArraySlice<DataType>& dtypes, + const string& oc_cluster, absl::Span<const DataType> dtypes, const GraphDefBuilder::Options& opts) { if (opts.HaveError()) return nullptr; string key = @@ -892,13 +891,13 @@ TEST(EncapsulateSubgraphsTest, OneFunctionOneOutside) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"C:o:0", "c:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT, DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT, DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O1"}, - {"shapes", gtl::ArraySlice<DataType>({})}, + {"shapes", absl::Span<const DataType>({})}, {"_outside_compilation_subgraph", "O1"}}, {"c"}}, }, @@ -1038,26 +1037,26 @@ TEST(EncapsulateSubgraphsTest, OneFunctionTwoOutside) { {{"outside_compilation_O2_host_compute"}, "XlaHostCompute", {"F:o:0", "D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT, DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT, DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, {"ancestors", - gtl::ArraySlice<string>({"outside_compilation_O1_host_compute"})}, + absl::Span<const string>({"outside_compilation_O1_host_compute"})}, {"key", "host_compute_channel_F1_O2"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O2"}, - {"shapes", gtl::ArraySlice<DataType>({})}, + {"shapes", absl::Span<const DataType>({})}, {"_outside_compilation_subgraph", "O2"}}, {"F", "outside_compilation_O1_host_compute"}}, {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"C:o:0", "D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT, DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT, DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O1"}, - {"shapes", gtl::ArraySlice<DataType>({})}, + {"shapes", absl::Span<const DataType>({})}, {"_outside_compilation_subgraph", "O1"}}, {"D"}}, }, @@ -1190,13 +1189,13 @@ TEST(EncapsulateSubgraphsTest, TwoFunctionsTwoOutside) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"C:o:0", "D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT, DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT, DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O1"}, - {"shapes", gtl::ArraySlice<DataType>({})}, + {"shapes", absl::Span<const DataType>({})}, {"_outside_compilation_subgraph", "O1"}}, {"D"}}, }, @@ -1213,13 +1212,13 @@ TEST(EncapsulateSubgraphsTest, TwoFunctionsTwoOutside) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"G:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F2_O1"}, {"shape_inference_graph", ""}, {"shapes", - gtl::ArraySlice<TensorShapeProto>({shape_proto_expected})}, + absl::Span<const TensorShapeProto>({shape_proto_expected})}, {"_outside_compilation_subgraph", "O1"}}}, }, {{"g_0_retval", "G:o:0"}, {"i_0_retval", "I:o:0"}}); @@ -1364,13 +1363,13 @@ TEST(EncapsulateSubgraphsTest, TwoFunctionsTwoOutsideDependencyFromOutside) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"C:o:0", "D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT, DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT, DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O1"}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O1"}}, {"D"}}, }, @@ -1386,13 +1385,13 @@ TEST(EncapsulateSubgraphsTest, TwoFunctionsTwoOutsideDependencyFromOutside) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"G:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F2_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F2_O1"}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O1"}}}, }, {{"i_0_retval", "I:o:0"}}); @@ -1495,13 +1494,13 @@ TEST(EncapsulateSubgraphsTest, OutsideCompilationNoInputs) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {}, - {{"Tinputs", gtl::ArraySlice<DataType>({})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", ""}, {"shapes", - gtl::ArraySlice<TensorShapeProto>({shape_proto_expected})}, + absl::Span<const TensorShapeProto>({shape_proto_expected})}, {"_outside_compilation_subgraph", "O1"}}}, }, {{"f_0_retval", "F:o:0"}}); @@ -1579,13 +1578,13 @@ TEST(EncapsulateSubgraphsTest, OutsideCompilationControlInput) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {}, - {{"Tinputs", gtl::ArraySlice<DataType>({})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", ""}, {"shapes", - gtl::ArraySlice<TensorShapeProto>({shape_proto_expected})}, + absl::Span<const TensorShapeProto>({shape_proto_expected})}, {"_outside_compilation_subgraph", "O1"}}, {"D"}}, }, @@ -1661,12 +1660,12 @@ TEST(EncapsulateSubgraphsTest, OutsideCompilationNoOutputs) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", ""}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O1"}}}, }, {{"f_0_retval", "F:o:0"}}); @@ -1742,12 +1741,12 @@ TEST(EncapsulateSubgraphsTest, OutsideCompilationControlOutput) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", ""}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O1"}}}, }, {{"f_0_retval", "F:o:0"}}); @@ -1846,13 +1845,13 @@ TEST(EncapsulateSubgraphsTest, {{"outside_compilation_O2_host_compute"}, "XlaHostCompute", {"F:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O2"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O2"}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O2"}}}, }, {{"h_0_retval", "H:o:0"}}); @@ -1955,13 +1954,13 @@ TEST(EncapsulateSubgraphsTest, {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O1"}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O1"}}}, }, {{"h_0_retval", "H:o:0"}}); @@ -2066,37 +2065,37 @@ TEST(EncapsulateSubgraphsTest, OutsideCompilationClusterDependency) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O1"}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O1"}}}, {{"outside_compilation_O2_host_compute"}, "XlaHostCompute", {"D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({})}, {"ancestors", - gtl::ArraySlice<string>({"outside_compilation_O1_host_compute"})}, + absl::Span<const string>({"outside_compilation_O1_host_compute"})}, {"key", "host_compute_channel_F1_O2"}, {"shape_inference_graph", ""}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O2"}}, {"outside_compilation_O1_host_compute"}}, {{"outside_compilation_O3_host_compute"}, "XlaHostCompute", {"D:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({})}, {"ancestors", - gtl::ArraySlice<string>({"outside_compilation_O1_host_compute", - "outside_compilation_O2_host_compute"})}, + absl::Span<const string>({"outside_compilation_O1_host_compute", + "outside_compilation_O2_host_compute"})}, {"key", "host_compute_channel_F1_O3"}, {"shape_inference_graph", ""}, - {"shapes", gtl::ArraySlice<TensorShapeProto>({})}, + {"shapes", absl::Span<const TensorShapeProto>({})}, {"_outside_compilation_subgraph", "O3"}}, {"outside_compilation_O1_host_compute", "outside_compilation_O2_host_compute"}}}, @@ -2272,13 +2271,13 @@ TEST(EncapsulateSubgraphsTest, OutsideCompilationShapeInference) { {{"outside_compilation_O1_host_compute"}, "XlaHostCompute", {"c:o:0"}, - {{"Tinputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"Toutputs", gtl::ArraySlice<DataType>({DT_FLOAT})}, - {"ancestors", gtl::ArraySlice<string>({})}, + {{"Tinputs", absl::Span<const DataType>({DT_FLOAT})}, + {"Toutputs", absl::Span<const DataType>({DT_FLOAT})}, + {"ancestors", absl::Span<const string>({})}, {"key", "host_compute_channel_F1_O1"}, {"shape_inference_graph", "_outside_compilation_shape_inference_F1_O1"}, - {"shapes", gtl::ArraySlice<DataType>({})}, + {"shapes", absl::Span<const DataType>({})}, {"_outside_compilation_subgraph", "O1"}}, {"c"}}, }, diff --git a/tensorflow/compiler/jit/partially_decluster_pass.cc b/tensorflow/compiler/jit/partially_decluster_pass.cc index 3a9a8c4988..a8f09bfa50 100644 --- a/tensorflow/compiler/jit/partially_decluster_pass.cc +++ b/tensorflow/compiler/jit/partially_decluster_pass.cc @@ -22,7 +22,7 @@ limitations under the License. namespace tensorflow { namespace { Status FindNodesToDecluster(const Graph& graph, gtl::FlatSet<Node*>* result, - gtl::ArraySlice<Node*> post_order) { + absl::Span<Node* const> post_order) { // Find nodes that have at least one user outside their cluster that expects // hostmem output. These nodes should be cloned to outside the cluster to // avoid the device-host copy we'd otherwise need. |