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 + -
显示快捷键?