2216 Commits

Author SHA1 Message Date
David Blaikie
2d39ad82bc Revert "DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers"
This reverts commit r197210.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197211 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-13 06:43:32 +00:00
David Blaikie
bc6b250c74 DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers
This commit does not complete the type units feature - there are issues
around fission support (skeletal type units, pubtypes/pubnames) and
hashing of some types including those containing references to types in
other type units.

Originally committed as r197073 and reverted in r197079.
Recommitted as r197197 to reproduce the failure and reverted as r197199

Turns out there was unstable ordering in the type unit dumping code.
Fixed by using MapVector in DWARFContext to store the debug_types
comdat sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197210 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-13 06:27:38 +00:00
David Blaikie
8290d175ff Revert "DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers"
This reverts commit r197197.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197199 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-13 01:24:54 +00:00
David Blaikie
f4597a0cd4 DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers
This commit does not complete the type units feature - there are issues
around fission support (skeletal type units, pubtypes/pubnames) and
hashing of some types including those containing references to types in
other type units.

Originally committed as r197073 and reverted in r197079.

This commit originally got jumbled up with another build-breaking commit
and I can't find the failures I thought this caused anymore.
Recommitting to hopefully get some clean buildbot results to work from.
I have a sneaking suspicion there's unstable output in the comdat group
output of MCStreamer...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197197 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-13 01:06:41 +00:00
Rafael Espindola
343da2e255 On ELF and COFF treat linker_private like private.
The linkers on these systems don't have anything special to do with these
symbols. Since the intent is for them to be absent from the final object,
just treat them as private.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197080 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-11 22:18:44 +00:00
David Blaikie
118de30ec1 Revert "DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers"
This reverts commit r197073.

The test seems to be failing on some buildbots for unknown reasons.
Reverting until I can figure that out. If anyone's got a reproduction
(.s and .o together would be great) - I'd really appreciate it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197079 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-11 22:08:39 +00:00
David Blaikie
3d2670cc54 DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers
This commit does not complete the type units feature - there are issues
around fission support (skeletal type units, pubtypes/pubnames) and
hashing of some types including those containing references to types in
other type units.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197073 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-11 21:36:27 +00:00
David Blaikie
bd71b0a161 DwarfUnit: LLVM_OVERRIDE and constify some functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197072 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-11 21:14:02 +00:00
David Fang
b59d46efa5 on darwin<10, fallback to .weak_definition (PPC,X86)
.weak_def_can_be_hidden was not yet supported by the system assembler

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196970 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-10 21:37:41 +00:00
NAKAMURA Takumi
e1d55bb5d5 Add proper dependencies to LLVMBuild.txt in llvm/lib.
I'll prune redundant deps in LLVMBuild.txt, later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196881 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-10 05:39:34 +00:00
Eric Christopher
06e68434a5 Disable emitting DW_AT_GNU_ranges_base until we actually use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196851 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-10 00:40:03 +00:00
Eric Christopher
8c087da028 We never emit info into the macro info section, stop emitting an
empty one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196849 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-10 00:26:10 +00:00
Eric Christopher
3dd4e46746 80-col.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196848 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-10 00:26:06 +00:00
Eric Christopher
4a644cc525 Rename CompileUnit->DwarfCompileUnit and TypeUnit->DwarfTypeUnit for
clarity. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196844 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-09 23:57:44 +00:00
Eric Christopher
59e818d8c4 Rename Unit->DwarfUnit to match the file name and make it a bit less
ambiguous. Reformat to match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196838 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-09 23:32:48 +00:00
David Blaikie
c3b96bacc8 DwarfDebug/Unit: Remove another case of label recreation by storing the gnu_ranges label in the unit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196793 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-09 17:51:30 +00:00
David Blaikie
b0ec1be634 DebugInfo: Move unit begin/end labels into the unit
This removes another case of spooky action at a distance (building the
same label names in multiple places creating an implicit dependency
between those places) and helps pave the way for type units.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196617 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-06 22:33:05 +00:00
David Blaikie
b5a244bd54 DebugInfo: Include the section and start-of-section label in the unit
This is a precursor to moving type units into the correct (debug_types)
section with comdat groups and full type unit headers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196615 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-06 22:14:48 +00:00
David Blaikie
08e03ce70f DwarfDebug: Walk skeletons during fission pubtypes/pubnames emission
This more accurately represents the actual walk - pubnames/pubtypes are
emitted into the .o, not the .dwo, and reference the skeletons not the
full units.

Use the newly established ID->index invariant to lookup the underlying
full unit to retrieve its public names and types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196601 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-06 19:38:49 +00:00
David Blaikie
5877a5b8a2 DebugInfo: Ensure unit IDs (for non-skeletal units) match thein index in the list
This simplifies reasoning about the code and enables simple navigation
from a skeleton to its full unit. (currently there are no type unit
skeletons, so the skeleton list doesn't have the same ID == index
property)

