[llvm-dev] funnel shift, select, and poison (original) (raw)
Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 25 10:42:42 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 ]
On 2/25/2019 12:28 PM, John Regehr via llvm-dev wrote:
Poison has to propagate through calls and loads/stores, or else basically nothing works.
Consider this:
%v0 = call i32 @foo(poison) nounwind/readnone store i32 %v0, i32* %valid_address
If we assume that poison propagates through calls, we could then optimize this to
%v0 = poison store poison, i32* %valid_address
If we somehow realized that foo is
define i32 @foo(i32) { ret i32 0 }
then the resulting code would be different.
-Krzysztof
- 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 ]