This is an archive of the discontinued LLVM Phabricator instance.

[ValueTracking] A value is never undef or poison if it must raise UB
ClosedPublic

Authored by aqjune on Feb 28 2020, 8:11 PM.

Details

Summary

This patch helps isGuaranteedNotToBeUndefOrPoison return true if the value
makes the program always undefined.

According to value tracking functions' comments, it is not still in consensus
whether a poison value can be bitwise or not, so conservatively only the case with
i1 is considered.

Diff Detail

Event Timeline

aqjune created this revision.Feb 28 2020, 8:11 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 28 2020, 8:12 PM
uenoku added a subscriber: uenoku.Feb 28 2020, 8:51 PM
nlopes accepted this revision.Feb 29 2020, 9:05 AM

LGTM

This revision is now accepted and ready to land.Feb 29 2020, 9:05 AM
This revision was automatically updated to reflect the committed changes.