| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
constructed member.
llvm-svn: 207357
|
|
|
|
|
|
|
|
| |
(MCSymbol*)StrSym explicitly.
It will fix crash in codegen on msvc x64.
llvm-svn: 207356
|
|
|
|
|
|
|
|
|
|
| |
duplicate lookup.
This also avoids the need for subtly side-effecting calls to manifest
strings in the string table at the point where items are added to the
accelerator tables.
llvm-svn: 207281
|
|
|
|
| |
llvm-svn: 207060
|
|
|
|
| |
llvm-svn: 207044
|
|
|
|
| |
llvm-svn: 204183
|
|
|
|
| |
llvm-svn: 196519
|
|
|
|
|
|
| |
accelarator insertion in preparation for a second use of this code from type units.
llvm-svn: 195164
|
|
|
|
|
|
|
| |
It works with clang, but GCC has different rules so we can't make all of those
hidden. This reverts commit r190534.
llvm-svn: 190536
|
|
|
|
|
|
| |
Worth 100k on a linux/x86_64 Release+Asserts clang.
llvm-svn: 190534
|
|
|
|
|
|
|
|
| |
we're proposing it for DWARF5.
No functional change intended.
llvm-svn: 190074
|
|
|
|
| |
llvm-svn: 190064
|
|
|
|
| |
llvm-svn: 181663
|
|
|
|
| |
llvm-svn: 170771
|
|
|
|
|
|
| |
into the DwarfUnits class.
llvm-svn: 170770
|
|
|
|
|
|
|
|
|
|
| |
missed in the first pass because the script didn't yet handle include
guards.
Note that the script is now able to handle all of these headers without
manual edits. =]
llvm-svn: 169224
|
|
|
|
| |
llvm-svn: 163974
|
|
|
|
|
|
|
|
|
| |
- Don't copy offsets into HashData, the underlying vector won't change once the table is finalized.
- Allocate HashData and HashDataContents in a BumpPtrAllocator.
- Allocate string map entries in the same allocator.
- Random cleanups.
llvm-svn: 154694
|
|
|
|
| |
llvm-svn: 148740
|
|
|
|
|
|
|
|
|
| |
the debug type accelerator tables to contain the tag and a flag
stating whether or not a compound type is a complete type.
rdar://10652330
llvm-svn: 147651
|
|
|
|
| |
llvm-svn: 144172
|
|
|
|
| |
llvm-svn: 144024
|
|
|
|
| |
llvm-svn: 144023
|
|
|
|
|
|
|
|
| |
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
|