diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index 158a25d72f6..77f48783514 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -6212,11 +6212,11 @@ if (HostManager.@Companion.hostIsMac) { phaseToCheck = "BitcodeOptimization" } - fileCheckTest("filecheck_redundant_safepoints_removal_arm") { + fileCheckTest("filecheck_redundant_safepoints_removal_smallbinary") { enabled = isExperimentalMM && project.globalTestArgs.contains("-opt") annotatedSource = project.file('filecheck/redundant_safepoints.kt') targetName = "watchos_arm32" - checkPrefix = "CHECK-ARM" + checkPrefix = "CHECK-SMALLBINARY" extraOpts = ["-Xbinary=memoryModel=experimental", "-opt"] phaseToCheck = "RemoveRedundantSafepoints" } @@ -6226,8 +6226,7 @@ if (HostManager.@Companion.hostIsMac) { fileCheckTest("filecheck_redundant_safepoints_removal") { enabled = isExperimentalMM && isCmsGC && project.globalTestArgs.contains("-opt") && - project.testTarget != "watchos_arm32" && - project.testTarget != "ios_arm32" + !needSmallBinary(project) annotatedSource = project.file('filecheck/redundant_safepoints.kt') phaseToCheck = "RemoveRedundantSafepoints" } diff --git a/kotlin-native/backend.native/tests/filecheck/redundant_safepoints.kt b/kotlin-native/backend.native/tests/filecheck/redundant_safepoints.kt index 427be5aaa77..6c7b5469b31 100644 --- a/kotlin-native/backend.native/tests/filecheck/redundant_safepoints.kt +++ b/kotlin-native/backend.native/tests/filecheck/redundant_safepoints.kt @@ -16,16 +16,16 @@ fun g() = f() @Retain fun h(cond: Boolean): Any { // CHECK: _ZN6kotlin2mm8internal20gSuspensionRequestedE - // CHECK-ARM: {{call .*Kotlin_mm_safePointFunctionPrologue}} + // CHECK-SMALLBINARY: {{call .*Kotlin_mm_safePointFunctionPrologue}} // CHECK-NOT: _ZN6kotlin2mm8internal20gSuspensionRequestedE // CHECK-NOT: {{call .*Kotlin_mm_safePointFunctionPrologue}} // CHECK: br - // CHECK-ARM: br + // CHECK-SMALLBINARY: br if (cond) { // CHECK-NOT: _ZN6kotlin2mm8internal20gSuspensionRequestedE // CHECK-NOT: {{call .*Kotlin_mm_safePointFunctionPrologue}} // CHECK: br - // CHECK-ARM: br + // CHECK-SMALLBINARY: br return listOf(C(), C()) } else { // CHECK-NOT: _ZN6kotlin2mm8internal20gSuspensionRequestedE @@ -39,7 +39,7 @@ fun h(cond: Boolean): Any { @Retain fun main() { // CHECK: _ZN6kotlin2mm8internal20gSuspensionRequestedE - // CHECK-ARM: {{call .*Kotlin_mm_safePointFunctionPrologue}} + // CHECK-SMALLBINARY: {{call .*Kotlin_mm_safePointFunctionPrologue}} // CHECK-NOT: _ZN6kotlin2mm8internal20gSuspensionRequestedE // CHECK-NOT: {{call .*Kotlin_mm_safePointFunctionPrologue}} println(g()) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/PlatformInfo.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/PlatformInfo.kt index c9cb7076c45..e3a35b4ce00 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/PlatformInfo.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/PlatformInfo.kt @@ -46,6 +46,11 @@ object PlatformInfo { return getTarget(project).supportsExceptions() } + @JvmStatic + fun needSmallBinary(project: Project): Boolean { + return getTarget(project).needSmallBinary() + } + @JvmStatic fun supportsLibBacktrace(project: Project): Boolean { return getTarget(project).supportsLibBacktrace() diff --git a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTargetExtenstions.kt b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTargetExtenstions.kt index 23036d33579..4705367253f 100644 --- a/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTargetExtenstions.kt +++ b/kotlin-native/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTargetExtenstions.kt @@ -137,7 +137,7 @@ fun KonanTarget.supportsUnalignedAccess(): Boolean = when (architecture) { Architecture.X86, Architecture.ARM64, Architecture.X64 -> true } && this != KonanTarget.WATCHOS_ARM64 -fun KonanTarget.needSmallBinary() = (architecture == Architecture.ARM32 && family.isAppleFamily) || this == KonanTarget.WATCHOS_ARM64 +fun KonanTarget.needSmallBinary() = (architecture == Architecture.ARM32 && family.isAppleFamily) fun KonanTarget.supportedSanitizers(): List = when(this) {