This is the mail archive of the gcc@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] reaching def. question



On Mar 16, 2004, at 1:47 PM, Diego Novillo wrote:


On Tue, 2004-03-16 at 16:39, Devang Patel wrote:
How do I find out reaching definitions of 'a' at statement S1?

S1: a = b;

What I want to know is whether S1 is defining 'a' first time
or killing earlier def of 'a'. compute_reaching_defs () is not
yet implemented. Is there any other alternative API?

compute_reaching_defs() wouldn't help you.  There are no uses of 'a' in
S1.

You need to do a dominator walk and stop when you find the first
definition.  But, there can be more than one:

	if (...)
	   a = b;
	else
	   a = c;

Both defs to 'a' are defininig 'a' for the "first time".  Besides, in
our current framework.  Every definition is a different variable.

What are you trying to solve?

during if-conversion


S1: a_1 = x;
S2: if (...)
S3:   a_2 = b;

Now, to if-convert S3, I need to know if a_2 is first def. of variable 'a'
or not. Based on that info I can replace S3 with


S3: MODIFY_EXPR <a_2, COND_EXPR < c, b, a_1>>

OR

S3: MODIFY_EXPR <a_2, COND_EXPR < c, b, NULL>>

--
Devang


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