RFR (M): 8030863: PPC64: (part 220): ConstantTableBase for calls between args and jvms
Lindenmaier, Goetz
goetz.lindenmaier at sap.com
Tue Dec 24 15:25:12 PST 2013
Hi Vladimir,
yes, I meant postalloc expand.
I was aware of the problem with jvms and build_oop_map, i.e.,
that you spoil build_oop_map if you add an edge and don't somehow
tell build_oop_map where to find the derived base pairs after that.
But as I replace the node by an other one without the edge during
postalloc expand, I figured I'd be safe. But, as regalloc added the
derived base edges behind the one I added, req()-1 pointed to the
last base edge, and I would have removed the wrong edge.
For the same reason, regalloc associated the register mask I
supplied for the ConstTableBase for the node at req()-1, again
the base edge of a derived/base pair.
So I need a fixed position, which is now between the args
and the edges for jvms.
Best regards,
Goetz.
-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
Sent: Monday, December 23, 2013 9:01 PM
To: Lindenmaier, Goetz; 'hotspot-dev at openjdk.java.net'; 'ppc-aix-port-dev at openjdk.java.net'
Subject: Re: RFR (M): 8030863: PPC64: (part 220): ConstantTableBase for calls between args and jvms
Goetz,
Can you explain the problem in details? When you say 'during expand' do
you mean 'during postalloc_expand'? Because normal expand happens during
matching. And I did not get how it is related to derived/base pairs.
Thanks,
Vladimir
On 12/20/13 7:20 AM, Lindenmaier, Goetz wrote:
> Hi,
>
> The change "8028580: PPC64 (part 114/120): Support for Call nodes with constants. "
> adds MachConstantBase node for Calls at req()-1 during
> expand. Register allocation adds the derived/base pairs and then
> uses the wrong register maps for allocation, because the MachConstantBase
> node is no more at req()-1
>
> Now add the edge in the matcher when the node is complete. Add it
> after parameters and before jvms. Adapt jvms offsets. Also assure
> jvms is always cloned, else the offset gets wrong.
>
> So far, $constanttablebase is only used in Calls on PPC, so this has no effect on
> other platforms.
>
> Please review and test this change.
> http://cr.openjdk.java.net/~goetz/webrevs/8030863-0-call/
>
> Best regards,
> Goetz.
>
More information about the ppc-aix-port-dev
mailing list