コード例 #1
0
 // visitor functions
 void do_StoreField     (StoreField*      x) {
     if (x->is_init_point()) {
         // putstatic is an initialization point so treat it as a wide kill
         kill_memory();
     } else {
         kill_field(x->field());
     }
 }
コード例 #2
0
 // visitor functions
 void do_StoreField     (StoreField*      x) {
   if (x->is_init_point() ||  // putstatic is an initialization point so treat it as a wide kill
       // This is actually too strict and the JMM doesn't require
       // this in all cases (e.g. load a; volatile store b; load a)
       // but possible future optimizations might require this.
       x->field()->is_volatile()) {
     kill_memory();
   } else {
     kill_field(x->field(), x->needs_patching());
   }
 }