[9] RFR(L): 8034812: remove IDX_INIT macro hack in Node class

John Rose john.r.rose at oracle.com
Fri May 16 16:07:37 UTC 2014


On May 16, 2014, at 8:58 AM, John Rose <john.r.rose at oracle.com> wrote:

> On May 15, 2014, at 2:27 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
>> Changes are fine but I am concern about compilation speed.
>> Please, test compilation performance (-XX:+TimeCompiler) on x86 and sparc. You need to build optimized VM for that to exclude assert but keep statistic code. I would suggest to run one of nashorn octane benchmarks with -Xcomp -XX:-TieredCompilation to get compilation with big graphs.
> 
> A little software archeology brings up some of the history behind the "new(N,C)" hack:
> 
> D 1.156 05/06/29 16:29:14 vkozlov 258 257
> 6219945: C2 virtual methods cleanup. Reduce calls Compile::current().
> https://bugs.openjdk.java.net/browse/JDK-6219945
> 
> So it's been 9 years; do we still want to reduce calls to Compile::current()?  As a wild guess, it could cause a 1% regression in compile speed.
> 
> — John

P.S. The IDX_INIT trick comes from this delta:
D 1.212 05/12/01 13:25:41 jrose 374 372
6175499 Stick contextual annotations onto newly-created nodes.
(Also, remove a frequent call to Compile::current().)
https://bugs.openjdk.java.net/browse/JDK-6175499

The "frequent call" was in the Node::Node constructors:

<<<
Node::Node( Node *n0 )
  : _out(NO_OUT_ARRAY),
    _cnt(1),
    _max(1),
    _outcnt(0),
    _outmax(0),
    _idx( Compile::current()->next_unique() ),
    _class_id(Class_Node),
    _flags(0) {
***
Node::Node(Node *n0)
  : _idx(IDX_INIT(1))
{
>>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140516/68cbb6b0/attachment.html>


More information about the hotspot-compiler-dev mailing list