changeset 2099:e5383553fd4e

7014851: Remove unused parallel compaction code Summary: Removed. Reviewed-by: jcoomes, brutisso
author stefank
date Tue, 08 Feb 2011 12:33:19 +0100
parents c5a923563727
children 59e20a452a2a
files src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp src/share/vm/oops/arrayKlassKlass.cpp src/share/vm/oops/compiledICHolderKlass.cpp src/share/vm/oops/constMethodKlass.cpp src/share/vm/oops/constantPoolKlass.cpp src/share/vm/oops/cpCacheKlass.cpp src/share/vm/oops/cpCacheOop.cpp src/share/vm/oops/cpCacheOop.hpp src/share/vm/oops/instanceKlass.cpp src/share/vm/oops/instanceKlass.hpp src/share/vm/oops/instanceKlassKlass.cpp src/share/vm/oops/instanceRefKlass.cpp src/share/vm/oops/klassKlass.cpp src/share/vm/oops/klassPS.hpp src/share/vm/oops/klassVtable.cpp src/share/vm/oops/klassVtable.hpp src/share/vm/oops/methodDataKlass.cpp src/share/vm/oops/methodDataOop.cpp src/share/vm/oops/methodDataOop.hpp src/share/vm/oops/methodKlass.cpp src/share/vm/oops/objArrayKlass.cpp src/share/vm/oops/objArrayKlassKlass.cpp src/share/vm/oops/oop.hpp src/share/vm/oops/oop.pcgc.inline.hpp src/share/vm/oops/typeArrayKlass.cpp
diffstat 25 files changed, 24 insertions(+), 424 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1196,11 +1196,6 @@
   static inline void adjust_pointer(oop* p)       { adjust_pointer(p, false); }
   static inline void adjust_pointer(narrowOop* p) { adjust_pointer(p, false); }
 
-  template <class T>
-  static inline void adjust_pointer(T* p,
-                                    HeapWord* beg_addr,
-                                    HeapWord* end_addr);
-
   // Reference Processing
   static ReferenceProcessor* const ref_processor() { return _ref_processor; }
 
@@ -1408,15 +1403,6 @@
   return ((HeapWord*) k) >= dense_prefix(perm_space_id);
 }
 
-template <class T>
-inline void PSParallelCompact::adjust_pointer(T* p,
-                                              HeapWord* beg_addr,
-                                              HeapWord* end_addr) {
-  if (is_in((HeapWord*)p, beg_addr, end_addr)) {
-    adjust_pointer(p);
-  }
-}
-
 #ifdef ASSERT
 inline void
 PSParallelCompact::check_new_location(HeapWord* old_addr, HeapWord* new_addr)
--- a/src/share/vm/oops/arrayKlassKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/arrayKlassKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -128,27 +128,6 @@
   }
   return klassKlass::oop_update_pointers(cm, obj);
 }
-
-int
-arrayKlassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                     HeapWord* beg_addr, HeapWord* end_addr) {
-  assert(obj->is_klass(), "must be klass");
-  arrayKlass* ak = arrayKlass::cast(klassOop(obj));
-
-  oop* p;
-  p = ak->adr_component_mirror();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = ak->adr_lower_dimension();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = ak->adr_higher_dimension();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-
-  {
-    HandleMark hm;
-    ak->vtable()->oop_update_pointers(cm, beg_addr, end_addr);
-  }
-  return klassKlass::oop_update_pointers(cm, obj, beg_addr, end_addr);
-}
 #endif // SERIALGC
 
 // Printing
--- a/src/share/vm/oops/compiledICHolderKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/compiledICHolderKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -145,21 +145,6 @@
   PSParallelCompact::adjust_pointer(c->adr_holder_klass());
   return c->object_size();
 }
-
-int compiledICHolderKlass::oop_update_pointers(ParCompactionManager* cm,
-                                               oop obj,
-                                               HeapWord* beg_addr,
-                                               HeapWord* end_addr) {
-  assert(obj->is_compiledICHolder(), "must be compiledICHolder");
-  compiledICHolderOop c = compiledICHolderOop(obj);
-
-  oop* p;
-  p = c->adr_holder_method();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = c->adr_holder_klass();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  return c->object_size();
-}
 #endif // SERIALGC
 
 // Printing
--- a/src/share/vm/oops/constMethodKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/constMethodKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -184,21 +184,6 @@
   }
   return cm_oop->object_size();
 }
