[all-commits] [llvm/llvm-project] 1bf8f9: [SimplifyCFG] use profile metadata to refine mergi...
RotateRight via All-commits
all-commits at lists.llvm.org
Tue Mar 23 07:21:19 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 1bf8f9e228546bd54ef9739aa808b71b97ea6051
https://github.com/llvm/llvm-project/commit/1bf8f9e228546bd54ef9739aa808b71b97ea6051
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2021-03-23 (Tue, 23 Mar 2021)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/LoopSimplify/merge-exits.ll
M llvm/test/Transforms/PGOProfile/chr.ll
M llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
Log Message:
-----------
[SimplifyCFG] use profile metadata to refine merging branch conditions
2nd try (original: 27ae17a6b014) with fix/test for crash. We must make
sure that TTI is available before trying to use it because it is not
required (might be another bug).
Original commit message:
This is one step towards solving:
https://llvm.org/PR49336
In that example, we disregard the recommended usage of builtin_expect,
so an expensive (unpredictable) branch is folded into another branch
that is guarding it.
Here, we read the profile metadata to see if the 1st (predecessor)
condition is likely to cause execution to bypass the 2nd (successor)
condition before merging conditions by using logic ops.
Differential Revision: https://reviews.llvm.org/D98898
More information about the All-commits
mailing list