001/*
002 *  This file is part of the Jikes RVM project (http://jikesrvm.org).
003 *
004 *  This file is licensed to You under the Eclipse Public License (EPL);
005 *  You may not use this file except in compliance with the License. You
006 *  may obtain a copy of the License at
007 *
008 *      http://www.opensource.org/licenses/eclipse-1.0.php
009 *
010 *  See the COPYRIGHT.txt file distributed with this work for information
011 *  regarding copyright ownership.
012 */
013package org.jikesrvm.compilers.opt.driver;
014
015import org.jikesrvm.classloader.NormalMethod;
016
017/**
018 * An instance of this class acts instructs the optimizing
019 * compiler how to instrument a method to support the
020 * gathering of runtime measurement information
021 * <p>
022 * Currently empty, but will gradually add function here
023 * as the Adaptive Optimization Subsystem evolves.
024 */
025public abstract class InstrumentationPlan {
026  /**
027   * Called the beginning of compilation, before the optimization plan
028   * is executed.
029   *
030   * @param method the method whose instrumentation is to be initialized
031   */
032  public abstract void initInstrumentation(NormalMethod method);
033
034  /**
035   * Called after compilation completes, but before the method is executed.
036   *
037   * @param method the method whose instrumentation is to be completed
038   */
039  public abstract void finalizeInstrumentation(NormalMethod method);
040}