Skip to content

Commit aa3f64b

Browse files
author
Mikhael Bogdanov
committed
Temporary disable new intrinsics usage in ieee754 arithmetic
1 parent 560226c commit aa3f64b

File tree

9 files changed

+42
-30
lines changed

9 files changed

+42
-30
lines changed

compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3652,7 +3652,11 @@ private StackValue genEqualsForExpressionsPreferIEEE754Arithmetic(
36523652
if (left754Type != null && right754Type != null && left754Type.type.equals(right754Type.type)) {
36533653
//check nullability cause there is some optimizations in codegen for non-nullable case
36543654
if (left754Type.isNullable || right754Type.isNullable) {
3655-
if (state.getLanguageVersionSettings().getLanguageVersion() != LanguageVersion.KOTLIN_1_0 &&
3655+
// Using Intrinsics.areEqual is preferable here, but will result in NoSuchMethodError at runtime if the runtime
3656+
// of version 1.0 is used and the user forgot to explicitly specify language version / API version.
3657+
// This should be enabled when/if we decide to drop support for "-language-version 1.0" / "-api-version 1.0"
3658+
//noinspection ConstantConditions, PointlessBooleanExpression
3659+
if (false && state.getLanguageVersionSettings().getLanguageVersion() != LanguageVersion.KOTLIN_1_0 &&
36563660
state.getLanguageVersionSettings().getApiVersion().compareTo(apiVersion1_1) >= 0) {
36573661
return StackValue.operation(Type.BOOLEAN_TYPE, new Function1<InstructionAdapter, Unit>() {
36583662
@Override

compiler/testData/codegen/bytecodeText/ieee754/nullableDoubleEquals.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ fun box(): String {
2424
return "OK"
2525
}
2626

27-
// 1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
28-
// 1 areEqual \(DLjava/lang/Double;\)Z
29-
// 1 areEqual \(Ljava/lang/Double;D\)Z
30-
// 3 areEqual
27+
/*
28+
1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
29+
1 areEqual \(DLjava/lang/Double;\)Z
30+
1 areEqual \(Ljava/lang/Double;D\)Z
31+
3 areEqual*/

compiler/testData/codegen/bytecodeText/ieee754/nullableDoubleNotEquals.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ fun box(): String {
2424
return "OK"
2525
}
2626

27-
// 1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
28-
// 1 areEqual \(DLjava/lang/Double;\)Z
29-
// 1 areEqual \(Ljava/lang/Double;D\)Z
30-
// 3 areEqual
27+
/*
28+
1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
29+
1 areEqual \(DLjava/lang/Double;\)Z
30+
1 areEqual \(Ljava/lang/Double;D\)Z
31+
3 areEqual*/

compiler/testData/codegen/bytecodeText/ieee754/nullableFloatEquals.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ fun box(): String {
2424
return "OK"
2525
}
2626

27-
// 1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
28-
// 1 areEqual \(FLjava/lang/Float;\)Z
29-
// 1 areEqual \(Ljava/lang/Float;F\)Z
30-
// 3 areEqual
27+
/*
28+
1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
29+
1 areEqual \(FLjava/lang/Float;\)Z
30+
1 areEqual \(Ljava/lang/Float;F\)Z
31+
3 areEqual*/

compiler/testData/codegen/bytecodeText/ieee754/nullableFloatNotEquals.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ fun box(): String {
2424
return "OK"
2525
}
2626

27-
// 1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
28-
// 1 areEqual \(FLjava/lang/Float;\)Z
29-
// 1 areEqual \(Ljava/lang/Float;F\)Z
30-
// 3 areEqual
27+
/*
28+
1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
29+
1 areEqual \(FLjava/lang/Float;\)Z
30+
1 areEqual \(Ljava/lang/Float;F\)Z
31+
3 areEqual*/

compiler/testData/codegen/bytecodeText/ieee754/smartCastsForDouble.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ fun box(): String {
1717
return "OK"
1818
}
1919

20-
// 1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
21-
// 1 areEqual \(DLjava/lang/Double;\)Z
22-
// 1 areEqual \(Ljava/lang/Double;D\)Z
23-
// 3 areEqual
20+
/*
21+
1 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
22+
1 areEqual \(DLjava/lang/Double;\)Z
23+
1 areEqual \(Ljava/lang/Double;D\)Z
24+
3 areEqual*/

compiler/testData/codegen/bytecodeText/ieee754/smartCastsForFloat.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ fun box(): String {
1717
return "OK"
1818
}
1919

20-
// 1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
21-
// 1 areEqual \(FLjava/lang/Float;\)Z
22-
// 1 areEqual \(Ljava/lang/Float;F\)Z
23-
// 3 areEqual
20+
/*
21+
1 areEqual \(Ljava/lang/Float;Ljava/lang/Float;\)Z
22+
1 areEqual \(FLjava/lang/Float;\)Z
23+
1 areEqual \(Ljava/lang/Float;F\)Z
24+
3 areEqual*/

compiler/testData/codegen/bytecodeText/ieee754/when.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,6 @@ fun box(): String {
2727
return "OK"
2828
}
2929

30-
// 2 areEqual \(DLjava/lang/Double;\)Z
31-
// 2 areEqual
30+
/*
31+
2 areEqual \(DLjava/lang/Double;\)Z
32+
2 areEqual*/

compiler/testData/codegen/bytecodeText/ieee754/whenNullableSmartCast.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ fun box(): String {
2626
return "OK"
2727
}
2828

29-
// 2 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
30-
// 2 areEqual \(Ljava/lang/Double;D\)Z
31-
// 4 areEqual
29+
/*
30+
2 areEqual \(Ljava/lang/Double;Ljava/lang/Double;\)Z
31+
2 areEqual \(Ljava/lang/Double;D\)Z
32+
4 areEqual*/

0 commit comments

Comments
 (0)