# HG changeset patch # User Thomas Wuerthinger # Date 1326222848 -3600 # Node ID 504bc518a58256038fe7d211e7dc89b37cecef0e # Parent f03c71a0aeb8eaccffe6dd0318a771157dd1c7fe# Parent 81dc77ed0695f0899c093f76bb9f95296c877fa9 Merge. diff -r 81dc77ed0695 -r 504bc518a582 graal/com.oracle.max.graal.debug/src/com/oracle/max/graal/debug/Debug.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.max.graal.debug/src/com/oracle/max/graal/debug/Debug.java Tue Jan 10 20:14:08 2012 +0100 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.max.graal.debug; + +import java.io.*; + + +public class Debug { + public static boolean ENABLED = false; + + public static void log(String msg, Object... args) { + if (ENABLED) { + DebugContext.getInstance().log(msg, args); + } + } + + public static Scope openScope(String name, Object... context) { + if (ENABLED) { + return new Scope(name, context); + } else { + return VOID_SCOPE; + } + } + + private static final Scope VOID_SCOPE = new Scope(null); + + public static final class Scope implements Closeable { + private String name; + private Object[] context; + + private Scope(String name, Object... context) { + this.name = name; + this.context = context; + } + + @Override + public void close() throws IOException { + } + } + + private static class ScopeChild { + private String name; + + protected ScopeChild(String name) { + this.name = name; + } + } + + public static final class Metric extends ScopeChild { + private Metric(String name) { + super(name); + } + + } + + public static final class Timer extends ScopeChild { + private Timer(String name) { + super(name); + } + } +} diff -r 81dc77ed0695 -r 504bc518a582 graal/com.oracle.max.graal.debug/src/com/oracle/max/graal/debug/DebugContext.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.max.graal.debug/src/com/oracle/max/graal/debug/DebugContext.java Tue Jan 10 20:14:08 2012 +0100 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.max.graal.debug; + + +class DebugContext { + + private static ThreadLocal instance = new ThreadLocal<>(); + + static DebugContext getInstance() { + if (instance.get() == null) { + instance.set(new DebugContext()); + } + return instance.get(); + } + + void log(String msg, Object... args) { + } + + void scope(Runnable runnable, String name, Object... context) { + runnable.run(); + } +} diff -r 81dc77ed0695 -r 504bc518a582 mx/projects --- a/mx/projects Tue Jan 10 09:35:00 2012 -0800 +++ b/mx/projects Tue Jan 10 20:14:08 2012 +0100 @@ -50,7 +50,12 @@ # graal.graph project@com.oracle.max.graal.graph@subDir=graal project@com.oracle.max.graal.graph@sourceDirs=src -project@com.oracle.max.graal.graph@dependencies=JUNIT +project@com.oracle.max.graal.graph@dependencies=com.oracle.max.graal.debug,JUNIT + +# graal.debug +project@com.oracle.max.graal.debug@subDir=graal +project@com.oracle.max.graal.debug@sourceDirs=src +project@com.oracle.max.graal.debug@checkstyle=com.oracle.max.graal.graph # graal.snippets project@com.oracle.max.graal.snippets@subDir=graal