diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2018-07-16 12:44:10 +0000 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2018-07-16 12:44:10 +0000 |
commit | de506632aaf9722b270d4ff29b323da893a92800 (patch) | |
tree | e87f0a9b10045977fe6c3ca0c8560112c39f0bd0 /clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp | |
parent | 92a700a215ae940fc2cad41c3a28eed5c38a76b0 (diff) | |
download | bcm5719-llvm-de506632aaf9722b270d4ff29b323da893a92800.tar.gz bcm5719-llvm-de506632aaf9722b270d4ff29b323da893a92800.zip |
[X86][AArch64][DAGCombine] Unfold 'check for [no] signed truncation' pattern
Summary:
[[ https://bugs.llvm.org/show_bug.cgi?id=38149 | PR38149 ]]
As discussed in https://reviews.llvm.org/D49179#1158957 and later,
the IR for 'check for [no] signed truncation' pattern can be improved:
https://rise4fun.com/Alive/gBf
^ that pattern will be produced by Implicit Integer Truncation sanitizer,
https://reviews.llvm.org/D48958 https://bugs.llvm.org/show_bug.cgi?id=21530
in signed case, therefore it is probably a good idea to improve it.
But the IR-optimal patter does not lower efficiently, so we want to undo it..
This handles the simple pattern.
There is a second pattern with predicate and constants inverted.
NOTE: we do not check uses here. we always do the transform.
Reviewers: spatel, craig.topper, RKSimon, javed.absar
Reviewed By: spatel
Subscribers: kristof.beyls, llvm-commits
Differential Revision: https://reviews.llvm.org/D49266
llvm-svn: 337166
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp')
0 files changed, 0 insertions, 0 deletions