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

x86-64: Inline small array copy size for int and long arrays #7362

Merged

Commits on Jun 6, 2024

  1. x86-64: Inline small array copy size for int and long arrays

    (1)
    Inline small array copy size without using `rep movs`
    for int array and long array
      - If AVX-512 is supported and copy size <= 128 bytes,
        the inlined copy sequence is used.
      - If AVX is supported, the threshold for inlined sequence
        is 64 bytes instead.
      - The enhancement for 32 bit and 64 bit arrays will be reused
        in the downstream OpenJ9 project for reference arrays.
    
    (2)
    Refactor char array enhancement implementation to support
    both `rep movsw` and `rep movsd` if the copysize is greater
    than the supported enhancement threshold.
    
    (3)
    Add the following options to disable the enhancement
      - `disableArrayCopyIntArrayInlineSmallSizeWithoutREPMOVS`:
        disable the enhancement for int array
    
      - `disableArrayCopyLongArrayInlineSmallSizeWithoutREPMOVS`:
        disable the enhancement for long array
    
      - `disableArrayCopyReferenceArrayInlineSmallSizeWithoutREPMOVS`:
        disable the enhancement for reference array, which will be
        implemented in downstream project OpenJ9.
    
    Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
    a7ehuo committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    2a2e130 View commit details
    Browse the repository at this point in the history