Lines Matching defs:Block
59 class Block;
510 Block* _pred;
512 Block* _succ;
515 SuccIter(Block* pred) : _pred(pred), _index(-1), _succ(NULL) { next(); }
517 Block* pred() { return _pred; } // Return predecessor
519 Block* succ() { return _succ; } // Return current successor
521 void set_succ(Block* succ); // Update current successor
526 class Block : public ResourceObj {
529 GrowableArray<Block*>* _exceptions;
531 GrowableArray<Block*>* _successors;
555 Block* _next;
556 Block* _rpo_next; // Reverse post order list
564 // Compute the exceptional successors and types for this Block.
569 Block(ciTypeFlow* outer, ciBlock* ciblk, JsrSet* jsrs);
611 // Get the successors for this Block.
612 GrowableArray<Block*>* successors(ciBytecodeStream* str,
615 GrowableArray<Block*>* successors() {
620 // Get the exceptional successors for this Block.
621 GrowableArray<Block*>* exceptions() {
629 // exceptional successors for this Block.
637 // Is this Block compatible with a given JsrSet?
666 void set_next(Block* block) { _next = block; }
667 Block* next() const { return _next; }
687 void set_rpo_next(Block* b) { _rpo_next = b; }
688 Block* rpo_next() { return _rpo_next; }
701 Block* looping_succ(Loop* lp); // Successor inside of loop
719 Block* _head; // Head of loop
720 Block* _tail; // Tail of loop
725 Loop(Block* head, Block* tail) :
733 Block* head() const { return _head; }
734 Block* tail() const { return _tail; }
738 void set_head(Block* hd) { _head = hd; }
739 void set_tail(Block* tl) { _tail = tl; }
745 bool contains(Block* blk) const { return contains(blk->loop()); }
756 void set_irreducible(Block* entry) {
809 Block** _block_map;
812 GrowableArray<Block*>** _idx_to_blocklist;
823 Block* clone_loop_head(Loop* lp, StateVector* temp_vector, JsrSet* temp_set);
828 Block* block_at(int bci, JsrSet* set, CreateOption option = create_public_copy);
831 Block* get_block_for(int ciBlockIndex, JsrSet* jsrs, CreateOption option = create_public_copy);
838 Block* existing_block_at(int bci, JsrSet* set) { return block_at(bci, set, no_create); }
853 Block* pre_order_at(int po) const { assert(0 <= po && po < block_count(), "out of bounds");
855 Block* start_block() const { return pre_order_at(start_block_num()); }
857 Block* rpo_at(int rpo) const { assert(0 <= rpo && rpo < block_count(), "out of bounds");
864 Block* _work_list;
867 Block* _rpo_list;
869 // Next Block::_pre_order. After mapping, doubles as block_count.
876 Block* work_list_next();
879 void add_to_work_list(Block* block);
882 void prepend_to_rpo_list(Block* blk) {
908 void flow_exceptions(GrowableArray<Block*>* exceptions,
914 void flow_successors(GrowableArray<Block*>* successors,
920 void flow_block(Block* block,
929 void df_flow_types(Block* start,
935 void build_loop_tree(Block* blk);