Use clang instead if llvm-lto for darwin-based targets (#2974)

* Use LLVM C API for optimizations
* Use Clang for bitcode compilation
* Test bitcode embedding
This commit is contained in:
Sergey Bogolepov
2019-05-15 13:00:43 +07:00
committed by GitHub
parent 89c2fb21c4
commit 5306d7b427
23 changed files with 620 additions and 367 deletions
+38 -20
View File
@@ -39,24 +39,30 @@ llvmVersion = 6.0.1
llvmHome.macos_x64 = clang-llvm-6.0.1-darwin-macos
targetToolchain.macos_x64 = target-toolchain-9-macos_x64
libffiDir.macos_x64 = libffi-3.2.1-3-darwin-macos
additionalToolsDir.macos_x64 = xcode-addon-9-macos_x64
arch.macos_x64 = x86_64
targetSysRoot.macos_x64 = target-sysroot-9-macos_x64
llvmLtoFlags.macos_x64 =
llvmLtoOptFlags.macos_x64 = -O3 -function-sections
llvmLtoNooptFlags.macos_x64 = -O1
llvmLtoDynamicFlags.macos_x64 = -relocation-model=pic
clangFlags.macos_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.macos_x64 = -O1
clangOptFlags.macos_x64 = -O3
clangDebugFlags.macos_x64 = -O0
clangDynamicFlags.macos_x64 =
linkerKonanFlags.macos_x64 = -lSystem -lc++ -lobjc -framework Foundation
linkerOptimizationFlags.macos_x64 = -dead_strip
linkerNoDebugFlags.macos_x64 = -S
linkerDynamicFlags.macos_x64 = -dylib
osVersionMinFlagLd.macos_x64 = -macosx_version_min
osVersionMinFlagClang.macos_x64 = -mmacosx-version-min
osVersionMin.macos_x64 = 10.11
entrySelector.macos_x64 = -alias _Konan_main _main
dependencies.macos_x64 = \
libffi-3.2.1-3-darwin-macos \
clang-llvm-6.0.1-darwin-macos
clang-llvm-6.0.1-darwin-macos \
xcode-addon-9-macos_x64
target-sysroot-9-macos_x64.default = \
remote:internal
@@ -64,6 +70,10 @@ target-sysroot-9-macos_x64.default = \
target-toolchain-9-macos_x64.default = \
remote:internal
xcode-addon-9-macos_x64.default = \
remote:internal
# Apple's 32-bit iOS.
targetToolchain.macos_x64-ios_arm32 = target-toolchain-9-macos_x64
dependencies.macos_x64-ios_arm32 = \
@@ -77,13 +87,15 @@ arch.ios_arm32 = armv7
entrySelector.ios_arm32 = -alias _Konan_main _main
# Shared with 64-bit version.
targetSysRoot.ios_arm32 = target-sysroot-9-ios_arm64
llvmLtoFlags.ios_arm32 =
llvmLtoOptFlags.ios_arm32 = -O3 -function-sections
clangFlags.ios_arm32 = -cc1 -emit-obj -disable-llvm-optzns -x ir
clangNooptFlags.ios_arm32 = -O1
clangOptFlags.ios_arm32 = -O3
clangDebugFlags.ios_arm32 = -O0
clangDynamicFlags.ios_arm32 =
linkerNoDebugFlags.ios_arm32 = -S
linkerDynamicFlags.ios_arm32 = -dylib
llvmLtoNooptFlags.ios_arm32 = -O1
llvmLtoDynamicFlags.ios_arm32 = -relocation-model=pic
linkerKonanFlags.ios_arm32 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 12.2
linkerKonanFlags.ios_arm32 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 11.2
linkerOptimizationFlags.ios_arm32 = -dead_strip
osVersionMinFlagLd.ios_arm32 = -iphoneos_version_min
osVersionMinFlagClang.ios_arm32 = -miphoneos-version-min
@@ -101,13 +113,16 @@ target-sysroot-9-ios_arm64.default = \
arch.ios_arm64 = arm64
entrySelector.ios_arm64 = -alias _Konan_main _main
targetSysRoot.ios_arm64 = target-sysroot-9-ios_arm64
llvmLtoFlags.ios_arm64 =
llvmLtoOptFlags.ios_arm64 = -O3 -function-sections
clangFlags.ios_arm64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.ios_arm64 = -O1
clangOptFlags.ios_arm64 = -O3
clangDebugFlags.ios_arm64 = -O0
clangDynamicFlags.ios_arm64 =
linkerNoDebugFlags.ios_arm64 = -S
linkerDynamicFlags.ios_arm64 = -dylib
llvmLtoNooptFlags.ios_arm64 = -O1
llvmLtoDynamicFlags.ios_arm64 = -relocation-model=pic
linkerKonanFlags.ios_arm64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 12.2
linkerKonanFlags.ios_arm64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 11.2
linkerOptimizationFlags.ios_arm64 = -dead_strip
osVersionMinFlagLd.ios_arm64 = -iphoneos_version_min
osVersionMinFlagClang.ios_arm64 = -miphoneos-version-min
@@ -125,11 +140,14 @@ target-sysroot-9-ios_x64.default = \
arch.ios_x64 = x86_64
entrySelector.ios_x64 = -alias _Konan_main _main
targetSysRoot.ios_x64 = target-sysroot-9-ios_x64
llvmLtoFlags.ios_x64 =
llvmLtoOptFlags.ios_x64 = -O3 -function-sections
llvmLtoNooptFlags.ios_x64 = -O1
llvmLtoDynamicFlags.ios_x64 = -relocation-model=pic
linkerKonanFlags.ios_x64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 12.2
clangFlags.ios_x64 = -cc1 -emit-obj -disable-llvm-passes -x ir
clangNooptFlags.ios_x64 = -O1
clangOptFlags.ios_x64 = -O3
clangDebugFlags.ios_x64 = -O0
clangDynamicFlags.ios_x64 =
linkerKonanFlags.ios_x64 = -lSystem -lc++ -lobjc -framework Foundation -sdk_version 11.2
linkerOptimizationFlags.ios_x64 = -dead_strip
linkerNoDebugFlags.ios_x64 = -S
linkerDynamicFlags.ios_x64 = -dylib