当前位置: 首页>>代码示例>>C++>>正文


C++ iterator::dump方法代码示例

本文整理汇总了C++中function::iterator::dump方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::dump方法的具体用法?C++ iterator::dump怎么用?C++ iterator::dump使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在function::iterator的用法示例。


在下文中一共展示了iterator::dump方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: runOnFunction

// MemCpyOpt::runOnFunction - This is the main transformation entry point for a
// function.
//
bool AggregateGlobalOpsOpt::runOnFunction(Function &F) {
  bool MadeChange = false;
  bool DebugThis = DEBUG;
  
  if( debugThisFn[0] && F.getName() == debugThisFn ) {
    DebugThis = true;
  }

  //MD = &getAnalysis<MemoryDependenceAnalysis>();
#if HAVE_LLVM_VER >= 37
  TD = & F.getParent()->getDataLayout();
#elif HAVE_LLVM_VER >= 35
  TD = & getAnalysisIfAvailable<DataLayoutPass>()->getDataLayout();
#else
  TD = getAnalysisIfAvailable<DataLayout>();
#endif
  //TLI = &getAnalysis<TargetLibraryInfo>();

  // Walk all instruction in the function.
  for (Function::iterator BB = F.begin(), BBE = F.end(); BB != BBE; ++BB) {
    if( DebugThis ) {
      errs() << "Working on BB ";
      BB->dump();
    }

    for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE;) {
      // Avoid invalidating the iterator.
      Instruction *I = BI++;

      if( isGlobalLoadOrStore(I, globalSpace, true, true) ) {
        Instruction* lastAdded = tryAggregating(I, getLoadStorePointer(I), DebugThis);
        if( lastAdded ) {
          MadeChange = true;
          BI = lastAdded;
        }
      }
    }

    if( DebugThis && MadeChange ) {
      errs() << "After transform BB is ";
      BB->dump();
    }

  }

  if( extraChecks ) {
#if HAVE_LLVM_VER >= 35
    assert(!verifyFunction(F, &errs()));
#else
    verifyFunction(F);
#endif
  }

  //MD = 0;
  return MadeChange;
}
开发者ID:AbheekG,项目名称:chapel,代码行数:59,代码来源:llvmAggregateGlobalOps.cpp


注:本文中的function::iterator::dump方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。