comparison src/share/vm/opto/parse.hpp @ 1172:b2b6a9bf6238

6894779: Loop Predication for Loop Optimizer in C2 Summary: Loop predication implementation Reviewed-by: never, kvn
author cfang
date Tue, 12 Jan 2010 14:37:35 -0800
parents c3b315a0d58a
children fdd57634910e
comparison
equal deleted inserted replaced
1160:f24201449cac 1172:b2b6a9bf6238
428 if (UseLoopSafepoints && target_bci <= bci()) { 428 if (UseLoopSafepoints && target_bci <= bci()) {
429 add_safepoint(); 429 add_safepoint();
430 } 430 }
431 } 431 }
432 432
433 // Return true if the parser should add a loop predicate
434 bool should_add_predicate(int target_bci);
435 // Insert a loop predicate into the graph
436 void add_predicate();
437
433 // Note: Intrinsic generation routines may be found in library_call.cpp. 438 // Note: Intrinsic generation routines may be found in library_call.cpp.
434 439
435 // Helper function to setup Ideal Call nodes 440 // Helper function to setup Ideal Call nodes
436 void do_call(); 441 void do_call();
437 442
489 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci); 494 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci);
490 bool seems_never_taken(float prob); 495 bool seems_never_taken(float prob);
491 496
492 void do_ifnull(BoolTest::mask btest, Node* c); 497 void do_ifnull(BoolTest::mask btest, Node* c);
493 void do_if(BoolTest::mask btest, Node* c); 498 void do_if(BoolTest::mask btest, Node* c);
494 void repush_if_args(); 499 int repush_if_args();
495 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob, 500 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
496 Block* path, Block* other_path); 501 Block* path, Block* other_path);
497 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask); 502 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
498 Node* jump_if_join(Node* iffalse, Node* iftrue); 503 Node* jump_if_join(Node* iffalse, Node* iftrue);
499 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index); 504 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);