mila-iqia / myia

Myia prototyping
MIT License
455 stars 46 forks source link

Improve debugging and profiling of Overload #344

Closed breuleux closed 4 years ago

breuleux commented 4 years ago

This PR is based on #343

Each Overload now copies and renames all of the functions it needs, which improves debugging and profiling. For example, consider a call to broaden. On the left, what the stack trace currently looks like on master, on the right, what it looks like with this PR.

n/a               => broaden.entry
Overload.__call__ => broaden.dispatch
abstract_clone    => broaden.wrapper
abstract_clone    => broaden[AbstractTuple]
Overload.__call__ => broaden.dispatch
abstract_clone    => broaden.wrapper
abstract_clone    => broaden[AbstractScalar]
Overload.__call__ => broaden.dispatch
abstract_clone    => broaden.wrapper
broaden           => broaden[Pending]