573 // Use frequency calculations and code shape to predict if the block
574 // is uncommon.
575 bool is_uncommon(const Block* block);
576
577 #ifdef ASSERT
578 Unique_Node_List _raw_oops;
579 #endif
580
581 // Do global code motion by first building dominator tree and estimate block frequency
582 // Returns true on success
583 bool do_global_code_motion();
584
585 // Compute the (backwards) latency of a node from the uses
586 void latency_from_uses(Node *n);
587
588 // Set loop alignment
589 void set_loop_alignment();
590
591 // Remove empty basic blocks
592 void remove_empty_blocks();
593 void fixup_flow();
594
595 // Insert a node into a block at index and map the node to the block
596 void insert(Block *b, uint idx, Node *n) {
597 b->insert_node(n , idx);
598 map_node_to_block(n, b);
599 }
600
601 // Check all nodes and postalloc_expand them if necessary.
602 void postalloc_expand(PhaseRegAlloc* _ra);
603
604 #ifndef PRODUCT
605 bool trace_opto_pipelining() const { return _trace_opto_pipelining; }
606
607 // Debugging print of CFG
608 void dump( ) const; // CFG only
609 void _dump_cfg( const Node *end, VectorSet &visited ) const;
610 void verify() const;
611 void dump_headers();
612 #else
|
573 // Use frequency calculations and code shape to predict if the block
574 // is uncommon.
575 bool is_uncommon(const Block* block);
576
577 #ifdef ASSERT
578 Unique_Node_List _raw_oops;
579 #endif
580
581 // Do global code motion by first building dominator tree and estimate block frequency
582 // Returns true on success
583 bool do_global_code_motion();
584
585 // Compute the (backwards) latency of a node from the uses
586 void latency_from_uses(Node *n);
587
588 // Set loop alignment
589 void set_loop_alignment();
590
591 // Remove empty basic blocks
592 void remove_empty_blocks();
593 Block *fixup_trap_based_check(Node *branch, Block *block, int block_pos, Block *bnext);
594 void fixup_flow();
595
596 // Insert a node into a block at index and map the node to the block
597 void insert(Block *b, uint idx, Node *n) {
598 b->insert_node(n , idx);
599 map_node_to_block(n, b);
600 }
601
602 // Check all nodes and postalloc_expand them if necessary.
603 void postalloc_expand(PhaseRegAlloc* _ra);
604
605 #ifndef PRODUCT
606 bool trace_opto_pipelining() const { return _trace_opto_pipelining; }
607
608 // Debugging print of CFG
609 void dump( ) const; // CFG only
610 void _dump_cfg( const Node *end, VectorSet &visited ) const;
611 void verify() const;
612 void dump_headers();
613 #else
|