summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Be backward compatibleAnton Korobeynikov2008-03-121-1/+4
| | | | llvm-svn: 48268
* Honour aliases visibility when reading from/writing to bitcodeAnton Korobeynikov2008-03-111-1/+2
| | | | llvm-svn: 48248
* Add an unwind_to field to basic blocks, making them Users instead of Values.Nick Lewycky2008-03-021-0/+9
| | | | | | This is the first checkin for PR1269, the new EH infrastructure. llvm-svn: 47802
* Use SmallVector while constructing ReturnInst.Devang Patel2008-02-261-2/+4
| | | | llvm-svn: 47619
* Update bitcode reader and writer to handle multiple return values. Devang Patel2008-02-261-11/+18
| | | | | | Take 2. llvm-svn: 47583
* Backing out r47521 for now. This has broken a number of tests.Evan Cheng2008-02-231-24/+11
| | | | llvm-svn: 47533
* Properly read and write bitcodes for multiple return values.Devang Patel2008-02-231-11/+24
| | | | llvm-svn: 47521
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-221-1/+1
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Read and write getresult.Devang Patel2008-02-221-0/+10
| | | | llvm-svn: 47471
* Use empty() instead of comparing size() with zero.Dan Gohman2008-01-291-1/+1
| | | | llvm-svn: 46514
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Bring back int_x86_sse2_movl_dq intrinsic for backward compatibility. Make sureEvan Cheng2007-12-171-1/+2
| | | | | | it's auto-upgraded to a shufflevector instruction. llvm-svn: 45131
* Change the PointerType api for creating pointer types. The old functionality ↵Christopher Lamb2007-12-171-1/+1
| | | | | | of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. llvm-svn: 45082
* Implement address space attribute for LLVM pointer types. Address spaces are Christopher Lamb2007-12-111-4/+24
| | | | | | | | | | | | | | | | | regions of memory that have a target specific relationship, as described in the Embedded C Technical Report. This also implements the 2007-12-11-AddressSpaces test, which demonstrates how address space attributes can be used in LLVM IR. In addition, this patch changes the bitcode signature for stores (in a backwards compatible manner), such that the pointer type, rather than the pointee type, is encoded. This permits type information in the pointer (e.g. address space) to be preserved for stores. LangRef updates are forthcoming. llvm-svn: 44858
* Adding a collector name attribute to Function in the IR. These Gordon Henriksen2007-12-101-1/+14
| | | | | | | | | | | | | | | | | | | | methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. llvm-svn: 44769
* Unbreak backwards compatibility with bytecode format. RegressionChris Lattner2007-11-271-4/+5
| | | | | | | introduced by this patch: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071126/055824.html llvm-svn: 44364
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-271-15/+16
| | | | | | | | | | | | the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
* In order for parameter attribute uniquing to makeDuncan Sands2007-11-201-6/+4
| | | | | | | | | | | | any sense it is important that ParamAttr::None gets treated the same as not supplying an attribute at all. Rather than stripping ParamAttr::None out of the list of attributes, assert if ParamAttr::None is seen. Fix up the bitcode reader which liked to insert ParamAttr::None all over the place. Patch based on one by Török Edwin. llvm-svn: 44250
* Add explicit keywords.Dan Gohman2007-11-191-1/+1
| | | | llvm-svn: 44234
* Make labels work in asm blocks; allow labels asDale Johannesen2007-11-051-1/+4
| | | | | | | parameters. Rename ValueRefList to ParamList in AsmParser, since its only use is for parameters. llvm-svn: 43734
* Next PPC long double bits. First cut at constants.Dale Johannesen2007-10-111-2/+2
| | | | | | | | | No compile-time support for constant operations yet, just format transformations. Make readers and writers work. Split constants into 2 doubles in Legalize. llvm-svn: 42865
* Revise previous patch per review comments.Dale Johannesen2007-09-121-1/+0
| | | | | | | Next round of x87 long double stuff. Getting close now, basically works. llvm-svn: 41875
* Add APInt interfaces to APFloat (allows directlyDale Johannesen2007-09-111-5/+6
| | | | | | | | | access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). llvm-svn: 41858
* 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
OpenPOWER on IntegriCloud