|  | //===- subzero/src/IceLoopAnalyzer.h - Loop Analysis ------------*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | /// | 
|  | /// \file | 
|  | /// \brief This analysis identifies loops in the CFG. | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef SUBZERO_SRC_ICELOOPANALYZER_H | 
|  | #define SUBZERO_SRC_ICELOOPANALYZER_H | 
|  |  | 
|  | #include "IceDefs.h" | 
|  |  | 
|  | namespace Ice { | 
|  |  | 
|  | struct Loop { | 
|  | Loop(CfgNode *Header, CfgNode *PreHeader, CfgUnorderedSet<SizeT> Body) | 
|  | : Header(Header), PreHeader(PreHeader), Body(Body) {} | 
|  | CfgNode *Header; | 
|  | CfgNode *PreHeader; | 
|  | CfgUnorderedSet<SizeT> Body; // Node IDs | 
|  | }; | 
|  |  | 
|  | CfgVector<Loop> ComputeLoopInfo(Cfg *Func); | 
|  |  | 
|  | } // end of namespace Ice | 
|  |  | 
|  | #endif //  SUBZERO_SRC_ICELOOPANALYZER_H |