From dfcd594ebd80b5f63c640cc5da259d393e3342f8 Mon Sep 17 00:00:00 2001 From: Daco Harkes Date: Wed, 26 Jan 2022 13:09:58 +0000 Subject: [PATCH] [vm] Delete dead runtime entries We do not have a byte code interpreter anymore, these runtime entries are dead. With enabling inlining for external functions (previous CL), the `external-name` annotations can also be removed. TEST=removes dead code TEST=hashes: runtime/vm/compiler/recognized_methods_list.h Change-Id: Ibf7f9598cfe52756f6645473f619cf8456f8f593 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229961 Reviewed-by: Tess Strickland Commit-Queue: Daco Harkes --- runtime/lib/math.cc | 51 ------------------- runtime/lib/object.cc | 8 --- runtime/vm/bootstrap_natives.h | 11 ---- runtime/vm/compiler/recognized_methods_list.h | 22 ++++---- sdk/lib/_internal/vm/lib/internal_patch.dart | 1 - sdk/lib/_internal/vm/lib/math_patch.dart | 10 ---- 6 files changed, 11 insertions(+), 92 deletions(-) diff --git a/runtime/lib/math.cc b/runtime/lib/math.cc index 9346d1e4f62..59e23050fa3 100644 --- a/runtime/lib/math.cc +++ b/runtime/lib/math.cc @@ -13,57 +13,6 @@ namespace dart { -DEFINE_NATIVE_ENTRY(Math_sqrt, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(sqrt(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_sin, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(sin(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_cos, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(cos(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_tan, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(tan(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_asin, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(asin(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_acos, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(acos(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_atan, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(atan(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_atan2, 0, 2) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand1, arguments->NativeArgAt(0)); - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand2, arguments->NativeArgAt(1)); - return Double::New(atan2_ieee(operand1.value(), operand2.value())); -} - -DEFINE_NATIVE_ENTRY(Math_exp, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(exp(operand.value())); -} - -DEFINE_NATIVE_ENTRY(Math_log, 0, 1) { - GET_NON_NULL_NATIVE_ARGUMENT(Double, operand, arguments->NativeArgAt(0)); - return Double::New(log(operand.value())); -} - DEFINE_NATIVE_ENTRY(Math_doublePow, 0, 2) { const double operand = Double::CheckedHandle(zone, arguments->NativeArgAt(0)).value(); diff --git a/runtime/lib/object.cc b/runtime/lib/object.cc index 0faccb9f3a8..f3efce1f412 100644 --- a/runtime/lib/object.cc +++ b/runtime/lib/object.cc @@ -299,14 +299,6 @@ DEFINE_NATIVE_ENTRY(LibraryPrefix_issueLoad, 0, 1) { return unit.IssueLoad(); } -DEFINE_NATIVE_ENTRY(Internal_has63BitSmis, 0, 0) { -#if defined(ARCH_IS_64_BIT) && !defined(DART_COMPRESSED_POINTERS) - return Bool::True().ptr(); -#else - return Bool::False().ptr(); -#endif // defined(ARCH_IS_64_BIT) -} - DEFINE_NATIVE_ENTRY(Internal_unsafeCast, 0, 1) { UNREACHABLE(); // Should be erased at Kernel translation time. return arguments->NativeArgAt(0); diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h index c919caa79c5..20a2d74e075 100644 --- a/runtime/vm/bootstrap_natives.h +++ b/runtime/vm/bootstrap_natives.h @@ -138,16 +138,6 @@ namespace dart { V(String_toLowerCase, 1) \ V(String_toUpperCase, 1) \ V(String_concatRange, 3) \ - V(Math_sqrt, 1) \ - V(Math_sin, 1) \ - V(Math_cos, 1) \ - V(Math_tan, 1) \ - V(Math_asin, 1) \ - V(Math_acos, 1) \ - V(Math_atan, 1) \ - V(Math_atan2, 2) \ - V(Math_exp, 1) \ - V(Math_log, 1) \ V(Math_doublePow, 2) \ V(Random_nextState, 1) \ V(Random_setupSeed, 1) \ @@ -333,7 +323,6 @@ namespace dart { V(Internal_collectAllGarbage, 0) \ V(Internal_makeListFixedLength, 1) \ V(Internal_makeFixedListUnmodifiable, 1) \ - V(Internal_has63BitSmis, 0) \ V(Internal_extractTypeArguments, 2) \ V(Internal_prependTypeArguments, 4) \ V(Internal_boundsCheckForPartialInstantiation, 2) \ diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h index 91569f6ad8f..9dc2df9381f 100644 --- a/runtime/vm/compiler/recognized_methods_list.h +++ b/runtime/vm/compiler/recognized_methods_list.h @@ -99,16 +99,16 @@ namespace dart { V(::, max, MathMax, 0xead7161a) \ V(::, _doublePow, MathDoublePow, 0x989f3334) \ V(::, _intPow, MathIntPow, 0x68b6021e) \ - V(::, _sin, MathSin, 0x17dacdc4) \ - V(::, _cos, MathCos, 0xf4948106) \ - V(::, _tan, MathTan, 0xeb1a58f8) \ - V(::, _asin, MathAsin, 0x29e4d95f) \ - V(::, _acos, MathAcos, 0x200aa49c) \ - V(::, _atan, MathAtan, 0x10fa64b3) \ - V(::, _atan2, MathAtan2, 0x58d4f514) \ - V(::, _sqrt, MathSqrt, 0x03183751) \ - V(::, _exp, MathExp, 0x00f50391) \ - V(::, _log, MathLog, 0x09ae8823) \ + V(::, _sin, MathSin, 0x17daca03) \ + V(::, _cos, MathCos, 0xf4947d45) \ + V(::, _tan, MathTan, 0xeb1a5537) \ + V(::, _asin, MathAsin, 0x29e4d59e) \ + V(::, _acos, MathAcos, 0x200aa0db) \ + V(::, _atan, MathAtan, 0x10fa60f2) \ + V(::, _atan2, MathAtan2, 0x58d4f153) \ + V(::, _sqrt, MathSqrt, 0x03183390) \ + V(::, _exp, MathExp, 0x00f4ffd0) \ + V(::, _log, MathLog, 0x09ae8462) \ V(Float32x4, _Float32x4FromDoubles, Float32x4FromDoubles, 0x1845792b) \ V(Float32x4, Float32x4.zero, Float32x4Zero, 0xd3b64002) \ V(Float32x4, _Float32x4Splat, Float32x4Splat, 0x13a552c3) \ @@ -240,7 +240,7 @@ namespace dart { V(Future, wait, FutureWait, 0x495c83cd) \ V(_RootZone, runUnary, RootZoneRunUnary, 0xb607f8bf) \ V(_FutureListener, handleValue, FutureListenerHandleValue, 0x438115a8) \ - V(::, has63BitSmis, Has63BitSmis, 0xf61b5ab2) \ + V(::, has63BitSmis, Has63BitSmis, 0xf61b56f1) \ // List of intrinsics: // (class-name, function-name, intrinsification method, fingerprint). diff --git a/sdk/lib/_internal/vm/lib/internal_patch.dart b/sdk/lib/_internal/vm/lib/internal_patch.dart index 124849576df..b8141d68112 100644 --- a/sdk/lib/_internal/vm/lib/internal_patch.dart +++ b/sdk/lib/_internal/vm/lib/internal_patch.dart @@ -104,7 +104,6 @@ class VMLibraryHooks { @pragma("vm:recognized", "other") @pragma('vm:prefer-inline') -@pragma("vm:external-name", "Internal_has63BitSmis") external bool get has63BitSmis; @pragma("vm:recognized", "other") diff --git a/sdk/lib/_internal/vm/lib/math_patch.dart b/sdk/lib/_internal/vm/lib/math_patch.dart index 270bbbc50fb..ae7872c329c 100644 --- a/sdk/lib/_internal/vm/lib/math_patch.dart +++ b/sdk/lib/_internal/vm/lib/math_patch.dart @@ -164,43 +164,33 @@ double log(num x) => _log(x.toDouble()); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_atan2") external double _atan2(double a, double b); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_sin") external double _sin(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_cos") external double _cos(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_tan") external double _tan(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_acos") external double _acos(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_asin") external double _asin(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_atan") external double _atan(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_sqrt") external double _sqrt(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_exp") external double _exp(double x); @pragma("vm:recognized", "other") @pragma("vm:prefer-inline") -@pragma("vm:external-name", "Math_log") external double _log(double x); // TODO(iposva): Handle patch methods within a patch class correctly.