Value type array optimizations/fixes with C2

Tobias Hartmann tobias.hartmann at
Thu Feb 16 13:33:55 UTC 2017


here's a small follow-up fix:
- Parse::ensure_phi() should check for dead value type locals before generating Phis for merging 
- ValueTypeNode::store_values() uses wrong holder object when storing recursively flattened VT fields


On 13.02.2017 17:39, Tobias Hartmann wrote:
> Hi,
> please review this change which includes:
> - Fixed wrong return value in AddPNode::Value()
> - Basic version of ValueArrayKlass::oop_print_on() for debugging
> - Fixed escape analysis to keep track of the field being accessed in VT arrays
> - Re-enabled asserts in graphKit.cpp and memnode.cpp
> - Implemented scalar replacement for flattened value type arrays
> - Implemented re-allocation of scalar replaced value type arrays on deoptimization
> - Refactored valuetypenode.cpp and related code
> - Refactored test bench to use flags from jtreg command line instead of hard-coding command line options
> - Enabled/added corresponding regression tests and match rules
> There are still some problems with incremental inlining. I disabled the flag for testing and will work on fixing this next.
> Thanks,
> Tobias

More information about the valhalla-dev mailing list