本文整理汇总了C#中ILGen.EndJittedMethod方法的典型用法代码示例。如果您正苦于以下问题:C# ILGen.EndJittedMethod方法的具体用法?C# ILGen.EndJittedMethod怎么用?C# ILGen.EndJittedMethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ILGen
的用法示例。
在下文中一共展示了ILGen.EndJittedMethod方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateCode
void GenerateCode(JSFunctionCode funcCode, ILGen.BaseILGenerator ilGen, bool enableSpeculation)
{
var cgInfo = new CodeGenerationInfo(this, funcCode, ilGen);
///This is where we are giong to make different decistions aboud different Phases and passes
if (JSRuntime.Instance.Configuration.EnableLightCompiler)
{
CodeGeneratorLight.Execute(cgInfo);
}
else
{
if (JSRuntime.Instance.Configuration.EnableFunctionInlining)
FunctionInliner.Execute(cgInfo);
if (EnableTypeInference)
TypeInferer.Execute(cgInfo);
if (enableSpeculation && !IsBlackListed)
{
CodeGen.CodeGeneratorWithInlineCache.Execute(this);
try {
CodeGeneratorWithSpecialization.Execute(cgInfo);
}
catch(JSDeoptFailedException e) {
IsBlackListed = true;
ilGen = CreateStub(funcCode, false);
cgInfo = new CodeGenerationInfo(this, funcCode, ilGen);
funcCode.Profiler = null;
if (EnableTypeInference)
TypeInferer.Execute(cgInfo);
CodeGenerator.Execute(cgInfo);
}
}
else
{
if (this.EnableProfiling && !IsBlackListed)
CodeGeneratorWithProfiling.Execute(cgInfo);
else
CodeGenerator.Execute(cgInfo);
}
var method = ilGen.EndJittedMethod(this, funcCode);
if (enableSpeculation && !IsBlackListed)
funcCode.SpecializedMethod = method;
else
funcCode.GenericMethod = method;
}
}