summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator.h
diff options
context:
space:
mode:
author Android Build Coastguard Worker <android-build-coastguard-worker@google.com> 2025-01-28 16:05:28 -0800
committer Android Build Coastguard Worker <android-build-coastguard-worker@google.com> 2025-01-28 16:05:28 -0800
commit41fdebdb730ef983437fb2bef18597f5acf162d5 (patch)
tree5655aac5cd45c74c8ac95b8fc2b8c3e302b4fcb7 /compiler/optimizing/code_generator.h
parent2c17c24f7c405def4c575a80998c88c293b71b81 (diff)
parent9638f6acdcb111f105fc08efc320029e2d1dc982 (diff)
Snap for 12979963 from 9638f6acdcb111f105fc08efc320029e2d1dc982 to 25Q2-release
Change-Id: I57148b7105664c03ce1db10330168ad090be3465
Diffstat (limited to 'compiler/optimizing/code_generator.h')
-rw-r--r--compiler/optimizing/code_generator.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h
index 950bae5c8f..741d3fb589 100644
--- a/compiler/optimizing/code_generator.h
+++ b/compiler/optimizing/code_generator.h
@@ -339,12 +339,9 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> {
return GetFrameSize() - FrameEntrySpillSize() - kShouldDeoptimizeFlagSize;
}
- // Record native to dex mapping for a suspend point. Required by runtime.
- void RecordPcInfo(HInstruction* instruction,
- uint32_t dex_pc,
- uint32_t native_pc,
- SlowPathCode* slow_path = nullptr,
- bool native_debug_info = false);
+ // For stack overflow checks and native-debug-info entries without dex register
+ // mapping i.e. start of basic block or at frame entry.
+ void RecordPcInfoForFrameOrBlockEntry(uint32_t dex_pc = 0);
// Record native to dex mapping for a suspend point.
// The native_pc is used from Assembler::CodePosition.
@@ -352,7 +349,14 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> {
// Note: As Assembler::CodePosition is target dependent, it does not guarantee the exact native_pc
// for the instruction. If the exact native_pc is required it must be provided explicitly.
void RecordPcInfo(HInstruction* instruction,
+ SlowPathCode* slow_path = nullptr,
+ bool native_debug_info = false);
+
+ // Record native to dex mapping for a suspend point. Required by runtime.
+ // Do not use directly. Use the method above.
+ void RecordPcInfo(HInstruction* instruction,
uint32_t dex_pc,
+ uint32_t native_pc,
SlowPathCode* slow_path = nullptr,
bool native_debug_info = false);
@@ -363,6 +367,7 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> {
//
// ARM specific behaviour: The recorded native PC might be a branch over pools to instructions
// corresponding the dex PC.
+ void MaybeRecordNativeDebugInfoForBlockEntry(uint32_t dex_pc);
void MaybeRecordNativeDebugInfo(HInstruction* instruction,
uint32_t dex_pc,
SlowPathCode* slow_path = nullptr);
@@ -636,11 +641,12 @@ 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,
- uint32_t dex_pc,
+ [[maybe_unused]] uint32_t dex_pc,
const FieldAccessCallingConvention& calling_convention);
static void CreateLoadClassRuntimeCallLocationSummary(HLoadClass* cls,
@@ -674,7 +680,6 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> {
virtual void InvokeRuntime(QuickEntrypointEnum entrypoint,
HInstruction* instruction,
- uint32_t dex_pc,
SlowPathCode* slow_path = nullptr) = 0;
// Check if the desired_string_load_kind is supported. If it is, return it,