There was a patch https://reviews.llvm.org/D22981 that deals with how CFLAnders interacts with values it hasn't seen before. In that patch the workaround is to let getAttrs() return AttrUnknown when newly created values are queried on.
However, the aforementioned workaround fails to work for queries of the form mayAlias(L, N), where L is marked AttrNone and N is created after CFLAnders has executed. The sound was to handle the situation is to let the may-alias query return true (since N may be of the form "bitcast L to ...", "gep L, ...", etc.), but our current implementation will always return false because AttrNone values never may-alias AttrUnknown values.
This patch separate the new-value checks and attribute checks, so that soundness issues mentioned in the previous paragraph will not happen.