History log of /external/llvm/lib/MC/MCDwarf.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/MC/MCDwarf.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/MC/MCDwarf.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/MC/MCDwarf.cpp
83ba58e5f0a5afbb23d7d2092d817accded4455a 26-Sep-2013 Venkatraman Govindaraju <venkatra@cs.wisc.edu> Implements parsing and emitting of .cfi_window_save in MC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
da11df0c22f5d0ba2e2be3ae4a7076c806233db8 09-Sep-2013 Bill Wendling <isanbard@gmail.com> Call generateCompactUnwindEncodings() right before we need to output the frame information.

There are more than one paths to where the frame information is emitted. Place
the call to generateCompactUnwindEncodings() into the method which outputs the
frame information, thus ensuring that the encoding is there for every path. This
involved threading the MCAsmBackend object through to this method.

<rdar://problem/13623355>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
d6d2ef158210f0634e31527193aa13778d48f66c 05-Sep-2013 Bill Wendling <isanbard@gmail.com> Fix comments to reflect reality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9e4bd87f470132ec907afdc3eed4e34cb4859240 05-Sep-2013 Bill Wendling <isanbard@gmail.com> Use ArrayRef instead of explicit container.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
a3863ea2dacafc925a8272ebf9884fc64bef686c 02-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove address spaces from MC.

This is dead code since PIC16 was removed in 2010. The result was an odd mix,
where some parts would carefully pass it along and others would assert it was
zero (most of the object streamer for example).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
99cb622041a0839c7dfcf0263c5102a305a0fdb5 18-Jun-2013 Bill Wendling <isanbard@gmail.com> Use pointers to the MCAsmInfo and MCRegInfo.

Someone may want to do something crazy, like replace these objects if they
change or something.

No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c1f4a4b2640dfc871bacacef53a95f1c96a9fe48 12-Jun-2013 Ulrich Weigand <ulrich.weigand@de.ibm.com> [MC/DWARF] Support .debug_frame / .debug_line code alignment factors

I've been comparing the object file output of LLVM's integrated
assembler against the external assembler on PowerPC, and one
area where differences still remain are in DWARF sections.

In particular, the GNU assembler generates .debug_frame and
.debug_line sections using a code alignment factor of 4, since
all PowerPC instructions have size 4 and must be aligned to a
multiple of 4. However, current MC code hard-codes a code
alignment factor of 1.

This patch changes this by adding a "minimum instruction alignment"
data element to MCAsmInfo and using this as code alignment factor.

This requires passing a MCContext into MCDwarfLineAddr::Encode
and MCDwarfLineAddr::EncodeAdvanceLoc. Note that one caller,
MCDwarfLineAddr::Write, didn't actually have that information
available. However, it turns out that this routine is in fact
never used in the whole code base, so the patch simply removes
it. If it turns out to be needed again at a later time, it
could be re-added with an updated interface.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
79b40f10c00d38f81272bc683bd94e24607f3897 30-May-2013 Bill Wendling <isanbard@gmail.com> Use the const_cast only where necessary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
4a971705bc6030dc2e4338b3cd5cffa2e0f88b7b 13-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove the MachineMove class.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
32ec93d431c54b6227a978201813398ffaaeff17 07-May-2013 Bob Wilson <bob.wilson@apple.com> Remove redundant check and use cached FrameArray values.

No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c60e252ef6d795170c3f32e276c8f6f77d56783e 24-Apr-2013 Bill Wendling <isanbard@gmail.com> Align the __LD,__compact_unwind section.

I know what would be cool! We should align the compact unwind section because
aligned data access is faster.
<rdar://problem/13723271>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
fa2b25c57300dc9c518ea35bbc9dc8658fdbf454 19-Apr-2013 Bill Wendling <isanbard@gmail.com> Relax this assert. It may not hold in all cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
18014d4e4c6722aec4fa387d995b618f5d3111cd 19-Apr-2013 Bill Wendling <isanbard@gmail.com> Assert if we're trying to generate a null compact unwind entry.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
df39be6cb4eb44011db3d3e86f8fe463f81ce127 17-Apr-2013 Peter Collingbourne <peter@pcc.me.uk> Add support for subsections to the ELF assembler. Fixes PR8717.

Differential Revision: http://llvm-reviews.chandlerc.com/D598

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3c08eef20b9cfc31d4ae3a43f1c9a57a4ab2cad7 11-Apr-2013 Bill Wendling <isanbard@gmail.com> No need to have this return a bool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
62c75ad4301f07c94d7a231d2da9f9cd47b7824c 10-Apr-2013 Bill Wendling <isanbard@gmail.com> Track the compact unwind encoding for when we are unable to generate compact unwind information.

