| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
the bc reader by 0.8%. Deemed "not worth it"
llvm-svn: 34169
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bcreader counts on "primitive" types being inserted before they are
referenced in other types. With recent changes to the bcwriter, this fact
became exposed since IntegerType is no longer "primitive". We can no longer
count on all IntegerTypes being inserted early. This patch modifies
getOrCreateTypeSlot to insert any sub-type that can't possibly recurse
before we create the slot for the type. This has the benefit of reducing
the number of OpaqueType objects the reader needs to deal with.
llvm-svn: 34147
|
|
|
|
| |
llvm-svn: 34146
|
|
|
|
| |
llvm-svn: 34136
|
|
|
|
|
|
| |
speeds up bcwriting of 447.dealII by 40%, from 4.63s to 3.32s.
llvm-svn: 34135
|
|
|
|
|
|
|
|
| |
is inserted into the table, it remembers that the value needs to be popped
off. This makes purgeFunction much faster, speeding up bcwriting of 447.dealII
from 6.8->4.6s (47%).
llvm-svn: 34133
|
|
|
|
|
|
|
| |
per function. This speeds up bcwriting on 447.dealII from 10.16s to 6.81s
(49%).
llvm-svn: 34132
|
|
|
|
|
|
|
| |
function-local values. This speeds up bcwriting a small 2.2% (10.384->10.156s
on 447.dealII), but paves the way for more important changes.
llvm-svn: 34131
|
|
|
|
| |
llvm-svn: 34130
|
|
|
|
| |
llvm-svn: 34129
|
|
|
|
|
|
| |
clients. Same for getTypeSlot.
llvm-svn: 34128
|
|
|
|
|
|
| |
iteration stuff.
llvm-svn: 34127
|
|
|
|
| |
llvm-svn: 34126
|
|
|
|
| |
llvm-svn: 34125
|
|
|
|
|
|
| |
caller.
llvm-svn: 34124
|
|
|
|
| |
llvm-svn: 34123
|
|
|
|
| |
llvm-svn: 34122
|
|
|
|
| |
llvm-svn: 34121
|
|
|
|
| |
llvm-svn: 34120
|
|
|
|
|
|
| |
there.
llvm-svn: 34119
|
|
|
|
| |
llvm-svn: 34118
|
|
|
|
| |
llvm-svn: 34117
|
|
|
|
| |
llvm-svn: 34116
|
|
|
|
| |
llvm-svn: 34115
|
|
|
|
| |
llvm-svn: 34114
|
|
|
|
|
|
| |
for types.
llvm-svn: 34113
|
|
|
|
| |
llvm-svn: 34091
|
|
|
|
|
|
|
|
|
|
|
| |
2. All function-level constants are now incorporated into the module-level
constant pool, since the compaction table was removed. Eliminate extra
work to check for them.
This speeds up the bcwriter from 24.4s to 13.1s on 447.dealII and .73 -> .56s
on kc++ in a release build.
llvm-svn: 34084
|
|
|
|
|
|
|
|
|
|
| |
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.
llvm-svn: 33918
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
outweight its computational costs. This patch removes all compaction
table handling from the bcreader and bcwriter. For the record, here's the
difference betweeen having and not having compaction tables for some tests:
Test With Without Size Chg
Olden/mst 5,602 5,598 +0.1%
viterbi 18,026 17,795 +1.3%
obsequi 162,133 166,663 -2.8%
burg 224,090 228,148 -1.8%
kimwitu++ 4,933,263 5,121,159 -3.8%
176.gcc 8,470,424 9,141,539 -7.3%
It seems that it is more beneficial to larger files, but even on the largest
test case we have (176.gcc) it only amounts ot an I/O saving of 7.3%.
llvm-svn: 33661
|
|
|
|
| |
llvm-svn: 33155
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the arbitrary bit-width integer feature. The feature allows
integers of any bitwidth (up to 64) to be defined instead of just 1, 8,
16, 32, and 64 bit integers.
This change does several things:
1. Introduces a new Derived Type, IntegerType, to represent the number of
bits in an integer. The Type classes SubclassData field is used to
store the number of bits. This allows 2^23 bits in an integer type.
2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and
64-bit integers. These are replaced with just IntegerType which is not
a primitive any more.
3. Adjust the rest of LLVM to account for this change.
Note that while this incremental change lays the foundation for arbitrary
bit-width integers, LLVM has not yet been converted to actually deal with
them in any significant way. Most optimization passes, for example, will
still only deal with the byte-width integer types. Future increments
will rectify this situation.
llvm-svn: 33113
|
|
|
|
|
|
|
|
|
| |
Take an incremental step towards type plane elimination. This change
separates types from values in the symbol tables by finally making use
of the TypeSymbolTable class. This yields more natural interfaces for
dealing with types and unclutters the SymbolTable class.
llvm-svn: 32956
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update for signless integer types and parameter attribute implementation.
Of significant note:
1. This changes the bytecode format yet again.
2. There are 1/2 as many integer type planes (this is a good thing)
3. GEP indices now use only 1 bit to identify their type which means
more GEP instructions won't be relegated to format 0 (size win)
4. Parameter attributes are implemented but currently being stored
verbosely for each function type. Some other day this needs to be
optimized for size.
llvm-svn: 32783
|
|
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
|
|
|
|
|
|
| |
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
llvm-svn: 31990
|
|
|
|
|
|
|
| |
the compaction table for a function. This broke compilation of hexxagon
on darwin/x86 with recent changes.
llvm-svn: 28717
|
|
|
|
| |
llvm-svn: 25621
|
|
|
|
| |
llvm-svn: 22254
|
|
|
|
| |
llvm-svn: 21704
|
|
|
|
| |
llvm-svn: 21701
|
|
|
|
| |
llvm-svn: 21439
|
|
|
|
|
|
| |
* Convert tabs to spaces
llvm-svn: 21418
|
|
|
|
|
|
|
|
| |
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597
|
|
|
|
| |
llvm-svn: 18500
|
|
|
|
| |
llvm-svn: 17201
|
|
|
|
|
|
| |
Assembler/2004-10-22-BCWriterUndefBug.llx
llvm-svn: 17177
|
|
|
|
|
|
|
|
| |
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
|
|
|
|
|
|
|
| |
CompactionTable really needs to be emitted. This is not a straight forward
computation, hence the need for a member function here.
llvm-svn: 16062
|
|
|
|
| |
llvm-svn: 15325
|