[llvm] [DomTreeUpdater] Move critical edge splitting code to updater (PR #115111)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 10 06:05:47 PST 2024
================
@@ -229,57 +246,58 @@ GenericDomTreeUpdater<DerivedT, DomTreeT, PostDomTreeT>::dump() const {
}
OS << "Pending DeletedBBs:\n";
- Index = 0;
- for (const auto *BB : DeletedBBs) {
+ for (auto [Index, BB] : enumerate(DeletedBBs)) {
OS << " " << Index << " : ";
- ++Index;
if (BB->hasName())
OS << BB->getName() << "(";
else
- OS << "(no_name)(";
+ OS << "(no name)(";
OS << BB << ")\n";
}
#endif
}
template <typename DerivedT, typename DomTreeT, typename PostDomTreeT>
+template <bool IsForward>
void GenericDomTreeUpdater<DerivedT, DomTreeT,
- PostDomTreeT>::applyDomTreeUpdates() {
+ PostDomTreeT>::applyUpdatesImpl() {
+ auto *DomTree = [&]() {
+ if constexpr (IsForward)
+ return DT;
+ else
----------------
paperchalice wrote:
Unfortunately the type of dominator tree and post dominator tree are different, this ensures compiler can deduce correct type.
https://github.com/llvm/llvm-project/pull/115111
More information about the llvm-commits
mailing list