summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode/Reader/ReaderInternals.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove files no longer needed. ConstantReader and InstructionReader wereReid Spencer2004-06-291-297/+0
| | | | | | | | | | integrated into Reader. Parser.* was just a bad idea. AnalyzerInternals.h is no longer needed. ReaderPrimitives.h was integrated into Reader.h and Reader.cpp. Dumper.cpp was integrated into Analyzer.cpp. ReaderInternals.h became Reader.h. AnalyzerWrappers.cpp was integerated into ReaderWrappers.cpp llvm-svn: 14496
* Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner2004-06-171-2/+2
| | | | llvm-svn: 14201
* Implement support for a new LLVM 1.3 bytecode format, which uses uint'sChris Lattner2004-04-051-0/+7
| | | | | | | to index into structure types and allows arbitrary 32- and 64-bit integer types to index into sequential types. llvm-svn: 12651
* Remove a bunch of cruft that was used to be backwards compatible with the lastChris Lattner2004-04-031-5/+0
| | | | | | | prerelease format for LLVM bytecode files. Now we only are compatible with LLVM 1.0+. llvm-svn: 12643
* Implement ModuleProvider::materializeModule() by only materializing functionsMisha Brukman2004-01-211-0/+10
| | | | | | that are still left in the lazy reader map. llvm-svn: 10944
* Add support for reading bytecode files with compactiontables for bytecode files.Chris Lattner2004-01-181-5/+54
| | | | | | | | 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
* Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitiveChris Lattner2004-01-171-2/+8
| | | | | | | 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
* Fix PR73Chris Lattner2004-01-151-0/+4
| | | | llvm-svn: 10875
* Change all of the bytecode reader primitives to throw exceptions instead ofChris Lattner2004-01-151-14/+2
| | | | | | | | | | 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
* Version 1.2 now supports encoding strings as a special case, to avoid havingChris Lattner2004-01-141-0/+3
| | | | | | to emit all of those sbyte constants. llvm-svn: 10863
* Remove support for the pre-1.0 bytecode version #1. This will becomeChris Lattner2004-01-141-1/+0
| | | | | | the bytecode revision generated by LLVM 1.2. llvm-svn: 10848
* * finegrainify namespacification of ArchiveReader.cppChris Lattner2004-01-101-1/+1
| | | | | | | * Refactor reader stuff out of include/llvm/Bytecode/Primitives.h. This is internal implementation details for the reader, not public interfaces! llvm-svn: 10739
* Emit & read more compressed bytecode by not emitting a bytecodeblock forChris Lattner2003-12-011-1/+3
| | | | | | | | | | | | | | | | | | | 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
* * Finegrainify namespacificationChris Lattner2003-11-191-14/+13
| | | | | | | | | | | | | * 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
* Minor speedup to do less linear time searches of information we already have.Chris Lattner2003-11-191-1/+4
| | | | | | speeds up disassembly of kc++ by .6s llvm-svn: 10079
* I can't believe the incompetence of the people I have to deal with around here.Chris Lattner2003-11-141-1/+2
| | | | | | | | These fools don't even wrap code at 80 columns. Oh wait, _I_ wrote that. That explains a lot!! llvm-svn: 9999
* Fix PR 110: the constant folding code assumes that if something is not aChris Lattner2003-11-141-5/+3
| | | | | | | constant expression, but is of (for example) ubyte type, then it is a ConstantUInt. This was not true for placeholders. llvm-svn: 9994
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* no need for endlChris Lattner2003-11-051-1/+1
| | | | llvm-svn: 9736
* Put DEBUG_OUTPUT at the top along with TRACE_LEVEL. Also fix the codeAlkis Evlogimenos2003-10-301-2/+3
| | | | | | inside DEBUG_OUTPUT so that it compiles. llvm-svn: 9614
* Added LLVM copyright header.John Criswell2003-10-211-0/+7
| | | | llvm-svn: 9321
* * New revised variable argument handling supportChris Lattner2003-10-181-4/+7
| | | | | | | * More dense bytecode encoding for varargs calls (like printf) * Eliminated the extremely old bytecode format. rev #0 is now 1.0 llvm-svn: 9220
* Avoid calling getTypeSlot moreChris Lattner2003-10-131-0/+1
| | | | llvm-svn: 9077
* This is a header file, thus it needs a -*-C++-*-Chris Lattner2003-10-131-1/+1
| | | | llvm-svn: 9072
* Regularize header file commentsChris Lattner2003-10-131-1/+1
| | | | llvm-svn: 9071
* Pass a vector around to reduce dynamic allocationChris Lattner2003-10-091-1/+2
| | | | | | Throw the RawInst class in an anon namespace llvm-svn: 8990
* Major refactoring of the bytecode reader. This includes the followingChris Lattner2003-10-091-20/+3
| | | | | | | | | | | | | | | changes: * BytecodeReader::getType(...) used to return a null pointer on error. This was only checked about half the time. Now we convert it to throw an exception, and delete the half that checked for error. This was checked in before, but psmith crashed and lost the change :( * insertValue no longer returns -1 on error, so callers don't need to check for it. * Substantial rewrite of InstructionReader.cpp, to use more efficient, simpler, data structures. This provides another 5% speedup. This also makes the code much easier to read and understand. llvm-svn: 8984
* Significantly clean up parsing of instructions. This exceptionizes andChris Lattner2003-10-091-2/+2
| | | | | | | simplifies the control flow a bit. This provides a small (~3%) speedup, but it's primarily a cleanup exercise. llvm-svn: 8983
* Eliminate the instruction placeholder. Simplify a bunch of code.Chris Lattner2003-10-091-14/+0
| | | | | | This results in no significant speedup, but does provide simpler code llvm-svn: 8980
* Eliminate the old LateResolveValues data structure, replacing it with aChris Lattner2003-10-091-2/+2
| | | | | | | | | | | | | new, simpler, ForwardReferences data structure. This is just the first simple replacement, subsequent changes will improve the code more. This simple change improves the performance of loading a file from HDF5 (contributed by Bill) from 2.36s to 1.93s, a 22% improvement. This presumably has to do with the fact that we only create ONE placeholder for a particular forward referenced values, and also may be because the data structure is much simpler. llvm-svn: 8979
* Remove a dead methodChris Lattner2003-10-091-1/+0
| | | | llvm-svn: 8978
* This patch substantially simplifies and cleans up handling of basic blocksChris Lattner2003-10-081-18/+10
| | | | | | | | | | | | | in the bytecode parser. Before we tried to shoehorn basic blocks into the "getValue" code path with other types of values. For a variety of reasons this was a bad idea, so this patch separates it out into its own data structure. This simplifies the code, makes it fit in 80 columns, and is also much faster. In a testcase provided by Bill, which has lots of PHI nodes, this patch speeds up bytecode parsing from taking 6.9s to taking 2.32s. More speedups to follow later. llvm-svn: 8977
* Inline the postResolveValues method. It was poorly named anywayChris Lattner2003-10-081-5/+2
| | | | llvm-svn: 8976
* Various cleanups and simplifications. This speeds up reading a bytecode fileChris Lattner2003-10-081-0/+1
| | | | | | Bill gave me from 8.69s to 6.90s. llvm-svn: 8971
* Rename AbstractModuleProvider -> ModuleProvider, to match the header file name,Chris Lattner2003-10-041-1/+1
| | | | | | | and because, while the class used by the interface is abstract, the actual concept is not. llvm-svn: 8850
* Transform two methods to return pointers directly instead of returning themChris Lattner2003-10-041-3/+4
| | | | | | as 'by reference' arguments. llvm-svn: 8849
* There is no need for BytecodeParser to be an AbstractTypeUser. Instead, itChris Lattner2003-10-021-8/+2
| | | | | | can just use PATypeHolders llvm-svn: 8832
* Stop returning bool and pass Instruction by reference;Misha Brukman2003-09-231-2/+2
| | | | | | return std::auto_ptr and use exceptions llvm-svn: 8684
* Removed no longer used member variable.Misha Brukman2003-09-221-4/+1
| | | | llvm-svn: 8677
* * Cleaned up code:Misha Brukman2003-09-221-31/+64
| | | | | | | | | - no more passing around a string pointer to set errors - no more returning booleans and checking for errors, we use C++ exceptions * Broke functionality into 2 new classes, one reads from file, one from a stream * Implemented lazy function streaming - the parser can read in a function at-a-time llvm-svn: 8671
* Remove a gross hack that was there to support bytecode files that are over a ↵Chris Lattner2003-09-081-1/+1
| | | | | | | | year old. If you still have these suckers laying around, you have GOT to rebuild them. geeze. llvm-svn: 8395
* Non-functional changeChris Lattner2003-09-041-1/+1
| | | | llvm-svn: 8352
* Allow modules to have 'any' pointer size and endianness. Luckily, we hadChris Lattner2003-08-241-1/+0
| | | | | | some space for extra flags, so we don't need to bump the revision number. llvm-svn: 8118
* Detemplatize the PATypeHandle class, which was only really instantiated on ↵Chris Lattner2003-06-181-1/+1
| | | | | | 'Type'. llvm-svn: 6774
* Do not assert fail or crash when a bytecode parse fails!Chris Lattner2003-05-221-0/+3
| | | | llvm-svn: 6284
* Eliminate the uchar typedef, use unsigned char explicitlyChris Lattner2003-05-221-19/+23
| | | | llvm-svn: 6283
* Preserve module source information in the ModuleIDChris Lattner2003-04-221-1/+2
| | | | llvm-svn: 5836
* Add support to the bytecode reader/writer for the new linkage typesChris Lattner2003-04-161-0/+1
| | | | llvm-svn: 5790
* * Bug fixes:Chris Lattner2003-03-191-20/+48
| | | | | | | | | | | | | | | | | | | | | - Fix problems where the constant table would not get updated when resolving constants causes other constants to change. Changes to the V2 bytecode format - Null values are implicitly encoded instead of explicitly, this makes things more compact! - More compactly represent ConstantPointerRefs - Bytecode files are represented as: Header|GlobalTypes|GlobalVars/Function Protos|Constants|Functions|SymTab instead of Header|GlobalTypes|Constants|GlobalVars/Function Protos|Functions|SymTab which makes a lot of things simpler. Changes to the reader: - Function loading code is much simpler. We now no longer make function PlaceHolderHelper objects to be replaced with real functions. llvm-svn: 5748
* Infrastructure for more compact bytecode files and REAL support for versioningChris Lattner2003-03-061-3/+7
| | | | llvm-svn: 5716
OpenPOWER on IntegriCloud