comparison 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
comparison
equal deleted inserted replaced
4621:2ab543f06630 4622:00e01f401c03
309 phi.safeDelete(); 309 phi.safeDelete();
310 } 310 }
311 EndNode singleEnd = merge.forwardEndAt(0); 311 EndNode singleEnd = merge.forwardEndAt(0);
312 FixedNode sux = merge.next(); 312 FixedNode sux = merge.next();
313 FrameState stateAfter = merge.stateAfter(); 313 FrameState stateAfter = merge.stateAfter();
314 // evacuateGuards
315 Node prevBegin = singleEnd.predecessor();
316 assert prevBegin != null;
317 while (!(prevBegin instanceof BeginNode)) {
318 prevBegin = prevBegin.predecessor();
319 }
320 merge.replaceAtUsages(prevBegin);
321
314 merge.safeDelete(); 322 merge.safeDelete();
315 if (stateAfter != null && stateAfter.usages().isEmpty()) { 323 if (stateAfter != null && stateAfter.usages().isEmpty()) {
316 stateAfter.safeDelete(); 324 stateAfter.safeDelete();
317 } 325 }
318 if (sux == null) { 326 if (sux == null) {