Open Quuxplusone opened 5 years ago
Attached adce.ll
(2568 bytes, text/plain): reduced test case
This might come from the iteration over a SmallPtrSet.
More precisely:
class AggressiveDeadCodeElimination {
…
SmallPtrSet<BasicBlock *, 16> BlocksWithDeadTerminators;
…
};
void AggressiveDeadCodeElimination::updateDeadRegions() {
…
for (auto *BB : BlocksWithDeadTerminators) {
…
makeUnconditional(BB, PreferredSucc->BB);
…
}
...
}
Might try replacing it with a SmallSetVector?
Seems plausible & worth an experiment.
As far as I got was that the textual IR difference is minimal - just in the
predecessor list:
29c29
< bb9: ; preds = %bb8, %bb7
---
> bb9: ; preds = %bb7, %bb8
adce.ll
(2568 bytes, text/plain)