From 46f75c222639dd9306c8258ba13d7d791bb4f7d6 Mon Sep 17 00:00:00 2001 From: Pavel Punegov <32519625+PavelPunegov@users.noreply.github.com> Date: Thu, 22 Feb 2018 17:18:04 +0300 Subject: [PATCH] More review fixes --- .../kotlin/backend/konan/llvm/IrToBitcode.kt | 23 ++++++++----------- .../backend/konan/lower/ForLoopsLowering.kt | 4 ++-- .../main/kotlin/konan/internal/Coroutines.kt | 3 +-- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt index b62753a6ed2..5bf173910e7 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt @@ -46,7 +46,6 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe import org.jetbrains.kotlin.types.KotlinType -import org.jetbrains.kotlin.types.SimpleType import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.typeUtil.isNothing import org.jetbrains.kotlin.types.typeUtil.isPrimitiveNumberType @@ -2343,27 +2342,25 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map icmpEq(arg0, arg1) - descriptor == ib.booleanNot -> icmpNe(arg0, kTrue) + descriptor == ib.eqeqeq -> icmpEq(args[0], args[1]) + descriptor == ib.booleanNot -> icmpNe(args[0], kTrue) descriptor.isComparisonDescriptor(ib.greaterFunByOperandType) -> { - if (arg0.type.isFloatingPoint()) fcmpGt(arg0, arg1) - else icmpGt(arg0, arg1) + if (args[0].type.isFloatingPoint()) fcmpGt(args[0], args[1]) + else icmpGt(args[0], args[1]) } descriptor.isComparisonDescriptor(ib.greaterOrEqualFunByOperandType) -> { - if (arg0.type.isFloatingPoint()) fcmpGe(arg0, arg1) - else icmpGe(arg0, arg1) + if (args[0].type.isFloatingPoint()) fcmpGe(args[0], args[1]) + else icmpGe(args[0], args[1]) } descriptor.isComparisonDescriptor(ib.lessFunByOperandType) -> { - if (arg0.type.isFloatingPoint()) fcmpLt(arg0, arg1) - else icmpLt(arg0, arg1) + if (args[0].type.isFloatingPoint()) fcmpLt(args[0], args[1]) + else icmpLt(args[0], args[1]) } descriptor.isComparisonDescriptor(ib.lessOrEqualFunByOperandType) -> { - if (arg0.type.isFloatingPoint()) fcmpLe(arg0, arg1) - else icmpLe(arg0, arg1) + if (args[0].type.isFloatingPoint()) fcmpLe(args[0], args[1]) + else icmpLe(args[0], args[1]) } else -> TODO(descriptor.name.toString()) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/ForLoopsLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/ForLoopsLowering.kt index 00dfd9fd0ec..4c8d2111d95 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/ForLoopsLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/ForLoopsLowering.kt @@ -441,7 +441,7 @@ private class ForLoopsTransformer(val context: Context) : IrElementTransformerVo putValueArgument(0, minConst) } putValueArgument(0, compareToCall) - putValueArgument(1, IrConstImpl.int(startOffset, endOffset, context.builtIns.intType, 0)) + putValueArgument(1, irInt(0)) } } @@ -459,7 +459,7 @@ private class ForLoopsTransformer(val context: Context) : IrElementTransformerVo val check: IrExpression = irCall(comparingBuiltIn!!).apply { putValueArgument(0, irCallOp(compareTo, irGet(forLoopInfo.inductionVariable), irGet(forLoopInfo.last))) - putValueArgument(1, IrConstImpl.int(startOffset, endOffset, context.builtIns.intType, 0)) + putValueArgument(1, irInt(0)) } // Process closed and open ranges in different manners. diff --git a/runtime/src/main/kotlin/konan/internal/Coroutines.kt b/runtime/src/main/kotlin/konan/internal/Coroutines.kt index ce8ea52f74a..dff7a50c4c9 100644 --- a/runtime/src/main/kotlin/konan/internal/Coroutines.kt +++ b/runtime/src/main/kotlin/konan/internal/Coroutines.kt @@ -21,12 +21,11 @@ import kotlin.coroutines.experimental.intrinsics.* @Intrinsic @PublishedApi -internal external fun getContinuation(): Continuation = throw AssertionError("Call to getContinuation should've been lowered") +internal external fun getContinuation(): Continuation @Intrinsic @PublishedApi internal external suspend fun returnIfSuspended(@Suppress("UNUSED_PARAMETER") argument: Any?): T - = throw AssertionError("Call to returnIfSuspended should've been lowered") // Single-threaded continuation. class SafeContinuation