< prev index next >

src/hotspot/share/opto/graphKit.hpp

Print this page




 369     return null_check_common(value, type, true, NULL, _gvn.type(value)->speculative_always_null());
 370   }
 371 
 372   // Check if value is null and abort if it is
 373   Node* must_be_not_null(Node* value, bool do_replace_in_map);
 374 
 375   // Null check oop.  Return null-path control into (*null_control).
 376   // Return a cast-not-null node which depends on the not-null control.
 377   // If never_see_null, use an uncommon trap (*null_control sees a top).
 378   // The cast is not valid along the null path; keep a copy of the original.
 379   // If safe_for_replace, then we can replace the value with the cast
 380   // in the parsing map (the cast is guaranteed to dominate the map)
 381   Node* null_check_oop(Node* value, Node* *null_control,
 382                        bool never_see_null = false,
 383                        bool safe_for_replace = false,
 384                        bool speculative = false);
 385 
 386   // Check the null_seen bit.
 387   bool seems_never_null(Node* obj, ciProfileData* data, bool& speculating);
 388 





 389   // Check for unique class for receiver at call
 390   ciKlass* profile_has_unique_klass() {
 391     ciCallProfile profile = method()->call_profile_at_bci(bci());
 392     if (profile.count() >= 0 &&         // no cast failures here
 393         profile.has_receiver(0) &&
 394         profile.morphism() == 1) {
 395       return profile.receiver(0);
 396     }
 397     return NULL;
 398   }
 399 
 400   // record type from profiling with the type system
 401   Node* record_profile_for_speculation(Node* n, ciKlass* exact_kls, ProfilePtrKind ptr_kind);
 402   void record_profiled_arguments_for_speculation(ciMethod* dest_method, Bytecodes::Code bc);
 403   void record_profiled_parameters_for_speculation();
 404   void record_profiled_return_for_speculation();
 405   Node* record_profiled_receiver_for_speculation(Node* n);
 406 
 407   // Use the type profile to narrow an object type.
 408   Node* maybe_cast_profiled_receiver(Node* not_null_obj,




 369     return null_check_common(value, type, true, NULL, _gvn.type(value)->speculative_always_null());
 370   }
 371 
 372   // Check if value is null and abort if it is
 373   Node* must_be_not_null(Node* value, bool do_replace_in_map);
 374 
 375   // Null check oop.  Return null-path control into (*null_control).
 376   // Return a cast-not-null node which depends on the not-null control.
 377   // If never_see_null, use an uncommon trap (*null_control sees a top).
 378   // The cast is not valid along the null path; keep a copy of the original.
 379   // If safe_for_replace, then we can replace the value with the cast
 380   // in the parsing map (the cast is guaranteed to dominate the map)
 381   Node* null_check_oop(Node* value, Node* *null_control,
 382                        bool never_see_null = false,
 383                        bool safe_for_replace = false,
 384                        bool speculative = false);
 385 
 386   // Check the null_seen bit.
 387   bool seems_never_null(Node* obj, ciProfileData* data, bool& speculating);
 388 
 389   void guard_klass_being_initialized(Node* klass);
 390   void guard_init_thread(Node* klass);
 391 
 392   void clinit_barrier(ciInstanceKlass* ik, ciMethod* context);
 393 
 394   // Check for unique class for receiver at call
 395   ciKlass* profile_has_unique_klass() {
 396     ciCallProfile profile = method()->call_profile_at_bci(bci());
 397     if (profile.count() >= 0 &&         // no cast failures here
 398         profile.has_receiver(0) &&
 399         profile.morphism() == 1) {
 400       return profile.receiver(0);
 401     }
 402     return NULL;
 403   }
 404 
 405   // record type from profiling with the type system
 406   Node* record_profile_for_speculation(Node* n, ciKlass* exact_kls, ProfilePtrKind ptr_kind);
 407   void record_profiled_arguments_for_speculation(ciMethod* dest_method, Bytecodes::Code bc);
 408   void record_profiled_parameters_for_speculation();
 409   void record_profiled_return_for_speculation();
 410   Node* record_profiled_receiver_for_speculation(Node* n);
 411 
 412   // Use the type profile to narrow an object type.
 413   Node* maybe_cast_profiled_receiver(Node* not_null_obj,


< prev index next >