-
Notifications
You must be signed in to change notification settings - Fork 14.4k
[NFC] Make unwind table internal data structures more accessible #145804
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NFC] Make unwind table internal data structures more accessible #145804
Conversation
@llvm/pr-subscribers-debuginfo Author: AmirHossein PashaeeHir (amsen20) ChangesAll these changes are being used in PR#145633
Full diff: https://github.com/llvm/llvm-project/pull/145804.diff 2 Files Affected:
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFCFIProgram.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFCFIProgram.h
index 1d89ac3578c10..79a2be7ef2584 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFCFIProgram.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFCFIProgram.h
@@ -112,12 +112,6 @@ class CFIProgram {
/// above. This is indexed by opcode.
LLVM_ABI static ArrayRef<OperandType[MaxOperands]> getOperandTypes();
-private:
- std::vector<Instruction> Instructions;
- const uint64_t CodeAlignmentFactor;
- const int64_t DataAlignmentFactor;
- Triple::ArchType Arch;
-
/// Convenience method to add a new instruction with the given opcode.
void addInstruction(uint8_t Opcode) {
Instructions.push_back(Instruction(Opcode));
@@ -144,6 +138,12 @@ class CFIProgram {
Instructions.back().Ops.push_back(Operand2);
Instructions.back().Ops.push_back(Operand3);
}
+
+private:
+ std::vector<Instruction> Instructions;
+ const uint64_t CodeAlignmentFactor;
+ const int64_t DataAlignmentFactor;
+ Triple::ArchType Arch;
};
} // end namespace dwarf
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
index 3b367009a379d..89d12437a7d31 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
@@ -138,6 +138,8 @@ class UnwindLocation {
return *AddrSpace;
}
int32_t getConstant() const { return Offset; }
+ bool getDereference() const { return Dereference; }
+
/// Some opcodes will modify the CFA location's register only, so we need
/// to be able to modify the CFA register when evaluating DWARF Call Frame
/// Information opcodes.
|
This also has a collusion with this NFC. The first one that lands, I will update the other one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but be sure to get approval from code owners before landing.
…m#145804) All these changes are being used in [PR#145633](llvm#145633) `CFIProgram`: - `addInstruction` methods already exists, but more convenient ones are private, this PR makes them public `UnwindLocation`: - Added a field accessor method for `Dereference` like other field access methods.
All these changes are being used in PR#145633
CFIProgram
:addInstruction
methods already exists, but more convenient ones are private, this PR makes them publicUnwindLocation
:Dereference
like other field access methods.