Eventually we should get rid of this ID and just store the labels we
need as the IDs are allowing this code to create difficult to
manage/understand associations (loops over non-skeletal units are
implicitly referencing their skeletal units during pub* emission, for
example). It may be necessary to have some kind of skeleton->full unit
association and a more direct pointer or similar device would be
preferable than an index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196600 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-06 19:38:46 +00:00
Eric Christopher
60e5b16f41 Rename DwarfUnits to DwarfFile to help avoid some naming confusion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196519 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05 18:06:10 +00:00
David Blaikie
0d668218e7 DwarfDebug/DwarfUnit: Push abbreviation structures down into DwarfUnits to reduce duplication
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196479 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05 07:43:55 +00:00
David Blaikie
7afb463a65 DwarfDebug: Avoid unnecessary abbreviation lookup when emitting DIEs
DIEs already contain references directly to their DIEAbbrev, use that
instead of looking it up based on index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196446 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05 01:01:41 +00:00
David Blaikie
acf6571d80 DwarfDebug: Remove trivial function wrapper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196445 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05 01:01:37 +00:00
Eric Christopher
9e568665ac 80-column.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196442 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05 00:36:21 +00:00
Eric Christopher
7eca7002f2 Remove special handling for DW_AT_ranges support by constructing the
values with the correct behavior.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196441 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05 00:36:17 +00:00
Eric Christopher
e4b236cf59 Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196437 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-05 00:13:15 +00:00
David Blaikie
81a14a80f3 DwarfUnit: Correct comment by generalizing over all units, not just compilation units.
Code review feedback on r196394 by Paul Robinson.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196433 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 23:39:02 +00:00
Eric Christopher
3f8689f8af Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196431 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 23:24:38 +00:00
Eric Christopher
e28204ea0a Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196430 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 23:24:28 +00:00
Eric Christopher
881c0bb5a3 Remove incorrect comment and pointless cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196427 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 23:05:21 +00:00
Eric Christopher
dda6f1fb00 const on its own line is confusing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196426 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 22:54:45 +00:00
Eric Christopher
6b2011a4a3 Simplify check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196422 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 22:29:02 +00:00
Eric Christopher
690a455b0a Reformat slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196421 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 22:26:43 +00:00
Eric Christopher
856d2fc052 Make RangeSpanList take a symbol for the beginning of the range
rather than magically making the names match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196419 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 22:04:50 +00:00
David Blaikie
ec112cfc45 DwarfDebug: Unconditionalize trivial asm comments
While we still have a few (~4) non-trivial comments with string
concatenation, etc that should remain conditionalized, these trivial
literal comments can be simplified.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196416 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 21:51:05 +00:00
David Blaikie
a18dcd4cce DwarfDebug: Reduce code duplication for sec offset emission
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196414 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 21:31:26 +00:00
Eric Christopher
ae49c38733 Couple of small logical cleanups to use !empty rather than other
checks. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196412 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 21:20:15 +00:00
Eric Christopher
fb934a2183 Use move and stack allocation for RangeSpanLists. As a result make
a few things more const as well because we're now using const
references to refer to iterators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196398 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 19:06:58 +00:00
David Blaikie
193140b085 DebugInfo: Remove unused start/end labels for the debug_abbrevs section
Since we always emit only one abbrevation section (shared by all the
compilation units in this module) there's no need for a separate label
at the start of each one (and we weren't using the CU ID anyway, so
there really was only one label). Use the section label instead and drop
the wholely unused debug_abbrev_end label.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196394 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 18:12:28 +00:00
David Blaikie
3ddd790df1 DebugInfo: Avoid recreating matching labels in disparate places.
Instead, reuse the same MCSymbol - this should make the code easier to
follow by avoiding hard to trace dependencies between different bits of
code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196392 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 17:55:41 +00:00
Eric Christopher
d38749bec5 Update comment grammar and contents.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196323 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 22:05:55 +00:00
Timur Iskhodzhanov
aceff4a16e Fix a typo in a comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196304 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 18:57:43 +00:00
Timur Iskhodzhanov
ac07cd54ed Reland 196270 "Generalize debug info / EH emission in AsmPrinter"
Addressing the existense AMDGPUAsmPrinter and other subclasses of AsmPrinter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196288 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 15:10:23 +00:00
NAKAMURA Takumi
b5dd6691ca Revert r196270, "Generalize debug info / EH emission in AsmPrinter"
It broke CodeGen/R600 tests with +Asserts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196272 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 13:15:54 +00:00
Timur Iskhodzhanov
c6a2cbbacb Generalize debug info / EH emission in AsmPrinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196270 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 12:05:18 +00:00
Eric Christopher
5b93ae5ab5 Refactor the handling of lexical block and inline scope ranges
into a single function. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196181 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 00:45:59 +00:00
Eric Christopher
5c21e864d9 Update doxygen tags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196180 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 00:45:56 +00:00
Eric Christopher
16df1b227c Reorder member function declarations to match source order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196179 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 00:45:54 +00:00
Eric Christopher
c2efbdbb60 Make ranges and range lists be a discrete entity that can be located
and emitted per function and CU. Begins coalescing ranges as a first
class entity through debug info. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196178 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-03 00:45:45 +00:00