Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic support for Ltac2 Backtrace / Ltac Profiling #12

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

SkySkimmer
Copy link
Owner

@SkySkimmer SkySkimmer commented Oct 24, 2023

ie #8

On bug_10107.v:

  • before this PR 0.037s
  • after this PR 0.043s
  • enable Ltac2 Backtrace 0.2s
  • enable Ltac Profiling 3s
  • without compiling 0.25s
  • Ltac2 Backtrace without compiling 1s
  • Ltac Profiling without compiling 30s

Note that this implementation only puts the FrLtac frames, not the ones of anon functions.

This is especially impactful for recursion as Ltac2 rec bla binders := ... becomes Ltac2 bla binders := let rec bla binders := ... in bla binders so only the top call gets a frame, and with profiling only the top call produces overhead.

We should expect that adding frames for anonymous functions / recursive calls would be significantly worse than the current results.

On bug_10107.v:
- before this PR 0.037s
- after this PR 0.043s
- enable Ltac2 Backtrace 0.2s
- enable Ltac Profiling 3s
- without compiling 0.25s
- Ltac2 Backtrace without compiling 1s
- Ltac Profiling without compiling 30s

Note that this implementation only puts the FrLtac frames, not the
ones of anon functions.

This is especially impactful for recursion as `Ltac2 rec bla binders := ...`
becomes `Ltac2 bla binders := let rec bla binders := ... in bla binders`
so only the top call gets a frame, and with profiling only the top
call produces overhead.

We should expect that adding frames for anonymous functions / recursive calls
would be significantly worse than the current results.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant