Reid Spencer
248c06dcea
Prevent an empty compaction table from being written to the bytecode file.
...
llvm-svn: 16063
2004-08-27 00:38:44 +00:00
Reid Spencer
3b789ad2b8
Add the CompactionTableIsEmpty function so that we can determine if a
...
CompactionTable really needs to be emitted. This is not a straight forward
computation, hence the need for a member function here.
llvm-svn: 16062
2004-08-26 22:32:00 +00:00
Brian Gaeke
0220904e7a
Packed types, brought to you by Brad Jones
...
llvm-svn: 15938
2004-08-20 06:00:58 +00:00
Reid Spencer
c3e436427b
Bytecode File Format Changes:
...
- File format version number bumped to 4
- Writer will now align nothing
- Reader now only expects alignment for version 3 or earlier
llvm-svn: 15875
2004-08-17 07:45:14 +00:00
Reid Spencer
f8a18099fb
Correct the comments in the symbol table writer to reflect reality.
...
llvm-svn: 15848
2004-08-17 02:59:02 +00:00
Alkis Evlogimenos
832437255d
Stop using getValues().
...
llvm-svn: 15487
2004-08-04 08:44:43 +00:00
Alkis Evlogimenos
fd7a2d4477
Merge i*.h headers into Instructions.h as part of bug403.
...
llvm-svn: 15325
2004-07-29 12:17:34 +00:00
Reid Spencer
b95885b210
Adjust to new Module.h interface for dependent libraries.
...
llvm-svn: 15218
2004-07-25 21:32:02 +00:00
Reid Spencer
b2bdb943b5
bug 263:
...
- encode/decode target triple and dependent libraries
bug 401:
- fix encoding/decoding of FP values to be little-endian only
bug 402:
- initial (compatible) cut at 24-bit types instead of 32-bit
- reduce size of block headers by 50%
Other:
- cleanup Writer by consolidating to one compilation unit, rem. other files
- use a std::vector instead of std::deque so the buffer can be allocated
in multiples of 64KByte chunks rather than in multiples of some smaller
(default) number.
llvm-svn: 15210
2004-07-25 18:07:36 +00:00
Reid Spencer
30d69a5af9
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14942
2004-07-18 00:18:30 +00:00
Reid Spencer
51fe3361b6
bug 122:
...
- Correct ordering of tests because for GlobalValue isa Constant
llvm-svn: 14941
2004-07-18 00:16:21 +00:00
Chris Lattner
fcdab1b5f5
Fix for PR341
...
llvm-svn: 14845
2004-07-15 02:40:04 +00:00
Chris Lattner
420fd1425d
Fix unused var warning
...
llvm-svn: 14775
2004-07-12 20:29:52 +00:00
Reid Spencer
cf5c6e4adb
Remove tabs.
...
llvm-svn: 14763
2004-07-11 17:22:51 +00:00
Reid Spencer
a64b62ef6a
Prepare the writer for a non-broken implementation of writing floating
...
point values. This will be fixed when I figure out how to do it correctly
without depending on knowing the endianess of a platform.
llvm-svn: 14762
2004-07-11 17:22:07 +00:00
Reid Spencer
bf2bce3f74
Implementation of SlotTable went into header file. Note that this header
...
is currently not being used but is retained because it will be the basis
for a clean up of the SlotCalculator class.
llvm-svn: 14612
2004-07-04 11:47:22 +00:00
Reid Spencer
2fa95bcd68
Remove Tabs.
...
llvm-svn: 14611
2004-07-04 11:46:15 +00:00
Reid Spencer
a52b0009ea
Implement new output functions for types and compacted type planes. Also
...
remove use of Type::TypeTyID and Type::TypeTy since Type no longer inherits
Value.
llvm-svn: 14610
2004-07-04 11:45:47 +00:00
Reid Spencer
3cdb4e88e5
Add new methods outputTypes and outputCompactionTypes for handling Types
...
separately from Values. This needed for bug 122.
llvm-svn: 14609
2004-07-04 11:44:27 +00:00
Reid Spencer
88f3e0731e
For bug 122:
...
Separate Types from Values because Type no longer inherits from Value. The
changes for this are too numerous to list. In essence, any data structure
that contained a Value was doubled so that Types could be contained
similarly. New members include Types, TypeMap, CompactionTypes, and
CompactionTypeMap. Functions taking a Value* were overloaded with a variant
that takes a Type* that acts on the new data structures.
llvm-svn: 14608
2004-07-04 11:42:49 +00:00
Reid Spencer
25319569fb
- Type::TypeTyID doesn't exist any more (bug 122)
...
- Types don't have names any more, just write them on ostream directly
llvm-svn: 14606
2004-07-04 11:37:54 +00:00
Reid Spencer
5ef4237089
Move SlotCalculator.h to lib/Bytecode/Writer since that is the only place
...
that needs it after the Type != Value changes (bug 122).
llvm-svn: 14605
2004-07-04 11:36:31 +00:00
Chris Lattner
4ba8a8d1ef
No functionality changes here:
...
* Some warning fixes for MSVC
* Minor simplification to the deque scanning code
llvm-svn: 14417
2004-06-25 20:52:10 +00:00
Chris Lattner
ccd8ed145a
Fix more warnings building with VC++
...
llvm-svn: 14391
2004-06-25 00:35:55 +00:00
Chris Lattner
521eb8752b
fix warnings
...
llvm-svn: 14388
2004-06-25 00:11:25 +00:00
Chris Lattner
6b7275996c
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
...
llvm-svn: 14201
2004-06-17 18:19:28 +00:00
Reid Spencer
e73febc64a
Cleaned up a dead header file to prevent duplicate definition warnings
...
in doxygen.
llvm-svn: 14084
2004-06-09 04:38:34 +00:00
Reid Spencer
9163bcdf0f
Moved this file to lib/Bytecode/Writer because its used there only.
...
llvm-svn: 13900
2004-05-30 00:09:32 +00:00
Reid Spencer
f2f34b3052
Use the SymbolTable::isEmpty() method instead of checking for no value
...
planes. A SymbolTable could still have types in it! This fixes problems
with two regression tests that failed because a symbol table that only
contained types was being omitted from bytecode files. Thanks to Chris
for the reduced test case that helped find this immediately.
llvm-svn: 13842
2004-05-27 20:18:51 +00:00
Reid Spencer
0aff01a239
Part of bug 122:
...
This change removes the BuildBytecodeInfo flag from the SlotCalculator
class. This flag was needed to distinguish between the Bytecode/Writer
and the AsmWriter. Now that AsmWriter doesn't use SlotCalculator, we can
remove this flag and simplify some code. Also, some minor name changes
to CachedWriter.h needed to be committed (missed in previous commit).
llvm-svn: 13785
2004-05-26 07:37:11 +00:00
Reid Spencer
abac0ef0b7
Put SlotTable.h inclusion back at front of list to be coding standards
...
compliant. Thanks, Chris.
llvm-svn: 13771
2004-05-25 20:09:05 +00:00
Reid Spencer
6244bc7831
Make the constructor explicit so we can't implicitly convert bool to
...
SlotTable.
llvm-svn: 13766
2004-05-25 19:09:25 +00:00
Reid Spencer
37dd30c00a
Make some improvements suggested by Chris.
...
llvm-svn: 13765
2004-05-25 19:03:21 +00:00
Reid Spencer
4feb245a31
Adding the initial implementation of the SlotTable class. This class is
...
the Abstract Data Type that holds slot number values and associates them
with Type* and Value*. The SlotTable is simply the holder of the slot
numbers and provides a controlled interface for building the table. It does
not enforce any particular idiom or functionality for manipulating the slot
numbers.
This is part of bug_122. The SlotCalculator and SlotMachine classes will
follow.
llvm-svn: 13764
2004-05-25 18:44:51 +00:00
Reid Spencer
660ea5fadb
Changed to use SymbolTable's new iteration interfaces.
...
llvm-svn: 13759
2004-05-25 17:29:59 +00:00
Chris Lattner
15701e84d1
Implement support for a new LLVM 1.3 bytecode format, which uses uint's
...
to index into structure types and allows arbitrary 32- and 64-bit integer
types to index into sequential types.
llvm-svn: 12651
2004-04-05 01:27:26 +00:00
Chris Lattner
e7c9f6f7ae
Write select instructions to bytecode
...
llvm-svn: 12315
2004-03-12 05:52:01 +00:00
Chris Lattner
ac6db755c3
Adjust to the changed StructType interface. In particular, getElementTypes() is gone.
...
llvm-svn: 11228
2004-02-09 04:37:31 +00:00
Chris Lattner
fa829be4d3
Start using the new and improve interface to FunctionType arguments
...
llvm-svn: 11224
2004-02-09 04:14:01 +00:00
Chris Lattner
8c285b20b7
Remove all of the annoying statistics now that I'm finished (for the near
...
term) working on bytecode size stuff.
llvm-svn: 11046
2004-02-01 01:50:31 +00:00
Chris Lattner
c70b3f63cc
SlotCalculator.h moved
...
llvm-svn: 10931
2004-01-20 19:50:34 +00:00
Chris Lattner
a395324383
Bugfixes for dealing with partially compactified functions
...
llvm-svn: 10920
2004-01-20 00:54:06 +00:00
Chris Lattner
5a66bb7507
Save another 30K from 176.gcc by encoding the compaction table a bit more
...
intelligently.
llvm-svn: 10918
2004-01-18 22:35:34 +00:00
Chris Lattner
979ca2fccd
Remove -debug output
...
llvm-svn: 10917
2004-01-18 22:26:53 +00:00
Chris Lattner
bc02f4ce97
Add support for writing bytecode files with compactiontables for bytecode files.
...
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
2004-01-18 21:08:52 +00:00
Chris Lattner
677af4a1cb
Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitive
...
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
2004-01-17 23:25:43 +00:00
Chris Lattner
4c57267ece
If these blocks are empty, there is no reason to even emit the bytecode blocks.
...
This saves about 15K in 176.gcc, coupled with another patch that I'm working on.
llvm-svn: 10889
2004-01-15 21:06:57 +00:00
Chris Lattner
f4572852dc
ConstantPointerRef's are no longer emitted. This saves 20028 bytes in the
...
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
2004-01-15 18:46:56 +00:00
Chris Lattner
394fc96f39
Fix PR73: bytecode format inconsistent
...
llvm-svn: 10876
2004-01-15 17:55:09 +00:00
Chris Lattner
1af644d9d6
Remove the optimization that depends on ENDIAN_LITTLE: it's not worth it.
...
llvm-svn: 10870
2004-01-15 06:11:30 +00:00