Compact unwind has an encoding for when we're not able to generate compact
unwind and must generate an EH frame instead. Track that, but still emit that CU
encoding.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9e999adb48beb61663f6abca667b8c85068ee585 12-Mar-2013 Manman Ren <mren@apple.com> Debug Info: use SmallVector instead of std::vector in MCDwarfDirsCUMap and MCDwarfFilesCUMap


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3de61b4c0144748e4b9157e2c22fe4ea685981a2 07-Mar-2013 Manman Ren <mren@apple.com> Debug Info: store the files and directories for each compile unit.

We now emit a line table for each compile unit. To reduce the prologue size
of each line table, the files and directories used by each compile unit are
stored in std::map<unsigned, std::vector< > > instead of std::vector< >.

The prologue for a lto'ed image can be as big as 93K. Duplicating 93K for each
compile unit causes a huge increase of debug info. With this patch, each
prologue will only emit the files required by the compile unit.

rdar://problem/13342023


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
e0501e866ca15601f4da2dc6b5572dc2de53abc8 07-Feb-2013 Eric Christopher <echristo@gmail.com> Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
43213cf1ac05b4198fcf9fa85d7da85477daafd1 05-Feb-2013 Manman Ren <mren@apple.com> Dwarf: support for LTO where a single object file can have multiple line tables

We generate one line table for each compilation unit in the object file.
Reviewed by Eric and Kevin.

rdar://problem/13067005


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9dd2a3b1f2c253e20262535bb89b1ab6cc680ece 22-Jan-2013 Eli Bendersky <eliben@google.com> Initial patch for x32 ABI support.

Add the x32 environment kind to the triple, and separate the concept of
pointer size and callee save stack slot size, since they're not equal
on x32.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
75c9b9384f50e9387f24dd7ce6af403cbda6d19a 16-Jan-2013 Kevin Enderby <enderby@apple.com> We want the dwarf AT_producer for assembly source files to match clang's
AT_producer. Which includes clang's version information so we can tell
which version of the compiler was used.

This is the first of two steps to allow us to do that. This is the llvm-mc
change to provide a method to set the AT_producer string. The second step,
coming soon to a clang near you, will have the clang driver pass the value
of getClangFullVersion() via an flag when invoking the integrated assembler
on assembly source files.

rdar://12955296


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
68ca56285f9b6e82eb16ff8ea02a301f2c489fae 09-Jan-2013 Eric Christopher <echristo@gmail.com> These functions have default arguments of 0 for the last arg. Use
them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
6c31d313575bba1b87b583260f39f0b0dae143f4 17-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Prepare LLVM to fix PR14625, exposing a hook in MCContext to manage the
compilation directory.

This defaults to the current working directory, just as it always has,
but now an assembler can choose to override it with a custom directory.
I've taught llvm-mc about this option and added a test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
f4f14f68f6078ea6681ee27b5bf42719d7db3441 25-Nov-2012 Rafael Espindola <rafael.espindola@gmail.com> Add support for .cfi_register now that it is easy to extent the representation
to support it. Original patch with the parsing and plumbing by the PaX team and
Roman Divacky. I added the bits in MCDwarf.cpp and the test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
ff233c9e5c3e439fd1eed84b9a9e88a5370572db 24-Nov-2012 Rafael Espindola <rafael.espindola@gmail.com> Change the representation of MCCFIInstruction.

We now store the Register and Offset directly. MachineLocation is gone (from
this file)!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
7f74d2c2c197eec76ae2b41fed9c227c0dcc04cb 24-Nov-2012 Rafael Espindola <rafael.espindola@gmail.com> Give each MCCFIInstruction its own opcode.
This untangles the switch cases of the old Move and RelMove opcodes a bit
and makes it clear how to add new instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
28c9ea3c13dfb8f6bb3226ba511d189135fcb140 24-Nov-2012 Rafael Espindola <rafael.espindola@gmail.com> Refactor how MCCFIInstructions are created.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c8fec7e21f5c24303eab8a8592f3b8faff347d86 23-Nov-2012 Rafael Espindola <rafael.espindola@gmail.com> Implement .cfi_undefined. Based on a patch from PaX team, updated by
Roman Divacky. I just added the testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
15ab115df57949fa55d92ffdfba491f7d02ed60f 14-Nov-2012 Alexey Samsonov <samsonov@google.com> Emit relocations from .debug_aranges to .debug_info for asm files

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
286c4dc355b8be6806081b23c3097485821c7642 12-Sep-2012 Manman Ren <mren@apple.com> Release build: guard dump functions with
"#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)"

