Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Various crash reporting tools have a problem with the dwarf generated for | Kevin Enderby | 2012-01-10 | 1 | -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 Espindola | 2011-12-29 | 1 | -0/+9 | |
| | | | | llvm-svn: 147356 | |||||
* | Rename Remember and Restore to RememberState and RestoreState for consistency. | Rafael Espindola | 2011-12-29 | 1 | -2/+2 | |
| | | | | llvm-svn: 147354 | |||||
* | Implement .cfi_escape. Patch by Brian Anderson! | Rafael Espindola | 2011-12-29 | 1 | -0/+4 | |
| | | | | llvm-svn: 147352 | |||||
* | Re-re-enable compact unwind after fixing a failure in ↵ | Bill Wendling | 2011-12-15 | 1 | -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 Wendling | 2011-12-14 | 1 | -1/+2 | |
| | | | | llvm-svn: 146545 | |||||
* | The second part of support for generating dwarf for assembly source files. This | Kevin Enderby | 2011-12-09 | 1 | -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 Wendling | 2011-12-06 | 1 | -4/+1 | |
| | | | | llvm-svn: 145977 | |||||
* | Disable generation of compact unwind encodings. <rdar://problem/10441578> | Bob Wilson | 2011-11-14 | 1 | -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 Wilson | 2011-11-11 | 1 | -1/+0 | |
| | | | | llvm-svn: 144392 | |||||
* | Reenable compact unwinding now that <rdar://problem/10430076> is fixed. | Bill Wendling | 2011-11-11 | 1 | -1/+1 | |
| | | | | llvm-svn: 144351 | |||||
* | Disable compact unwind generation until I can solve the codegen problems. | Bill Wendling | 2011-11-11 | 1 | -1/+2 | |
| | | | | llvm-svn: 144346 | |||||
* | Simplify code. No functionality change. | Benjamin Kramer | 2011-11-09 | 1 | -8/+2 | |
| | | | | llvm-svn: 144186 | |||||
* | Emit the compact unwind *if* we have a compact unwind encoding. | Bill Wendling | 2011-11-08 | 1 | -1/+1 | |
| | | | | | | *headdesk* llvm-svn: 144138 | |||||
* | Simplify some uses of utohexstr. | Benjamin Kramer | 2011-11-07 | 1 | -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 Wendling | 2011-09-06 | 1 | -13/+7 | |
| | | | | llvm-svn: 139152 | |||||
* | Some autoconf tests use module level inline asm to test compiler's handling of | Evan Cheng | 2011-08-24 | 1 | -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't | Bill Wendling | 2011-07-22 | 1 | -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 Cheng | 2011-07-20 | 1 | -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 from | Evan Cheng | 2011-07-20 | 1 | -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 Wendling | 2011-07-19 | 1 | -1/+1 | |
| | | | | | | emit. llvm-svn: 135452 | |||||
* | Use the CompactUnwindEncoding from the Frame, if it's defined. | Bill Wendling | 2011-07-19 | 1 | -7/+2 | |
| | | | | llvm-svn: 135451 | |||||
* | Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for | Evan Cheng | 2011-07-18 | 1 | -1/+2 | |
| | | | | | | better location welcome). llvm-svn: 135438 | |||||
* | Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down | Evan Cheng | 2011-07-18 | 1 | -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 greatest | Evan Cheng | 2011-07-15 | 1 | -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 Wendling | 2011-07-15 | 1 | -3/+0 | |
| | | | | llvm-svn: 135236 | |||||
* | Encode that we have a personality function. | Bill Wendling | 2011-07-15 | 1 | -0/+3 | |
| | | | | llvm-svn: 135227 | |||||
* | * If we have an LSDA, we need to mark it in the encoding. | Bill Wendling | 2011-07-14 | 1 | -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 using | Evan Cheng | 2011-07-14 | 1 | -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 and | Bill Wendling | 2011-07-13 | 1 | -1/+3 | |
| | | | | | | not the FDE llvm-svn: 135020 | |||||
* | Add a target hook to encode the compact unwind information. | Bill Wendling | 2011-07-07 | 1 | -6/+8 | |
| | | | | llvm-svn: 134577 | |||||
* | Clean up the #includes. | Bill Wendling | 2011-07-06 | 1 | -5/+4 | |
| | | | | llvm-svn: 134557 | |||||
* | Remove tabs. | Bill Wendling | 2011-06-30 | 1 | -6/+6 | |
| | | | | llvm-svn: 134212 | |||||
* | Improve comment: Show the register the DWARF label is added to. | Bill Wendling | 2011-06-30 | 1 | -1/+2 | |
| | | | | llvm-svn: 134209 | |||||
* | Add one more comment to the FDE verbose asm output. | Bill Wendling | 2011-06-30 | 1 | -0/+1 | |
| | | | | llvm-svn: 134200 | |||||
* | Add comments to the FDE. | Bill Wendling | 2011-06-30 | 1 | -5/+13 | |
| | | | | llvm-svn: 134196 | |||||
* | Add more comments to the ASM output for the CIE's "moves". | Bill Wendling | 2011-06-30 | 1 | -1/+20 | |
| | | | | llvm-svn: 134194 | |||||
* | Add comments to the ASM output to help understand the compact unwind and CIE ↵ | Bill Wendling | 2011-06-30 | 1 | -6/+61 | |
| | | | | | | tables. llvm-svn: 134191 | |||||
* | * Use the proper size to output the range size. | Bill Wendling | 2011-06-30 | 1 | -1/+8 | |
| | | | | | | * Rough in the compact encoding part. llvm-svn: 134119 | |||||
* | Stupid error: If the LSDA and Personality functions aren't there, emit 0 instead | Bill Wendling | 2011-06-29 | 1 | -10/+8 | |
| | | | | | | of the encoding. llvm-svn: 134117 | |||||
* | We don't want to use relocations inside the compact unwind section. Just use the | Bill Wendling | 2011-06-29 | 1 | -4/+19 | |
| | | | | | | symbols instead. llvm-svn: 134115 | |||||
* | Use a reference. Don't make a useless copy of the vector. | Bill Wendling | 2011-06-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 133707 | |||||
* | Formatting changes. No functionality change. | Bill Wendling | 2011-06-23 | 1 | -32/+30 | |
| | | | | llvm-svn: 133706 | |||||
* | Use the presence of the __compact_unwind section to indicate that a target | Bill Wendling | 2011-06-23 | 1 | -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 to | Bill Wendling | 2011-06-23 | 1 | -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 Kramer | 2011-06-18 | 1 | -4/+1 | |
| | | | | llvm-svn: 133352 | |||||
* | No reason not to allow defining the CFA as a reg w/ offset zero. | Jim Grosbach | 2011-05-20 | 1 | -2/+0 | |
| | | | | llvm-svn: 131760 | |||||
* | Avoid a gcc warning. | Rafael Espindola | 2011-05-10 | 1 | -1/+2 | |
| | | | | llvm-svn: 131161 | |||||
* | On MachO, unlike ELF, there should be no relocation to produce the CIE pointer. | Rafael Espindola | 2011-05-10 | 1 | -8/+17 | |
| | | | | llvm-svn: 131149 | |||||
* | The EH symbols are only needed in eh_frame, not debug_frame. | Rafael Espindola | 2011-05-10 | 1 | -2/+2 | |
| | | | | llvm-svn: 131146 |