aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tensorflow/compiler/xla/service/zero_sized_hlo_elimination.cc3
-rw-r--r--tensorflow/compiler/xla/service/zero_sized_hlo_elimination_test.cc7
2 files changed, 9 insertions, 1 deletions
diff --git a/tensorflow/compiler/xla/service/zero_sized_hlo_elimination.cc b/tensorflow/compiler/xla/service/zero_sized_hlo_elimination.cc
index 0a3a757b27..83d696fe09 100644
--- a/tensorflow/compiler/xla/service/zero_sized_hlo_elimination.cc
+++ b/tensorflow/compiler/xla/service/zero_sized_hlo_elimination.cc
@@ -32,7 +32,8 @@ StatusOr<bool> ZeroSizedHloElimination::Run(HloModule* module) {
for (HloComputation* comp : module->MakeNonfusionComputations()) {
for (HloInstruction* instruction : comp->MakeInstructionPostOrder()) {
if (instruction->HasSideEffect() ||
- !ShapeUtil::IsArray(instruction->shape())) {
+ !ShapeUtil::IsArray(instruction->shape()) ||
+ instruction->opcode() == HloOpcode::kConstant) {
continue;
}
if (comp->IsRemovable(instruction) &&
diff --git a/tensorflow/compiler/xla/service/zero_sized_hlo_elimination_test.cc b/tensorflow/compiler/xla/service/zero_sized_hlo_elimination_test.cc
index 4f3e95ada5..1da5339826 100644
--- a/tensorflow/compiler/xla/service/zero_sized_hlo_elimination_test.cc
+++ b/tensorflow/compiler/xla/service/zero_sized_hlo_elimination_test.cc
@@ -74,5 +74,12 @@ TEST_F(ZeroSizedHloEliminationTest, DoesNotEliminateSideEffects) {
EXPECT_FALSE(changed);
}
+TEST_F(ZeroSizedHloEliminationTest, DoesNotEliminateConstant) {
+ builder_.AddInstruction(
+ HloInstruction::CreateConstant(LiteralUtil::CreateR1({})));
+ TF_ASSERT_OK_AND_ASSIGN(bool changed, RunZeroSizedElimination());
+ EXPECT_FALSE(changed);
+}
+
} // namespace
} // namespace xla