aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2022-03-03 08:48:25 -0500
committerSanjay Patel <spatel@rotateright.com>2022-03-03 09:25:46 -0500
commite9302bf7efc70a26cfa620ffaa614dc70cdb0259 (patch)
tree576bac2ab730de2a2fe90b0af004c9fc20c0b34b /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parentd3c16be9845410666bea479f8989414e40e44bfa (diff)
downloadllvm-e9302bf7efc70a26cfa620ffaa614dc70cdb0259.zip
llvm-e9302bf7efc70a26cfa620ffaa614dc70cdb0259.tar.gz
llvm-e9302bf7efc70a26cfa620ffaa614dc70cdb0259.tar.bz2
[SDAG] try harder to remove a rotate from X == 0
https://alive2.llvm.org/ce/z/mJP7XP This can be viewed as expanding the compare into and/or-of-compares: https://alive2.llvm.org/ce/z/bkZYWE followed by reduction of each compare. This could be extended in several ways: 1. There's a (X & Y) == -1 sibling. 2. We can recurse through more than 1 'or'. 3. The fold could be generalized beyond rotates - any operation that only changes the order of bits (bswap, bitreverse). This is a transform noted in D111530.
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions