comparison src/share/vm/c1/c1_LinearScan.cpp @ 1584:b812ff5abc73

6958292: C1: Enable parallel compilation Summary: Enable parallel compilation in C1 Reviewed-by: never, kvn
author iveresov
date Fri, 04 Jun 2010 11:18:04 -0700
parents c18cbe5936b8
children 126ea7725993
comparison
equal deleted inserted replaced
1583:02e771df338e 1584:b812ff5abc73
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),