public CppAssignabilityResolver(CppBuilder builder, CfgNodeCompiler.CommonTypeLookup commonTypes, CLRTypeDefRow inClass, CLRMethodDefRow inMethod) { m_builder = builder; m_commonTypes = commonTypes; m_inClass = inClass; m_inMethod = inMethod; }
public CfgBuilder(ExceptionHandlingRegion region, CppBuilder builder, CppClass cls, CppMethod method, VReg[] args, VReg[] locals, IList<VReg> temporaries) { m_builder = builder; m_cls = cls; m_method = method; m_args = args; m_locals = locals; m_temporaries = temporaries; m_instrs = method.MethodDef.Method.Instructions; m_inClass = cls.TypeDef; m_inMethod = method.MethodDef; m_region = region; m_startInstr = (int)region.StartInstr; m_endInstr = (int)region.EndInstr; m_ehClusters = region.Clusters; LocateBranchTargets(); ConstructCfg(); CreateSuccessionGraph(); }
public void AddMethod(CLRAssemblyCollection assemblies, CLRMethodDefRow method) { CppMethod cppMethod = new CppMethod(assemblies, m_typeDef, method); m_methods.Add(cppMethod); if (cppMethod.Virtual && !cppMethod.Overrides) { m_overrideVisibleVtableSlots.Add(cppMethod.CreatesSlot); m_allVtableSlots.Add(cppMethod.CreatesSlot); } if (cppMethod.NumGenericParameters > 0) HaveAnyGenericMethods = true; }