RFR(S): 8188809: [MVT] C2 support for interpreter buffering of value types

Tobias Hartmann tobias.hartmann at oracle.com
Wed Nov 1 10:53:33 UTC 2017


Hi,

please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8188809
http://cr.openjdk.java.net/~thartmann/8188809/webrev.00/

C2 needs to emit a runtime check on method entry to avoid storing interpreter buffered value type oops in fields or 
arrays. I've optimized the "base <= oop < (base + size)" checks by using a single unsigned comparison.

The patch includes some refactoring:
- Changed the code in arguments.cpp to bail out in case both EnableMVT and EnableValhalla are set
- Changed the code in macro.cpp to use copy_call_debug_info() instead of add_safepoint_edges() and moved the now unused 
Compile::add_safepoint_edges() and should_reexecute_implied_by_bytecode from compile.cpp back to graphKit.cpp
- Fixed some naming issues in TestMinimalValueTypes

All tests pass.

Thanks,
Tobias



More information about the valhalla-dev mailing list