No functional change. Update r163344.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
cc77eece74c8db09acc2af425e7e6c88a5bb30d1 06-Sep-2012 Manman Ren <mren@apple.com> Release build: guard dump functions with "ifndef NDEBUG"

No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
0c5602de8c0dfa716f54306a1c540b98ab803584 12-Aug-2012 Nick Lewycky <nicholas@mxc.ca> When emitting the PC range in an FDE, use the same data encoding for both ends
of the range. Fixes PR13581!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2d39a0e52df9ce050bd4e2de3a2ecca8fd9a87c3 09-Aug-2012 Jim Grosbach <grosbach@apple.com> Move [SU]LEB128 encoding to a utility header.

These functions are very generic. There's no reason for them to
be tied to MCObjectWriter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c8e41c591741b3da1077f7000274ad040bef8002 23-Jul-2012 Sylvestre Ledru <sylvestre@debian.org> Fix a typo (the the => the)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2241e51406f7bae369d6103cf3464e70f74c4af9 22-Jun-2012 Rafael Espindola <rafael.espindola@gmail.com> Fix a FIXME: DwarfRequiresRelocationForSectionOffset is the same as
DwarfUsesRelocationsAcrossSections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2684d9e3c702b2ef9fd430155d94671d12fa994f 11-May-2012 Jim Grosbach <grosbach@apple.com> Tidy up. Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
7484920cf5d95b21fa750229f8ce0d1624c918ec 11-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> Compute hashes directly with hash_combine instead of taking a detour through FoldingSetNodeID.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
489d67927172941bf59b9f4829ab8910814fea24 28-Feb-2012 Rafael Espindola <rafael.espindola@gmail.com> On ELF, create relocations to the abbreviation and line sections when producing
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3c3cdcc270515de95a4982db3073b9fdf44a5c2e 25-Feb-2012 Eric Christopher <echristo@apple.com> Grammar-o.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
858143816d43e58b17bfd11cb1b57afbd7f0f893 07-Feb-2012 Craig Topper <craig.topper@gmail.com> Convert assert(0) to llvm_unreachable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
16d7d437e03ce87fdaef7971919302920d54a966 23-Jan-2012 Rafael Espindola <rafael.espindola@gmail.com> Add support for .cfi_signal_frame. Fixes pr11762.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
eb9fa666f9ea27334aa728d7b6b435b5c20a2c4c 20-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Add missing breaks to switch.

Found by the clang static analyzer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
11c2defa9157bd589cb322218c718c4492ed5746 10-Jan-2012 Kevin Enderby <enderby@apple.com> This is the matching change for the data structure name changes for the
functional change in r147860 to use DW_TAG_label's instead TAG_subprogram's.
This only changes names and updates comments. No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
38fdb7d9fc40e9f29c3156b6625cac8d91d562e1 10-Jan-2012 Kevin Enderby <enderby@apple.com> Various crash reporting tools have a problem with the dwarf generated for
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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
ed23bdb65fe86cdb7a38c8c1998ec965e6973966 29-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Implement cfi_restore. Patch by Brian Anderson!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c25680f728f89dd43939b00049ee524fbf59b7be 29-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Rename Remember and Restore to RememberState and RestoreState for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
6f0b181bc70318f8d5d4b9bdead7fc748677fe2a 29-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Implement .cfi_escape. Patch by Brian Anderson!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
7a13b72bbbadaa9274f6a58774970b9b95706330 15-Dec-2011 Bill Wendling <isanbard@gmail.com> Re-re-enable compact unwind after fixing a failure in SingleSource/Benchmarks/Shootout-C++/except.cpp and friends. It was encoding the stored registers in the wrong order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
e08643be3a203a3691c4e8346f3e229dc591c288 14-Dec-2011 Bill Wendling <isanbard@gmail.com> Disable to review some failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
94c2e85bea1ab1b837a4c055ccc83d5cd32dd027 09-Dec-2011 Kevin Enderby <enderby@apple.com> The second part of support for generating dwarf for assembly source files. This
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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
054a8be1544191b6107771dbae15b916110d8a2a 06-Dec-2011 Bill Wendling <isanbard@gmail.com> Re-enable compact unwind. It seems to work now. <rdar://problem/10441838>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
96b685b4aadef3c273fead1ea8788e1452d7bbea 14-Nov-2011 Bob Wilson <bob.wilson@apple.com> Disable generation of compact unwind encodings. <rdar://problem/10441578>

