summaryrefslogtreecommitdiff
path: root/compiler/optimizing
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing')
-rw-r--r--compiler/optimizing/code_generator.cc21
-rw-r--r--compiler/optimizing/code_generator.h2
-rw-r--r--compiler/optimizing/code_generator_arm64.cc4
-rw-r--r--compiler/optimizing/code_generator_arm_vixl.cc4
-rw-r--r--compiler/optimizing/code_generator_riscv64.cc4
-rw-r--r--compiler/optimizing/code_generator_x86.cc4
-rw-r--r--compiler/optimizing/code_generator_x86_64.cc4
-rw-r--r--compiler/optimizing/dead_code_elimination.cc3
8 files changed, 2 insertions, 44 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc
index 79386defae..e84cfcbe80 100644
--- a/compiler/optimizing/code_generator.cc
+++ b/compiler/optimizing/code_generator.cc
@@ -690,7 +690,6 @@ void CodeGenerator::GenerateUnresolvedFieldAccess(
HInstruction* field_access,
DataType::Type field_type,
uint32_t field_index,
- [[maybe_unused]] uint32_t dex_pc,
const FieldAccessCallingConvention& calling_convention) {
LocationSummary* locations = field_access->GetLocations();
@@ -1168,26 +1167,6 @@ void CodeGenerator::RecordPcInfo(HInstruction* instruction,
// the regular case, we retrieve the dex_pc from the instruction's environment.
DCHECK_IMPLIES(native_debug_info, GetCompilerOptions().GetNativeDebuggable());
DCHECK_IMPLIES(!native_debug_info, instruction->HasEnvironment()) << *instruction;
- // The code generated for some type conversions
- // may call the runtime, thus normally requiring a subsequent
- // call to this method. However, the method verifier does not
- // produce PC information for certain instructions, which are
- // considered "atomic" (they cannot join a GC).
- // Therefore we do not currently record PC information for such
- // instructions. As this may change later, we added this special
- // case so that code generators may nevertheless call
- // CodeGenerator::RecordPcInfo without triggering an error in
- // CodeGenerator::BuildNativeGCMap ("Missing ref for dex pc 0x")
- // thereafter.
- if (instruction->IsTypeConversion()) {
- return;
- }
- if (instruction->IsRem()) {
- DataType::Type type = instruction->AsRem()->GetResultType();
- if ((type == DataType::Type::kFloat32) || (type == DataType::Type::kFloat64)) {
- return;
- }
- }
LocationSummary* locations = instruction->GetLocations();
uint32_t register_mask = locations->GetRegisterMask();
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h
index 741d3fb589..3919bb0cc1 100644
--- a/compiler/optimizing/code_generator.h
+++ b/compiler/optimizing/code_generator.h
@@ -641,12 +641,10 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> {
DataType::Type field_type,
const FieldAccessCallingConvention& calling_convention);
-// TODO(solanes): Remove dex_pc from this method
void GenerateUnresolvedFieldAccess(
HInstruction* field_access,
DataType::Type field_type,
uint32_t field_index,
- [[maybe_unused]] uint32_t dex_pc,
const FieldAccessCallingConvention& calling_convention);
static void CreateLoadClassRuntimeCallLocationSummary(HLoadClass* cls,
diff --git a/compiler/optimizing/code_generator_arm64.cc b/compiler/optimizing/code_generator_arm64.cc
index b6fe630f64..58447919f6 100644
--- a/compiler/optimizing/code_generator_arm64.cc
+++ b/compiler/optimizing/code_generator_arm64.cc
@@ -6656,7 +6656,6 @@ void InstructionCodeGeneratorARM64::VisitUnresolvedInstanceFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6673,7 +6672,6 @@ void InstructionCodeGeneratorARM64::VisitUnresolvedInstanceFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6690,7 +6688,6 @@ void InstructionCodeGeneratorARM64::VisitUnresolvedStaticFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6707,7 +6704,6 @@ void InstructionCodeGeneratorARM64::VisitUnresolvedStaticFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
diff --git a/compiler/optimizing/code_generator_arm_vixl.cc b/compiler/optimizing/code_generator_arm_vixl.cc
index 20e9d4e0ff..a7854ac886 100644
--- a/compiler/optimizing/code_generator_arm_vixl.cc
+++ b/compiler/optimizing/code_generator_arm_vixl.cc
@@ -6445,7 +6445,6 @@ void InstructionCodeGeneratorARMVIXL::VisitUnresolvedInstanceFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6462,7 +6461,6 @@ void InstructionCodeGeneratorARMVIXL::VisitUnresolvedInstanceFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6479,7 +6477,6 @@ void InstructionCodeGeneratorARMVIXL::VisitUnresolvedStaticFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6496,7 +6493,6 @@ void InstructionCodeGeneratorARMVIXL::VisitUnresolvedStaticFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
diff --git a/compiler/optimizing/code_generator_riscv64.cc b/compiler/optimizing/code_generator_riscv64.cc
index cd34b90f98..ba2e307af5 100644
--- a/compiler/optimizing/code_generator_riscv64.cc
+++ b/compiler/optimizing/code_generator_riscv64.cc
@@ -5085,7 +5085,6 @@ void InstructionCodeGeneratorRISCV64::VisitUnresolvedInstanceFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -5102,7 +5101,6 @@ void InstructionCodeGeneratorRISCV64::VisitUnresolvedInstanceFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -5119,7 +5117,6 @@ void InstructionCodeGeneratorRISCV64::VisitUnresolvedStaticFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -5136,7 +5133,6 @@ void InstructionCodeGeneratorRISCV64::VisitUnresolvedStaticFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
diff --git a/compiler/optimizing/code_generator_x86.cc b/compiler/optimizing/code_generator_x86.cc
index 58d38feb8d..ae31e9f198 100644
--- a/compiler/optimizing/code_generator_x86.cc
+++ b/compiler/optimizing/code_generator_x86.cc
@@ -6397,7 +6397,6 @@ void InstructionCodeGeneratorX86::VisitUnresolvedInstanceFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6414,7 +6413,6 @@ void InstructionCodeGeneratorX86::VisitUnresolvedInstanceFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6431,7 +6429,6 @@ void InstructionCodeGeneratorX86::VisitUnresolvedStaticFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -6448,7 +6445,6 @@ void InstructionCodeGeneratorX86::VisitUnresolvedStaticFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
diff --git a/compiler/optimizing/code_generator_x86_64.cc b/compiler/optimizing/code_generator_x86_64.cc
index 9133f87c7b..891bdd72e8 100644
--- a/compiler/optimizing/code_generator_x86_64.cc
+++ b/compiler/optimizing/code_generator_x86_64.cc
@@ -5709,7 +5709,6 @@ void InstructionCodeGeneratorX86_64::VisitUnresolvedInstanceFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -5726,7 +5725,6 @@ void InstructionCodeGeneratorX86_64::VisitUnresolvedInstanceFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -5743,7 +5741,6 @@ void InstructionCodeGeneratorX86_64::VisitUnresolvedStaticFieldGet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
@@ -5760,7 +5757,6 @@ void InstructionCodeGeneratorX86_64::VisitUnresolvedStaticFieldSet(
codegen_->GenerateUnresolvedFieldAccess(instruction,
instruction->GetFieldType(),
instruction->GetFieldIndex(),
- instruction->GetDexPc(),
calling_convention);
}
diff --git a/compiler/optimizing/dead_code_elimination.cc b/compiler/optimizing/dead_code_elimination.cc
index c5ec0b93b2..b8cd39e77f 100644
--- a/compiler/optimizing/dead_code_elimination.cc
+++ b/compiler/optimizing/dead_code_elimination.cc
@@ -488,7 +488,8 @@ void HDeadCodeElimination::MaybeAddPhi(HBasicBlock* block) {
if (block_cond->GetLeft() != dominator_cond->GetLeft() ||
block_cond->GetRight() != dominator_cond->GetRight() ||
- block_cond->GetOppositeCondition() != dominator_cond->GetCondition()) {
+ block_cond->GetOppositeCondition() != dominator_cond->GetCondition() ||
+ block_cond->GetBias() != dominator_cond->GetBias()) {
return;
}
}