comparison graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DeoptimizationGroupingPhase.java @ 11959:23ccaa863eda

made CodeCacheProvider independent of MetaAccessProvider (GRAAL-511)
author Doug Simon <doug.simon@oracle.com>
date Thu, 10 Oct 2013 16:14:55 +0200
parents 51d5a22e0ea9
children 5a9afbf72714
comparison
equal deleted inserted replaced
11958:a0f5be106e67 11959:23ccaa863eda
54 if (target instanceof AbstractDeoptimizeNode) { 54 if (target instanceof AbstractDeoptimizeNode) {
55 merge = graph.add(new MergeNode()); 55 merge = graph.add(new MergeNode());
56 EndNode firstEnd = graph.add(new EndNode()); 56 EndNode firstEnd = graph.add(new EndNode());
57 phi = graph.addWithoutUnique(new PhiNode(Kind.Int, merge)); 57 phi = graph.addWithoutUnique(new PhiNode(Kind.Int, merge));
58 merge.addForwardEnd(firstEnd); 58 merge.addForwardEnd(firstEnd);
59 phi.addInput(((AbstractDeoptimizeNode) target).getActionAndReason(context.getRuntime())); 59 phi.addInput(((AbstractDeoptimizeNode) target).getActionAndReason(context.getMetaAccess()));
60 target.predecessor().replaceFirstSuccessor(target, firstEnd); 60 target.predecessor().replaceFirstSuccessor(target, firstEnd);
61 61
62 exitLoops((AbstractDeoptimizeNode) target, firstEnd, cfg); 62 exitLoops((AbstractDeoptimizeNode) target, firstEnd, cfg);
63 63
64 merge.setNext(graph.add(new DynamicDeoptimizeNode(phi))); 64 merge.setNext(graph.add(new DynamicDeoptimizeNode(phi)));
68 } else { 68 } else {
69 merge = (MergeNode) target; 69 merge = (MergeNode) target;
70 } 70 }
71 EndNode newEnd = graph.add(new EndNode()); 71 EndNode newEnd = graph.add(new EndNode());
72 merge.addForwardEnd(newEnd); 72 merge.addForwardEnd(newEnd);
73 phi.addInput(deopt.getActionAndReason(context.getRuntime())); 73 phi.addInput(deopt.getActionAndReason(context.getMetaAccess()));
74 deopt.predecessor().replaceFirstSuccessor(deopt, newEnd); 74 deopt.predecessor().replaceFirstSuccessor(deopt, newEnd);
75 exitLoops(deopt, newEnd, cfg); 75 exitLoops(deopt, newEnd, cfg);
76 obsoletes.add(deopt); 76 obsoletes.add(deopt);
77 } 77 }
78 } 78 }