Skip to content

Commit 89e9bf3

Browse files
committed
Shared: Fix this bad join on neovim:
``` Pipeline standard for RangeAnalysisImpl::ConstantStage::boundedPhiRankStep/8#99a39015@cc6f89w5 was evaluated in 8990 iterations totaling 85259ms (delta sizes total: 721932). 685940 ~0% {9} r1 = SCAN `RangeAnalysisImpl::ConstantStage::boundedPhiRankStep/8#99a39015#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, In.6, _, In.7 685940 ~0% {8} | REWRITE WITH Tmp.7 := 1, Out.7 := (Tmp.7 + In.8) KEEPING 8 2160316026 ~1% {10} | JOIN WITH `RangeAnalysisImpl::ConstantStage::boundedPhiCandValidForEdge/9#17e05352#prev` ON FIRST 7 OUTPUT Lhs.0, Rhs.7, Rhs.8, Lhs.7, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6 613801 ~7% {8} | JOIN WITH `RangeUtils::MakeUtils<SemanticLocation::SemLocation,RangeAnalysisImpl::Sem,FloatDelta::FloatDelta>::rankedPhiInput/4#d3c444f0` ON FIRST 4 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.9, Lhs.3 44172265 ~0% {9} r2 = SCAN `RangeAnalysisImpl::ConstantStage::boundedPhiCandValidForEdge/9#17e05352#prev_delta` OUTPUT In.0, In.7, In.8, In.1, In.2, In.3, In.4, In.5, In.6 44172265 ~0% {9} r3 = JOIN r2 WITH `RangeUtils::MakeUtils<SemanticLocation::SemLocation,RangeAnalysisImpl::Sem,FloatDelta::FloatDelta>::rankedPhiInput/4#d3c444f0` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, _, Rhs.3 44172265 ~0% {9} | REWRITE WITH Tmp.7 := 1, Out.7 := (InOut.8 - Tmp.7) 4135 ~0% {8} | JOIN WITH `RangeAnalysisImpl::ConstantStage::boundedPhiRankStep/8#99a39015#prev` ON FIRST 8 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.8 44172265 ~0% {11} r4 = JOIN r2 WITH `RangeUtils::MakeUtils<SemanticLocation::SemLocation,RangeAnalysisImpl::Sem,FloatDelta::FloatDelta>::rankedPhiInput/4#d3c444f0` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.1, Lhs.2, Rhs.3, _ {10} | REWRITE WITH Tmp.10 := 1, TEST InOut.9 = Tmp.10 KEEPING 10 119942 ~16% {10} | SCAN OUTPUT In.0, In.7, In.8, _, In.1, In.2, In.3, In.4, In.5, In.6 119942 ~17% {10} | REWRITE WITH Out.3 := 1 119942 ~24% {8} | JOIN WITH `RangeUtils::MakeUtils<SemanticLocation::SemLocation,RangeAnalysisImpl::Sem,FloatDelta::FloatDelta>::rankedPhiInput/4#d3c444f0` ON FIRST 4 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.9, _ 119942 ~22% {8} | REWRITE WITH Out.7 := 1 737878 ~9% {8} r5 = r1 UNION r3 UNION r4 721932 ~6% {8} | AND NOT `RangeAnalysisImpl::ConstantStage::boundedPhiRankStep/8#99a39015#prev`(FIRST 8) return r5 ```
1 parent b4c979f commit 89e9bf3

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,8 @@ module RangeStage<
10451045
D::Delta origdelta, SemReason reason, int rix
10461046
) {
10471047
exists(Sem::SsaVariable inp, SsaReadPositionPhiInputEdge edge |
1048-
rankedPhiInput(phi, inp, edge, rix) and
1048+
rankedPhiInput(pragma[only_bind_into](phi), pragma[only_bind_into](inp),
1049+
pragma[only_bind_into](edge), rix) and
10491050
boundedPhiCandValidForEdge(phi, b, delta, upper, fromBackEdge, origdelta, reason, inp, edge)
10501051
|
10511052
rix = 1

0 commit comments

Comments
 (0)