[llvm] [MachinePipeliner] Add an abstract layer to manipulate Data Dependenc… (PR #109918)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 27 12:59:01 PST 2024
================
@@ -1675,24 +1653,33 @@ void SwingSchedulerDAG::Circuits::createAdjacencyStructure(
OutputDeps[N] = BackEdge;
}
// Do not process a boundary node, an artificial node.
- // A back-edge is processed only if it goes to a Phi.
- if (SI.getSUnit()->isBoundaryNode() || SI.isArtificial() ||
- (SI.getKind() == SDep::Anti && !SI.getSUnit()->getInstr()->isPHI()))
+ if (OE.getDst()->isBoundaryNode() || OE.isArtificial())
+ continue;
+
+ // This code is retained o preserve previous behavior and prevent
+ // regression. This condition means that anti-dependnecies within an
+ // iteration are ignored when searching circuits. Therefore it's natural
+ // to consider this dependence as well.
+ // FIXME: Remove this code if it doesn't have significant impact on
+ // performance.
+ if (OE.isAntiDep())
----------------
aankit-ca wrote:
Do we need this check also from the old code `&& !SI.getSUnit()->getInstr()->isPHI()`
https://github.com/llvm/llvm-project/pull/109918
More information about the llvm-commits
mailing list