-
-int constMethodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                          HeapWord* beg_addr,
-                                          HeapWord* end_addr) {
-  assert(obj->is_constMethod(), "should be constMethod");
-  constMethodOop cm_oop = constMethodOop(obj);
-
-  oop* const beg_oop = MAX2((oop*)beg_addr, cm_oop->oop_block_beg());
-  oop* const end_oop = MIN2((oop*)end_addr, cm_oop->oop_block_end());
-  for (oop* cur_oop = beg_oop; cur_oop < end_oop; ++cur_oop) {
-    PSParallelCompact::adjust_pointer(cur_oop);
-  }
-
-  return cm_oop->object_size();
-}
 #endif // SERIALGC
 
 // Printing
--- a/src/share/vm/oops/constantPoolKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/constantPoolKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -279,40 +279,6 @@
   return cp->object_size();
 }
 
-int
-constantPoolKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                       HeapWord* beg_addr, HeapWord* end_addr) {
-  assert (obj->is_constantPool(), "obj must be constant pool");
-  constantPoolOop cp = (constantPoolOop) obj;
-
-  // If the tags array is null we are in the middle of allocating this constant
-  // pool.
-  if (cp->tags() != NULL) {
-    oop* base = (oop*)cp->base();
-    oop* const beg_oop = MAX2((oop*)beg_addr, base);
-    oop* const end_oop = MIN2((oop*)end_addr, base + cp->length());
-    const size_t beg_idx = pointer_delta(beg_oop, base, sizeof(oop*));
-    const size_t end_idx = pointer_delta(end_oop, base, sizeof(oop*));
-    for (size_t cur_idx = beg_idx; cur_idx < end_idx; ++cur_idx, ++base) {
-      if (cp->is_pointer_entry(int(cur_idx))) {
-        PSParallelCompact::adjust_pointer(base);
-      }
-    }
-  }
-
-  oop* p;
-  p = cp->tags_addr();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = cp->cache_addr();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = cp->operands_addr();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = cp->pool_holder_addr();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-
-  return cp->object_size();
-}
-
 void constantPoolKlass::oop_push_contents(PSPromotionManager* pm, oop obj) {
   assert(obj->is_constantPool(), "should be constant pool");
   constantPoolOop cp = (constantPoolOop) obj;
--- a/src/share/vm/oops/cpCacheKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/cpCacheKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -203,25 +203,6 @@
 
   return cache->object_size();
 }
-
-int
-constantPoolCacheKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                            HeapWord* beg_addr,
-                                            HeapWord* end_addr) {
-  assert(obj->is_constantPoolCache(), "obj must be constant pool cache");
-  constantPoolCacheOop cache = (constantPoolCacheOop)obj;
-
-  // Iteration over constant pool cache instance variables
-  oop* p;
-  p = (oop*)cache->constant_pool_addr();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-
-  // Iteration over constant pool cache entries
-  for (int i = 0; i < cache->length(); ++i) {
-    cache->entry_at(i)->update_pointers(beg_addr, end_addr);
-  }
-  return cache->object_size();
-}
 #endif // SERIALGC
 
 void constantPoolCacheKlass::oop_print_on(oop obj, outputStream* st) {
--- a/src/share/vm/oops/cpCacheOop.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/cpCacheOop.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -368,16 +368,6 @@
     PSParallelCompact::adjust_pointer((oop*)&_f2);
   }
 }
-
-void ConstantPoolCacheEntry::update_pointers(HeapWord* beg_addr,
-                                             HeapWord* end_addr) {
-  assert(in_words(size()) == 4, "check code below - may need adjustment");
-  // field[1] is always oop or NULL
-  PSParallelCompact::adjust_pointer((oop*)&_f1, beg_addr, end_addr);
-  if (is_vfinal()) {
-    PSParallelCompact::adjust_pointer((oop*)&_f2, beg_addr, end_addr);
-  }
-}
 #endif // SERIALGC
 
 // RedefineClasses() API support:
--- a/src/share/vm/oops/cpCacheOop.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/cpCacheOop.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -287,7 +287,6 @@
 #endif // SERIALGC
 
   void update_pointers();
-  void update_pointers(HeapWord* beg_addr, HeapWord* end_addr);
 
   // RedefineClasses() API support:
   // If this constantPoolCacheEntry refers to old_method then update it
--- a/src/share/vm/oops/instanceKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/instanceKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1736,14 +1736,6 @@
     PSParallelCompact::adjust_pointer(p), \
     assert_nothing)
 }
-
-void instanceKlass::update_static_fields(HeapWord* beg_addr, HeapWord* end_addr) {
-  InstanceKlass_BOUNDED_OOP_ITERATE( \
-    start_of_static_fields(), static_oop_field_size(), \
-    beg_addr, end_addr, \
-    PSParallelCompact::adjust_pointer(p), \
-    assert_nothing )
-}
 #endif // SERIALGC
 
 void instanceKlass::oop_follow_contents(oop obj) {
@@ -1876,15 +1868,6 @@
   return size_helper();
 }
 
-int instanceKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                       HeapWord* beg_addr, HeapWord* end_addr) {
-  InstanceKlass_BOUNDED_OOP_MAP_ITERATE( \
-    obj, beg_addr, end_addr, \
-    PSParallelCompact::adjust_pointer(p), \
-    assert_nothing)
-  return size_helper();
-}
-
 void instanceKlass::push_static_fields(PSPromotionManager* pm) {
   InstanceKlass_OOP_ITERATE( \
     start_of_static_fields(), static_oop_field_size(), \
--- a/src/share/vm/oops/instanceKlass.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/instanceKlass.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -740,7 +740,6 @@
   void follow_static_fields(ParCompactionManager* cm);
   void copy_static_fields(ParCompactionManager* cm);
   void update_static_fields();
-  void update_static_fields(HeapWord* beg_addr, HeapWord* end_addr);
 #endif // SERIALGC
 
   // Naming
--- a/src/share/vm/oops/instanceKlassKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/instanceKlassKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -353,35 +353,6 @@
   return ik->object_size();
 }
 
-int instanceKlassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                            HeapWord* beg_addr,
-                                            HeapWord* end_addr) {
-  assert(obj->is_klass(),"must be a klass");
-  assert(klassOop(obj)->klass_part()->oop_is_instance_slow(),
-         "must be instance klass");
-
-  instanceKlass* ik = instanceKlass::cast(klassOop(obj));
-  ik->update_static_fields(beg_addr, end_addr);
-  ik->vtable()->oop_update_pointers(cm, beg_addr, end_addr);
-  ik->itable()->oop_update_pointers(cm, beg_addr, end_addr);
-
-  oop* const beg_oop = MAX2((oop*)beg_addr, ik->oop_block_beg());
-  oop* const end_oop = MIN2((oop*)end_addr, ik->oop_block_end());
-  for (oop* cur_oop = beg_oop; cur_oop < end_oop; ++cur_oop) {
-    PSParallelCompact::adjust_pointer(cur_oop);
-  }
-
-  // The oop_map_cache, jni_ids and jni_id_map are allocated from the C heap,
-  // and so don't lie within any 'Chunk' boundaries.  Update them when the
-  // lowest addressed oop in the instanceKlass 'oop_block' is updated.
-  if (beg_oop == ik->oop_block_beg()) {
-    OopClosure* closure = PSParallelCompact::adjust_root_pointer_closure();
-    iterate_c_heap_oops(ik, closure);
-  }
-
-  klassKlass::oop_update_pointers(cm, obj, beg_addr, end_addr);
-  return ik->object_size();
-}
 #endif // SERIALGC
 
 klassOop
--- a/src/share/vm/oops/instanceRefKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/instanceRefKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -344,33 +344,6 @@
   }
   return size_helper();
 }
-
-
-template <class T> void
-specialized_oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                HeapWord* beg_addr, HeapWord* end_addr) {
-  T* p;
-  T* referent_addr = p = (T*)java_lang_ref_Reference::referent_addr(obj);
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  T* next_addr = p = (T*)java_lang_ref_Reference::next_addr(obj);
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  T* discovered_addr = p = (T*)java_lang_ref_Reference::discovered_addr(obj);
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  debug_only(trace_reference_gc("instanceRefKlass::oop_update_ptrs", obj,
-                                referent_addr, next_addr, discovered_addr);)
-}
-
-int
-instanceRefKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                      HeapWord* beg_addr, HeapWord* end_addr) {
-  instanceKlass::oop_update_pointers(cm, obj, beg_addr, end_addr);
-  if (UseCompressedOops) {
-    specialized_oop_update_pointers<narrowOop>(cm, obj, beg_addr, end_addr);
-  } else {
-    specialized_oop_update_pointers<oop>(cm, obj, beg_addr, end_addr);
-  }
-  return size_helper();
-}
 #endif // SERIALGC
 
 void instanceRefKlass::update_nonstatic_oop_maps(klassOop k) {
--- a/src/share/vm/oops/klassKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/klassKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -188,19 +188,6 @@
 
   return oop_size(obj);
 }
