liverange.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 80 行
JAVA
80 行
/*
* $Id: LiveRange.java,v 1.4 2004/02/15 11:06:33 epr Exp $
*/
package org.jnode.vm.compiler.ir;
/**
* @author Madhu Siddalingaiah
*
*/
public class LiveRange implements Comparable {
private Variable variable;
private int assignAddress;
private int lastUseAddress;
/**
*
*/
public LiveRange(Variable v) {
this.variable = v;
this.assignAddress = v.getAssignAddress();
this.lastUseAddress = v.getLastUseAddress();
}
public boolean interferesWith(LiveRange other) {
return lastUseAddress > other.getAssignAddress() ||
other.lastUseAddress > assignAddress;
}
public Variable getVariable() {
return variable;
}
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public int compareTo(Object obj) {
LiveRange other = (LiveRange) obj;
return assignAddress - other.getVariable().getAssignAddress();
}
public String toString() {
String leader = variable.toString() + ": " +
assignAddress + "-" + lastUseAddress;
Location loc = getLocation();
if (loc == null) {
return leader;
}
return leader + " (" + loc + ")";
}
/**
* @return
*/
public int getAssignAddress() {
return assignAddress;
}
/**
* @return
*/
public int getLastUseAddress() {
return lastUseAddress;
}
/**
* @return
*/
public Location getLocation() {
return variable.getLocation();
}
/**
* @param loc
*/
public void setLocation(Location loc) {
variable.setLocation(loc);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?