8287851: C2 crash: assert(t->meet(t0) == t) failed: Not monotonic
Reviewed-by: thartmann, chagedorn
This commit is contained in:
parent
5b5bc6c26e
commit
1a271645a8
@ -165,7 +165,6 @@ Node* compress_expand_identity(PhaseGVN* phase, Node* n) {
|
||||
if(phase->type(n->in(2))->higher_equal(TypeInteger::zero(bt))) return n->in(2);
|
||||
// compress(x, -1) == x, expand(x, -1) == x
|
||||
if(phase->type(n->in(2))->higher_equal(TypeInteger::minus_1(bt))) return n->in(1);
|
||||
return n;
|
||||
// expand(-1, x) == x
|
||||
if(n->Opcode() == Op_ExpandBits &&
|
||||
phase->type(n->in(1))->higher_equal(TypeInteger::minus_1(bt))) return n->in(2);
|
||||
@ -259,7 +258,9 @@ static const Type* bitshuffle_value(const TypeInteger* src_type, const TypeInteg
|
||||
} else {
|
||||
// Case 3) Mask value range only includes +ve values.
|
||||
assert(mask_type->lo_as_long() >= 0, "");
|
||||
mask_max_bw = max_bw - count_leading_zeros(mask_type->hi_as_long());
|
||||
jlong clz = count_leading_zeros(mask_type->hi_as_long());
|
||||
clz = bt == T_INT ? clz - 32 : clz;
|
||||
mask_max_bw = max_bw - clz;
|
||||
}
|
||||
if ( opc == Op_CompressBits) {
|
||||
lo = mask_max_bw == max_bw ? lo : 0L;
|
||||
@ -270,6 +271,8 @@ static const Type* bitshuffle_value(const TypeInteger* src_type, const TypeInteg
|
||||
} else {
|
||||
assert(opc == Op_ExpandBits, "");
|
||||
jlong max_mask = mask_type->hi_as_long();
|
||||
// Since mask here a range and not a constant value, hence being
|
||||
// conservative in determining the value range of result.
|
||||
lo = mask_type->lo_as_long() >= 0L ? 0L : lo;
|
||||
hi = mask_type->lo_as_long() >= 0L ? max_mask : hi;
|
||||
}
|
||||
|
@ -495,7 +495,6 @@ java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java 8151492 generic-
|
||||
java/lang/invoke/LFCaching/LFGarbageCollectedTest.java 8078602 generic-all
|
||||
java/lang/invoke/lambda/LambdaFileEncodingSerialization.java 8249079 linux-x64
|
||||
java/lang/invoke/RicochetTest.java 8251969 generic-all
|
||||
java/lang/CompressExpandTest.java 8287851 generic-all
|
||||
java/lang/ref/OOMEInReferenceHandler.java 8066859 generic-all
|
||||
|
||||
############################################################################
|
||||
|
Loading…
x
Reference in New Issue
Block a user