From f903ae9e72ec02539373da22fd4d025422af7554 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 29 Mar 2013 16:55:04 -0700 Subject: librustc: Implement fast-ffi and use it in various places --- src/rustllvm/RustWrapper.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/rustllvm/RustWrapper.cpp') diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 5d422b2d2ed..1612fec4029 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -451,6 +451,7 @@ LLVMRustWriteOutputFile(LLVMPassManagerRef PMR, TargetOptions Options; Options.NoFramePointerElim = true; Options.EnableSegmentedStacks = EnableSegmentedStacks; + Options.FixedStackSegmentSize = 2 * 1024 * 1024; // XXX: This is too big. PassManager *PM = unwrap(PMR); -- cgit 1.4.1-3-g733a5 From af42d37547c15732a7c9d358c0a14967aef75e96 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 1 Apr 2013 13:55:49 -0700 Subject: rustllvm: Fix RustWrapper.cpp --- src/rustllvm/RustWrapper.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src/rustllvm/RustWrapper.cpp') diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 1612fec4029..7c22cc6cc25 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -15,6 +15,8 @@ // //===----------------------------------------------------------------------=== +#include "llvm/IR/InlineAsm.h" +#include "llvm/IR/LLVMContext.h" #include "llvm/Linker.h" #include "llvm/PassManager.h" #include "llvm/IR/InlineAsm.h" @@ -152,7 +154,9 @@ public: unsigned SectionID); virtual uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment, - unsigned SectionID); + unsigned SectionID, bool isReadOnly); + + virtual bool applyPermissions(std::string *Str); virtual void *getPointerToNamedFunction(const std::string &Name, bool AbortOnFailure = true); @@ -240,8 +244,9 @@ bool RustMCJITMemoryManager::loadCrate(const char* file, std::string* err) { } uint8_t *RustMCJITMemoryManager::allocateDataSection(uintptr_t Size, - unsigned Alignment, - unsigned SectionID) { + unsigned Alignment, + unsigned SectionID, + bool isReadOnly) { if (!Alignment) Alignment = 16; uint8_t *Addr = (uint8_t*)calloc((Size + Alignment - 1)/Alignment, Alignment); @@ -249,9 +254,14 @@ uint8_t *RustMCJITMemoryManager::allocateDataSection(uintptr_t Size, return Addr; } +bool RustMCJITMemoryManager::applyPermissions(std::string *Str) { + // Empty. + return true; +} + uint8_t *RustMCJITMemoryManager::allocateCodeSection(uintptr_t Size, - unsigned Alignment, - unsigned SectionID) { + unsigned Alignment, + unsigned SectionID) { if (!Alignment) Alignment = 16; unsigned NeedAllocate = Alignment * ((Size + Alignment - 1)/Alignment + 1); @@ -485,13 +495,12 @@ LLVMRustWriteOutputFile(LLVMPassManagerRef PMR, } extern "C" LLVMModuleRef LLVMRustParseAssemblyFile(const char *Filename) { - SMDiagnostic d; Module *m = ParseAssemblyFile(Filename, d, getGlobalContext()); if (m) { return wrap(m); } else { - LLVMRustError = d.getMessage().data(); + LLVMRustError = d.getMessage().str().c_str(); return NULL; } } -- cgit 1.4.1-3-g733a5 From 90b65c88397b72deacb07d2b3963e959effe83ac Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 12 Apr 2013 12:06:47 -0700 Subject: llvm: Fixes for RustWrapper. --- src/rustllvm/RustWrapper.cpp | 6 ------ 1 file changed, 6 deletions(-) (limited to 'src/rustllvm/RustWrapper.cpp') diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 7c22cc6cc25..141276e86f0 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -222,12 +222,6 @@ public: virtual void deallocateExceptionTable(void *ET) { llvm_unreachable("Unimplemented call"); } - virtual uint8_t* allocateDataSection(uintptr_t, unsigned int, unsigned int, bool) { - llvm_unreachable("Unimplemented call"); - } - virtual bool applyPermissions(std::string*) { - llvm_unreachable("Unimplemented call"); - } }; bool RustMCJITMemoryManager::loadCrate(const char* file, std::string* err) { -- cgit 1.4.1-3-g733a5