mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 04:24:49 +02:00
8009460: C2compiler crash in machnode::in_regmask(unsigned int)
7121140 may not correctly break the Allocate -> MemBarStoreStore link Reviewed-by: kvn
This commit is contained in:
parent
15108cd14e
commit
748083843a
2 changed files with 8 additions and 7 deletions
|
@ -1101,12 +1101,6 @@ void PhaseMacroExpand::expand_allocate_common(
|
|||
Node* klass_node = alloc->in(AllocateNode::KlassNode);
|
||||
Node* initial_slow_test = alloc->in(AllocateNode::InitialTest);
|
||||
|
||||
Node* storestore = alloc->storestore();
|
||||
if (storestore != NULL) {
|
||||
// Break this link that is no longer useful and confuses register allocation
|
||||
storestore->set_req(MemBarNode::Precedent, top());
|
||||
}
|
||||
|
||||
assert(ctrl != NULL, "must have control");
|
||||
// We need a Region and corresponding Phi's to merge the slow-path and fast-path results.
|
||||
// they will not be used if "always_slow" is set
|
||||
|
@ -1324,7 +1318,7 @@ void PhaseMacroExpand::expand_allocate_common(
|
|||
// No InitializeNode or no stores captured by zeroing
|
||||
// elimination. Simply add the MemBarStoreStore after object
|
||||
// initialization.
|
||||
MemBarNode* mb = MemBarNode::make(C, Op_MemBarStoreStore, Compile::AliasIdxBot, fast_oop_rawmem);
|
||||
MemBarNode* mb = MemBarNode::make(C, Op_MemBarStoreStore, Compile::AliasIdxBot);
|
||||
transform_later(mb);
|
||||
|
||||
mb->init_req(TypeFunc::Memory, fast_oop_rawmem);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue