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

John Regehr via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 25 12:08:54 PST 2019


> I'm in favor of a set of simple rules regarding the propagation of 
> poison, so I lean towards the "one answer" you proposed in the first 
> email, i.e.
> 
>  > One answer might be "only select and phi stop poison"
> 
> except augmented to include calls and invokes.

This is already explicit and clear in the LangRef:

- Function arguments depend on the corresponding actual argument values 
in the dynamic callers of their functions.

- Call instructions depend on the ret instructions that dynamically 
transfer control back to them.

- Invoke instructions depend on the ret, resume, or exception-throwing 
call instructions that dynamically transfer control back to them.

See https://llvm.org/docs/LangRef.html#poison-values

John



More information about the llvm-dev mailing list