Mercurial > hg > graal-compiler
changeset 23030:183221119491
TraceRA: add timer and memory tracker to TraceBuilder.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 19 Nov 2015 17:20:38 +0100 |
parents | ccfa6d4d989b |
children | 2c730119cb92 |
files | graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java |
diffstat | 1 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java Thu Nov 19 16:51:23 2015 +0100 +++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java Thu Nov 19 17:20:38 2015 +0100 @@ -30,6 +30,9 @@ import com.oracle.graal.compiler.common.cfg.AbstractBlockBase; import com.oracle.graal.debug.Debug; import com.oracle.graal.debug.Debug.Scope; +import com.oracle.graal.debug.DebugCloseable; +import com.oracle.graal.debug.DebugMemUseTracker; +import com.oracle.graal.debug.DebugTimer; import com.oracle.graal.debug.Indent; public final class TraceBuilder<T extends AbstractBlockBase<T>> { @@ -63,11 +66,20 @@ } + private static final String PHASE_NAME = "LIRPhaseTime_TraceBuilderPhase"; + private static final DebugTimer timer = Debug.timer(PHASE_NAME); + private static final DebugMemUseTracker memUseTracker = Debug.memUseTracker(PHASE_NAME); + /** * Build traces of sequentially executed blocks. */ + @SuppressWarnings("try") public static <T extends AbstractBlockBase<T>> TraceBuilderResult<T> computeTraces(T startBlock, List<T> blocks) { - return new TraceBuilder<>(blocks).build(startBlock); + try (Scope s = Debug.scope("TraceBuilder")) { + try (DebugCloseable a = timer.start(); DebugCloseable c = memUseTracker.start()) { + return new TraceBuilder<>(blocks).build(startBlock); + } + } } private final PriorityQueue<T> worklist; @@ -103,7 +115,7 @@ @SuppressWarnings("try") private TraceBuilderResult<T> build(T startBlock) { - try (Scope s = Debug.scope("TraceBuilder"); Indent indent = Debug.logAndIndent("start trace building: " + startBlock)) { + try (Indent indent = Debug.logAndIndent("start trace building: " + startBlock)) { ArrayList<List<T>> traces = buildTraces(startBlock); assert verify(traces);