public LIRLocal RequestLocal(LIRType tp) { LIRLocal ret; Queue<LIRLocal> q; if (!requestedLocalMap.TryGetValue(tp.GetHashCode(), out q)) { requestedLocalMap.Add(tp.GetHashCode(), new Queue<LIRLocal>()); ret = new LIRLocal(this, tp); } else if (q.Count > 0) ret = q.Dequeue(); else { ret = new LIRLocal(this, tp); } ret.Dynamic = true; return ret; }
internal LIRLocalAddress(LIRLocal parent) { this.Parent = parent; }
public void ReleaseLocal(LIRLocal l) { requestedLocalMap[l.Type.GetHashCode()].Enqueue(l); }