changeset 1580:2a14fec2301f

2009-06-04 Gary Benson <gbenson@redhat.com> * ports/hotspot/src/share/vm/shark/sharkBlock.hpp (SharkBlock::lookup_for_field_access): Removed. * ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::do_field_access): Inline receiver for static fields. (SharkBlock::lookup_for_field_access): Removed. * ports/hotspot/src/share/vm/shark/sharkInliner.cpp (SharkInlinerHelper::do_field_access): Allow static fields. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp (SharkBlock::lookup_for_field_access): Removed. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp (SharkTopLevelBlock::scan_for_traps): Removed static field traps. (SharkBlock::lookup_for_field_access): Removed.
author Gary Benson <gbenson@redhat.com>
date Thu, 04 Jun 2009 11:07:53 -0400
parents 89bd8e0f38c5
children 4dbf479c5609
files ChangeLog ports/hotspot/src/share/vm/shark/sharkBlock.cpp ports/hotspot/src/share/vm/shark/sharkBlock.hpp ports/hotspot/src/share/vm/shark/sharkInliner.cpp ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp
diffstat 6 files changed, 20 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jun 04 09:48:19 2009 -0400
+++ b/ChangeLog	Thu Jun 04 11:07:53 2009 -0400
@@ -1,3 +1,20 @@
+2009-06-04  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkBlock.hpp
+	(SharkBlock::lookup_for_field_access): Removed.
+	* ports/hotspot/src/share/vm/shark/sharkBlock.cpp
+	(SharkBlock::do_field_access): Inline receiver for static fields.
+	(SharkBlock::lookup_for_field_access): Removed.
+
+	* ports/hotspot/src/share/vm/shark/sharkInliner.cpp
+	(SharkInlinerHelper::do_field_access): Allow static fields.
+
+	* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp
+	(SharkBlock::lookup_for_field_access): Removed.
+	* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+	(SharkTopLevelBlock::scan_for_traps): Removed static field traps.
+	(SharkBlock::lookup_for_field_access): Removed.
+
 2009-06-04  Gary Benson  <gbenson@redhat.com>
 
 	* ports/hotspot/src/share/vm/shark/sharkConstant.hpp: New file.
--- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp	Thu Jun 04 09:48:19 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp	Thu Jun 04 11:07:53 2009 -0400
@@ -1002,7 +1002,7 @@
   }
   if (!is_get || value == NULL) {
     if (!is_field)
-      object = lookup_for_field_access();
+      object = builder()->CreateInlineOop(field->holder());
 
     BasicType   basic_type = field->type()->basic_type();
     const Type *stack_type = SharkType::to_stackType(basic_type);
@@ -1165,11 +1165,6 @@
   ShouldNotCallThis();
 }
 
-Value* SharkBlock::lookup_for_field_access()
-{
-  ShouldNotCallThis();
-}
-
 void SharkBlock::do_arraylength()
 {
   ShouldNotCallThis();
--- a/ports/hotspot/src/share/vm/shark/sharkBlock.hpp	Thu Jun 04 09:48:19 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkBlock.hpp	Thu Jun 04 11:07:53 2009 -0400
@@ -202,7 +202,6 @@
   // Helpers
  protected:
   virtual void do_zero_check(SharkValue* value);
-  virtual llvm::Value* lookup_for_field_access();
 
   // Leaf calls
  protected:
--- a/ports/hotspot/src/share/vm/shark/sharkInliner.cpp	Thu Jun 04 09:48:19 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkInliner.cpp	Thu Jun 04 11:07:53 2009 -0400
@@ -760,12 +760,8 @@
       }
     }
 
-    if (!result_pushed) {
-      if (!is_field)
-        return false;
-
+    if (!result_pushed)
       push(false);
-    }
 
     if (field->type()->is_two_word())
       push(false);
--- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp	Thu Jun 04 09:48:19 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp	Thu Jun 04 11:07:53 2009 -0400
@@ -74,20 +74,6 @@
             Deoptimization::Action_none), bci());
         return;
       }
-
-      // If this is a getfield or putfield then there won't be a
-      // pool access and we're done
-      if (is_field)
-        break;
-
-      // There won't be a pool access if this is a constant getstatic
-      if (bc() == Bytecodes::_getstatic && field->is_constant()) {
-        if (SharkConstant::for_field(iter())->is_loaded())
-          break;
-      }
-
-      // Continue to the check
-      index = iter()->get_field_index();
       break;
 
     case Bytecodes::_invokevirtual:
@@ -608,17 +594,6 @@
   builder()->CreateRetVoid();
 }
 
-Value* SharkTopLevelBlock::lookup_for_field_access()
-{
-  SharkConstantPool constants(this);
-  Value *cache = constants.cache_entry_at(iter()->get_field_index());
-
-  return builder()->CreateValueOfStructEntry(
-   cache, ConstantPoolCacheEntry::f1_offset(),
-   SharkType::jobject_type(),
-   "object");
-}
-
 void SharkTopLevelBlock::do_arraylength()
 {
   SharkValue *array = pop();
--- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp	Thu Jun 04 09:48:19 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp	Thu Jun 04 11:07:53 2009 -0400
@@ -220,9 +220,8 @@
  public:
   void emit_IR();
 
-  // Helpers
+  // Branch helpers
  private:
-  llvm::Value* lookup_for_field_access();
   void do_branch(int successor_index);
 
   // Zero checks