< 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
  };
  

@@ -200,11 +201,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 is_class_initializer()  const { return get_Method()->is_class_initializer(); }
  
    bool check_intrinsic_candidate() const {
      if (intrinsic_id() == vmIntrinsics::_blackhole) {
        // This is the intrinsic without an associated method, so no intrinsic_candidate
        // flag is set. The intrinsic is still correct.

@@ -269,11 +270,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;

@@ -340,10 +344,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(); }

@@ -351,18 +356,19 @@
    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_object_constructor() const;
+   bool is_static_init_factory() const;
+   bool is_object_constructor_or_class_initializer() const;
    bool is_vector_method() const;
-   bool is_object_initializer() const;
  
    bool can_be_statically_bound(ciInstanceKlass* context) const;
  
    // Replay data methods
    static void dump_name_as_ascii(outputStream* st, Method* method);

@@ -379,8 +385,12 @@
    // 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 has_scalarized_args() const;
+   const GrowableArray<SigEntry>* get_sig_cc();
  };
  
  #endif // SHARE_CI_CIMETHOD_HPP
< prev index next >