529 n->set_req(i, in);
530 }
531
532 // Delete ith edge of "n"
533 void delete_input_of(Node* n, int i) {
534 rehash_node_delayed(n);
535 n->del_req(i);
536 }
537
538 bool delay_transform() const { return _delay_transform; }
539
540 void set_delay_transform(bool delay) {
541 _delay_transform = delay;
542 }
543
544 // Clone loop predicates. Defined in loopTransform.cpp.
545 Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
546 // Create a new if below new_entry for the predicate to be cloned
547 ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry,
548 Deoptimization::DeoptReason reason,
549 int opcode);
550
551 void remove_speculative_types();
552 void check_no_speculative_types() {
553 _table.check_no_speculative_types();
554 }
555
556 bool is_dominator(Node *d, Node *n) { return is_dominator_helper(d, n, false); }
557
558 #ifndef PRODUCT
559 protected:
560 // Sub-quadratic implementation of VerifyIterativeGVN.
561 julong _verify_counter;
562 julong _verify_full_passes;
563 enum { _verify_window_size = 30 };
564 Node* _verify_window[_verify_window_size];
565 void verify_step(Node* n);
566 #endif
567 };
568
569 //------------------------------PhaseCCP---------------------------------------
|
529 n->set_req(i, in);
530 }
531
532 // Delete ith edge of "n"
533 void delete_input_of(Node* n, int i) {
534 rehash_node_delayed(n);
535 n->del_req(i);
536 }
537
538 bool delay_transform() const { return _delay_transform; }
539
540 void set_delay_transform(bool delay) {
541 _delay_transform = delay;
542 }
543
544 // Clone loop predicates. Defined in loopTransform.cpp.
545 Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
546 // Create a new if below new_entry for the predicate to be cloned
547 ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry,
548 Deoptimization::DeoptReason reason,
549 Opcodes opcode);
550
551 void remove_speculative_types();
552 void check_no_speculative_types() {
553 _table.check_no_speculative_types();
554 }
555
556 bool is_dominator(Node *d, Node *n) { return is_dominator_helper(d, n, false); }
557
558 #ifndef PRODUCT
559 protected:
560 // Sub-quadratic implementation of VerifyIterativeGVN.
561 julong _verify_counter;
562 julong _verify_full_passes;
563 enum { _verify_window_size = 30 };
564 Node* _verify_window[_verify_window_size];
565 void verify_step(Node* n);
566 #endif
567 };
568
569 //------------------------------PhaseCCP---------------------------------------
|