1.1 --- a/src/share/vm/c1/c1_ValueMap.hpp Tue Aug 21 14:50:02 2012 -0700 1.2 +++ b/src/share/vm/c1/c1_ValueMap.hpp Wed Aug 22 14:29:57 2012 +0200 1.3 @@ -114,7 +114,7 @@ 1.4 Value find_insert(Value x); 1.5 1.6 void kill_memory(); 1.7 - void kill_field(ciField* field); 1.8 + void kill_field(ciField* field, bool all_offsets); 1.9 void kill_array(ValueType* type); 1.10 void kill_exception(); 1.11 void kill_map(ValueMap* map); 1.12 @@ -136,7 +136,7 @@ 1.13 protected: 1.14 // called by visitor functions for instructions that kill values 1.15 virtual void kill_memory() = 0; 1.16 - virtual void kill_field(ciField* field) = 0; 1.17 + virtual void kill_field(ciField* field, bool all_offsets) = 0; 1.18 virtual void kill_array(ValueType* type) = 0; 1.19 1.20 // visitor functions 1.21 @@ -148,7 +148,7 @@ 1.22 x->field()->is_volatile()) { 1.23 kill_memory(); 1.24 } else { 1.25 - kill_field(x->field()); 1.26 + kill_field(x->field(), x->needs_patching()); 1.27 } 1.28 } 1.29 void do_StoreIndexed (StoreIndexed* x) { kill_array(x->type()); } 1.30 @@ -214,9 +214,9 @@ 1.31 1.32 public: 1.33 // implementation for abstract methods of ValueNumberingVisitor 1.34 - void kill_memory() { _map->kill_memory(); } 1.35 - void kill_field(ciField* field) { _map->kill_field(field); } 1.36 - void kill_array(ValueType* type) { _map->kill_array(type); } 1.37 + void kill_memory() { _map->kill_memory(); } 1.38 + void kill_field(ciField* field, bool all_offsets) { _map->kill_field(field, all_offsets); } 1.39 + void kill_array(ValueType* type) { _map->kill_array(type); } 1.40 1.41 ValueNumberingEffects(ValueMap* map): _map(map) {} 1.42 }; 1.43 @@ -234,9 +234,9 @@ 1.44 void set_value_map_of(BlockBegin* block, ValueMap* map) { assert(value_map_of(block) == NULL, ""); _value_maps.at_put(block->linear_scan_number(), map); } 1.45 1.46 // implementation for abstract methods of ValueNumberingVisitor 1.47 - void kill_memory() { current_map()->kill_memory(); } 1.48 - void kill_field(ciField* field) { current_map()->kill_field(field); } 1.49 - void kill_array(ValueType* type) { current_map()->kill_array(type); } 1.50 + void kill_memory() { current_map()->kill_memory(); } 1.51 + void kill_field(ciField* field, bool all_offsets) { current_map()->kill_field(field, all_offsets); } 1.52 + void kill_array(ValueType* type) { current_map()->kill_array(type); } 1.53 1.54 // main entry point that performs global value numbering 1.55 GlobalValueNumbering(IR* ir);