This patch adds a builtin that returns a non deterministic value of the same type as the argument.
Example:
int x = __builtin_nondeterministic_value(x);
Which is then lowered to freeze(poison).
This is a continuation of the work done in https://reviews.llvm.org/D136737, following the provided feedback.
Not a fan of the name in general, it doesn't really explain what is happening. Perhaps __builtin_nondeterministic_value or something?
I also wonder if others might have a better name :)