mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 20:44:41 +02:00
8075921: assert assert(allocx == alloc) fails in library_call.cpp
Control becomes top after arraycopy guards and confuses tighly coupled allocation logic Reviewed-by: kvn, vlivanov
This commit is contained in:
parent
2a18e44777
commit
61aa1cfdef
3 changed files with 66 additions and 1 deletions
|
@ -2530,6 +2530,11 @@ static IfNode* gen_subtype_check_compare(Node* ctrl, Node* in1, Node* in2, BoolT
|
|||
// prior to coming here.
|
||||
Node* Phase::gen_subtype_check(Node* subklass, Node* superklass, Node** ctrl, MergeMemNode* mem, PhaseGVN* gvn) {
|
||||
Compile* C = gvn->C;
|
||||
|
||||
if ((*ctrl)->is_top()) {
|
||||
return C->top();
|
||||
}
|
||||
|
||||
// Fast check for identical types, perhaps identical constants.
|
||||
// The types can even be identical non-constants, in cases
|
||||
// involving Array.newInstance, Object.clone, etc.
|
||||
|
@ -2793,6 +2798,10 @@ Node* GraphKit::maybe_cast_profiled_receiver(Node* not_null_obj,
|
|||
Node* GraphKit::maybe_cast_profiled_obj(Node* obj,
|
||||
ciKlass* type,
|
||||
bool not_null) {
|
||||
if (stopped()) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
// type == NULL if profiling tells us this object is always null
|
||||
if (type != NULL) {
|
||||
Deoptimization::DeoptReason class_reason = Deoptimization::Reason_speculate_class_check;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue