< prev index next >

src/share/vm/opto/callnode.hpp

Print this page
rev 8739 : 8004073: Implement C2 Ideal node specific dump() method
Summary: add Node::dump_rel() to dump a node and its related nodes (the notion of "related" depends on the node at hand); add Node::dump_comp() to dump a node in compact representation; add Node::dump_rel_comp() to dump a node and its related nodes in compact representation; add the required machinery; extend some C2 IR nodes with compact and related dumping
Reviewed-by:

@@ -82,10 +82,11 @@
   virtual const RegMask &in_RegMask(uint) const;
   virtual Node *match( const ProjNode *proj, const Matcher *m );
   virtual uint ideal_reg() const { return 0; }
 #ifndef PRODUCT
   virtual void  dump_spec(outputStream *st) const;
+  virtual void  dump_comp_spec(outputStream *st) const;
 #endif
 };
 
 //------------------------------StartOSRNode-----------------------------------
 // The method start node for on stack replacement code

@@ -108,10 +109,12 @@
   virtual int Opcode() const;
   virtual bool  is_CFG() const { return (_con == TypeFunc::Control); }
   virtual uint ideal_reg() const;
 #ifndef PRODUCT
   virtual void dump_spec(outputStream *st) const;
+  virtual void dump_comp_spec(outputStream *st) const;
+  virtual void rel(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const;
 #endif
 };
 
 
 //------------------------------ReturnNode-------------------------------------

@@ -474,10 +477,11 @@
 
   static  bool           needs_polling_address_input();
 
 #ifndef PRODUCT
   virtual void           dump_spec(outputStream *st) const;
+  virtual void           rel(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const;
 #endif
 };
 
 //------------------------------SafePointScalarObjectNode----------------------
 // A SafePointScalarObjectNode represents the state of a scalarized object

@@ -673,10 +677,11 @@
   void  set_method_handle_invoke(bool f)  { _method_handle_invoke = f; }
   bool  is_method_handle_invoke() const   { return _method_handle_invoke; }
 
 #ifndef PRODUCT
   virtual void  dump_spec(outputStream *st) const;
+  virtual void  dump_comp_spec(outputStream *st) const;
 #endif
 };
 
 //------------------------------CallStaticJavaNode-----------------------------
 // Make a direct subroutine call using Java calling convention (for static

@@ -728,10 +733,11 @@
   }
 
   virtual int         Opcode() const;
 #ifndef PRODUCT
   virtual void        dump_spec(outputStream *st) const;
+  virtual void        dump_comp_spec(outputStream *st) const;
 #endif
 };
 
 //------------------------------CallDynamicJavaNode----------------------------
 // Make a dispatched call using Java calling convention.

@@ -949,10 +955,11 @@
     Coarsened,    // Lock was coarsened
     Nested        // Nested lock
   } _kind;
 #ifndef PRODUCT
   NamedCounter* _counter;
+  static const char* _kind_names[Nested+1];
 #endif
 
 protected:
   // helper functions for lock elimination
   //

@@ -1003,10 +1010,13 @@
   virtual bool may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase){ return false;}
 
 #ifndef PRODUCT
   void create_lock_counter(JVMState* s);
   NamedCounter* counter() const { return _counter; }
+  virtual void dump_spec(outputStream* st) const;
+  virtual void dump_comp_spec(outputStream* st) const;
+  virtual void rel(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const;
 #endif
 };
 
 //------------------------------Lock---------------------------------------
 // High-level lock operation
< prev index next >