)]}'
{
  "commit": "3322cc5ff93b83c49e694bff14a8f43c893b2ed8",
  "tree": "deca812b3035d104ba0db9937dd0fbbc1f103125",
  "parents": [
    "3a50f34c84f79048dfa19b5a4a66e38a0d148a5c"
  ],
  "author": {
    "name": "Ulya Trafimovich",
    "email": "skvadrik@google.com",
    "time": "Fri Nov 19 12:48:28 2021 +0000"
  },
  "committer": {
    "name": "Ulya Trofimovich",
    "email": "skvadrik@google.com",
    "time": "Mon Dec 06 10:13:55 2021 +0000"
  },
  "message": "x86_64: Implement VarHandle.getAnd* for arrays and byte array views.\n\nBenchmarks improvements (using benchmarks provided by\nhttps://android-review.googlesource.com/1420959):\n\n  benchmark                                   before   after\n  ----------------------------------------------------------\n  GetAndSetArrayElementInt                    2.771    0.013\n  GetAndSetArrayElementDouble                 2.709    0.011\n  GetAndSetArrayElementString                 3.105    0.012\n  GetAndAddArrayElementInt                    2.769    0.013\n  GetAndAddArrayElementDouble                 2.713    0.011\n  GetAndBitwiseXorArrayElementInt             2.767    0.011\n\n  GetAndSetByteArrayViewInt                   2.819    0.013\n  GetAndAddByteArrayViewInt                   2.830    0.013\n  GetAndBitwiseXorByteArrayViewInt            2.822    0.012\n\n  GetAndSetByteArrayViewBigEndianInt          2.829    0.012\n  GetAndAddByteArrayViewBigEndianInt          2.826    0.012\n  GetAndBitwiseXorByteArrayViewBigEndianInt   2.824    0.012\n\nBug: 71781600\nTest: lunch aosp_cf_x86_64_phone-userdebug \\\n  \u0026\u0026 art/test.py --host -r -t 712-varhandle-invocations --64\nTest: Repeat with ART_USE_READ_BARRIER\u003dfalse.\nTest: Repeat with ART_HEAP_POISONING\u003dtrue.\nChange-Id: Icdc066bb5cbef7b7afe5513842ec8e1ee1d8eb94\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fa61c6713fd137da2a40ebc5da5ceed16fa8fb72",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86_64.cc",
      "new_id": "0747a3a5cd8f4ab128cc030b21df19f71c609a5d",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86_64.cc"
    },
    {
      "type": "modify",
      "old_id": "ed760f190dfb5e4047f30c6ae62646c6f71d2f6b",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/instruction_builder.cc",
      "new_id": "f8bf126eebc168290a2e5afe64b10ea4077044ee",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/instruction_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "c716201313d4c558db27332278884b7c350602ef",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/intrinsics_x86_64.cc",
      "new_id": "66d0743022eedab9154c0f12260f62e2e99301bb",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/intrinsics_x86_64.cc"
    }
  ]
}
