예제 #1
0
        internal LocalBuilder Get(IR.WriteTemporaryExpression temporary)
        {
            LocalBuilder local;

            _unnamedLocals.TryGetValue(temporary, out local);
            return(local);
        }
예제 #2
0
        private void Release(IR.WriteTemporaryExpression temporary)
        {
            var local = Get(temporary);

            Debug.Assert(local != null, "temporary {0} does not have a local variable assigned to it", temporary);
            _unnamedLocals.Remove(temporary);
            Release(local);
        }
예제 #3
0
        internal LocalBuilder Declare(Type type, IR.WriteTemporaryExpression temporary)
        {
            Debug.Assert(Get(temporary) == null, "temporary {0} alread has a local variable assigned to it", temporary);
            var local = Declare(type);

            _unnamedLocals.Add(temporary, local);
            return(local);
        }
예제 #4
0
 //###############################################################################################################################
 // Unnamed local handling
 internal LocalBuilder Declare(mdr.ValueTypes type, IR.WriteTemporaryExpression temporary)
 {
     return(Declare(Types.TypeOf(type), temporary));
 }