< prev index next >

src/hotspot/share/ci/ciMethod.hpp

Print this page
*** 44,10 ***
--- 44,11 ---
  class xmlStream;
  
  // Whether profiling found an oop to be always, never or sometimes
  // null
  enum ProfilePtrKind {
+   ProfileUnknownNull,
    ProfileAlwaysNull,
    ProfileNeverNull,
    ProfileMaybeNull
  };
  

*** 196,11 ***
  
    bool caller_sensitive()       const { return get_Method()->caller_sensitive();       }
    bool force_inline()           const { return get_Method()->force_inline();           }
    bool dont_inline()            const { return get_Method()->dont_inline();            }
    bool intrinsic_candidate()    const { return get_Method()->intrinsic_candidate();    }
!   bool is_static_initializer()  const { return get_Method()->is_static_initializer();  }
    bool changes_current_thread() const { return get_Method()->changes_current_thread(); }
    bool deprecated()             const { return is_loaded() && get_Method()->deprecated(); }
  
    bool check_intrinsic_candidate() const {
      if (intrinsic_id() == vmIntrinsics::_blackhole) {
--- 197,11 ---
  
    bool caller_sensitive()       const { return get_Method()->caller_sensitive();       }
    bool force_inline()           const { return get_Method()->force_inline();           }
    bool dont_inline()            const { return get_Method()->dont_inline();            }
    bool intrinsic_candidate()    const { return get_Method()->intrinsic_candidate();    }
!   bool is_class_initializer()   const { return get_Method()->is_class_initializer();   }
    bool changes_current_thread() const { return get_Method()->changes_current_thread(); }
    bool deprecated()             const { return is_loaded() && get_Method()->deprecated(); }
  
    bool check_intrinsic_candidate() const {
      if (intrinsic_id() == vmIntrinsics::_blackhole) {

*** 267,11 ***
  
    // Does type profiling provide any useful information at this point?
    bool          argument_profiled_type(int bci, int i, ciKlass*& type, ProfilePtrKind& ptr_kind);
    bool          parameter_profiled_type(int i, ciKlass*& type, ProfilePtrKind& ptr_kind);
    bool          return_profiled_type(int bci, ciKlass*& type, ProfilePtrKind& ptr_kind);
! 
    ciField*      get_field_at_bci( int bci, bool &will_link);
    ciMethod*     get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);
    ciMethod*     get_method_at_bci(int bci) {
      bool ignored_will_link;
      ciSignature* ignored_declared_signature;
--- 268,14 ---
  
    // Does type profiling provide any useful information at this point?
    bool          argument_profiled_type(int bci, int i, ciKlass*& type, ProfilePtrKind& ptr_kind);
    bool          parameter_profiled_type(int i, ciKlass*& type, ProfilePtrKind& ptr_kind);
    bool          return_profiled_type(int bci, ciKlass*& type, ProfilePtrKind& ptr_kind);
!   bool          array_access_profiled_type(int bci, ciKlass*& array_type, ciKlass*& element_type, ProfilePtrKind& element_ptr, bool &flat_array, bool &null_free);
+   bool          acmp_profiled_type(int bci, ciKlass*& left_type, ciKlass*& right_type,
+                                    ProfilePtrKind& left_ptr, ProfilePtrKind& right_ptr,
+                                    bool &left_inline_type, bool &right_inline_type);
    ciField*      get_field_at_bci( int bci, bool &will_link);
    ciMethod*     get_method_at_bci(int bci, bool &will_link, ciSignature* *declared_signature);
    ciMethod*     get_method_at_bci(int bci) {
      bool ignored_will_link;
      ciSignature* ignored_declared_signature;

*** 339,10 ***
--- 343,11 ---
    bool is_final       () const                   { return flags().is_final(); }
    bool is_synchronized() const                   { return flags().is_synchronized(); }
    bool is_native      () const                   { return flags().is_native(); }
    bool is_interface   () const                   { return flags().is_interface(); }
    bool is_abstract    () const                   { return flags().is_abstract(); }
+   bool has_vararg     () const                   { return flags().has_vararg(); }
  
    // Other flags
    bool is_final_method() const                   { return is_final() || holder()->is_final(); }
    bool is_default_method() const                 { return !is_abstract() && !is_private() &&
                                                            holder()->is_interface(); }

*** 350,18 ***
    bool has_loops      () const;
    bool has_jsrs       () const;
    bool is_getter      () const;
    bool is_setter      () const;
    bool is_accessor    () const;
-   bool is_initializer () const;
    bool is_empty       () const;
    bool can_be_statically_bound() const           { return _can_be_statically_bound; }
    bool has_reserved_stack_access() const         { return _has_reserved_stack_access; }
    bool is_boxing_method() const;
    bool is_unboxing_method() const;
    bool is_vector_method() const;
-   bool is_object_initializer() const;
  
    bool can_be_statically_bound(ciInstanceKlass* context) const;
  
    bool can_omit_stack_trace() const;
  
--- 355,17 ---
    bool has_loops      () const;
    bool has_jsrs       () const;
    bool is_getter      () const;
    bool is_setter      () const;
    bool is_accessor    () const;
    bool is_empty       () const;
    bool can_be_statically_bound() const           { return _can_be_statically_bound; }
    bool has_reserved_stack_access() const         { return _has_reserved_stack_access; }
    bool is_boxing_method() const;
    bool is_unboxing_method() const;
+   bool is_object_constructor() const;
    bool is_vector_method() const;
  
    bool can_be_statically_bound(ciInstanceKlass* context) const;
  
    bool can_omit_stack_trace() const;
  

*** 380,8 ***
--- 384,13 ---
    // Print the name of this method in various incarnations.
    void print_name(outputStream* st = tty);
    void print_short_name(outputStream* st = tty);
  
    static bool is_consistent_info(ciMethod* declared_method, ciMethod* resolved_method);
+ 
+   // Support for the inline type calling convention
+   bool is_scalarized_arg(int idx) const;
+   bool has_scalarized_args() const;
+   const GrowableArray<SigEntry>* get_sig_cc() const;
  };
  
  #endif // SHARE_CI_CIMETHOD_HPP
< prev index next >