From 52506e2a29b172a4e055ea545800e48b2ca508d5 Mon Sep 17 00:00:00 2001 From: Evgeny Astigeevich Date: Wed, 4 Dec 2019 15:59:37 +0000 Subject: 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 --- compiler/optimizing/optimizing_unit_test.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'compiler/optimizing/optimizing_unit_test.h') 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 parameters_; }; // Naive string diff data type. -- cgit v1.2.3-59-g8ed1b