summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorDavid Brazdil <dbrazdil@google.com>2015-03-03 11:54:54 +0000
committerDavid Brazdil <dbrazdil@google.com>2015-03-17 10:07:23 +0000
commit6d340c4f16f374e05f4205e5a27de1174abcaf2a (patch)
treeea4f4205049668dc1d46fb0ed4b6f349cbd3d761 /compiler/optimizing/graph_visualizer.cc
parent94e480778b0946d1ab405ecf901e5d41ed54cc17 (diff)
ART: Faster implementation of GVN's hash table
The basic hash table in Optimizing's GVN pass does not scale for larger methods and quickly becomes a bottleneck. This patch provides a different implementation, focusing on the following: (1) Proper buckets with chaining for near constant-time lookup. (2) Bucket inheritance for faster cloning. A clone does not actually copy the entries until a first change is made. (3) Table resizing for better load management. Done during cloning. (4) Kill() and IntersectWith() applied only on impure instructions. This is achieved by splitting (im)pure entries between even- and odd-indexed buckets. Benchmarks show that this optimization speeds up GVN by ~10%, which translates to a rougly 2% change in the overall compilation time. Change-Id: Ib4058359701d990194cfd49c6ee46ac2372f090c
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions