This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa]: PRE updates



On Wednesday, June 11, 2003, at 10:04 AM, Andrew MacLeod wrote:


On Wed, 2003-06-11 at 09:49, Diego Novillo wrote:
On Wed, 2003-06-11 at 09:27, Andrew MacLeod wrote:

SO the code you are looking at above created thge a_5 PHI stmt... Its
a_5 I am creating the var_ann for, because I just created it out of thin
air.


But wait, var_ann(a_5) *must* be the same as var_ann(a_4) which is
var_ann(a).  SSA_NAMEs do not have annotations, their associated
VAR_DECLs do.  So, if you are only creating a new SSA_NAME for a
VAR_DECL that has been referenced already, then that VAR_DECL should
already have an annotation.

So, I still wonder why VAR_DECL 'a' didn't have an annotation.  It
should.


Maybe it did, I didnt try dan's test case, just looked at the line numbner and the line number in my file, and said 'ah ha'. So maybe its something else. we'll have to actually look closer.

Dan, whats the line in your source code that is failing, and if its in
that hunk, whats the PHi node? the one I just created?


I was about to say.
The place in *my* source it's failing on is:
/* Assign root variable as partition representative for each live on entry
partition. */
EXECUTE_IF_SET_IN_SBITMAP (live, 0, x,
{
var = root_var (rv, find_root_var (rv, x));
ann = var_ann (var);
/* If these aren't already coalesced... */
if (partition_to_var (map, x) != var)
{
if (ann->out_of_ssa_tag)
{
/* This root variable has already been assigned to another
partition which is not coalesced with this one. */
abort ();
}


	  if (tree_ssa_dump_file && (tree_ssa_dump_flags & TDF_DETAILS))
	    {
	      fprintf (tree_ssa_dump_file, "Must coalesce ");
	      print_generic_expr (tree_ssa_dump_file,
				  partition_to_var (map, x),
				  TDF_SLIM);
	      fprintf (tree_ssa_dump_file, " with the root variable ");
	      print_generic_expr (tree_ssa_dump_file, var, TDF_SLIM);
	      fprintf (tree_ssa_dump_file, ".\n");
	    }

	  change_partition_var (map, var, x);
	}
    });

(inside the macro, so it gets tagged as the end of the macro).

There is only one abort in this code, so i assume that's it.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]