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.inlining;
014
015import org.jikesrvm.compilers.opt.util.TreeNode;
016
017/**
018 * The nodes of an CallSiteTree.  They represent inlined call
019 * sites of a given method code body; a node stands for a single call
020 * site.  These trees are used to construct the persistent runtime
021 * encoding of inlining information, which is stored in
022 * OptMachineCodeMap objects.
023 *
024 *
025 * @see CallSiteTree
026 * @see InlineSequence
027 * @see org.jikesrvm.compilers.opt.runtimesupport.OptMachineCodeMap
028 * @see org.jikesrvm.compilers.opt.runtimesupport.OptEncodedCallSiteTree
029 */
030public class CallSiteTreeNode extends TreeNode {
031  /**
032   * The call site represented by this tree node
033   */
034  public final InlineSequence callSite;
035
036  /**
037   * The position of this call site in the binary encoding.  It is set
038   * by OptEncodedCallSiteTree.getEncoding.
039   *
040   * @see org.jikesrvm.compilers.opt.runtimesupport.OptEncodedCallSiteTree#getEncoding
041   */
042  public int encodedOffset;
043
044  /**
045   * construct a a call site tree node corresponding to a given
046   * inlined call site
047   * @param   seq an inlined call site
048   */
049  public CallSiteTreeNode(InlineSequence seq) {
050    callSite = seq;
051  }
052}
053
054
055