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