< prev index next >

src/share/vm/opto/loopnode.hpp

Print this page

        

*** 119,129 **** init_req(EntryControl, entry); init_req(LoopBackControl, backedge); } virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); ! virtual int Opcode() const; bool can_be_counted_loop(PhaseTransform* phase) const { return req() == 3 && in(0) != NULL && in(1) != NULL && phase->type(in(1)) != Type::TOP && in(2) != NULL && phase->type(in(2)) != Type::TOP; } --- 119,129 ---- init_req(EntryControl, entry); init_req(LoopBackControl, backedge); } virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); ! virtual uint Opcode() const; bool can_be_counted_loop(PhaseTransform* phase) const { return req() == 3 && in(0) != NULL && in(1) != NULL && phase->type(in(1)) != Type::TOP && in(2) != NULL && phase->type(in(2)) != Type::TOP; }
*** 196,206 **** init_class_id(Class_CountedLoop); // Initialize _trip_count to the largest possible value. // Will be reset (lower) if the loop's trip count is known. } ! virtual int Opcode() const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); Node *init_control() const { return in(EntryControl); } Node *back_control() const { return in(LoopBackControl); } CountedLoopEndNode *loopexit() const; --- 196,206 ---- init_class_id(Class_CountedLoop); // Initialize _trip_count to the largest possible value. // Will be reset (lower) if the loop's trip count is known. } ! virtual uint Opcode() const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); Node *init_control() const { return in(EntryControl); } Node *back_control() const { return in(LoopBackControl); } CountedLoopEndNode *loopexit() const;
*** 292,302 **** CountedLoopEndNode( Node *control, Node *test, float prob, float cnt ) : IfNode( control, test, prob, cnt) { init_class_id(Class_CountedLoopEnd); } ! virtual int Opcode() const; Node *cmp_node() const { return (in(TestValue)->req() >=2) ? in(TestValue)->in(1) : NULL; } Node *incr() const { Node *tmp = cmp_node(); return (tmp && tmp->req()==3) ? tmp->in(1) : NULL; } Node *limit() const { Node *tmp = cmp_node(); return (tmp && tmp->req()==3) ? tmp->in(2) : NULL; } Node *stride() const { Node *tmp = incr (); return (tmp && tmp->req()==3) ? tmp->in(2) : NULL; } --- 292,302 ---- CountedLoopEndNode( Node *control, Node *test, float prob, float cnt ) : IfNode( control, test, prob, cnt) { init_class_id(Class_CountedLoopEnd); } ! virtual uint Opcode() const; Node *cmp_node() const { return (in(TestValue)->req() >=2) ? in(TestValue)->in(1) : NULL; } Node *incr() const { Node *tmp = cmp_node(); return (tmp && tmp->req()==3) ? tmp->in(1) : NULL; } Node *limit() const { Node *tmp = cmp_node(); return (tmp && tmp->req()==3) ? tmp->in(2) : NULL; } Node *stride() const { Node *tmp = incr (); return (tmp && tmp->req()==3) ? tmp->in(2) : NULL; }
*** 364,374 **** LoopLimitNode( Compile* C, Node *init, Node *limit, Node *stride ) : Node(0,init,limit,stride) { // Put it on the Macro nodes list to optimize during macro nodes expansion. init_flags(Flag_is_macro); C->add_macro_node(this); } ! virtual int Opcode() const; virtual const Type *bottom_type() const { return TypeInt::INT; } virtual uint ideal_reg() const { return Op_RegI; } virtual const Type* Value(PhaseGVN* phase) const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual Node* Identity(PhaseGVN* phase); --- 364,374 ---- LoopLimitNode( Compile* C, Node *init, Node *limit, Node *stride ) : Node(0,init,limit,stride) { // Put it on the Macro nodes list to optimize during macro nodes expansion. init_flags(Flag_is_macro); C->add_macro_node(this); } ! virtual uint Opcode() const; virtual const Type *bottom_type() const { return TypeInt::INT; } virtual uint ideal_reg() const { return Op_RegI; } virtual const Type* Value(PhaseGVN* phase) const; virtual Node *Ideal(PhaseGVN *phase, bool can_reshape); virtual Node* Identity(PhaseGVN* phase);
< prev index next >