[all-commits] [llvm/llvm-project] 64e768: [ValueTracking] Improve impliesPoison to look into...

Juneyoung Lee via All-commits all-commits at lists.llvm.org
Sat May 1 20:04:14 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 64e768e8162a3d32049ed5c38fd533beecb0c9af
      https://github.com/llvm/llvm-project/commit/64e768e8162a3d32049ed5c38fd533beecb0c9af
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-05-02 (Sun, 02 May 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/div-by-0-guard-before-smul_ov-not.ll
    M llvm/test/Transforms/InstCombine/div-by-0-guard-before-smul_ov.ll
    M llvm/test/Transforms/InstCombine/div-by-0-guard-before-umul_ov-not.ll
    M llvm/test/Transforms/InstCombine/div-by-0-guard-before-umul_ov.ll

  Log Message:
  -----------
  [ValueTracking] Improve impliesPoison to look into overflow intrinsics

This update supports the following transformation:

```
select(extract(mul_with_overflow(a, _), _), (a == 0), false)
=>
and(extract(mul_with_overflow(a, _), _), (a == 0))
```

which is correct because if `a` was poison the select's condition was
also poison.

This update is splitted from D101423.




More information about the All-commits mailing list