# HG changeset patch # User Stefan Anzinger # Date 1409353530 25200 # Node ID 5c1bc769563e3b8914e5bfbb2c4f46aad41920c7 # Parent 1013a84447463b9e9c16accb66405bc7bb89098f# Parent 5d16da2ca0c869e237d88b1f7bb8008e1ba305b7 Merge diff -r 1013a8444746 -r 5c1bc769563e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java Fri Aug 29 16:04:46 2014 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java Fri Aug 29 16:05:30 2014 -0700 @@ -1594,21 +1594,21 @@ } /** - * Returns the name of the C/C++ function that is associated (via HotSpotVMValue annotation) - * with the HotSpotVMConfig object's field containing {@code foreignCalltargetAddress}; returns - * null if no field holds the provided address. + * Returns the name of the C/C++ symbol that is associated (via HotSpotVMValue annotation) with + * the HotSpotVMConfig object's field containing {@code value}; returns null if no field holds + * the provided address. * - * @param foreignCallTargetAddress address of foreign call target + * @param value value of the field * @return C/C++ symbol name or null */ - public String getCSymbol(long foreignCallTargetAddress) { + public String getVMValueCSymbol(long value) { for (Field f : HotSpotVMConfig.class.getDeclaredFields()) { if (f.isAnnotationPresent(HotSpotVMValue.class)) { HotSpotVMValue annotation = f.getAnnotation(HotSpotVMValue.class); if (annotation.get() == HotSpotVMValue.Type.ADDRESS) { try { - if (foreignCallTargetAddress == f.getLong(this)) { + if (value == f.getLong(this)) { return (annotation.expression() + annotation.signature()); } } catch (IllegalArgumentException e1) { @@ -1623,4 +1623,35 @@ } return null; } + + /** + * Returns the name of the C/C++ symbol that is associated (via HotSpotVMField annotation) with + * the HotSpotVMConfig object's field containing {@code value}; returns null if no field holds + * the provided address. + * + * @param value value of the field + * @return C/C++ symbol name or null + */ + public String getVMFieldCSymbol(long value) { + for (Field f : HotSpotVMConfig.class.getDeclaredFields()) { + if (f.isAnnotationPresent(HotSpotVMField.class)) { + HotSpotVMField annotation = f.getAnnotation(HotSpotVMField.class); + + if (annotation.get() == HotSpotVMField.Type.VALUE) { + try { + if (value == f.getLong(this)) { + return (annotation.name()); + } + } catch (IllegalArgumentException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (IllegalAccessException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + } + } + return null; + } } diff -r 1013a8444746 -r 5c1bc769563e graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Fri Aug 29 16:04:46 2014 -0700 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Fri Aug 29 16:05:30 2014 -0700 @@ -333,9 +333,6 @@ public final Object callInlined(Object[] arguments) { if (CompilerDirectives.inInterpreter()) { compilationProfile.reportInlinedCall(); - if (isValid()) { - return callDirect(arguments); - } } VirtualFrame frame = createFrame(getRootNode().getFrameDescriptor(), arguments); return callProxy(frame); diff -r 1013a8444746 -r 5c1bc769563e graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/InstrumentationTest.java --- a/graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/InstrumentationTest.java Fri Aug 29 16:04:46 2014 -0700 +++ b/graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/InstrumentationTest.java Fri Aug 29 16:05:30 2014 -0700 @@ -191,14 +191,6 @@ this.probe = context.createProbe(child.getSourceSection()); } - public boolean isTaggedAs(SyntaxTag tag) { - return false; - } - - public Iterable getSyntaxTags() { - return null; - } - public Node getChild() { return child; } diff -r 1013a8444746 -r 5c1bc769563e graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Wrapper.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Wrapper.java Fri Aug 29 16:04:46 2014 -0700 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Wrapper.java Fri Aug 29 16:05:30 2014 -0700 @@ -62,7 +62,7 @@ * @see Probe * @see ExecutionEvents */ -public interface Wrapper extends SyntaxTagged { +public interface Wrapper { /** * Gets the AST node being instrumented, which should never be an instance of {@link Wrapper}. diff -r 1013a8444746 -r 5c1bc769563e graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapper.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapper.java Fri Aug 29 16:04:46 2014 -0700 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapper.java Fri Aug 29 16:05:30 2014 -0700 @@ -73,18 +73,6 @@ return probe; } - @Override - @SlowPath - public boolean isTaggedAs(SyntaxTag tag) { - return probe.isTaggedAs(tag); - } - - @Override - @SlowPath - public Iterable getSyntaxTags() { - return probe.getSyntaxTags(); - } - @SlowPath public void tagAs(SyntaxTag tag) { probe.tagAs(tag); diff -r 1013a8444746 -r 5c1bc769563e graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapper.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapper.java Fri Aug 29 16:04:46 2014 -0700 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapper.java Fri Aug 29 16:05:30 2014 -0700 @@ -62,16 +62,6 @@ } @SlowPath - public boolean isTaggedAs(SyntaxTag tag) { - return probe.isTaggedAs(tag); - } - - @SlowPath - public Iterable getSyntaxTags() { - return probe.getSyntaxTags(); - } - - @SlowPath public void tagAs(SyntaxTag tag) { probe.tagAs(tag); }