mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 05:24:01 +00:00
Move the compact encoding from the target-specific library to the code-gen
library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135443 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -111,6 +111,10 @@ class MachineModuleInfo : public ImmutablePass {
|
|||||||
// frame maps by debug and exception handling consumers.
|
// frame maps by debug and exception handling consumers.
|
||||||
std::vector<MachineMove> FrameMoves;
|
std::vector<MachineMove> FrameMoves;
|
||||||
|
|
||||||
|
// CompactEncoding - If the target supports it, this is the compact unwind
|
||||||
|
// encoding. It replaces a function's CIE and FDE.
|
||||||
|
uint32_t CompactEncoding;
|
||||||
|
|
||||||
// LandingPads - List of LandingPadInfo describing the landing pad information
|
// LandingPads - List of LandingPadInfo describing the landing pad information
|
||||||
// in the current function.
|
// in the current function.
|
||||||
std::vector<LandingPadInfo> LandingPads;
|
std::vector<LandingPadInfo> LandingPads;
|
||||||
@ -230,6 +234,11 @@ public:
|
|||||||
/// handling comsumers.
|
/// handling comsumers.
|
||||||
std::vector<MachineMove> &getFrameMoves() { return FrameMoves; }
|
std::vector<MachineMove> &getFrameMoves() { return FrameMoves; }
|
||||||
|
|
||||||
|
/// getCompactEncoding - Returns the compact unwind encoding for a function if
|
||||||
|
/// the target supports the encoding. This encoding replaces a function's CIE
|
||||||
|
/// and FDE.
|
||||||
|
uint32_t getCompactEncoding() const { return CompactEncoding; }
|
||||||
|
|
||||||
/// getAddrLabelSymbol - Return the symbol to be used for the specified basic
|
/// getAddrLabelSymbol - Return the symbol to be used for the specified basic
|
||||||
/// block when its address is taken. This cannot be its normal LBB label
|
/// block when its address is taken. This cannot be its normal LBB label
|
||||||
/// because the block may be accessed outside its containing function.
|
/// because the block may be accessed outside its containing function.
|
||||||
|
@ -257,9 +257,9 @@ MachineModuleInfo::MachineModuleInfo(const MCAsmInfo &MAI,
|
|||||||
const MCRegisterInfo &MRI,
|
const MCRegisterInfo &MRI,
|
||||||
const TargetAsmInfo *TAI)
|
const TargetAsmInfo *TAI)
|
||||||
: ImmutablePass(ID), Context(MAI, MRI, TAI),
|
: ImmutablePass(ID), Context(MAI, MRI, TAI),
|
||||||
ObjFileMMI(0),
|
ObjFileMMI(0), CompactEncoding(0), CurCallSite(0), CallsEHReturn(0),
|
||||||
CurCallSite(0), CallsEHReturn(0), CallsUnwindInit(0), DbgInfoAvailable(false),
|
CallsUnwindInit(0), DbgInfoAvailable(false),
|
||||||
CallsExternalVAFunctionWithFloatingPointArguments(false) {
|
CallsExternalVAFunctionWithFloatingPointArguments(false) {
|
||||||
initializeMachineModuleInfoPass(*PassRegistry::getPassRegistry());
|
initializeMachineModuleInfoPass(*PassRegistry::getPassRegistry());
|
||||||
// Always emit some info, by default "no personality" info.
|
// Always emit some info, by default "no personality" info.
|
||||||
Personalities.push_back(NULL);
|
Personalities.push_back(NULL);
|
||||||
@ -312,6 +312,7 @@ void MachineModuleInfo::EndFunction() {
|
|||||||
FilterEnds.clear();
|
FilterEnds.clear();
|
||||||
CallsEHReturn = 0;
|
CallsEHReturn = 0;
|
||||||
CallsUnwindInit = 0;
|
CallsUnwindInit = 0;
|
||||||
|
CompactEncoding = 0;
|
||||||
VariableDbgInfo.clear();
|
VariableDbgInfo.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user