diff options
author | Alex Light <allight@google.com> | 2021-01-25 14:11:05 +0000 |
---|---|---|
committer | Alex Light <allight@google.com> | 2021-01-25 07:01:32 -0800 |
commit | 3a73ffb70151dbc99fa41f300a237f8c29783e0e (patch) | |
tree | 8debef1b372e5bea27d5265a9019446229955e3d /compiler/optimizing/code_generator.cc | |
parent | e585964df42e9fd2fab6f209810cb03e1b261ab1 (diff) |
Revert^4 "Partial Load Store Elimination"
This reverts commit 791df7a161ecfa28eb69862a4bc285282463b960.
This unreverts commit fc1ce4e8be0d977e3d41699f5ec746d68f63c024.
This unreverts commit b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07.
We incorrectly failed to include PredicatedInstanceFieldGet in a few
conditions, including a DCHECK. This caused tests to fail under the
read-barrier-table-lookup configuration.
Reason for revert: Fixed 2 incorrect checks
Bug: 67037140
Test: ./art/test/testrunner/run_build_test_target.py -j70 art-gtest-read-barrier-table-lookup
Change-Id: I32b01b29fb32077fb5074e7c77a0226bd1fcaab4
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
-rw-r--r-- | compiler/optimizing/code_generator.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc index 68120e2dd7..8333b321db 100644 --- a/compiler/optimizing/code_generator.cc +++ b/compiler/optimizing/code_generator.cc @@ -1667,6 +1667,7 @@ void CodeGenerator::ValidateInvokeRuntime(QuickEntrypointEnum entrypoint, (kEmitCompilerReadBarrier && !kUseBakerReadBarrier && (instruction->IsInstanceFieldGet() || + instruction->IsPredicatedInstanceFieldGet() || instruction->IsStaticFieldGet() || instruction->IsArrayGet() || instruction->IsLoadClass() || @@ -1677,7 +1678,8 @@ void CodeGenerator::ValidateInvokeRuntime(QuickEntrypointEnum entrypoint, << "instruction->DebugName()=" << instruction->DebugName() << " instruction->GetSideEffects().ToString()=" << instruction->GetSideEffects().ToString() - << " slow_path->GetDescription()=" << slow_path->GetDescription(); + << " slow_path->GetDescription()=" << slow_path->GetDescription() << std::endl + << "Instruction and args: " << instruction->DumpWithArgs(); } } else { // The GC side effect is not required for the instruction. But the instruction might still have @@ -1702,6 +1704,7 @@ void CodeGenerator::ValidateInvokeRuntimeWithoutRecordingPcInfo(HInstruction* in // PC-related information. DCHECK(kUseBakerReadBarrier); DCHECK(instruction->IsInstanceFieldGet() || + instruction->IsPredicatedInstanceFieldGet() || instruction->IsStaticFieldGet() || instruction->IsArrayGet() || instruction->IsArraySet() || |