summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
Commit message (Collapse)AuthorAgeFilesLines
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* Use assembler expressions to lay out the EH LSDA.Rafael Espindola2018-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rely on the assembler to finalize the layout of the DWARF/Itanium exception-handling LSDA. Rather than calculate the exact size of each thing in the LSDA, use assembler directives: To emit the offset to the TTBase label: .uleb128 .Lttbase0-.Lttbaseref0 .Lttbaseref0: To emit the size of the call site table: .uleb128 .Lcst_end0-.Lcst_begin0 .Lcst_begin0: ... call site table entries ... .Lcst_end0: To align the type info table: ... action table ... .balign 4 .long _ZTIi .long _ZTIl .Lttbase0: Using assembler directives simplifies the compiler and allows switching the encoding of offsets in the call site table from udata4 to uleb128 for a large code size savings. (This commit does not change the encoding.) The combination of the uleb128 followed by a balign creates an unfortunate dependency cycle that the assembler must sometimes resolve either by padding an LEB or by inserting zero padding before the type table. See PR35809 or GNU as bug 4029. Patch by Ryan Prichard! llvm-svn: 324749
* Emit .cfi_sections before the first .cfi_startprocJoerg Sonnenberger2017-01-021-3/+3
| | | | | | | | | | | GNU as rejects input where .cfi_sections is used after .cfi_startproc, if the new section differs from the old. Adjust our output to always emit .cfi_sections before the first .cfi_startproc to minimize necessary code. Differential Revision: https://reviews.llvm.org/D28011 llvm-svn: 290817
* Extract the method to begin and end a fragment in AsmPrinterHandler in their ↵Amaury Sechet2016-02-261-0/+8
| | | | | | | | | | | | | | own method. NFC Summary: This is extracted from D17555 Reviewers: davidxl, reames, sanjoy, MatzeB, pete Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17580 llvm-svn: 262058
* [AsmPrinter] Hide implementation detailsBenjamin Kramer2015-07-011-3/+3
| | | | | | NFC. llvm-svn: 241169
* Use 'override/final' instead of 'virtual' for overridden methodsAlexander Kornienko2015-04-111-2/+2
| | | | | | | | | | | | | | The patch is generated using clang-tidy misc-use-override check. This command was used: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py \ -checks='-*,misc-use-override' -header-filter='llvm|clang' \ -j=32 -fix -format http://reviews.llvm.org/D8925 llvm-svn: 234679
* Print jump tables before exception tables.Rafael Espindola2015-03-091-5/+12
| | | | | | | | | | | In the case where just tables are part of the function section, this produces more readable assembly by avoiding switching to the eh section and back to .text. This would also break with non unique section names, as trying to switch to a unique section actually creates a new one. llvm-svn: 231677
* Don't repeat name in comment. NFC.Rafael Espindola2015-03-091-18/+12
| | | | llvm-svn: 231676
* CodeGen: split out the Win64Exception emitterSaleem Abdulrasool2014-09-011-33/+0
| | | | | | | Move the Windows unwind information emitter into a separate header. This is not related to DWARF based emission. NFC. llvm-svn: 216894
* Canonicalize header guards into a common format.Benjamin Kramer2014-08-131-2/+2
| | | | | | | | | | Add header guards to files that were missing guards. Remove #endif comments as they don't seem common in LLVM (we can easily add them back if we decide they're useful) Changes made by clang-tidy with minor tweaks. llvm-svn: 215558
* CodeGen: refactor DwarfExceptionSaleem Abdulrasool2014-06-111-129/+5
| | | | | | | | | | | | DwarfException served as a base class for exception handling directive emission. However, this is also used by other exception models (e.g. Win64EH). Rename this class to EHStreamer and split it out of DwarfException.h. NFC. Use the opportunity to fix up some of the documentation comments to match current LLVM style. Also rename some functions to conform better with current LLVM coding style. llvm-svn: 210622
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-081-16/+16
| | | | | | class. llvm-svn: 203339
* [C++11] Convert sort predicates into lambdas.Benjamin Kramer2014-03-071-3/+0
| | | | | | No functionality change. llvm-svn: 203288
* Generate the DWARF stack frame decode operations in the function prologue ↵Artyom Skrobov2014-02-141-0/+4
| | | | | | | | for ARM/Thumb functions. Patch by Keith Walker! llvm-svn: 201423
* Reland 196270 "Generalize debug info / EH emission in AsmPrinter"Timur Iskhodzhanov2013-12-031-5/+11
| | | | | | Addressing the existense AMDGPUAsmPrinter and other subclasses of AsmPrinter llvm-svn: 196288
* Revert r196270, "Generalize debug info / EH emission in AsmPrinter"NAKAMURA Takumi2013-12-031-7/+1
| | | | | | It broke CodeGen/R600 tests with +Asserts. llvm-svn: 196272
* Generalize debug info / EH emission in AsmPrinterTimur Iskhodzhanov2013-12-031-1/+7
| | | | llvm-svn: 196270
* Rename DwarfException methods so the new names are consistent with ↵Timur Iskhodzhanov2013-11-261-24/+24
| | | | | | DwarfDebug and the style guide llvm-svn: 195763
* Add a MCTargetStreamer interface.Rafael Espindola2013-10-081-0/+3
| | | | | | | | | | | | | This patch fixes an old FIXME by creating a MCTargetStreamer interface and moving the target specific functions for ARM, Mips and PPC to it. The ARM streamer is still declared in a common place because it is used from lib/CodeGen/ARMException.cpp, but the Mips and PPC are completely hidden in the corresponding Target directories. I will send an email to llvmdev with instructions on how to use this. llvm-svn: 192181
* Revert "Give internal classes hidden visibility."Benjamin Kramer2013-09-111-4/+4
| | | | | | | It works with clang, but GCC has different rules so we can't make all of those hidden. This reverts commit r190534. llvm-svn: 190536
* Give internal classes hidden visibility.Benjamin Kramer2013-09-111-4/+4
| | | | | | Worth 100k on a linux/x86_64 Release+Asserts clang. llvm-svn: 190534
* Remove the MachineMove class.Rafael Espindola2013-05-131-1/+0
| | | | | | | | | | | | It was just a less powerful and more confusing version of MCCFIInstruction. A side effect is that, since MCCFIInstruction uses dwarf register numbers, calls to getDwarfRegNum are pushed out, which should allow further simplifications. I left the MachineModuleInfo::addFrameMove interface unchanged since this patch was already fairly big. llvm-svn: 181680
* Factor out type info emission into separate routine.Anton Korobeynikov2012-11-191-0/+3
| | | | | | | It turned out that ARM wants different layout of type infos. This is yet another patch in attempt to fix PR7187 llvm-svn: 168325
* Reorder the comments of EmitExceptionTable.Logan Chien2012-09-051-20/+20
| | | | llvm-svn: 163194
* Remove unused private member variables uncovered by the recent changes to ↵Benjamin Kramer2012-07-201-11/+0
| | | | | | clang's -Wunused-private-field. llvm-svn: 160583
* Stub out support for Win64-style exceptions. Note that this is merely usingCharles Davis2011-05-271-0/+32
| | | | | | | the Win64 EH mechanism to implement GCC-style exceptions. LLVM supports hardly anything else at this point! llvm-svn: 132234
* Produce a __debug_frame section on darwin ARM when appropriate.Rafael Espindola2011-05-101-20/+0
| | | | llvm-svn: 131151
* Use .cfi_sections to put the unwind info in .debug_frame when possible. WithRafael Espindola2011-05-101-0/+3
| | | | | | | | | this clang will use .debug_frame in, for example, clang -g -c -m32 test.c This matches gcc's behaviour. It looks like .debug_frame is a bit bigger than .eh_frame, but has the big advantage of not being allocated. llvm-svn: 131140
* Remove DwarfTableException.Rafael Espindola2011-05-051-67/+0
| | | | llvm-svn: 130964
* Implement a really simple DwarfSjLjException.Rafael Espindola2011-05-051-0/+19
| | | | llvm-svn: 130947
* Change DwarfCFIException's member variables to track what it actuallyRafael Espindola2011-04-291-6/+7
| | | | | | emmits: .cfi_personality, .cfi_lsda and the moves. llvm-svn: 130503
* Some first rudimentary support for ARM EHABI: print exception table in "text ↵Anton Korobeynikov2011-03-051-0/+32
| | | | | | mode". llvm-svn: 127099
* Add CFI directives-based frame information emission. Not hooked yet.Anton Korobeynikov2011-01-141-0/+31
| | | | llvm-svn: 123474
* Split stuff as a preparation for CFI directives-based frame information emissionAnton Korobeynikov2011-01-141-52/+72
| | | | llvm-svn: 123473
* Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe whatBill Wendling2010-05-141-2/+2
| | | | | | | | | the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. llvm-svn: 103802
* Use the "NamedGroupTimer" class to categorize DWARF emission better.Bill Wendling2010-04-071-4/+0
| | | | llvm-svn: 100616
* privatize more stuff, eliminate vtables.Chris Lattner2010-04-051-1/+1
| | | | llvm-svn: 100410
* reprivatize now that DwarfWriter is gone.Chris Lattner2010-04-051-2/+1
| | | | llvm-svn: 100409
* prune #includes, MMI can never be nullChris Lattner2010-04-051-3/+8
| | | | llvm-svn: 100408
* make DwarfException not inherit from DwarfPrinter.Chris Lattner2010-04-051-10/+8
| | | | llvm-svn: 100374
* remove the raw_ostream from various dwarf printing things.Chris Lattner2010-04-041-3/+3
| | | | | | | The only thing left is LEB printing, which uses EmitRawText for now. llvm-svn: 100325
* change EH related stuff (other than EH_LABEL) to use MCSymbolChris Lattner2010-03-141-11/+4
| | | | | | | | | | | | | | | | instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. llvm-svn: 98459
* remove dead code.Chris Lattner2010-03-121-5/+0
| | | | llvm-svn: 98365
* Preliminary patch to improve dwarf EH generation - Hooks to return ↵Anton Korobeynikov2010-02-151-3/+0
| | | | | | 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 an index instead of pointers into the vector. If the vector resizes, thenBill Wendling2010-02-101-1/+1
| | | | | | the pointer values could be invalid. llvm-svn: 95813
* Fix "the the" and similar typos.Dan Gohman2010-02-101-1/+1
| | | | llvm-svn: 95781
* constify a bunch of dwarf stuff now that the registerinfo methodChris Lattner2010-01-261-1/+1
| | | | | | is constified. llvm-svn: 94613
* mcstreamerize .no_dead_strip and .reference for static ctors/dtors.Chris Lattner2010-01-231-2/+2
| | | | llvm-svn: 94290
* rename the dwarf class to DwarfPrinter. This matches the filenameChris Lattner2010-01-221-1/+1
| | | | | | and much more accurately describes what it is all about. llvm-svn: 94233
* rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase,Chris Lattner2010-01-161-4/+4
| | | | | | | | and add an explicit ForcePrivate argument. Switch FunctionEHFrameInfo to be MCSymbol based instead of string based. llvm-svn: 93646
OpenPOWER on IntegriCloud