tree level aliasing and call clobber

Andrew Pinski pinskia@physics.uc.edu
Sun Dec 25 23:08:00 GMT 2005


I noticed that if I try not to mark a variable as escaping, we don't 
get the function
call to have V_MAY_DEF for that variable.

For an example in this Fortran code:
function i()
INTEGER :: i
INTEGER :: t
call f(t)
t = 2;
call g()
if (t .ne. 2) then
   call abort ()
end if
i = t
end function


t cannot escape from the function as the variable is not marked as a 
TARGET.
Is there a way to mark the function call for f as clobbering t but not 
escaping?
Or do I have to modify tree-ssa-operands code to do it correctly?

PS I attached the patch which I am currently working on to make the 
variable as not
being call clobbered.  I use an attribute instead of a bit in the 
decls' structure
since it seems only to happen for Fortran code.

Thanks,
Andrew Pinski

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: startfortranalias.diff.txt
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20051225/366f6394/attachment.txt>


More information about the Gcc mailing list