I found that a few methods in CallBase return the value of attributes
attached to the call instruction without looking into the attributes
in the called function's declaration.
This causes sub-optimal results in some places.
For example, Value::getPointerDereferenceableBytes is calling
CallBase::getDereferenceableBytes which does not look into
dereferenceable attributes at the function declaration.
If the declaration had larger dereferenceable attribute value, this
results in a sub-optimal result.
To address this, I added 'CallSiteOnly' flag and updated such users to set this flag to false to get better result.