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


C++ const_succ_iterator::getLatency方法代码示例

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


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

示例1: dumpAll

void SUnit::dumpAll(const ScheduleDAG *G) const {
  dump(G);

  dbgs() << "  # preds left       : " << NumPredsLeft << "\n";
  dbgs() << "  # succs left       : " << NumSuccsLeft << "\n";
  if (WeakPredsLeft)
    dbgs() << "  # weak preds left  : " << WeakPredsLeft << "\n";
  if (WeakSuccsLeft)
    dbgs() << "  # weak succs left  : " << WeakSuccsLeft << "\n";
  dbgs() << "  # rdefs left       : " << NumRegDefsLeft << "\n";
  dbgs() << "  Latency            : " << Latency << "\n";
  dbgs() << "  Depth              : " << getDepth() << "\n";
  dbgs() << "  Height             : " << getHeight() << "\n";

  if (Preds.size() != 0) {
    dbgs() << "  Predecessors:\n";
    for (SUnit::const_succ_iterator I = Preds.begin(), E = Preds.end();
         I != E; ++I) {
      dbgs() << "   ";
      switch (I->getKind()) {
      case SDep::Data:        dbgs() << "val "; break;
      case SDep::Anti:        dbgs() << "anti"; break;
      case SDep::Output:      dbgs() << "out "; break;
      case SDep::Order:       dbgs() << "ch  "; break;
      }
      dbgs() << "SU(" << I->getSUnit()->NodeNum << ")";
      if (I->isArtificial())
        dbgs() << " *";
      dbgs() << ": Latency=" << I->getLatency();
      if (I->isAssignedRegDep())
        dbgs() << " Reg=" << PrintReg(I->getReg(), G->TRI);
      dbgs() << "\n";
    }
  }
  if (Succs.size() != 0) {
    dbgs() << "  Successors:\n";
    for (SUnit::const_succ_iterator I = Succs.begin(), E = Succs.end();
         I != E; ++I) {
      dbgs() << "   ";
      switch (I->getKind()) {
      case SDep::Data:        dbgs() << "val "; break;
      case SDep::Anti:        dbgs() << "anti"; break;
      case SDep::Output:      dbgs() << "out "; break;
      case SDep::Order:       dbgs() << "ch  "; break;
      }
      dbgs() << "SU(" << I->getSUnit()->NodeNum << ")";
      if (I->isArtificial())
        dbgs() << " *";
      dbgs() << ": Latency=" << I->getLatency();
      if (I->isAssignedRegDep())
        dbgs() << " Reg=" << PrintReg(I->getReg(), G->TRI);
      dbgs() << "\n";
    }
  }
}
开发者ID:JosephTremoulet,项目名称:llvm,代码行数:55,代码来源:ScheduleDAG.cpp

示例2: dumpAll

void SUnit::dumpAll(const ScheduleDAG *G) const {
  dump(G);

  errs() << "  # preds left       : " << NumPredsLeft << "\n";
  errs() << "  # succs left       : " << NumSuccsLeft << "\n";
  errs() << "  Latency            : " << Latency << "\n";
  errs() << "  Depth              : " << Depth << "\n";
  errs() << "  Height             : " << Height << "\n";

  if (Preds.size() != 0) {
    errs() << "  Predecessors:\n";
    for (SUnit::const_succ_iterator I = Preds.begin(), E = Preds.end();
         I != E; ++I) {
      errs() << "   ";
      switch (I->getKind()) {
      case SDep::Data:        errs() << "val "; break;
      case SDep::Anti:        errs() << "anti"; break;
      case SDep::Output:      errs() << "out "; break;
      case SDep::Order:       errs() << "ch  "; break;
      }
      errs() << "#";
      errs() << I->getSUnit() << " - SU(" << I->getSUnit()->NodeNum << ")";
      if (I->isArtificial())
        errs() << " *";
      errs() << ": Latency=" << I->getLatency();
      errs() << "\n";
    }
  }
  if (Succs.size() != 0) {
    errs() << "  Successors:\n";
    for (SUnit::const_succ_iterator I = Succs.begin(), E = Succs.end();
         I != E; ++I) {
      errs() << "   ";
      switch (I->getKind()) {
      case SDep::Data:        errs() << "val "; break;
      case SDep::Anti:        errs() << "anti"; break;
      case SDep::Output:      errs() << "out "; break;
      case SDep::Order:       errs() << "ch  "; break;
      }
      errs() << "#";
      errs() << I->getSUnit() << " - SU(" << I->getSUnit()->NodeNum << ")";
      if (I->isArtificial())
        errs() << " *";
      errs() << ": Latency=" << I->getLatency();
      errs() << "\n";
    }
  }
  errs() << "\n";
}
开发者ID:Root-nix,项目名称:symbolic-execution,代码行数:49,代码来源:ScheduleDAG.cpp

示例3: ComputeHeight

/// ComputeHeight - Calculate the maximal path from the node to the entry.
///
void SUnit::ComputeHeight() {
  SmallVector<SUnit*, 8> WorkList;
  WorkList.push_back(this);
  do {
    SUnit *Cur = WorkList.back();

    bool Done = true;
    unsigned MaxSuccHeight = 0;
    for (SUnit::const_succ_iterator I = Cur->Succs.begin(),
         E = Cur->Succs.end(); I != E; ++I) {
      SUnit *SuccSU = I->getSUnit();
      if (SuccSU->isHeightCurrent)
        MaxSuccHeight = std::max(MaxSuccHeight,
                                 SuccSU->Height + I->getLatency());
      else {
        Done = false;
        WorkList.push_back(SuccSU);
      }
    }

    if (Done) {
      WorkList.pop_back();
      if (MaxSuccHeight != Cur->Height) {
        Cur->setHeightDirty();
        Cur->Height = MaxSuccHeight;
      }
      Cur->isHeightCurrent = true;
    }
  } while (!WorkList.empty());
}
开发者ID:Abocer,项目名称:android-4.2_r1,代码行数:32,代码来源:ScheduleDAG.cpp


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