@@ -3061,52 +3061,6 @@ struct Final_Reshape_Counts : public StackObj {
3061
3061
int get_inner_loop_count () const { return _inner_loop_count; }
3062
3062
};
3063
3063
3064
- // Eliminate trivially redundant StoreCMs and accumulate their
3065
- // precedence edges.
3066
- void Compile::eliminate_redundant_card_marks (Node* n) {
3067
- assert (n->Opcode () == Op_StoreCM, " expected StoreCM" );
3068
- if (n->in (MemNode::Address)->outcnt () > 1 ) {
3069
- // There are multiple users of the same address so it might be
3070
- // possible to eliminate some of the StoreCMs
3071
- Node* mem = n->in (MemNode::Memory);
3072
- Node* adr = n->in (MemNode::Address);
3073
- Node* val = n->in (MemNode::ValueIn);
3074
- Node* prev = n;
3075
- bool done = false ;
3076
- // Walk the chain of StoreCMs eliminating ones that match. As
3077
- // long as it's a chain of single users then the optimization is
3078
- // safe. Eliminating partially redundant StoreCMs would require
3079
- // cloning copies down the other paths.
3080
- while (mem->Opcode () == Op_StoreCM && mem->outcnt () == 1 && !done) {
3081
- if (adr == mem->in (MemNode::Address) &&
3082
- val == mem->in (MemNode::ValueIn)) {
3083
- // redundant StoreCM
3084
- if (mem->req () > MemNode::OopStore) {
3085
- // Hasn't been processed by this code yet.
3086
- n->add_prec (mem->in (MemNode::OopStore));
3087
- } else {
3088
- // Already converted to precedence edge
3089
- for (uint i = mem->req (); i < mem->len (); i++) {
3090
- // Accumulate any precedence edges
3091
- if (mem->in (i) != nullptr ) {
3092
- n->add_prec (mem->in (i));
3093
- }
3094
- }
3095
- // Everything above this point has been processed.
3096
- done = true ;
3097
- }
3098
- // Eliminate the previous StoreCM
3099
- prev->set_req (MemNode::Memory, mem->in (MemNode::Memory));
3100
- assert (mem->outcnt () == 0 , " should be dead" );
3101
- mem->disconnect_inputs (this );
3102
- } else {
3103
- prev = mem;
3104
- }
3105
- mem = prev->in (MemNode::Memory);
3106
- }
3107
- }
3108
- }
3109
-
3110
3064
// ------------------------------final_graph_reshaping_impl----------------------
3111
3065
// Implement items 1-5 from final_graph_reshaping below.
3112
3066
void Compile::final_graph_reshaping_impl (Node *n, Final_Reshape_Counts& frc, Unique_Node_List& dead_nodes) {
@@ -3276,18 +3230,6 @@ void Compile::final_graph_reshaping_main_switch(Node* n, Final_Reshape_Counts& f
3276
3230
}
3277
3231
break ;
3278
3232
}
3279
-
3280
- case Op_StoreCM:
3281
- {
3282
- // Convert OopStore dependence into precedence edge
3283
- Node* prec = n->in (MemNode::OopStore);
3284
- n->del_req (MemNode::OopStore);
3285
- n->add_prec (prec);
3286
- eliminate_redundant_card_marks (n);
3287
- }
3288
-
3289
- // fall through
3290
-
3291
3233
case Op_StoreB:
3292
3234
case Op_StoreC:
3293
3235
case Op_StoreI:
0 commit comments