[llvm-dev] RFC: Killing undef and spreading poison (original) (raw)
Sanjoy Das via llvm-dev llvm-dev at lists.llvm.org
Thu Oct 20 14:05:57 PDT 2016
- Previous message: [llvm-dev] RFC: Killing undef and spreading poison
- Next message: [llvm-dev] RFC: Killing undef and spreading poison
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Krzysztof,
Krzysztof Parzyszek wrote:
In both of these cases, the expression tree in the IR is going to look like == (freeze(%x), freeze(%x))
The %a and %b are just labels on values, which are defined in the exact same way. How do you differentiate these two?
freeze is an llvm::Instruction. You'd differentiate them the same way you'd differentiate
%a = load i32, i32* @global call void @foo() %b = load i32, i32* @global print(%a == %b)
from
%a = load i32, i32* @global %b = %a ;; alias these somehow call void @foo() print(%a == %b)
freeze won't be a operator, so you won't have a FreezeConstantExpr etc.
If %a = freeze(%x), is %a+1 == %a+1?
Yes.
-- Sanjoy
- Previous message: [llvm-dev] RFC: Killing undef and spreading poison
- Next message: [llvm-dev] RFC: Killing undef and spreading poison
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]