src/share/vm/ci/bcEscapeAnalyzer.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7112478 Sdiff src/share/vm/ci

src/share/vm/ci/bcEscapeAnalyzer.hpp

Print this page




  64 
  65   GrowableArray<ciObject *> _dependencies;
  66 
  67   ciMethodBlocks   *_methodBlocks;
  68 
  69   BCEscapeAnalyzer* _parent;
  70   int               _level;
  71 
  72  public:
  73   class  ArgumentMap;
  74   class  StateInfo;
  75 
  76  private:
  77   // helper functions
  78   bool is_argument(int i)    { return i >= 0 && i < _arg_size; }
  79   void set_returned(ArgumentMap vars);
  80   bool is_argument(ArgumentMap vars);
  81   bool is_arg_stack(ArgumentMap vars);
  82   void clear_bits(ArgumentMap vars, VectorSet &bs);
  83   void set_method_escape(ArgumentMap vars);
  84   void set_global_escape(ArgumentMap vars);
  85   void set_dirty(ArgumentMap vars);
  86   void set_modified(ArgumentMap vars, int offs, int size);
  87 
  88   bool is_recursive_call(ciMethod* callee);
  89   void add_dependence(ciKlass *klass, ciMethod *meth);
  90   void propagate_dependencies(ciMethod *meth);
  91   void invoke(StateInfo &state, Bytecodes::Code code, ciMethod* target, ciKlass* holder);
  92 
  93   void iterate_one_block(ciBlock *blk, StateInfo &state, GrowableArray<ciBlock *> &successors);
  94   void iterate_blocks(Arena *);
  95   void merge_block_states(StateInfo *blockstates, ciBlock *dest, StateInfo *s_state);
  96 
  97   // analysis
  98   void initialize();
  99   void clear_escape_info();
 100   void compute_escape_info();
 101   vmIntrinsics::ID known_intrinsic();
 102   bool compute_escape_for_intrinsic(vmIntrinsics::ID iid);
 103   bool do_analysis();
 104 




  64 
  65   GrowableArray<ciObject *> _dependencies;
  66 
  67   ciMethodBlocks   *_methodBlocks;
  68 
  69   BCEscapeAnalyzer* _parent;
  70   int               _level;
  71 
  72  public:
  73   class  ArgumentMap;
  74   class  StateInfo;
  75 
  76  private:
  77   // helper functions
  78   bool is_argument(int i)    { return i >= 0 && i < _arg_size; }
  79   void set_returned(ArgumentMap vars);
  80   bool is_argument(ArgumentMap vars);
  81   bool is_arg_stack(ArgumentMap vars);
  82   void clear_bits(ArgumentMap vars, VectorSet &bs);
  83   void set_method_escape(ArgumentMap vars);
  84   void set_global_escape(ArgumentMap vars, bool merge = false);
  85   void set_dirty(ArgumentMap vars);
  86   void set_modified(ArgumentMap vars, int offs, int size);
  87 
  88   bool is_recursive_call(ciMethod* callee);
  89   void add_dependence(ciKlass *klass, ciMethod *meth);
  90   void propagate_dependencies(ciMethod *meth);
  91   void invoke(StateInfo &state, Bytecodes::Code code, ciMethod* target, ciKlass* holder);
  92 
  93   void iterate_one_block(ciBlock *blk, StateInfo &state, GrowableArray<ciBlock *> &successors);
  94   void iterate_blocks(Arena *);
  95   void merge_block_states(StateInfo *blockstates, ciBlock *dest, StateInfo *s_state);
  96 
  97   // analysis
  98   void initialize();
  99   void clear_escape_info();
 100   void compute_escape_info();
 101   vmIntrinsics::ID known_intrinsic();
 102   bool compute_escape_for_intrinsic(vmIntrinsics::ID iid);
 103   bool do_analysis();
 104 


src/share/vm/ci/bcEscapeAnalyzer.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File