Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.ruby.parser/src/com/oracle/truffle/ruby/parser/Translator.java @ 13735:2c1c805153e6
Ruby: refactor low level instrumentation services
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Wed, 22 Jan 2014 21:02:06 -0800 |
parents | fbf448929260 |
children | 22bf5a8ba9eb 3f27e57439ed |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.ruby.parser/src/com/oracle/truffle/ruby/parser/Translator.java Wed Jan 22 20:35:00 2014 -0800 +++ b/graal/com.oracle.truffle.ruby.parser/src/com/oracle/truffle/ruby/parser/Translator.java Wed Jan 22 21:02:06 2014 -0800 @@ -22,7 +22,6 @@ import com.oracle.truffle.ruby.nodes.constants.*; import com.oracle.truffle.ruby.nodes.control.*; import com.oracle.truffle.ruby.nodes.core.*; -import com.oracle.truffle.ruby.nodes.debug.*; import com.oracle.truffle.ruby.nodes.literal.*; import com.oracle.truffle.ruby.nodes.literal.array.*; import com.oracle.truffle.ruby.nodes.methods.*; @@ -33,7 +32,6 @@ import com.oracle.truffle.ruby.runtime.*; import com.oracle.truffle.ruby.runtime.core.*; import com.oracle.truffle.ruby.runtime.core.range.*; -import com.oracle.truffle.ruby.runtime.debug.*; import com.oracle.truffle.ruby.runtime.methods.*; /** @@ -48,6 +46,7 @@ protected final RubyContext context; protected final TranslatorEnvironment environment; protected final Source source; + protected final RubyNodeInstrumenter instrumenter; private boolean translatingForStatement = false; @@ -97,6 +96,7 @@ this.parent = parent; this.environment = environment; this.source = source; + this.instrumenter = environment.getNodeInstrumenter(); } @Override @@ -291,7 +291,7 @@ RubyNode translated = new CallNode(context, sourceSection, node.getName(), receiverTranslated, argumentsAndBlock.getBlock(), argumentsAndBlock.isSplatted(), argumentsAndBlock.getArguments()); - return translated; + return instrumenter.instrumentAsCall(translated, node.getName()); } protected class ArgumentsAndBlockTranslation { @@ -1140,7 +1140,9 @@ RubyNode translated = ((ReadNode) lhs).makeWriteNode(rhs); - return translated; + final UniqueMethodIdentifier methodIdentifier = environment.findMethodForLocalVar(node.getName()); + + return instrumenter.instrumentAsLocalAssignment(translated, methodIdentifier, node.getName()); } @Override @@ -1439,20 +1441,7 @@ @Override public Object visitNewlineNode(org.jrubyparser.ast.NewlineNode node) { RubyNode translated = (RubyNode) node.getNextNode().accept(this); - - if (context.getConfiguration().getTrace()) { - RubyProxyNode proxy; - if (translated instanceof RubyProxyNode) { - proxy = (RubyProxyNode) translated; - } else { - proxy = new RubyProxyNode(context, translated); - } - proxy.getProbeChain().appendProbe(new RubyTraceProbe(context)); - - translated = proxy; - } - - return translated; + return instrumenter.instrumentAsStatement(translated); } @Override