Example #1
0
		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;
		}
Example #2
0
		internal LIRLocalAddress(LIRLocal parent)
		{
			this.Parent = parent;
		}
Example #3
0
		public void ReleaseLocal(LIRLocal l)
		{
			requestedLocalMap[l.Type.GetHashCode()].Enqueue(l);
		}