blockfreq: Move PackagedLoopData above WorkingData

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206854 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith 2014-04-22 03:31:25 +00:00
parent 2c3c821fe5
commit df1956a475

View File

@ -937,6 +937,27 @@ public:
uint64_t Integer;
};
/// \brief Data for a packaged loop.
///
/// Contains the data necessary to represent represent a loop as a node once
/// it's packaged.
///
/// PackagedLoopData inherits from BlockData to give the node the necessary
/// stats. Further, it has a list of successors, list of members, and stores
/// the backedge mass assigned to this loop.
struct PackagedLoopData {
typedef SmallVector<std::pair<BlockNode, BlockMass>, 4> ExitMap;
typedef SmallVector<BlockNode, 4> MemberList;
BlockNode Header; ///< Header.
ExitMap Exits; ///< Successor edges (and weights).
MemberList Members; ///< Members of the loop.
BlockMass BackedgeMass; ///< Mass returned to loop header.
BlockMass Mass;
Float Scale;
PackagedLoopData(const BlockNode &Header) : Header(Header) {}
};
/// \brief Index of loop information.
struct WorkingData {
BlockNode ContainingLoop; ///< The block whose loop this block is inside.
@ -1016,27 +1037,6 @@ public:
void add(const BlockNode &Node, uint64_t Amount, Weight::DistType Type);
};
/// \brief Data for a packaged loop.
///
/// Contains the data necessary to represent represent a loop as a node once
/// it's packaged.
///
/// PackagedLoopData inherits from BlockData to give the node the necessary
/// stats. Further, it has a list of successors, list of members, and stores
/// the backedge mass assigned to this loop.
struct PackagedLoopData {
typedef SmallVector<std::pair<BlockNode, BlockMass>, 4> ExitMap;
typedef SmallVector<BlockNode, 4> MemberList;
BlockNode Header; ///< Header.
ExitMap Exits; ///< Successor edges (and weights).
MemberList Members; ///< Members of the loop.
BlockMass BackedgeMass; ///< Mass returned to loop header.
BlockMass Mass;
Float Scale;
PackagedLoopData(const BlockNode &Header) : Header(Header) {}
};
/// \brief Data about each block. This is used downstream.
std::vector<FrequencyData> Freqs;