summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert previous change to IR.Dale Johannesen2007-09-071-1/+1
| | | | llvm-svn: 41769
* Next round of APFloat changes.Dale Johannesen2007-09-061-6/+9
| | | | | | | | | | | | | | Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) llvm-svn: 41747
* Update GEP constructors to use an iterator interface to fixDavid Greene2007-09-041-1/+1
| | | | | | GLIBCXX_DEBUG issues. llvm-svn: 41697
* Update InvokeInst to work like CallInstDavid Greene2007-08-271-1/+1
| | | | llvm-svn: 41506
* Patch 10 for long double. Doing constants right needs expanding ConstantFPDale Johannesen2007-08-091-0/+4
| | | | | | | | | | | | to handle values bigger than double. If we assume host==target and host long double works correctly, this is not too bad, but we don't want to have that limitation longterm. I could implement accepting double constants as long double or something like that, which would lead to incorrect codegen with no errors; the more I think about that the worse it seems. Rather than do such a hack that would be backed out later, I'm settling for giving reasonable error messages, for now. llvm-svn: 40974
* This is the patch to provide clean intrinsic function overloading support in ↵Chandler Carruth2007-08-041-0/+39
| | | | | | | | LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. llvm-svn: 40807
* Long double, part 1 of N. Support in IR.Dale Johannesen2007-08-031-0/+9
| | | | llvm-svn: 40774
* New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene2007-08-011-1/+1
| | | | | | | | indexing an empty std::vector. Updates to all clients. llvm-svn: 40660
* Here is the bulk of the sanitizing.Gabor Greif2007-07-051-3/+3
| | | | | | Almost all occurrences of "bytecode" in the sources have been eliminated. llvm-svn: 37913
* Fix PR1434 and test/Linker/link-archive.ll, this is a regression from 1.9.Chris Lattner2007-05-181-53/+82
| | | | llvm-svn: 37204
* implement the ModuleProvider::dematerializeFunction hookChris Lattner2007-05-151-8/+19
| | | | llvm-svn: 37080
* Make a preemptive bitcode format change to support PR1146. This lets us doChris Lattner2007-05-081-16/+25
| | | | | | | pr1146 in llvm 2.1 without ugly code to emulate old behavior. This should be merged into the 2.0 release branch. llvm-svn: 36928
* fix off-by-one that caused the llvm2cpp test to failChris Lattner2007-05-061-2/+4
| | | | llvm-svn: 36880
* Allow structs with zero fields.Chris Lattner2007-05-061-1/+1
| | | | llvm-svn: 36862
* add a missing checkChris Lattner2007-05-061-0/+1
| | | | llvm-svn: 36859
* implement reading/writing of inlineasm objectsChris Lattner2007-05-061-0/+21
| | | | llvm-svn: 36827
* add a denser encoding for null terminated strings, add a 6-bit abbrev asChris Lattner2007-05-061-0/+14
| | | | | | well. This shrinks kc++ from 2724088 to 2717360 bytes. llvm-svn: 36821
* implement the 'string constant' optimization. This shrinks kc.bit fromChris Lattner2007-05-061-0/+14
| | | | | | 2878544 to 2815788 llvm-svn: 36818
* further reduce the redundancy of types in the instruction encoding. ThisChris Lattner2007-05-061-64/+65
| | | | | | shrinks function bodies in kc++ from 891913B to 884073B llvm-svn: 36817
* stop encoding type/value pairs when the type is implied by the value.Chris Lattner2007-05-061-75/+69
| | | | | | This shrinks the function block of kc++ from 1055K to 906K llvm-svn: 36816
* add support for BLOCKINFO records at the module level. This fixes the readerChris Lattner2007-05-051-0/+4
| | | | | | issues reid noticed last night. llvm-svn: 36785
* Implement support for globally associating abbrevs with block IDs, whichChris Lattner2007-05-051-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | relieves us from having to emit the abbrevs into each instance of the block. This shrinks kc.bit from 3368K to 3333K, but will be a more significant win once instructions are abbreviated. The VST went from: Block ID #14 (VALUE_SYMTAB): Num Instances: 2345 Total Size: 1.29508e+07b/1.61885e+06B/404713W Average Size: 5522.73b/690.342B/172.585W % of file: 48.0645 Tot/Avg SubBlocks: 0/0 Tot/Avg Abbrevs: 7035/3 Tot/Avg Records: 120924/51.5667 % Abbrev Recs: 100 to: Block ID #14 (VALUE_SYMTAB): Num Instances: 2345 Total Size: 1.26713e+07b/1.58391e+06B/395978W Average Size: 5403.53b/675.442B/168.86W % of file: 47.5198 Tot/Avg SubBlocks: 0/0 Tot/Avg Abbrevs: 0/0 Tot/Avg Records: 120924/51.5667 % Abbrev Recs: 100 because we didn't emit the same 3 abbrevs 2345 times :) llvm-svn: 36767
* eliminate internal length fields from record. Records already know theirChris Lattner2007-05-041-37/+36
| | | | | | total length llvm-svn: 36752
* storeinst ctor takes isvolatile before alignment. With this, 176.gcc roundtripsChris Lattner2007-05-041-1/+1
| | | | llvm-svn: 36738
* fix a misplaced errorChris Lattner2007-05-041-1/+1
| | | | llvm-svn: 36736
* encode and read param attrs along with function type. WE can now roundtrip ↵Chris Lattner2007-05-041-7/+6
| | | | | | Olden/voronoi loslessly llvm-svn: 36735
* add support for reading the param attrs blockChris Lattner2007-05-041-0/+69
| | | | llvm-svn: 36731
* remove dead codeChris Lattner2007-05-041-6/+0
| | | | llvm-svn: 36728
* Allow this to compile with gcc 4.0.XReid Spencer2007-05-041-2/+4
| | | | llvm-svn: 36723
* Encoding calling conv info in call/invoke instrs, tree add now round trips ↵Chris Lattner2007-05-031-16/+21
| | | | | | completely llvm-svn: 36707
* the type field for a store is the type of the pointer, not the value.Chris Lattner2007-05-031-3/+4
| | | | | | With this fix I can round trip treeaadd, only losing calling conv info. llvm-svn: 36706
* fix encoding of BB names in the symtabChris Lattner2007-05-031-0/+10
| | | | llvm-svn: 36704
* bug fixesChris Lattner2007-05-031-3/+3
| | | | llvm-svn: 36701
* implement the rest of the instructionsChris Lattner2007-05-031-10/+68
| | | | llvm-svn: 36699
* add a few more instructions, getting closeChris Lattner2007-05-031-10/+53
| | | | llvm-svn: 36688
* add reader logic for terminator instrs.Chris Lattner2007-05-021-8/+89
| | | | llvm-svn: 36642
* add reader support for a bunch of new instructionsChris Lattner2007-05-021-14/+90
| | | | llvm-svn: 36641
* read a few instructions, fix some bugs. This is enough to be able to roundChris Lattner2007-05-021-15/+38
| | | | | | | | | | | | | | trip function bodies like this: define <2 x i64> @foo(<2 x i64> %x, <2 x i64> %y) { %tmp4 = bitcast <2 x i64> %y to <8 x i16> ; <<8 x i16>> [#uses=1] %tmp5 = bitcast <2 x i64> %x to <8 x i16> ; <<8 x i16>> [#uses=1] %tmp = add <8 x i16> %tmp5, %tmp4 ; <<8 x i16>> [#uses=1] %tmp6 = bitcast <8 x i16> %tmp to <2 x i64> ; <<2 x i64>> [#uses=1] ret <2 x i64> %tmp6 } llvm-svn: 36640
* handle function-level forward references, read binops.Chris Lattner2007-05-011-20/+126
| | | | llvm-svn: 36620
* implement materializeModule, force deallocation of vector memory when weChris Lattner2007-05-011-6/+99
| | | | | | are done with them, start implementing ParseFunctionBody llvm-svn: 36617
* The stream to read from is now an ivarChris Lattner2007-05-011-13/+12
| | | | llvm-svn: 36615
* implement scafolding for lazy deserialization of function bodiesChris Lattner2007-05-011-2/+63
| | | | llvm-svn: 36614
* Implement visibility checking during linking. Also implement protectedAnton Korobeynikov2007-04-291-0/+1
| | | | | | visibility support for bitcode. llvm-svn: 36577
* Switch the bitcode reader interface to take a MemoryBuffer instead of knowingChris Lattner2007-04-291-5/+50
| | | | | | | | | | | | | | anything about disk I/O itself. This greatly simplifies its interface - eliminating the need for the ReaderWrappers.cpp file. This adds a new option to llvm-dis (-bitcode) which instructs it to read the input file as bitcode. Until/unless the bytecode reader is taught to read from MemoryBuffer, there is no way to handle stdin reading without it. I don't plan to switch the bytecode reader over, I'd rather delete it :), so the option will stay around temporarily. llvm-svn: 36554
* This is not "FIXME" anymoreAnton Korobeynikov2007-04-281-3/+1
| | | | llvm-svn: 36541
* move some code around, fix a bug in the reader reading globalinits (whichChris Lattner2007-04-261-3/+11
| | | | | | | I just introduced), stub out function reading, purge aggregate values from the value table before reading functions. llvm-svn: 36463
* add bitcode alias supportChris Lattner2007-04-261-17/+57
| | | | llvm-svn: 36461
* ensure that every error return sets a message (and goes through Error, forChris Lattner2007-04-241-19/+35
| | | | | | | | | easy breakpointing). Fix bugs reading constantexpr geps. We now can disassemble kc++ global initializers. llvm-svn: 36398
* fix memory leakChris Lattner2007-04-241-3/+4
| | | | llvm-svn: 36397
* implement reading and writing of constant exprs.Chris Lattner2007-04-241-6/+133
| | | | llvm-svn: 36394
OpenPOWER on IntegriCloud