aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Bytecode
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Urg, remove testing code.Chris Lattner2004-01-111-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10757 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a regression that I introduced yesterday. :(Chris Lattner2004-01-111-8/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10756 91177308-0d34-0410-b5e6-96231b3b80d8
* Check in two changes:Chris Lattner2004-01-101-1/+51
| | | | | | | | | | | | | | | | The first change (which is disabled) compactifies all of the function constant pools into the global constant pool, in an attempt to reduce the amount of duplication and overhead. Unfortunately, as the comment indicates, this is not yet a win, so it is disabled. The second change sorts the typeid's so that those types that can be used by instructions in the program appear earlier in the table than those that cannot (such as structures and arrays). This causes the instructions to be able to use the dense encoding more often, saving about 5K on 254.gap. This is only a .65% savings though, unfortunately. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10754 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10750 91177308-0d34-0410-b5e6-96231b3b80d8
* Err, we don't need Config/*.h files for things that are standard C++Chris Lattner2004-01-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10742 91177308-0d34-0410-b5e6-96231b3b80d8
* minor comment tweaksChris Lattner2004-01-101-5/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10741 91177308-0d34-0410-b5e6-96231b3b80d8
* * finegrainify namespacification of ArchiveReader.cppChris Lattner2004-01-104-13/+161
| | | | | | | | * 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
* 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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10738 91177308-0d34-0410-b5e6-96231b3b80d8
* Finegrainify namespacificationChris Lattner2004-01-103-12/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10737 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-303-21/+14
| | | | 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-222-24/+6
| | | | | | | 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-202-6/+24
| | | | | | | | | | | 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-172-0/+4
| | | | 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-112-100/+86
| | | | | | | | | | | | | | 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-014-14/+51
| | | | | | | | | | | | | | | | | | | | 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-211-4/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10131 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
* Remove usage of ConstantPointerChris Lattner2003-11-171-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10051 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement skeletal support for __.SYMDEF (ranlib) sections in archives.Brian Gaeke2003-11-162-20/+70
| | | | | | | | | 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-1113-6/+53
| | | | 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
* Use already existing classes for post order iterator.Alkis Evlogimenos2003-10-311-17/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9629 91177308-0d34-0410-b5e6-96231b3b80d8
* Output types in reverse postorder. This will allow the ByteCode/ReaderAlkis Evlogimenos2003-10-301-9/+17
| | | | | | | | to create the minimum number of opaque types for each type with a cycle in its type graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9615 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
* Explicitly cast type, so we aren't passing output_vbr a size_t.Brian Gaeke2003-10-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9590 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more debugging info to help tracing the SlotCalculator.Alkis Evlogimenos2003-10-291-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9575 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure to add a type for va_next operands, which may not other wiseChris Lattner2003-10-211-2/+2
| | | | | | | occur in the module git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9336 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix problem which effected linking apacheChris Lattner2003-10-211-2/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9335 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright header.John Criswell2003-10-212-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9321 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright notice to Makefiles.John Criswell2003-10-203-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9312 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright header (for lack of a better term).John Criswell2003-10-201-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-2010-0/+70
| | | | | | | Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
* "Function"[0] == 'F', not 'M'Chris Lattner2003-10-201-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9297 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the Opcode enum for PHI nodes from "Instruction::PHINode" to ↵Chris Lattner2003-10-191-1/+1
| | | | | | "Instruction::PHI" to be more consistent with the other instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9269 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix warningChris Lattner2003-10-181-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9236 91177308-0d34-0410-b5e6-96231b3b80d8
* add support for new linkage typesChris Lattner2003-10-182-8/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9228 91177308-0d34-0410-b5e6-96231b3b80d8