summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Removed #include <iostream> and replaced streams with llvm streams.Bill Wendling2006-11-271-29/+29
| | | | llvm-svn: 31949
* For PR950:Reid Spencer2006-11-271-34/+179
| | | | | | | | | | 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
* Remove redundant <cmath>.Jim Laskey2006-11-081-1/+0
| | | | llvm-svn: 31561
* For PR950:Reid Spencer2006-11-081-19/+50
| | | | | | | | 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
* The interpreter assumes that the caller of runFunction() must be lli, andJeff Cohen2006-02-071-3/+3
| | | | | | | | 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
* core changes for varargsAndrew Lenharth2005-06-181-12/+3
| | | | llvm-svn: 22254
* * Remove trailing whitespaceMisha Brukman2005-04-211-96/+96
| | | | | | * 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
* Silence VS warningsChris Lattner2005-01-081-4/+4
| | | | llvm-svn: 19389
* Add support for unreachableChris Lattner2004-10-161-0/+5
| | | | llvm-svn: 17056
* Convert code to compile with vc7.1.Reid Spencer2004-09-151-2/+3
| | | | | | Patch contributed by Paolo Invernizzi. Thanks Paolo! llvm-svn: 16368
* Changes For Bug 352Reid Spencer2004-09-011-2/+2
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Fixes for PR341Chris Lattner2004-07-151-2/+2
| | | | llvm-svn: 14848
* Fixes for PR341Chris Lattner2004-07-151-2/+2
| | | | llvm-svn: 14847
* Move the IntrinsicLowering header into the CodeGen directory, as per PR346Chris Lattner2004-06-201-1/+1
| | | | llvm-svn: 14266
* Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner2004-06-171-20/+20
| | | | llvm-svn: 14201
* Go back to the interpreter main loop after performing intrinsic lowering,Brian Gaeke2004-04-231-0/+1
| | | | | | | | because 1) the first instruction might not be a call site, and 2) CS and SF.Caller were not getting set to point to the new call site anyway (resulting in a crash on e.g. call %llvm.memset). llvm-svn: 13122
* Add support for the select instructionChris Lattner2004-04-201-2/+22
| | | | llvm-svn: 13076
* Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* toChris Lattner2004-03-131-3/+3
| | | | | | Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file. llvm-svn: 12356
* Represent va_list in interpreter as a (ec-stack-depth . var-arg-index)Brian Gaeke2004-02-251-11/+14
| | | | | | | | | pair, and look up varargs in the execution stack every time, instead of just pushing iterators (which can be invalidated during callFunction()) around. (union GenericValue now has a "pair of uints" member, to support this mechanism.) Fixes Bug 234. llvm-svn: 11845
* The Interpreter was failing the AtExit UnitTest. This fixes it.Brian Gaeke2004-02-131-0/+4
| | | | llvm-svn: 11367
* rename the "exceptional" destination of an invoke instruction to the ↵Chris Lattner2004-02-081-2/+1
| | | | | | 'unwind' dest llvm-svn: 11202
* Don't pass anything to the IntrinsicLowering class that is not_intrinsic,Brian Gaeke2004-01-141-1/+4
| | | | | | | | | because that makes it abort. Also, fix a typo in a comment. This checkin brought to you by the "It only takes about 30 seconds to run ENABLE_LLI tests on Shootout on zion, even if they all dump core" fund. llvm-svn: 10844
* Clean up a lot of the code I added yesterday by exposing the IntrinsicLoweringChris Lattner2003-12-281-1/+0
| | | | | | implementation from the TargetMachine directly. llvm-svn: 10636
* Pass around IntrinsicLowering instances as appropriate.Chris Lattner2003-12-281-5/+36
| | | | | | Reimplement the Interpreters implementation of va_* to be more direct. llvm-svn: 10627
* Since we are using a gep_type_iterator, we apparently must get the typeBrian Gaeke2003-12-121-2/+1
| | | | | | | index by using I.getOperand() here. This was failing an assertion on basically every struct access. llvm-svn: 10426
* Add support for --debug-only=interpreter, to print out instrs beforeBrian Gaeke2003-12-111-40/+144
| | | | | | | | | | | | | | | | | | interpreting them. Move support for getting the value of a ConstantExpr into getConstantExprValue(), and add support for the rest of the different kinds of ConstantExprs. (I don't think I like ConstantExprs!) This requires separate procedures executeShlInst() and executeShrInst(). Reduce the number of references to TheEE. Get rid of an old comment mentioning annotations. Fix exitCalled(), which was crashing the Interpreter. This was a leftover from the return-value code refactoring. llvm-svn: 10389
* Do not depend on structure elements being of type UByteTyChris Lattner2003-11-251-20/+28
| | | | llvm-svn: 10224
* Change LLI's internal representation of va_list to a pointer to the nextBrian Gaeke2003-11-131-10/+10
| | | | | | | | argument to be returned by va_arg. This allows va_lists to be passed between different LLVM procedures (though it is unlikely that an LLI va_list would make sense to an external function, except by chance.) llvm-svn: 9965
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-1/+5
| | | | llvm-svn: 9903
* Implement vaarg instruction. This is not quite perfect: 2003-08-11-VaListArgBrian Gaeke2003-11-071-0/+35
| | | | | | still causes a crash. But it's better than before. llvm-svn: 9794
* popStackAndReturnValueToCaller() must advance instruction pointer to normalBrian Gaeke2003-11-071-5/+24
| | | | | | | | destination, if returning from an invoke. Implement 'unwind' instruction. llvm-svn: 9792
* Add stub version of unwind supportBrian Gaeke2003-11-071-0/+4
| | | | llvm-svn: 9789
* visitCallInst --> visitCallSite.Brian Gaeke2003-11-071-2/+2
| | | | | | Use visitCallSite to implement both CallInsts and InvokeInsts. llvm-svn: 9788
* Make the operation of visitCallInst() only depend on the CallSite.Brian Gaeke2003-11-071-7/+9
| | | | llvm-svn: 9787
* Use CallSites for call sites, instead of CallInsts. A revolutionary concept.Brian Gaeke2003-11-071-7/+7
| | | | llvm-svn: 9784
* Refactor the return-from-function code into popStackAndReturnValueToCaller().Brian Gaeke2003-11-071-37/+41
| | | | | | Make external function calls slightly less special; now they get a stack frame. llvm-svn: 9765
* Be friendly to gcc 3.4... good compiler. Nice compiler.Chris Lattner2003-11-051-1/+0
| | | | llvm-svn: 9726
* Use regular old malloc to emulate malloc/alloca instructions.Brian Gaeke2003-11-051-2/+1
| | | | llvm-svn: 9713
* Remove a comment which no longer applies.Brian Gaeke2003-11-051-5/+0
| | | | llvm-svn: 9712
* Reduce the number of #includes.Brian Gaeke2003-10-241-186/+22
| | | | | | | | | | | | | CurFrame, TraceMode, and the CachedWriter are history. ArrayChecksEnabled and non-QuietMode are history. The ExecutionAnnotations (SlotNumber, InstNumber, and FunctionInfo) are history. ExecutionContext now keeps Values for each stack frame in a std::map. Stop pre-initializing Values on the stack to 42. Remove some dead variables, excess whitespace and commented-out code. executeInstruction() is now part of run(). printValue() and print() are history. llvm-svn: 9489
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Interpret the new varargs intrinsics correctlyChris Lattner2003-10-181-16/+6
| | | | llvm-svn: 9222
* Fix spelling.Misha Brukman2003-10-101-1/+1
| | | | llvm-svn: 9021
OpenPOWER on IntegriCloud