| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 9736
|
|
|
|
| |
llvm-svn: 9735
|
|
|
|
|
|
| |
inside DEBUG_OUTPUT so that it compiles.
llvm-svn: 9614
|
|
|
|
| |
llvm-svn: 9590
|
|
|
|
| |
llvm-svn: 9321
|
|
|
|
| |
llvm-svn: 9312
|
|
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
|
|
|
|
|
| |
"Instruction::PHI" to be more consistent with the other instructions.
llvm-svn: 9269
|
|
|
|
| |
llvm-svn: 9236
|
|
|
|
| |
llvm-svn: 9228
|
|
|
|
|
|
| |
more efficient encoding of varargs calls, and the new varargs intrinsics.
llvm-svn: 9221
|
|
|
|
|
|
|
| |
* More dense bytecode encoding for varargs calls (like printf)
* Eliminated the extremely old bytecode format. rev #0 is now 1.0
llvm-svn: 9220
|
|
|
|
|
|
|
|
|
| |
Rename SlotCalculator::getValSlot() to SlotCalculator::getSlot(),
SlotCalculator::insertValue() to SlotCalculator::getOrCreateSlot(),
SlotCalculator::insertVal() to SlotCalculator::insertValue(), and
SlotCalculator::doInsertVal() to SlotCalculator::doInsertValue().
llvm-svn: 9190
|
|
|
|
| |
llvm-svn: 9183
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 9072
|
|
|
|
| |
llvm-svn: 9071
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
tasty 15% speedup on the testcase from Bill.
llvm-svn: 8993
|