)]}'
{
  "commit": "9b8c7bea132601031aac18ddb5f14b58594c3d5a",
  "tree": "d743063add7631a3437cdf6541a593c4b63e560e",
  "parents": [
    "2602e187e5adc31ec1363443a61b7a8c9939cfa3"
  ],
  "author": {
    "name": "Johan Bay",
    "email": "jobay@google.com",
    "time": "Thu Oct 01 10:35:14 2026 +0000"
  },
  "committer": {
    "name": "r8-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "r8-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Oct 01 05:37:27 2026 -0700"
  },
  "message": "Fix store elimination across volatile constructors\n\nTreat volatile field accesses as having side effects, disallow value propagation of volatile fields, and clear most recent field writes in RedundantLoadAndStoreElimination for fields read by an instance initializer so preceding stores are not eliminated.\n\nBug: b/557272546\nChange-Id: I1d7727deeba021661b4b7c8ceb9b1d08703a1685",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6d63562cd36a2a43246c123b754ea3dde2bdc0f3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/TrivialFieldAccessReprocessor.java",
      "new_id": "0ba6228ff7169be125cfcbb37371eeff03fb0f8b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/analysis/fieldaccess/TrivialFieldAccessReprocessor.java"
    },
    {
      "type": "modify",
      "old_id": "2b871e821872ec57c0f4963ae00f475d9cc26b96",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InstanceGet.java",
      "new_id": "28677d3bf53a9211460bcd6cce3e3e11b24c5b70",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InstanceGet.java"
    },
    {
      "type": "modify",
      "old_id": "9b34df7cc1174aa177ecd3fb7f84c21a93fbddce",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InstancePut.java",
      "new_id": "68deee38757b241f75e440ecbb3228fe0dcd3d68",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InstancePut.java"
    },
    {
      "type": "modify",
      "old_id": "71e22090816fc72ac766f907bdaf303a8ed4078c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/StaticGet.java",
      "new_id": "70c1e9bd92bd7b02bafd6134c6cd2a2e164a4615",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/StaticGet.java"
    },
    {
      "type": "modify",
      "old_id": "b982a05d2c445206cd11e35975012e98bc4a50b1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/StaticPut.java",
      "new_id": "ff4d70c252c83ed2995a842f2bb608de7bb5c24c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/StaticPut.java"
    },
    {
      "type": "modify",
      "old_id": "1889aa84b99ba4503fe26ceb264a4e765409579a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/RedundantLoadAndStoreElimination.java",
      "new_id": "9b08f5399f8a893d65870d4841a0cfb3af194a30",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/RedundantLoadAndStoreElimination.java"
    },
    {
      "type": "modify",
      "old_id": "5795c9856070d267fd5e842f2229bb4312afcdca",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java",
      "new_id": "5b7e451114445366948e9c3ad7224f79431229da",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "90cfc488361991c60c138dd06efc2fea3f5e4f6b",
      "new_mode": 33188,
      "new_path": "src/test/java8/ir/com/android/tools/r8/ir/optimize/redundantfieldloadelimination/UnsoundStoreEliminationAcrossVolatileConstructorTest.java"
    }
  ]
}
