summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Interpreter
Commit message (Collapse)AuthorAgeFilesLines
...
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-022-6/+7
| | | | | | | | | | | | This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. llvm-svn: 33776
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-2/+2
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Remove tabs.Reid Spencer2007-01-291-2/+2
| | | | llvm-svn: 33620
* Implement use of new IntrinsicLowering interface.Reid Spencer2007-01-291-1/+1
| | | | llvm-svn: 33619
* For PR761:Reid Spencer2007-01-261-12/+11
| | | | | | | The Module::setEndianness and Module::setPointerSize methods have been removed. Instead you can get/set the DataLayout. Adjust thise accordingly. llvm-svn: 33530
* For PR970:Reid Spencer2007-01-211-1/+1
| | | | | | | Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! llvm-svn: 33415
* Implement the signed icmp instructions properly. To do this we introduceReid Spencer2007-01-201-17/+27
| | | | | | | | a small inline function to sign extend a uint64_t value based on its type's bitwidth. This function is then used in both executeSExtInst and the various executeICMP_S** functions. llvm-svn: 33403
* Implement bit-accurate sext instruction.Reid Spencer2007-01-201-10/+14
| | | | | | This patch fixes test/Integer/2007-01-17-TruncSext.ll llvm-svn: 33394
* Use the new maskToBitWidth function to ensure that the results ofReid Spencer2007-01-181-10/+15
| | | | | | computations do not overflow the intended bit width. llvm-svn: 33326
* Add an inline helper function that masks a GenericValue to a specifiedReid Spencer2007-01-181-0/+12
| | | | | | bit width. llvm-svn: 33325
* Make shl instruction mask its result to the correct bitsize. This isReid Spencer2007-01-181-5/+10
| | | | | | | sufficient to get llvm-test/SingleSource/UnitTests/Integer/general-test.ll working with lli in interpreter mode. llvm-svn: 33321
* Two changes:Reid Spencer2007-01-181-18/+17
| | | | | | | | | 1. Fix logic for executeGEP. Only 32-bit and 64-bit integer types are acceptable as indices. 2. Ensure that all integer cast operations truncate their result to the integer size of the operand. llvm-svn: 33318
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-6/+6
| | | | | | | | | rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
* eliminate calls to Type::isInteger, preferring isIntegral instead.Chris Lattner2007-01-151-4/+4
| | | | llvm-svn: 33222
* For PR1064:Reid Spencer2007-01-123-385/+731
| | | | | | | | | | | | | | | | | | | | | | | 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
* Rename BoolTy as Int1Ty. Patch by Sheng Zhou.Reid Spencer2007-01-112-27/+27
| | | | llvm-svn: 33076
* For PR950:Reid Spencer2006-12-312-369/+253
| | | | | | Convert signed integer types to signless ones. llvm-svn: 32787
* For PR950:Reid Spencer2006-12-232-112/+331
| | | | | | | | This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. llvm-svn: 32751
* elimiante Statistic static ctorsChris Lattner2006-12-191-5/+2
| | | | llvm-svn: 32702
* Removing even more <iostream> includes.Bill Wendling2006-12-071-2/+1
| | | | llvm-svn: 32320
* Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, areBill Wendling2006-12-072-36/+35
| | | | | | now cerr, cout, and NullStream resp. llvm-svn: 32298
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-1/+1
| | | | | | is 'unsigned'. llvm-svn: 32279
* Unbreak VC++ build.Jeff Cohen2006-12-022-0/+2
| | | | llvm-svn: 32113
* Removed #include <iostream> and replaced streams with llvm streams.Bill Wendling2006-11-272-35/+36
| | | | llvm-svn: 31949
* For PR950:Reid Spencer2006-11-272-36/+181
| | | | | | | | | | 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
* Simplify IntrinsicLowering and clarify that it is only for use by theChris Lattner2006-11-151-1/+1
| | | | | | CBE and interpreter. llvm-svn: 31755
* Remove redundant <cmath>.Jim Laskey2006-11-082-2/+0
| | | | llvm-svn: 31561
* For PR950:Reid Spencer2006-11-082-20/+52
| | | | | | | | 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
* Remove a function prototype that is no longer needed (REM patch missed it)Reid Spencer2006-11-021-2/+0
| | | | llvm-svn: 31374
* For PR950:Reid Spencer2006-11-021-12/+50
| | | | | | Replace the REM instruction with UREM, SREM and FREM. llvm-svn: 31369
* Remove unnecessary sign conversions made possible by last patch.Reid Spencer2006-11-011-4/+0
| | | | llvm-svn: 31339
* Fix a bug in the interpreter where divides of unmatched signed operandsReid Spencer2006-11-011-8/+11
| | | | | | | would fail. E.g. udiv sint X, Y or sdiv uint X, Y would fail to find a type match in the switch statement and fail the operation. llvm-svn: 31338
* For PR950:Reid Spencer2006-10-261-11/+51
| | | | | | | | 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-2/+2
| | | | | | | | 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
* initial changes to support JIT'ing from multiple module providers, implicitlyChris Lattner2006-08-161-1/+1
| | | | | | linking the program on the fly. llvm-svn: 29721
* Simplify TargetData ctor callChris Lattner2006-06-161-1/+1
| | | | llvm-svn: 28832
* Simplify interpreter construction.Chris Lattner2006-06-162-21/+11
| | | | llvm-svn: 28826
* Fix -pedantic warningsChris Lattner2006-06-011-2/+3
| | | | llvm-svn: 28635
* For PR786:Reid Spencer2006-05-241-1/+1
| | | | | | | | Minor tweaks in public headers and a few .cpp files so that LLVM can build successfully with -pedantic and projects using LLVM with -pedantic don't get warnings from LLVM. There's still more -pedantic warnings to fix. llvm-svn: 28453
* Refactor TargetMachine, pushing handling of TargetData into the ↵Owen Anderson2006-05-031-1/+1
| | | | | | | | target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. llvm-svn: 28074
* Get JIT/Interpreter working on Windows again.Jeff Cohen2006-03-241-0/+5
| | | | llvm-svn: 27037
* remove the intrinsiclowering hookChris Lattner2006-03-232-13/+9
| | | | llvm-svn: 26970
* Eliminate the dependency of ExecutionEngine on the JIT/Interpreter libraries.Chris Lattner2006-03-222-2/+19
| | | | | | Now you can build a tool with just the JIT or just the interpreter. llvm-svn: 26946
* The interpreter assumes that the caller of runFunction() must be lli, andJeff Cohen2006-02-073-8/+7
| | | | | | | | therefore the function being called must be a main() returning an int. The consequences when these assumptions are false are not good, so don't assume them. llvm-svn: 26031
* Eliminate all remaining tabs and trailing spaces.Jeff Cohen2005-07-271-1/+1
| | | | llvm-svn: 22523
* core changes for varargsAndrew Lenharth2005-06-182-13/+3
| | | | llvm-svn: 22254
* Convert tabs to spacesMisha Brukman2005-04-223-7/+8
| | | | llvm-svn: 21440
* * Remove trailing whitespaceMisha Brukman2005-04-214-113/+113
| | | | | | * Convert tabs to spaces llvm-svn: 21421
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-3/+3
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* If the interpreter tries to execute an external function, kill it. Of courseChris Lattner2005-01-211-6/+8
| | | | | | | | since we are dirty, special case __main. This should fix the infinite loop horrible stuff that happens on linux-alpha when configuring llvm-gcc. It might also help cygwin, who knows?? llvm-svn: 19729
OpenPOWER on IntegriCloud