1.1 --- a/src/share/vm/opto/memnode.cpp Thu Sep 10 18:18:06 2009 -0700 1.2 +++ b/src/share/vm/opto/memnode.cpp Mon Sep 14 09:49:54 2009 -0700 1.3 @@ -2313,6 +2313,22 @@ 1.4 return this; 1.5 } 1.6 1.7 +//============================================================================= 1.8 +//------------------------------Ideal--------------------------------------- 1.9 +Node *StoreCMNode::Ideal(PhaseGVN *phase, bool can_reshape){ 1.10 + Node* progress = StoreNode::Ideal(phase, can_reshape); 1.11 + if (progress != NULL) return progress; 1.12 + 1.13 + Node* my_store = in(MemNode::OopStore); 1.14 + if (my_store->is_MergeMem()) { 1.15 + Node* mem = my_store->as_MergeMem()->memory_at(oop_alias_idx()); 1.16 + set_req(MemNode::OopStore, mem); 1.17 + return this; 1.18 + } 1.19 + 1.20 + return NULL; 1.21 +} 1.22 + 1.23 //------------------------------Value----------------------------------------- 1.24 const Type *StoreCMNode::Value( PhaseTransform *phase ) const { 1.25 // Either input is TOP ==> the result is TOP