[llvm-dev] funnel shift, select, and poison

John Regehr via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 25 11:35:57 PST 2019


> A typical analysis of a function will either see a call or the inlined 
> body. If "call(poison)" cannot be assumed to be a poison, then a call 
> effectively stops the propagation of a poison.

Sorry that I was unclear.

What I am trying to say is that calls and returns (like loads and 
stores) are transparent with respect to poison.

It is definitely unsound to assume call(poison) == poison, because not 
every function returns a value that is poison-dependent on the 
function's arguments.

John



More information about the llvm-dev mailing list