From a0130e8d2842a9a82e4fd4e811ee699272eb2e0b Mon Sep 17 00:00:00 2001 From: Andra Danciu Date: Thu, 23 Jul 2020 12:34:56 +0000 Subject: Prepare compiler for adding VarHandle support. This commit prepares the ground for adding VarHandle support in the compiler. The intrinsic locations builder and code generator are now triggered for HInvokePolymorphic nodes. VarHandle and MethodHandle intrinsics are marked as unimplemented rather than unreachable. Since the Varhandle intrinsics are not implemented yet, the functionality is not changed (i.e. the intrinsics are evaluated at runtime and not compiled). I manually tested that the intrinsic Visit* methods are triggered for the VarHandle methods. Bug: b/65872996 Test: art/test.py --host -r -t 713-varhandle-invokers Test: art/test.py --host --all-compiler -r Change-Id: I3333728c5f16d8dc4f92ceae2738ed59b3e31e6a --- compiler/optimizing/nodes.cc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'compiler/optimizing/nodes.cc') diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc index 64e62fd01e..22e165767d 100644 --- a/compiler/optimizing/nodes.cc +++ b/compiler/optimizing/nodes.cc @@ -3159,11 +3159,7 @@ static inline IntrinsicExceptions GetExceptionsIntrinsic(Intrinsics i) { } void HInvoke::SetResolvedMethod(ArtMethod* method) { - // TODO: b/65872996 The intent is that polymorphic signature methods should - // be compiler intrinsics. At present, they are only interpreter intrinsics. - if (method != nullptr && - method->IsIntrinsic() && - !method->IsPolymorphicSignature()) { + if (method != nullptr && method->IsIntrinsic()) { Intrinsics intrinsic = static_cast(method->GetIntrinsic()); SetIntrinsic(intrinsic, NeedsEnvironmentOrCacheIntrinsic(intrinsic), -- cgit v1.2.3-59-g8ed1b