SSA identifiers

Jakub Jelinek jakub@redhat.com
Thu Jun 27 18:48:00 GMT 2013


On Thu, Jun 27, 2013 at 02:25:21PM -0400, Andrew MacLeod wrote:
> I'm doing some trial file conversions to my proposed wrapper
> classes,  I'm seeing a couple of places which aren't mapping
> properly (they triggered compile errors),  and I think its  because
> there is a couple of bugs regarding  the use of IDENTIFIERS in
> ssanames..   (I wasn't even aware you could have non-var_decls...)
> so this is just a sanity check :-)

If ssa_name.var is IDENTIFIER_NODE, it is just like ssa_name.var == NULL,
i.e. anonymous SSA_NAME, just that in the dumps it is given some name
and not just _NNN.

> in tree-ssanames.c:release_ssa_names() :
> 
> if (! SSA_NAME_IN_FREE_LIST (var))
>     {
>       tree saved_ssa_name_var = SSA_NAME_VAR (var);
>       int saved_ssa_name_version = SSA_NAME_VERSION (var);
>       use_operand_p imm = &(SSA_NAME_IMM_USE_NODE (var));
> <..>
> /* Hopefully this can go away once we have the new incremental
>          SSA updating code installed.  */
>       SET_SSA_NAME_VAR_OR_IDENTIFIER (var, saved_ssa_name_var);

I don't see a big issue with this, sure, you could
tree saved_ssa_name_identifier = saved_ssa_name_var ? saved_ssa_name_var : SSA_NAME_IDENTIFIER (var);
and use that instead in SET_SSA_NAME_VAR_OR_IDENTIFIER.

	Jakub



More information about the Gcc-patches mailing list