RFR: 8252505: C1/C2 compiler support for blackholes [v11]

Vladimir Ivanov vlivanov at openjdk.java.net
Wed Dec 2 12:14:56 UTC 2020


On Tue, 1 Dec 2020 15:52:59 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> src/hotspot/share/opto/machnode.cpp line 817:
>> 
>>> 815: void MachCallBlackholeNode::dump_spec(outputStream *st) const {
>>> 816:   st->print("Blackhole ");
>>> 817:   MachCallNode::dump_spec(st);
>> 
>> How does the output look like? It would be nice to have the info what are the values being consumed and where they are located.
>
> I am not sure what takes this path. I modeled this after other `MachCall*Node`-s, by delegating to `MachCallNode`, plus the type message. I thought that would be enough to dump the superclass-call-specific spec.

`Node::dump()` eventually calls it. Also, IGV collects and shows it (thought it's trimmed right now). 
There's no flag to dump Mach IR except `-XX:+PrintOptoAssembly`, but it shows different info.
Thinking more about it, I don't see much benefit in improving `MachCallBlackholeNode::dump()` since it lacks some important information.

Considering blackholes don't obey standard calling conventions, it's hard to say where the arguments are located in generated code.   It would be nice to enrich `-XX:+PrintOptoAssembly` with information about consumed values. `MachNode::format` has access to such information through `PhaseRegAlloc* ra` argument.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1203


More information about the hotspot-dev mailing list