summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT/JIT.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Enabling incremental bytecode loading in the JIT:Misha Brukman2003-10-141-5/+10
| | | | | | * The VM is now constructed with a ModuleProvider llvm-svn: 9125
* ExecutionEngine.h, GenericValue.h --> include/llvm/ExecutionEngine/Brian Gaeke2003-09-051-1/+1
| | | | | | Build ExecutionEngine as library. llvm-svn: 8370
* Make CreateArgv part of lli rather than part of ExecutionEngine.Brian Gaeke2003-09-051-28/+15
| | | | | | | | | | | | | | | Switch Interpreter and JIT's "run" methods to take a Function and a vector of GenericValues. Move (almost all of) the stuff that constructs a canonical call to main() into lli (new methods "callAsMain", "makeStringVector"). Nuke getCurrentExecutablePath(), enableTracing(), getCurrentFunction(), isStopped(), and many dead decls from interpreter. Add linux strdup() support to interpreter. Make interpreter's atexit handler runner and JIT's runAtExitHandlers() look more alike, in preparation for refactoring. atexit() is spelled "atexit", not "at_exit". llvm-svn: 8366
* ExecutionEngine.cpp: Move execution engine creation stuff into a newBrian Gaeke2003-09-031-4/+3
| | | | | | | | | | | | | | | | | | static method here. Remove some extra blank lines. ExecutionEngine.h: Add its prototype. lli.cpp: Call it. Make creation method for each type of EE into a static method of its own subclass. Interpreter/Interpreter.cpp: ExecutionEngine::createInterpreter --> Interpreter::create Interpreter/Interpreter.h: Likewise. JIT/JIT.cpp: ExecutionEngine::createJIT --> VM::create JIT/VM.h: Likewise. llvm-svn: 8343
* Targets now configure themselves based on the source module, not on theChris Lattner2003-08-241-3/+3
| | | | | | ad-hoc "Config" flags llvm-svn: 8134
* Minor cleanups: wrap at 80 lines. Convert file comment to doxygen format andChris Lattner2003-08-211-26/+17
| | | | | | llvm style llvm-svn: 8024
* The JIT now passes the environment pointer to the main() function when itJohn Criswell2003-08-211-3/+27
| | | | | | | starts a program. This allows the GNU env program to compile and JIT under LLVM. llvm-svn: 8022
* Fix spaceChris Lattner2003-07-231-1/+1
| | | | llvm-svn: 7273
* * If compiling on X86 or Sparc, automagically enable the JIT for that archMisha Brukman2003-07-021-12/+23
| | | | | | | | | | | * Setting ENABLE_X86_JIT or ENABLE_SPARC_JIT on the `make' command-line will force the inclusion of that JIT on a different architecture * If neither JIT is enabled (e.g., compiling on a different architecture), the -march option will not be available to LLI. * As a side effect of the $ARCH variable, the Sparc LLI can now link just a bit faster by not including the x86 library. llvm-svn: 7070
* Apparently "sparc" is a macro on sparcs. Ugh. :)Chris Lattner2003-06-171-4/+4
| | | | llvm-svn: 6744
* Use more structured command line option processingChris Lattner2003-06-171-22/+28
| | | | llvm-svn: 6742
* #ifdef out code that only applies when the HOSTARCH = sparcChris Lattner2003-06-171-1/+4
| | | | llvm-svn: 6741
* ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT :::Misha Brukman2003-06-061-1/+14
| | | | | | | | | | | | | | | | | The JIT is designed to code-generate a function at-a-time. That means that any pass can only make local changes to its function. Period. Because the Sparc PreSelection pass claims to be a BasicBlock pass while adding globals to the Module, it cannot be run with the other passes, because by this time, the globals have been output already by the JIT, and the addresses of any globals appearing AFTER this point are not recognized. However, the PreSelection pass is a requirement for correctness in the Sparc codegen path, so it MUST be run. ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: llvm-svn: 6650
* * Removed SparcEmitter.cpp; rolled into lib/Target/Sparc/SparcV9CodeEmitter.cppMisha Brukman2003-06-021-6/+2
| | | | | | | | | * No more createX86Emitter() vs. createSparcEmitter() -- there can be only one * As a result, the memory management semantics must be handled according to platform -- the parameters to mmap() are particularly sensitive to the host architecture. llvm-svn: 6527
* Move target specific code to target files. The new MachineCodeEmitterChris Lattner2003-06-011-3/+2
| | | | | | class is actually target independent! llvm-svn: 6517
* Allow for specification of which JIT to run on the commandline.Misha Brukman2003-05-271-11/+48
| | | | | | | | | | | | | | | | `lli -march=x86' or `lli -march=sparc' will forcefully select the JIT even on a different platform. Running lli without the -march option will select the JIT for the platform that it's currently running on. Pro: can test Sparc JIT (debug printing mode) on X86 -- faster to compile/link LLVM source base to test changes. Con: Linking lli on x86 now pulls in all the Sparc libs -> longer link time (but X86 can bear it, right?) In the future, perhaps this should be a ./configure option to enable/disable target JITting... llvm-svn: 6360
* Add support for atexit handlers to the JIT, fixing 2003-05-14-AtExit.cChris Lattner2003-05-141-1/+5
| | | | llvm-svn: 6193
* Make sure that globals are emitted AFTER the passmanager is set up for the JIT,Chris Lattner2003-05-121-0/+1
| | | | | | because the globals may refer to functions that need to be compiled! llvm-svn: 6105
* Initial checkin of new LLI with JIT compilerChris Lattner2002-12-241-0/+53
llvm-svn: 5126
OpenPOWER on IntegriCloud