914 // If we accidentally generate a hash with value NO_HASH the node
915 // won't go into the table and we'll lose a little optimization.
916 enum { NO_HASH = 0 };
917 virtual uint hash() const;
918 virtual uint cmp( const Node &n ) const;
919
920 // Operation appears to be iteratively computed (such as an induction variable)
921 // It is possible for this operation to return false for a loop-varying
922 // value, if it appears (by local graph inspection) to be computed by a simple conditional.
923 bool is_iteratively_computed();
924
925 // Determine if a node is Counted loop induction variable.
926 // The method is defined in loopnode.cpp.
927 const Node* is_loop_iv() const;
928
929 // Return a node with opcode "opc" and same inputs as "this" if one can
930 // be found; Otherwise return NULL;
931 Node* find_similar(int opc);
932
933 // Return the unique control out if only one. Null if none or more than one.
934 Node* unique_ctrl_out();
935
936 //----------------- Code Generation
937
938 // Ideal register class for Matching. Zero means unmatched instruction
939 // (these are cloned instead of converted to machine nodes).
940 virtual uint ideal_reg() const;
941
942 static const uint NotAMachineReg; // must be > max. machine register
943
944 // Do we Match on this edge index or not? Generally false for Control
945 // and true for everything else. Weird for calls & returns.
946 virtual uint match_edge(uint idx) const;
947
948 // Register class output is returned in
949 virtual const RegMask &out_RegMask() const;
950 // Register class input is expected in
951 virtual const RegMask &in_RegMask(uint) const;
952 // Should we clone rather than spill this instruction?
953 bool rematerialize() const;
954
|
914 // If we accidentally generate a hash with value NO_HASH the node
915 // won't go into the table and we'll lose a little optimization.
916 enum { NO_HASH = 0 };
917 virtual uint hash() const;
918 virtual uint cmp( const Node &n ) const;
919
920 // Operation appears to be iteratively computed (such as an induction variable)
921 // It is possible for this operation to return false for a loop-varying
922 // value, if it appears (by local graph inspection) to be computed by a simple conditional.
923 bool is_iteratively_computed();
924
925 // Determine if a node is Counted loop induction variable.
926 // The method is defined in loopnode.cpp.
927 const Node* is_loop_iv() const;
928
929 // Return a node with opcode "opc" and same inputs as "this" if one can
930 // be found; Otherwise return NULL;
931 Node* find_similar(int opc);
932
933 // Return the unique control out if only one. Null if none or more than one.
934 Node* unique_ctrl_out() const;
935
936 //----------------- Code Generation
937
938 // Ideal register class for Matching. Zero means unmatched instruction
939 // (these are cloned instead of converted to machine nodes).
940 virtual uint ideal_reg() const;
941
942 static const uint NotAMachineReg; // must be > max. machine register
943
944 // Do we Match on this edge index or not? Generally false for Control
945 // and true for everything else. Weird for calls & returns.
946 virtual uint match_edge(uint idx) const;
947
948 // Register class output is returned in
949 virtual const RegMask &out_RegMask() const;
950 // Register class input is expected in
951 virtual const RegMask &in_RegMask(uint) const;
952 // Should we clone rather than spill this instruction?
953 bool rematerialize() const;
954
|