| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
simplifies the control flow a bit. This provides a small (~3%) speedup,
but it's primarily a cleanup exercise.
llvm-svn: 8983
|
|
|
|
|
|
| |
This results in no significant speedup, but does provide simpler code
llvm-svn: 8980
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new, simpler, ForwardReferences data structure. This is just the first
simple replacement, subsequent changes will improve the code more.
This simple change improves the performance of loading a file from HDF5
(contributed by Bill) from 2.36s to 1.93s, a 22% improvement. This
presumably has to do with the fact that we only create ONE placeholder for
a particular forward referenced values, and also may be because the data
structure is much simpler.
llvm-svn: 8979
|
|
|
|
| |
llvm-svn: 8978
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the bytecode parser. Before we tried to shoehorn basic blocks into the
"getValue" code path with other types of values. For a variety of reasons
this was a bad idea, so this patch separates it out into its own data structure.
This simplifies the code, makes it fit in 80 columns, and is also much faster.
In a testcase provided by Bill, which has lots of PHI nodes, this patch speeds
up bytecode parsing from taking 6.9s to taking 2.32s. More speedups to
follow later.
llvm-svn: 8977
|
|
|
|
| |
llvm-svn: 8976
|
|
|
|
|
|
| |
Bill gave me from 8.69s to 6.90s.
llvm-svn: 8971
|
|
|
|
|
|
| |
as 'by reference' arguments.
llvm-svn: 8849
|
|
|
|
| |
llvm-svn: 8848
|
|
|
|
| |
llvm-svn: 8718
|
|
|
|
|
|
|
|
|
| |
* Instead of a #define, use inline function
* Fix the name on the #define, errr... now inline function to be more logical:
it doesn't CHECK the alignment, it PERFORMS the alignment
* To get string name of a Type*, use getDescription(), not getName()
llvm-svn: 8683
|
|
|
|
|
|
|
|
|
| |
- no more passing around a string pointer to set errors
- no more returning booleans and checking for errors, we use C++ exceptions
* Broke functionality into 2 new classes, one reads from file, one from a stream
* Implemented lazy function streaming - the parser can read in a function at-a-time
llvm-svn: 8671
|
|
|
|
| |
llvm-svn: 8489
|
|
|
|
|
|
|
|
| |
year old.
If you still have these suckers laying around, you have GOT to rebuild them. geeze.
llvm-svn: 8395
|
|
|
|
|
|
| |
some space for extra flags, so we don't need to bump the revision number.
llvm-svn: 8118
|
|
|
|
| |
llvm-svn: 7944
|
|
|
|
|
|
| |
system.
llvm-svn: 7014
|
|
|
|
| |
llvm-svn: 6284
|
|
|
|
| |
llvm-svn: 6283
|
|
|
|
| |
llvm-svn: 5839
|
|
|
|
| |
llvm-svn: 5836
|
|
|
|
| |
llvm-svn: 5819
|
|
|
|
| |
llvm-svn: 5807
|
|
|
|
| |
llvm-svn: 5790
|
|
|
|
| |
llvm-svn: 5786
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Fix problems where the constant table would not get updated when
resolving constants causes other constants to change.
Changes to the V2 bytecode format
- Null values are implicitly encoded instead of explicitly, this makes
things more compact!
- More compactly represent ConstantPointerRefs
- Bytecode files are represented as:
Header|GlobalTypes|GlobalVars/Function Protos|Constants|Functions|SymTab
instead of
Header|GlobalTypes|Constants|GlobalVars/Function Protos|Functions|SymTab
which makes a lot of things simpler.
Changes to the reader:
- Function loading code is much simpler. We now no longer make function
PlaceHolderHelper objects to be replaced with real functions.
llvm-svn: 5748
|
|
|
|
| |
llvm-svn: 5716
|
|
|
|
| |
llvm-svn: 5715
|
|
|
|
| |
llvm-svn: 5714
|
|
|
|
| |
llvm-svn: 5713
|
|
|
|
| |
llvm-svn: 5712
|
|
|
|
| |
llvm-svn: 5708
|
|
|
|
|
|
| |
wasn't an optimization and it was causing lots of bugs.
llvm-svn: 4779
|
|
|
|
|
|
|
|
| |
reading bytecode files with > 255 types in them, but only when optimization
is enabled. This was caused by GCC shrinking an enum to a single byte
instead of a whole word.
llvm-svn: 4266
|
|
|
|
|
|
| |
4 bytes at a time. Change this to read blocks of 4k
llvm-svn: 4265
|
|
|
|
|
|
|
|
| |
Handle forward referenced constants in a general way. This fixes bug:
Assembler/2002-10-13-ConstantEncodingProblem.llx and allows the SPEC
197.parser benchmark to be built
llvm-svn: 4161
|
|
|
|
|
|
|
| |
constructed. Before, external functions would have an empty argument list,
now a Function ALWAYS has a populated argument list.
llvm-svn: 4149
|
|
|
|
|
|
| |
seemingly it affects opt in uncertain ways :)
llvm-svn: 3866
|
|
|
|
|
|
|
| |
instructions that use indexing. Convert them transparently into a pair
of instructions.
llvm-svn: 3431
|
|
|
|
| |
llvm-svn: 3377
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- ParseConstantPool was resolving reference to value using the function
slot # instead of the global slot #.
- Bytecode reader changes:
- Remove the failure<> template from Bytecode Reader
- Remove extraneous #includes
- s/method/function/ a bit
- Eliminate the fwdRefs class that just added abstraction where it was not
needed, making things more complex.
- Use a vector instead of a list for function signatures.
llvm-svn: 3366
|
|
|
|
| |
llvm-svn: 2917
|
|
|
|
|
|
|
| |
Add class ConstantFwdRefs to resolve forward references to constants
and to globals (unified old code for globals into this).
llvm-svn: 2895
|
|
|
|
|
|
| |
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2778
|
|
|
|
| |
llvm-svn: 2486
|
|
|
|
| |
llvm-svn: 2397
|
|
|
|
| |
llvm-svn: 2378
|
|
|
|
|
|
| |
be 'Argument' instead of FunctionArgument.
llvm-svn: 2216
|
|
|
|
| |
llvm-svn: 2035
|
|
|
|
|
|
| |
change references from MethodARgument to FunctionArgument
llvm-svn: 1991
|