aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/LoopAccessAnalysis.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2021-03-23 12:20:04 -0700
committerCraig Topper <craig.topper@sifive.com>2021-03-23 12:42:18 -0700
commit4c38c35c8d846a3ca1409f17eea776d15bcbcd4e (patch)
treeb40524f56a252f9ce109158e596eaa9f78b85c79 /llvm/lib/Analysis/LoopAccessAnalysis.cpp
parent72728e12806ae4f85c7ab79b92f2d1c20981d596 (diff)
downloadllvm-4c38c35c8d846a3ca1409f17eea776d15bcbcd4e.zip
llvm-4c38c35c8d846a3ca1409f17eea776d15bcbcd4e.tar.gz
llvm-4c38c35c8d846a3ca1409f17eea776d15bcbcd4e.tar.bz2
[ValueTracking] Teach canCreateUndefOrPoison that ctpop does not create undef or poison.
This select of ctpop with 0 pattern can get left behind after loop idiom recognize converts a loop to ctpop. LLVM 10 was able to optimize this, but LLVM 11 and later is not. The difference seems to be that some select transforms are now limited based on canCreateUndefOrPoison. Teaching canCreateUndefOrPoison about ctpop restores the LLVM 10 codegen. Differential Revision: https://reviews.llvm.org/D99207
Diffstat (limited to 'llvm/lib/Analysis/LoopAccessAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions