summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* And should use the correct variable.Bill Wendling2010-02-261-1/+1
| | | | llvm-svn: 97193
* Got assertion check backwards.Bill Wendling2010-02-261-1/+1
| | | | llvm-svn: 97192
* Catch a corner case where adding the padding to the "TType base offset" fieldBill Wendling2010-02-251-2/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | will eliminate the need for padding in the "Call site table length". E.g., if we have this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0x7f ## @TType base offset .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length with padding of 1. We want to emit the padding like this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0xff ## @TType base offset .space 1,0 ## Padding .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length and not with padding on the "Call site table length" entry. llvm-svn: 97183
* Make comment more meaningful.Bill Wendling2010-02-251-1/+2
| | | | llvm-svn: 97169
* LLVM puts padding bytes in the __gcc_except_tab section after theBill Wendling2010-02-241-35/+37
| | | | | | | | | | GCC_except_table label but before the Lexception, which the FDE references. This causes problems as the FDE does not point to the start of an LSDA chunk. Use an unnormalized uleb128 for the call-site table length that includes the padding. llvm-svn: 97078
* Use ttype encoding consistentlyAnton Korobeynikov2010-02-151-1/+1
| | | | llvm-svn: 96290
* It turns out that we emitted completely wrong common EH frame since the ↵Anton Korobeynikov2010-02-151-7/+9
| | | | | | early beginning! The "z" CIE augmentation mark indicates that there is an extra word containing the size of augmentation section. However, even for frames w/o any augmentation data we emitted size uleb! (this is the case of "unwinding through C code"). Thus frame moves information was emitterd completely wrong. llvm-svn: 96287
* Preliminary patch to improve dwarf EH generation - Hooks to return ↵Anton Korobeynikov2010-02-151-84/+36
| | | | | | Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there llvm-svn: 96285
* Use .empty() instead of .size().Bill Wendling2010-02-111-2/+2
| | | | llvm-svn: 95871
* Use an index instead of pointers into the vector. If the vector resizes, thenBill Wendling2010-02-101-11/+12
| | | | | | the pointer values could be invalid. llvm-svn: 95813
* Improve comments a even more.Bill Wendling2010-02-101-3/+3
| | | | llvm-svn: 95740
* Improve comments a bit more.Bill Wendling2010-02-101-4/+4
| | | | llvm-svn: 95737
* Improve comments in the LSDA somewhat. They can be improved much more.Bill Wendling2010-02-091-10/+17
| | | | llvm-svn: 95707
* Update of 94055 to track the IR level call site information via an intrinsic.Jim Grosbach2010-01-281-1/+10
| | | | | | | This allows code gen and the exception table writer to cooperate to make sure landing pads are associated with the correct invoke locations. llvm-svn: 94726
* constify a bunch of dwarf stuff now that the registerinfo methodChris Lattner2010-01-261-1/+1
| | | | | | is constified. llvm-svn: 94613
* mcize visibility directives.Chris Lattner2010-01-231-2/+3
| | | | llvm-svn: 94295
* move the various directive enums out of the MCStreamer classChris Lattner2010-01-231-2/+2
| | | | | | into a new MCDirectives.h file. llvm-svn: 94294
* mcstreamerize .no_dead_strip and .reference for static ctors/dtors.Chris Lattner2010-01-231-5/+7
| | | | llvm-svn: 94290
* remove one form of EmitString, just use EmitBytes instead. We mustChris Lattner2010-01-231-2/+2
| | | | | | | be careful to add a \0 at the end though, because EmitString didn't do this. llvm-svn: 94277
* move "EOL" from asmprinter to dwarfprinter. It should eventuallyChris Lattner2010-01-221-17/+16
| | | | | | be completely eliminated, but today is not that day. llvm-svn: 94253
* move uleb printing from asmprinter to dwarfprinter, mcize,Chris Lattner2010-01-221-30/+13
| | | | | | cleanup and eliminate a bunch more uses of "EOL". llvm-svn: 94250
* move sleb printing out of asmprinter into dwarf printer, make clientsChris Lattner2010-01-221-8/+3
| | | | | | handle the comment better, MCize the non-.sleb case. llvm-svn: 94244
* add a new DwarfPrinter::EmitEncodingByte method which handlesChris Lattner2010-01-221-16/+7
| | | | | | | | | | | | | | pretty printing encoding comments and eliminates redundancy on the client side. We now get pretty dwarf like this again: .byte 255 ## @LPStart Encoding = omit .byte 0 ## @TType Encoding = absptr .byte 0x28 ## @TType base offset .byte 3 ## Call site Encoding = udata4 .byte 0x1a ## Call site table size ... llvm-svn: 94239
* rename the dwarf class to DwarfPrinter. This matches the filenameChris Lattner2010-01-221-4/+4
| | | | | | and much more accurately describes what it is all about. llvm-svn: 94233
* inline away the trivial AsmPrinter::EOL() method.Chris Lattner2010-01-221-8/+5
| | | | llvm-svn: 94230
* back this out for now. Growing Function is not good.Jim Grosbach2010-01-211-10/+1
| | | | llvm-svn: 94097
* Make sure that landing pad entries in the EH call site table are in the properJim Grosbach2010-01-211-1/+10
| | | | | | order for SjLj style exception handling. llvm-svn: 94055
* eliminate some uses of AsmPrinter::EmitIntXXXChris Lattner2010-01-201-9/+6
| | | | llvm-svn: 93996
* - Add a comment to the callback indicating that it's *extremely* not a goodBill Wendling2010-01-181-1/+1
| | | | | | | | idea, but unfortunately necessary. - Default to using 4-bytes for the LSDA pointer encoding to agree with the encoded value in the CIE. llvm-svn: 93753
* remove the MAI argument to MCExpr::print and switch overthing to use << when ↵Chris Lattner2010-01-181-2/+1
| | | | | | printing them. llvm-svn: 93699
* now that MCSymbol::print doesn't use it's MAI argument, we can Chris Lattner2010-01-171-28/+12
| | | | | | | remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. llvm-svn: 93695
* move the mangler into libtarget from vmcore.Chris Lattner2010-01-161-1/+1
| | | | llvm-svn: 93664
* rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase,Chris Lattner2010-01-161-17/+35
| | | | | | | | and add an explicit ForcePrivate argument. Switch FunctionEHFrameInfo to be MCSymbol based instead of string based. llvm-svn: 93646
* Retrying r91337:Bill Wendling2010-01-161-8/+19
| | | | | | | | The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine, but we need it to actually be 4-bytes in the FDE for some platforms. Allow individual platforms to decide for themselves. llvm-svn: 93616
* move these out of their own timer groups into the 'uncategorized' groups.Chris Lattner2009-12-281-7/+1
| | | | llvm-svn: 92206
* Temporarily revert 91337. It's causing testcase failures.Bill Wendling2009-12-171-6/+7
| | | | | | | | $ svn merge -c -91337 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91337 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp llvm-svn: 91618
* The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine,Bill Wendling2009-12-141-7/+6
| | | | | | but we need it to actually be 4-bytes in the FDE. llvm-svn: 91337
* Reverting the EH table patches.Bill Wendling2009-11-191-29/+6
| | | | | | | | | | | | | $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89279 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/Target/TargetLoweringObjectFile.cpp $ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89270 into '.': G lib/CodeGen/AsmPrinter/DwarfException.cpp G lib/Target/TargetLoweringObjectFile.cpp llvm-svn: 89379
* The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EHBill Wendling2009-11-191-4/+5
| | | | | | exception table than DataRel. llvm-svn: 89279
* Attempt #2:Bill Wendling2009-11-181-6/+28
| | | | | | Place the EH table in the __TEXT section on MachO. It saves space. llvm-svn: 89270
* Refactor the code that creates the "dot-label" difference. This may be used inBill Wendling2009-11-171-18/+23
| | | | | | more than one place. No intended functionality change. llvm-svn: 89024
* Simplify code a bitBill Wendling2009-11-121-4/+3
| | | | llvm-svn: 87040
* Refactor code that checks if it's a call to a "nounwind" function.Bill Wendling2009-11-121-31/+36
| | | | llvm-svn: 87036
* If there's more than one function operand to a call instruction, be conservativeBill Wendling2009-11-121-1/+12
| | | | | | | | | and don't assume that the call doesn't throw. It would be nice if there were a way to determine which is the callee and which is a parameter. In practice, the architecture we care about normally only have one operand for a call instruction (x86 and arm). llvm-svn: 87023
* Don't mark a call as potentially throwing if the function it's calling has theBill Wendling2009-11-111-1/+21
| | | | | | "nounwind" attribute. llvm-svn: 86897
* Make sure that the exception handling data has the same visibility as theBill Wendling2009-11-111-2/+7
| | | | | | function it's generated for. llvm-svn: 86779
* Fix DenseMap iterator constness.Jeffrey Yasskin2009-11-101-1/+1
| | | | | | | | | | | | | | | | | | | This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! llvm-svn: 86636
* Tidying up some code and comments. No functionality change.Bill Wendling2009-10-221-24/+6
| | | | llvm-svn: 84894
* --- Reverse-merging r82282 into '.':Bill Wendling2009-09-201-47/+22
| | | | | | | | | | | | | U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/CodeGen/AsmPrinter/DwarfException.h --- Reverse-merging r82274 into '.': U lib/Target/TargetLoweringObjectFile.cpp G lib/CodeGen/AsmPrinter/DwarfException.cpp These revisions were breaking everything. llvm-svn: 82396
* Here's fun! It turns out that these filter functions can be internal. If they'reBill Wendling2009-09-201-1/+2
| | | | | | | | internal, they shouldn't use the indirect pointer stuff. In the case of throw_rethrow_test, it was marked as 'internal' and calculated its own offset to its contents. llvm-svn: 82354
OpenPOWER on IntegriCloud