Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.20260618.0
0.20260619.0
14 changes: 11 additions & 3 deletions src/misc/compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,9 @@ bool Compiler::Impl::compile(const std::string &pCode)
static const std::vector<const char *> COMPILATION_ARGUMENTS {{"clang", "-fsyntax-only",
"-O3",
"-fno-math-errno",
"-fno-trapping-math",
"-fno-stack-protector",
"-funroll-loops",
DUMMY_FILE_NAME}};

std::unique_ptr<clang::driver::Compilation> compilation(driver.BuildCompilation(COMPILATION_ARGUMENTS));
Expand Down Expand Up @@ -334,7 +336,9 @@ extern double atanh(double);
auto targetMachine {std::unique_ptr<llvm::TargetMachine>(target->createTargetMachine(module->getTargetTriple(),
"generic", "",
llvm::TargetOptions(),
llvm::Reloc::Static))};
llvm::Reloc::Static,
std::nullopt,
llvm::CodeGenOptLevel::Aggressive))};

if (targetMachine == nullptr) {
addError("A target machine could not be created.");
Expand Down Expand Up @@ -368,9 +372,13 @@ extern double atanh(double);

return true;
#else
// Create an ORC-based JIT and keep track of it.
// Create an ORC-based JIT with aggressive code generation and keep track of it.

auto lljit {llvm::orc::LLJITBuilder().create()};
auto jitTargetMachineBuilder {llvm::orc::JITTargetMachineBuilder(llvm::Triple(llvm::sys::getProcessTriple()))};

jitTargetMachineBuilder.setCodeGenOptLevel(llvm::CodeGenOptLevel::Aggressive);

auto lljit {llvm::orc::LLJITBuilder().setJITTargetMachineBuilder(std::move(jitTargetMachineBuilder)).create()};

# ifndef CODE_COVERAGE_ENABLED
if (!lljit) {
Expand Down
Loading