117 // controlling RegionNode. Other slots map 1-for-1 with incoming control flow |
117 // controlling RegionNode. Other slots map 1-for-1 with incoming control flow |
118 // paths to the RegionNode. For speed reasons (to avoid another pass) we |
118 // paths to the RegionNode. For speed reasons (to avoid another pass) we |
119 // can turn PhiNodes into copys in-place by NULL'ing out their RegionNode |
119 // can turn PhiNodes into copys in-place by NULL'ing out their RegionNode |
120 // input in slot 0. |
120 // input in slot 0. |
121 class PhiNode : public TypeNode { |
121 class PhiNode : public TypeNode { |
|
122 friend class PhaseRenumberLive; |
|
123 |
122 const TypePtr* const _adr_type; // non-null only for Type::MEMORY nodes. |
124 const TypePtr* const _adr_type; // non-null only for Type::MEMORY nodes. |
123 // The following fields are only used for data PhiNodes to indicate |
125 // The following fields are only used for data PhiNodes to indicate |
124 // that the PhiNode represents the value of a known instance field. |
126 // that the PhiNode represents the value of a known instance field. |
125 int _inst_mem_id; // Instance memory id (node index of the memory Phi) |
127 int _inst_mem_id; // Instance memory id (node index of the memory Phi) |
126 const int _inst_id; // Instance id of the memory slice. |
128 int _inst_id; // Instance id of the memory slice. |
127 const int _inst_index; // Alias index of the instance memory slice. |
129 const int _inst_index; // Alias index of the instance memory slice. |
128 // Array elements references have the same alias_idx but different offset. |
130 // Array elements references have the same alias_idx but different offset. |
129 const int _inst_offset; // Offset of the instance memory slice. |
131 const int _inst_offset; // Offset of the instance memory slice. |
130 // Size is bigger to hold the _adr_type field. |
132 // Size is bigger to hold the _adr_type field. |
131 virtual uint hash() const; // Check the type |
133 virtual uint hash() const; // Check the type |