summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mca
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2018-04-04 05:46:47 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2018-04-04 05:46:47 +0000
commit613af1f7caed6a2a91f6c4ea46c3f9671ae30614 (patch)
tree2c1d20e36f2aca1215619ae787d5d70db37ddcaf /llvm/tools/llvm-mca
parentc18fe4cf41f852082920e5c99aeeeddcb6551842 (diff)
downloadbcm5719-llvm-613af1f7caed6a2a91f6c4ea46c3f9671ae30614.tar.gz
bcm5719-llvm-613af1f7caed6a2a91f6c4ea46c3f9671ae30614.zip
[SCEV] Prove implications for SCEVUnknown Phis
This patch teaches SCEV how to prove implications for SCEVUnknown nodes that are Phis. If we need to prove `Pred` for `LHS, RHS`, and `LHS` is a Phi with possible incoming values `L1, L2, ..., LN`, then if we prove `Pred` for `(L1, RHS), (L2, RHS), ..., (LN, RHS)` then we can also prove it for `(LHS, RHS)`. If both `LHS` and `RHS` are Phis from the same block, it is sufficient to prove the predicate for values that come from the same predecessor block. The typical case that it handles is that we sometimes need to prove that `Phi(Len, Len - 1) >= 0` given that `Len > 0`. The new logic was added to `isImpliedViaOperations` and only uses it and non-recursive reasoning to prove the facts we need, so it should not hurt compile time a lot. Differential Revision: https://reviews.llvm.org/D44001 Reviewed By: anna llvm-svn: 329150
Diffstat (limited to 'llvm/tools/llvm-mca')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud