[all-commits] [llvm/llvm-project] cdbad6: [ADCE][NFC] Batch DT updates together
qcolombet via All-commits
all-commits at lists.llvm.org
Wed Jan 5 14:09:57 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: cdbad62c526c5b7e13f634b9d6bc54f2a01aabc0
https://github.com/llvm/llvm-project/commit/cdbad62c526c5b7e13f634b9d6bc54f2a01aabc0
Author: Quentin Colombet <qcolombet at apple.com>
Date: 2022-01-05 (Wed, 05 Jan 2022)
Changed paths:
M llvm/lib/Transforms/Scalar/ADCE.cpp
Log Message:
-----------
[ADCE][NFC] Batch DT updates together
This patch delayed the updates of the dominator tree to the very end of
the pass instead of doing that in small increments after each basic
block.
This improves the runtime of the pass in particular in pathological
cases because now the updater sees the full extend of the updates and
can decide whether it is faster to apply the changes incrementally or
just recompute the full tree from scratch.
Put differently, thanks to this patch, we can take advantage of the
improvements that Chijun Sima <simachijun at gmail.com> made in the
dominator tree updater a while ago with commit 32fd196cbf4d: "Teach the
DominatorTree fallback to recalculation when applying updates to speedup
JT (PR37929)".
This change is NFC but can improve the runtime of the compiler
dramatically in some pathological cases (where the pass was pushing a
lot (several thousands) of small updates (less than 6)).
For instance on the motivating example we went from 300+ sec to less
than a second.
Differential Revision: https://reviews.llvm.org/D116610
More information about the All-commits
mailing list