58 : Node(c0,c1,c2,c3,c4) { |
58 : Node(c0,c1,c2,c3,c4) { |
59 init_class_id(Class_Mem); |
59 init_class_id(Class_Mem); |
60 debug_only(_adr_type=at; adr_type();) |
60 debug_only(_adr_type=at; adr_type();) |
61 } |
61 } |
62 |
62 |
|
63 public: |
63 // Helpers for the optimizer. Documented in memnode.cpp. |
64 // Helpers for the optimizer. Documented in memnode.cpp. |
64 static bool detect_ptr_independence(Node* p1, AllocateNode* a1, |
65 static bool detect_ptr_independence(Node* p1, AllocateNode* a1, |
65 Node* p2, AllocateNode* a2, |
66 Node* p2, AllocateNode* a2, |
66 PhaseTransform* phase); |
67 PhaseTransform* phase); |
67 static bool adr_phi_is_loop_invariant(Node* adr_phi, Node* cast); |
68 static bool adr_phi_is_loop_invariant(Node* adr_phi, Node* cast); |
68 |
69 |
69 public: |
|
70 // This one should probably be a phase-specific function: |
70 // This one should probably be a phase-specific function: |
71 static bool detect_dominating_control(Node* dom, Node* sub); |
71 static bool detect_dominating_control(Node* dom, Node* sub); |
72 |
72 |
73 // Is this Node a MemNode or some descendent? Default is YES. |
73 // Is this Node a MemNode or some descendent? Default is YES. |
74 virtual Node *Ideal_DU_postCCP( PhaseCCP *ccp ); |
74 virtual Node *Ideal_DU_postCCP( PhaseCCP *ccp ); |