summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bytecode/Reader/Reader.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Back out last changes for dataLayout. Much more work is needed.Reid Spencer2007-01-191-7/+0
| | | | llvm-svn: 33347
* For PR761:Reid Spencer2007-01-181-0/+7
| | | | | | Implement reading and writing of the Module's data layout string. llvm-svn: 33346
* Get rid of some useless distinction between bool and integer.Reid Spencer2007-01-131-11/+4
| | | | llvm-svn: 33166
* * PIC codegen for X86/Linux has been implementedAnton Korobeynikov2007-01-121-5/+31
| | | | | | | | * PIC-aware internal structures in X86 Codegen have been refactored * Visibility (default/weak) has been added * Docs fixes (external weak linkage, visibility, formatting) llvm-svn: 33136
* For PR1064:Reid Spencer2007-01-121-39/+41
| | | | | | | | | | | | | | | | | | | | | | | 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
* Implement review feedback for the ConstantBool->ConstantInt merge. ChrisReid Spencer2007-01-121-1/+1
| | | | | | | | recommended that getBoolValue be replaced with getZExtValue and that get(bool) be replaced by get(const Type*, uint64_t). This implements those changes. llvm-svn: 33110
* Rename BoolTy as Int1Ty. Patch by Sheng Zhou.Reid Spencer2007-01-111-3/+3
| | | | llvm-svn: 33076
* For PR1043:Zhou Sheng2007-01-111-1/+1
| | | | | | | Merge ConstantIntegral and ConstantBool into ConstantInt. Remove ConstantIntegral and ConstantBool from LLVM. llvm-svn: 33073
* For PR411:Reid Spencer2007-01-061-17/+30
| | | | | | | | | 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
* For PR950:Reid Spencer2006-12-311-34/+29
| | | | | | | | | | | | | | Update for signless integer types and parameter attribute implementation. Of significant note: 1. This changes the bytecode format yet again. 2. There are 1/2 as many integer type planes (this is a good thing) 3. GEP indices now use only 1 bit to identify their type which means more GEP instructions won't be relegated to format 0 (size win) 4. Parameter attributes are implemented but currently being stored verbosely for each function type. Some other day this needs to be optimized for size. llvm-svn: 32783
* Fix long standing issue with propagating error message back to caller. ThisReid Spencer2006-12-151-2/+12
| | | | | | | | has been a problem since exceptions were removed from the BytecodeReader. Error messages are now captured from ModuleProvider::releaseModule as well as after a longjmp. llvm-svn: 32608
* Create the cast constant expression that was read instead of attemptingReid Spencer2006-12-111-1/+2
| | | | | | | to infer the cast from its operand and type. This fixes: test/Regression/Bytecode/2006-12-11-Cast-ConstExpr.ll llvm-svn: 32450
* Packed StructuresAndrew Lenharth2006-12-081-1/+12
| | | | llvm-svn: 32361
* For PR950: Implement read/write of ICmp and FCmp constant expressionsReid Spencer2006-12-041-6/+10
| | | | llvm-svn: 32172
* Support ICmp/FCmp constant expression reading and writing.Reid Spencer2006-12-031-0/+12
| | | | llvm-svn: 32160
* Implement reading and writing of the ICmp and FCmp instructions.Reid Spencer2006-12-031-3/+9
| | | | llvm-svn: 32149
* Remove backwards compatibility goop. This is now handled by llvm-upgrade.Reid Spencer2006-12-031-594/+16
| | | | llvm-svn: 32146
* For PR950:Reid Spencer2006-11-271-40/+191
| | | | | | | | | | 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
* Have ConstantExprs upgrade opcodes the same way as instructions.Reid Spencer2006-11-181-1/+11
| | | | llvm-svn: 31841
* Discard code that supported old bytecode formats. This makes the BytecodeReid Spencer2006-11-141-475/+144
| | | | | | | 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
* Bump the bytecode version number to 7. Implement upgrade of version 6 andReid Spencer2006-11-081-21/+89
| | | | | | version 6 bytecode. llvm-svn: 31573
* For PR950:Reid Spencer2006-11-081-3/+15
| | | | | | | | This patch converts the old SHR instruction into two instructions, AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not dependent on the sign of their operands. llvm-svn: 31542
* For PR786:Reid Spencer2006-11-021-1/+0
| | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
* For PR950:Reid Spencer2006-11-021-8/+13
| | | | | | Replace the REM instruction with UREM, SREM and FREM. llvm-svn: 31369
* For PR950:Reid Spencer2006-10-261-373/+697
| | | | | | | | 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
* For PR950:Reid Spencer2006-10-201-13/+11
| | | | | | | | This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
* Adding dllimport, dllexport and external weak linkage types.Anton Korobeynikov2006-09-141-0/+14
| | | | | | | | | DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. llvm-svn: 30374
* - 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-4/+12
| | | | | | | | | | | | | | | 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-115/+111
| | | | | | | | 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 the bc reader/writer: we were not correctly encoding varargsChris Lattner2006-05-261-8/+9
| | | | | | | | | nonccc calls (we were dropping the CC and tail flag). This broke several FORTRAN programs. Testcase here: Regression/Assembler/2006-05-26-VarargsCallEncode.ll llvm-svn: 28501
* use isValidOperands instead of duplicating checksChris Lattner2006-04-081-13/+24
| | | | llvm-svn: 27527
* Add shufflevector reading supportChris Lattner2006-04-081-0/+22
| | | | llvm-svn: 27509
* We have an assertion that checks that we do not encode null values into theChris Lattner2006-04-071-28/+32
| | | | | | | | | .bc file if they are supposed to be implicit. This is cool, except that it checked *after* constant expr folding: improving constant expr folding could cause the .bc reader to assert out on old .bc files. Move the check so that it checks all simple constants, but no constantexprs. llvm-svn: 27480
* Handle the removal of the debug chain.Jim Laskey2006-03-131-2/+2
| | | | llvm-svn: 26729
* Simplify the autoupgrade interfaceChris Lattner2006-03-021-6/+3
| | | | llvm-svn: 26475
* Fix auto-upgrade of intrinsics to work properly with both assembly andReid Spencer2006-01-271-15/+30
| | | | | | | 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-8/+31
| | | | llvm-svn: 25621
* Make it even more portable.Jeff Cohen2006-01-251-1/+1
| | | | llvm-svn: 25605
* Portably cast a pointer to an integer.Jeff Cohen2006-01-251-1/+1
| | | | llvm-svn: 25594
* Rename methodChris Lattner2006-01-241-1/+1
| | | | llvm-svn: 25571
* Add support for reading/writing inline asmChris Lattner2006-01-231-1/+5
| | | | llvm-svn: 25564
* Revert last patch because it messes up the JIT, amongst other things.Reid Spencer2006-01-231-5/+14
| | | | llvm-svn: 25541
* For PR411:Reid Spencer2006-01-231-14/+5
| | | | | | | Don't try to be smart about fixing intrinsic functions when they're read in, just fix them after the module is read when all names are resolved. llvm-svn: 25539
* 1. Identify bytecode modules that have upgraded intrinsics by setting aReid Spencer2006-01-191-7/+19
| | | | | | | | | boolean flag if we read a function prototype that needs upgrading. 2. Don't upgrade the CallInst instruction until after its been inserted into the basic block, and only if we know that we have seen an upgraded intrinsic function. llvm-svn: 25448
* Make sure intrinsic auto-upgrade is invoked correctly.Reid Spencer2006-01-191-0/+5
| | | | llvm-svn: 25434
* Reader support for the insertelement operation.Robert Bocchino2006-01-171-0/+18
| | | | llvm-svn: 25404
* For PR411:Reid Spencer2006-01-161-0/+2
| | | | | | | | | | | | | | | | This patch is an incremental step towards supporting a flat symbol table. It de-overloads the intrinsic functions by providing type-specific intrinsics and arranging for automatically upgrading from the old overloaded name to the new non-overloaded name. Specifically: llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64 llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64 llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64 llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64 llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64 New code should not use the overloaded intrinsic names. Warnings will be emitted if they are used. llvm-svn: 25366
* Added bytecode support for the extractelement operation.Robert Bocchino2006-01-101-0/+13
| | | | llvm-svn: 25178
* Fix reading LLVM 1.3 bc files.Chris Lattner2005-11-121-1/+1
| | | | llvm-svn: 24329
OpenPOWER on IntegriCloud