diff options
author | buzbee <buzbee@google.com> | 2013-08-19 07:37:40 -0700 |
---|---|---|
committer | buzbee <buzbee@google.com> | 2013-08-19 07:37:40 -0700 |
commit | cbcfaf3a410e35730c4daeaff6c791665764925a (patch) | |
tree | 92f836a197f74ee912135fd4bb389cd261e6d4a5 /test/109-suspend-check/info.txt | |
parent | 212ec8f32919d50a1e1cb7ea4b3b91ca938ae4e6 (diff) | |
download | art-cbcfaf3a410e35730c4daeaff6c791665764925a.zip art-cbcfaf3a410e35730c4daeaff6c791665764925a.tar.gz art-cbcfaf3a410e35730c4daeaff6c791665764925a.tar.bz2 |
Fix suspend check optimization
Art's Quick compiler currently uses a convervative mechanism
to ensure that a safe point will be reached within a "small" amount
of time. Explicit suspend checks are placed prior to backwards
branches and on returns. There are a lot of ways to optimize,
which we'll get to in the future, but for now the only optimization
is to detect a backwards branch that targets a return block. That's
a common pattern in dex, and simple to detect. In those cases, we can
suppress the suspend check on the backwards branch knowing that the
return will do it.
However, the notion of what is a backwards branch got a bit muddied
with some mir optimizations that transform the graph by changing the
sense of branches. What started off as a taken backwards branch may
turn into a fallthrough backwards branch.
This CL avoid the confusion by marking branches backwards based on
their original dex targets rather than using the post-transform test
of backwardness.
Change-Id: I9b30be168c801af51bae7f66ecd442edcb115a18
Diffstat (limited to 'test/109-suspend-check/info.txt')
-rw-r--r-- | test/109-suspend-check/info.txt | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/test/109-suspend-check/info.txt b/test/109-suspend-check/info.txt new file mode 100644 index 0000000..d89d66a --- /dev/null +++ b/test/109-suspend-check/info.txt @@ -0,0 +1,2 @@ +To support garbage collection, debugging and profiling the VM must be able to send all threads +to a safepoint. This tests the ability of the VM to do this for a tight loop. |