/* * This file is part of the Jikes RVM project (http://jikesrvm.org). * * This file is licensed to You under the Common Public License (CPL); * You may not use this file except in compliance with the License. You * may obtain a copy of the License at * * http://www.opensource.org/licenses/cpl1.0.php * * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. */ package org.jikesrvm.compilers.opt; import org.jikesrvm.classloader.VM_Method; import org.jikesrvm.util.VM_HashMap; /** * Class that holds method summary information. * This class is a Singleton. * * <p> This database holds summaries: * <ul> * <li>OPT_MethodSummary, indexed by VM_Method * </ul> */ public class OPT_SummaryDatabase { /** * Lookup a given method in the database * * @return OPT_MethodSummary instance representing method */ public static synchronized OPT_MethodSummary findMethodSummary(VM_Method m) { return hash.get(m); } public static synchronized OPT_MethodSummary findOrCreateMethodSummary(VM_Method m) { OPT_MethodSummary result = findMethodSummary(m); if (result == null) { result = new OPT_MethodSummary(m); hash.put(m, result); } return result; } /** Implementation */ private static final VM_HashMap<VM_Method, OPT_MethodSummary> hash = new VM_HashMap<VM_Method, OPT_MethodSummary>(); }