summaryrefslogtreecommitdiff
path: root/runtime/fault_handler.cc
diff options
context:
space:
mode:
author Ulya Trafimovich <skvadrik@google.com> 2021-11-02 15:38:03 +0000
committer Ulyana Trafimovich <skvadrik@google.com> 2021-11-15 10:43:46 +0000
commit44a1dc73ad352cb19853cd59b709df82e259cdce (patch)
treea8924c1c051738461fb7a916081d11a77f9f98ee /runtime/fault_handler.cc
parentc14f47dcc7e458d82799e7852d179c1a9ba3c7c1 (diff)
Clean up VarHandles.set*() for arrays and byte array views.
This CL is a clean up for https://r.android.com/1875684. Changes: - Use setters instead of constructor arguments. - Rerun benchmarks and add improvements for arrays to commit message (as aosp/1875684 forgot to mention changes for arrays). - Do BSWAP at compile time if the argument is a constant value. `HandleFieldSet` now can optionally perform byte swap. The function is rewritten so that constant and non-constant values are handled in separate branches, which makes both cases simpler. - Add helper function `CodeGeneratorX86_64::GetInstructionCodegen` to reduce boilerplate. Benchmarks improvements (using benchmarks provided by https://android-review.googlesource.com/1420959): benchmark before aosp/1875684 now ---------------------------------------------------------------- VarHandleSetArrayElementInt 2.79 0.002 VarHandleSetArrayElementString 3.09 0.003 VarHandleSetByteArrayViewInt 2.89 0.004 VarHandleSetByteArrayViewBigEndianInt 2.89 0.004 Bug: 71781600 Test: lunch aosp_cf_x86_64_phone-userdebug \ && art/test.py --host -r -t 712-varhandle-invocations --64 Test: Repeat with ART_USE_READ_BARRIER=false. Test: Repeat with ART_HEAP_POISONING=true. Change-Id: I8cc37321228ffb2833a1158a75ced65f18af968e
Diffstat (limited to 'runtime/fault_handler.cc')
0 files changed, 0 insertions, 0 deletions