// 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); } }
// 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); } }
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; }
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; }