diff options
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/debug/elf_debug_info_writer.h | 7 | ||||
| -rw-r--r-- | compiler/driver/dex_compilation_unit.cc | 6 | ||||
| -rw-r--r-- | compiler/optimizing/inliner.cc | 5 | ||||
| -rw-r--r-- | compiler/optimizing/instruction_builder.cc | 2 | ||||
| -rw-r--r-- | compiler/optimizing/instruction_simplifier.cc | 2 | ||||
| -rw-r--r-- | compiler/optimizing/intrinsics.cc | 8 | ||||
| -rw-r--r-- | compiler/optimizing/reference_type_propagation.cc | 2 |
7 files changed, 17 insertions, 15 deletions
diff --git a/compiler/debug/elf_debug_info_writer.h b/compiler/debug/elf_debug_info_writer.h index ae4cbd85ab..f2be4fb655 100644 --- a/compiler/debug/elf_debug_info_writer.h +++ b/compiler/debug/elf_debug_info_writer.h @@ -379,8 +379,11 @@ class ElfCompilationUnitWriter { } // Member variables. - for (uint32_t i = 0, count = type->NumInstanceFields(); i < count; ++i) { - ArtField* field = type->GetInstanceField(i); + for (uint32_t i = 0, count = type->NumFields(); i < count; ++i) { + ArtField* field = type->GetField(i); + if (field->IsStatic()) { + continue; + } info_.StartTag(DW_TAG_member); WriteName(field->GetName()); WriteLazyType(field->GetTypeDescriptor()); diff --git a/compiler/driver/dex_compilation_unit.cc b/compiler/driver/dex_compilation_unit.cc index ccebfa9c07..fc139aa000 100644 --- a/compiler/driver/dex_compilation_unit.cc +++ b/compiler/driver/dex_compilation_unit.cc @@ -67,9 +67,9 @@ bool DexCompilationUnit::RequiresConstructorBarrier() const { // Decoding class data can be slow, so iterate over fields of the compiling class if resolved. ScopedObjectAccess soa(Thread::Current()); ObjPtr<mirror::Class> compiling_class = GetCompilingClass().Get(); - for (size_t i = 0, size = compiling_class->NumInstanceFields(); i != size; ++i) { - ArtField* field = compiling_class->GetInstanceField(i); - if (field->IsFinal()) { + for (size_t i = 0, size = compiling_class->NumFields(); i != size; ++i) { + ArtField* field = compiling_class->GetField(i); + if (field->IsFinal() && !field->IsStatic()) { return true; } } diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc index 5281346644..201841a5b4 100644 --- a/compiler/optimizing/inliner.cc +++ b/compiler/optimizing/inliner.cc @@ -804,7 +804,7 @@ HInliner::InlineCacheType HInliner::GetInlineCacheAOT( HInstanceFieldGet* HInliner::BuildGetReceiverClass(ClassLinker* class_linker, HInstruction* receiver, uint32_t dex_pc) const { - ArtField* field = GetClassRoot<mirror::Object>(class_linker)->GetInstanceField(0); + ArtField* field = GetClassRoot<mirror::Object>(class_linker)->GetField(0); DCHECK_EQ(std::string(field->GetName()), "shadow$_klass_"); HInstanceFieldGet* result = new (graph_->GetAllocator()) HInstanceFieldGet( receiver, @@ -2452,8 +2452,7 @@ bool HInliner::ReturnTypeMoreSpecific(HInstruction* return_replacement, return true; } else if (return_replacement->IsInstanceFieldGet()) { HInstanceFieldGet* field_get = return_replacement->AsInstanceFieldGet(); - if (field_get->GetFieldInfo().GetField() == - GetClassRoot<mirror::Object>()->GetInstanceField(0)) { + if (field_get->GetFieldInfo().GetField() == GetClassRoot<mirror::Object>()->GetField(0)) { return true; } } diff --git a/compiler/optimizing/instruction_builder.cc b/compiler/optimizing/instruction_builder.cc index ba426b5694..c8086cff99 100644 --- a/compiler/optimizing/instruction_builder.cc +++ b/compiler/optimizing/instruction_builder.cc @@ -1634,7 +1634,7 @@ static bool HasTrivialClinit(ObjPtr<mirror::Class> klass, PointerSize pointer_si REQUIRES_SHARED(Locks::mutator_lock_) { // Check if the class has encoded fields that trigger bytecode execution. // (Encoded fields are just a different representation of <clinit>.) - if (klass->NumStaticFields() != 0u) { + if (klass->HasStaticFields()) { DCHECK(klass->GetClassDef() != nullptr); EncodedStaticFieldValueIterator it(klass->GetDexFile(), *klass->GetClassDef()); for (; it.HasNext(); it.Next()) { diff --git a/compiler/optimizing/instruction_simplifier.cc b/compiler/optimizing/instruction_simplifier.cc index 69a880c242..101808a193 100644 --- a/compiler/optimizing/instruction_simplifier.cc +++ b/compiler/optimizing/instruction_simplifier.cc @@ -1800,7 +1800,7 @@ static bool RecognizeAndSimplifyClassCheck(HCondition* condition) { { ScopedObjectAccess soa(Thread::Current()); - ArtField* field = GetClassRoot<mirror::Object>()->GetInstanceField(0); + ArtField* field = GetClassRoot<mirror::Object>()->GetField(0); DCHECK_EQ(std::string(field->GetName()), "shadow$_klass_"); if (field_get->GetFieldInfo().GetField() != field) { return false; diff --git a/compiler/optimizing/intrinsics.cc b/compiler/optimizing/intrinsics.cc index b87f6f3975..6b91cf515e 100644 --- a/compiler/optimizing/intrinsics.cc +++ b/compiler/optimizing/intrinsics.cc @@ -173,16 +173,16 @@ IntrinsicVisitor::ValueOfInfo IntrinsicVisitor::ComputeValueOfInfo( MemberOffset IntrinsicVisitor::GetReferenceDisableIntrinsicOffset() { ScopedObjectAccess soa(Thread::Current()); - // The "disableIntrinsic" is the first static field. - ArtField* field = GetClassRoot<mirror::Reference>()->GetStaticField(0); + // The "disableIntrinsic" is the first field. + ArtField* field = GetClassRoot<mirror::Reference>()->GetField(0); DCHECK_STREQ(field->GetName(), "disableIntrinsic"); return field->GetOffset(); } MemberOffset IntrinsicVisitor::GetReferenceSlowPathEnabledOffset() { ScopedObjectAccess soa(Thread::Current()); - // The "slowPathEnabled" is the second static field. - ArtField* field = GetClassRoot<mirror::Reference>()->GetStaticField(1); + // The "slowPathEnabled" is the sixth field. + ArtField* field = GetClassRoot<mirror::Reference>()->GetField(5); DCHECK_STREQ(field->GetName(), "slowPathEnabled"); return field->GetOffset(); } diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc index 1eef0ce6d5..8ff1b89f9e 100644 --- a/compiler/optimizing/reference_type_propagation.cc +++ b/compiler/optimizing/reference_type_propagation.cc @@ -278,7 +278,7 @@ static void BoundTypeForClassCheck(HInstruction* check) { { ScopedObjectAccess soa(Thread::Current()); - ArtField* field = GetClassRoot<mirror::Object>()->GetInstanceField(0); + ArtField* field = GetClassRoot<mirror::Object>()->GetField(0); DCHECK_EQ(std::string(field->GetName()), "shadow$_klass_"); if (field_get->GetFieldInfo().GetField() != field) { return; |