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