| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 14201
|
|
|
|
|
|
|
| |
to index into structure types and allows arbitrary 32- and 64-bit integer
types to index into sequential types.
llvm-svn: 12651
|
|
|
|
|
|
|
| |
prerelease format for LLVM bytecode files. Now we only are compatible with
LLVM 1.0+.
llvm-svn: 12643
|
|
|
|
|
|
| |
Contributed by Reid Spencer
llvm-svn: 12523
|
|
|
|
| |
llvm-svn: 11224
|
|
|
|
| |
llvm-svn: 10924
|
|
|
|
| |
llvm-svn: 10920
|
|
|
|
|
|
| |
intelligently.
llvm-svn: 10918
|
|
|
|
|
|
|
|
| |
This shrinks the bytecode file for 176.gcc by about 200K (10%), and 254.gap by
about 167K, a 25% reduction. There is still a lot of room for improvement in
the encoding of the compaction table.
llvm-svn: 10914
|
|
|
|
|
|
|
| |
type planes. This saves about 5k on 176.gcc, and is needed for a subsequent
patch of mine I'm working on.
llvm-svn: 10908
|
|
|
|
|
|
|
|
| |
of forcing them to go through ConstantPointerRef's. This allows bytecode
files to mirror .ll files, allows more efficient encoding, and makes it easier
to eventually eliminate CPR's.
llvm-svn: 10883
|
|
|
|
| |
llvm-svn: 10875
|
|
|
|
|
|
|
|
|
|
| |
returning error codes. Because they don't return an error code, they can
return the value read, which simplifies the code and makes the reader more
efficient (yaay!).
Also eliminate the special case code for little endian machines.
llvm-svn: 10871
|
|
|
|
|
|
| |
to emit all of those sbyte constants.
llvm-svn: 10863
|
|
|
|
|
|
| |
the bytecode revision generated by LLVM 1.2.
llvm-svn: 10848
|
|
|
|
| |
llvm-svn: 10654
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
each basic block in function. Instead, just emit a stream of instructions,
chopping up basic blocks based on when we find terminator instructions. This
saves a fairly substantial chunk of bytecode space. In stripped, sample
cases, for example, we get this reduction in size:
197.parser: 163036 -> 137180: 18.8% reduction
254.gap : 844936 -> 689392: 22.6%
255.vortex: 621724 -> 528444: 17.7%
...
Not bad for something this simple. :) Note that this doesn't require a new
bytecode version number at all, though version 1.1 should not need to support
the old format.
llvm-svn: 10280
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Strength reduce several data structures which were left over from the
"bad old days"
* Minor efficiency improvements
* Major efficiency improvement: In BytecodeParser::insertValue, do not allocate
a new ValueTab entry just because some value exists with a large type. This
dramatically reduces the number of allocations/deallocations performed by the
bytecode reader, and speeds up parsing of Kimwitu++ from 34s to 17s. This is
to help address PR127
llvm-svn: 10085
|
|
|
|
|
|
| |
speeds up disassembly of kc++ by .6s
llvm-svn: 10079
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
|
|
|
| |
llvm-svn: 9236
|
|
|
|
| |
llvm-svn: 9228
|
|
|
|
|
|
|
| |
* More dense bytecode encoding for varargs calls (like printf)
* Eliminated the extremely old bytecode format. rev #0 is now 1.0
llvm-svn: 9220
|
|
|
|
|
|
|
|
| |
For now, we translate linkonce into weak linkage in the bytecode format because
we don't have enough bits to represent it. We will rev the bytecode version
soon anyways, so this will be fixed in the near future.
llvm-svn: 9170
|
|
|
|
| |
llvm-svn: 9079
|
|
|
|
| |
llvm-svn: 9077
|
|
|
|
|
|
|
| |
are ordered by name, not by slot, so the previous solution wasn't any good.
On a large testcase, this reduces time to parse from 2.17s to 1.58s.
llvm-svn: 9002
|
|
|
|
| |
llvm-svn: 8994
|
|
|
|
|
|
| |
if possible. This provides a consistent 8.5% speedup.
llvm-svn: 8991
|
|
|
|
|
|
| |
Throw the RawInst class in an anon namespace
llvm-svn: 8990
|
|
|
|
| |
llvm-svn: 8988
|
|
|
|
|
|
| |
in practice though
llvm-svn: 8985
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
changes:
* BytecodeReader::getType(...) used to return a null pointer
on error. This was only checked about half the time. Now we convert
it to throw an exception, and delete the half that checked for error.
This was checked in before, but psmith crashed and lost the change :(
* insertValue no longer returns -1 on error, so callers don't need to
check for it.
* Substantial rewrite of InstructionReader.cpp, to use more efficient,
simpler, data structures. This provides another 5% speedup. This also
makes the code much easier to read and understand.
llvm-svn: 8984
|
|
|
|
|
|
|
| |
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
|