summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode/Writer
Commit message (Collapse)AuthorAgeFilesLines
* Implement writing of arbitrary precision integers.Reid Spencer2007-02-281-4/+14
| | | | llvm-svn: 34717
* For PR1195:Reid Spencer2007-02-151-4/+4
| | | | | | | Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
* From Dan Gohman:Chris Lattner2007-02-141-1/+1
| | | | | | | | | | While preparing http://llvm.org/PR1198 I noticed several asserts protecting unprepared code from i128 types that weren't actually failing when they should because they were written as assert("foo") instead of something like assert(0 && "foo"). This patch fixes all the cases that a quick grep found. llvm-svn: 34267
* Switch ValueSymbolTable to use StringMap<Value*> instead of ↵Chris Lattner2007-02-123-11/+11
| | | | | | | | | std::map<std::string, Value*> as its main datastructure. There are many improvements yet to be made, but this speeds up opt --std-compile-opts on 447.dealII by 7.3%. llvm-svn: 34193
* Undo the last patch. It slowed down bcwriter by 1.8% but only sped upReid Spencer2007-02-111-67/+5
| | | | | | the bc reader by 0.8%. Deemed "not worth it" llvm-svn: 34169
* For PR1194:Reid Spencer2007-02-101-5/+67
| | | | | | | | | | | | The bcreader counts on "primitive" types being inserted before they are referenced in other types. With recent changes to the bcwriter, this fact became exposed since IntegerType is no longer "primitive". We can no longer count on all IntegerTypes being inserted early. This patch modifies getOrCreateTypeSlot to insert any sub-type that can't possibly recurse before we create the slot for the type. This has the benefit of reducing the number of OpaqueType objects the reader needs to deal with. llvm-svn: 34147
* Fix a comment.Reid Spencer2007-02-101-1/+1
| | | | llvm-svn: 34146
* Change the table datastructure to be a vector<smallvector>, instead ofChris Lattner2007-02-103-16/+14
| | | | | | | | | | vector<vector> to avoid allocations. This speeds up bcwriting of 447.dealII from 0.8276 to 0.7637s (8.4%). This concludes this round of proding the bcwriter into submission. Final speedup from 24.4s to 0.7637s (32x). llvm-svn: 34142
* Make BytecodeWriter::outputValueSymbolTable *significantly* less abusiveChris Lattner2007-02-101-3/+4
| | | | | | | of memory, through a combination of DenseMap and SmallVector. This speeds up bcwriter on 447.dealII from 1.31s to 0.82s (60% faster). llvm-svn: 34141
* make the datastructure used in BytecodeWriter::outputValueSymbolTableChris Lattner2007-02-101-4/+4
| | | | | | | *slightly* less abusive of memory. This speeds up the bcwriter from 1.83s to 1.32s (39% faster) on 447.dealII. llvm-svn: 34140
* Switch typemap over to DenseMap. No significant speedup.Chris Lattner2007-02-101-2/+1
| | | | llvm-svn: 34139
* Switch NodeMap from an std::map to a DenseMap. This speeds up bcwritingChris Lattner2007-02-101-1/+1
| | | | | | of 447.dealII from 3.3s to 1.8s (80% faster). llvm-svn: 34138
* use typedefs where appropriateChris Lattner2007-02-102-3/+3
| | | | llvm-svn: 34136
* The ModuleLevel vector is often quite sparse. Switch it to a DenseMap. ThisChris Lattner2007-02-102-18/+24
| | | | | | speeds up bcwriting of 447.dealII by 40%, from 4.63s to 3.32s. llvm-svn: 34135
* Make the ModuleLevel datastructure more sane. When a function-local valueChris Lattner2007-02-102-33/+19
| | | | | | | | is inserted into the table, it remembers that the value needs to be popped off. This makes purgeFunction much faster, speeding up bcwriting of 447.dealII from 6.8->4.6s (47%). llvm-svn: 34133
* Only compute the module levels info once per module, instead of onceChris Lattner2007-02-101-15/+7
| | | | | | | per function. This speeds up bcwriting on 447.dealII from 10.16s to 6.81s (49%). llvm-svn: 34132
* Clone and specialize CreateSlotIfNeeded into CreateFunctionValueSlot to handleChris Lattner2007-02-102-63/+101
| | | | | | | function-local values. This speeds up bcwriting a small 2.2% (10.384->10.156s on 447.dealII), but paves the way for more important changes. llvm-svn: 34131
* make getSlot/getTypeSlot inlineChris Lattner2007-02-102-14/+11
| | | | llvm-svn: 34130
* getTypeSlot can never failChris Lattner2007-02-103-62/+26
| | | | llvm-svn: 34129
* getSlot can never fail. Make it assert internally, eliminate checks inChris Lattner2007-02-103-63/+32
| | | | | | clients. Same for getTypeSlot. llvm-svn: 34128
* simplify getOrCreateTypeSlot, eliminat doInsertType. Eliminate post-order ↵Chris Lattner2007-02-102-32/+10
| | | | | | iteration stuff. llvm-svn: 34127
* simplify and speed up recursive type processing.Chris Lattner2007-02-101-4/+2
| | | | llvm-svn: 34126
* rename getOrCreateSlot -> CreateSlotIfNeeded. Noone cares about the retvalChris Lattner2007-02-102-23/+14
| | | | llvm-svn: 34125
* refactor callers of insertType. inline insertType into its one remaining ↵Chris Lattner2007-02-102-23/+11
| | | | | | caller. llvm-svn: 34124
* simplify code.Chris Lattner2007-02-102-33/+13
| | | | llvm-svn: 34123
* simplify some logic, reduce nestingChris Lattner2007-02-101-25/+20
| | | | llvm-svn: 34122
* Remove dead ctorChris Lattner2007-02-102-13/+0
| | | | llvm-svn: 34121
* ModuleContainsAllFunctionConstants is always trueChris Lattner2007-02-102-39/+10
| | | | llvm-svn: 34120
* only one client of getOrCreateSlot can pass a void typed value. Check typeChris Lattner2007-02-101-2/+3
| | | | | | there. llvm-svn: 34119
* inline hasNullValue, rename some variables, simplify some code.Chris Lattner2007-02-102-30/+24
| | | | llvm-svn: 34118
* merge insertValue into its single caller, eliminate some redundant checks.Chris Lattner2007-02-101-12/+1
| | | | llvm-svn: 34117
* merge doInsertValue into insertValueChris Lattner2007-02-102-54/+43
| | | | llvm-svn: 34116
* insertvalue's second operand is always falseChris Lattner2007-02-102-11/+7
| | | | llvm-svn: 34115
* remove dead 'dontIgnore' flag for insertTypeChris Lattner2007-02-102-12/+12
| | | | llvm-svn: 34114
* rename getSlot -> getSlotType and getOrCreateSlot ->getOrCreateTypeSlotChris Lattner2007-02-103-42/+43
| | | | | | for types. llvm-svn: 34113
* Use int32_t and uint32_t to hopefully help weak compilers (cygwin) notReid Spencer2007-02-091-3/+3
| | | | | | generate errors about being unable to resolve overloaded type. llvm-svn: 34103
* Make SlotCalculator::getPlane an inline function. It is used inside loops.Reid Spencer2007-02-092-9/+8
| | | | llvm-svn: 34091
* remove unneeded #includesChris Lattner2007-02-091-3/+0
| | | | llvm-svn: 34086
* remove dead code, the outputConstants function is now only called at module ↵Chris Lattner2007-02-092-14/+6
| | | | | | scope. llvm-svn: 34085
* 1. constants can never occur in the symbol table.Chris Lattner2007-02-093-21/+0
| | | | | | | | | | | 2. All function-level constants are now incorporated into the module-level constant pool, since the compaction table was removed. Eliminate extra work to check for them. This speeds up the bcwriter from 24.4s to 13.1s on 447.dealII and .73 -> .56s on kc++ in a release build. llvm-svn: 34084
* For PR411:Reid Spencer2007-02-054-28/+35
| | | | | | | | | | This patch replaces the SymbolTable class with ValueSymbolTable which does not support types planes. This means that all symbol names in LLVM must now be unique. The patch addresses the necessary changes to deal with this and removes code no longer needed as a result. This completes the bulk of the changes for this PR. Some cleanup patches will follow. llvm-svn: 33918
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-5/+5
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Bye, Bye Compaction Tables. The benefit compaction tables provides doesn'tReid Spencer2007-01-303-492/+16
| | | | | | | | | | | | | | | | | | | outweight its computational costs. This patch removes all compaction table handling from the bcreader and bcwriter. For the record, here's the difference betweeen having and not having compaction tables for some tests: Test With Without Size Chg Olden/mst 5,602 5,598 +0.1% viterbi 18,026 17,795 +1.3% obsequi 162,133 166,663 -2.8% burg 224,090 228,148 -1.8% kimwitu++ 4,933,263 5,121,159 -3.8% 176.gcc 8,470,424 9,141,539 -7.3% It seems that it is more beneficial to larger files, but even on the largest test case we have (176.gcc) it only amounts ot an I/O saving of 7.3%. llvm-svn: 33661
* This file has been dead for a long time. Remove it.Reid Spencer2007-01-281-191/+0
| | | | llvm-svn: 33596
* For PR761:Reid Spencer2007-01-261-11/+5
| | | | | | | Remove the Endianness and PointerSize fields from the ModuleHeader and replace it with the DataLayout field. llvm-svn: 33529
* Back out last changes for dataLayout. Much more work is needed.Reid Spencer2007-01-191-3/+0
| | | | llvm-svn: 33347
* For PR761:Reid Spencer2007-01-181-0/+3
| | | | | | Implement reading and writing of the Module's data layout string. llvm-svn: 33346
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-1/+1
| | | | | | | | | rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
* Make sure that GEP indices are only 32 or 64 bits. We're not ready forReid Spencer2007-01-131-6/+10
| | | | | | indices with other bit sizes yet. llvm-svn: 33167
* remove unneeded special case for boolChris Lattner2007-01-121-6/+1
| | | | llvm-svn: 33156
OpenPOWER on IntegriCloud