diff options
author | Evgeny Astigeevich <evgeny.astigeevich@linaro.org> | 2019-12-04 15:59:37 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2019-12-13 07:12:02 +0000 |
commit | 52506e2a29b172a4e055ea545800e48b2ca508d5 (patch) | |
tree | 23599ea08495d98f6fdc6c9bf8e39719d3ac8632 /compiler/optimizing/optimizing_unit_test.h | |
parent | 90ceea36a9c6ea123a5e1ad6b001230890406e2f (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.h | 19 |
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. |