3 * Author: Alokika Dash adash@uci.edu
7 package Analysis.Prefetch;
15 * This class is used to represent the index and index offset of Arrays in
17 * for eg: for a prefetch pair a[i+z], an instance of this class stores var i and var z
20 public class IndexDescriptor extends Descriptor {
21 public ArrayList<TempDescriptor> tddesc;
22 public Integer offset;
24 public IndexDescriptor(Integer offset) {
25 super(offset.toString());
27 this.tddesc=new ArrayList<TempDescriptor>();
30 public IndexDescriptor(TempDescriptor tdesc, Integer offset) {
31 super(tdesc.toString());
32 tddesc = new ArrayList<TempDescriptor>();
37 public IndexDescriptor() {
39 tddesc = new ArrayList<TempDescriptor>();
43 public IndexDescriptor(ArrayList<TempDescriptor> tdesc, Integer offset) {
44 super(tdesc.toString());
45 tddesc = new ArrayList<TempDescriptor>();
50 public ArrayList<TempDescriptor> getTempDesc() {
54 public TempDescriptor getTempDescAt(int index) {
55 return ((TempDescriptor) (tddesc.get(index)));
58 public int getOffset() {
59 return offset.intValue();
62 public String toString() {
64 if(getTempDesc() == null) {
65 label += offset.toString();
68 ListIterator lit = getTempDesc().listIterator();
69 for(;lit.hasNext();) {
70 TempDescriptor td = (TempDescriptor) lit.next();
71 label += td.toString()+"+";
73 label +=offset.toString();
79 public int hashCode() {
80 int hashcode = (Integer) offset.hashCode();
81 hashcode^=tddesc.hashCode();
85 public boolean equals(Object o) {
86 if(o instanceof IndexDescriptor) {
87 IndexDescriptor idesc = (IndexDescriptor) o;
88 return offset==idesc.offset&&
89 tddesc.equals(idesc.tddesc);