RFR(XS) 8025657: compiler/intrinsics/mathexact/ConstantTest.java fails on assert in lcm.cpp on solaris x64
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Oct 4 11:55:37 PDT 2013
Rickard,
addExact, should in must_clone[] list since it produce flag (I think
your original changes have it). With that it should be scheduled near
use (see PhaseCFG::schedule_late()). The problem could be it has 2 uses.
FlagsProj should be scheduled near consumer of the flag (since it is
also in must_clone[]). Otherwise flags state could be changes by other
instructions. So moving it to addExact block is wrong. It should be
opposite: addExact should at the same block as FlagsProj and conditional
jump.
Vladimir
On 10/4/13 4:35 AM, Rickard Bäckman wrote:
> Hi all,
>
> I would appreciate some reviews on this change.
>
> On some machines when running with -XX:+DeoptimizeALot a test (test/compiler/intrinsics/mathexact/ConstantTest.java) failed with an assert.
> assert(idx >= 0) failed: index should be set
>
> It seems that gcm would put the addExact in a different block then the jump.
> This change forces the producer of FlagsProjNode to be in the same block as
> the consumer.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8025657
> Webrev: http://cr.openjdk.java.net/~rbackman/8025657.1/
>
> Thanks
> /R
>
More information about the hotspot-compiler-dev
mailing list