[fortran patch] Don't use TREE_LISTs for storing arguments to intrinsic functions

Brooks Moses brooks.moses@codesourcery.com
Tue May 8 06:56:00 GMT 2007


FX Coudert wrote:
>> This patch modifies the handing of intrinsic functions to not use a
>> TREE_LIST for storing the arguments to instead use a stack allocated
>> array and use the new CALL_EXPR constructors.
> 
> It might be a stupid question, but what is the benefit of this new  
> approach? It doesn't look to me like TREE_LIST are very expensive to  
> build, and we're duplicating information a bit by writing the number  
> of arguments in multiple places (in the array declaration, as  
> argument to gfc_conv_intrinsic_function_args, as argument to  
> build_call_expr).

As Steve guessed, this is largely with the intent of bringing the 
Fortran front end into conformance with other front ends.  You may 
recall the "CALL_EXPR representation changes" patch from February:
   http://gcc.gnu.org/ml/gcc-patches/2007-02/msg00911.html

This is a follow-up to that, continuing the process of replacing the 
TREE_LIST-based constructors of CALL_EXPR objects with new forms that 
use arrays of arguments (thereby mirroring the new internal 
representation of the CALL_EXPR objects).  In particular, it addresses 
the following comment that was added at the head of this file:

> -/* FIXME: This function and its callers should be rewritten so that it's
> -   not necessary to cons up a list to hold the arguments.  */

I've also cc'ed Sandra, in case she'd like to comment further on why 
this is useful, and why she added that comment.  :)

- Brooks



More information about the Fortran mailing list