本文整理汇总了C++中tr::Compilation::getOSRCompilationData方法的典型用法代码示例。如果您正苦于以下问题:C++ Compilation::getOSRCompilationData方法的具体用法?C++ Compilation::getOSRCompilationData怎么用?C++ Compilation::getOSRCompilationData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tr::Compilation
的用法示例。
在下文中一共展示了Compilation::getOSRCompilationData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mp
void
OMR::CodeGenPhase::performEmitSnippetsPhase(TR::CodeGenerator * cg, TR::CodeGenPhase * phase)
{
TR::Compilation * comp = cg->comp();
phase->reportPhase(EmitSnippetsPhase);
TR::LexicalMemProfiler mp("Emit Snippets", comp->phaseMemProfiler());
LexicalTimer pt("Emit Snippets", comp->phaseTimer());
cg->emitSnippets();
if (comp->getOption(TR_EnableOSR))
{
comp->getOSRCompilationData()->checkOSRLimits();
comp->getOSRCompilationData()->compressInstruction2SharedSlotMap();
}
if (comp->getOption(TR_TraceCG) || comp->getOptions()->getTraceCGOption(TR_TraceCGPostBinaryEncoding))
{
diagnostic("\nbuffer start = %8x, code start = %8x, buffer length = %d", cg->getBinaryBufferStart(), cg->getCodeStart(), cg->getEstimatedCodeLength());
diagnostic("\n");
const char * title = "Post Binary Instructions";
comp->getDebug()->dumpMethodInstrs(comp->getOutFile(), title, false, true);
traceMsg(comp,"<snippets>");
comp->getDebug()->print(comp->getOutFile(), cg->getSnippetList());
traceMsg(comp,"\n</snippets>\n");
auto iterator = cg->getSnippetList().begin();
int32_t estimatedSnippetStart = cg->getEstimatedSnippetStart();
while (iterator != cg->getSnippetList().end())
{
estimatedSnippetStart += (*iterator)->getLength(estimatedSnippetStart);
++iterator;
}
int32_t snippetLength = estimatedSnippetStart - cg->getEstimatedSnippetStart();
diagnostic("\nAmount of code memory allocated for this function = %d"
"\nAmount of code memory consumed for this function = %d"
"\nAmount of snippet code memory consumed for this function = %d\n\n",
cg->getEstimatedCodeLength(),
cg->getCodeLength(),
snippetLength);
}
}