Mercurial > hg > truffle
diff src/share/vm/opto/idealKit.cpp @ 985:685e959d09ea
6877254: Server vm crashes with no branches off of store slice" when run with CMS and UseSuperWord(default)
Summary: design StoreCMNode::Ideal to promote its oopStore input if the input is a MergeMem node
Reviewed-by: kvn, never
author | cfang |
---|---|
date | Mon, 14 Sep 2009 09:49:54 -0700 |
parents | fc4be448891f |
children | a1423fe86a18 |
line wrap: on
line diff
--- a/src/share/vm/opto/idealKit.cpp Thu Sep 10 18:18:06 2009 -0700 +++ b/src/share/vm/opto/idealKit.cpp Mon Sep 14 09:49:54 2009 -0700 @@ -378,7 +378,7 @@ // Card mark store. Must be ordered so that it will come after the store of // the oop. -Node* IdealKit::storeCM(Node* ctl, Node* adr, Node *val, Node* oop_store, +Node* IdealKit::storeCM(Node* ctl, Node* adr, Node *val, Node* oop_store, int oop_adr_idx, BasicType bt, int adr_idx) { assert(adr_idx != Compile::AliasIdxTop, "use other store_to_memory factory" ); @@ -388,7 +388,7 @@ // Add required edge to oop_store, optimizer does not support precedence edges. // Convert required edge to precedence edge before allocation. - Node* st = new (C, 5) StoreCMNode(ctl, mem, adr, adr_type, val, oop_store); + Node* st = new (C, 5) StoreCMNode(ctl, mem, adr, adr_type, val, oop_store, oop_adr_idx); st = transform(st); set_memory(st, adr_idx);