I committed the new immarg attribute in r355981. All intrinsic definitions should be updated to mark parameters which are required to be simple constants. As of r356144, all of the in tree intrinsics which I’m aware of should be accurate. At the moment this isn’t required for correctness, but will be in the future. Once https://reviews.llvm.org/D58233 is committed, passes will be allowed to replace intrinsic call arguments with variables if they are not marked as immarg.