diff options
author | 2016-04-05 17:15:19 +0100 | |
---|---|---|
committer | 2016-04-12 15:17:28 +0100 | |
commit | c2e8af9659db7e456b26febb1b971900057ad427 (patch) | |
tree | af35981588f2995d8bb3a570e2f7244c8c22373a /compiler/optimizing/nodes.h | |
parent | 04c2b2de69460d41e0c39c1f7d9fb77376c3aa8b (diff) |
ART: Speed up HGraph::PopulateIrreducibleRecursive
Populating an irreducible loop can potentially traverse all possible
paths through the HGraph, leading to an exponential algorithm.
This patch adds a bit vector of nodes whose membership in the loop
has been decided and need not be revisited again.
Bug: 27856014
Change-Id: I3696f08c846e6f40e5de44cb771811bac7e3e08a
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r-- | compiler/optimizing/nodes.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index 0088fed62a..dc5a8fa9cb 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -727,7 +727,7 @@ class HLoopInformation : public ArenaObject<kArenaAllocLoopInfo> { private: // Internal recursive implementation of `Populate`. void PopulateRecursive(HBasicBlock* block); - void PopulateIrreducibleRecursive(HBasicBlock* block); + void PopulateIrreducibleRecursive(HBasicBlock* block, ArenaBitVector* finalized); HBasicBlock* header_; HSuspendCheck* suspend_check_; |