We weren't looking through the parameters on calls at all.
E.g., say you had
declare i32 @zext(i32 zeroext %x) ... %y = call i32 @zext(i32 %something) ...
At the point of the call, we wouldn't know that %something should have the zeroext attribute.
This sets flags in about the same way as TargetLoweringBase::ArgListEntry::setAttributes.