aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2021-03-08 08:52:12 -0500
committerSanjay Patel <spatel@rotateright.com>2021-03-08 08:53:59 -0500
commitf75b5305f4def4973027a9b96fb3f1e50ce056e3 (patch)
tree9950eeed6bc52c548c7d7de567440bbfbc66b89a /llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
parenta093942c287501484481384dd03686ffaa5fc98e (diff)
downloadllvm-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