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]

Re: Calls.c code permutation patch take2


On Fri, May 05, 2000 at 02:02:20PM +0200, Jan Hubicka wrote:
> 	* calls.c (expand_call): Reorganize somewhat in order
> 	to avoid unnecesary recalculation inside loop and make
> 	tail call failure code cleaner.

It appears as if currently_expanding_call is now incremented too late.
In particular, after we expand the libcall to __bb_fork_func.

> + 	 Also do not make a sibling call.  */
> + 
> +       flags &= ~(ECF_CONST | ECF_PURE);
> +       must_preallocate = 1;

Should move the "do not make a sibling call" comment, as it's now
confusing here.

> + 	  /* We need to build actparms for optimize_tail_recursion.  We can
> + 	     safely trash away TREE_PURPOSE, since it is unused by this
> + 	     function.  */
> + 	  if (try_tail_call)
> + 	    actparms = tree_cons (NULL_TREE, args[i].tree_value, actparms);

I don't see actparms cleared first.  Plus, why only tail_call
and not tail_recursion as well?

>   	  /* Various reasons we can not use a sibling call.  */
> ! 	  if (! try_tail_call)
>   	    continue;

The comment is somewhat out of date here.  ;-)



r~

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