This still seems to be causing some failures. It needs more testing before
it gets enabled again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
900b16b99d39de70e74b343ffa0d57154ff30dd0 11-Nov-2011 Bob Wilson <bob.wilson@apple.com> Remove FIXME comment that should have been removed with r144351.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
cf3b89f9a83e46494fba73dd7754df03e95b2b15 11-Nov-2011 Bill Wendling <isanbard@gmail.com> Reenable compact unwinding now that <rdar://problem/10430076> is fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
7b809e08b906755d71994a20479cbe781db9614d 11-Nov-2011 Bill Wendling <isanbard@gmail.com> Disable compact unwind generation until I can solve the codegen problems.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2dd423987eafaa1d0bc5d0312283e24e60eeb2b5 09-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Simplify code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
a2ff3e2c3c0d8be862525c91f7b0e153480f4f5e 08-Nov-2011 Bill Wendling <isanbard@gmail.com> Emit the compact unwind *if* we have a compact unwind encoding.
*headdesk*


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
70be28a5adba5bcae0c6dcd63f17592864c351fc 07-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Simplify some uses of utohexstr.

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
/external/llvm/lib/MC/MCDwarf.cpp
d8ab8e9707e6170218ce82516d15b36f54b4bc1c 06-Sep-2011 Bill Wendling <isanbard@gmail.com> As a first step, emit both the compact unwind and CIE/FDEs for a function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
5fbe5e783ee0c5ae27c17490a752d7e603e84ed2 25-Aug-2011 Evan Cheng <evan.cheng@apple.com> Some autoconf tests use module level inline asm to test compiler's handling of
.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
/external/llvm/lib/MC/MCDwarf.cpp
1424c3c3e696868775ac5bfc57d27a0ac3bc6c63 22-Jul-2011 Bill Wendling <isanbard@gmail.com> Emit the __compact_unwind section first. If there are any frames which weren't
emitted, emit them next as CIE/FDEs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae 20-Jul-2011 Evan Cheng <evan.cheng@apple.com> Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc.

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
/external/llvm/lib/MC/MCDwarf.cpp
e76a33b9567d78a5744dc52fcec3a6056d6fb576 20-Jul-2011 Evan Cheng <evan.cheng@apple.com> Add MCObjectFileInfo and sink the MCSections initialization code from
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
/external/llvm/lib/MC/MCDwarf.cpp
6c2f7e2398d5424e80e2d23a6622d76c921dd361 19-Jul-2011 Bill Wendling <isanbard@gmail.com> Micro-opt: Only emit compact unwind if there is a compact unwind encoding to emit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
e52e3f2c020354c8e0e966b719152b08349d0334 19-Jul-2011 Bill Wendling <isanbard@gmail.com> Use the CompactUnwindEncoding from the Frame, if it's defined.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2d28617de2b0b731c08d1af9e830f31e14ac75b4 19-Jul-2011 Evan Cheng <evan.cheng@apple.com> Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for
better location welcome).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
0e6a052331f674dd70e28af41f654a7874405eab 18-Jul-2011 Evan Cheng <evan.cheng@apple.com> Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down
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
/external/llvm/lib/MC/MCDwarf.cpp
1be0e271a07925b928ba89848934f1ea6f1854e2 15-Jul-2011 Evan Cheng <evan.cheng@apple.com> Move some parts of TargetAsmInfo down to MCAsmInfo. This is not the greatest
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
/external/llvm/lib/MC/MCDwarf.cpp
833ce06c8ff3a99670b0f06013afb6fbdf903b76 15-Jul-2011 Bill Wendling <isanbard@gmail.com> Remove setting the bit for personality function. It should be set by the linker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
79a6a48851e9765bd01ac60be93f8fea22f30f4a 15-Jul-2011 Bill Wendling <isanbard@gmail.com> Encode that we have a personality function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
4bb5b037126ea35f35d5a490b03ccffa8677fa5e 15-Jul-2011 Bill Wendling <isanbard@gmail.com> * If we have an LSDA, we need to mark it in the encoding.
* 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
/external/llvm/lib/MC/MCDwarf.cpp
672b93a3324cc1da6d374eed4c75c050a9cad7be 14-Jul-2011 Evan Cheng <evan.cheng@apple.com> Unfortunately several files in MC are badly violating layering rule by using
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
/external/llvm/lib/MC/MCDwarf.cpp
8440fe21668fd4d47378371073af0702ea9413bc 13-Jul-2011 Bill Wendling <isanbard@gmail.com> Don't emit the FDE end label if the last thing emitted was a compact unwind and
not the FDE


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
6a6b8c3e96b9e1ca7092eafd0cfb219cbbfbdfc4 07-Jul-2011 Bill Wendling <isanbard@gmail.com> Add a target hook to encode the compact unwind information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2b2dc7c4bee01071410df0e3027117b47ce48ced 07-Jul-2011 Bill Wendling <isanbard@gmail.com> Clean up the #includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c3882164cbf794dbe21816a2946a31bc9e02a419 01-Jul-2011 Bill Wendling <isanbard@gmail.com> Remove tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
e08d4335ad29d74008222b4d7ac91c153ed66bec 01-Jul-2011 Bill Wendling <isanbard@gmail.com> Improve comment: Show the register the DWARF label is added to.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
d221cd676b44d8118b1db152ecc2168538479626 01-Jul-2011 Bill Wendling <isanbard@gmail.com> Add one more comment to the FDE verbose asm output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2541c41f3e2af94585e14353a91f02facd65e415 01-Jul-2011 Bill Wendling <isanbard@gmail.com> Add comments to the FDE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
efd24ddbffc1e69fa88089de036d1873c950dfb5 30-Jun-2011 Bill Wendling <isanbard@gmail.com> Add more comments to the ASM output for the CIE's "moves".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3c163cfa60f9f196cd6a5a04e07baec3947fee0b 30-Jun-2011 Bill Wendling <isanbard@gmail.com> Add comments to the ASM output to help understand the compact unwind and CIE tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9287a6eef336585628a55e1f33e1e3ea9d7f81cf 30-Jun-2011 Bill Wendling <isanbard@gmail.com> * Use the proper size to output the range size.
* Rough in the compact encoding part.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
4498d39680abe3970dc84dca973aff46d0f9039b 30-Jun-2011 Bill Wendling <isanbard@gmail.com> Stupid error: If the LSDA and Personality functions aren't there, emit 0 instead
of the encoding.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9056e9032001a2d47057cecec5e39895cbc31799 30-Jun-2011 Bill Wendling <isanbard@gmail.com> We don't want to use relocations inside the compact unwind section. Just use the
symbols instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
5b46e8e6b82226810d0d6440b7b5fb05e68df5e8 23-Jun-2011 Bill Wendling <isanbard@gmail.com> Use a reference. Don't make a useless copy of the vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
a8c9e6a943bc0873d1ce781d2444a6d6137f0e17 23-Jun-2011 Bill Wendling <isanbard@gmail.com> Formatting changes. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
4c0c446d7458ffcfbe108ea71f1915f387e150e7 23-Jun-2011 Bill Wendling <isanbard@gmail.com> Use the presence of the __compact_unwind section to indicate that a target
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
/external/llvm/lib/MC/MCDwarf.cpp
e3cd13f0e2d4e2ef30f8a57c0a82d328102eeb26 23-Jun-2011 Bill Wendling <isanbard@gmail.com> Some skeleton code to emit the compact unwind. If the information is unable to
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
/external/llvm/lib/MC/MCDwarf.cpp
dcf0e0c44b0bf0634b2f833369b840c18ac8a5f0 18-Jun-2011 Benjamin Kramer <benny.kra@googlemail.com> Directly print to a raw_ostream instead of printing to a buffer first.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
958b68140e08df76e1b8f3287cd0a24d0fb35734 20-May-2011 Jim Grosbach <grosbach@apple.com> No reason not to allow defining the CFA as a reg w/ offset zero.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9989ef43faf1cd7eb01a6d45063f5040e9c8bb3e 11-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Avoid a gcc warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
e3a0e987f3d4f07512cdb64b9034369f966cb448 10-May-2011 Rafael Espindola <rafael.espindola@gmail.com> On MachO, unlike ELF, there should be no relocation to produce the CIE pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
12f197b3bc736f740373c084be41654b4d88c0a7 10-May-2011 Rafael Espindola <rafael.espindola@gmail.com> The EH symbols are only needed in eh_frame, not debug_frame.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
0d450dc65906a30beb56aeb1ee22b45b1cd4596c 10-May-2011 Rafael Espindola <rafael.espindola@gmail.com> In a debug_frame the cfi offset is to the start of the debug_frame section!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
40a7dbbeff44c4cbd8c7e4f07f28dd614f8a5d08 10-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Add support for producing .deubg_frame sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
774466a8a5388d334b57053fbbfd22b547b729ed 10-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Small cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9f270dadd429771dded5a8572da8c74513771c15 10-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
8a1f2b2bcf78b4b823af11246051a9251f35c095 09-May-2011 NAKAMURA Takumi <geek4civic@gmail.com> Eliminate an unused line to fix a warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
4eafe109459eb115f13f1d19c5ff3cb3678e8c7a 08-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Don't force relaxation of AdvanceLoc instructions on OS X. gdb is happy with
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
/external/llvm/lib/MC/MCDwarf.cpp
be91117c4d719fe15743f21cd5ac9aaf6654c8ab 07-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Switch Darwin to the generic CIE/FDE printer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
b47426b4de98aedceff4989d5d6198fc33dc80bb 03-May-2011 Daniel Dunbar <daniel@zuster.org> MCDwarf: Don't save Twine to local variable, this is almost never safe to do
(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
/external/llvm/lib/MC/MCDwarf.cpp
5426a9ee37667660935d80841c5392d78e254318 01-May-2011 Rafael Espindola <rafael.espindola@gmail.com> GCC uses a different encoding of pointers in the FDE when using
-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
/external/llvm/lib/MC/MCDwarf.cpp
debd7e4e8bc5cfe61bfb71835ce2b1a3fbccc2be 01-May-2011 Rafael Espindola <rafael.espindola@gmail.com> Simplify the handling of pcrel relocations on ELF. Now we do the right thing
for all symbol differences and can drop the old EmitPCRelSymbolValue
method.

This also make getExprForFDESymbol on ELF equal to the one on MachO, and it
can be made non-virtual.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
1f6c87554a0d78103b95816fd2c1ce392b366bcf 29-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Avoid some uses of .uleb128. This is a small speedup and more importantly
lets this code be used when producing assembly code for old assemblers without
uleb support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
4892dff07e7d99eb37aee868c4f2c91e9c7eba14 29-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Last bit by bit compatibility patch to MCDwarf.cpp: If a FDE with no LSDA is
assigned to a CIE that requires one, just output a 0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9099813bd50a05c4b2a495e3cea817f49c1372d8 29-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Add an alternative implementation of CIE and FDE emission that outputs them
in the same order as the one in CodeGen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
a0057ca13f06b8de08483c3e3a143a7236c67097 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Add the getExprForFDESymbol method that responsible for computing the
expressions used in the FDE to refer to symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
bfa27cc5d72e061a96efbb461864d40bc8089ec2 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Add a getExprForPersonalitySymbol method to MCAsmInfo. Use it when
converting the symbol passed to .cfi_personality into bytes is the file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
8bca4106dfc2945723251db10e340183f3e372dd 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Mark the EH symbol global or weak if the corresponding function is.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
235b830328586f0eb141f3263a0868166d80f478 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Add a small temporary hack for producing identical eh_frame sections on OS X.
This removes one of the main advantages of moving eh_frame to MC, but
makes the transition a lot easier to debug (run md5).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
514cecc72b23bb75108844285ab8f3616a08bac5 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Produce the EH_frame# symbols if needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
a8cfb87fa2176fae2d62785a0dd606e4143cefae 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Forward isFunctionEHFrameSymbolPrivate. If it is false, produce the foo.eh
symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
9266cc400ee2fc86abb24ab0819d9da280fb61c4 27-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Force some values to be absolute and align based on the FDE pointers size. A small
step towards using .cfi_* on OS X.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
add294455944cd3f545a04692525c3dc4bfc5894 22-Apr-2011 Chandler Carruth <chandlerc@gmail.com> Delete the other unused variable in this function. Sorry I missed this
the first time through.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
32bd250d304cea9040f45ce1e8d289c69341e656 22-Apr-2011 Chandler Carruth <chandlerc@gmail.com> Remove an unused variable from a function. This is a likely cut-paste-o.
Silences GCC warning.

I wonder why Clang doesn't warn on this...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
abf9af60add19a0f037bb2a05433769bfd1e7f6f 22-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Compute the size of the FDE encoding instead of hard coding it. Update
X8664_ELFTargetObjectFile::getFDEEncoding to match reality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
e8cfbd843d737e1f95c3032c7670c2be3838a6f6 22-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove unused argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
eccbad78e0854743e358841b64f9e0f5eba82861 22-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Don't pass address spaces to EmitULEB128IntValue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
5d7dcd3335234d2a2bc16dc69f86fbb5dcaa8962 12-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove LastOffset from the asm parser.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
25f492e77858dc5a95fcd7180e73aff47925b668 12-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c57543964d1382d3d3a5005f415b6c0f49671b3a 12-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Implement .cfi_same_value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
16c29b5f285f375be53dabaa73e3e91107485fe4 10-Jan-2011 Anton Korobeynikov <asl@math.spbu.ru> Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
19282365147f498a60463d250dbed2f8e1b81861 30-Dec-2010 Benjamin Kramer <benny.kra@googlemail.com> Make a bunch of symbols internal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
caf1158b0f4ee5bd1bfc2c275e95e6fbb359df9d 29-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly encode pcrel|indirect.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
a7e450574c45209ca0b05ff715f9e7dddcbd936c 29-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix bug when trying to output uint16_t or uint32_t.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
b40a71fda188f8ca564e606ac2cb051a44ada311 29-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement cfi_def_cfa. Also don't convert to dwarf reg numbers twice. Looks
like 6 is a fixed point of that and so the previous tests were OK :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3b78cdc57ae25ff021fd67171a7c82d533477a19 29-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Don't produce a "DW_CFA_advance_loc 0".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
fe024d0a624404ada11fb330e7360abc5f88742e 28-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Implement .cfi_remember_state and .cfi_restore_state.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
849ecb1431f878aeef2be8d08679a740e603e95a 28-Dec-2010 Duncan Sands <baldrick@free.fr> Fix warning about size potentially being used uninitialized
when doing a release build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
245a1e20419aa5a3c833d7a8e89168e19d5f4d2c 28-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Relax address updates in the eh_frame section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
5bba08425374ca36fe5fbc7423ce1a09858e4097 28-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Start adding basic support for emitting the call frame instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
bdc3167c086dd4358e24692075db5e7784140843 27-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for .cfi_lsda.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3a83c40ab61d5ca624f2bbadd70237c6adbdb304 27-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for the same encodings of the personality function that gnu as
supports.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
390b693dac1816685cce3074c0ec96e5d1a6c5a4 26-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix .cfi_personality on 32 bit systems.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
d7c8ccae8e48dce3ab7c3e9b4d8a309998c47961 26-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Add basic support for .cfi_personality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
dfe125cc9cfd524575973daa297c9aad10470390 17-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> "Fix" FDE alignment to match what gas does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
89b9372605db2ce3b0085c84089e389f7bc1fbdd 10-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Fixed version of 121434 with no new memory leaks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
f7fd4aa2610f46467369de07f3ec669561d79be0 10-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Revert my previous patch to make the valgrind bots happy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
1c952b9cc98e84b28f68f0f6cf11197263f89863 10-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Initial support for the cfi directives. This is just enough to get

f:
.cfi_startproc
nop
.cfi_endproc

assembled (on ELF).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
5fad7a99c00980fc30ce16fb51ce09dc435c40ad 10-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Use const references.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
0bbe0b440ee2cef47dcb7b281825eb70341c16dd 06-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Second try at making direct object emission produce the same results
as llc + llvm-mc. This time ELF is not changed and I tested that llvm-gcc
bootstrap on darwin10 using darwin9's assembler and linker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
6d86492f5ed0f9853ddd3b24e1aa037e305e1784 06-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Revert previous two patches while I try to find out how to make both
linux and darwin assemblers happy :-(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
2303c9dd69476d045af7cee94e112dd77d22fd28 06-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Add an EmitAbsValue helper method and use it in cases where we want to be sure
that no relocations are used (on MochO).
Fixes llc producing different output from llc + llvm-mc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
db74aeadcd1b9a597ad0f80c0036e67e63ba20ed 04-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Remember the contents of leb and dwarfline fragments when relaxing. This avoids
having to evaluate the expression again when writing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
5d4918dbd116b0b5e561c431b1ea527ee1b9302a 04-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> There are two reasons why we might want to use

foo = a - b
.long foo
instead of just
.long a - b

First, on darwin9 64 bits the assembler produces the wrong result. Second,
if "a" is the end of the section all darwin assemblers (9, 10 and mc) will not
consider a - b to be a constant but will if the dummy foo is created.

Split how we handle these cases. The first one is something MC should take care
of. The second one has to be handled by the caller.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
767b1be3900bdc693aa0ad3e554ba034845f67f7 04-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Next step: Only pad debug_line when the target is darwin. Add a FIXME to avoid
doing that if the target is darwin10 or newer.

This fixes
*) Direct object emission was producing objects without the workaround on
darwin9.
*) Assembly printing was producing objects with the workaround on linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
a8de83c68aaa03cafa0e3618fb8bf030b48f6540 04-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> First step in fixing MC. Make it clear that we are avoiding a bug in the
darwin9 linker, what is needed to avoid it and where to get more information.

