summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode/Writer
Commit message (Collapse)AuthorAgeFilesLines
* Remove tabs.Reid Spencer2004-07-111-2/+2
| | | | llvm-svn: 14763
* Prepare the writer for a non-broken implementation of writing floatingReid Spencer2004-07-112-2/+19
| | | | | | | 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
* Implementation of SlotTable went into header file. Note that this headerReid Spencer2004-07-041-116/+0
| | | | | | | 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
* Remove Tabs.Reid Spencer2004-07-041-4/+4
| | | | llvm-svn: 14611
* Implement new output functions for types and compacted type planes. AlsoReid Spencer2004-07-041-51/+68
| | | | | | | remove use of Type::TypeTyID and Type::TypeTy since Type no longer inherits Value. llvm-svn: 14610
* Add new methods outputTypes and outputCompactionTypes for handling TypesReid Spencer2004-07-041-2/+4
| | | | | | separately from Values. This needed for bug 122. llvm-svn: 14609
* For bug 122:Reid Spencer2004-07-042-133/+237
| | | | | | | | | | | 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
* - Type::TypeTyID doesn't exist any more (bug 122)Reid Spencer2004-07-041-5/+1
| | | | | | - Types don't have names any more, just write them on ostream directly llvm-svn: 14606
* Move SlotCalculator.h to lib/Bytecode/Writer since that is the only placeReid Spencer2004-07-041-0/+141
| | | | | | that needs it after the Type != Value changes (bug 122). llvm-svn: 14605
* No functionality changes here:Chris Lattner2004-06-251-7/+4
| | | | | | | * Some warning fixes for MSVC * Minor simplification to the deque scanning code llvm-svn: 14417
* Fix more warnings building with VC++Chris Lattner2004-06-252-4/+3
| | | | llvm-svn: 14391
* fix warningsChris Lattner2004-06-251-2/+2
| | | | llvm-svn: 14388
* Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner2004-06-175-17/+17
| | | | llvm-svn: 14201
* Cleaned up a dead header file to prevent duplicate definition warningsReid Spencer2004-06-091-1/+1
| | | | | | in doxygen. llvm-svn: 14084
* Moved this file to lib/Bytecode/Writer because its used there only.Reid Spencer2004-05-301-0/+786
| | | | llvm-svn: 13900
* Use the SymbolTable::isEmpty() method instead of checking for no valueReid Spencer2004-05-271-1/+1
| | | | | | | | | 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
* Part of bug 122:Reid Spencer2004-05-261-1/+1
| | | | | | | | | | 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
* Put SlotTable.h inclusion back at front of list to be coding standardsReid Spencer2004-05-251-1/+1
| | | | | | compliant. Thanks, Chris. llvm-svn: 13771
* Make the constructor explicit so we can't implicitly convert bool toReid Spencer2004-05-251-1/+1
| | | | | | SlotTable. llvm-svn: 13766
* Make some improvements suggested by Chris.Reid Spencer2004-05-251-8/+9
| | | | llvm-svn: 13765
* Adding the initial implementation of the SlotTable class. This class isReid Spencer2004-05-252-0/+309
| | | | | | | | | | | | | 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
* Changed to use SymbolTable's new iteration interfaces.Reid Spencer2004-05-251-6/+18
| | | | llvm-svn: 13759
* Implement support for a new LLVM 1.3 bytecode format, which uses uint'sChris Lattner2004-04-052-80/+132
| | | | | | | to index into structure types and allows arbitrary 32- and 64-bit integer types to index into sequential types. llvm-svn: 12651
* Write select instructions to bytecodeChris Lattner2004-03-121-1/+2
| | | | llvm-svn: 12315
* Adjust to the changed StructType interface. In particular, ↵Chris Lattner2004-02-091-2/+2
| | | | | | getElementTypes() is gone. llvm-svn: 11228
* Start using the new and improve interface to FunctionType argumentsChris Lattner2004-02-091-4/+4
| | | | llvm-svn: 11224
* Remove all of the annoying statistics now that I'm finished (for the nearChris Lattner2004-02-013-89/+0
| | | | | | term) working on bytecode size stuff. llvm-svn: 11046
* SlotCalculator.h movedChris Lattner2004-01-201-1/+1
| | | | llvm-svn: 10931
* Bugfixes for dealing with partially compactified functionsChris Lattner2004-01-201-8/+10
| | | | llvm-svn: 10920
* Save another 30K from 176.gcc by encoding the compaction table a bit moreChris Lattner2004-01-181-3/+15
| | | | | | intelligently. llvm-svn: 10918
* Remove -debug outputChris Lattner2004-01-181-7/+0
| | | | llvm-svn: 10917
* Add support for writing bytecode files with compactiontables for bytecode files.Chris Lattner2004-01-184-36/+73
| | | | | | | | 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
* Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitiveChris Lattner2004-01-171-1/+6
| | | | | | | 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
* If these blocks are empty, there is no reason to even emit the bytecode blocks.Chris Lattner2004-01-152-8/+24
| | | | | | This saves about 15K in 176.gcc, coupled with another patch that I'm working on. llvm-svn: 10889
* ConstantPointerRef's are no longer emitted. This saves 20028 bytes in theChris Lattner2004-01-151-7/+3
| | | | | | | | 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
* Fix PR73: bytecode format inconsistentChris Lattner2004-01-151-2/+0
| | | | llvm-svn: 10876
* Remove the optimization that depends on ENDIAN_LITTLE: it's not worth it.Chris Lattner2004-01-151-8/+0
| | | | llvm-svn: 10870
* The new bytecode format supports emitting strings a special case. This isChris Lattner2004-01-143-21/+63
| | | | | | | | | | | | 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
* It is obvious that this has never been used for outputing more than a singleChris Lattner2004-01-141-10/+1
| | | | | | byte, it's totally endian incorrect! llvm-svn: 10857
* Be const correctChris Lattner2004-01-141-3/+3
| | | | llvm-svn: 10856
* Ok, I can't handle it. This is a temporary checkin of a ton of statistics thatChris Lattner2004-01-143-9/+100
| | | | | | | i'm using in my work to reduce the bytecode file sizes. These will eventually be removed. llvm-svn: 10849
* Toggle sense of flagChris Lattner2004-01-141-1/+1
| | | | llvm-svn: 10838
* Do not bother to emit a BytecodeBlock for an empty symbol table. This commonlyChris Lattner2004-01-101-0/+4
| | | | | | | | | | 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
* Err, we don't need Config/*.h files for things that are standard C++Chris Lattner2004-01-101-1/+1
| | | | llvm-svn: 10742
* minor comment tweaksChris Lattner2004-01-101-5/+1
| | | | llvm-svn: 10741
* Refactor writer stuff out of include/llvm/Bytecode/Primitives.h. This isChris Lattner2004-01-102-1/+142
| | | | | | internal implementation details for the writer, not public interfaces! llvm-svn: 10738
* Finegrainify namespacificationChris Lattner2004-01-103-12/+4
| | | | llvm-svn: 10737
* Emit & read more compressed bytecode by not emitting a bytecodeblock forChris Lattner2003-12-012-12/+7
| | | | | | | | | | | | | | | | | | | 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
* Remove usage of ConstantPointerChris Lattner2003-11-171-3/+1
| | | | llvm-svn: 10051
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-114-0/+15
| | | | llvm-svn: 9903
OpenPOWER on IntegriCloud