[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