From 5b2cc6f39c2ff54bf1b378480d2ac048303756a6 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Fri, 30 Aug 2019 19:54:45 +0700 Subject: [PATCH] [tvos_arm64][ios_arm64][codegen] Use SelectionDAG for `-g` builds because fast instruction selector miscompiles sign extensions. --- konan/konan.properties | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/konan/konan.properties b/konan/konan.properties index f569b1e352a..358ba48b5b6 100644 --- a/konan/konan.properties +++ b/konan/konan.properties @@ -114,7 +114,10 @@ targetSysRoot.ios_arm64 = target-sysroot-9-ios_arm64 clangFlags.ios_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir clangNooptFlags.ios_arm64 = -O1 clangOptFlags.ios_arm64 = -O3 -clangDebugFlags.ios_arm64 = -O0 +# We force LLVM to use SelectionDAG because fast isel may miscompile sign extension. +# Related: +# https://github.com/JetBrains/kotlin-native/issues/3290 +clangDebugFlags.ios_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false clangDynamicFlags.ios_arm64 = linkerNoDebugFlags.ios_arm64 = -S @@ -192,7 +195,7 @@ targetSysRoot.tvos_arm64 = target-sysroot-9-tvos_arm64 clangFlags.tvos_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir clangNooptFlags.tvos_arm64 = -O1 clangOptFlags.tvos_arm64 = -O3 -clangDebugFlags.tvos_arm64 = -O0 +clangDebugFlags.tvos_arm64 = -O0 -mllvm -fast-isel=false -mllvm -global-isel=false clangDynamicFlags.tvos_arm64 = linkerNoDebugFlags.tvos_arm64 = -S