ssahasra wrote: > SimplifyCFG's foldCondBranchOnValueKnownInPredecessor can thread an edge past > a block that acts as a reconvergence point. If the threaded destination > reaches an uncontrolled convergent operation before returning to the > threaded-through block, the transform can change which dynamic instance of > the convergent operation is executed.
"thread an edge past a block" and "threaded-through block" mean the same thing, right? How does control return to a threaded-through block? The lit test demonstrate a situation where a reducible cycle gets replaced by an irreducible cycle, which is bad if that cycle contains a convergent operation. But the description seems to imply that the situation does not depend on the presence of cycles. Does that mean that the same fix is required when a structured DAG becomes unstructured? https://github.com/llvm/llvm-project/pull/204958 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
