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

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Mon Sep 29 12:20:29 UTC 2014

Hi David,

thanks for sponsoring this change!

The change only affects adlc and should not have any effect on 
the Oracle platforms.
I tested it with my own tests on ppc and the other platforms.
In a later change I will contribute the corresponding changes
to the ppc .ad file. 
So it's tested, but I can not run the tests you officially need to 
push it into the repos.

Best regards,

-----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.


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