diff options
author | 2023-04-05 15:24:41 +0000 | |
---|---|---|
committer | 2023-04-06 10:06:57 +0000 | |
commit | f76ca8c3cb8a1f0ceee099ef8ce64295286b8b6b (patch) | |
tree | 11aa40ca2e1f5af365c84caf8493001014451c93 /compiler/optimizing/intrinsics_x86.cc | |
parent | d2be01cdd96522828adcea8d245f48915dc7e507 (diff) |
Clean up creating constant locations.
Change `Location::ConstantLocation()` to allow passing any
instruction and `DCHECK()` that it is indeed a constant.
Skip explicit calls to `HInstruction::AsConstant()` before
calling `Location::ConstantLocation()`.
Also cache results of `instuction->InputAt(.)` in some cases
when it's used more than once.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: run-gtests.sh
Test: testrunner.py --target --optimizing
Change-Id: I3c07642f6b3523b576ec229e4d234561ad74a20e
Diffstat (limited to 'compiler/optimizing/intrinsics_x86.cc')
-rw-r--r-- | compiler/optimizing/intrinsics_x86.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/intrinsics_x86.cc b/compiler/optimizing/intrinsics_x86.cc index 868fd4a120..d2072201f8 100644 --- a/compiler/optimizing/intrinsics_x86.cc +++ b/compiler/optimizing/intrinsics_x86.cc @@ -3963,7 +3963,7 @@ static void CreateVarHandleSetLocations(HInvoke* invoke) { case DataType::Type::kInt64: // We only handle constant non-atomic int64 values. DCHECK(value->IsConstant()); - locations->SetInAt(value_index, Location::ConstantLocation(value->AsConstant())); + locations->SetInAt(value_index, Location::ConstantLocation(value)); break; case DataType::Type::kReference: locations->SetInAt(value_index, Location::RequiresRegister()); |