diff options
author | Vladimir Marko <vmarko@google.com> | 2016-09-07 15:09:21 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2016-09-12 14:52:17 +0100 |
commit | 7aa7560683626c7893011271c241b3265ded1dc3 (patch) | |
tree | 8c9839456149d2320995764ebab5d227a6dea8e7 /compiler/optimizing/code_generator_mips.cc | |
parent | ae6ba1fd36ef6cd6520354fa874cf9cc2fc5877b (diff) |
Use implicit null checks inside try blocks.
Make implicit null check entrypoint save all registers, use
platform-specific approach to still pass the fault address.
Allow implicit null checks in try blocks.
On Nexus 9, AOSP ToT, the boot.oat size reduction is
prebuilt multi-part boot image:
- 32-bit boot.oat: -452KiB (-0.7%)
- 64-bit boot.oat: -482KiB (-0.7%)
on-device built single boot image:
- 32-bit boot.oat: -444KiB (-0.7%)
- 64-bit boot.oat: -488KiB (-0.7%)
Test: Run ART test suite on host and Nexus 9.
Test: Build aosp_mips64-eng.
Change-Id: I279f3ab57e2e2f338131c5cac45c51b673bdca19
Diffstat (limited to 'compiler/optimizing/code_generator_mips.cc')
-rw-r--r-- | compiler/optimizing/code_generator_mips.cc | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/compiler/optimizing/code_generator_mips.cc b/compiler/optimizing/code_generator_mips.cc index 92e9cd9067..9abe485817 100644 --- a/compiler/optimizing/code_generator_mips.cc +++ b/compiler/optimizing/code_generator_mips.cc @@ -4856,14 +4856,7 @@ void InstructionCodeGeneratorMIPS::VisitBooleanNot(HBooleanNot* instruction) { } void LocationsBuilderMIPS::VisitNullCheck(HNullCheck* instruction) { - LocationSummary::CallKind call_kind = instruction->CanThrowIntoCatchBlock() - ? LocationSummary::kCallOnSlowPath - : LocationSummary::kNoCall; - LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind); - locations->SetInAt(0, Location::RequiresRegister()); - if (instruction->HasUses()) { - locations->SetOut(Location::SameAsFirstInput()); - } + codegen_->CreateNullCheckLocations(instruction); } void CodeGeneratorMIPS::GenerateImplicitNullCheck(HNullCheck* instruction) { |