| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 10917
|
|
|
|
|
|
|
|
| |
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: 10915
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This saves about 15K in 176.gcc, coupled with another patch that I'm working on.
llvm-svn: 10889
|
|
|
|
|
|
|
|
| |
bytecode files when compiling 176.gcc, but more importantly will make it
easier to eliminate CPR's in the future (no new .bc revision will be
required to support them)
llvm-svn: 10884
|
|
|
|
|
|
|
|
| |
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: 10882
|
|
|
|
| |
llvm-svn: 10876
|
|
|
|
| |
llvm-svn: 10875
|
|
|
|
| |
llvm-svn: 10874
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 10870
|
|
|
|
|
|
|
|
|
|
|
|
| |
intended to save size (and does on small programs), but on big programs it
actually increases the size of the program slightly. The deal is that many
functions end up using the characters that the string contained, and the
characters are no longer in the global constant table, so they have to be
emitted in function specific constant pools.
This pessimization will be fixed in subsequent patches.
llvm-svn: 10864
|
|
|
|
|
|
| |
to emit all of those sbyte constants.
llvm-svn: 10863
|
|
|
|
|
|
| |
data.
llvm-svn: 10861
|
|
|
|
|
|
| |
byte, it's totally endian incorrect!
llvm-svn: 10857
|
|
|
|
| |
llvm-svn: 10856
|
|
|
|
|
|
|
| |
i'm using in my work to reduce the bytecode file sizes. These will eventually
be removed.
llvm-svn: 10849
|
|
|
|
|
|
| |
the bytecode revision generated by LLVM 1.2.
llvm-svn: 10848
|
|
|
|
| |
llvm-svn: 10838
|
|
|
|
| |
llvm-svn: 10791
|
|
|
|
|
|
|
|
|
|
| |
occurs when the symbol table for a module has been stripped, making all of the
function local symbols go away.
This saves 6728 bytes in the stripped bytecode file of 254.gap (which obviously
has 841 functions), which isn't a ton, but helps and was easy.
llvm-svn: 10750
|
|
|
|
| |
llvm-svn: 10742
|
|
|
|
| |
llvm-svn: 10741
|
|
|
|
|
|
|
| |
* Refactor reader stuff out of include/llvm/Bytecode/Primitives.h. This is
internal implementation details for the reader, not public interfaces!
llvm-svn: 10739
|
|
|
|
|
|
| |
internal implementation details for the writer, not public interfaces!
llvm-svn: 10738
|
|
|
|
| |
llvm-svn: 10737
|
|
|
|
| |
llvm-svn: 10721
|
|
|
|
| |
llvm-svn: 10654
|
|
|
|
| |
llvm-svn: 10650
|
|
|
|
|
|
| |
routines.
llvm-svn: 10642
|
|
|
|
| |
llvm-svn: 10612
|
|
|
|
|
|
| |
anything; it just causes the bug to go dormant.
llvm-svn: 10585
|
|
|
|
|
|
|
|
|
|
| |
Modified ReadArchiveBuffer() so that it dynamically allocates the
std::string object used to hold the bytecode object file's name. This is
necessary because it is passed by reference to the new Module that is
allocated to represent the bytecode object, and previously we were
using a std::string that disappeared on function exit.
llvm-svn: 10565
|
|
|
|
| |
llvm-svn: 10493
|
|
|
|
|
|
| |
get an error inside the bytecode reader.
llvm-svn: 10415
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
beginning of the archive member data as an argument.
Get rid of ParseLongFilenameSection(), which is dead.
In ReadArchiveBuffer(), implement support for 4.4BSD/MacOSX long filenames.
This is kind of invasive, because they prepend the long filename to the archive
member data, and then lie about the size. So we have to keep track of the real
size.
llvm-svn: 10392
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 10084
|
|
|
|
| |
llvm-svn: 10083
|
|
|
|
| |
llvm-svn: 10082
|
|
|
|
| |
llvm-svn: 10081
|
|
|
|
|
|
| |
speeds up disassembly of kc++ by .6s
llvm-svn: 10079
|
|
|
|
| |
llvm-svn: 10051
|
|
|
|
|
|
|
|
| |
Correctly parse the Long Filename section of the archive.
When reading in archive members, set their ModuleIDs to
"ARCHIVENAME(MEMBERNAME)", as is traditional.
llvm-svn: 10043
|
|
|
|
|
|
|
|
| |
These fools don't even wrap code at 80 columns.
Oh wait, _I_ wrote that. That explains a lot!!
llvm-svn: 9999
|
|
|
|
|
|
|
| |
constant expression, but is of (for example) ubyte type, then it is a
ConstantUInt. This was not true for placeholders.
llvm-svn: 9994
|
|
|
|
| |
llvm-svn: 9903
|