@@ -7857,14 +7857,23 @@ class Compiler
78577857
78587858 // Redundant branch opts
78597859 //
7860- PhaseStatus optRedundantBranches();
7861- bool optRedundantRelop(BasicBlock* const block);
7862- bool optRedundantDominatingBranch(BasicBlock* const block);
7863- bool optRedundantBranch(BasicBlock* const block);
7864- bool optJumpThreadDom(BasicBlock* const block, BasicBlock* const domBlock, bool domIsSameRelop);
7865- bool optJumpThreadPhi(BasicBlock* const block, GenTree* tree, ValueNum treeNormVN);
7866- bool optJumpThreadCheck(BasicBlock* const block, BasicBlock* const domBlock);
7867- bool optJumpThreadCore(JumpThreadInfo& jti);
7860+ enum class JumpThreadCheckResult
7861+ {
7862+ CannotThread,
7863+ CanThread,
7864+ NeedsPhiUseResolution,
7865+ };
7866+
7867+ PhaseStatus optRedundantBranches();
7868+ bool optRedundantRelop(BasicBlock* const block);
7869+ bool optRedundantDominatingBranch(BasicBlock* const block);
7870+ bool optRedundantBranch(BasicBlock* const block);
7871+ bool optJumpThreadDom(BasicBlock* const block, BasicBlock* const domBlock, bool domIsSameRelop);
7872+ bool optJumpThreadPhi(BasicBlock* const block, GenTree* tree, ValueNum treeNormVN);
7873+ JumpThreadCheckResult optJumpThreadCheck(BasicBlock* const block, BasicBlock* const domBlock);
7874+ bool optFindPhiUsesInBlockAndSuccessors(BasicBlock* block, GenTreeLclVar* phiDef, JumpThreadInfo& jti);
7875+ bool optCanRewritePhiUses(JumpThreadInfo& jti);
7876+ bool optJumpThreadCore(JumpThreadInfo& jti);
78687877
78697878 enum class ReachabilityResult
78707879 {
0 commit comments