> -----Original Message-----
> From: Peng Zhao [mailto:pengzhao@xxxxxxxxxxxxxx]
> Sent: Wednesday, August 22, 2001 2:25 PM
> To: sgi
> Subject: some questions
>
>
> Hi,
>
> Following are some questions about whirltree and symbol table.
>
> 1. what is the difference between WN_PARM_BY_REFERENCE &
> WN_PARM_BY_VALUE? I found that it doesnot necessarily use BY_REFERENCE
F90 can have reference parm
> when Pro64 want to generate a "pointer" parameter. I got this opinion
> by checking the dumped whirl tree.
>
> e.g. from InnerProduct(&a);
> we get:
>
> U8LDA [[0]] <2,3,a> T<30,anon_ptr.,8>
> U8PARM #2 T<30,anon_ptr.,8> # by_value
> VCALL #126 <1,21,InnerProduct> # flags 0x7e
>
> the parameter is "by_value" instead of "by-reference"
>
> 2. From the "WHIRL SYMBOL TABLE SPECIFICATION", " in a nested
> procedure, three ST_TABs are visible: its own local ST_TAB, the parent
> PU's ST_TAB and the global ST_TAB". Can somebody explain me
> why the parent
> PU's ST_TAB should be visible to the nested function?
Again, F90 typed nested function
>
> 3. What is the difference between STR_TAB & TCON_STR_TAB? the
> document mentions there difference in terms of
> null-terminatation. But I
> still cannot see the point? why we need the same thing with
> two styles?
>
> 4. Is there any possibility that a function is placed
> dis-contiguously in the final executable (use jmp to connect
> the control
> flow)?
This is a function of the code generator cabability. In general, yes, there
is nothing against that. One needs to be careful about exception handling
and stack unwinding when you put out debug info for stack tracing.
Sun
|