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

aarch64: Make use of CBZ and CBNZ when comparing narrow pointer with zero

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b110
    • CPU:
      aarch64
    • OS:
      linux

      Description

      For several times I noticed the following pattern in JIT code (the java heap size is set to 200MB):

         2042 0x0000007f6c9419c4: ldr w14, [x11,#32] ;*getfield buffer
         2043 ; - org.apache.hadoop.io.DataInputBuffer::reset@1 (line 83)
         2044 ; - org.apache.hadoop.mapreduce.task.ReduceContextImpl::nextKeyValue@88 (line 141)
         2045 ; - org.apache.hadoop.mapreduce.task.ReduceContextImpl$ValueIterator::next@209 (li ne 239)
         2046 ; - org.apache.hadoop.examples.WordCount$IntSumReducer::reduce@23 (line 60)
         2047
         2048 0x0000007f6c9419c8: cmp w14, wzr
         2049 0x0000007f6c9419cc: b.eq 0x0000007f6c9425e4 ;*invokevirtual reset
         2050 ; - org.apache.hadoop.io.DataInputBuffer::reset@7 (line 83)
         2051 ; - org.apache.hadoop.mapreduce.task.ReduceContextImpl::nextKeyValue@88 (line 141)
         2052 ; - org.apache.hadoop.mapreduce.task.ReduceContextImpl$ValueIterator::next@209 (li ne 239)

      The two cmp and b.eq instructions can be combined into one "cbz" instruction.

      Currently, the aarch64 port only makes use of CBZ and CBNZ when comparing operands with Integer/Long/Pointer type with zero. The issue can be fixed by add one similar combine template in the ad file for Narrow pointer types, just like the sparc port does.

        Activity

        Hide
        hgupdate HG Updates added a comment -
        URL: http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/rev/fe9e0761c550
        User: enevill
        Date: 2016-03-01 15:50:13 +0000
        Show
        hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/rev/fe9e0761c550 User: enevill Date: 2016-03-01 15:50:13 +0000
        Hide
        hgupdate HG Updates added a comment -
        URL: http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/fe9e0761c550
        User: lana
        Date: 2016-03-14 15:54:56 +0000
        Show
        hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/fe9e0761c550 User: lana Date: 2016-03-14 15:54:56 +0000

          People

          • Assignee:
            fyang Felix Yang
            Reporter:
            fyang Felix Yang
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: