Shopify / seafoam

A tool for working with compiler graphs dumped by the GraalVM compiler
MIT License
126 stars 22 forks source link

Source command #19

Closed chrisseaton closed 3 years ago

chrisseaton commented 3 years ago

Tells you why a node is in the graph - the stack trace in the abstract interpreter that builds the graph at the point when the node was created.

% seafoam examples/fib-ruby.bgv:8:2544 source
  java.lang.Math#addExact
  org.truffleruby.core.numeric.IntegerNodes$AddNode#add
  org.truffleruby.core.numeric.IntegerNodesFactory$AddNodeFactory$AddNodeGen#executeAdd
  org.truffleruby.core.inlined.InlinedAddNode#intAdd
  org.truffleruby.core.inlined.InlinedAddNodeGen#execute
  org.truffleruby.language.control.IfElseNode#execute
  org.truffleruby.language.control.SequenceNode#execute
  org.truffleruby.language.arguments.CheckArityNode#execute
  org.truffleruby.language.control.SequenceNode#execute
  org.truffleruby.language.methods.CatchForMethodNode#execute
  org.truffleruby.language.methods.ExceptionTranslatingNode#execute
  org.truffleruby.language.RubyRootNode#execute
  org.graalvm.compiler.truffle.runtime.OptimizedCallTarget#executeRootNode
  org.graalvm.compiler.truffle.runtime.OptimizedCallTarget#profiledPERoot