summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-14 21:08:55 +0100
committerGitHub <noreply@github.com>2022-02-14 21:08:55 +0100
commitda903efa63c2a5576dec2316670c3d6ebdca70b3 (patch)
treee5858bf57c650e4eb0d8d6bf5850bc8a944751f0
parent8eb2ccf9ee6e3eec10fa212362c9f5ddbd3d85aa (diff)
parent493d1dbba614e255d1d07c266a5f783b98cc87f3 (diff)
Merge pull request #21188 from vespa-engine/revert-21185-revert-21183-balder/let-large-allocations-by-llvm-during-compilation-be-done-by-mmap-directly
Revert "Revert "Let allocations larger than 1M be handled directly by mmap""
-rw-r--r--eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
index 512e12bec71..d1a9ffc5b49 100644
--- a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
+++ b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp
@@ -21,6 +21,8 @@
#include <vespa/eval/eval/check_type.h>
#include <vespa/vespalib/stllike/hash_set.h>
#include <vespa/vespalib/util/approx.h>
+#include <vespa/vespalib/util/size_literals.h>
+#include <vespa/vespalib/util/malloc_mmap_guard.h>
#include <limits>
double vespalib_eval_ldexp(double a, double b) { return std::ldexp(a, b); }
@@ -728,6 +730,8 @@ LLVMWrapper::compile(llvm::raw_ostream * dumpStream)
// Set relocation model to silence valgrind on CentOS 8 / aarch64
_engine.reset(llvm::EngineBuilder(std::move(_module)).setOptLevel(llvm::CodeGenOpt::Aggressive).setRelocationModel(llvm::Reloc::Static).create());
assert(_engine && "llvm jit not available for your platform");
+
+ MallocMmapGuard largeAllocsAsMMap(1_Mi);
_engine->finalizeObject();
}