diff options
author | Sanjay Patel <spatel@rotateright.com> | 2021-03-08 08:52:12 -0500 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2021-03-08 08:53:59 -0500 |
commit | f75b5305f4def4973027a9b96fb3f1e50ce056e3 (patch) | |
tree | 9950eeed6bc52c548c7d7de567440bbfbc66b89a /llvm/lib/Transforms/Utils/LoopRotationUtils.cpp | |
parent | a093942c287501484481384dd03686ffaa5fc98e (diff) | |
download | llvm-f75b5305f4def4973027a9b96fb3f1e50ce056e3.zip llvm-f75b5305f4def4973027a9b96fb3f1e50ce056e3.tar.gz llvm-f75b5305f4def4973027a9b96fb3f1e50ce056e3.tar.bz2 |
[ConstantFold] allow folding icmp of null and constexpr
I noticed that we were not folding expressions like this:
icmp ult (constexpr), null
in https://llvm.org/PR49355, so we end up with extremely large
icmp instructions as the constant expressions pile up on each other.
There is no potential to mis-fold an unsigned boundary condition
with a zero/null, so this is just falling through a crack in the
pattern matching.
The more general case of comparisons of non-zero constants and
constexpr are more tricky and may require the datalayout to know
how to cast to different types, etc. Negative tests verify that
we are only changing a subset of potential patterns.
Differential Revision: https://reviews.llvm.org/D98150
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopRotationUtils.cpp')
0 files changed, 0 insertions, 0 deletions