diff options
author | Bill Wendling <isanbard@gmail.com> | 2009-09-09 23:56:55 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2009-09-09 23:56:55 +0000 |
commit | 52783c63a13d384582997684384553e6545852d3 (patch) | |
tree | 7276f9c096759f1643c7cf31e52b17323cc65d5f /lib/CodeGen/AsmPrinter/DwarfException.h | |
parent | 10bf734e6e0b5aba79dc199d611dcdec54a1e48e (diff) |
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.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfException.h b/lib/CodeGen/AsmPrinter/DwarfException.h index b1820b727a..70c74c8f1d 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. |