src/share/vm/c1/c1_ValueMap.hpp

changeset 4005
0bfcb7a3e12d
parent 3969
1d7922586cf6
child 4106
7eca5de9e0b6
     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);

mercurial