blob: d9449ad623e4d47779ab948ecd36157ac79e20dd [file] [log] [blame]
//===- 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