mraleph / irhydra

Tool for displaying IR used by V8 and Dart VM optimizing compilers
Apache License 2.0
433 stars 32 forks source link

Allow method CFGs to occur out of order/support merging methods somehow #24

Open kmillikin opened 10 years ago

kmillikin commented 10 years ago

In dart2js we don't necessarily compile a method from end-to-end all at one time. IR Hydra shows distinct passes as as separate methods. I guess sorting them by reopt puts them close together, but it would be nice to support merging them in the UI or indicating that they were part of the same compilation pipeline in the input file.

ir-hydra-method-ordering

mraleph commented 10 years ago

I can certainly do it, just emit some kind of marker in the .cfg file that will tell IRHydra to merge them.

I would like to note that IRHydra that you are using for dart2js is not supported and all development is happening on IRHydra2. So maybe we first should resolve whatever issues are preventing you from using IRHydra2.

Have you considered abandoning C1Visualizer format altogether? Right now IRHydra recognizes files produced by dart2js as v8 ones, which is somewhat confusing as various parts of functionality enabled for v8 (e.g. deopt matching) make no sense for dart2js. I'll probably have to add dart2js mode that does not rely on v8 specific information from the hydrogen.cfg file.