[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