From d4d33c026b34a13a0868b6d57d1b92f41b834b59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Fri, 10 Apr 2015 14:47:43 +0200 Subject: [PATCH] Change instruction scheduler Try different instruction scheduler in LLVM, other crashes sometimes. Also parse command line options properly for random tests. --- libevmjit/ExecutionEngine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libevmjit/ExecutionEngine.cpp b/libevmjit/ExecutionEngine.cpp index 0ed4a65b5..e15dad969 100644 --- a/libevmjit/ExecutionEngine.cpp +++ b/libevmjit/ExecutionEngine.cpp @@ -88,10 +88,10 @@ void parseOptions() //cl::ParseEnvironmentOptions("evmjit", "EVMJIT", "Ethereum EVM JIT Compiler"); // FIXME: LLVM workaround: - // Manually select instruction scheduler other than "source". + // Manually select instruction scheduler. Confirmed bad schedulers: source, list-burr, list-hybrid. // "source" scheduler has a bug: http://llvm.org/bugs/show_bug.cgi?id=22304 auto envLine = std::getenv("EVMJIT"); - auto commandLine = std::string{"evmjit "} + (envLine ? envLine : "") + " -pre-RA-sched=list-burr\0"; + auto commandLine = std::string{"evmjit "} + (envLine ? envLine : "") + " -pre-RA-sched=list-ilp\0"; static const auto c_maxArgs = 20; char const* argv[c_maxArgs] = {nullptr, }; auto arg = std::strtok(&*commandLine.begin(), " ");