summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.h
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2016-11-01 20:13:24 -0700
committerMathieu Chartier <mathieuc@google.com>2016-11-02 14:27:06 -0700
commit1cf194f055b7152fde817787fcdadeea1fb1067c (patch)
treeb47da959af7a1f0138d92fe9989ae299462fed96 /compiler/optimizing/loop_optimization.h
parent77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c (diff)
Check for forwarding address in READ_BARRIER_MARK_REG
When the object is in the from-space, the mark bit is not set. In this case, we can also check the lock word for being a forwarding address. The forwarding address case happens around 25% of the time. This CL adds the case for forwarding address lock words to READ_BARRIER_MARK_REG. Reduces total read barriers reaching runtime on ritzperf: Slow paths: 20758783 -> 15457783 Deleted the mark bit check in MarkFromReadBarrier since most of the callers check the bit now. Perf: ReadBarrier::Mark: 2.59% -> 2.12% art_quick_read_barrier_mark_reg01: 0.79% -> 0.78% art_quick_read_barrier_mark_reg00: 0.54% -> 0.50% art_quick_read_barrier_mark_reg02: 0.31% -> 0.25% Only X86_64 for now, will do other archs after. Bug: 30162165 Test: test-art-host Change-Id: Ie7289d684d0e37a887943d77710092e380457860
Diffstat (limited to 'compiler/optimizing/loop_optimization.h')
0 files changed, 0 insertions, 0 deletions