summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDwarf.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Remove tabs.Bill Wendling2011-06-301-6/+6
| | | | llvm-svn: 134212
* Improve comment: Show the register the DWARF label is added to.Bill Wendling2011-06-301-1/+2
| | | | llvm-svn: 134209
* Add one more comment to the FDE verbose asm output.Bill Wendling2011-06-301-0/+1
| | | | llvm-svn: 134200
* Add comments to the FDE.Bill Wendling2011-06-301-5/+13
| | | | llvm-svn: 134196
* Add more comments to the ASM output for the CIE's "moves".Bill Wendling2011-06-301-1/+20
| | | | llvm-svn: 134194
* Add comments to the ASM output to help understand the compact unwind and CIE ↵Bill Wendling2011-06-301-6/+61
| | | | | | tables. llvm-svn: 134191
* * Use the proper size to output the range size.Bill Wendling2011-06-301-1/+8
| | | | | | * Rough in the compact encoding part. llvm-svn: 134119
* Stupid error: If the LSDA and Personality functions aren't there, emit 0 insteadBill Wendling2011-06-291-10/+8
| | | | | | of the encoding. llvm-svn: 134117
* We don't want to use relocations inside the compact unwind section. Just use theBill Wendling2011-06-291-4/+19
| | | | | | symbols instead. llvm-svn: 134115
* Use a reference. Don't make a useless copy of the vector.Bill Wendling2011-06-231-1/+1
| | | | llvm-svn: 133707
* Formatting changes. No functionality change.Bill Wendling2011-06-231-32/+30
| | | | llvm-svn: 133706
* Use the presence of the __compact_unwind section to indicate that a targetBill Wendling2011-06-231-1/+1
| | | | | | supports compact unwind info instead of having a separate flag indicating this. llvm-svn: 133685
* Some skeleton code to emit the compact unwind. If the information is unable toBill Wendling2011-06-231-1/+63
| | | | | | be emitted in a compact way, we then default to emitting a CIE and FDE. llvm-svn: 133676
* Directly print to a raw_ostream instead of printing to a buffer first.Benjamin Kramer2011-06-181-4/+1
| | | | llvm-svn: 133352
* No reason not to allow defining the CFA as a reg w/ offset zero.Jim Grosbach2011-05-201-2/+0
| | | | llvm-svn: 131760
* Avoid a gcc warning.Rafael Espindola2011-05-101-1/+2
| | | | llvm-svn: 131161
* On MachO, unlike ELF, there should be no relocation to produce the CIE pointer.Rafael Espindola2011-05-101-8/+17
| | | | llvm-svn: 131149
* The EH symbols are only needed in eh_frame, not debug_frame.Rafael Espindola2011-05-101-2/+2
| | | | llvm-svn: 131146
OpenPOWER on IntegriCloud