Index: test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc |
diff --git a/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc b/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc |
index d7beb47a01b23f8baae15eaa69488df16c9055ba..cec41166bf28dc15807aa7ca19fb67daf9a921a3 100644 |
--- a/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc |
+++ b/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc |
@@ -29,12 +29,12 @@ class BytecodePeepholeOptimizerTest : public BytecodePipelineStage, |
void Write(BytecodeNode* node) override { |
write_count_++; |
- last_written_.Clone(node); |
+ last_written_ = *node; |
} |
void WriteJump(BytecodeNode* node, BytecodeLabel* label) override { |
write_count_++; |
- last_written_.Clone(node); |
+ last_written_ = *node; |
} |
void BindLabel(BytecodeLabel* label) override {} |
@@ -72,7 +72,7 @@ TEST_F(BytecodePeepholeOptimizerTest, FlushOnJump) { |
CHECK_EQ(write_count(), 0); |
BytecodeLabel target; |
- BytecodeNode jump(Bytecode::kJump, 0, nullptr); |
+ BytecodeNode jump(Bytecode::kJump, 0); |
optimizer()->WriteJump(&jump, &target); |
CHECK_EQ(write_count(), 2); |
CHECK_EQ(jump, last_written()); |
@@ -105,7 +105,7 @@ TEST_F(BytecodePeepholeOptimizerTest, ElideEmptyNop) { |
TEST_F(BytecodePeepholeOptimizerTest, ElideExpressionNop) { |
BytecodeSourceInfo source_info(3, false); |
- BytecodeNode nop(Bytecode::kNop, &source_info); |
+ BytecodeNode nop(Bytecode::kNop, source_info); |
optimizer()->Write(&nop); |
BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand(), 1); |
optimizer()->Write(&add); |
@@ -115,11 +115,12 @@ TEST_F(BytecodePeepholeOptimizerTest, ElideExpressionNop) { |
} |
TEST_F(BytecodePeepholeOptimizerTest, KeepStatementNop) { |
- BytecodeSourceInfo source_info(3, true); |
- BytecodeNode nop(Bytecode::kNop, &source_info); |
+ BytecodeSourceInfo source_info_statement(3, true); |
+ BytecodeNode nop(Bytecode::kNop, source_info_statement); |
optimizer()->Write(&nop); |
- source_info.MakeExpressionPosition(3); |
- BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand(), 1, &source_info); |
+ BytecodeSourceInfo source_info_expression(3, false); |
+ BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand(), 1, |
+ source_info_expression); |
optimizer()->Write(&add); |
Flush(); |
CHECK_EQ(write_count(), 2); |
@@ -206,7 +207,7 @@ TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRx) { |
TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRxStatement) { |
BytecodeNode first(Bytecode::kStar, Register(0).ToOperand()); |
BytecodeSourceInfo source_info(3, true); |
- BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand(), &source_info); |
+ BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand(), source_info); |
optimizer()->Write(&first); |
CHECK_EQ(write_count(), 0); |
optimizer()->Write(&second); |
@@ -215,14 +216,14 @@ TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRxStatement) { |
Flush(); |
CHECK_EQ(write_count(), 2); |
CHECK_EQ(last_written().bytecode(), Bytecode::kNop); |
- CHECK_EQ(last_written().source_info(), second.source_info()); |
+ CHECK_EQ(last_written().source_info(), source_info); |
} |
TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRxStatementStarRy) { |
BytecodeLabel label; |
BytecodeNode first(Bytecode::kStar, Register(0).ToOperand()); |
BytecodeSourceInfo source_info(0, true); |
- BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand(), &source_info); |
+ BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand(), source_info); |
BytecodeNode third(Bytecode::kStar, Register(3).ToOperand()); |
optimizer()->Write(&first); |
CHECK_EQ(write_count(), 0); |
@@ -279,7 +280,7 @@ TEST_F(BytecodePeepholeOptimizerTest, LdaTrueLdaFalse) { |
TEST_F(BytecodePeepholeOptimizerTest, LdaTrueStatementLdaFalse) { |
BytecodeSourceInfo source_info(3, true); |
- BytecodeNode first(Bytecode::kLdaTrue, &source_info); |
+ BytecodeNode first(Bytecode::kLdaTrue, source_info); |
BytecodeNode second(Bytecode::kLdaFalse); |
optimizer()->Write(&first); |
CHECK_EQ(write_count(), 0); |
@@ -294,7 +295,7 @@ TEST_F(BytecodePeepholeOptimizerTest, LdaTrueStatementLdaFalse) { |
TEST_F(BytecodePeepholeOptimizerTest, NopStackCheck) { |
BytecodeNode first(Bytecode::kNop); |
- BytecodeNode second(Bytecode::kStackCheck, nullptr); |
+ BytecodeNode second(Bytecode::kStackCheck); |
optimizer()->Write(&first); |
CHECK_EQ(write_count(), 0); |
optimizer()->Write(&second); |
@@ -306,7 +307,7 @@ TEST_F(BytecodePeepholeOptimizerTest, NopStackCheck) { |
TEST_F(BytecodePeepholeOptimizerTest, NopStatementStackCheck) { |
BytecodeSourceInfo source_info(3, true); |
- BytecodeNode first(Bytecode::kNop, &source_info); |
+ BytecodeNode first(Bytecode::kNop, source_info); |
BytecodeNode second(Bytecode::kStackCheck); |
optimizer()->Write(&first); |
CHECK_EQ(write_count(), 0); |
@@ -314,8 +315,7 @@ TEST_F(BytecodePeepholeOptimizerTest, NopStatementStackCheck) { |
CHECK_EQ(write_count(), 0); |
Flush(); |
CHECK_EQ(write_count(), 1); |
- BytecodeSourceInfo expected_source_info(3, true); |
- BytecodeNode expected(Bytecode::kStackCheck, &expected_source_info); |
+ BytecodeNode expected(Bytecode::kStackCheck, source_info); |
CHECK_EQ(last_written(), expected); |
} |
@@ -353,8 +353,7 @@ TEST_F(BytecodePeepholeOptimizerTest, MergeLdaKeyedPropertyStar) { |
static_cast<uint32_t>(Register(1).ToOperand())}; |
const int expected_operand_count = static_cast<int>(arraysize(operands)); |
- BytecodeNode first(Bytecode::kLdaKeyedProperty, operands[0], operands[1], |
- nullptr); |
+ BytecodeNode first(Bytecode::kLdaKeyedProperty, operands[0], operands[1]); |
BytecodeNode second(Bytecode::kStar, operands[2]); |
BytecodeNode third(Bytecode::kReturn); |
optimizer()->Write(&first); |
@@ -460,7 +459,7 @@ TEST_F(BytecodePeepholeOptimizerTest, MergeLdaSmiWithBinaryOp) { |
for (auto operator_replacement : operator_replacement_pairs) { |
uint32_t imm_operand = 17; |
BytecodeSourceInfo source_info(3, true); |
- BytecodeNode first(Bytecode::kLdaSmi, imm_operand, &source_info); |
+ BytecodeNode first(Bytecode::kLdaSmi, imm_operand, source_info); |
uint32_t reg_operand = Register(0).ToOperand(); |
uint32_t idx_operand = 1; |
BytecodeNode second(operator_replacement[0], reg_operand, idx_operand); |
@@ -473,7 +472,7 @@ TEST_F(BytecodePeepholeOptimizerTest, MergeLdaSmiWithBinaryOp) { |
CHECK_EQ(last_written().operand(0), imm_operand); |
CHECK_EQ(last_written().operand(1), reg_operand); |
CHECK_EQ(last_written().operand(2), idx_operand); |
- CHECK_EQ(last_written().source_info(), first.source_info()); |
+ CHECK_EQ(last_written().source_info(), source_info); |
Reset(); |
} |
} |
@@ -490,10 +489,10 @@ TEST_F(BytecodePeepholeOptimizerTest, NotMergingLdaSmiWithBinaryOp) { |
for (auto operator_replacement : operator_replacement_pairs) { |
uint32_t imm_operand = 17; |
BytecodeSourceInfo source_info(3, true); |
- BytecodeNode first(Bytecode::kLdaSmi, imm_operand, &source_info); |
+ BytecodeNode first(Bytecode::kLdaSmi, imm_operand, source_info); |
uint32_t reg_operand = Register(0).ToOperand(); |
source_info.MakeStatementPosition(4); |
- BytecodeNode second(operator_replacement[0], reg_operand, 1, &source_info); |
+ BytecodeNode second(operator_replacement[0], reg_operand, 1, source_info); |
optimizer()->Write(&first); |
optimizer()->Write(&second); |
CHECK_EQ(last_written(), first); |