@@ -72,22 +72,22 @@ inline var_types genActualType(T value);
72
72
* Forward declarations
73
73
*/
74
74
75
- struct InfoHdr ; // defined in GCInfo.h
76
- struct escapeMapping_t ; // defined in fgdiagnostic.cpp
77
- class emitter ; // defined in emit.h
78
- struct ShadowParamVarInfo ; // defined in GSChecks.cpp
79
- struct InitVarDscInfo ; // defined in registerargconvention.h
80
- class FgStack ; // defined in fgbasic.cpp
81
- class Instrumentor ; // defined in fgprofile.cpp
82
- class SpanningTreeVisitor ; // defined in fgprofile.cpp
83
- class CSE_DataFlow ; // defined in optcse.cpp
84
- struct CSEdsc ; // defined in optcse.h
85
- class CSE_HeuristicCommon ; // defined in optcse.h
86
- class OptBoolsDsc ; // defined in optimizer.cpp
87
- struct JumpThreadInfo ; // defined in redundantbranchopts.cpp
88
- class ProfileSynthesis ; // defined in profilesynthesis.h
89
- class LoopLocalOccurrences ; // defined in inductionvariableopts.cpp
90
- class RangeCheck ; // defined in rangecheck.h
75
+ struct InfoHdr ; // defined in GCInfo.h
76
+ struct escapeMapping_t ; // defined in fgdiagnostic.cpp
77
+ class emitter ; // defined in emit.h
78
+ struct ShadowParamVarInfo ; // defined in GSChecks.cpp
79
+ struct InitVarDscInfo ; // defined in registerargconvention.h
80
+ class FgStack ; // defined in fgbasic.cpp
81
+ class Instrumentor ; // defined in fgprofile.cpp
82
+ class SpanningTreeVisitor ; // defined in fgprofile.cpp
83
+ class CSE_DataFlow ; // defined in optcse.cpp
84
+ struct CSEdsc ; // defined in optcse.h
85
+ class CSE_HeuristicCommon ; // defined in optcse.h
86
+ class OptBoolsDsc ; // defined in optimizer.cpp
87
+ struct JumpThreadInfo ; // defined in redundantbranchopts.cpp
88
+ class ProfileSynthesis ; // defined in profilesynthesis.h
89
+ class PerLoopInfo ; // defined in inductionvariableopts.cpp
90
+ class RangeCheck ; // defined in rangecheck.h
91
91
#ifdef DEBUG
92
92
struct IndentStack ;
93
93
#endif
@@ -7654,33 +7654,30 @@ class Compiler
7654
7654
void optVisitBoundingExitingCondBlocks (FlowGraphNaturalLoop* loop, TFunctor func);
7655
7655
bool optMakeLoopDownwardsCounted (ScalarEvolutionContext& scevContext,
7656
7656
FlowGraphNaturalLoop* loop,
7657
- LoopLocalOccurrences* loopLocals);
7657
+ PerLoopInfo* loopLocals);
7658
7658
bool optMakeExitTestDownwardsCounted (ScalarEvolutionContext& scevContext,
7659
7659
FlowGraphNaturalLoop* loop,
7660
7660
BasicBlock* exiting,
7661
- LoopLocalOccurrences* loopLocals);
7661
+ PerLoopInfo* loopLocals);
7662
7662
bool optCanAndShouldChangeExitTest (GenTree* cond, bool dump);
7663
- bool optLocalHasNonLoopUses (unsigned lclNum, FlowGraphNaturalLoop* loop, LoopLocalOccurrences * loopLocals);
7663
+ bool optLocalHasNonLoopUses (unsigned lclNum, FlowGraphNaturalLoop* loop, PerLoopInfo * loopLocals);
7664
7664
bool optLocalIsLiveIntoBlock (unsigned lclNum, BasicBlock* block);
7665
7665
7666
- bool optWidenIVs (ScalarEvolutionContext& scevContext, FlowGraphNaturalLoop* loop, LoopLocalOccurrences* loopLocals);
7667
- bool optWidenPrimaryIV (FlowGraphNaturalLoop* loop,
7668
- unsigned lclNum,
7669
- ScevAddRec* addRec,
7670
- LoopLocalOccurrences* loopLocals);
7666
+ bool optWidenIVs (ScalarEvolutionContext& scevContext, FlowGraphNaturalLoop* loop, PerLoopInfo* loopLocals);
7667
+ bool optWidenPrimaryIV (FlowGraphNaturalLoop* loop, unsigned lclNum, ScevAddRec* addRec, PerLoopInfo* loopLocals);
7671
7668
7672
7669
bool optCanSinkWidenedIV (unsigned lclNum, FlowGraphNaturalLoop* loop);
7673
7670
bool optIsIVWideningProfitable (unsigned lclNum,
7674
7671
BasicBlock* initBlock,
7675
7672
bool initedToConstant,
7676
7673
FlowGraphNaturalLoop* loop,
7677
- LoopLocalOccurrences* loopLocals);
7674
+ PerLoopInfo* loopLocals);
7678
7675
void optBestEffortReplaceNarrowIVUses (
7679
7676
unsigned lclNum, unsigned ssaNum, unsigned newLclNum, BasicBlock* block, Statement* firstStmt);
7680
7677
void optReplaceWidenedIV (unsigned lclNum, unsigned ssaNum, unsigned newLclNum, Statement* stmt);
7681
7678
void optSinkWidenedIV (unsigned lclNum, unsigned newLclNum, FlowGraphNaturalLoop* loop);
7682
7679
7683
- bool optRemoveUnusedIVs (FlowGraphNaturalLoop* loop, LoopLocalOccurrences * loopLocals);
7680
+ bool optRemoveUnusedIVs (FlowGraphNaturalLoop* loop, PerLoopInfo * loopLocals);
7684
7681
bool optIsUpdateOfIVWithoutSideEffects (GenTree* tree, unsigned lclNum);
7685
7682
7686
7683
// Redundant branch opts
0 commit comments