aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Bytecode/Reader
Commit message (Collapse)AuthorAgeFilesLines
* Implement support for a new LLVM 1.3 bytecode format, which uses uint'sChris Lattner2004-04-054-7/+59
| | | | | | | | to index into structure types and allows arbitrary 32- and 64-bit integer types to index into sequential types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12651 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a bunch of cruft that was used to be backwards compatible with the lastChris Lattner2004-04-033-92/+23
| | | | | | | | prerelease format for LLVM bytecode files. Now we only are compatible with LLVM 1.0+. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12643 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the true, decoded name of the archive member in getObjectType.Brian Gaeke2004-03-311-7/+10
| | | | | | | | In ReadArchiveBuffer, make sure that MemberName is set in the case where getObjectType would want to return SVR4LongFilename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12567 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for reading constantexpr select instructionsChris Lattner2004-03-311-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12563 91177308-0d34-0410-b5e6-96231b3b80d8
* Make error message a bit nicer.Chris Lattner2004-03-291-1/+1
| | | | | | | Contributed by Reid Spencer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12523 91177308-0d34-0410-b5e6-96231b3b80d8
* Read select instrs from bytecodeChris Lattner2004-03-121-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12314 91177308-0d34-0410-b5e6-96231b3b80d8
* This debugging hook is no longer needed.Chris Lattner2004-02-091-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11233 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust to the changed StructType interface. In particular, ↵Chris Lattner2004-02-091-4/+4
| | | | | | getElementTypes() is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11228 91177308-0d34-0410-b5e6-96231b3b80d8
* Start using the new and improve interface to FunctionType argumentsChris Lattner2004-02-092-22/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11224 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement ModuleProvider::materializeModule() by only materializing functionsMisha Brukman2004-01-211-0/+10
| | | | | | | that are still left in the lazy reader map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10944 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR212 - Bytecode reader misreads 'long -9223372036854775808'!Chris Lattner2004-01-201-3/+7
| | | | | | | Fix testcase test/Regression/Assembler/2004-01-20-MaxLongLong.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10928 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bogus warning and simplify codeChris Lattner2004-01-201-11/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10924 91177308-0d34-0410-b5e6-96231b3b80d8
* Bugfixes for dealing with partially compactified functionsChris Lattner2004-01-201-6/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10920 91177308-0d34-0410-b5e6-96231b3b80d8
* Save another 30K from 176.gcc by encoding the compaction table a bit moreChris Lattner2004-01-181-4/+17
| | | | | | | intelligently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10918 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for reading bytecode files with compactiontables for bytecode files.Chris Lattner2004-01-183-41/+186
| | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10914 91177308-0d34-0410-b5e6-96231b3b80d8
* Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitiveChris Lattner2004-01-172-10/+22
| | | | | | | | type planes. This saves about 5k on 176.gcc, and is needed for a subsequent patch of mine I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10908 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow bytecode files to refer directly to global values as constants, insteadChris Lattner2004-01-151-2/+6
| | | | | | | | | of forcing them to go through ConstantPointerRef's. This allows bytecode files to mirror .ll files, allows more efficient encoding, and makes it easier to eventually eliminate CPR's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10883 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix more breakage with string change.Chris Lattner2004-01-151-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10882 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR73Chris Lattner2004-01-152-1/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10875 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix brokenness in my last checkingChris Lattner2004-01-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10874 91177308-0d34-0410-b5e6-96231b3b80d8
* Change all of the bytecode reader primitives to throw exceptions instead ofChris Lattner2004-01-155-244/+131
| | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10871 91177308-0d34-0410-b5e6-96231b3b80d8
* Version 1.2 now supports encoding strings as a special case, to avoid havingChris Lattner2004-01-143-2/+47
| | | | | | | to emit all of those sbyte constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10863 91177308-0d34-0410-b5e6-96231b3b80d8
* Like output_data, it's obvious that input_data was only used with 1 characterChris Lattner2004-01-141-9/+1
| | | | | | | data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10861 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove support for the pre-1.0 bytecode version #1. This will becomeChris Lattner2004-01-142-60/+34
| | | | | | | the bytecode revision generated by LLVM 1.2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10848 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't use ConstantExpr::getShift anymoreChris Lattner2004-01-121-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10791 91177308-0d34-0410-b5e6-96231b3b80d8
* * finegrainify namespacification of ArchiveReader.cppChris Lattner2004-01-103-7/+158
| | | | | | | | * Refactor reader stuff out of include/llvm/Bytecode/Primitives.h. This is internal implementation details for the reader, not public interfaces! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10739 91177308-0d34-0410-b5e6-96231b3b80d8
* Inching our way towards fixing PR82Chris Lattner2004-01-091-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10721 91177308-0d34-0410-b5e6-96231b3b80d8
* remove some useless #includesChris Lattner2003-12-301-9/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10654 91177308-0d34-0410-b5e6-96231b3b80d8
* Use new getFileSize function instead of sys/stat.h directly.Chris Lattner2003-12-302-14/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10650 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor FDHandle out of the bytecode reader into the FileUtilities.h supportChris Lattner2003-12-291-16/+4
| | | | | | | routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10642 91177308-0d34-0410-b5e6-96231b3b80d8
* minor cleanupsChris Lattner2003-12-261-7/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10612 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverted back to revision 1.11. The previous fix doesn't really fixJohn Criswell2003-12-221-12/+3
| | | | | | | anything; it just causes the bug to go dormant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10585 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR#193.John Criswell2003-12-201-3/+12
| | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10565 91177308-0d34-0410-b5e6-96231b3b80d8
* Make getObjectType() smarter about ranlibbed Mac OS X archives.Brian Gaeke2003-12-171-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10493 91177308-0d34-0410-b5e6-96231b3b80d8
* Throw better error messages, by calling strerror(errno) when weBrian Gaeke2003-12-121-4/+9
| | | | | | | get an error inside the bytecode reader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10415 91177308-0d34-0410-b5e6-96231b3b80d8
* In getObjectType(), doxygenify comment, and take a pointer to theBrian Gaeke2003-12-111-50/+43
| | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10392 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit & read more compressed bytecode by not emitting a bytecodeblock forChris Lattner2003-12-012-2/+44
| | | | | | | | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10280 91177308-0d34-0410-b5e6-96231b3b80d8
* * Finegrainify namespacificationChris Lattner2003-11-192-73/+47
| | | | | | | | | | | | | | * 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10085 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor efficiency improvements, finegrainify namespacificationChris Lattner2003-11-191-11/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10084 91177308-0d34-0410-b5e6-96231b3b80d8
* In the future, these slabs can be null...Chris Lattner2003-11-191-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10083 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor efficiency improvements all over. Finegrainify NamespacificationChris Lattner2003-11-191-37/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10082 91177308-0d34-0410-b5e6-96231b3b80d8
* Fine grainify namespacification, #include file that defines the interface!Chris Lattner2003-11-191-9/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10081 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor speedup to do less linear time searches of information we already have.Chris Lattner2003-11-193-10/+12
| | | | | | | speeds up disassembly of kc++ by .6s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10079 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement skeletal support for __.SYMDEF (ranlib) sections in archives.Brian Gaeke2003-11-161-10/+35
| | | | | | | | | Correctly parse the Long Filename section of the archive. When reading in archive members, set their ModuleIDs to "ARCHIVENAME(MEMBERNAME)", as is traditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10043 91177308-0d34-0410-b5e6-96231b3b80d8
* 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!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9999 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9994 91177308-0d34-0410-b5e6-96231b3b80d8
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-116-5/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
* no need for endlChris Lattner2003-11-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9736 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for constant expr shiftsChris Lattner2003-11-051-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9735 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9614 91177308-0d34-0410-b5e6-96231b3b80d8