summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Santiago Aboy Solanes <solanes@google.com> 2023-02-10 10:25:31 +0000
committer Treehugger Robot <treehugger-gerrit@google.com> 2023-02-13 18:35:10 +0000
commit2c50b3a4f31cb9e845f80299e684cd9937b61e24 (patch)
tree42033e2f48b6c6656f062daec1aefffa8cad92e0
parentc5cfbde3674a04828b25e7511c38ee830f9c0568 (diff)
Don't run ReferenceTypePropagation without a Thread
Update some of our gtests to create a Runtime, as ReferenceTypePropagation expects to have one. Test: run gtests Change-Id: I75986b1a9dc0227ee05f507f2b03ffa8aa8f8e58
-rw-r--r--compiler/optimizing/codegen_test.cc2
-rw-r--r--compiler/optimizing/constant_folding_test.cc2
-rw-r--r--compiler/optimizing/dead_code_elimination_test.cc2
-rw-r--r--compiler/optimizing/dominator_test.cc2
-rw-r--r--compiler/optimizing/find_loops_test.cc2
-rw-r--r--compiler/optimizing/graph_checker_test.cc2
-rw-r--r--compiler/optimizing/linearize_test.cc2
-rw-r--r--compiler/optimizing/live_ranges_test.cc2
-rw-r--r--compiler/optimizing/liveness_test.cc2
-rw-r--r--compiler/optimizing/pretty_printer_test.cc2
-rw-r--r--compiler/optimizing/reference_type_propagation.cc7
-rw-r--r--compiler/optimizing/register_allocator_test.cc4
-rw-r--r--compiler/optimizing/scheduler_test.cc2
-rw-r--r--compiler/optimizing/ssa_test.cc2
-rw-r--r--compiler/optimizing/suspend_check_test.cc2
15 files changed, 20 insertions, 17 deletions
diff --git a/compiler/optimizing/codegen_test.cc b/compiler/optimizing/codegen_test.cc
index 9f1f62b203..2d9acc49b3 100644
--- a/compiler/optimizing/codegen_test.cc
+++ b/compiler/optimizing/codegen_test.cc
@@ -64,7 +64,7 @@ static ::std::vector<CodegenTargetConfig> GetTargetConfigs() {
return v;
}
-class CodegenTest : public OptimizingUnitTest {
+class CodegenTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void TestCode(const std::vector<uint16_t>& data, bool has_result = false, int32_t expected = 0);
void TestCodeLong(const std::vector<uint16_t>& data, bool has_result, int64_t expected);
diff --git a/compiler/optimizing/constant_folding_test.cc b/compiler/optimizing/constant_folding_test.cc
index 7c3dae21d8..9acfa35326 100644
--- a/compiler/optimizing/constant_folding_test.cc
+++ b/compiler/optimizing/constant_folding_test.cc
@@ -32,7 +32,7 @@ namespace art HIDDEN {
/**
* Fixture class for the constant folding and dce tests.
*/
-class ConstantFoldingTest : public OptimizingUnitTest {
+class ConstantFoldingTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
public:
ConstantFoldingTest() : graph_(nullptr) { }
diff --git a/compiler/optimizing/dead_code_elimination_test.cc b/compiler/optimizing/dead_code_elimination_test.cc
index fcf4ca39f2..b789434add 100644
--- a/compiler/optimizing/dead_code_elimination_test.cc
+++ b/compiler/optimizing/dead_code_elimination_test.cc
@@ -26,7 +26,7 @@
namespace art HIDDEN {
-class DeadCodeEliminationTest : public OptimizingUnitTest {
+class DeadCodeEliminationTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void TestCode(const std::vector<uint16_t>& data,
const std::string& expected_before,
diff --git a/compiler/optimizing/dominator_test.cc b/compiler/optimizing/dominator_test.cc
index d3b8cb1cf8..5f366ebcd9 100644
--- a/compiler/optimizing/dominator_test.cc
+++ b/compiler/optimizing/dominator_test.cc
@@ -25,7 +25,7 @@
namespace art HIDDEN {
-class OptimizerTest : public OptimizingUnitTest {
+class OptimizerTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void TestCode(const std::vector<uint16_t>& data, const uint32_t* blocks, size_t blocks_length);
};
diff --git a/compiler/optimizing/find_loops_test.cc b/compiler/optimizing/find_loops_test.cc
index 8d8c3a1838..8857b2a775 100644
--- a/compiler/optimizing/find_loops_test.cc
+++ b/compiler/optimizing/find_loops_test.cc
@@ -28,7 +28,7 @@
namespace art HIDDEN {
-class FindLoopsTest : public OptimizingUnitTest {};
+class FindLoopsTest : public CommonCompilerTest, public OptimizingUnitTestHelper {};
TEST_F(FindLoopsTest, CFG1) {
// Constant is not used.
diff --git a/compiler/optimizing/graph_checker_test.cc b/compiler/optimizing/graph_checker_test.cc
index 9a2fc890f5..b256fbb46d 100644
--- a/compiler/optimizing/graph_checker_test.cc
+++ b/compiler/optimizing/graph_checker_test.cc
@@ -20,7 +20,7 @@
namespace art HIDDEN {
-class GraphCheckerTest : public OptimizingUnitTest {
+class GraphCheckerTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
HGraph* CreateSimpleCFG();
void TestCode(const std::vector<uint16_t>& data);
diff --git a/compiler/optimizing/linearize_test.cc b/compiler/optimizing/linearize_test.cc
index b39bac5acf..01daa23511 100644
--- a/compiler/optimizing/linearize_test.cc
+++ b/compiler/optimizing/linearize_test.cc
@@ -31,7 +31,7 @@
namespace art HIDDEN {
-class LinearizeTest : public OptimizingUnitTest {
+class LinearizeTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
template <size_t number_of_blocks>
void TestCode(const std::vector<uint16_t>& data,
diff --git a/compiler/optimizing/live_ranges_test.cc b/compiler/optimizing/live_ranges_test.cc
index 4f52fdb7f3..fb1a23eef4 100644
--- a/compiler/optimizing/live_ranges_test.cc
+++ b/compiler/optimizing/live_ranges_test.cc
@@ -28,7 +28,7 @@
namespace art HIDDEN {
-class LiveRangesTest : public OptimizingUnitTest {
+class LiveRangesTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
HGraph* BuildGraph(const std::vector<uint16_t>& data);
diff --git a/compiler/optimizing/liveness_test.cc b/compiler/optimizing/liveness_test.cc
index a2763731b4..0b421cf9e6 100644
--- a/compiler/optimizing/liveness_test.cc
+++ b/compiler/optimizing/liveness_test.cc
@@ -28,7 +28,7 @@
namespace art HIDDEN {
-class LivenessTest : public OptimizingUnitTest {
+class LivenessTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void TestCode(const std::vector<uint16_t>& data, const char* expected);
};
diff --git a/compiler/optimizing/pretty_printer_test.cc b/compiler/optimizing/pretty_printer_test.cc
index 5ed39442bf..90d5f8f08f 100644
--- a/compiler/optimizing/pretty_printer_test.cc
+++ b/compiler/optimizing/pretty_printer_test.cc
@@ -28,7 +28,7 @@
namespace art HIDDEN {
-class PrettyPrinterTest : public OptimizingUnitTest {
+class PrettyPrinterTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void TestCode(const std::vector<uint16_t>& data, const char* expected);
};
diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc
index 2b0a118e32..48d33f2b8c 100644
--- a/compiler/optimizing/reference_type_propagation.cc
+++ b/compiler/optimizing/reference_type_propagation.cc
@@ -123,8 +123,8 @@ ReferenceTypePropagation::ReferenceTypePropagation(HGraph* graph,
: HOptimization(graph, name), hint_dex_cache_(hint_dex_cache), is_first_run_(is_first_run) {}
void ReferenceTypePropagation::ValidateTypes() {
- // TODO: move this to the graph checker. Note: There may be no Thread for gtests.
- if (kIsDebugBuild && Thread::Current() != nullptr) {
+ // TODO: move this to the graph checker.
+ if (kIsDebugBuild) {
ScopedObjectAccess soa(Thread::Current());
for (HBasicBlock* block : graph_->GetReversePostOrder()) {
for (HInstructionIterator iti(block->GetInstructions()); !iti.Done(); iti.Advance()) {
@@ -333,6 +333,9 @@ static void BoundTypeForClassCheck(HInstruction* check) {
}
bool ReferenceTypePropagation::Run() {
+ DCHECK(Thread::Current() != nullptr)
+ << "ReferenceTypePropagation requires the use of Thread::Current(). Make sure you have a "
+ << "Runtime initialized before calling this optimization pass";
RTPVisitor visitor(graph_, hint_dex_cache_, is_first_run_);
// To properly propagate type info we need to visit in the dominator-based order.
diff --git a/compiler/optimizing/register_allocator_test.cc b/compiler/optimizing/register_allocator_test.cc
index dabd4a3ca1..d316aa5dc2 100644
--- a/compiler/optimizing/register_allocator_test.cc
+++ b/compiler/optimizing/register_allocator_test.cc
@@ -39,10 +39,10 @@ using Strategy = RegisterAllocator::Strategy;
// Note: the register allocator tests rely on the fact that constants have live
// intervals and registers get allocated to them.
-class RegisterAllocatorTest : public OptimizingUnitTest {
+class RegisterAllocatorTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void SetUp() override {
- OptimizingUnitTest::SetUp();
+ CommonCompilerTest::SetUp();
// This test is using the x86 ISA.
compiler_options_ = CommonCompilerTest::CreateCompilerOptions(InstructionSet::kX86, "default");
}
diff --git a/compiler/optimizing/scheduler_test.cc b/compiler/optimizing/scheduler_test.cc
index 6eea87f8a2..165bfe3d94 100644
--- a/compiler/optimizing/scheduler_test.cc
+++ b/compiler/optimizing/scheduler_test.cc
@@ -66,7 +66,7 @@ static ::std::vector<CodegenTargetConfig> GetTargetConfigs() {
return v;
}
-class SchedulerTest : public OptimizingUnitTest {
+class SchedulerTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
public:
SchedulerTest() : graph_(CreateGraph()) { }
diff --git a/compiler/optimizing/ssa_test.cc b/compiler/optimizing/ssa_test.cc
index 008e435a77..980493db34 100644
--- a/compiler/optimizing/ssa_test.cc
+++ b/compiler/optimizing/ssa_test.cc
@@ -30,7 +30,7 @@
namespace art HIDDEN {
-class SsaTest : public OptimizingUnitTest {
+class SsaTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void TestCode(const std::vector<uint16_t>& data, const char* expected);
};
diff --git a/compiler/optimizing/suspend_check_test.cc b/compiler/optimizing/suspend_check_test.cc
index 93a84b4e0a..76e7e0c32c 100644
--- a/compiler/optimizing/suspend_check_test.cc
+++ b/compiler/optimizing/suspend_check_test.cc
@@ -29,7 +29,7 @@ namespace art HIDDEN {
* Check that the HGraphBuilder adds suspend checks to backward branches.
*/
-class SuspendCheckTest : public OptimizingUnitTest {
+class SuspendCheckTest : public CommonCompilerTest, public OptimizingUnitTestHelper {
protected:
void TestCode(const std::vector<uint16_t>& data);
};