| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
option to enable again that will be matched with a commit to enable
in clang.
llvm-svn: 201378
|
| |
|
|
|
|
|
|
| |
in the line table file list when it's unneeded"
It really crashes cygwin's stage2 configure with "clang -g".
llvm-svn: 201351
|
| |
|
|
| |
llvm-svn: 201197
|
| |
|
|
|
|
|
|
|
| |
DwarfTypeUnit.
Type units need to insert their file strings into the compile unit's
line/file table. This is preliminary work to that end.
llvm-svn: 201196
|
| |
|
|
|
|
|
|
|
|
| |
when it's unneeded
This comes up in empty files or files containing #file directives that
never reference the actual source file name. Came up in a small test of
line tables I was playing with.
llvm-svn: 201187
|
| |
|
|
| |
llvm-svn: 201119
|
| |
|
|
|
|
| |
Thanks to Chandler for the catch.
llvm-svn: 201095
|
| |
|
|
| |
llvm-svn: 201043
|
| |
|
|
|
|
| |
Clang itself was not using this. The only way to access it was via llc.
llvm-svn: 200862
|
| |
|
|
|
|
|
|
|
|
|
| |
emits zero-length arrays as {i32 0}
A bunch of test cases needed to be cleaned up for this, many my fault -
when implementid imported modules I updated test cases by simply
duplicating the prior metadata field - which wasn't always the empty
metadata entry.
llvm-svn: 200731
|
| |
|
|
|
|
|
|
|
| |
This ensures DWARF consumers don't confuse these references for
definitions. I'd argue it might be nice to improve debuggers so we don't
need this, but it's just one field in an abbreviation anyway - so it
doesn't seem worth the fight.
llvm-svn: 200569
|
| |
|
|
|
|
|
|
| |
triple'
This incorporates a couple of fixes reviewed at http://llvm-reviews.chandlerc.com/D2651
llvm-svn: 200440
|
| |
|
|
|
|
| |
when we create the subprogram DIE.
llvm-svn: 200426
|
| |
|
|
|
|
|
|
| |
are relative to in the compile unit. Currently let's just use 0...
Thanks to Greg Clayton for the catch!
llvm-svn: 200425
|
| |
|
|
|
|
|
|
| |
module since there's no range guarantee that we could make given
output order. This also fixes up the testcases that have multiple
CUs to have the correct range offset.
llvm-svn: 200422
|
| |
|
|
|
|
| |
output ordering.
llvm-svn: 200421
|
| |
|
|
| |
llvm-svn: 200420
|
| |
|
|
|
|
|
|
| |
triple."
It was incompatible with --target=i686-win32.
llvm-svn: 200375
|
| |
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D2232
llvm-svn: 200340
|
| |
|
|
|
|
|
|
|
| |
code to see if we're emitting a function into a non-default
text section. This is still a less-than-ideal solution, but more
contained than r199871 to determine whether or not we're emitting
code into an array of comdat sections.
llvm-svn: 200269
|
| |
|
|
| |
llvm-svn: 200264
|
| |
|
|
|
|
|
|
| |
in order to fix the cygwin/mingw bots.
This reverts commit r199990.
llvm-svn: 199991
|
| |
|
|
|
|
|
|
| |
compile unit. Make these relocations on the platforms that need
relocations and add a routine to ensure that we don't put the
addresses in an offset table for split dwarf.
llvm-svn: 199990
|
| |
|
|
|
|
| |
the existence of comdat/special sections.
llvm-svn: 199954
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type units were enabled. The crux of the issue is that the
addDwarfTypeUnitType routine can end up being indirectly recursive. In
this case, the reference into the dense map (TU) became invalid by the
time we popped all the way back and used it to add the DIE type
signature.
Instead, use early return in the case where we can bypass the recursive
step and creating a type unit. Then use the pointer to the new type unit
to set up the DIE type signature in the case where we have to.
I tried really hard to reduce a testcase for this, but it's really
annoying. You have to get this to be mid-recursion when the densemap
grows. Even if we got a test case for this today, it'd be very unlikely
to continue exercising this pattern.
llvm-svn: 199630
|
| |
|
|
|
|
| |
presence of CU ranges.
llvm-svn: 199276
|
| |
|
|
|
|
|
| |
-ffunction-sections and update comments and TODOs about other
places that we should enable this.
llvm-svn: 199263
|
| |
|
|
| |
llvm-svn: 198981
|
| |
|
|
| |
llvm-svn: 198980
|
| |
|
|
| |
llvm-svn: 198979
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r198865 which reverts r198851.
ASan identified a use-of-uninitialized of the DwarfTypeUnit::Ty variable
in skeleton type units.
llvm-svn: 198908
|
| |
|
|
|
|
| |
It caused undefined behavior. DwarfTypeUnit::Ty might not be initialized properly, I guess.
llvm-svn: 198865
|
| |
|
|
| |
llvm-svn: 198851
|
| |
|
|
|
|
| |
type unit skeletons.
llvm-svn: 198846
|
| |
|
|
| |
llvm-svn: 198843
|
| |
|
|
|
|
|
|
|
|
| |
as well.
Since we'll now also need the split dwarf file name along with the
language in DwarfTypeUnits, just use the whole DICompileUnit rather than
explicitly handling each field needed.
llvm-svn: 198842
|
| |
|
|
| |
llvm-svn: 198700
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IR-provided unique names.""
This reverts commit r198398, thus reapplying r198397.
I had accidentally introduced an endianness issue when applying the hash
to the type unit. Using support::ulittle64_t in the reinterpret_cast in
addDwarfTypeUnitType fixes this issue.
Original commit message:
Debug Info: Type Units: Simplify type hashing using IR-provided unique
names.
What's good for LTO metadata size problems ought to be good for non-LTO
debug info size too, so let's rely on the same uniqueness in both cases.
If it's insufficient for non-LTO for whatever reason (since we now won't
be uniquing CU-local types or any C types - but these are likely to not
be the most significant contributors to type bloat) we should consider a
frontend solution that'll help both LTO and non-LTO alike, rather than
using DWARF-level DIE-hashing that only helps non-LTO debug info size.
It's also much simpler this way and benefits C++ even more since we can
deduplicate lexically separate definitions of the same C++ type since
they have the same mangled name.
llvm-svn: 198436
|
| |
|
|
|
|
|
|
|
|
|
| |
unique names."
Reverting due to bot failure I won't have time to investigate until
tomorrow.
This reverts commit r198397.
llvm-svn: 198398
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
What's good for LTO metadata size problems ought to be good for non-LTO
debug info size too, so let's rely on the same uniqueness in both cases.
If it's insufficient for non-LTO for whatever reason (since we now won't
be uniquing CU-local types or any C types - but these are likely to not
be the most significant contributors to type bloat) we should consider a
frontend solution that'll help both LTO and non-LTO alike, rather than
using DWARF-level DIE-hashing that only helps non-LTO debug info size.
It's also much simpler this way and benefits C++ even more since we can
deduplicate lexically separate definitions of the same C++ type since
they have the same mangled name.
llvm-svn: 198397
|
| |
|
|
| |
llvm-svn: 198394
|
| |
|
|
| |
llvm-svn: 198393
|
| |
|
|
|
|
| |
obvious.
llvm-svn: 198361
|
| |
|
|
| |
llvm-svn: 198358
|
| |
|
|
| |
llvm-svn: 198357
|
| |
|
|
|
|
|
|
| |
Use an if statement instead of a pair of ternary operators checking
the same condition.
Use a cheap method call rather than returning the local symbol.
llvm-svn: 198351
|
| |
|
|
|
|
|
|
|
|
| |
r198196: Use a pointer to keep track of the skeleton unit for each normal unit and construct it up front.
r198199: Reapply r198196 with a fix to zero initialize the skeleton pointer.
r198202: Fix aranges and split dwarf by ensuring that the symbol and relocation back to the compile unit from the aranges section is to the skeleton unit and not the one in the dwo.
with a fix to use integer 0 for DW_AT_low_pc since the relocation to the text section symbol was causing issues with COFF. Accordingly remove addLocalLabelAddress and machinery since we're not currently using it.
llvm-svn: 198222
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
i686-cygming.
r198196: Use a pointer to keep track of the skeleton unit for each normal unit and construct it up front.
r198199: Reapply r198196 with a fix to zero initialize the skeleton pointer.
r198202: Fix aranges and split dwarf by ensuring that the symbol and relocation back to the compile unit from the aranges section is to the skeleton unit and not the one in the dwo.
They could be reproducible with explicit target.
llvm/lib/MC/WinCOFFObjectWriter.cpp:224: bool {anonymous}::COFFSymbol::should_keep() const: Assertion `Section->Number != -1 && "Sections with relocations must be real!"' failed.
llvm-svn: 198208
|
| |
|
|
|
|
|
|
|
|
|
| |
back to the compile unit from the aranges section is to the skeleton
unit and not the one in the dwo.
Do this by adding a method to grab a forwarded on local sym and local
section by querying the skeleton if one exists and using that. Add
a few tests to verify the relocations are back to the correct section.
llvm-svn: 198202
|
| |
|
|
| |
llvm-svn: 198199
|