RFR (S): 8024922: PPC64 (part 116): Extend adlc to generate fields into nodes.

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Sep 19 10:25:03 PDT 2013


Could you explain why you need _load_ic_*_node fields 
CallDynamicJavaDirect mach node? I am trying to understand if there is 
an other, already existing, way to do that. I am fine with these changes 
but I need to know why.

Thanks,
Vladimir

On 9/19/13 8:44 AM, Lindenmaier, Goetz wrote:
> Hi,
>
> We extended adlc by a feature that allows to specify fields of
>
> MachNodes.
>
> http://cr.openjdk.java.net/~goetz/webrevs/8024922-adlcFields/
>
> This is implemented according to the ins_xxx() functionality that
>
> allows to specify functions returning constants.  If you specify
>
> an ins_field_xxx(tp) in an instruct specification, a field _xxx
>
> with type tp is added to the node.
>
> You can see a usage of this feature in the ppc.ad file:
>
> http://hg.openjdk.java.net/ppc-aix-port/jdk8/hotspot/file/e6d09cebf92d/src/cpu/ppc/vm/ppc.ad
>
> E.g., on line 12928 you find the specification of _load_ic_hi_node:
>
>      12928 instruct CallDynamicJavaDirect__2(method meth) %{
>
>      12924   match(CallDynamicJava); // To get all the data fields we
> need ...
>
>      12925   effect(USE meth);
>
>      12926   predicate(false);       // ... but never match.
>
>      12927
>
>      12928   ins_field_load_ic_hi_node(exLoadConL_hiNode*);
>
> which is used on line 5098:
>
>       5098     {
>
>       5099       CallDynamicJavaDirect__2Node *m1 =
> (CallDynamicJavaDirect__2Node *)call;
>
>       5100       m1->_load_ic_hi_node = exLoadConLNodes_IC._large_hi;
>
>       5101       m1->_load_ic_node    = exLoadConLNodes_IC._small;
>
>       5102     }
>
> As with other ins_ attributes, a general declaration of the attribute is
> needed, see
>
> line 6565:
>
>       6565 ins_attrib ins_field_load_ic_hi_node(0);
>
> In adlc, we just had to change the output of nodes. Parsing of the ad file
>
> is not affected.
>
> This change only affects adlc. There should be no effects on the Oracle
>
> platforms, except if a closed platform happens to specify an attribute
>
> with the name prefix ins_field_.
>
> Please review and test this change.
>
> Best regards,
>
>    Goetz.
>


More information about the ppc-aix-port-dev mailing list