[llvm-dev] funnel shift, select, and poison (original) (raw)
John Regehr via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 25 12:08:54 PST 2019
- Previous message: [llvm-dev] funnel shift, select, and poison
- Next message: [llvm-dev] funnel shift, select, and poison
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [llvm-dev] funnel shift, select, and poison
- Next message: [llvm-dev] funnel shift, select, and poison
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]