-
-int klassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                    HeapWord* beg_addr, HeapWord* end_addr) {
-  Klass* k = Klass::cast(klassOop(obj));
-
-  oop* const beg_oop = MAX2((oop*)beg_addr, k->oop_block_beg());
-  oop* const end_oop = MIN2((oop*)end_addr, k->oop_block_end());
-  for (oop* cur_oop = beg_oop; cur_oop < end_oop; ++cur_oop) {
-    PSParallelCompact::adjust_pointer(cur_oop);
-  }
-
-  return oop_size(obj);
-}
 #endif // SERIALGC
 
 
--- a/src/share/vm/oops/klassPS.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/klassPS.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,17 +37,13 @@
    objects that do (or may) cross chunk boundaries; it updates only those   \
    oops that are in the region [beg_addr, end_addr).  */                    \
   virtual void oop_follow_contents(ParCompactionManager* cm, oop obj);      \
-  virtual int  oop_update_pointers(ParCompactionManager* cm, oop obj);      \
-  virtual int  oop_update_pointers(ParCompactionManager* cm, oop obj,       \
-                                   HeapWord* beg_addr, HeapWord* end_addr);
+  virtual int  oop_update_pointers(ParCompactionManager* cm, oop obj);
 
 // Pure virtual version for klass.hpp
 #define PARALLEL_GC_DECLS_PV \
   virtual void oop_push_contents(PSPromotionManager* pm, oop obj) = 0;      \
   virtual void oop_follow_contents(ParCompactionManager* cm, oop obj) = 0;  \
-  virtual int  oop_update_pointers(ParCompactionManager* cm, oop obj) = 0;  \
-  virtual int  oop_update_pointers(ParCompactionManager* cm, oop obj,       \
-                                   HeapWord* beg_addr, HeapWord* end_addr) = 0;
+  virtual int  oop_update_pointers(ParCompactionManager* cm, oop obj) = 0;
 #else  // SERIALGC
 #define PARALLEL_GC_DECLS
 #define PARALLEL_GC_DECLS_PV
--- a/src/share/vm/oops/klassVtable.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/klassVtable.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -677,25 +677,6 @@
     PSParallelCompact::adjust_pointer(adr_method_at(i));
   }
 }
-
-void klassVtable::oop_update_pointers(ParCompactionManager* cm,
-                                      HeapWord* beg_addr, HeapWord* end_addr) {
-  const int n = length();
-  const int entry_size = vtableEntry::size();
-
-  int beg_idx = 0;
-  HeapWord* const method_0 = (HeapWord*)adr_method_at(0);
-  if (beg_addr > method_0) {
-    // it's safe to use cast, as we have guarantees on vtable size to be sane
-    beg_idx = int((pointer_delta(beg_addr, method_0) + entry_size - 1) / entry_size);
-  }
-
-  oop* const beg_oop = adr_method_at(beg_idx);
-  oop* const end_oop = MIN2((oop*)end_addr, adr_method_at(n));
-  for (oop* cur_oop = beg_oop; cur_oop < end_oop; cur_oop += entry_size) {
-    PSParallelCompact::adjust_pointer(cur_oop);
-  }
-}
 #endif // SERIALGC
 
 // Iterators
@@ -820,25 +801,6 @@
     ime++;
   }
 }
-
-void klassItable::oop_update_pointers(ParCompactionManager* cm,
-                                      HeapWord* beg_addr, HeapWord* end_addr) {
-  // offset table
-  itableOffsetEntry* ioe = offset_entry(0);
-  for(int i = 0; i < _size_offset_table; i++) {
-    oop* p = (oop*)&ioe->_interface;
-    PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-    ioe++;
-  }
-
-  // method table
-  itableMethodEntry* ime = method_entry(0);
-  for(int j = 0; j < _size_method_table; j++) {
-    oop* p = (oop*)&ime->_method;
-    PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-    ime++;
-  }
-}
 #endif // SERIALGC
 
 // Iterators
--- a/src/share/vm/oops/klassVtable.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/klassVtable.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -99,8 +99,6 @@
   // Parallel Old
   void oop_follow_contents(ParCompactionManager* cm);
   void oop_update_pointers(ParCompactionManager* cm);
-  void oop_update_pointers(ParCompactionManager* cm,
-                           HeapWord* beg_addr, HeapWord* end_addr);
 #endif // SERIALGC
 
   // Iterators
