comparison graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCallNode.java @ 15091:607e33885130

Truffle: Merge context sensitive inlining removal with stack trace support.
author Christian Humer <christian.humer@gmail.com>
date Mon, 14 Apr 2014 18:46:56 +0200
parents 448338c9ce96
children
comparison
equal deleted inserted replaced
15090:07e7aae05983 15091:607e33885130
40 super(target); 40 super(target);
41 } 41 }
42 42
43 @Override 43 @Override
44 public Object call(VirtualFrame frame, Object[] arguments) { 44 public Object call(VirtualFrame frame, Object[] arguments) {
45 return callProxy(this, getCurrentCallTarget(), frame, arguments); 45 return getCurrentCallTarget().call(arguments);
46 }
47
48 public static Object callProxy(MaterializedFrameNotify notify, CallTarget callTarget, VirtualFrame frame, Object[] arguments) {
49 try {
50 if (notify.getOutsideFrameAccess() != FrameAccess.NONE) {
51 CompilerDirectives.materialize(frame);
52 }
53 return callTarget.call(arguments);
54 } finally {
55 // this assertion is needed to keep the values from being cleared as non-live locals
56 assert notify != null & callTarget != null & frame != null;
57 }
58 } 46 }
59 47
60 @Override 48 @Override
61 public FrameAccess getOutsideFrameAccess() { 49 public FrameAccess getOutsideFrameAccess() {
62 return outsideFrameAccess; 50 return outsideFrameAccess;