[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