LLVM は「ポイズン バリュー」という概念を導入していますが、これは私にはよくわかりません。たとえば、ステートメントの場合
%add = add nsw i32 %x, 1
%x+1
最大の i32 整数より厳密に大きい場合、任意の値が %add に割り当てられます。上記のステートメント、つまり %add = add nsw i32 %x, 1
は意味的に次のように記述できると主張するのは正しいですか?
if (%x+1) overflows then %add = undef else %add = add i32 %x,1
?