History log of /external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
36c38b81f0938974c0b1b5fde0b838d51466a94f 13-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> Reduce malloc traffic in DwarfAccelTable

- 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
be3f051c49699a86d526833d7dbe95645680a340 26-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> No need to do an expensive stable sort for a bunch of integers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
f1d0f7781e766df878bec4e7977fa3204374f394 26-Mar-2012 Craig Topper <craig.topper@gmail.com> Prune some includes and forward declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
2dd674fdce68f8fd59d78a3bbab2cf5b8d220290 17-Jan-2012 David Blaikie <dblaikie@gmail.com> Removing unused default switch cases in switches over enums that already account for all enumeration values explicitly.

(This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
547abbb40bc9d986446fa493b0caae5ed1f346f2 07-Jan-2012 Eric Christopher <echristo@apple.com> Use -> instead of (*iter).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
7eabae3f50d43af1b76f2bcc5ac6c47700d12b8b 06-Jan-2012 Eric Christopher <echristo@apple.com> Fix a leak I noticed while reviewing the accelerator table changes. Passes
lldb testsuite.

rdar://10652330

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
c36145f19c1e164f7d630b813e9970600d8f2976 06-Jan-2012 Eric Christopher <echristo@apple.com> As part of the ongoing work in finalizing the accelerator tables, extend
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
8368f74c434db60c36a4044dfe80d4abee49ce27 16-Nov-2011 Eric Christopher <echristo@apple.com> Stabilize the output of the dwarf accelerator tables. Fixes a comparison
failure during bootstrap with it turned on.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
0ffe2b4dd6f26fa19827f85bf9e4a766539a859c 10-Nov-2011 Eric Christopher <echristo@apple.com> Rework adding function names to the dwarf accelerator tables, allow
multiple dies per function and support C++ basenames.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
30b4d8b83b7b3995ac1b53f35d3110d48676b187 08-Nov-2011 Eric Christopher <echristo@apple.com> A few more places where we can avoid multiple size queries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
ec8ffc29c04e5e11d8637f1ba1df67d97bafb499 08-Nov-2011 Eric Christopher <echristo@apple.com> Don't evaluate Data.size() on every iteration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
e77546c3c3634863a79ffc3adea52882685db454 07-Nov-2011 Eric Christopher <echristo@apple.com> Simple destructor to delete the hash data we created earlier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
c545322c276f933759e4140027e5f84e480d15d6 07-Nov-2011 Eric Christopher <echristo@apple.com> Avoid the use of a local temporary for comment twines.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
76a4e1a0682c8e855f8b7c0a05d802dce8c07d7a 07-Nov-2011 Eric Christopher <echristo@apple.com> Remove unnecessary addition to API. Replace with something much simpler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
bcbd3a4637f33036d05833364e180f9dfaabb67c 07-Nov-2011 Eric Christopher <echristo@apple.com> Add a new dwarf accelerator table prototype with the goal of replacing
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp