aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/compiler/xla/service/hlo_computation.h
diff options
context:
space:
mode:
authorGravatar HyoukJoong Lee <hyouklee@google.com>2017-11-28 14:11:13 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-11-28 14:17:35 -0800
commit49bb801e65caf6afeb7cc7f67a168c9a19582ad1 (patch)
tree470002959de31597fb59cb12b029387a3b480571 /tensorflow/compiler/xla/service/hlo_computation.h
parentc294fcfd85c03a801d3aad83cfd08055dadbad1a (diff)
Changed to allow removing side-effect instructions from an HLO computation
and moved the condition to the hlo_dce pass. PiperOrigin-RevId: 177215395
Diffstat (limited to 'tensorflow/compiler/xla/service/hlo_computation.h')
-rw-r--r--tensorflow/compiler/xla/service/hlo_computation.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/tensorflow/compiler/xla/service/hlo_computation.h b/tensorflow/compiler/xla/service/hlo_computation.h
index 353b30bc69..ccedda2a03 100644
--- a/tensorflow/compiler/xla/service/hlo_computation.h
+++ b/tensorflow/compiler/xla/service/hlo_computation.h
@@ -313,11 +313,17 @@ class HloComputation {
replacements,
HloModule* module = nullptr, const string& suffix = "clone");
- // Returns true if the given instruction can be removed from the
- // computation. Instructions such as parameters and send/receive instructions
- // cannot be removed without violating invariants of the HLO computation or
- // module with the exception of fusion computation. A parameter instruction
- // is removable for a fusion computation.
+ // Returns true if the given instruction can be removed from the computation.
+ // Parameter instructions cannot be removed without violating invariants of
+ // the HLO computation with the exception of fusion computation. A parameter
+ // instruction is removable for a fusion computation.
+ //
+ // Note that IsRemovable() is a necessariy condition to remove an instruction
+ // rather than a sufficient condition. For example, instructions with
+ // side-effect (e.g., Send, Infeed) may be removed from a computation, but the
+ // transformation must guarantee the invariants relevant to the instructions
+ // still hold (e.g., Send and Recv must be removed together to make each
+ // channel complete).
bool IsRemovable(const HloInstruction* instruction);
// Returns true if this computation has a side effect. A computation has a