summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-14 16:41:43 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-02-14 16:41:43 +0000
commit43d86e860c4944861e617babf52858a2f73e837c (patch)
treee017d3cba38be444c157c5002f91672b3144bd5d
parent6e231823aa201df4ef82158d969864974727777b (diff)
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();
}