[all-commits] [llvm/llvm-project] d0907c: [LoopUnroll] Directly update DT instead of DTU.
Florian Hahn via All-commits
all-commits at lists.llvm.org
Thu Jan 19 10:12:22 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d0907ce7ed9f159562ca3f4cfd8d87e89e93febe
https://github.com/llvm/llvm-project/commit/d0907ce7ed9f159562ca3f4cfd8d87e89e93febe
Author: Florian Hahn <flo at fhahn.com>
Date: 2023-01-19 (Thu, 19 Jan 2023)
Changed paths:
M llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
Log Message:
-----------
[LoopUnroll] Directly update DT instead of DTU.
The scope of DT updates are very limited when unrolling loops: the DT
should only need updating for
* new blocks added
* exiting blocks we simplified branches
This can be done manually without too much extra work.
MergeBlockIntoPredecessor also needs to be updated to support direct
DT updates.
This fixes excessive time spent in DTU for same cases. In an internal
example, time spent in LoopUnroll with this patch goes from ~200s to 2s.
It also is slightly positive for CTMark:
* NewPM-O3: -0.13%
* NewPM-ReleaseThinLTO: -0.11%
* NewPM-ReleaseLTO-g: -0.13%
Notable improvements are mafft (~ -0.50%) and lencod (~ -0.30%), with no
workload regressed.
https://llvm-compile-time-tracker.com/compare.php?from=78a9ee7834331fb4360457cc565fa36f5452f7e0&to=687e08d011b0dc6d3edd223612761e44225c7537&stat=instructions:u
Reviewed By: kuhar
Differential Revision: https://reviews.llvm.org/D141487
More information about the All-commits
mailing list