src/share/vm/adlc/formssel.hpp

Print this page
rev 7060 : 8058880: Introduce identifier TEMP_DEF for effects in adl.


 895   ~Component();
 896 
 897 
 898   // Return 'true' if this use def info equals the parameter
 899   bool  is(int use_def_kill_enum) const;
 900   // Return 'true' if this use def info is a superset of parameter
 901   bool  isa(int use_def_kill_enum) const;
 902   int   promote_use_def_info(int new_use_def);
 903   const char *base_type(FormDict &globals);
 904   // Form::DataType is_base_constant(FormDict &globals);
 905 
 906   void dump();                     // Debug printer
 907   void output(FILE *fp);           // Write to output files
 908   const char* getUsedefName();
 909 
 910 public:
 911   // Implementation depends upon working bit intersection and union.
 912   enum use_def_enum {
 913     INVALID = 0x0,
 914     USE     = 0x1,
 915     DEF     = 0x2, USE_DEF   = 0x3,
 916     KILL    = 0x4, USE_KILL  = 0x5,


 917     SYNTHETIC = 0x8,
 918     TEMP = USE | SYNTHETIC,

 919     CALL = 0x10
 920   };
 921 };
 922 
 923 
 924 //------------------------------MatchNode--------------------------------------
 925 class MatchNode : public Form {
 926 private:
 927 
 928 public:
 929   // Public Data
 930   const char  *_result;            // The name of the output of this node
 931   const char  *_name;              // The name that appeared in the match rule
 932   const char  *_opType;            // The Operation/Type matched
 933   MatchNode   *_lChild;            // Left child in expression tree
 934   MatchNode   *_rChild;            // Right child in expression tree
 935   int         _numleaves;          // Sum of numleaves for all direct children
 936   ArchDesc    &_AD;                // Reference to ArchDesc object
 937   char        *_internalop;        // String representing internal operand
 938   int         _commutative_id;     // id of commutative operation




 895   ~Component();
 896 
 897 
 898   // Return 'true' if this use def info equals the parameter
 899   bool  is(int use_def_kill_enum) const;
 900   // Return 'true' if this use def info is a superset of parameter
 901   bool  isa(int use_def_kill_enum) const;
 902   int   promote_use_def_info(int new_use_def);
 903   const char *base_type(FormDict &globals);
 904   // Form::DataType is_base_constant(FormDict &globals);
 905 
 906   void dump();                     // Debug printer
 907   void output(FILE *fp);           // Write to output files
 908   const char* getUsedefName();
 909 
 910 public:
 911   // Implementation depends upon working bit intersection and union.
 912   enum use_def_enum {
 913     INVALID   = 0x0,
 914     USE       = 0x1,
 915     DEF       = 0x2,
 916     USE_DEF   = USE | DEF,
 917     KILL      = 0x4,
 918     USE_KILL  = USE | KILL,
 919     SYNTHETIC = 0x8,
 920     TEMP      = USE | SYNTHETIC,
 921     TEMP_DEF  = TEMP | DEF,
 922     CALL      = 0x10
 923   };
 924 };
 925 
 926 
 927 //------------------------------MatchNode--------------------------------------
 928 class MatchNode : public Form {
 929 private:
 930 
 931 public:
 932   // Public Data
 933   const char  *_result;            // The name of the output of this node
 934   const char  *_name;              // The name that appeared in the match rule
 935   const char  *_opType;            // The Operation/Type matched
 936   MatchNode   *_lChild;            // Left child in expression tree
 937   MatchNode   *_rChild;            // Right child in expression tree
 938   int         _numleaves;          // Sum of numleaves for all direct children
 939   ArchDesc    &_AD;                // Reference to ArchDesc object
 940   char        *_internalop;        // String representing internal operand
 941   int         _commutative_id;     // id of commutative operation