376 |
376 |
377 // Null check oop. Return null-path control into (*null_control). |
377 // Null check oop. Return null-path control into (*null_control). |
378 // Return a cast-not-null node which depends on the not-null control. |
378 // Return a cast-not-null node which depends on the not-null control. |
379 // If never_see_null, use an uncommon trap (*null_control sees a top). |
379 // If never_see_null, use an uncommon trap (*null_control sees a top). |
380 // The cast is not valid along the null path; keep a copy of the original. |
380 // The cast is not valid along the null path; keep a copy of the original. |
|
381 // If safe_for_replace, then we can replace the value with the cast |
|
382 // in the parsing map (the cast is guaranteed to dominate the map) |
381 Node* null_check_oop(Node* value, Node* *null_control, |
383 Node* null_check_oop(Node* value, Node* *null_control, |
382 bool never_see_null = false); |
384 bool never_see_null = false, bool safe_for_replace = false); |
383 |
385 |
384 // Check the null_seen bit. |
386 // Check the null_seen bit. |
385 bool seems_never_null(Node* obj, ciProfileData* data); |
387 bool seems_never_null(Node* obj, ciProfileData* data); |
386 |
388 |
387 // Use the type profile to narrow an object type. |
389 // Use the type profile to narrow an object type. |