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 */ 013 package org.jikesrvm.compilers.opt.dfsolver; 014 015 import java.util.Iterator; 016 017 import org.jikesrvm.compilers.opt.util.GraphNode; 018 019 /** 020 * Represents a single lattice cell in a dataflow equation system. 021 */ 022 public interface DF_LatticeCell extends GraphNode { 023 024 /** 025 * Returns an enumeration of the equations in which this 026 * lattice cell is used. 027 * @return an enumeration of the equations in which this 028 * lattice cell is used 029 */ 030 Iterator<DF_Equation> getUses(); 031 032 /** 033 * Returns an enumeration of the equations in which this 034 * lattice cell is defined. 035 * @return an enumeration of the equations in which this 036 * lattice cell is defined 037 */ 038 Iterator<DF_Equation> getDefs(); 039 040 /** 041 * Return a string representation of the cell 042 * @return a string representation of the cell 043 */ 044 @Override 045 String toString(); 046 047 /** 048 * Note that this variable appears on the RHS of an equation 049 * 050 * @param eq the equation 051 */ 052 void addUse(DF_Equation eq); 053 054 /** 055 * Note that this variable appears on the LHS of an equation 056 * 057 * @param eq the equation 058 */ 059 void addDef(DF_Equation eq); 060 } 061 062 063