Mercurial > hg > graal-compiler
changeset 9721:65452ead4b71
Handle corner case in WordTypeVerificationPhase
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Wed, 15 May 2013 14:30:29 -0700 |
parents | d30cc6543973 |
children | b5dd7e3c8c80 7421f2894cfc |
files | graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeVerificationPhase.java |
diffstat | 1 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeVerificationPhase.java Wed May 15 17:29:30 2013 +0200 +++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeVerificationPhase.java Wed May 15 14:30:29 2013 -0700 @@ -114,6 +114,16 @@ } private boolean isWord(ValueNode node) { + if (node instanceof ProxyNode) { + /* + * The proxy node will eventually get the same stamp as the value it is proxying. + * However, since we cannot guarantee the order in which isWord is called during the + * verification phase, the stamp assignment for the value might not have happened yet. + * Therefore, we check the proxied value directly instead of the proxy. + */ + return isWord(((ProxyNode) node).value()); + } + return wordAccess.isWord(node); }