summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDwarf.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Give each MCCFIInstruction its own opcode.Rafael Espindola2012-11-241-40/+65
| | | | | | | This untangles the switch cases of the old Move and RelMove opcodes a bit and makes it clear how to add new instructions. llvm-svn: 168534
* Refactor how MCCFIInstructions are created.Rafael Espindola2012-11-241-2/+15
| | | | | | | | | | Give MCCFIInstruction a single, private constructor and add helper static methods that create each type of cfi instruction. This is is preparation for changing its representation. The representation with a pair MachineLocations older than MC and has been abused quiet a bit to support more cfi instructions. llvm-svn: 168532
* Implement .cfi_undefined. Based on a patch from PaX team, updated byRafael Espindola2012-11-231-0/+10
| | | | | | Roman Divacky. I just added the testcase. llvm-svn: 168520
* Emit relocations from .debug_aranges to .debug_info for asm filesAlexey Samsonov2012-11-141-9/+19
| | | | llvm-svn: 167926
* Release build: guard dump functions withManman Ren2012-09-121-1/+1
| | | | | | | | "#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)" No functional change. Update r163344. llvm-svn: 163679
* Release build: guard dump functions with "ifndef NDEBUG"Manman Ren2012-09-061-0/+2
| | | | | | No functional change. llvm-svn: 163344
* When emitting the PC range in an FDE, use the same data encoding for both endsNick Lewycky2012-08-121-9/+6
| | | | | | of the range. Fixes PR13581! llvm-svn: 161739
* Move [SU]LEB128 encoding to a utility header.Jim Grosbach2012-08-081-3/+4
| | | | | | | These functions are very generic. There's no reason for them to be tied to MCObjectWriter. llvm-svn: 161545
* Fix a typo (the the => the)Sylvestre Ledru2012-07-231-1/+1
| | | | llvm-svn: 160621
* Fix a FIXME: DwarfRequiresRelocationForSectionOffset is the same asRafael Espindola2012-06-221-2/+2
| | | | | | DwarfUsesRelocationsAcrossSections. llvm-svn: 158992
* Tidy up. Trailing whitespace.Jim Grosbach2012-05-111-6/+6
| | | | llvm-svn: 156602
* Compute hashes directly with hash_combine instead of taking a detour through ↵Benjamin Kramer2012-04-111-7/+5
| | | | | | FoldingSetNodeID. llvm-svn: 154495
* On ELF, create relocations to the abbreviation and line sections when producingRafael Espindola2012-02-281-6/+27
| | | | | | | | | | debug info for assembly files. We were already doing the right thing when producing debug info for C/C++. ELF linkers don't know dwarf, so they depend on these relocations to produce valid dwarf output. llvm-svn: 151655
* Grammar-o.Eric Christopher2012-02-251-1/+1
| | | | llvm-svn: 151418
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-071-2/+1
| | | | llvm-svn: 149967
* Add support for .cfi_signal_frame. Fixes pr11762.Rafael Espindola2012-01-231-7/+15
| | | | llvm-svn: 148733
* Add missing breaks to switch.Benjamin Kramer2012-01-201-13/+25
| | | | | | Found by the clang static analyzer. llvm-svn: 148543
* This is the matching change for the data structure name changes for theKevin Enderby2012-01-101-18/+18
| | | | | | | functional change in r147860 to use DW_TAG_label's instead TAG_subprogram's. This only changes names and updates comments. No functional change. llvm-svn: 147877
* Various crash reporting tools have a problem with the dwarf generated forKevin Enderby2012-01-101-17/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assembly source when it generates the TAG_subprogram dwarf debug info for the labels that have nothing between them as in this bit of assembly source: % cat ZeroLength.s _func1: _func2: nop One solution would be to not emit the subsequent labels with the same address and use the next label with a different address or the end of the section for the AT_high_pc value of the TAG_subprogram. Turns out in llvm-mc it is not possible in all cases to determine of two symbols have the same value at the point we put out the TAG_subprogram dwarf debug info. So we will have llvm-mc instead of putting out TAG_subprogram's put out DW_TAG_label's. And the DW_TAG_label does not have a AT_high_pc value which avoids the problem. This commit is only the functional change to make the diffs clear as to what is really being changed. The next commit will be to clean up the names of such things like MCGenDwarfSubprogramEntry to something like MCGenDwarfLabelEntry. rdar://10666925 llvm-svn: 147860
* Implement cfi_restore. Patch by Brian Anderson!Rafael Espindola2011-12-291-0/+9
| | | | llvm-svn: 147356
* Rename Remember and Restore to RememberState and RestoreState for consistency.Rafael Espindola2011-12-291-2/+2
| | | | llvm-svn: 147354
* Implement .cfi_escape. Patch by Brian Anderson!Rafael Espindola2011-12-291-0/+4
| | | | llvm-svn: 147352
* Re-re-enable compact unwind after fixing a failure in ↵Bill Wendling2011-12-151-2/+1
| | | | | | SingleSource/Benchmarks/Shootout-C++/except.cpp and friends. It was encoding the stored registers in the wrong order. llvm-svn: 146617
* Disable to review some failures.Bill Wendling2011-12-141-1/+2
| | | | llvm-svn: 146545
* The second part of support for generating dwarf for assembly source files. ThisKevin Enderby2011-12-091-0/+339
| | | | | | | | | | generates the dwarf Compile Unit DIE and a dwarf subprogram DIE for each non-temporary label. The next part will be to get the clang driver to enable this when assembling a .s file. rdar://9275556 llvm-svn: 146262
* Re-enable compact unwind. It seems to work now. <rdar://problem/10441838>Bill Wendling2011-12-061-4/+1
| | | | llvm-svn: 145977
* Disable generation of compact unwind encodings. <rdar://problem/10441578>Bob Wilson2011-11-141-1/+2
| | | | | | | This still seems to be causing some failures. It needs more testing before it gets enabled again. llvm-svn: 144543
* Remove FIXME comment that should have been removed with r144351.Bob Wilson2011-11-111-1/+0
| | | | llvm-svn: 144392
* Reenable compact unwinding now that <rdar://problem/10430076> is fixed.Bill Wendling2011-11-111-1/+1
| | | | llvm-svn: 144351
* Disable compact unwind generation until I can solve the codegen problems.Bill Wendling2011-11-111-1/+2
| | | | llvm-svn: 144346
* Simplify code. No functionality change.Benjamin Kramer2011-11-091-8/+2
| | | | llvm-svn: 144186
* Emit the compact unwind *if* we have a compact unwind encoding.Bill Wendling2011-11-081-1/+1
| | | | | | *headdesk* llvm-svn: 144138
* Simplify some uses of utohexstr.Benjamin Kramer2011-11-071-3/+2
| | | | | | As a side effect hex is printed lowercase instead of uppercase now. llvm-svn: 144013
* As a first step, emit both the compact unwind and CIE/FDEs for a function.Bill Wendling2011-09-061-13/+7
| | | | llvm-svn: 139152
* Some autoconf tests use module level inline asm to test compiler's handling ofEvan Cheng2011-08-241-1/+1
| | | | | | | | | | | | | | | | .cfi_startproc. e.g. libffi: $ cat confopt.c asm (".cfi_startproc\n\t.cfi_endproc"); int main () { return 0; } Teach MC / dwarf emission to handle these cfi directives which essentially create an empty frame. rdar://10017184 llvm-svn: 138504
* Emit the __compact_unwind section first. If there are any frames which weren'tBill Wendling2011-07-221-14/+27
| | | | | | emitted, emit them next as CIE/FDEs. llvm-svn: 135807
* Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc.Evan Cheng2011-07-201-7/+3
| | | | | | | There is still a bit more refactoring left to do in Targets. But we are now very close to fixing all the layering issues in MC. llvm-svn: 135611
* Add MCObjectFileInfo and sink the MCSections initialization code fromEvan Cheng2011-07-201-12/+19
| | | | | | | | TargetLoweringObjectFileImpl down to MCObjectFileInfo. TargetAsmInfo is done to one last method. It's *almost* gone! llvm-svn: 135569
* Micro-opt: Only emit compact unwind if there is a compact unwind encoding to ↵Bill Wendling2011-07-191-1/+1
| | | | | | emit. llvm-svn: 135452
* Use the CompactUnwindEncoding from the Frame, if it's defined.Bill Wendling2011-07-191-7/+2
| | | | llvm-svn: 135451
* Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions forEvan Cheng2011-07-181-1/+2
| | | | | | better location welcome). llvm-svn: 135438
* Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo downEvan Cheng2011-07-181-5/+6
| | | | | | | | | to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. llvm-svn: 135424
* Move some parts of TargetAsmInfo down to MCAsmInfo. This is not the greatestEvan Cheng2011-07-151-26/+26
| | | | | | | solution but it is a small step towards removing the horror that is TargetAsmInfo. llvm-svn: 135237
* Remove setting the bit for personality function. It should be set by the linker.Bill Wendling2011-07-151-3/+0
| | | | llvm-svn: 135236
* Encode that we have a personality function.Bill Wendling2011-07-151-0/+3
| | | | llvm-svn: 135227
* * If we have an LSDA, we need to mark it in the encoding.Bill Wendling2011-07-141-1/+5
| | | | | | * The personality function should be encoded as an absolute pointer to the function. llvm-svn: 135215
* Unfortunately several files in MC are badly violating layering rule by usingEvan Cheng2011-07-141-2/+6
| | | | | | | | | TargetAsmInfo, which in turn pulls in TargetRegisterInfo, etc. :-( There are other cases of violations, but this is probably the worst. This patch is but one small step towards fixing this. 500 more steps to go. :-( llvm-svn: 135131
* Don't emit the FDE end label if the last thing emitted was a compact unwind andBill Wendling2011-07-131-1/+3
| | | | | | not the FDE llvm-svn: 135020
* Add a target hook to encode the compact unwind information.Bill Wendling2011-07-071-6/+8
| | | | llvm-svn: 134577
* Clean up the #includes.Bill Wendling2011-07-061-5/+4
| | | | llvm-svn: 134557
OpenPOWER on IntegriCloud