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

Refactor Instance management within the CallStack (take 2) #1065

Merged
merged 58 commits into from
Jun 15, 2024

Commits on Jun 3, 2024

  1. initial WIP work

    Robbepop committed Jun 3, 2024
    Configuration menu
    Copy the full SHA
    3f90b4a View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2024

  1. Configuration menu
    Copy the full SHA
    a5be772 View commit details
    Browse the repository at this point in the history
  2. refactor InstanceStack::push

    Also remove faulty debug_assert.
    Robbepop committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    7e2d476 View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2024

  1. Configuration menu
    Copy the full SHA
    23d942a View commit details
    Browse the repository at this point in the history
  2. fix after merge

    Robbepop committed Jun 8, 2024
    Configuration menu
    Copy the full SHA
    972f954 View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2024

  1. add TopVec type

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    f28e61f View commit details
    Browse the repository at this point in the history
  2. add missing import

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    ac2d141 View commit details
    Browse the repository at this point in the history
  3. use TopVec in InstanceStack

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    57845dd View commit details
    Browse the repository at this point in the history
  4. add InstanceStack::reset

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    7507bba View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a00d954 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1590b7f View commit details
    Browse the repository at this point in the history
  7. apply clippy suggestion

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    4045858 View commit details
    Browse the repository at this point in the history
  8. improve docs

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    c5e45c1 View commit details
    Browse the repository at this point in the history
  9. rename index -> height

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    6b8064f View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    29a724b View commit details
    Browse the repository at this point in the history
  11. remove unused TopVec methods

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    8e1aa6f View commit details
    Browse the repository at this point in the history
  12. add inline annotations

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    5860d43 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    99f7673 View commit details
    Browse the repository at this point in the history
  14. improve docs

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    01b5926 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    ffe568e View commit details
    Browse the repository at this point in the history
  16. improve docs

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    38e5477 View commit details
    Browse the repository at this point in the history
  17. remove commented out code

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    966189e View commit details
    Browse the repository at this point in the history
  18. fix typo

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    b8e25d7 View commit details
    Browse the repository at this point in the history
  19. rename TopVec -> HeadVec

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    6243220 View commit details
    Browse the repository at this point in the history
  20. refactor CallStack to no longer use InstanceStack

    This also fixes a bug with instance reuse of tail calls when the call stack was temporarily empty while merging the tail call frames.
    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    f4f2170 View commit details
    Browse the repository at this point in the history
  21. add some inline annotations

    Robbepop committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    7a8b510 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. put cached memory bytes directly into Executor

    This has fewer indirections when using the default linear memory.
    Local perf measurements indicated up to 20% improvements for memory-intense workloads.
    Robbepop committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    3496258 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6b372c6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f19bef9 View commit details
    Browse the repository at this point in the history
  4. fix code from merge

    Robbepop committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    2141521 View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2024

  1. add StackOffsets abstraction

    Robbepop committed Jun 12, 2024
    Configuration menu
    Copy the full SHA
    de8b30e View commit details
    Browse the repository at this point in the history
  2. add changed_instance field to CallFrame

    This allows to minimize overhead when returning from a CallFrame that did not adjust the Instance.
    Robbepop committed Jun 12, 2024
    Configuration menu
    Copy the full SHA
    cf5e223 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2024

  1. add inline annotations

    Robbepop committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    765c112 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a9b3e9e View commit details
    Browse the repository at this point in the history
  3. add CachedMemory type

    Robbepop committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    e163f78 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2024

  1. add safety comments

    Robbepop committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    87a9bdd View commit details
    Browse the repository at this point in the history
  2. replace InstanceCache with finer grained caches

    We now have a single MemoryCache and a single GlobalCache each caching the linear memory and global variable at index 0 respectively.
    The linear memory at index 0 makes sense to cache since Wasmi does not yet support multi-memory. The global at index 0 makes sense since it usually serves as the shadow stack pointer.
    Robbepop committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    0ba0156 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d45cad4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1cf06e7 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    13ba89b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ac48bc3 View commit details
    Browse the repository at this point in the history
  7. fix doc links

    Robbepop committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    d50fd18 View commit details
    Browse the repository at this point in the history
  8. apply clippy suggestions

    Robbepop committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    c5b9983 View commit details
    Browse the repository at this point in the history
  9. apply rustfmt

    Robbepop committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    a7df9e8 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0c35638 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    9467dc3 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    375b911 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2024

  1. Configuration menu
    Copy the full SHA
    9d664de View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    455ab19 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3298131 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9aca7ef View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    279c744 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    10c7bdf View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    8655cad View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    8c903e4 View commit details
    Browse the repository at this point in the history
  9. add basic derives to HeadVec

    Robbepop committed Jun 15, 2024
    Configuration menu
    Copy the full SHA
    b88b59a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    54be939 View commit details
    Browse the repository at this point in the history
  11. remove InstanceAndHeight due to redundant information

    The CallFrame::changed_instance (bool) field already contains all the necessary information for when to pop an Instance.
    Robbepop committed Jun 15, 2024
    Configuration menu
    Copy the full SHA
    ceade4e View commit details
    Browse the repository at this point in the history