From 76356ecef28c2969e798df6e4305ffe25710f65f Mon Sep 17 00:00:00 2001 From: Yichao Yu Date: Fri, 17 Jul 2020 00:18:58 -0400 Subject: [PATCH] Disable Loop Strength Reduction on ARM Works around #36062 --- src/codegen.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/codegen.cpp b/src/codegen.cpp index f2082fdb04029..89a943e0be5bc 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -7493,6 +7493,12 @@ extern "C" void jl_init_llvm(void) #if defined(_CPU_X86_) || defined(_CPU_X86_64_) const char *const argv_avoidsfb[] = {"", "-x86-disable-avoid-SFB"}; // llvm bug 41629, see https://gist.github.com/vtjnash/192cab72a6cfc00256ff118238163b55 cl::ParseCommandLineOptions(sizeof(argv_avoidsfb)/sizeof(argv_avoidsfb[0]), argv_avoidsfb, "disable-avoidsfb\n"); +#endif +#if defined(_CPU_ARM_) + // Workaround https://bugs.llvm.org/show_bug.cgi?id=46757 + // Julia issue #36062 + const char *const argv_lsr[] = {"", "-disable-lsr"}; + cl::ParseCommandLineOptions(sizeof(argv_lsr)/sizeof(argv_lsr[0]), argv_lsr, "disable-lsr\n"); #endif cl::ParseEnvironmentOptions("Julia", "JULIA_LLVM_ARGS");