RFR(M): 8195776: [x86,sparc] A row of minor fixes and enhancements.

Vladimir Kozlov vladimir.kozlov at oracle.com
Sat Jan 20 00:33:35 UTC 2018

Thank you, Goetz

On 1/19/18 8:31 AM, Lindenmaier, Goetz wrote:
> Hi,
> I would like to contribute a row of smaller fixes to these two platforms.
> These are fixes that were done by us inhouse in the past years.
> Please review. I please need a sponsor.
> http://cr.openjdk.java.net/~goetz/wr18/8195776-x86SmallFixes/webrev.01
> Some details:
> Move null check info before load LIR_Assembler::emit_alloc_obj. Doesn't make sense after it where it was followed by a non-storage access instruction.

Yes, it looks like bug but we never hit it because we should not pass NULL as klass to allocation.

> c1 on x86: fix for assertion hit when running with -XX:-ImplicitDiv0Checks
> Symptom1: assert(info->_oop_map == oop_map, "same CodeEmitInfo used for multiple LIR instructions");
> Symptom2: DivByZeroStub was emitted twice per idiv/irem
> Fix1: create the lir_idiv without debug info (CodeEmitInfo*). When running with -XX:-ImplicitDiv0Checks the actual idiv cannot trap or reach a safepoint.
> Fix2: don't call add_debug_info_for_div0() in the lir assembler. It adds another DivByZeroStub to the stub list.


> compiledIC:
> Data / destination can be reloaded if not volatile causing assertion to fire.


> stub_Generator:
> A small optimization for G1: Only call static_write_ref_array_pre from array copy stubs if G1 marking is active.

make sense

> Fix datatypes of flags in platform xx_globals_<cpu>.hpp files.


> Tests of this change will run tonight on all the platforms we build. (hotspot jtreg, jck and a row of bigger tests).

I submitted our testing.


> Best regards,
>    Goetz.

More information about the hotspot-compiler-dev mailing list