summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode/Reader/Reader.h
Commit message (Collapse)AuthorAgeFilesLines
* remove bytecode readerChris Lattner2007-05-061-491/+0
| | | | llvm-svn: 36882
* Implement review feedback. Aliasees can be either GlobalValue's orAnton Korobeynikov2007-04-281-0/+9
| | | | | | bitcasts of them. llvm-svn: 36537
* For PR1146:Reid Spencer2007-04-091-0/+4
| | | | | | | | Use ParamAttrsList for writing parameter attributes. Since they are sparse now, we also write them sparsely (saves a few bytes). Unfortunately, this is a bytecode file format change. llvm-svn: 35811
* the bytecode reader supports dematerializeFunctionChris Lattner2007-03-291-4/+22
| | | | llvm-svn: 35475
* Use a SmallVector to reduce heap traffic. This speeds up bcreader 10%Chris Lattner2007-02-131-1/+1
| | | | llvm-svn: 34231
* avoid creating a temporary string when reading the symbol table for aChris Lattner2007-02-121-0/+1
| | | | | | module. This speeds up the bcreader 11%. llvm-svn: 34198
* move AnalyzeBytecodeFile out of ReaderWrappers.cpp into Analyzer.cpp. NowChris Lattner2007-02-071-8/+0
| | | | | | lli doesn't link in Analyzer.cpp. llvm-svn: 34020
* push bytecode decompressor out through APIs. Now the bytecode readerChris Lattner2007-02-071-4/+3
| | | | | | | | | | | | | | | | | | | | api's look like this: ModuleProvider *getBytecodeModuleProvider( const std::string &Filename, ///< Name of file to be read BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer, std::string* ErrMsg = 0, ///< Optional error message holder BytecodeHandler* H = 0 ///< Optional handler for reader events ); This is ugly, but allows a client to say: getBytecodeModuleProvider("foo", 0); If they do this, there is no dependency on the compression libraries, saving codesize. llvm-svn: 34012
* Move compressor out of the core Reader.cpp file.Chris Lattner2007-02-071-0/+4
| | | | llvm-svn: 34007
* Eliminate std::vectors from the bcanalyzer interface.Chris Lattner2007-02-071-2/+2
| | | | llvm-svn: 33978
* For PR411:Reid Spencer2007-02-051-3/+5
| | | | | | | | | | This patch replaces the SymbolTable class with ValueSymbolTable which does not support types planes. This means that all symbol names in LLVM must now be unique. The patch addresses the necessary changes to deal with this and removes code no longer needed as a result. This completes the bulk of the changes for this PR. Some cleanup patches will follow. llvm-svn: 33918
* Bye, Bye Compaction Tables. The benefit compaction tables provides doesn'tReid Spencer2007-01-301-26/+0
| | | | | | | | | | | | | | | | | | | outweight its computational costs. This patch removes all compaction table handling from the bcreader and bcwriter. For the record, here's the difference betweeen having and not having compaction tables for some tests: Test With Without Size Chg Olden/mst 5,602 5,598 +0.1% viterbi 18,026 17,795 +1.3% obsequi 162,133 166,663 -2.8% burg 224,090 228,148 -1.8% kimwitu++ 4,933,263 5,121,159 -3.8% 176.gcc 8,470,424 9,141,539 -7.3% It seems that it is more beneficial to larger files, but even on the largest test case we have (176.gcc) it only amounts ot an I/O saving of 7.3%. llvm-svn: 33661
* For PR1064:Reid Spencer2007-01-121-0/+14
| | | | | | | | | | | | | | | | | | | | | | | Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. llvm-svn: 33113
* For PR411:Reid Spencer2007-01-061-2/+6
| | | | | | | | | Take an incremental step towards type plane elimination. This change separates types from values in the symbol tables by finally making use of the TypeSymbolTable class. This yields more natural interfaces for dealing with types and unclutters the SymbolTable class. llvm-svn: 32956
* Remove backwards compatibility goop. This is now handled by llvm-upgrade.Reid Spencer2006-12-031-38/+0
| | | | llvm-svn: 32146
* For PR950:Reid Spencer2006-11-271-6/+7
| | | | | | | | | | The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
* Discard code that supported old bytecode formats. This makes the BytecodeReid Spencer2006-11-141-75/+2
| | | | | | | Reader code much easier to read and maintain. Backwards compatibility from version 5 format has been retained. Older formats will produce an error. llvm-svn: 31723
* For PR998:Reid Spencer2006-11-111-1/+1
| | | | | | | | Fix an infinite loop in the Linker and a few other assorted link problems. Patch contributed by Scott Michel. Thanks, Scott! llvm-svn: 31680
* Bump the bytecode version number to 7. Implement upgrade of version 6 andReid Spencer2006-11-081-7/+17
| | | | | | version 6 bytecode. llvm-svn: 31573
* For PR950:Reid Spencer2006-10-261-0/+19
| | | | | | | | Make necessary changes to support DIV -> [SUF]Div. This changes llvm to have three division instructions: signed, unsigned, floating point. The bytecode and assembler are bacwards compatible, however. llvm-svn: 31195
* Fix massive resource leaks in the bytecode reader. Reading a bytecode fileChris Lattner2006-10-121-6/+6
| | | | | | | | | with ParseBytecodeFile used to leak both a ModuleProvider (and related bytecode parser stuff attached to it) AND a file descriptor, which was never closed. This prevented gccld/llvm-ld/llvm-link from linking together apps with more that ~252 .bc files on darwin. llvm-svn: 30912
* - Fixed broken Win32 buildAnton Korobeynikov2006-09-011-1/+1
| | | | | | - Removed warning about clobbered parameter in Bytecode/Reader llvm-svn: 30026
* For PR797:Reid Spencer2006-08-251-19/+8
| | | | | | | | | | | | | | | Final commit for this bug. This removes the last EH holdouts in LLVM and turns off exception support by using the -fno-exceptions option. This leads to the following reduction in library and executable sizes: DEBUG BUILD RELEASE BUILD before after delta before after delta lib 162,328K 157,616K 4,712 17,864K 16,416K 1,448K bin 571,444K 557,156K 14,288 63,296K 56,996K 6,300K Debug Improvement: 19,000K (2.59%) Release Improvement: 7,748K (9.55%) llvm-svn: 29882
* For PR797:Reid Spencer2006-08-221-3/+8
| | | | | | | | Make the Bytecode Reader use setjmp/longjump instead of exceptions to handle errors. The alternative was even uglier than setjmp/longjump as it would impact the interface and workings of nearly every function in the reader. llvm-svn: 29819
* Fix a bug in my previous patch which broke building llvm/runtime when using ↵Chris Lattner2006-07-071-1/+1
| | | | | | llvm-gcc3. llvm-svn: 29041
* Change the ModuleProvider interface to not throw exceptions.Chris Lattner2006-07-061-5/+20
| | | | llvm-svn: 29024
* Fix auto-upgrade of intrinsics to work properly with both assembly andReid Spencer2006-01-271-3/+3
| | | | | | | bytecode reading. This code is crufty, the result of much hacking to get things working correctly. Cleanup patches will follow. llvm-svn: 25682
* add bc reader/writer support for inline asmChris Lattner2006-01-251-2/+2
| | | | llvm-svn: 25621
* Add a flag to identify bytecode files that have intrinsic functions thatReid Spencer2006-01-191-0/+7
| | | | | | need to be upgraded. llvm-svn: 25445
* Use a map to cache the ModuleType information, so we can do logarithmicChris Lattner2005-10-031-0/+6
| | | | | | | | | | | | | lookups instead of linear time lookups. This speeds up bc parsing of a large file from 137.834u 118.256s 4:27.96 to 132.611u 114.436s 4:08.53 with a release build. llvm-svn: 23611
* This is a dummy, it doesn't matter what the ValueType isChris Lattner2005-08-161-1/+1
| | | | llvm-svn: 22809
* remove some dead (always dynamically false) flagsChris Lattner2005-05-061-15/+0
| | | | llvm-svn: 21752
* Remove trailing whitespaceMisha Brukman2005-04-211-28/+28
| | | | llvm-svn: 21417
* Adjust to changes in User class and minor changes in instruction ctors.Chris Lattner2005-01-291-8/+13
| | | | llvm-svn: 19894
* Remove a dead field, make the map go to integer type ID to hash better andChris Lattner2004-12-091-2/+2
| | | | | | avoid a getType. llvm-svn: 18691
* Cleanups. Null out pointer after freeing it for paranoiaChris Lattner2004-11-151-5/+5
| | | | llvm-svn: 17855
* Simplify handling of decompressionReid Spencer2004-11-141-15/+4
| | | | llvm-svn: 17769
* Add comments per CL code review.Reid Spencer2004-11-071-2/+6
| | | | llvm-svn: 17578
* Add support for compressed bytecodeReid Spencer2004-11-061-2/+15
| | | | llvm-svn: 17535
* Add support for undef, unreachable, and function flagsChris Lattner2004-10-161-3/+15
| | | | llvm-svn: 17054
* Fit to 80 colsChris Lattner2004-10-141-7/+6
| | | | llvm-svn: 16964
* Add boolean file format flags in preparation for version 5 bytecode.Reid Spencer2004-08-211-3/+18
| | | | | | | | Remove the "processFunctions" boolean from ParseBytecode as it is no longer needed. This is part of avoiding double reading of functions when analyzing bytecode. llvm-svn: 15982
* Bytecode File Format Changes:Reid Spencer2004-08-171-2/+5
| | | | | | | | - File format version number bumped to 4 - Writer will now align nothing - Reader now only expects alignment for version 3 or earlier llvm-svn: 15875
* Make getGlobalTableValue not use getTypeSlot, this speeds up the bc readerChris Lattner2004-08-041-2/+3
| | | | | | by 5% on eon llvm-svn: 15452
* Do not do a linear std::find to reconstruct information we had, but later threwChris Lattner2004-08-031-12/+14
| | | | | | away. This speeds up by .bc reader by 30% in a profile build on 252.eon. llvm-svn: 15450
* Don't create a backwards compatibility flag for something that was aReid Spencer2004-07-251-4/+0
| | | | | | regression bug introduced in release 1.2 llvm-svn: 15219
* bug 263:Reid Spencer2004-07-251-0/+35
| | | | | | | | | | | | | | | | - encode/decode target triple and dependent libraries bug 401: - fix encoding/decoding of FP values to be little-endian only bug 402: - initial (compatible) cut at 24-bit types instead of 32-bit - reduce size of block headers by 50% Other: - cleanup Writer by consolidating to one compilation unit, rem. other files - use a std::vector instead of std::deque so the buffer can be allocated in multiples of 64KByte chunks rather than in multiples of some smaller (default) number. llvm-svn: 15210
* User ValueListTy as the type of the ValueList. This avoides the ValueListReid Spencer2004-07-181-1/+1
| | | | | | | from being treated like a Function which can cause the contents of the list to be come invalidated. llvm-svn: 14940
* - Rename two methods to give them more meaningReid Spencer2004-07-111-2/+8
| | | | | | | - Add read_float and read_double in preparation for a correct implementation of bytecode floating point support. llvm-svn: 14764
* Error Handling Cleanup:Reid Spencer2004-07-091-0/+2
| | | | | | | | | | - get rid of PARSE_ERROR macro - add error(std::string) function - use error(std::string) for all errors - make input dependent asserts call error(std::string) instead - ensure asserts are only for logic bugs, not input discrepancies. llvm-svn: 14729
OpenPOWER on IntegriCloud