What if we try a variation on this. Im not even sure how I feel about
it since its even wonkier than what you suggest.
first, create a unique GV for each type, and implement a gatherer
definition. Instead of individual VMAYDEFS for 3 variables, we have a
gatherer which assigns them all to one g
To represent call-clobbering effects we currently collect all the
call-clobbered symbols and make every call a definition site for each of
them. For instance, given 3 global variables X, Y and Z:
foo()
{
X = 3
Y = 1
Z = X + 1
bar ()
Y = X + 2
return Y + Z
}
we put the three symbols in