aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MC/MCDwarf.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove FIXME comment that should have been removed with r144351.Bob Wilson2011-11-111-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144392 91177308-0d34-0410-b5e6-96231b3b80d8
* Reenable compact unwinding now that <rdar://problem/10430076> is fixed.Bill Wendling2011-11-111-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144351 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable compact unwind generation until I can solve the codegen problems.Bill Wendling2011-11-111-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144346 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify code. No functionality change.Benjamin Kramer2011-11-091-8/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144186 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit the compact unwind *if* we have a compact unwind encoding.Bill Wendling2011-11-081-1/+1
| | | | | | | *headdesk* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144138 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify some uses of utohexstr.Benjamin Kramer2011-11-071-3/+2
| | | | | | As a side effect hex is printed lowercase instead of uppercase now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144013 91177308-0d34-0410-b5e6-96231b3b80d8
* As a first step, emit both the compact unwind and CIE/FDEs for a function.Bill Wendling2011-09-061-13/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139152 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138504 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135807 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135611 91177308-0d34-0410-b5e6-96231b3b80d8
* 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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135569 91177308-0d34-0410-b5e6-96231b3b80d8
* Micro-opt: Only emit compact unwind if there is a compact unwind encoding to ↵Bill Wendling2011-07-191-1/+1
| | | | | | emit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135452 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the CompactUnwindEncoding from the Frame, if it's defined.Bill Wendling2011-07-191-7/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135451 91177308-0d34-0410-b5e6-96231b3b80d8
* Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions forEvan Cheng2011-07-181-1/+2
| | | | | | | better location welcome). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135438 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135237 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove setting the bit for personality function. It should be set by the linker.Bill Wendling2011-07-151-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135236 91177308-0d34-0410-b5e6-96231b3b80d8
* Encode that we have a personality function.Bill Wendling2011-07-151-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135227 91177308-0d34-0410-b5e6-96231b3b80d8
* * 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135215 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135131 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135020 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a target hook to encode the compact unwind information.Bill Wendling2011-07-071-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134577 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up the #includes.Bill Wendling2011-07-061-5/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134557 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove tabs.Bill Wendling2011-06-301-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134212 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve comment: Show the register the DWARF label is added to.Bill Wendling2011-06-301-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134209 91177308-0d34-0410-b5e6-96231b3b80d8
* Add one more comment to the FDE verbose asm output.Bill Wendling2011-06-301-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134200 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comments to the FDE.Bill Wendling2011-06-301-5/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134196 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more comments to the ASM output for the CIE's "moves".Bill Wendling2011-06-301-1/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134194 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comments to the ASM output to help understand the compact unwind and CIE ↵Bill Wendling2011-06-301-6/+61
| | | | | | tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134191 91177308-0d34-0410-b5e6-96231b3b80d8
* * Use the proper size to output the range size.Bill Wendling2011-06-301-1/+8
| | | | | | | * Rough in the compact encoding part. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134119 91177308-0d34-0410-b5e6-96231b3b80d8
* Stupid error: If the LSDA and Personality functions aren't there, emit 0 insteadBill Wendling2011-06-291-10/+8
| | | | | | | of the encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134117 91177308-0d34-0410-b5e6-96231b3b80d8
* We don't want to use relocations inside the compact unwind section. Just use theBill Wendling2011-06-291-4/+19
| | | | | | | symbols instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134115 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a reference. Don't make a useless copy of the vector.Bill Wendling2011-06-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133707 91177308-0d34-0410-b5e6-96231b3b80d8
* Formatting changes. No functionality change.Bill Wendling2011-06-231-32/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133706 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133685 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133676 91177308-0d34-0410-b5e6-96231b3b80d8
* Directly print to a raw_ostream instead of printing to a buffer first.Benjamin Kramer2011-06-181-4/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133352 91177308-0d34-0410-b5e6-96231b3b80d8
* No reason not to allow defining the CFA as a reg w/ offset zero.Jim Grosbach2011-05-201-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131760 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid a gcc warning.Rafael Espindola2011-05-101-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131161 91177308-0d34-0410-b5e6-96231b3b80d8
* On MachO, unlike ELF, there should be no relocation to produce the CIE pointer.Rafael Espindola2011-05-101-8/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131149 91177308-0d34-0410-b5e6-96231b3b80d8
* The EH symbols are only needed in eh_frame, not debug_frame.Rafael Espindola2011-05-101-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131146 91177308-0d34-0410-b5e6-96231b3b80d8
* In a debug_frame the cfi offset is to the start of the debug_frame section!Rafael Espindola2011-05-101-3/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131129 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for producing .deubg_frame sections.Rafael Espindola2011-05-101-45/+59
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131121 91177308-0d34-0410-b5e6-96231b3b80d8
* Small cleanups.Rafael Espindola2011-05-101-8/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131120 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused argument.Rafael Espindola2011-05-101-12/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131118 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate an unused line to fix a warning.NAKAMURA Takumi2011-05-081-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131078 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't force relaxation of AdvanceLoc instructions on OS X. gdb is happy withRafael Espindola2011-05-081-11/+5
| | | | | | | the smaller encoding and this cuts 270336 bytes from a release version of clang and 1246272 bytes from a debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131067 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch Darwin to the generic CIE/FDE printer.Rafael Espindola2011-05-061-64/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131031 91177308-0d34-0410-b5e6-96231b3b80d8
* MCDwarf: Don't save Twine to local variable, this is almost never safe to doDaniel Dunbar2011-05-031-2/+2
| | | | | | | (and should thus never be done). - Should fix a crash on win32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130793 91177308-0d34-0410-b5e6-96231b3b80d8
* GCC uses a different encoding of pointers in the FDE when usingRafael Espindola2011-05-011-8/+12
| | | | | | -fno-dwarf2-cfi-asm. Implement the same behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130637 91177308-0d34-0410-b5e6-96231b3b80d8