Index: src/interpreter/mkpeephole.cc |
diff --git a/src/interpreter/mkpeephole.cc b/src/interpreter/mkpeephole.cc |
index d89390d45d125f9ca2d6dfaf619ce911794bdcb6..87678e06dff2825e06de5c7f907956ae08fc0d6a 100644 |
--- a/src/interpreter/mkpeephole.cc |
+++ b/src/interpreter/mkpeephole.cc |
@@ -106,13 +106,14 @@ PeepholeActionAndData PeepholeActionTableWriter::LookupActionAndData( |
} |
} |
- // ToName optimizations: remove unnecessary ToName bytecodes. |
+ // ToName bytecodes can be replaced by Star with the same output register if |
+ // the value in the accumulator is already a name. |
if (current == Bytecode::kToName) { |
if (last == Bytecode::kLdaConstant) { |
- return {PeepholeAction::kElideCurrentIfLoadingNameConstantAction, |
+ return {PeepholeAction::kTransformToStarIfLoadingNameConstantAction, |
Bytecode::kIllegal}; |
} else if (Bytecodes::PutsNameInAccumulator(last)) { |
- return {PeepholeAction::kElideCurrentAction, Bytecode::kIllegal}; |
+ return {PeepholeAction::kChangeBytecodeAction, Bytecode::kStar}; |
} |
} |