summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author David Brazdil <dbrazdil@google.com> 2016-04-05 17:15:19 +0100
committer David Brazdil <dbrazdil@google.com> 2016-04-12 15:17:28 +0100
commitc2e8af9659db7e456b26febb1b971900057ad427 (patch)
treeaf35981588f2995d8bb3a570e2f7244c8c22373a /compiler/optimizing/nodes.h
parent04c2b2de69460d41e0c39c1f7d9fb77376c3aa8b (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.h2
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_;