comparison graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java @ 18995:a2cb19764970

Rename MergeNode to AbstractMergeNode.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 28 Jan 2015 01:04:20 +0100
parents 8b4ef818169c
children 46c2e70d54ad
comparison
equal deleted inserted replaced
18994:8b4ef818169c 18995:a2cb19764970
342 } else { 342 } else {
343 ArrayList<ReturnNode> returnDuplicates = new ArrayList<>(returnNodes.size()); 343 ArrayList<ReturnNode> returnDuplicates = new ArrayList<>(returnNodes.size());
344 for (ReturnNode returnNode : returnNodes) { 344 for (ReturnNode returnNode : returnNodes) {
345 returnDuplicates.add((ReturnNode) duplicates.get(returnNode)); 345 returnDuplicates.add((ReturnNode) duplicates.get(returnNode));
346 } 346 }
347 MergeNode merge = graph.add(new MergeNode()); 347 AbstractMergeNode merge = graph.add(new AbstractMergeNode());
348 merge.setStateAfter(stateAfter); 348 merge.setStateAfter(stateAfter);
349 ValueNode returnValue = mergeReturns(merge, returnDuplicates, canonicalizedNodes); 349 ValueNode returnValue = mergeReturns(merge, returnDuplicates, canonicalizedNodes);
350 invokeNode.replaceAtUsages(returnValue); 350 invokeNode.replaceAtUsages(returnValue);
351 merge.setNext(n); 351 merge.setNext(n);
352 } 352 }
446 if (usage instanceof FrameState) { 446 if (usage instanceof FrameState) {
447 workList.add(usage); 447 workList.add(usage);
448 } else { 448 } else {
449 StateSplit stateSplit = (StateSplit) usage; 449 StateSplit stateSplit = (StateSplit) usage;
450 FixedNode fixedStateSplit = stateSplit.asNode(); 450 FixedNode fixedStateSplit = stateSplit.asNode();
451 if (fixedStateSplit instanceof MergeNode) { 451 if (fixedStateSplit instanceof AbstractMergeNode) {
452 MergeNode merge = (MergeNode) fixedStateSplit; 452 AbstractMergeNode merge = (AbstractMergeNode) fixedStateSplit;
453 while (merge.isAlive()) { 453 while (merge.isAlive()) {
454 AbstractEndNode end = merge.forwardEnds().first(); 454 AbstractEndNode end = merge.forwardEnds().first();
455 DeoptimizeNode deoptimizeNode = graph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateRecompile, DeoptimizationReason.NotCompiledExceptionHandler)); 455 DeoptimizeNode deoptimizeNode = graph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateRecompile, DeoptimizationReason.NotCompiledExceptionHandler));
456 end.replaceAtPredecessor(deoptimizeNode); 456 end.replaceAtPredecessor(deoptimizeNode);
457 GraphUtil.killCFG(end); 457 GraphUtil.killCFG(end);
467 } 467 }
468 } 468 }
469 } 469 }
470 } 470 }
471 471
472 public static ValueNode mergeReturns(MergeNode merge, List<? extends ReturnNode> returnNodes, List<Node> canonicalizedNodes) { 472 public static ValueNode mergeReturns(AbstractMergeNode merge, List<? extends ReturnNode> returnNodes, List<Node> canonicalizedNodes) {
473 PhiNode returnValuePhi = null; 473 PhiNode returnValuePhi = null;
474 474
475 for (ReturnNode returnNode : returnNodes) { 475 for (ReturnNode returnNode : returnNodes) {
476 // create and wire up a new EndNode 476 // create and wire up a new EndNode
477 EndNode endNode = merge.graph().add(new EndNode()); 477 EndNode endNode = merge.graph().add(new EndNode());