| //===- 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 |