RFR: JDK-8213489: GC/C2 abstraction for Compile::final_graph_reshaping()
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Nov 7 20:07:08 UTC 2018
Next
+ assert(n->is_Mem(), "");
+ MemNode* mem = (MemNode*)n;
could be replaced with
+ MemNode* mem = n->as_Mem();
I don't see removal of moved ZGC code in Compile::final_graph_reshaping_impl()
Why you skip only assert and not whole switch() (or return) ? Do you want to process some nodes
twice: by GC first and then in main switch?
May be pass nop (opcode) to final_graph_reshaping() too to avoid virtual call Opcode() there.
Thanks,
Vladimir
On 11/7/18 9:00 AM, Roman Kennke wrote:
> GCs might want to do something to nodes in
> Compile::final_graph_reshaping(). Let's put an abstraction in this place.
>
> The way I did it was to put a call into
> BSC2::final_graph_reshaping(Compile*, Node*) in front of the huge switch
> and let the caller know if the node was handled or not. This is
> subsequently checked in the default-branch: if GC handled it, the
> asserts are not checked. This should provide the exact same behaviour
> that we have now, only better and nicer.
>
> I also took the opportunity and moved the ZGC related parts there to
> ZBarrierSetC2.
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8213489
> Webrev:
> http://cr.openjdk.java.net/~rkennke/JDK-8213489/webrev.00/
>
> Testing: hotspot/jtreg:tier1 passes
>
> Thoughts? Reviews?
>
> Roman
>
More information about the hotspot-compiler-dev
mailing list