On Sun, Sep 25, 2011 at 12:25 PM, Jan Hubicka <hubi...@ucw.cz> wrote: >> >> You don't care for a NULL get_base_address return in the other >> place you added it. I think you should instead bail out on a >> NULL return from said. >> >> Note that get_base_address will not strip things down to an >> SSA name pointer but will return a MEM[ptr, offset] for that. >> But I suppose unmodified_parm / ipa_get_parm_decl_index >> already cares for that (dereference of argument)? > > I am not (yet) tracking values passed by reference. We do not have jump > functions for these, so there is limited use for it until Martin adds them. > > So basically I need to track the SSA names, the cases where scalar variable is > not in SSA because its address is taken. (i.e. parm_decl alone) and the > accesses into aggregates that are parameters. I.e. param.field or param[0]. > > Except for first case where I already have SSA name, I should end > up with get_base_address returning the actual PARM_DECL, right?
Yes. > The reason why I am not checking for NULL return is that the code first > verifies that it understand all the parameters and then it starts building the > predicates (to avoid adding contions that won't be used at the end). > So we know get_base_address will return non-NULL. So why check in the 2nd case? > Thanks for comments! > Honza >