Also make the workaround simpler. Just the regular end_sequence we normally
create is more than 4 bytes.

Tested by building cctools and ld64 from darwin9 on a darwin10 system and using
those. I checked that I was able to reproduce the bootstrap failure when
the the workaround was disabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
32a006e606742b1c5401e49607e33717bb5441f0 03-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Try to resolve symbol differences early, and if successful create a plain
data fragment. This reduces the time to assemble the test in 8711 from 60s to
54s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
5113cdbfff7df4c7a79a92e5aa971126254202c6 03-Dec-2010 Devang Patel <dpatel@apple.com> It may not be an option to skip .debug_line if there are file reference in already emitted debug info. So, for now, emit dummy line table entry to make older linker and assemblers happy. This is not a new behavior, original AsmPrinter emitted similar line table entries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
ee4854faf3a4dc622dcb75fe352e33fb32385b3f 02-Dec-2010 Devang Patel <dpatel@apple.com> Use set directive for StartMinusEndExpr.
This is a fix for llvm-gcc-i386-darwin9 buildbot failure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
ad8aaa069cfdb3bdc32b1becc8881f67b5272e14 22-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove some #includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
17fd7bda5ac08f873c063c64e1456f8960a0c765 19-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Add a MCLineSectionOrder vector so that we produce the line tables in a
deterministic order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
195a0ce484cd12a5adae9184188f6d0fb52b84c0 19-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Change some methods in MCDwarf.cpp to be able to handle an arbitrary
MCStreamer instead of just MCObjectStreamer. Address changes cannot
be as efficient as we have to use DW_LNE_set_addres, but at least
most of the logic is shared.

