hotspot/src/share/vm/c1/c1_LinearScan.cpp
changeset 5707 6c66849ed24e
parent 5547 f4b087cbb361
child 6176 4d9030fe341f
equal deleted inserted replaced
5706:0c91076143f9 5707:6c66849ed24e
    82  , _cached_blocks(*ir->linear_scan_order())
    82  , _cached_blocks(*ir->linear_scan_order())
    83 #ifdef X86
    83 #ifdef X86
    84  , _fpu_stack_allocator(NULL)
    84  , _fpu_stack_allocator(NULL)
    85 #endif
    85 #endif
    86 {
    86 {
    87   // note: to use more than on instance of LinearScan at a time this function call has to
       
    88   //       be moved somewhere outside of this constructor:
       
    89   Interval::initialize();
       
    90 
       
    91   assert(this->ir() != NULL,          "check if valid");
    87   assert(this->ir() != NULL,          "check if valid");
    92   assert(this->compilation() != NULL, "check if valid");
    88   assert(this->compilation() != NULL, "check if valid");
    93   assert(this->gen() != NULL,         "check if valid");
    89   assert(this->gen() != NULL,         "check if valid");
    94   assert(this->frame_map() != NULL,   "check if valid");
    90   assert(this->frame_map() != NULL,   "check if valid");
    95 }
    91 }
  3927 {
  3923 {
  3928 }
  3924 }
  3929 
  3925 
  3930 // initialize sentinel
  3926 // initialize sentinel
  3931 Range* Range::_end = NULL;
  3927 Range* Range::_end = NULL;
  3932 void Range::initialize() {
  3928 void Range::initialize(Arena* arena) {
  3933   _end = new Range(max_jint, max_jint, NULL);
  3929   _end = new (arena) Range(max_jint, max_jint, NULL);
  3934 }
  3930 }
  3935 
  3931 
  3936 int Range::intersects_at(Range* r2) const {
  3932 int Range::intersects_at(Range* r2) const {
  3937   const Range* r1 = this;
  3933   const Range* r1 = this;
  3938 
  3934 
  3974 
  3970 
  3975 // **** Implementation of Interval **********************************
  3971 // **** Implementation of Interval **********************************
  3976 
  3972 
  3977 // initialize sentinel
  3973 // initialize sentinel
  3978 Interval* Interval::_end = NULL;
  3974 Interval* Interval::_end = NULL;
  3979 void Interval::initialize() {
  3975 void Interval::initialize(Arena* arena) {
  3980   Range::initialize();
  3976   Range::initialize(arena);
  3981   _end = new Interval(-1);
  3977   _end = new (arena) Interval(-1);
  3982 }
  3978 }
  3983 
  3979 
  3984 Interval::Interval(int reg_num) :
  3980 Interval::Interval(int reg_num) :
  3985   _reg_num(reg_num),
  3981   _reg_num(reg_num),
  3986   _type(T_ILLEGAL),
  3982   _type(T_ILLEGAL),