mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 04:24:49 +02:00
6877254: Server vm crashes with no branches off of store slice" when run with CMS and UseSuperWord(default)
Design StoreCMNode::Ideal to promote its oopStore input if the input is a MergeMem node Reviewed-by: kvn, never
This commit is contained in:
parent
e0519e7bbd
commit
c492f4cde5
8 changed files with 86 additions and 14 deletions
|
@ -582,12 +582,16 @@ public:
|
|||
// The last StoreCM before a SafePoint must be preserved and occur after its "oop" store
|
||||
// Preceeding equivalent StoreCMs may be eliminated.
|
||||
class StoreCMNode : public StoreNode {
|
||||
private:
|
||||
int _oop_alias_idx; // The alias_idx of OopStore
|
||||
public:
|
||||
StoreCMNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val, Node *oop_store ) : StoreNode(c,mem,adr,at,val,oop_store) {}
|
||||
StoreCMNode( Node *c, Node *mem, Node *adr, const TypePtr* at, Node *val, Node *oop_store, int oop_alias_idx ) : StoreNode(c,mem,adr,at,val,oop_store), _oop_alias_idx(oop_alias_idx) {}
|
||||
virtual int Opcode() const;
|
||||
virtual Node *Identity( PhaseTransform *phase );
|
||||
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
|
||||
virtual const Type *Value( PhaseTransform *phase ) const;
|
||||
virtual BasicType memory_type() const { return T_VOID; } // unspecific
|
||||
int oop_alias_idx() const { return _oop_alias_idx; }
|
||||
};
|
||||
|
||||
//------------------------------LoadPLockedNode---------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue