On Fri, Apr 5, 2024 at 1:59 PM Pierrick Philippe <pierrick.phili...@irisa.fr> wrote: > > Hi all, > > I do have a question regarding ssa_name and result_decl. > > For example on the following gimple function: > > int f () > { > int x; > int D.2747; > int _2; > > <bb 2> : > x_1 = 42; > _2 = x_1; > > <bb 3> : > <L0>: > return _2; > > } > > On the above example, using the macro SSA_NAME_VAR() on _2 does not > yield anything usable. > Neither to call ssa_default_def() on the result of the result_decl > obtain through macro DECL_RESULT(). > > Is there a way to get the ssa_name corresponding to the result_decl of a > function obtained through the use of macro DECL_RESULT() on a fn_decl? > And/or the other way around? I.e., from the returned ssa_name of a > function to the result_decl of that function? > > I totally might be missing something here, but I cannot figure out what.
DECL_RESULT isn't always used (as in your example). Not all SSA names have corresponding declarations, we have "anonymous" SSA names which have a NULL_TREE SSA_NAME_VAR (such as the _2 in your example). What do you try to find in the end? If you want to find all returns you can walk predecessors of EXIT_BLOCK and look at their last stmt whether they are greturn statements. Richard. > Thanks for your time, > > Pierrick >