equal
deleted
inserted
replaced
3008 igvn->hash_delete(n); |
3008 igvn->hash_delete(n); |
3009 igvn->set_type(n, tinst); |
3009 igvn->set_type(n, tinst); |
3010 n->raise_bottom_type(tinst); |
3010 n->raise_bottom_type(tinst); |
3011 igvn->hash_insert(n); |
3011 igvn->hash_insert(n); |
3012 record_for_optimizer(n); |
3012 record_for_optimizer(n); |
|
3013 // Allocate an alias index for the header fields. Accesses to |
|
3014 // the header emitted during macro expansion wouldn't have |
|
3015 // correct memory state otherwise. |
|
3016 _compile->get_alias_index(tinst->add_offset(oopDesc::mark_offset_in_bytes())); |
|
3017 _compile->get_alias_index(tinst->add_offset(oopDesc::klass_offset_in_bytes())); |
3013 if (alloc->is_Allocate() && (t->isa_instptr() || t->isa_aryptr())) { |
3018 if (alloc->is_Allocate() && (t->isa_instptr() || t->isa_aryptr())) { |
3014 |
3019 |
3015 // First, put on the worklist all Field edges from Connection Graph |
3020 // First, put on the worklist all Field edges from Connection Graph |
3016 // which is more accurate than putting immediate users from Ideal Graph. |
3021 // which is more accurate than putting immediate users from Ideal Graph. |
3017 for (EdgeIterator e(ptn); e.has_next(); e.next()) { |
3022 for (EdgeIterator e(ptn); e.has_next(); e.next()) { |