From 20e9db6db787e007e7032878c9899b28ec43e93f Mon Sep 17 00:00:00 2001 From: Aart Bik Date: Wed, 14 Sep 2016 10:52:13 -0700 Subject: Make LinearizeGraph() public (and move it to nodes files) Rationale: It is strange that HLinearOrderIterator is defined (and visible) in nodes.h, but clients have no way to build this order. This CL makes the building available at the usual place. Change-Id: Ib66f2edf6dfc8edd6b429bd4bea3ac7e37440b28 Tests: m test-art --- compiler/optimizing/nodes.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'compiler/optimizing/nodes.h') diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index 119b62a16b..4c6d28f0c8 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -365,6 +365,13 @@ class HGraph : public ArenaObject { // is a throw-catch loop, i.e. the header is a catch block. GraphAnalysisResult AnalyzeLoops() const; + // Computes the linear order (should be called before using HLinearOrderIterator). + // Linearizes the graph such that: + // (1): a block is always after its dominator, + // (2): blocks of loops are contiguous. + // This creates a natural and efficient ordering when visualizing live ranges. + void Linearize(); + // Iterate over blocks to compute try block membership. Needs reverse post // order and loop information. void ComputeTryBlockInformation(); -- cgit v1.2.3-59-g8ed1b