Index: runtime/vm/flow_graph_optimizer.cc |
diff --git a/runtime/vm/flow_graph_optimizer.cc b/runtime/vm/flow_graph_optimizer.cc |
index 13995c947510b7114c809a9fd69682ac93fb61d3..67788cd6610d8cabd698cb001ab762a40da565fe 100644 |
--- a/runtime/vm/flow_graph_optimizer.cc |
+++ b/runtime/vm/flow_graph_optimizer.cc |
@@ -589,7 +589,14 @@ bool FlowGraphOptimizer::Canonicalize() { |
BlockEntryInstr* entry = block_order_[i]; |
for (ForwardInstructionIterator it(entry); !it.Done(); it.Advance()) { |
Instruction* current = it.Current(); |
+ if (current->HasUnmatchedInputRepresentations()) { |
+ // Can't canonicalize this instruction until all conversions for its |
+ // inputs are inserted. |
+ continue; |
+ } |
+ |
Instruction* replacement = current->Canonicalize(flow_graph()); |
+ |
if (replacement != current) { |
// For non-definitions Canonicalize should return either NULL or |
// this. |