[llvm-dev] a tagged architecture, the elephant in the undef / poison room

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 16 08:36:37 PDT 2017


On 6/16/2017 10:01 AM, Peter Lawrence via llvm-dev wrote:
> “Poison” is an attribute of a “value”, not a “value” itself.
> 
> “Poison” is an analysis result, and we should think about implementing it as such,
> just like we do constant and range analysis.

You can think of poison as of just an extra element added to the type 
(e.g. to the set represented by i32 or i1). Only freezing it will 
replace it with something concrete such that if x is poison then 
freeze(x) == freeze(x), etc.

Why do you insist on treating it as an attribute? It's more like NaN for 
floating point: "not a value".

-Krzysztof

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation


More information about the llvm-dev mailing list