diff options
| author | 2022-11-24 16:31:25 +0100 | |
|---|---|---|
| committer | 2023-03-29 10:51:10 +0000 | |
| commit | db18e88d8a9e2a45639c6fd25e91341dd3f32f07 (patch) | |
| tree | 25f0d9f6a397c00d54c2d45701671dd29541b36a /compiler/utils/jni_macro_assembler.h | |
| parent | 63af30b8fe8d4e1dc32db4dcb5e5dae1efdc7f31 (diff) | |
Rewrite `LocalReferenceTable`.
Change `jobject` for local references to a `GcRoot<>*` with
a `kLocal` tag, so that decoding can be done by clearing the
tag and dereferencing. Optimize operations with CheckJNI
disabled and small local reference table.
Results for the timeGetBytesAscii#EMPTY benchmark from the
libcore's StringToBytesBenchmark suite on blueline-userdebug
with the cpu frequencies fixed at 1420800 (cpus 0-3; little)
and 1459200 (cpus 4-7; big):
32-bit little: ~450 -> ~415
64-bit little: ~455 -> ~415
32-bit big: ~200 -> ~180
64-bit big: ~200 -> ~180
This CL also opens an opportunity for inlining a fast-path
for local reference decoding to compiled JNI stubs for
methods that return a reference.
Test: m test-art-host-gtest
Test: testrunner.py --host
Bug: 172332525
Change-Id: Id6f2955419b966fd1ad860bace9c23947080f8ed
Diffstat (limited to 'compiler/utils/jni_macro_assembler.h')
0 files changed, 0 insertions, 0 deletions