================
@@ -1030,6 +1036,11 @@ bool MachineBlockPlacement::isTrellis(
SmallPtrSet<const MachineBasicBlock *, 8> SeenPreds;
for (MachineBasicBlock *Succ : ViableSuccs) {
+ // Compile-time optimization: runtime is quadratic in the number of
+ // predecessors. For such uncommon cases, exit early.
+ if (Succ->pred_size() > PredecessorLimit)
----------------
spupyrev wrote:
Just to confirm I understand correctly: you have an example of (generated) IR
where the runtime is large without the diff and is much smaller with the
proposed change?
(I'm not familiar with this function but I don't see where quadratic complexity
is.)
https://github.com/llvm/llvm-project/pull/142584
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits