887 _AliasLevel = aliaslevel; 888 const int grow_ats = 16; 889 _max_alias_types = grow_ats; 890 _alias_types = NEW_ARENA_ARRAY(comp_arena(), AliasType*, grow_ats); 891 AliasType* ats = NEW_ARENA_ARRAY(comp_arena(), AliasType, grow_ats); 892 Copy::zero_to_bytes(ats, sizeof(AliasType)*grow_ats); 893 { 894 for (int i = 0; i < grow_ats; i++) _alias_types[i] = &ats[i]; 895 } 896 // Initialize the first few types. 897 _alias_types[AliasIdxTop]->Init(AliasIdxTop, NULL); 898 _alias_types[AliasIdxBot]->Init(AliasIdxBot, TypePtr::BOTTOM); 899 _alias_types[AliasIdxRaw]->Init(AliasIdxRaw, TypeRawPtr::BOTTOM); 900 _num_alias_types = AliasIdxRaw+1; 901 // Zero out the alias type cache. 902 Copy::zero_to_bytes(_alias_cache, sizeof(_alias_cache)); 903 // A NULL adr_type hits in the cache right away. Preload the right answer. 904 probe_alias_cache(NULL)->_index = AliasIdxTop; 905 906 _intrinsics = NULL; 907 _macro_nodes = new GrowableArray<Node*>(comp_arena(), 8, 0, NULL); 908 _predicate_opaqs = new GrowableArray<Node*>(comp_arena(), 8, 0, NULL); 909 register_library_intrinsics(); 910 } 911 912 //---------------------------init_start---------------------------------------- 913 // Install the StartNode on this compile object. 914 void Compile::init_start(StartNode* s) { 915 if (failing()) 916 return; // already failing 917 assert(s == start(), ""); 918 } 919 920 StartNode* Compile::start() const { 921 assert(!failing(), ""); 922 for (DUIterator_Fast imax, i = root()->fast_outs(imax); i < imax; i++) { 923 Node* start = root()->fast_out(i); 924 if( start->is_Start() ) 925 return start->as_Start(); 926 } 927 ShouldNotReachHere(); 928 return NULL; | 887 _AliasLevel = aliaslevel; 888 const int grow_ats = 16; 889 _max_alias_types = grow_ats; 890 _alias_types = NEW_ARENA_ARRAY(comp_arena(), AliasType*, grow_ats); 891 AliasType* ats = NEW_ARENA_ARRAY(comp_arena(), AliasType, grow_ats); 892 Copy::zero_to_bytes(ats, sizeof(AliasType)*grow_ats); 893 { 894 for (int i = 0; i < grow_ats; i++) _alias_types[i] = &ats[i]; 895 } 896 // Initialize the first few types. 897 _alias_types[AliasIdxTop]->Init(AliasIdxTop, NULL); 898 _alias_types[AliasIdxBot]->Init(AliasIdxBot, TypePtr::BOTTOM); 899 _alias_types[AliasIdxRaw]->Init(AliasIdxRaw, TypeRawPtr::BOTTOM); 900 _num_alias_types = AliasIdxRaw+1; 901 // Zero out the alias type cache. 902 Copy::zero_to_bytes(_alias_cache, sizeof(_alias_cache)); 903 // A NULL adr_type hits in the cache right away. Preload the right answer. 904 probe_alias_cache(NULL)->_index = AliasIdxTop; 905 906 _intrinsics = NULL; 907 _macro_nodes = new(comp_arena()) GrowableArray<Node*>(comp_arena(), 8, 0, NULL); 908 _predicate_opaqs = new(comp_arena()) GrowableArray<Node*>(comp_arena(), 8, 0, NULL); 909 register_library_intrinsics(); 910 } 911 912 //---------------------------init_start---------------------------------------- 913 // Install the StartNode on this compile object. 914 void Compile::init_start(StartNode* s) { 915 if (failing()) 916 return; // already failing 917 assert(s == start(), ""); 918 } 919 920 StartNode* Compile::start() const { 921 assert(!failing(), ""); 922 for (DUIterator_Fast imax, i = root()->fast_outs(imax); i < imax; i++) { 923 Node* start = root()->fast_out(i); 924 if( start->is_Start() ) 925 return start->as_Start(); 926 } 927 ShouldNotReachHere(); 928 return NULL; |