This will be used so that, with CodeGen still using EmitDwarfLocDirective,
llvm-gcc is able to produce debug_line sections without needing an
assembler that supports .loc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
64185cc6090f695c4f97c51cf2adc731f56d1a20 13-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Fix the encoding of negative line deltas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
bac0ad9edadb21bdeb03f65fd86ad7ad16194270 12-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove what looks like dead code in the production of debug lines.

We only produce debug line information if we have seen a line directive, so
this code is dead. Also, if we want to be bug by bug compatible with
gas and sometimes produce "empty" .debug_line sections, this will
match the content produced by gas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3ff57094a7d176a759ddb1e1668489d89064f56c 02-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for expressions in .sleb/.uleb directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
3f55c24df9527de345f6cc960944840a7a101c6a 04-Oct-2010 Kevin Enderby <enderby@apple.com> Incorporate suggestions by Daniel Dunbar after his review. Thanks Daniel!

1) Changed ValidateDwarfFileNumber() to isValidDwarfFileNumber() to be better
named. Since it is just a predicate and isn't actually changing any state.

2) Added a missing return in the comments for setCurrentDwarfLoc() in
include/llvm/MC/MCContext.h for fix formatting.

3) Changed clearDwarfLocSeen() to ClearDwarfLocSeen() since it does change
state.

