Mercurial > hg > truffle
diff graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/StructuredGraph.java @ 4622:00e01f401c03
Add checkcast for type-guarded inlining
for polymorphic inlining, do not share stateAfter the invoke with the stateAfter for the merge
also evacuate guards when reducing a trivial merge
fix bug in killUnusedFloatingInputs
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Thu, 16 Feb 2012 18:59:09 +0100 |
parents | 2ab543f06630 |
children |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/StructuredGraph.java Thu Feb 16 18:24:31 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/StructuredGraph.java Thu Feb 16 18:59:09 2012 +0100 @@ -311,6 +311,14 @@ EndNode singleEnd = merge.forwardEndAt(0); FixedNode sux = merge.next(); FrameState stateAfter = merge.stateAfter(); + // evacuateGuards + Node prevBegin = singleEnd.predecessor(); + assert prevBegin != null; + while (!(prevBegin instanceof BeginNode)) { + prevBegin = prevBegin.predecessor(); + } + merge.replaceAtUsages(prevBegin); + merge.safeDelete(); if (stateAfter != null && stateAfter.usages().isEmpty()) { stateAfter.safeDelete();