Chris Lattner
833c3c2597
Rip JIT specific stuff out of TargetMachine, as per PR176
...
llvm-svn: 10542
2003-12-20 01:22:19 +00:00
Chris Lattner
1809966189
Finegrainify namespacification
...
llvm-svn: 10465
2003-12-14 23:25:48 +00:00
Brian Gaeke
13a2e54e0c
Dynamically get the right-sized member of a GenericValue to hold a size_t, and
...
use it to return the result of strlen.
llvm-svn: 10433
2003-12-12 15:38:06 +00:00
Chris Lattner
89af2d5a36
Implement the ExecutionEngine::getPointerToFunctionOrStub by forwarding the
...
request on to the TargetMachine if it supports the getJITStubForFunction method
llvm-svn: 10431
2003-12-12 07:12:02 +00:00
Brian Gaeke
8657acc07e
Since we are using a gep_type_iterator, we apparently must get the type
...
index by using I.getOperand() here. This was failing an assertion on
basically every struct access.
llvm-svn: 10426
2003-12-12 05:13:05 +00:00
Brian Gaeke
2bba152fb8
Fix typo in comment. Add prototype for getConstantExprValue().
...
llvm-svn: 10390
2003-12-11 00:23:28 +00:00
Brian Gaeke
5a8ec7d5f6
Add support for --debug-only=interpreter, to print out instrs before
...
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
2003-12-11 00:22:59 +00:00
Chris Lattner
86ad4c05d0
implement method
...
llvm-svn: 10321
2003-12-08 08:23:04 +00:00
Chris Lattner
e6492f1057
Use the new method, though noone currently implements it any better than before
...
llvm-svn: 10320
2003-12-08 08:22:48 +00:00
Chris Lattner
c0e1b071b9
Finegrainify namespacification
...
llvm-svn: 10318
2003-12-08 08:06:28 +00:00
Chris Lattner
98e72b4bb3
Emit constants to one contiguous block, but this time, respect alignment constraints.
...
If this doesn't work Misha, feel free to revert it.
llvm-svn: 10267
2003-11-30 04:23:21 +00:00
Misha Brukman
873cf93b6e
Go back to allocating memory for each constant separately. Since SPARCs do not
...
allow unaligned loads, that is probably the problem I've been seeing in numerous
SPARC test cases failing. X86, on the other hand, just slows down unaligned
accesses, since it must make 2 aligned accesses for each unaligned one.
llvm-svn: 10266
2003-11-30 00:50:53 +00:00
Chris Lattner
f078808a2b
Do not depend on structure elements being of type UByteTy
...
llvm-svn: 10224
2003-11-25 20:44:56 +00:00
Chris Lattner
29681dee09
Fine grainify namespaceification
...
llvm-svn: 10093
2003-11-19 21:08:57 +00:00
Misha Brukman
be755279f3
Emit the MachineConstantPool constants in one contiguous memory `pool'.
...
llvm-svn: 10060
2003-11-17 20:40:07 +00:00
Misha Brukman
fc16bb1af5
* Order #includes as per style guide
...
* Delete blank comment lines
* Eliminate space between function name and open-paren ( to be consistent
llvm-svn: 10059
2003-11-17 20:37:02 +00:00
Brian Gaeke
d81ca471dd
Change LLI's internal representation of va_list to a pointer to the next
...
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
2003-11-13 06:06:01 +00:00
Brian Gaeke
960707c335
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Brian Gaeke
c3c242c3ac
Remove #include of PassManager.h which was marked FIXME, and apparently is no
...
longer used.
llvm-svn: 9823
2003-11-09 03:15:40 +00:00
Brian Gaeke
9ef636c698
Implement vaarg instruction. This is not quite perfect: 2003-08-11-VaListArg
...
still causes a crash. But it's better than before.
llvm-svn: 9794
2003-11-07 21:20:47 +00:00
Brian Gaeke
85baf8c65a
popStackAndReturnValueToCaller() must advance instruction pointer to normal
...
destination, if returning from an invoke.
Implement 'unwind' instruction.
llvm-svn: 9792
2003-11-07 20:44:58 +00:00
Misha Brukman
d7bcd99325
Remove the *BIG UGLY HACK* from the JIT: PreSelection is now a FunctionPass.
...
llvm-svn: 9790
2003-11-07 20:32:08 +00:00
Brian Gaeke
6d145eb65f
Add stub version of unwind support
...
llvm-svn: 9789
2003-11-07 20:07:06 +00:00
Brian Gaeke
a6454d3532
visitCallInst --> visitCallSite.
...
Use visitCallSite to implement both CallInsts and InvokeInsts.
llvm-svn: 9788
2003-11-07 20:04:22 +00:00
Brian Gaeke
a6d48e4db2
Make the operation of visitCallInst() only depend on the CallSite.
...
llvm-svn: 9787
2003-11-07 19:59:08 +00:00
Brian Gaeke
18b59578c9
Use CallSites for call sites, instead of CallInsts. A revolutionary concept.
...
llvm-svn: 9784
2003-11-07 19:26:23 +00:00
Brian Gaeke
65cac90a92
Refactor the return-from-function code into popStackAndReturnValueToCaller().
...
Make external function calls slightly less special; now they get a stack frame.
llvm-svn: 9765
2003-11-07 05:22:49 +00:00
Chris Lattner
b5b9ba6ff6
Be friendly to gcc 3.4... good compiler. Nice compiler.
...
llvm-svn: 9726
2003-11-05 06:20:27 +00:00
Brian Gaeke
4e106f0649
Abort when the user program calls abort, instead of printing a funny message and calling exit(1).
...
llvm-svn: 9716
2003-11-05 01:18:49 +00:00
Brian Gaeke
221827ab07
Use regular old malloc to emulate malloc/alloca instructions.
...
llvm-svn: 9713
2003-11-05 01:02:14 +00:00
Brian Gaeke
175018317e
Remove a comment which no longer applies.
...
llvm-svn: 9712
2003-11-05 00:59:28 +00:00
Brian Gaeke
9d2020003b
In VM::create(), comment out almost the whole function if NO_JITS_ENABLED,
...
because the Arch variable will likely be undefined.
llvm-svn: 9576
2003-10-29 04:24:09 +00:00
Chris Lattner
37edb43831
Unbreak the build
...
llvm-svn: 9502
2003-10-25 16:18:03 +00:00
Brian Gaeke
b77e589bd1
ExecutionEngine::create no longer takes a TraceMode argument.
...
CurFrame, TraceMode, and the CachedWriter are history.
The ExecutionAnnotations (SlotNumber, InstNumber, and FunctionInfo) are history.
ExecutionContext now keeps Values for each stack frame in a std::map.
printValue() and print() are history.
executeInstruction() is now part of run().
llvm-svn: 9493
2003-10-24 19:59:37 +00:00
Brian Gaeke
65c60e24cd
ExecutionEngine::create no longer takes a TraceMode argument.
...
CurFrame, TraceMode, and the CachedWriter are history.
llvm-svn: 9492
2003-10-24 19:59:28 +00:00
Brian Gaeke
759ba76905
The ExecutionAnnotations (SlotNumber, InstNumber, and FunctionInfo) are history.
...
llvm-svn: 9490
2003-10-24 19:59:18 +00:00
Brian Gaeke
e278c22380
Reduce the number of #includes.
...
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
2003-10-24 19:59:01 +00:00
Brian Gaeke
65cd504822
ExecutionEngine::create no longer takes a TraceMode argument.
...
llvm-svn: 9488
2003-10-24 19:58:38 +00:00
Brian Gaeke
98b618270a
Destroy MachineFunction for any Function that we are about to
...
recompile and relink. This keeps it from failing an assertion when
it goes and tries to construct a new MachineFunction for that Function.
llvm-svn: 9459
2003-10-24 03:55:37 +00:00
John Criswell
29265fe981
Added LLVM copyright header.
...
llvm-svn: 9321
2003-10-21 15:17:13 +00:00
John Criswell
4436c49787
Added LLVM copyright notice to Makefiles.
...
llvm-svn: 9312
2003-10-20 22:26:57 +00:00
John Criswell
482202a601
Added LLVM project notice to the top of every C++ source file.
...
Header files will be on the way.
llvm-svn: 9298
2003-10-20 19:43:21 +00:00
Chris Lattner
f2a34aa278
Hrm, a relic from the past. How cute :)
...
llvm-svn: 9283
2003-10-20 05:45:49 +00:00
Chris Lattner
fefd3bebc4
Interpret the new varargs intrinsics correctly
...
llvm-svn: 9222
2003-10-18 05:55:25 +00:00
Misha Brukman
e37fb9ddc5
Don't release the Module, as that invalidates the Module* within the
...
ModuleProvider, which has bad consequences in lli::callAsMain() which tries to
access that same Module*.
llvm-svn: 9205
2003-10-17 18:31:59 +00:00
Brian Gaeke
d2bc5ac045
Tidy up doxygen comment for getPointerToFunction().
...
Add prototypes for recompileAndRelinkFunction() and runJITOnFunction().
llvm-svn: 9200
2003-10-17 18:27:12 +00:00
Brian Gaeke
3b5f24513c
Refactor running the JIT passes on a single function into the new method,
...
runJITOnFunction().
Add new method for recompiling and patching in new versions of functions,
recompileAndRelinkFunction().
llvm-svn: 9199
2003-10-17 18:27:00 +00:00
Brian Gaeke
13b9395071
Fix a typo in a comment, and zap a blank line.
...
llvm-svn: 9184
2003-10-16 23:33:38 +00:00
Misha Brukman
1273147daf
JIT.cpp:
...
* #include "llvm/ModuleProvider"
* alphabetize #includes
* omit extraneous parens in pointer expressions
VM.cpp:
* #include "llvm/ModuleProvider"
* alphabetize #includes
llvm-svn: 9182
2003-10-16 21:19:34 +00:00
Misha Brukman
260b0c88a0
* Reorder includes as per the style guide
...
* Move the constructors from .h file here
* Document ExecutionEngine::create()
* Catch exception possibly thrown by ModuleProvider::releaseModule()
llvm-svn: 9181
2003-10-16 21:18:05 +00:00