4) Simplified the last test in isValidDwarfFileNumber() to just a one line
boolean test of MCDwarfFiles[FileNumber] != 0 for the final return statement.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
c095793b4ab027181605c79c9808df12afe45d63 30-Sep-2010 Kevin Enderby <enderby@apple.com> This is the last major patch to implement support for the .loc directive
and output the dwarf line number tables. This contains the code to emit and
encode the dwarf line tables from the previously gathered information in the
MCLineSection objects. This contains all the details to encode the line and
address deltas into the dwarf line table.

To do this an MCDwarfLineAddrFragment has been added.

Also this moves the interface code out of Mach-O streamer into
MCDwarf so it should be useable by other object file formats.

There is now one call to be made from an MCObjectStreamer
EmitInstruction() method:
MCLineEntry::Make(this, getCurrentSection());
to create a line entry after each instruction is assembled.

And one call call to be made from an MCObjectStreamer Finish() method:
MCDwarfFileTable::Emit(this, DwarfLineSection);
when getContext().hasDwarfFiles() is true and is passed a object file specific
MCSection where to emit the dwarf file and the line tables.

This appears to now be correct for 32-bit targets, at least x86. But the
relocation entries for 64-bit Darwin needs some further work which is next
up to work on. So for now the 64-bit Mach-O target does not output the
dwarf file and line tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp
7cbf73a73f296167b6e978dbd919ed249e88eeb5 28-Jul-2010 Kevin Enderby <enderby@apple.com> Added first bit of support for the dwarf .file directive. This patch collects
the info from the .file directive and makes file and directory tables that
will eventually be put out as part of the dwarf info in the output file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/MCDwarf.cpp