diff options
| author | Alexandre Rames <alexandre.rames@linaro.org> | 2016-09-19 13:54:30 +0100 |
|---|---|---|
| committer | Alexandre Rames <alexandre.rames@linaro.org> | 2016-09-19 13:54:30 +0100 |
| commit | 91a6516103b8bf8bb75c3a2840cbdec7521e74a7 (patch) | |
| tree | d93043f578bfa5b8d76e8c175e6441b378c4a7b2 /compiler/optimizing/instruction_simplifier_shared.cc | |
| parent | 6a4abc633fa8580b06056ec6f80ced8ce7511277 (diff) | |
| download | art-91a6516103b8bf8bb75c3a2840cbdec7521e74a7.tar.gz art-91a6516103b8bf8bb75c3a2840cbdec7521e74a7.tar.bz2 art-91a6516103b8bf8bb75c3a2840cbdec7521e74a7.zip | |
Remove the `CanTriggerGC` side-effects on a few instructions.
The side-effect was specified for these instructions as they call
runtime. We now have a list of entrypoints that we know cannot trigger
GC. We can avoid requiring the side-effect for those.
Test: Run ART test suite on Nexus 5X and host.
Change-Id: I0e0e6a4d701ce6c75aff486cb0d1bc7fe2e8dda4
Diffstat (limited to 'compiler/optimizing/instruction_simplifier_shared.cc')
| -rw-r--r-- | compiler/optimizing/instruction_simplifier_shared.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/optimizing/instruction_simplifier_shared.cc b/compiler/optimizing/instruction_simplifier_shared.cc index 8f7778fe68..04e063c92e 100644 --- a/compiler/optimizing/instruction_simplifier_shared.cc +++ b/compiler/optimizing/instruction_simplifier_shared.cc @@ -259,7 +259,8 @@ bool TryExtractArrayAccessAddress(HInstruction* access, HIntConstant* offset = graph->GetIntConstant(data_offset); HIntermediateAddress* address = new (arena) HIntermediateAddress(array, offset, kNoDexPc); - address->SetReferenceTypeInfo(array->GetReferenceTypeInfo()); + // TODO: Is it ok to not have this on the intermediate address? + // address->SetReferenceTypeInfo(array->GetReferenceTypeInfo()); access->GetBlock()->InsertInstructionBefore(address, access); access->ReplaceInput(address, 0); // Both instructions must depend on GC to prevent any instruction that can |
