< prev index next >

src/hotspot/share/c1/c1_GraphBuilder.cpp

Print this page




  24 
  25 #include "precompiled.hpp"
  26 #include "c1/c1_CFGPrinter.hpp"
  27 #include "c1/c1_Canonicalizer.hpp"
  28 #include "c1/c1_Compilation.hpp"
  29 #include "c1/c1_GraphBuilder.hpp"
  30 #include "c1/c1_InstructionPrinter.hpp"
  31 #include "ci/ciCallSite.hpp"
  32 #include "ci/ciField.hpp"
  33 #include "ci/ciKlass.hpp"
  34 #include "ci/ciMemberName.hpp"
  35 #include "compiler/compileBroker.hpp"
  36 #include "interpreter/bytecode.hpp"
  37 #include "memory/resourceArea.hpp"
  38 #include "oops/oop.inline.hpp"
  39 #include "runtime/sharedRuntime.hpp"
  40 #include "runtime/compilationPolicy.hpp"
  41 #include "runtime/vm_version.hpp"
  42 #include "utilities/bitMap.inline.hpp"
  43 
  44 class BlockListBuilder VALUE_OBJ_CLASS_SPEC {
  45  private:
  46   Compilation* _compilation;
  47   IRScope*     _scope;
  48 
  49   BlockList    _blocks;                // internal list of all blocks
  50   BlockList*   _bci2block;             // mapping from bci to blocks for GraphBuilder
  51 
  52   // fields used by mark_loops
  53   ResourceBitMap _active;              // for iteration of control flow graph
  54   ResourceBitMap _visited;             // for iteration of control flow graph
  55   intArray       _loop_map;            // caches the information if a block is contained in a loop
  56   int            _next_loop_index;     // next free loop number
  57   int            _next_block_number;   // for reverse postorder numbering of blocks
  58 
  59   // accessors
  60   Compilation*  compilation() const              { return _compilation; }
  61   IRScope*      scope() const                    { return _scope; }
  62   ciMethod*     method() const                   { return scope()->method(); }
  63   XHandlers*    xhandlers() const                { return scope()->xhandlers(); }
  64 




  24 
  25 #include "precompiled.hpp"
  26 #include "c1/c1_CFGPrinter.hpp"
  27 #include "c1/c1_Canonicalizer.hpp"
  28 #include "c1/c1_Compilation.hpp"
  29 #include "c1/c1_GraphBuilder.hpp"
  30 #include "c1/c1_InstructionPrinter.hpp"
  31 #include "ci/ciCallSite.hpp"
  32 #include "ci/ciField.hpp"
  33 #include "ci/ciKlass.hpp"
  34 #include "ci/ciMemberName.hpp"
  35 #include "compiler/compileBroker.hpp"
  36 #include "interpreter/bytecode.hpp"
  37 #include "memory/resourceArea.hpp"
  38 #include "oops/oop.inline.hpp"
  39 #include "runtime/sharedRuntime.hpp"
  40 #include "runtime/compilationPolicy.hpp"
  41 #include "runtime/vm_version.hpp"
  42 #include "utilities/bitMap.inline.hpp"
  43 
  44 class BlockListBuilder {
  45  private:
  46   Compilation* _compilation;
  47   IRScope*     _scope;
  48 
  49   BlockList    _blocks;                // internal list of all blocks
  50   BlockList*   _bci2block;             // mapping from bci to blocks for GraphBuilder
  51 
  52   // fields used by mark_loops
  53   ResourceBitMap _active;              // for iteration of control flow graph
  54   ResourceBitMap _visited;             // for iteration of control flow graph
  55   intArray       _loop_map;            // caches the information if a block is contained in a loop
  56   int            _next_loop_index;     // next free loop number
  57   int            _next_block_number;   // for reverse postorder numbering of blocks
  58 
  59   // accessors
  60   Compilation*  compilation() const              { return _compilation; }
  61   IRScope*      scope() const                    { return _scope; }
  62   ciMethod*     method() const                   { return scope()->method(); }
  63   XHandlers*    xhandlers() const                { return scope()->xhandlers(); }
  64 


< prev index next >