示例#1
0
 // called on branches and labels
 private void RecordBranch(LabelSymbol label)
 {
     DummyLocal dummy;
     if (_dummyVariables.TryGetValue(label, out dummy))
     {
         RecordVarRead(dummy);
     }
     else
     {
         // create a dummy and start tracing it
         dummy = new DummyLocal();
         _dummyVariables.Add(label, dummy);
         _locals.Add(dummy, new LocalDefUseInfo(StackDepth()));
         RecordVarWrite(dummy);
     }
 }
示例#2
0
        // called on branches and labels
        private void RecordBranch(LabelSymbol label)
        {
            CannotReusePreviousExpression();

            DummyLocal dummy;
            if (_dummyVariables.TryGetValue(label, out dummy))
            {
                RecordVarRead(dummy);
            }
            else
            {
                // create a dummy and start tracing it
                dummy = new DummyLocal();
                _dummyVariables.Add(label, dummy);
                _locals.Add(dummy, new LocalDefUseInfo(_evalStack));
                RecordVarWrite(dummy);
            }
        }
示例#3
0
        private object GetStackStateCookie()
        {
            // create a dummy and start tracing it
            var dummy = new DummyLocal();
            _dummyVariables.Add(dummy, dummy);
            _locals.Add(dummy, new LocalDefUseInfo(StackDepth()));
            RecordVarWrite(dummy);

            return dummy;
        }
示例#4
0
        private object GetStackStateCookie()
        {
            CannotReusePreviousExpression();

            // create a dummy and start tracing it
            var dummy = new DummyLocal();
            _dummyVariables.Add(dummy, dummy);
            _locals.Add(dummy, new LocalDefUseInfo(_evalStack));
            RecordVarWrite(dummy);

            return dummy;
        }