< prev index next >

src/hotspot/share/opto/matcher.hpp

Print this page
rev 52491 : 8213746: GC/C2 abstraction for C2 matcher


 101   // Convert a dense opcode number to an expanded rule number
 102   const int *_reduceOp;
 103   const int *_leftOp;
 104   const int *_rightOp;
 105 
 106   // Map dense opcode number to info on when rule is swallowed constant.
 107   const bool *_swallowed;
 108 
 109   // Map dense rule number to determine if this is an instruction chain rule
 110   const uint _begin_inst_chain_rule;
 111   const uint _end_inst_chain_rule;
 112 
 113   // We want to clone constants and possible CmpI-variants.
 114   // If we do not clone CmpI, then we can have many instances of
 115   // condition codes alive at once.  This is OK on some chips and
 116   // bad on others.  Hence the machine-dependent table lookup.
 117   const char *_must_clone;
 118 
 119   // Find shared Nodes, or Nodes that otherwise are Matcher roots
 120   void find_shared( Node *n );



 121 #ifdef X86
 122   bool is_bmi_pattern(Node *n, Node *m);
 123 #endif
 124 
 125   // Debug and profile information for nodes in old space:
 126   GrowableArray<Node_Notes*>* _old_node_note_array;
 127 
 128   // Node labeling iterator for instruction selection
 129   Node *Label_Root( const Node *n, State *svec, Node *control, const Node *mem );
 130 
 131   Node *transform( Node *dummy );
 132 
 133   Node_List _projection_list;        // For Machine nodes killing many values
 134 
 135   Node_Array _shared_nodes;
 136 
 137   debug_only(Node_Array _old2new_map;)   // Map roots of ideal-trees to machine-roots
 138   debug_only(Node_Array _new2old_map;)   // Maps machine nodes back to ideal
 139 
 140   // Accessors for the inherited field PhaseTransform::_nodes:




 101   // Convert a dense opcode number to an expanded rule number
 102   const int *_reduceOp;
 103   const int *_leftOp;
 104   const int *_rightOp;
 105 
 106   // Map dense opcode number to info on when rule is swallowed constant.
 107   const bool *_swallowed;
 108 
 109   // Map dense rule number to determine if this is an instruction chain rule
 110   const uint _begin_inst_chain_rule;
 111   const uint _end_inst_chain_rule;
 112 
 113   // We want to clone constants and possible CmpI-variants.
 114   // If we do not clone CmpI, then we can have many instances of
 115   // condition codes alive at once.  This is OK on some chips and
 116   // bad on others.  Hence the machine-dependent table lookup.
 117   const char *_must_clone;
 118 
 119   // Find shared Nodes, or Nodes that otherwise are Matcher roots
 120   void find_shared( Node *n );
 121   bool find_shared_visit(MStack& mstack, Node* n, uint opcode, bool& mem_op, int& mem_addr_idx);
 122   void find_shared_post_visit(Node* n, uint opcode);
 123 
 124 #ifdef X86
 125   bool is_bmi_pattern(Node *n, Node *m);
 126 #endif
 127 
 128   // Debug and profile information for nodes in old space:
 129   GrowableArray<Node_Notes*>* _old_node_note_array;
 130 
 131   // Node labeling iterator for instruction selection
 132   Node *Label_Root( const Node *n, State *svec, Node *control, const Node *mem );
 133 
 134   Node *transform( Node *dummy );
 135 
 136   Node_List _projection_list;        // For Machine nodes killing many values
 137 
 138   Node_Array _shared_nodes;
 139 
 140   debug_only(Node_Array _old2new_map;)   // Map roots of ideal-trees to machine-roots
 141   debug_only(Node_Array _new2old_map;)   // Maps machine nodes back to ideal
 142 
 143   // Accessors for the inherited field PhaseTransform::_nodes:


< prev index next >