Mercurial > hg > truffle
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); |