Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8320379

C2: Sort spilling/unspilling sequence for better ld/st merging into ldp/stp on AArch64

    XMLWordPrintable

Details

    • b26
    • generic
    • generic

    Description

      Macro-assembler on aarch64 can merge adjacent loads or stores
      into ldp/stp. For example, it can merge:
      ```
      str w20, [sp, #16]
      str w10, [sp, #20]
      ```
      into
      ```
      stp w20, w10, [sp, #16]
      ```

      But C2 may generate a sequence like:
      ```
      str x21, [sp, #8]
      str w20, [sp, #16]
      str x19, [sp, #24]
      str w10, [sp, #20]
      str x11, [sp, #40]
      str w13, [sp, #48]
      str x16, [sp, #56]
      ```
      We can't do any merging for non-adjacent loads or stores.

      Attachments

        Issue Links

          Activity

            People

              fgao Fei Gao
              fgao Fei Gao
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: