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

[JIT] Enable EGPRs in JIT by adding REX2 encoding to the backend. #106557

Closed
wants to merge 30 commits into from

Commits on Jul 2, 2024

  1. script-gen logics.

    Ruihan-Yin committed Jul 2, 2024
    Configuration menu
    Copy the full SHA
    5acc239 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    96cd7c7 View commit details
    Browse the repository at this point in the history
  3. XSTATE updates.

    Ruihan-Yin committed Jul 2, 2024
    Configuration menu
    Copy the full SHA
    ff60d96 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. revert debug codes.

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    d15096f View commit details
    Browse the repository at this point in the history
  2. Ruihan: POC with REX2

    Update comments.
    
    Merge the REX2 changes into the original legacy emit path
    
    bug fix: Set REX2.W with correct mask code.
    
    register encoding and prefix emitting logics.
    
    Add REX2 prefix emit logic
    
    bug fixes
    
    Add Stress mode for REX2 encoding and some bug fixes
    
    resolve comments:
    1. add assertion check for UD opcodes.
    2. add checks for EGPRs.
    
    Add REX2 to emitOutputAM, and let LEA to be REX2 compatible.
    
    Add REX2.X encoding for SIB byte
    
    But fixes: add REX2 prefix on the path in RI where MOV is specially handled.
    
    Enable REX2 encoding for `movups`
    
    fixed bugs in REX2 prefix emitting logic when working with map 1 instructions, and enabled REX2 for POPCNT
    
    legacy map index-er
    
    bug fixes
    
    some clean-up
    
    Adding initial APX unit testing path.
    
    Adding a coredistools dll that has LLVM APX disasm capability.
    
    It must be coppied into a CORE_ROOT manually.
    
    clean up work for REX2
    
    narrow the REX2 scope to `sub` only
    
    some clean up based on the comments.
    
    bug fix
    
    resolve comment
    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    5797645 View commit details
    Browse the repository at this point in the history
  3. resolve merge error.

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    880e980 View commit details
    Browse the repository at this point in the history
  4. resolve comments

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    4ee360f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ea8de4f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e35549e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a3e1233 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    b6d4704 View commit details
    Browse the repository at this point in the history
  9. Enable REX2 encoding on RI and SV path

     - SV path is mostly for debugging purposes
    
    Added encoding unit tests for instructions with immediates
    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    3ec231b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    75a2ed6 View commit details
    Browse the repository at this point in the history
  11. CR session.

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    71f57ff View commit details
    Browse the repository at this point in the history
  12. Testing infra updates: assert REX2 is enabled.

    Code refactoring: AddX86PrefixIfNeeded.
    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    58cee8c View commit details
    Browse the repository at this point in the history
  13. revert rcl_N and rcr_N, tp and latency data for these instructions is…

    … missing in JIT, may indicate these instructions are not being used in JIT, drop them for now.
    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    fdcd651 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    4749cac View commit details
    Browse the repository at this point in the history
  15. Adding unit tests.

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    8b61ac2 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    4593ca9 View commit details
    Browse the repository at this point in the history
  17. bug fix for bswap

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    78c5a3b View commit details
    Browse the repository at this point in the history
  18. bt

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    a3688c1 View commit details
    Browse the repository at this point in the history
  19. xchg, idiv

    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    8238544 View commit details
    Browse the repository at this point in the history
  20. Make sure add REX2 prefix if register encoding for EGPRs are being ca…

    …lled before adding any prefix.
    Ruihan-Yin committed Jul 8, 2024
    Configuration menu
    Copy the full SHA
    e7a0beb View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    60de08a View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2024

  1. clean up

    Ruihan-Yin committed Jul 9, 2024
    Configuration menu
    Copy the full SHA
    c910bf8 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2024

  1. Change all AddSimdPrefix to AddX86Prefix

    Refactor REX2 encoding stress logics.
    Ruihan-Yin committed Jul 15, 2024
    Configuration menu
    Copy the full SHA
    c6856d3 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2024

  1. div, mulEAX

    Ruihan-Yin committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    bb70d8b View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. filter out test from REX2 encoding when using ACC form.

    (this will have side effect that the estimated code will go up and mismatch with actual code size.)
    Ruihan-Yin committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    957048d View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. Configuration menu
    Copy the full SHA
    3389a46 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2024

  1. resolve comments.

    Ruihan-Yin committed Aug 5, 2024
    Configuration menu
    Copy the full SHA
    59353b7 View commit details
    Browse the repository at this point in the history