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

AOT call stack optimizations #3773

Merged
merged 3 commits into from
Sep 10, 2024

Commits on Sep 6, 2024

  1. AOT call stack optimizations

     - implemented TINY / STANDARD frame modes - tiny mode is only able to keep track on the IP and func idx, STANDARD mode provides more capabilities (parameters, stack pointer etc)
     - implemented FRAME_PER_FUNCTION / FRAME_PER_CALL modes - frame per function adds code at the beginning and at the end of each function for allocating / deallocating stack frame, whereas in per-call mode the frame is allocated before each call. The exception is call to imported function, where frame-per-function mode also allocates the stack before the `call` instruction (as it can't instrument the imported function)
    
    At the moment TINY + FRAME_PER_FUNCTION is automatically enabled in case GC or perf profiling are disabled and `values` call stack feature is not requested. In all the other cases STANDARD + FRAME_PER_CALL is used.
    
    STANDARD + FRAME_PER_FUNCTION and TINY + FRAME_PER_CALL are currently not implemented but possible, and might be enabled in the future.
    loganek committed Sep 6, 2024
    Configuration menu
    Copy the full SHA
    8645e5b View commit details
    Browse the repository at this point in the history
  2. Generate code for deciding whether indirect call should allocate fram…

    …e, instead of doing it in runtime
    loganek committed Sep 6, 2024
    Configuration menu
    Copy the full SHA
    e5ae586 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2024

  1. Address code review comments

    loganek committed Sep 9, 2024
    Configuration menu
    Copy the full SHA
    b0dc668 View commit details
    Browse the repository at this point in the history