@@ -295,8 +293,6 @@
   // Parallel Old
   void oop_follow_contents(ParCompactionManager* cm);
   void oop_update_pointers(ParCompactionManager* cm);
-  void oop_update_pointers(ParCompactionManager* cm,
-                           HeapWord* beg_addr, HeapWord* end_addr);
 #endif // SERIALGC
 
   // Iterators
--- a/src/share/vm/oops/methodDataKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/methodDataKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -188,25 +188,6 @@
   }
   return m->object_size();
 }
-
-int
-methodDataKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                     HeapWord* beg_addr, HeapWord* end_addr) {
-  assert(obj->is_methodData(), "should be method data");
-
-  oop* p;
-  methodDataOop m = methodDataOop(obj);
-
-  p = m->adr_method();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-
-  ResourceMark rm;
-  ProfileData* data;
-  for (data = m->first_data(); m->is_valid(data); data = m->next_data(data)) {
-    data->update_pointers(beg_addr, end_addr);
-  }
-  return m->object_size();
-}
 #endif // SERIALGC
 
 #ifndef PRODUCT
--- a/src/share/vm/oops/methodDataOop.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/methodDataOop.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -271,17 +271,6 @@
     }
   }
 }
-
-void ReceiverTypeData::update_pointers(HeapWord* beg_addr, HeapWord* end_addr) {
-  // The loop bounds could be computed based on beg_addr/end_addr and the
-  // boundary test hoisted outside the loop (see klassVTable for an example);
-  // however, row_limit() is small enough (2) to make that less efficient.
-  for (uint row = 0; row < row_limit(); row++) {
-    if (receiver_unchecked(row) != NULL) {
-      PSParallelCompact::adjust_pointer(adr_receiver(row), beg_addr, end_addr);
-    }
-  }
-}
 #endif // SERIALGC
 
 #ifndef PRODUCT
--- a/src/share/vm/oops/methodDataOop.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/methodDataOop.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -452,7 +452,6 @@
   // Parallel old support
   virtual void follow_contents(ParCompactionManager* cm) {}
   virtual void update_pointers() {}
-  virtual void update_pointers(HeapWord* beg_addr, HeapWord* end_addr) {}
 #endif // SERIALGC
 
   // CI translation: ProfileData can represent both MethodDataOop data
@@ -748,7 +747,6 @@
   // Parallel old support
   virtual void follow_contents(ParCompactionManager* cm);
   virtual void update_pointers();
-  virtual void update_pointers(HeapWord* beg_addr, HeapWord* end_addr);
 #endif // SERIALGC
 
   oop* adr_receiver(uint row) {
--- a/src/share/vm/oops/methodKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/methodKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -214,27 +214,6 @@
 #endif // COMPILER2
   return m->object_size();
 }
-
-int methodKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                     HeapWord* beg_addr, HeapWord* end_addr) {
-  assert(obj->is_method(), "should be method");
-
-  oop* p;
-  methodOop m = methodOop(obj);
-
-  p = m->adr_constMethod();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = m->adr_constants();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-
-#ifdef COMPILER2
-  if (m->method_data() != NULL) {
-    p = m->adr_method_data();
-    PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  }
-#endif // COMPILER2
-  return m->object_size();
-}
 #endif // SERIALGC
 
 #ifndef PRODUCT
--- a/src/share/vm/oops/objArrayKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/objArrayKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -470,16 +470,6 @@
   ObjArrayKlass_OOP_ITERATE(a, p, PSParallelCompact::adjust_pointer(p))
   return a->object_size();
 }
-
-int objArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                       HeapWord* beg_addr, HeapWord* end_addr) {
-  assert (obj->is_objArray(), "obj must be obj array");
-  objArrayOop a = objArrayOop(obj);
-  ObjArrayKlass_BOUNDED_OOP_ITERATE( \
-     a, p, beg_addr, end_addr, \
-     PSParallelCompact::adjust_pointer(p))
-  return a->object_size();
-}
 #endif // SERIALGC
 
 // JVM support
--- a/src/share/vm/oops/objArrayKlassKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/objArrayKlassKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -254,22 +254,6 @@
 
   return arrayKlassKlass::oop_update_pointers(cm, obj);
 }
