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


C++ ResolvedMethodSymbol::getFirstTreeTop方法代码示例

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


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

示例1: getRequiredMethodValidationRules

void TR::ILValidator::validate(const OMR::ILValidationStrategy *strategy)
   {
   /**
    * Selection Phase:
    *    From all the available `ILValidationRule`s, only select the ones
    *    corresponding to the given `OMR::ILValidationStrategy`.
    */
   std::vector<TR::MethodValidationRule *> reqMethodValidationRules =
      getRequiredMethodValidationRules(strategy);
   std::vector<TR::BlockValidationRule *> reqBlockValidationRules =
      getRequiredBlockValidationRules(strategy);
   std::vector<TR::NodeValidationRule *> reqNodeValidationRules =
      getRequiredNodeValidationRules(strategy);


   /**
    * Validation Phase:
    *    Validate against the required set of `ILValidationRule`s.
    */

   /* Rules that are veriified over the entire method. */
   TR::ResolvedMethodSymbol* methodSymbol = comp()->getMethodSymbol();
   for (auto it = reqMethodValidationRules.begin(); it != reqMethodValidationRules.end(); ++it)
      {
      (*it)->validate(methodSymbol);
      }

   /* Checks performed across an extended blocks. */
   for (auto it = reqBlockValidationRules.begin(); it != reqBlockValidationRules.end(); ++it)
      {
      TR::TreeTop *tt, *exitTreeTop;
      for (tt = methodSymbol->getFirstTreeTop(); tt; tt = exitTreeTop->getNextTreeTop())
         {
         TR::TreeTop *firstTreeTop = tt;
         exitTreeTop = tt->getExtendedBlockExitTreeTop();
         (*it)->validate(firstTreeTop, exitTreeTop);
         }
      }

   /* NodeValidationRules only check per node for a specific property. */
   for (auto it = reqNodeValidationRules.begin(); it != reqNodeValidationRules.end(); ++it)
      {
      for (TR::PreorderNodeIterator nodeIter(methodSymbol->getFirstTreeTop(), comp(), "NODE_VALIDATOR");
           nodeIter.currentTree(); ++nodeIter)
         {
         (*it)->validate(nodeIter.currentNode());
         }
      }
   }
开发者ID:LinHu2016,项目名称:omr,代码行数:49,代码来源:ILValidator.cpp


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