aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/compiler
diff options
context:
space:
mode:
authorGravatar Benjamin Kramer <kramerb@google.com>2018-10-02 11:40:08 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-10-02 11:45:04 -0700
commitb4c23d661228b549186dc82c16ecb22d261becf6 (patch)
tree2e98efaee8d6587c29ec508dd5c4e09b1ddfe875 /tensorflow/compiler
parentfeb0dc87078698fd335b528c661c54226a58efa9 (diff)
[XLA] Replace the last FlatMap in XLA with a simple array.
A hash map for 18 pointers is just a waste of space. PiperOrigin-RevId: 215428176
Diffstat (limited to 'tensorflow/compiler')
-rw-r--r--tensorflow/compiler/xla/service/hlo_evaluator.cc2
-rw-r--r--tensorflow/compiler/xla/service/hlo_evaluator.h10
2 files changed, 3 insertions, 9 deletions
diff --git a/tensorflow/compiler/xla/service/hlo_evaluator.cc b/tensorflow/compiler/xla/service/hlo_evaluator.cc
index d7c39b2778..eec8d242fa 100644
--- a/tensorflow/compiler/xla/service/hlo_evaluator.cc
+++ b/tensorflow/compiler/xla/service/hlo_evaluator.cc
@@ -1378,7 +1378,7 @@ Status HloEvaluator::HandleReduce(HloInstruction* reduce) {
"unsupported");
}
}
- return reduce->Visit(typed_visitors_.at(first_element_type).get());
+ return reduce->Visit(typed_visitors_[first_element_type].get());
}
}
diff --git a/tensorflow/compiler/xla/service/hlo_evaluator.h b/tensorflow/compiler/xla/service/hlo_evaluator.h
index 2b0792616e..07f8d0aad4 100644
--- a/tensorflow/compiler/xla/service/hlo_evaluator.h
+++ b/tensorflow/compiler/xla/service/hlo_evaluator.h
@@ -29,7 +29,6 @@ limitations under the License.
#include "tensorflow/compiler/xla/statusor.h"
#include "tensorflow/compiler/xla/util.h"
#include "tensorflow/compiler/xla/xla_data.pb.h"
-#include "tensorflow/core/lib/gtl/flatmap.h"
#include "tensorflow/core/platform/macros.h"
namespace xla {
@@ -135,7 +134,7 @@ class HloEvaluator : public DfsHloVisitorWithDefault {
// Wraps around instruction handling to infer types before dispatching to
// the corresponding typed Visitor.
Status DefaultAction(HloInstruction* hlo) override {
- return hlo->Visit(typed_visitors_.at(hlo->shape().element_type()).get());
+ return hlo->Visit(typed_visitors_[hlo->shape().element_type()].get());
}
Status Preprocess(HloInstruction* hlo) override;
@@ -242,12 +241,7 @@ class HloEvaluator : public DfsHloVisitorWithDefault {
}
// Map from a primitive type to its associated (templated) DfsHloVisitor.
- // Note: the hash function here is only needed because current gcc std::hash
- // does not specialize for enum types. This should however be fixed in the
- // future: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60970#c5
- tensorflow::gtl::FlatMap<PrimitiveType, std::unique_ptr<DfsHloVisitor>,
- std::hash<int>>
- typed_visitors_;
+ std::unique_ptr<DfsHloVisitor> typed_visitors_[PrimitiveType_ARRAYSIZE];
// Caches pointers to input literals, assuming they are in post-order.
// Literals are not owned by this class, and they must outlive the lifetime of