diff options
author | Jessica Paquette <jpaquette@apple.com> | 2019-06-17 18:40:06 +0000 |
---|---|---|
committer | Jessica Paquette <jpaquette@apple.com> | 2019-06-17 18:40:06 +0000 |
commit | 49537bbf74a68c44d32e51f15080500ce994f1fc (patch) | |
tree | 68284a6e347e728650d12da2242b46ef94159634 /llvm/lib/Analysis/MemorySSAUpdater.cpp | |
parent | f3f968adcd5988ddb818a37c80cc7d7a131ccc18 (diff) | |
download | bcm5719-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