RFR (S): 8058880: Introduce identifier TEMP_DEF for effects in adl.

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Tue Sep 30 07:37:45 UTC 2014


HI David, 

thanks for pushing it!  

Best regards,
  Goetz.

-----Original Message-----
From: David Chase [mailto:david.r.chase at oracle.com] 
Sent: Montag, 29. September 2014 13:56
To: Lindenmaier, Goetz
Cc: hotspot-compiler-dev at openjdk.java.net
Subject: Re: RFR (S): 8058880: Introduce identifier TEMP_DEF for effects in adl.

* PGP Signed by an unknown key

I can do the push.

A question from a small-R reviewer - this is not yet tested, and your most-likely test case
would be on PPC, yes?  Otherwise, it looks reasonable to me, and I can start the push in
an hour or so.

David

On 2014-09-29, at 3:28 AM, Lindenmaier, Goetz <goetz.lindenmaier at sap.com> wrote:

> Hi,
>  
> could I please get a second review?  I also please need a sponsor!
>  
> Best regards,
>   Goetz.
>  
> From: Lindenmaier, Goetz 
> Sent: Montag, 22. September 2014 15:18
> To: hotspot-compiler-dev at openjdk.java.net
> Subject: RFR (S): 8058880: Introduce identifier TEMP_DEF for effects in adl.
>  
> Hi,
>  
> this change introduces a new identifier in adl:
> http://cr.openjdk.java.net/~goetz/webrevs/8058880-tempDef/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8058880
>  
> Please review this change.  I please need a sponsor.
>  
> This effect is similar to USE_DEF, except that a TEMP node will be generated
> that represents the USE.
>  
> With this effect one can express that the def'ed register must be
> different from the used ones corresponding to ins. Currently this is
> already possible by specifying effect TEMP for the operand with effect
> DEF from the match rule. 
>  
> Introducing this new identifier makes the code more readable and
> allows to specify the effect for nodes without match rules.
>  
> An example is an optimized encode node, if the base of the compressed heap
> is 35G aligned, i.e., the shifted narrow oop can be merged with the base by
> an or instruction.
> On PPC we can shift and or with a single instruction:
>  
> decodeN(dst, src):
>  
> mov    Rdst = Rbase
> rldimi Rdst = Rdst || (Rsrc << 3)
>  
> As the move is off the critical path, this is superior to do a shift and an add.
> Unfortunately we must guarantee that Rdst != Rsrc. which we do with a TEMP_DEF effect:
>  
> instruct decodeN(iRegPdst dst, iRegNsrc src) %{
>   match(Set dst (DecodeN src));
>   effect(TEMP_DEF dst);
>  
> As requested before, I fixed the syntax in the code around my change.
>  
> Thanks and best regards,
>   Goetz.


* Unknown Key
* 0xFC801C2A


More information about the hotspot-compiler-dev mailing list