# HG changeset patch # User Gilles Duboscq # Date 1330954526 -3600 # Node ID 7ccdae96e98acaec3fbfd5c45ceaa40be2ff7f53 # Parent db072eec897e24032785ac7c4f7bc3badbc78d6f Allow JaCoCon to append to the execution file use StructuredGraph.reduceTrivialMerge in DCE phase instead of manual version diff -r db072eec897e -r 7ccdae96e98a graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java Mon Mar 05 13:40:39 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java Mon Mar 05 14:35:26 2012 +0100 @@ -44,11 +44,7 @@ // remove chained Merges for (MergeNode merge : graph.getNodes(MergeNode.class)) { if (merge.forwardEndCount() == 1 && !(merge instanceof LoopBeginNode)) { - replacePhis(merge); - EndNode endNode = merge.forwardEndAt(0); - FixedNode next = merge.next(); - merge.safeDelete(); - endNode.replaceAndDelete(next); + graph.reduceTrivialMerge(merge); } } } @@ -96,12 +92,6 @@ } } - private static void replacePhis(MergeNode merge) { - for (PhiNode phi : merge.phis().snapshot()) { - ((StructuredGraph) merge.graph()).replaceFloating(phi, phi.valueAt(0)); - } - } - private void deleteNodes(StructuredGraph graph) { for (Node node : graph.getNodes()) { if (!flood.isMarked(node)) { diff -r db072eec897e -r 7ccdae96e98a mx/commands.py --- a/mx/commands.py Mon Mar 05 13:40:39 2012 +0100 +++ b/mx/commands.py Mon Mar 05 14:35:26 2012 +0100 @@ -46,7 +46,7 @@ This can be set via the global '--fastdebug' and '--debug' options. """ _vmbuild = 'product' -_jacoco = False +_jacoco = 'off' _jacocoExcludes = ['com.oracle.max.graal.hotspot.snippets.ArrayCopySnippets', 'com.oracle.max.graal.snippets.DoubleSnippets', @@ -54,7 +54,8 @@ 'com.oracle.max.graal.snippets.MathSnippetsX86', 'com.oracle.max.graal.snippets.NodeClassSnippets', 'com.oracle.max.graal.hotspot.snippets.SystemSnippets', - 'com.oracle.max.graal.hotspot.snippets.UnsafeSnippets'] + 'com.oracle.max.graal.hotspot.snippets.UnsafeSnippets', + 'com.oracle.max.graal.compiler.tests.*'] _copyrightTemplate = """/* * Copyright (c) {0}, Oracle and/or its affiliates. All rights reserved. @@ -485,10 +486,10 @@ mx.expand_project_in_args(args) if mx.java().debug: args = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000'] + args - if _jacoco: + if _jacoco == 'on' or _jacoco == 'append': jacocoagent = mx.library("JACOCOAGENT", True) agentOptions = { - 'append' : 'false', + 'append' : 'true' if _jacoco == 'append' else 'false', 'bootclasspath' : 'true', 'includes' : 'com.oracle.max.*', 'excludes' : ':'.join(_jacocoExcludes) @@ -864,7 +865,7 @@ 'vm': [vm, '[-options] class [args...]'] } - mx.add_argument('--jacoco', action='store_true', dest='jacoco', help='instruments com.oracle.max.* classes using JaCoCo') + mx.add_argument('--jacoco', help='instruments com.oracle.max.* classes using JaCoCo', default='off', choices=['off', 'on', 'append']) if (_vmSourcesAvailable): mx.add_argument('--vm', action='store', dest='vm', default='graal', choices=['graal', 'server', 'client'], help='the VM to build/run (default: graal)') @@ -895,6 +896,5 @@ if hasattr(opts, 'vmbuild') and opts.vmbuild is not None: global _vmbuild _vmbuild = opts.vmbuild - if opts.jacoco: - global _jacoco - _jacoco = True + global _jacoco + _jacoco = opts.jacoco