summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/debug/elf_debug_info_writer.h7
-rw-r--r--compiler/driver/dex_compilation_unit.cc6
-rw-r--r--compiler/optimizing/inliner.cc5
-rw-r--r--compiler/optimizing/instruction_builder.cc2
-rw-r--r--compiler/optimizing/instruction_simplifier.cc2
-rw-r--r--compiler/optimizing/intrinsics.cc8
-rw-r--r--compiler/optimizing/reference_type_propagation.cc2
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;