comparison src/share/vm/opto/node.hpp @ 126:72f4a668df19

6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe Summary: EA and initialization optimizations could bypass these nodes. Reviewed-by: rasbold, never
author kvn
date Wed, 23 Apr 2008 19:09:16 -0700
parents d1a5218d7eaf
children a76240c8b133
comparison
equal deleted inserted replaced
125:d942c7e64bd9 126:72f4a668df19
739 739
740 bool is_Con () const { return (_flags & Flag_is_Con) != 0; } 740 bool is_Con () const { return (_flags & Flag_is_Con) != 0; }
741 bool is_Goto() const { return (_flags & Flag_is_Goto) != 0; } 741 bool is_Goto() const { return (_flags & Flag_is_Goto) != 0; }
742 // The data node which is safe to leave in dead loop during IGVN optimization. 742 // The data node which is safe to leave in dead loop during IGVN optimization.
743 bool is_dead_loop_safe() const { 743 bool is_dead_loop_safe() const {
744 return is_Phi() || is_Proj() || 744 return is_Phi() || (is_Proj() && in(0) == NULL) ||
745 (_flags & (Flag_is_dead_loop_safe | Flag_is_Con)) != 0; 745 ((_flags & (Flag_is_dead_loop_safe | Flag_is_Con)) != 0 &&
746 (!is_Proj() || !in(0)->is_Allocate()));
746 } 747 }
747 748
748 // is_Copy() returns copied edge index (0 or 1) 749 // is_Copy() returns copied edge index (0 or 1)
749 uint is_Copy() const { return (_flags & Flag_is_Copy); } 750 uint is_Copy() const { return (_flags & Flag_is_Copy); }
750 751