llvm-6502/lib
Eric Christopher bcbd3a4637 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
2011-11-07 09:18:42 +00:00
..
Analysis Teach instsimplify to simplify calls to undef. 2011-11-04 18:32:42 +00:00
Archive build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
AsmParser build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
Bitcode build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
CodeGen Add a new dwarf accelerator table prototype with the goal of replacing 2011-11-07 09:18:42 +00:00
DebugInfo Audited all the format strings in libDebugInfo and fixed those that didn't match the types. 2011-11-05 16:01:13 +00:00
ExecutionEngine build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
Linker build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
MC Replace (Lower|Upper)caseString in favor of StringRef's newest methods. 2011-11-06 20:37:06 +00:00
Object MachOObject: Use DataExtractor's uleb parser instead of rolling our own. 2011-11-05 12:13:21 +00:00
Support Fix a typo. 2011-11-06 20:36:50 +00:00
TableGen build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
Target Add AVX2 variable shift instructions and intrinsics. 2011-11-07 08:26:24 +00:00
Transforms Do simple cross-block DSE when we encounter a free statement. Fixes PR11240. 2011-11-05 10:48:42 +00:00
VMCore build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
LLVMBuild.txt build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
Makefile Remove more of llvmc and dependencies. 2011-09-20 00:34:27 +00:00