diff options
author | Calin Juravle <calin@google.com> | 2015-02-16 13:13:29 +0000 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2015-02-20 14:26:08 +0000 |
commit | b1498f67b444c897fa8f1530777ef118e05aa631 (patch) | |
tree | 7ff4709329b0ba752a6111103a76fcea896a3adb /compiler/optimizing/code_generator_arm.cc | |
parent | acf735c13998ad2a175f5a17e7bfce220073279d (diff) | |
download | art-b1498f67b444c897fa8f1530777ef118e05aa631.tar.gz art-b1498f67b444c897fa8f1530777ef118e05aa631.tar.bz2 art-b1498f67b444c897fa8f1530777ef118e05aa631.zip |
Improve type propagation with if-contexts
This works by adding a new instruction (HBoundType) after each `if (a
instanceof ClassA) {}` to bound the type that `a` can take in the True-
dominated blocks.
Change-Id: Iae6a150b353486d4509b0d9b092164675732b90c
Diffstat (limited to 'compiler/optimizing/code_generator_arm.cc')
-rw-r--r-- | compiler/optimizing/code_generator_arm.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_arm.cc b/compiler/optimizing/code_generator_arm.cc index 7b0231b3c0..e864ae1cec 100644 --- a/compiler/optimizing/code_generator_arm.cc +++ b/compiler/optimizing/code_generator_arm.cc @@ -3865,5 +3865,17 @@ void CodeGeneratorARM::GenerateStaticOrDirectCall(HInvokeStaticOrDirect* invoke, DCHECK(!IsLeafMethod()); } +void LocationsBuilderARM::VisitBoundType(HBoundType* instruction) { + // Nothing to do, this should be removed during prepare for register allocator. + UNUSED(instruction); + LOG(FATAL) << "Unreachable"; +} + +void InstructionCodeGeneratorARM::VisitBoundType(HBoundType* instruction) { + // Nothing to do, this should be removed during prepare for register allocator. + UNUSED(instruction); + LOG(FATAL) << "Unreachable"; +} + } // namespace arm } // namespace art |