Mercurial > hg > truffle
changeset 13354:5a7508f1a7ff
Fix LIR assertion (distance between an operation with an exception edge and the last introduction of a LIR block)
author | Matthias Grimmer <grimmer@ssw.jku.at> |
---|---|
date | Tue, 17 Dec 2013 10:57:18 +0100 |
parents | 0e5c4f9fa9a5 |
children | e3f15a21b7a1 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIR.java |
diffstat | 1 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIR.java Mon Dec 16 23:33:40 2013 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIR.java Tue Dec 17 10:57:18 2013 +0100 @@ -166,15 +166,15 @@ /** * The maximum distance an operation with an {@linkplain #getExceptionEdge(LIRInstruction) - * exception edge} can be from the last instruction of a LIR block. The value of 2 is based on a - * non-void call operation that has an exception edge. Such a call op will have a move op after - * it to put the return value into the result variable. + * exception edge} can be from the last instruction of a LIR block. The value of 3 is based on a + * non-void call operation that has an exception edge. Such a call may move the result to + * another register and then spill it. * <p> * The rationale for such a constant is to limit the search for an insertion point when adding * move operations at the end of a block. Such moves must be inserted before all control flow * instructions. */ - public static final int MAX_EXCEPTION_EDGE_OP_DISTANCE_FROM_END = 2; + public static final int MAX_EXCEPTION_EDGE_OP_DISTANCE_FROM_END = 3; public static boolean verifyBlock(LIR lir, Block block) { List<LIRInstruction> ops = lir.lir(block);