 Chromium Code Reviews
 Chromium Code Reviews Issue 2149803005:
  Subzero: Improve LoopAnalyzer Interface  (Closed) 
  Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
    
  
    Issue 2149803005:
  Subzero: Improve LoopAnalyzer Interface  (Closed) 
  Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master| 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(); } |