RFR (L) 8171392 Move Klass pointers outside of ConstantPool entries so ConstantPool can be read-only
ioi.lam at oracle.com
Tue Apr 11 06:26:35 UTC 2017
Hi,please review the following change
+ ConstantPool::klass_at(i) finds the Klass from the i-th slot of
+ When a klass is resolved, the ConstantPool is modified to store the
+ ConstantPool::klass_at(i) finds the at this->_resolved_klasses->at(i)
+ When a klass is resolved, _resolved_klasses->at(i) is modified.
+ I moved _resolved_references and _reference_map from ConstantPool
+ Now _flags is no longer modified for shared ConstantPools.
As a result, none of the fields in shared ConstantPools are modified
at run time,
so we can move them into the RO region in the CDS archive.
- Benchmark results show no performance regression, despite the extra
indirection, which has a negligible overhead for the interpreter.
- RBT testing for tier2 and tier3.
- I have tested only the Oracle-support ports. For the aarch64, ppc
and s390 ports,
I have added some code without testing (it's probably incomplete)
- Port owners, please check if my patch work for you, and I can
changes in my push. Alternatively, you can wait for my push and
(if necessary) in a new changeset, and I will be happy to sponsor it.
More information about the hotspot-dev