< prev index next >

src/share/vm/opto/callGenerator.cpp

Print this page
rev 8961 : [mq]: diff-shenandoah.patch


 968   JVMState** result_jvms = NEW_RESOURCE_ARRAY(JVMState*, (n_predicates+1));
 969 
 970   // Region for normal compilation code if intrinsic failed.
 971   Node* slow_region = new RegionNode(1);
 972 
 973   int results = 0;
 974   for (int predicate = 0; (predicate < n_predicates) && !kit.stopped(); predicate++) {
 975 #ifdef ASSERT
 976     JVMState* old_jvms = kit.jvms();
 977     SafePointNode* old_map = kit.map();
 978     Node* old_io  = old_map->i_o();
 979     Node* old_mem = old_map->memory();
 980     Node* old_exc = old_map->next_exception();
 981 #endif
 982     Node* else_ctrl = _intrinsic->generate_predicate(kit.sync_jvms(), predicate);
 983 #ifdef ASSERT
 984     // Assert(no_new_memory && no_new_io && no_new_exceptions) after generate_predicate.
 985     assert(old_jvms == kit.jvms(), "generate_predicate should not change jvm state");
 986     SafePointNode* new_map = kit.map();
 987     assert(old_io  == new_map->i_o(), "generate_predicate should not change i_o");
 988     assert(old_mem == new_map->memory(), "generate_predicate should not change memory");
 989     assert(old_exc == new_map->next_exception(), "generate_predicate should not add exceptions");
 990 #endif
 991     if (!kit.stopped()) {
 992       PreserveJVMState pjvms(&kit);
 993       // Generate intrinsic code:
 994       JVMState* new_jvms = _intrinsic->generate(kit.sync_jvms());
 995       if (new_jvms == NULL) {
 996         // Intrinsic failed, use normal compilation path for this predicate.
 997         slow_region->add_req(kit.control());
 998       } else {
 999         kit.add_exception_states_from(new_jvms);
1000         kit.set_jvms(new_jvms);
1001         if (!kit.stopped()) {
1002           result_jvms[results++] = kit.jvms();
1003         }
1004       }
1005     }
1006     if (else_ctrl == NULL) {
1007       else_ctrl = kit.C->top();
1008     }




 968   JVMState** result_jvms = NEW_RESOURCE_ARRAY(JVMState*, (n_predicates+1));
 969 
 970   // Region for normal compilation code if intrinsic failed.
 971   Node* slow_region = new RegionNode(1);
 972 
 973   int results = 0;
 974   for (int predicate = 0; (predicate < n_predicates) && !kit.stopped(); predicate++) {
 975 #ifdef ASSERT
 976     JVMState* old_jvms = kit.jvms();
 977     SafePointNode* old_map = kit.map();
 978     Node* old_io  = old_map->i_o();
 979     Node* old_mem = old_map->memory();
 980     Node* old_exc = old_map->next_exception();
 981 #endif
 982     Node* else_ctrl = _intrinsic->generate_predicate(kit.sync_jvms(), predicate);
 983 #ifdef ASSERT
 984     // Assert(no_new_memory && no_new_io && no_new_exceptions) after generate_predicate.
 985     assert(old_jvms == kit.jvms(), "generate_predicate should not change jvm state");
 986     SafePointNode* new_map = kit.map();
 987     assert(old_io  == new_map->i_o(), "generate_predicate should not change i_o");
 988     assert(old_mem == new_map->memory() || UseShenandoahGC, "generate_predicate should not change memory");
 989     assert(old_exc == new_map->next_exception(), "generate_predicate should not add exceptions");
 990 #endif
 991     if (!kit.stopped()) {
 992       PreserveJVMState pjvms(&kit);
 993       // Generate intrinsic code:
 994       JVMState* new_jvms = _intrinsic->generate(kit.sync_jvms());
 995       if (new_jvms == NULL) {
 996         // Intrinsic failed, use normal compilation path for this predicate.
 997         slow_region->add_req(kit.control());
 998       } else {
 999         kit.add_exception_states_from(new_jvms);
1000         kit.set_jvms(new_jvms);
1001         if (!kit.stopped()) {
1002           result_jvms[results++] = kit.jvms();
1003         }
1004       }
1005     }
1006     if (else_ctrl == NULL) {
1007       else_ctrl = kit.C->top();
1008     }


< prev index next >