summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineModuleInfo.h
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-07-18 23:38:40 +0000
committerBill Wendling <isanbard@gmail.com>2011-07-18 23:38:40 +0000
commita67dcea0721c02ef543618f0d3b5014ffb3efc8f (patch)
treec65ed747e7f7e6c4a00004e276f40ad1a65261c9 /include/llvm/CodeGen/MachineModuleInfo.h
parent565a0366974d82c3efe8a31e0ecc0609c67cad3e (diff)
downloadllvm-a67dcea0721c02ef543618f0d3b5014ffb3efc8f.tar.gz
llvm-a67dcea0721c02ef543618f0d3b5014ffb3efc8f.tar.bz2
llvm-a67dcea0721c02ef543618f0d3b5014ffb3efc8f.tar.xz
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
Diffstat (limited to 'include/llvm/CodeGen/MachineModuleInfo.h')
-rw-r--r--include/llvm/CodeGen/MachineModuleInfo.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h
index 33d5ffd9c3..96f8259916 100644
--- a/include/llvm/CodeGen/MachineModuleInfo.h
+++ b/include/llvm/CodeGen/MachineModuleInfo.h
@@ -111,6 +111,10 @@ class MachineModuleInfo : public ImmutablePass {
// frame maps by debug and exception handling consumers.
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
// in the current function.
std::vector<LandingPadInfo> LandingPads;
@@ -230,6 +234,11 @@ public:
/// handling comsumers.
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
/// block when its address is taken. This cannot be its normal LBB label
/// because the block may be accessed outside its containing function.