aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/AsmPrinter/DwarfException.h
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-09-09 23:56:55 +0000
committerBill Wendling <isanbard@gmail.com>2009-09-09 23:56:55 +0000
commit52783c63a13d384582997684384553e6545852d3 (patch)
tree7276f9c096759f1643c7cf31e52b17323cc65d5f /lib/CodeGen/AsmPrinter/DwarfException.h
parent10bf734e6e0b5aba79dc199d611dcdec54a1e48e (diff)
downloadexternal_llvm-52783c63a13d384582997684384553e6545852d3.zip
external_llvm-52783c63a13d384582997684384553e6545852d3.tar.gz
external_llvm-52783c63a13d384582997684384553e6545852d3.tar.bz2
Believe it or not, this is a simplification. :-)
Basically, this patch is working towards removing the hard-coded values that are output for the CIE. In particular, the CIE augmentation and the CIE augmentation size. Both of these should be calculated. In the process, I was able to make a bunch of code simpler. The encodings for the personality, LSDA, and FDE in the CIE are still not correct. They should be generated either from target-specific callbacks (blech!) or grokked from first-principles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81404 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfException.h')
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfException.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfException.h b/lib/CodeGen/AsmPrinter/DwarfException.h
index b1820b7..70c74c8 100644
--- a/lib/CodeGen/AsmPrinter/DwarfException.h
+++ b/lib/CodeGen/AsmPrinter/DwarfException.h
@@ -51,6 +51,11 @@ class VISIBILITY_HIDDEN DwarfException : public Dwarf {
std::vector<FunctionEHFrameInfo> EHFrames;
+ /// UsesLSDA - Indicates whether an FDE that uses the CIE at the given index
+ /// uses an LSDA. If so, then we need to encode that information in the CIE's
+ /// augmentation.
+ DenseMap<unsigned, bool> UsesLSDA;
+
/// shouldEmitTable - Per-function flag to indicate if EH tables should
/// be emitted.
bool shouldEmitTable;
@@ -70,6 +75,8 @@ class VISIBILITY_HIDDEN DwarfException : public Dwarf {
/// ExceptionTimer - Timer for the Dwarf exception writer.
Timer *ExceptionTimer;
+ unsigned SizeOfEncodedValue(unsigned Encoding);
+
/// EmitCIE - Emit a Common Information Entry (CIE). This holds information
/// that is shared among many Frame Description Entries. There is at least
/// one CIE in every non-empty .debug_frame section.