equal
deleted
inserted
replaced
672 Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1, |
672 Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1, |
673 Flag_avoid_back_to_back_before = Flag_may_be_short_branch << 1, |
673 Flag_avoid_back_to_back_before = Flag_may_be_short_branch << 1, |
674 Flag_avoid_back_to_back_after = Flag_avoid_back_to_back_before << 1, |
674 Flag_avoid_back_to_back_after = Flag_avoid_back_to_back_before << 1, |
675 Flag_has_call = Flag_avoid_back_to_back_after << 1, |
675 Flag_has_call = Flag_avoid_back_to_back_after << 1, |
676 Flag_is_reduction = Flag_has_call << 1, |
676 Flag_is_reduction = Flag_has_call << 1, |
677 Flag_is_expensive = Flag_is_reduction << 1, |
677 Flag_is_scheduled = Flag_is_reduction, |
|
678 Flag_is_expensive = Flag_is_scheduled << 1, |
678 _max_flags = (Flag_is_expensive << 1) - 1 // allow flags combination |
679 _max_flags = (Flag_is_expensive << 1) - 1 // allow flags combination |
679 }; |
680 }; |
680 |
681 |
681 private: |
682 private: |
682 jushort _class_id; |
683 jushort _class_id; |
859 |
860 |
860 // An arithmetic node which accumulates a data in a loop. |
861 // An arithmetic node which accumulates a data in a loop. |
861 // It must have the loop's phi as input and provide a def to the phi. |
862 // It must have the loop's phi as input and provide a def to the phi. |
862 bool is_reduction() const { return (_flags & Flag_is_reduction) != 0; } |
863 bool is_reduction() const { return (_flags & Flag_is_reduction) != 0; } |
863 |
864 |
|
865 // Used in lcm to mark nodes that have scheduled |
|
866 bool is_scheduled() const { return (_flags & Flag_is_scheduled) != 0; } |
|
867 |
864 //----------------- Optimization |
868 //----------------- Optimization |
865 |
869 |
866 // Get the worst-case Type output for this Node. |
870 // Get the worst-case Type output for this Node. |
867 virtual const class Type *bottom_type() const; |
871 virtual const class Type *bottom_type() const; |
868 |
872 |