Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | InstCombine: Fix crash on icmp of gep with addrspacecasted null | Matt Arsenault | 2019-09-05 | 1 | -0/+28 |
| | | | | llvm-svn: 371146 | ||||
* | [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null ↵ | Philip Reames | 2019-08-26 | 1 | -7/+5 |
| | | | | | | | | | | for vectors Extend the transform introduced in https://reviews.llvm.org/D66608 to work for vector geps as well. Differential Revision: https://reviews.llvm.org/D66671 llvm-svn: 369949 | ||||
* | Fix a bug in just submitted rL369789 | Philip Reames | 2019-08-23 | 1 | -0/+26 |
| | | | | | | | | Started implementing the vector case and realized the scalar case hadn't handled the GEP producing a different type than the base correctly. It's entertaining seeing what slips through review when we're focused on the 'hard' parts. :( Also adding an extra vector test as it happened to be in workspace and wasn't worth separating. llvm-svn: 369795 | ||||
* | [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null | Philip Reames | 2019-08-23 | 1 | -0/+184 |
This generalizes the isGEPKnownNonNull rule from ValueTracking to apply when we do not know if the base is non-null, and thus need to replace one condition with another. The core notion is that since an inbounds GEP can only form null if the base pointer is null and the offset is zero. However, if the offset is non-zero, the the "inbounds" marker makes the result poison. Thus, we're free to ignore the case where the offset is non-zero. Similarly, there's no case under which a non-null base can result in a null result without generating poison. Differential Revision: https://reviews.llvm.org/D66608 llvm-svn: 369789 |