255 protected: |
255 protected: |
256 friend class PhaseCFG; // Access to address of _in array elements |
256 friend class PhaseCFG; // Access to address of _in array elements |
257 Node **_in; // Array of use-def references to Nodes |
257 Node **_in; // Array of use-def references to Nodes |
258 Node **_out; // Array of def-use references to Nodes |
258 Node **_out; // Array of def-use references to Nodes |
259 |
259 |
260 // Input edges are split into two catagories. Required edges are required |
260 // Input edges are split into two categories. Required edges are required |
261 // for semantic correctness; order is important and NULLs are allowed. |
261 // for semantic correctness; order is important and NULLs are allowed. |
262 // Precedence edges are used to help determine execution order and are |
262 // Precedence edges are used to help determine execution order and are |
263 // added, e.g., for scheduling purposes. They are unordered and not |
263 // added, e.g., for scheduling purposes. They are unordered and not |
264 // duplicated; they have no embedded NULLs. Edges from 0 to _cnt-1 |
264 // duplicated; they have no embedded NULLs. Edges from 0 to _cnt-1 |
265 // are required, from _cnt to _max-1 are precedence edges. |
265 // are required, from _cnt to _max-1 are precedence edges. |
852 |
852 |
853 // Hash & compare functions, for pessimistic value numbering |
853 // Hash & compare functions, for pessimistic value numbering |
854 |
854 |
855 // If the hash function returns the special sentinel value NO_HASH, |
855 // If the hash function returns the special sentinel value NO_HASH, |
856 // the node is guaranteed never to compare equal to any other node. |
856 // the node is guaranteed never to compare equal to any other node. |
857 // If we accidently generate a hash with value NO_HASH the node |
857 // If we accidentally generate a hash with value NO_HASH the node |
858 // won't go into the table and we'll lose a little optimization. |
858 // won't go into the table and we'll lose a little optimization. |
859 enum { NO_HASH = 0 }; |
859 enum { NO_HASH = 0 }; |
860 virtual uint hash() const; |
860 virtual uint hash() const; |
861 virtual uint cmp( const Node &n ) const; |
861 virtual uint cmp( const Node &n ) const; |
862 |
862 |