The flag will be used for the arm64e work we plan to upstream in the future (see https://lists.llvm.org/pipermail/llvm-dev/2019-October/136091.html). Passing KnownNonNull_t::True allows clang to avoid emitting null checks on arm64e. Currently the flag has no effect on code generation on other targets.
This is the first patch and there are many more places where KnownNonNull_t::True can be passed. I plan to fix those places in future patches.
The usual idiom for this kind of boolean enum is that you just use an unscoped enum (not enum class), and you spell the enumerators something that reads well where it'll be used. So you'd make the enumerators KnownNotNull and (I guess) something like NotKnownNotNull or NullnessUnknown.