[ValueTracking] Add canCreateUndefOrPoison & let canCreatePoison use Operator
authorJuneyoung Lee <aqjune@gmail.com>
Sun, 19 Jul 2020 16:23:58 +0000 (01:23 +0900)
committerJuneyoung Lee <aqjune@gmail.com>
Sun, 19 Jul 2020 16:24:30 +0000 (01:24 +0900)
commit0a6aee51608df8502d1d20746d011b3024230c9a
treeeeb1e2eb5bfc033194a2a13815757815d14dfc78
parent89ff9bf061b4985d11cd4785958d8f8156d10f5d
[ValueTracking] Add canCreateUndefOrPoison & let canCreatePoison use Operator

This patch
- adds `canCreateUndefOrPoison`
- refactors `canCreatePoison` so it can deal with constantexprs

`canCreateUndefOrPoison` will be used at D83926.

Reviewed By: nikic, jdoerfert

Differential Revision: https://reviews.llvm.org/D84007
llvm/include/llvm/Analysis/ValueTracking.h
llvm/lib/Analysis/ValueTracking.cpp
llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp
llvm/unittests/Analysis/ValueTrackingTest.cpp