summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode
Commit message (Collapse)AuthorAgeFilesLines
...
* Factor FDHandle out of the bytecode reader into the FileUtilities.h supportChris Lattner2003-12-291-16/+4
| | | | | | routines. llvm-svn: 10642
* minor cleanupsChris Lattner2003-12-261-7/+6
| | | | llvm-svn: 10612
* 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. llvm-svn: 10585
* 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. llvm-svn: 10565
* Make getObjectType() smarter about ranlibbed Mac OS X archives.Brian Gaeke2003-12-171-0/+2
| | | | llvm-svn: 10493
* Throw better error messages, by calling strerror(errno) when weBrian Gaeke2003-12-121-4/+9
| | | | | | get an error inside the bytecode reader. llvm-svn: 10415
* 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. llvm-svn: 10392
* 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. llvm-svn: 10280
* * 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 llvm-svn: 10085
* Minor efficiency improvements, finegrainify namespacificationChris Lattner2003-11-191-11/+16
| | | | llvm-svn: 10084
* In the future, these slabs can be null...Chris Lattner2003-11-191-1/+2
| | | | llvm-svn: 10083
* Minor efficiency improvements all over. Finegrainify NamespacificationChris Lattner2003-11-191-37/+14
| | | | llvm-svn: 10082
* Fine grainify namespacification, #include file that defines the interface!Chris Lattner2003-11-191-9/+11
| | | | llvm-svn: 10081
* 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 llvm-svn: 10079
* Remove usage of ConstantPointerChris Lattner2003-11-171-3/+1
| | | | llvm-svn: 10051
* 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. llvm-svn: 10043
* 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-1110-5/+40
| | | | llvm-svn: 9903
* no need for endlChris Lattner2003-11-051-1/+1
| | | | llvm-svn: 9736
* Add support for constant expr shiftsChris Lattner2003-11-051-0/+2
| | | | llvm-svn: 9735
* 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
* Explicitly cast type, so we aren't passing output_vbr a size_t.Brian Gaeke2003-10-291-1/+1
| | | | llvm-svn: 9590
* Added LLVM copyright header.John Criswell2003-10-212-0/+14
| | | | llvm-svn: 9321
* Added LLVM copyright notice to Makefiles.John Criswell2003-10-203-0/+24
| | | | llvm-svn: 9312
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-208-0/+56
| | | | | | Header files will be on the way. llvm-svn: 9298
* 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. llvm-svn: 9269
* Fix warningChris Lattner2003-10-181-0/+1
| | | | llvm-svn: 9236
* add support for new linkage typesChris Lattner2003-10-182-8/+18
| | | | llvm-svn: 9228
* Updated to emit the final 1.0 bytecode format. This supports weak linkage,Chris Lattner2003-10-182-22/+40
| | | | | | more efficient encoding of varargs calls, and the new varargs intrinsics. llvm-svn: 9221
* * New revised variable argument handling supportChris Lattner2003-10-185-149/+290
| | | | | | | * More dense bytecode encoding for varargs calls (like printf) * Eliminated the extremely old bytecode format. rev #0 is now 1.0 llvm-svn: 9220
* Eliminate some extraneous code in SlotCalculator::insertVal().Alkis Evlogimenos2003-10-173-26/+26
| | | | | | | | | Rename SlotCalculator::getValSlot() to SlotCalculator::getSlot(), SlotCalculator::insertValue() to SlotCalculator::getOrCreateSlot(), SlotCalculator::insertVal() to SlotCalculator::insertValue(), and SlotCalculator::doInsertVal() to SlotCalculator::doInsertValue(). llvm-svn: 9190
* Add separator between different types of readers.Misha Brukman2003-10-161-0/+1
| | | | llvm-svn: 9183
* Add support for 'weak' linkage.Chris Lattner2003-10-162-4/+25
| | | | | | | | For now, we translate linkonce into weak linkage in the bytecode format because we don't have enough bits to represent it. We will rev the bytecode version soon anyways, so this will be fixed in the near future. llvm-svn: 9170
* Minor cleanupsChris Lattner2003-10-131-2/+2
| | | | llvm-svn: 9079
* Avoid calling getTypeSlot moreChris Lattner2003-10-133-4/+9
| | | | 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-135-13/+5
| | | | llvm-svn: 9071
* Ok, the "fix" for this is to do a real associative container. Symbol tablesChris Lattner2003-10-101-15/+11
| | | | | | | are ordered by name, not by slot, so the previous solution wasn't any good. On a large testcase, this reduces time to parse from 2.17s to 1.58s. llvm-svn: 9002
* Another 10% performance improvement by not using replaceAllUsesWithChris Lattner2003-10-091-13/+20
| | | | llvm-svn: 8994
* Reserve space for PHI nodes when we read them in. This provides a VERYChris Lattner2003-10-091-0/+1
| | | | | | tasty 15% speedup on the testcase from Bill. llvm-svn: 8993
* Use the version of getValue that takes the type plane instead of the typeChris Lattner2003-10-092-17/+18
| | | | | | if possible. This provides a consistent 8.5% speedup. llvm-svn: 8991
* Pass a vector around to reduce dynamic allocationChris Lattner2003-10-093-13/+17
| | | | | | Throw the RawInst class in an anon namespace llvm-svn: 8990
* Change getConstantValue to throw an exception on error, not return nullChris Lattner2003-10-092-10/+7
| | | | llvm-svn: 8988
* Remove potentially N^2 algorithm from symbol table reader. No speedupChris Lattner2003-10-091-5/+13
| | | | | | in practice though llvm-svn: 8985
* Major refactoring of the bytecode reader. This includes the followingChris Lattner2003-10-094-315/+171
| | | | | | | | | | | | | | | 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-093-144/+106
| | | | | | | 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-092-15/+1
| | | | | | 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-092-25/+27
| | | | | | | | | | | | | 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-092-12/+0
| | | | llvm-svn: 8978
OpenPOWER on IntegriCloud