summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/MemorySSAUpdater.cpp
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2019-06-17 18:40:06 +0000
committerJessica Paquette <jpaquette@apple.com>2019-06-17 18:40:06 +0000
commit49537bbf74a68c44d32e51f15080500ce994f1fc (patch)
tree68284a6e347e728650d12da2242b46ef94159634 /llvm/lib/Analysis/MemorySSAUpdater.cpp
parentf3f968adcd5988ddb818a37c80cc7d7a131ccc18 (diff)
downloadbcm5719-llvm-49537bbf74a68c44d32e51f15080500ce994f1fc.tar.gz
bcm5719-llvm-49537bbf74a68c44d32e51f15080500ce994f1fc.zip
[GlobalISel][AArch64] Fold G_SUB into G_ICMP when it's safe to do so
Basically porting over the behaviour in AArch64ISelLowering to GISel. See emitComparison for reference. When we have something like this: ``` lhs = G_SUB 0, y ... G_ICMP lhs, rhs ``` We can fold away the G_SUB and produce a cmn instead, given that we produce the same value in NZCV. Add a test showing that the transformation works, and also showing that we don't perform the transformation when it's unsafe. Also factor out the CSet emission into emitCSetForICMP. Differential Revision: https://reviews.llvm.org/D63163 llvm-svn: 363596
Diffstat (limited to 'llvm/lib/Analysis/MemorySSAUpdater.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud