Shopify / seafoam

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

Tidy up examples #37

Closed chrisseaton closed 3 years ago

chrisseaton commented 3 years ago

Regenerate all examples, and give a script for doing so in the future. I want to create an archive of graphs so I can keep testing against different versions.

I haven't regenerated all Ruby graphs, as this is blocked by https://github.com/oracle/graal/pull/3524.

Also fix the issue with node source info.

eregon commented 3 years ago

I haven't regenerated all Ruby graphs, as this is blocked by oracle/graal#3524.

Wouldn't it be better if Ruby graphs used Primitive.blackhole (to make the value escape, but without the noise from a non-inlined call, similar to assigning to a field in Java), and for the graph which specifically wants to show non-inlined calls just disable inlining altogether?

chrisseaton commented 3 years ago

I'd rather have one set of options to run the whole script instead of having to run some methods with some options and others with others.

eregon commented 3 years ago

Ah, https://chrisseaton.com/truffleruby/basic-truffle-graphs/ already uses Primitive.blackhole, I either forgot or did not see it yet :) So opaque_call and instance_call are the two non-inlined on purpose methods left.