-
-int objArrayKlassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                            HeapWord* beg_addr,
-                                            HeapWord* end_addr) {
-  assert(obj->is_klass(), "must be klass");
-  assert(klassOop(obj)->klass_part()->oop_is_objArray_slow(), "must be obj array");
-
-  oop* p;
-  objArrayKlass* oak = objArrayKlass::cast((klassOop)obj);
-  p = oak->element_klass_addr();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-  p = oak->bottom_klass_addr();
-  PSParallelCompact::adjust_pointer(p, beg_addr, end_addr);
-
-  return arrayKlassKlass::oop_update_pointers(cm, obj, beg_addr, end_addr);
-}
 #endif // SERIALGC
 
 #ifndef PRODUCT
--- a/src/share/vm/oops/oop.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/oop.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -322,13 +322,6 @@
 
   // Parallel Old
   void update_contents(ParCompactionManager* cm);
-  void update_contents(ParCompactionManager* cm,
-                       HeapWord* begin_limit,
-                       HeapWord* end_limit);
-  void update_contents(ParCompactionManager* cm,
-                       klassOop old_klass,
-                       HeapWord* begin_limit,
-                       HeapWord* end_limit);
 
   void follow_contents(ParCompactionManager* cm);
   void follow_header(ParCompactionManager* cm);
@@ -369,7 +362,6 @@
 #ifndef SERIALGC
   // Parallel old
   void update_header();
-  void update_header(HeapWord* beg_addr, HeapWord* end_addr);
 #endif // SERIALGC
 
   // mark-sweep support
--- a/src/share/vm/oops/oop.pcgc.inline.hpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/oop.pcgc.inline.hpp	Tue Feb 08 12:33:19 2011 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -57,41 +57,6 @@
   // Else skip it.  The typeArrayKlass in the header never needs scavenging.
 }
 
-inline void oopDesc::update_contents(ParCompactionManager* cm,
-                                     HeapWord* begin_limit,
-                                     HeapWord* end_limit) {
-  // The klass field must be updated before anything else
-  // can be done.
-  debug_only(klassOopDesc* original_klass = klass());
-
-  update_contents(cm, klass(), begin_limit, end_limit);
-}
-
-inline void oopDesc::update_contents(ParCompactionManager* cm,
-                                     klassOop old_klass,
-                                     HeapWord* begin_limit,
-                                     HeapWord* end_limit) {
-
-  klassOop updated_klass =
-    PSParallelCompact::summary_data().calc_new_klass(old_klass);
-
-  // Needs to be boundary aware for the 64 bit case
-  // update_header();
-  // The klass has moved.  Is the location of the klass
-  // within the limits?
-  if ((((HeapWord*)&_metadata._klass) >= begin_limit) &&
-      (((HeapWord*)&_metadata._klass) < end_limit)) {
-    set_klass(updated_klass);
-  }
-
-  Klass* klass = updated_klass->klass_part();
-  if (!klass->oop_is_typeArray()) {
-    // It might contain oops beyond the header, so take the virtual call.
-    klass->oop_update_pointers(cm, this, begin_limit, end_limit);
-  }
-  // Else skip it.  The typeArrayKlass in the header never needs scavenging.
-}
-
 inline void oopDesc::follow_contents(ParCompactionManager* cm) {
   assert (PSParallelCompact::mark_bitmap()->is_marked(this),
     "should be marked");
@@ -140,13 +105,4 @@
   }
 }
 
-inline void oopDesc::update_header(HeapWord* beg_addr, HeapWord* end_addr) {
-  if (UseCompressedOops) {
-    PSParallelCompact::adjust_pointer(compressed_klass_addr(),
-                                      beg_addr, end_addr);
-  } else {
-    PSParallelCompact::adjust_pointer(klass_addr(), beg_addr, end_addr);
-  }
-}
-
 #endif // SHARE_VM_OOPS_OOP_PCGC_INLINE_HPP
--- a/src/share/vm/oops/typeArrayKlass.cpp	Mon Feb 07 22:19:57 2011 -0800
+++ b/src/share/vm/oops/typeArrayKlass.cpp	Tue Feb 08 12:33:19 2011 +0100
@@ -250,13 +250,6 @@
   assert(obj->is_typeArray(),"must be a type array");
   return typeArrayOop(obj)->object_size();
 }
-
-int
-typeArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
-                                    HeapWord* beg_addr, HeapWord* end_addr) {
-  assert(obj->is_typeArray(),"must be a type array");
-  return typeArrayOop(obj)->object_size();
-}
 #endif // SERIALGC
 
 void typeArrayKlass::initialize(TRAPS) {