diff options
author | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-05-19 22:55:46 +0000 |
---|---|---|
committer | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-05-19 22:55:46 +0000 |
commit | 4dace2a82eb4e16b2c46b19c8f47544bbb8e6a17 (patch) | |
tree | 8fd1a296d42d6696dbaf47d5bf300d5821de0408 /include | |
parent | a499216ab69d00b42e8044bf74e83d9d6cacde98 (diff) |
[GuardWidening] Introduce range check merging
Sequences of range checks expressed using guards, like
guard((I - 2) u< L)
guard((I - 1) u< L)
guard((I + 0) u< L)
guard((I + 1) u< L)
guard((I + 2) u< L)
can sometimes be combined into a smaller sequence:
guard((I - 2) u< L AND (I + 2) u< L)
if we can prove that (I - 2) u< L AND (I + 2) u< L implies all of checks
expressed in the previous sequence.
This change teaches GuardWidening to do this kind of merging when
feasible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270151 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions