Index: src/IceCfg.h |
diff --git a/src/IceCfg.h b/src/IceCfg.h |
index 490d1d065d7c46b0c5cd6abc59d5d9190a7047f6..3fdc808543c6e3d88d3194d228cb92ebad127451 100644 |
--- a/src/IceCfg.h |
+++ b/src/IceCfg.h |
@@ -22,6 +22,7 @@ |
#include "IceGlobalContext.h" |
#include "IceStringPool.h" |
#include "IceTypes.h" |
+#include "IceLoopAnalyzer.h" |
Jim Stichnoth
2016/07/15 22:14:33
alphabetize includes if possible
manasijm
2016/07/18 22:27:46
Done.
|
namespace Ice { |
@@ -301,7 +302,8 @@ private: |
uint32_t CombinedAlignment, InstList &Insts, |
AllocaBaseVariableType BaseVariableType); |
void findRematerializable(); |
- CfgVector<Inst *> findLoopInvariantInstructions(SizeT LoopHeaderIndex); |
+ CfgVector<Inst *> |
+ findLoopInvariantInstructions(const CfgUnorderedSet<SizeT> &Body); |
GlobalContext *Ctx; |
uint32_t SequenceNumber; /// output order for emission |
@@ -332,12 +334,12 @@ private: |
/// Globals required by this CFG. Mostly used for the profiler's globals. |
std::unique_ptr<VariableDeclarationList> GlobalInits; |
CfgVector<InstJumpTable *> JumpTables; |
- CfgUnorderedMap<SizeT, CfgVector<SizeT>> LoopInfo; |
/// CurrentNode is maintained during dumping/emitting just for validating |
/// Variable::DefNode. Normally, a traversal over CfgNodes maintains this, but |
/// before global operations like register allocation, resetCurrentNode() |
/// should be called to avoid spurious validation failures. |
const CfgNode *CurrentNode = nullptr; |
+ LoopAnalyzer::LoopInfo Loops; |
public: |
static void TlsInit() { CfgAllocatorTraits::init(); } |