summaryrefslogtreecommitdiff
path: root/compiler/optimizing/optimizing_unit_test.h
diff options
context:
space:
mode:
authorEvgeny Astigeevich <evgeny.astigeevich@linaro.org>2019-12-04 15:59:37 +0000
committerNicolas Geoffray <ngeoffray@google.com>2019-12-13 07:12:02 +0000
commit52506e2a29b172a4e055ea545800e48b2ca508d5 (patch)
tree23599ea08495d98f6fdc6c9bf8e39719d3ac8632 /compiler/optimizing/optimizing_unit_test.h
parent90ceea36a9c6ea123a5e1ad6b001230890406e2f (diff)
Add ImprovedOptimizingUnitTest::CreateParameters for subclasses
Subclasses of ImprovedOptimizingUnitTest might need a different number of graph parameters. Currently only a parameter is defined and created. This CL adds ImprovedOptimizingUnitTest::CreateParameters which subclasses can override to create as many parameters as they need. All created parameters are added to the entry basic block. The default implementation of ImprovedOptimizingUnitTest::CreateParameters does nothing. Test: run-gtests.sh Change-Id: I2c6a58232e36d3562fc2bc0cdc289dd739094a73
Diffstat (limited to 'compiler/optimizing/optimizing_unit_test.h')
-rw-r--r--compiler/optimizing/optimizing_unit_test.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/compiler/optimizing/optimizing_unit_test.h b/compiler/optimizing/optimizing_unit_test.h
index e5f694109a..01571267e2 100644
--- a/compiler/optimizing/optimizing_unit_test.h
+++ b/compiler/optimizing/optimizing_unit_test.h
@@ -194,8 +194,7 @@ class ImprovedOptimizingUnitTest : public OptimizingUnitTest {
ImprovedOptimizingUnitTest() : graph_(CreateGraph()),
entry_block_(nullptr),
return_block_(nullptr),
- exit_block_(nullptr),
- parameter_(nullptr) {}
+ exit_block_(nullptr) {}
virtual ~ImprovedOptimizingUnitTest() {}
@@ -214,11 +213,11 @@ class ImprovedOptimizingUnitTest : public OptimizingUnitTest {
entry_block_->AddSuccessor(return_block_);
return_block_->AddSuccessor(exit_block_);
- parameter_ = new (GetAllocator()) HParameterValue(graph_->GetDexFile(),
- dex::TypeIndex(0),
- 0,
- DataType::Type::kInt32);
- entry_block_->AddInstruction(parameter_);
+ CreateParameters();
+ for (HInstruction* parameter : parameters_) {
+ entry_block_->AddInstruction(parameter);
+ }
+
return_block_->AddInstruction(new (GetAllocator()) HReturnVoid());
exit_block_->AddInstruction(new (GetAllocator()) HExit());
}
@@ -250,13 +249,17 @@ class ImprovedOptimizingUnitTest : public OptimizingUnitTest {
}
protected:
+ // Create parameters to be added to the graph entry block.
+ // Subclasses can override it to create parameters they need.
+ virtual void CreateParameters() { /* do nothing */ }
+
HGraph* graph_;
HBasicBlock* entry_block_;
HBasicBlock* return_block_;
HBasicBlock* exit_block_;
- HInstruction* parameter_;
+ std::vector<HInstruction*> parameters_;
};
// Naive string diff data type.