diff options
author | 2023-04-24 09:12:54 +0000 | |
---|---|---|
committer | 2023-04-25 08:46:29 +0000 | |
commit | cb008914fbc5a2334e3c00366afdb5f8af5a23ba (patch) | |
tree | 8d3776e8021da39b32ad377a5f0eda20c9490c93 /compiler/optimizing/nodes.cc | |
parent | e834f1ec604e4c8e15dabfa9685de0eb646f3824 (diff) |
Don't enable intrinsic optimizations in debuggable runtime
We have optimizations that generate code inline for intrinsics instead
of leaving them as invoke for better performance. Some debug features
like method entry / exit or setting a breakpoint on intrinsics wouldn't
work if intrinsics are inlined. So disable those optimizations in
debuggable runtimes.
Also update 988-method-trace test to test intrinsics on JITed code.
Test: art/test.py -t 988
Bug: 279547861
Change-Id: Ic7c61d1b1541ff534faa24ccec5c2d0b574b0537
Diffstat (limited to 'compiler/optimizing/nodes.cc')
-rw-r--r-- | compiler/optimizing/nodes.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc index c99cfab05f..3790058879 100644 --- a/compiler/optimizing/nodes.cc +++ b/compiler/optimizing/nodes.cc @@ -3571,8 +3571,8 @@ static inline IntrinsicExceptions GetExceptionsIntrinsic(Intrinsics i) { return kCanThrow; } -void HInvoke::SetResolvedMethod(ArtMethod* method) { - if (method != nullptr && method->IsIntrinsic()) { +void HInvoke::SetResolvedMethod(ArtMethod* method, bool enable_intrinsic_opt) { + if (method != nullptr && method->IsIntrinsic() && enable_intrinsic_opt) { Intrinsics intrinsic = static_cast<Intrinsics>(method->GetIntrinsic()); SetIntrinsic(intrinsic, NeedsEnvironmentIntrinsic(intrinsic), |