src/hotspot/share/opto/parse.hpp
changeset 50623 5209d8a6303e
parent 49877 d84f06a0cae1
child 53244 9807daeb47c4
equal deleted inserted replaced
50622:21b96ce2ed10 50623:5209d8a6303e
   159     bool               _is_parsed;      // has this block been parsed yet?
   159     bool               _is_parsed;      // has this block been parsed yet?
   160     bool               _is_handler;     // is this block an exception handler?
   160     bool               _is_handler;     // is this block an exception handler?
   161     bool               _has_merged_backedge; // does this block have merged backedge?
   161     bool               _has_merged_backedge; // does this block have merged backedge?
   162     SafePointNode*     _start_map;      // all values flowing into this block
   162     SafePointNode*     _start_map;      // all values flowing into this block
   163     MethodLivenessResult _live_locals;  // lazily initialized liveness bitmap
   163     MethodLivenessResult _live_locals;  // lazily initialized liveness bitmap
       
   164     bool               _has_predicates; // Were predicates added before parsing of the loop head?
   164 
   165 
   165     int                _num_successors; // Includes only normal control flow.
   166     int                _num_successors; // Includes only normal control flow.
   166     int                _all_successors; // Include exception paths also.
   167     int                _all_successors; // Include exception paths also.
   167     Block**            _successors;
   168     Block**            _successors;
   168 
   169 
   200     }
   201     }
   201 #endif
   202 #endif
   202 
   203 
   203     // True when all non-exception predecessors have been parsed.
   204     // True when all non-exception predecessors have been parsed.
   204     bool is_ready() const                  { return preds_parsed() == pred_count(); }
   205     bool is_ready() const                  { return preds_parsed() == pred_count(); }
       
   206 
       
   207     bool has_predicates() const            { return _has_predicates; }
       
   208     void set_has_predicates()              { _has_predicates = true; }
   205 
   209 
   206     int num_successors() const             { return _num_successors; }
   210     int num_successors() const             { return _num_successors; }
   207     int all_successors() const             { return _all_successors; }
   211     int all_successors() const             { return _all_successors; }
   208     Block* successor_at(int i) const {
   212     Block* successor_at(int i) const {
   209       assert((uint)i < (uint)all_successors(), "");
   213       assert((uint)i < (uint)all_successors(), "");
   550   void    adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
   554   void    adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
   551                               Block* path, Block* other_path);
   555                               Block* path, Block* other_path);
   552   void    sharpen_type_after_if(BoolTest::mask btest,
   556   void    sharpen_type_after_if(BoolTest::mask btest,
   553                                 Node* con, const Type* tcon,
   557                                 Node* con, const Type* tcon,
   554                                 Node* val, const Type* tval);
   558                                 Node* val, const Type* tval);
       
   559   void    maybe_add_predicate_after_if(Block* path);
   555   IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask, float prob, float cnt);
   560   IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask, float prob, float cnt);
   556   Node*   jump_if_join(Node* iffalse, Node* iftrue);
   561   Node*   jump_if_join(Node* iffalse, Node* iftrue);
   557   void    jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index, bool unc);
   562   void    jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index, bool unc);
   558   void    jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index, bool unc);
   563   void    jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index, bool unc);
   559   void    jump_if_always_fork(int dest_bci_if_true, int prof_table_index, bool unc);
   564   void    jump_if_always_fork(int dest_bci_if_true, int prof_table_index, bool unc);