Hi,

On Thu, Feb 17 2022, Erick Ochoa wrote:
> Thanks Martin!
>
> The example I showed is simplified and I had not specified that I was using
> LTO, but I am. Thanks for asking me to clarify this.
>
> The issue I have with the information in the Lattice section of the dump is
> that it shows the information once the analysis has achieved a fixed point.
> However, the example is a bit more complicated. There is a recursive call
> in bar and some pointer manipulation which will for sure remove the static
> information that the incoming parameter to bar is a multiple of 8.
>
> bar (void *a) {
>   // some pointer manipulation
>   a = // pointer manipulation based on a, casts to (char*) arithmetic...
>   bar (a);
> }
>
> However, I am mostly interested in the static information available at the
> callsite foo -> bar and not on the incoming static information available at
> the parameter "a" of bar. Does this make sense?
>
> Is there a place where I can look at the static information available at
> the argument and not the parameter?

If I understand you correctly, that is indeed the jump function,
obtainable through ipa_get_ith_jump_func (args, i) where args is a
result of ipa_edge_args_sum->get and i is the index of the parameter.

Martin

Reply via email to