| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
instance and a concrete inlined instance are the use of DW_TAG_subprogram
instead of DW_TAG_inlined_subroutine and the who owns the tree.
We were also omitting DW_AT_inline from the abstract roots. To fix this,
make sure we mark abstract instance roots with DW_AT_inline even when
we have only out-of-line instances referring to them with DW_AT_abstract_origin.
FileCheck is not a very good tool for tests like this, maybe we should add
a -verify mode to llvm-dwarfdump.
llvm-svn: 144441
|
| |
|
|
| |
llvm-svn: 144360
|
| |
|
|
|
|
| |
addr DIE when adding to the dwarf accelerator tables.
llvm-svn: 144354
|
| |
|
|
|
|
|
|
| |
it first.
This is a more general fix to pr11300.
llvm-svn: 144324
|
| |
|
|
|
|
| |
as well.
llvm-svn: 144319
|
| |
|
|
|
|
| |
forward decls and have names into the dwarf accelerator types table.
llvm-svn: 144306
|
| |
|
|
|
|
| |
multiple dies per function and support C++ basenames.
llvm-svn: 144304
|
| |
|
|
| |
llvm-svn: 144194
|
| |
|
|
|
|
| |
entries.
llvm-svn: 144184
|
| |
|
|
| |
llvm-svn: 144172
|
| |
|
|
| |
llvm-svn: 144169
|
| |
|
|
|
|
| |
and is different than the normal name.
llvm-svn: 144130
|
| |
|
|
| |
llvm-svn: 144105
|
| |
|
|
| |
llvm-svn: 144099
|
| |
|
|
| |
llvm-svn: 144095
|
| |
|
|
| |
llvm-svn: 144027
|
| |
|
|
| |
llvm-svn: 144024
|
| |
|
|
| |
llvm-svn: 144023
|
| |
|
|
| |
llvm-svn: 143982
|
| |
|
|
| |
llvm-svn: 143974
|
| |
|
|
|
|
| |
Fixes a self-host error.
llvm-svn: 143970
|
| |
|
|
| |
llvm-svn: 143925
|
| |
|
|
| |
llvm-svn: 143924
|
| |
|
|
|
|
|
|
| |
to fix the types section (all types, not just global types), and testcases.
The code to do the final emission is disabled by default.
llvm-svn: 143923
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the pubnames and pubtypes tables. LLDB can currently use this format
and a full spec is forthcoming and submission for standardization is planned.
A basic summary:
The dwarf accelerator tables are an indirect hash table optimized
for null lookup rather than access to known data. They are output into
an on-disk format that looks like this:
.-------------.
| HEADER |
|-------------|
| BUCKETS |
|-------------|
| HASHES |
|-------------|
| OFFSETS |
|-------------|
| DATA |
`-------------'
where the header contains a magic number, version, type of hash function,
the number of buckets, total number of hashes, and room for a special
struct of data and the length of that struct.
The buckets contain an index (e.g. 6) into the hashes array. The hashes
section contains all of the 32-bit hash values in contiguous memory, and
the offsets contain the offset into the data area for the particular
hash.
For a lookup example, we could hash a function name and take it modulo the
number of buckets giving us our bucket. From there we take the bucket value
as an index into the hashes table and look at each successive hash as long
as the hash value is still the same modulo result (bucket value) as earlier.
If we have a match we look at that same entry in the offsets table and
grab the offset in the data for our final match.
llvm-svn: 143921
|
| |
|
|
| |
llvm-svn: 143920
|
| |
|
|
| |
llvm-svn: 143919
|
| |
|
|
| |
llvm-svn: 143918
|
| |
|
|
|
|
|
|
| |
encoding from the DWARF asm printer.
As a side effect we now print dwarf ulebs with .ascii directives.
llvm-svn: 143809
|
| |
|
|
| |
llvm-svn: 143799
|
| |
|
|
|
|
|
|
| |
DW_AT_specification to
point back in the file in the included testcase. Fixes PR11300.
llvm-svn: 143726
|
| |
|
|
| |
llvm-svn: 143634
|
| |
|
|
|
|
| |
implied by directory index zero.
llvm-svn: 143570
|
| |
|
|
|
|
|
|
|
|
|
| |
host-endian-neutral.
Don't assume APInt::getRawData() would hold target-aware endianness nor host-compliant endianness. rawdata[0] holds most lower i64, even on big endian host.
FIXME: Add a testcase for big endian target.
FIXME: Ditto on CompileUnit::addConstantFPValue() ?
llvm-svn: 143194
|
| |
|
|
|
|
|
| |
tools that read the debug info in the .o files by making the DIE sizes more
consistent.
llvm-svn: 143186
|
| |
|
|
| |
llvm-svn: 143097
|
| |
|
|
|
|
| |
change.
llvm-svn: 143074
|
| |
|
|
| |
llvm-svn: 142912
|
| |
|
|
| |
llvm-svn: 142892
|
| |
|
|
| |
llvm-svn: 142436
|
| |
|
|
| |
llvm-svn: 142435
|
| |
|
|
| |
llvm-svn: 142307
|
| |
|
|
|
|
|
|
|
|
| |
.file filenumber "directory" "filename"
This removes one join+split of the directory+filename in MC internals. Because
bitcode files have independent fields for directory and filenames in debug info,
this patch may change the .o files written by existing .bc files.
llvm-svn: 142300
|
| |
|
|
| |
llvm-svn: 142139
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
file. Since it should only be used when necessary propagate it through
the backend code generation and tweak testcases accordingly.
This helps with code like in clang's test/CodeGen/debug-info-line.c where
we have multiple #line directives within a single lexical block and want
to generate only a single block that contains each file change.
Part of rdar://10246360
llvm-svn: 141729
|
| |
|
|
|
|
| |
modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment.
llvm-svn: 141135
|
| |
|
|
| |
llvm-svn: 141005
|
| |
|
|
| |
llvm-svn: 141004
|
| |
|
|
| |
llvm-svn: 140784
|
| |
|
|
|
|
| |
when there is both a catch and a cleanup. Correct the comment.
llvm-svn: 140686
|