Mercurial > hg > graal-compiler
comparison src/share/vm/opto/node.cpp @ 65:99269dbf4ba8
6674588: (Escape Analysis) Improve Escape Analysis code
Summary: Current EA code has several problems which have to be fixed.
Reviewed-by: jrose, sgoldman
author | kvn |
---|---|
date | Fri, 14 Mar 2008 15:26:33 -0700 |
parents | 7c1f32ae4a20 |
children | f3b3fe64f59f ba764ed4b6f2 |
comparison
equal
deleted
inserted
replaced
64:b8f5ba577b02 | 65:99269dbf4ba8 |
---|---|
810 // %%% Temporary, until we sort out CheckCastPP vs. CastPP. | 810 // %%% Temporary, until we sort out CheckCastPP vs. CastPP. |
811 // Strip away casting. (It is depth-limited.) | 811 // Strip away casting. (It is depth-limited.) |
812 Node* Node::uncast() const { | 812 Node* Node::uncast() const { |
813 // Should be inline: | 813 // Should be inline: |
814 //return is_ConstraintCast() ? uncast_helper(this) : (Node*) this; | 814 //return is_ConstraintCast() ? uncast_helper(this) : (Node*) this; |
815 if (is_ConstraintCast() || | 815 if (is_ConstraintCast() || is_CheckCastPP()) |
816 (is_Type() && req() == 2 && Opcode() == Op_CheckCastPP)) | |
817 return uncast_helper(this); | 816 return uncast_helper(this); |
818 else | 817 else |
819 return (Node*) this; | 818 return (Node*) this; |
820 } | 819 } |
821 | 820 |
825 for (uint i = 0; i < max_depth; i++) { | 824 for (uint i = 0; i < max_depth; i++) { |
826 if (p == NULL || p->req() != 2) { | 825 if (p == NULL || p->req() != 2) { |
827 break; | 826 break; |
828 } else if (p->is_ConstraintCast()) { | 827 } else if (p->is_ConstraintCast()) { |
829 p = p->in(1); | 828 p = p->in(1); |
830 } else if (p->is_Type() && p->Opcode() == Op_CheckCastPP) { | 829 } else if (p->is_CheckCastPP()) { |
831 p = p->in(1); | 830 p = p->in(1); |
832 } else { | 831 } else { |
833 break; | 832 break; |
834 } | 833 } |
835 } | 834 } |