[patch, fortran] make fortran dumps more readable

Paul Richard Thomas paul.richard.thomas@gmail.com
Wed Nov 3 12:18:00 GMT 2010


Dear Thomas,

> OK for trunk if regression-testing turns up nothing (which is really to
> be expected)?

I think that the regression testing is almost unnecessary and that you
can commit as obvious.

Namespace: A-H: (REAL 4) I-N: (INTEGER 4) O-Z: (REAL 4)
procedure name = ret_array_1
  symtree: 'a'           || symbol: 'a'
    type spec : (INTEGER 4)
    attributes: (VARIABLE  ALLOCATABLE DIMENSION)
    Array spec:(2 [0] AS_DEFERRED () () () () )
  symtree: 'abort'       || symbol: 'abort'
    type spec : (UNKNOWN 0)
    attributes: (PROCEDURE  SUBROUTINE)
  symtree: 'any'         || symbol: 'any'
    type spec : (REAL 4)
    attributes: (PROCEDURE  FUNCTION IMPLICIT-TYPE)
    result: any
  symtree: 'b'           || symbol: 'b'
    type spec : (INTEGER 4)
    attributes: (VARIABLE  DIMENSION)
    Array spec:(1 [0] AS_EXPLICIT 1 2 )
  symtree: 'my_transpose'|| symbol: 'my_transpose'
    type spec : (INTEGER 4)
    attributes: (PROCEDURE INTERNAL-PROC  DIMENSION FUNCTION)
    Array spec:(2 [0] AS_EXPLICIT 1
obfuscate[[((__ubound[[((my_transpose:x(FULL)) (2) ((arg
not-present)))]]))]] 1 obfuscate[[((__ubound[[((my_transpose:x(FULL))
(1) ((arg not-present)))]]))]] )
    result: r
    Formal arglist: x
  symtree: 'reshape'     || symbol: 'reshape'
    type spec : (REAL 4)
    attributes: (PROCEDURE  FUNCTION IMPLICIT-TYPE)
    result: reshape
  symtree: 'ret_array_1' || symbol: 'ret_array_1'
    type spec : (UNKNOWN 0)
    attributes: (PROGRAM PUBLIC  SUBROUTINE)
  symtree: 'sum'         || symbol: 'sum'
    type spec : (REAL 4)
    attributes: (PROCEDURE  FUNCTION IMPLICIT-TYPE)
    result: sum
  symtree: 'test'        || symbol: 'test'
    type spec : (UNKNOWN 0)
    attributes: (PROCEDURE INTERNAL-PROC  SUBROUTINE)
    Formal arglist: x n
  symtree: 'transpose'   || symbol: 'transpose'
    type spec : (REAL 4)
    attributes: (PROCEDURE  FUNCTION IMPLICIT-TYPE)
    result: transpose

is almost civilized, except for the one array_spec (for
'my_transpose').  Is there something that we can do with that?

I wonder if, for most users, a symbol table like the above is all that
is needed?  ie. introduce -fdump-symtrees that is the same as
-fdump-parse-tree but without the code?

I thought that you had forgotten about this patch :-)

Thanks

Paul

>
>        Thomas
>
> 2010-10-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
>            Paul Thomas  <pault@gcc.gnu.org>
>
>        * dump-parse-tree.c (code_indent):  Take label into acount
>        when calculating indent.
>        (show_typespec):  Also display class.
>        (show_attr):  Add module name to argument.
>        Don't show UNKNOWN for flavor, access and save. Don't show
>        SAVE_NONE.  Don't show INTENT_UNKNOWN.  Show module for use
>        association.  Show intent only for dummy arguments.
>        Set length of shown symbol names to minimum of 12.
>        Show attributes header.
>        (show_symbol):  Adjust show_level.
>        (show_symtree):  Clear up display for ambiguous.  Show if symbol
>        was imported from namespace.
>        (show_code_node):  Clear up indenting.  Traverse symtree and
>        show code directly instead of calling show_namespace.
>
>



-- 
The knack of flying is learning how to throw yourself at the ground and miss.
       --Hitchhikers Guide to the Galaxy



More information about the Fortran mailing list