mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
Fix the JIT code for the Kaleidoscope tutorial.
llvm-svn: 223670
This commit is contained in:
parent
4032b61c4b
commit
e2cdff517c
@ -1,5 +1,7 @@
|
||||
#include "llvm/Analysis/Passes.h"
|
||||
#include "llvm/ExecutionEngine/ExecutionEngine.h"
|
||||
#include "llvm/ExecutionEngine/MCJIT.h"
|
||||
#include "llvm/ExecutionEngine/SectionMemoryManager.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
@ -512,6 +514,7 @@ static void HandleTopLevelExpression() {
|
||||
// Evaluate a top-level expression into an anonymous function.
|
||||
if (FunctionAST *F = ParseTopLevelExpr()) {
|
||||
if (Function *LF = F->Codegen()) {
|
||||
TheExecutionEngine->finalizeObject();
|
||||
// JIT the function, returning a function pointer.
|
||||
void *FPtr = TheExecutionEngine->getPointerToFunction(LF);
|
||||
|
||||
@ -557,6 +560,8 @@ double putchard(double X) {
|
||||
|
||||
int main() {
|
||||
InitializeNativeTarget();
|
||||
InitializeNativeTargetAsmPrinter();
|
||||
InitializeNativeTargetAsmParser();
|
||||
LLVMContext &Context = getGlobalContext();
|
||||
|
||||
// Install standard binary operators.
|
||||
@ -576,8 +581,10 @@ int main() {
|
||||
|
||||
// Create the JIT. This takes ownership of the module.
|
||||
std::string ErrStr;
|
||||
TheExecutionEngine =
|
||||
EngineBuilder(std::move(Owner)).setErrorStr(&ErrStr).create();
|
||||
TheExecutionEngine = EngineBuilder(std::move(Owner))
|
||||
.setErrorStr(&ErrStr)
|
||||
.setMCJITMemoryManager(new SectionMemoryManager())
|
||||
.create();
|
||||
if (!TheExecutionEngine) {
|
||||
fprintf(stderr, "Could not create ExecutionEngine: %s\n", ErrStr.c_str());
|
||||
exit(1);
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "llvm/Analysis/Passes.h"
|
||||
#include "llvm/ExecutionEngine/ExecutionEngine.h"
|
||||
#include "llvm/ExecutionEngine/MCJIT.h"
|
||||
#include "llvm/ExecutionEngine/SectionMemoryManager.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
@ -757,6 +759,7 @@ static void HandleTopLevelExpression() {
|
||||
// Evaluate a top-level expression into an anonymous function.
|
||||
if (FunctionAST *F = ParseTopLevelExpr()) {
|
||||
if (Function *LF = F->Codegen()) {
|
||||
TheExecutionEngine->finalizeObject();
|
||||
// JIT the function, returning a function pointer.
|
||||
void *FPtr = TheExecutionEngine->getPointerToFunction(LF);
|
||||
|
||||
@ -802,6 +805,8 @@ double putchard(double X) {
|
||||
|
||||
int main() {
|
||||
InitializeNativeTarget();
|
||||
InitializeNativeTargetAsmPrinter();
|
||||
InitializeNativeTargetAsmParser();
|
||||
LLVMContext &Context = getGlobalContext();
|
||||
|
||||
// Install standard binary operators.
|
||||
@ -821,8 +826,10 @@ int main() {
|
||||
|
||||
// Create the JIT. This takes ownership of the module.
|
||||
std::string ErrStr;
|
||||
TheExecutionEngine =
|
||||
EngineBuilder(std::move(Owner)).setErrorStr(&ErrStr).create();
|
||||
TheExecutionEngine = EngineBuilder(std::move(Owner))
|
||||
.setErrorStr(&ErrStr)
|
||||
.setMCJITMemoryManager(new SectionMemoryManager())
|
||||
.create();
|
||||
if (!TheExecutionEngine) {
|
||||
fprintf(stderr, "Could not create ExecutionEngine: %s\n", ErrStr.c_str());
|
||||
exit(1);
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "llvm/Analysis/Passes.h"
|
||||
#include "llvm/ExecutionEngine/ExecutionEngine.h"
|
||||
#include "llvm/ExecutionEngine/MCJIT.h"
|
||||
#include "llvm/ExecutionEngine/SectionMemoryManager.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
@ -868,6 +870,7 @@ static void HandleTopLevelExpression() {
|
||||
// Evaluate a top-level expression into an anonymous function.
|
||||
if (FunctionAST *F = ParseTopLevelExpr()) {
|
||||
if (Function *LF = F->Codegen()) {
|
||||
TheExecutionEngine->finalizeObject();
|
||||
// JIT the function, returning a function pointer.
|
||||
void *FPtr = TheExecutionEngine->getPointerToFunction(LF);
|
||||
|
||||
@ -920,6 +923,8 @@ double printd(double X) {
|
||||
|
||||
int main() {
|
||||
InitializeNativeTarget();
|
||||
InitializeNativeTargetAsmPrinter();
|
||||
InitializeNativeTargetAsmParser();
|
||||
LLVMContext &Context = getGlobalContext();
|
||||
|
||||
// Install standard binary operators.
|
||||
@ -939,8 +944,10 @@ int main() {
|
||||
|
||||
// Create the JIT. This takes ownership of the module.
|
||||
std::string ErrStr;
|
||||
TheExecutionEngine =
|
||||
EngineBuilder(std::move(Owner)).setErrorStr(&ErrStr).create();
|
||||
TheExecutionEngine = EngineBuilder(std::move(Owner))
|
||||
.setErrorStr(&ErrStr)
|
||||
.setMCJITMemoryManager(new SectionMemoryManager())
|
||||
.create();
|
||||
if (!TheExecutionEngine) {
|
||||
fprintf(stderr, "Could not create ExecutionEngine: %s\n", ErrStr.c_str());
|
||||
exit(1);
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "llvm/Analysis/Passes.h"
|
||||
#include "llvm/ExecutionEngine/ExecutionEngine.h"
|
||||
#include "llvm/ExecutionEngine/MCJIT.h"
|
||||
#include "llvm/ExecutionEngine/SectionMemoryManager.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
@ -1031,6 +1033,7 @@ static void HandleTopLevelExpression() {
|
||||
// Evaluate a top-level expression into an anonymous function.
|
||||
if (FunctionAST *F = ParseTopLevelExpr()) {
|
||||
if (Function *LF = F->Codegen()) {
|
||||
TheExecutionEngine->finalizeObject();
|
||||
// JIT the function, returning a function pointer.
|
||||
void *FPtr = TheExecutionEngine->getPointerToFunction(LF);
|
||||
|
||||
@ -1083,6 +1086,8 @@ double printd(double X) {
|
||||
|
||||
int main() {
|
||||
InitializeNativeTarget();
|
||||
InitializeNativeTargetAsmPrinter();
|
||||
InitializeNativeTargetAsmParser();
|
||||
LLVMContext &Context = getGlobalContext();
|
||||
|
||||
// Install standard binary operators.
|
||||
@ -1103,8 +1108,10 @@ int main() {
|
||||
|
||||
// Create the JIT. This takes ownership of the module.
|
||||
std::string ErrStr;
|
||||
TheExecutionEngine =
|
||||
EngineBuilder(std::move(Owner)).setErrorStr(&ErrStr).create();
|
||||
TheExecutionEngine = EngineBuilder(std::move(Owner))
|
||||
.setErrorStr(&ErrStr)
|
||||
.setMCJITMemoryManager(new SectionMemoryManager())
|
||||
.create();
|
||||
if (!TheExecutionEngine) {
|
||||
fprintf(stderr, "Could not create ExecutionEngine: %s\n", ErrStr.c_str());
|
||||
exit(1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user