OSDN Git Service

[IRCE] Optimize conjunctions of range checks
authorSanjoy Das <sanjoy@playingwithpointers.com>
Thu, 26 May 2016 00:09:02 +0000 (00:09 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Thu, 26 May 2016 00:09:02 +0000 (00:09 +0000)
commit3985ce522244785949a9efdd66218f421d6b5732
treecda4f06dcaa62bfe87560981b4251e1d9ac4295d
parentf4219bd9f2884699b4fa3f5fd334b8a21da06913
[IRCE] Optimize conjunctions of range checks

After this change, we do the expected thing for cases like

```
Check0Passed = /* range check IRCE can optimize */
Check1Passed = /* range check IRCE can optimize */
if (!(Check0Passed && Check1Passed))
  throw_Exception();
```

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270804 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
test/Transforms/IRCE/conjunctive-checks.ll [new file with mode: 0644]