summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode
Commit message (Collapse)AuthorAgeFilesLines
* Fix the bug that was preventing the parser from working on all bytecodeReid Spencer2004-06-082-10/+10
| | | | | | | | files. It was reading non-initialized global vars when the flag said it was initialized and vice versa. Causes mis-alignment since initialized and non-initialized constants have different bytecode lengths. llvm-svn: 14057
* Make it #include Parser.h instead of AnalyzerInternals.h since it onlyReid Spencer2004-06-081-1/+1
| | | | | | needs the BytecodeHandler interface which is now in Parser.h llvm-svn: 14056
* Adjust what's included to compensate for changes in Parser.hReid Spencer2004-06-082-0/+22
| | | | llvm-svn: 14055
* Merged BytecodeHandler.h into Parser.h since the parser and the handlerReid Spencer2004-06-083-359/+752
| | | | | | | | must always coexist. Cleaned up the documentation on these interfaces significantly. This is in preparation for moving Parser.h to the include directories to make it a public interface. llvm-svn: 14054
* Commit For New Tool: llvm-abcd (Analysis of ByteCode Dumper). This toolReid Spencer2004-06-0717-1/+4344
| | | | | | | | | | | | | | | | | | | | | will (eventually) provide statistical analysis of bytecode files as well as the ability to dump them in a low level format (slot numbers not resolved). The purpose of this is to aid in the Type!=Value change of bug 122. With this initial release, llvm-abcd merely dumps out the bytecode. However, the infrastructure for separating bytecode parsing from handling the parsing events is in place. The style chosen is similar to SAX XML parsing where a handler object is called to handlign the parsing events. This probably isn't useful to anyone but me right now as there is no analysis yet, and the dumper doesn't work on every bytecode file. It will probably be useful by the end of this week. Note that there is some duplication of code from the bytecode reader. This was done to eliminate errors from being introduced in the reader and to minimize the impact to other LLVM developers. At some point, the Analyzer and the Reader will be integrated to use the same infrastructure. Also, sorry for the minor change to Instruction.h but I just couldn't bring myself to write code that depends on Instruction internals. llvm-svn: 14048
* Moved this file to lib/Bytecode/Writer because its used there only.Reid Spencer2004-05-301-0/+786
| | | | llvm-svn: 13900
* Use the new FileUtilities.h API for mapping a file into an addressChris Lattner2004-05-282-32/+14
| | | | | | space llvm-svn: 13864
* Use the SymbolTable::isEmpty() method instead of checking for no valueReid Spencer2004-05-271-1/+1
| | | | | | | | | planes. A SymbolTable could still have types in it! This fixes problems with two regression tests that failed because a symbol table that only contained types was being omitted from bytecode files. Thanks to Chris for the reduced test case that helped find this immediately. llvm-svn: 13842
* Part of bug 122:Reid Spencer2004-05-261-1/+1
| | | | | | | | | | This change removes the BuildBytecodeInfo flag from the SlotCalculator class. This flag was needed to distinguish between the Bytecode/Writer and the AsmWriter. Now that AsmWriter doesn't use SlotCalculator, we can remove this flag and simplify some code. Also, some minor name changes to CachedWriter.h needed to be committed (missed in previous commit). llvm-svn: 13785
* Put SlotTable.h inclusion back at front of list to be coding standardsReid Spencer2004-05-251-1/+1
| | | | | | compliant. Thanks, Chris. llvm-svn: 13771
* Make the constructor explicit so we can't implicitly convert bool toReid Spencer2004-05-251-1/+1
| | | | | | SlotTable. llvm-svn: 13766
* Make some improvements suggested by Chris.Reid Spencer2004-05-251-8/+9
| | | | llvm-svn: 13765
* Adding the initial implementation of the SlotTable class. This class isReid Spencer2004-05-252-0/+309
| | | | | | | | | | | | | the Abstract Data Type that holds slot number values and associates them with Type* and Value*. The SlotTable is simply the holder of the slot numbers and provides a controlled interface for building the table. It does not enforce any particular idiom or functionality for manipulating the slot numbers. This is part of bug_122. The SlotCalculator and SlotMachine classes will follow. llvm-svn: 13764
* Changed to use SymbolTable's new iteration interfaces.Reid Spencer2004-05-251-6/+18
| | | | llvm-svn: 13759
* Squelch compile-time warning (profile build).Misha Brukman2004-04-281-1/+1
| | | | llvm-svn: 13228
* Fix warning building in optimized modeChris Lattner2004-04-271-0/+1
| | | | llvm-svn: 13190
* Implement support for a new LLVM 1.3 bytecode format, which uses uint'sChris Lattner2004-04-056-87/+191
| | | | | | | 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-033-92/+23
| | | | | | | prerelease format for LLVM bytecode files. Now we only are compatible with LLVM 1.0+. llvm-svn: 12643
* 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. llvm-svn: 12567
* Add support for reading constantexpr select instructionsChris Lattner2004-03-311-0/+3
| | | | llvm-svn: 12563
* Make error message a bit nicer.Chris Lattner2004-03-291-1/+1
| | | | | | Contributed by Reid Spencer llvm-svn: 12523
* Write select instructions to bytecodeChris Lattner2004-03-121-1/+2
| | | | llvm-svn: 12315
* Read select instrs from bytecodeChris Lattner2004-03-121-0/+5
| | | | llvm-svn: 12314
* This debugging hook is no longer needed.Chris Lattner2004-02-091-2/+0
| | | | llvm-svn: 11233
* Adjust to the changed StructType interface. In particular, ↵Chris Lattner2004-02-092-6/+6
| | | | | | getElementTypes() is gone. llvm-svn: 11228
* Start using the new and improve interface to FunctionType argumentsChris Lattner2004-02-093-26/+23
| | | | llvm-svn: 11224
* Remove all of the annoying statistics now that I'm finished (for the nearChris Lattner2004-02-013-89/+0
| | | | | | term) working on bytecode size stuff. llvm-svn: 11046
* Implement ModuleProvider::materializeModule() by only materializing functionsMisha Brukman2004-01-211-0/+10
| | | | | | that are still left in the lazy reader map. llvm-svn: 10944
* SlotCalculator.h movedChris Lattner2004-01-201-1/+1
| | | | llvm-svn: 10931
* Fix PR212 - Bytecode reader misreads 'long -9223372036854775808'!Chris Lattner2004-01-201-3/+7
| | | | | | Fix testcase test/Regression/Assembler/2004-01-20-MaxLongLong.llx llvm-svn: 10928
* Fix bogus warning and simplify codeChris Lattner2004-01-201-11/+5
| | | | llvm-svn: 10924
* Bugfixes for dealing with partially compactified functionsChris Lattner2004-01-202-14/+29
| | | | llvm-svn: 10920
* Save another 30K from 176.gcc by encoding the compaction table a bit moreChris Lattner2004-01-182-7/+32
| | | | | | intelligently. llvm-svn: 10918
* Remove -debug outputChris Lattner2004-01-181-7/+0
| | | | llvm-svn: 10917
* Add support for writing bytecode files with compactiontables for bytecode files.Chris Lattner2004-01-184-36/+73
| | | | | | | | 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: 10915
* 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. llvm-svn: 10914
* Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitiveChris Lattner2004-01-173-11/+28
| | | | | | | 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
* If these blocks are empty, there is no reason to even emit the bytecode blocks.Chris Lattner2004-01-152-8/+24
| | | | | | This saves about 15K in 176.gcc, coupled with another patch that I'm working on. llvm-svn: 10889
* ConstantPointerRef's are no longer emitted. This saves 20028 bytes in theChris Lattner2004-01-151-7/+3
| | | | | | | | bytecode files when compiling 176.gcc, but more importantly will make it easier to eliminate CPR's in the future (no new .bc revision will be required to support them) llvm-svn: 10884
* 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. llvm-svn: 10883
* Fix more breakage with string change.Chris Lattner2004-01-151-2/+2
| | | | llvm-svn: 10882
* Fix PR73: bytecode format inconsistentChris Lattner2004-01-151-2/+0
| | | | llvm-svn: 10876
* Fix PR73Chris Lattner2004-01-152-1/+14
| | | | llvm-svn: 10875
* Fix brokenness in my last checkingChris Lattner2004-01-151-1/+1
| | | | llvm-svn: 10874
* 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. llvm-svn: 10871
* Remove the optimization that depends on ENDIAN_LITTLE: it's not worth it.Chris Lattner2004-01-151-8/+0
| | | | llvm-svn: 10870
* The new bytecode format supports emitting strings a special case. This isChris Lattner2004-01-143-21/+63
| | | | | | | | | | | | intended to save size (and does on small programs), but on big programs it actually increases the size of the program slightly. The deal is that many functions end up using the characters that the string contained, and the characters are no longer in the global constant table, so they have to be emitted in function specific constant pools. This pessimization will be fixed in subsequent patches. llvm-svn: 10864
* 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. llvm-svn: 10863
* Like output_data, it's obvious that input_data was only used with 1 characterChris Lattner2004-01-141-9/+1
| | | | | | data. llvm-svn: 10861
* It is obvious that this has never been used for outputing more than a singleChris Lattner2004-01-141-10/+1
| | | | | | byte, it's totally endian incorrect! llvm-svn: 10857
OpenPOWER on IntegriCloud