)]}'
{
  "commit": "bb9deac35336ea8c1db9b1c49fb89f144a30abfd",
  "tree": "0d164e111a1f5a5dcf4da4a2373222748f46244c",
  "parents": [
    "9a38c8213e499a50d8d33491c1a17213142f1ed3"
  ],
  "author": {
    "name": "Christoffer Adamsen",
    "email": "christofferqa@google.com",
    "time": "Tue Apr 28 08:49:11 2026 +0200"
  },
  "committer": {
    "name": "Christoffer Adamsen",
    "email": "christofferqa@google.com",
    "time": "Tue Apr 28 00:21:08 2026 -0700"
  },
  "message": "Small method inliner\n\nThis adds a simple inliner pass that aggressively inlines small methods\nsuch as getters and setters early in the pipeline. All small methods\nthat are inlined into all call sites are then deleted from the app.\n\nExperiments show that this can lead to the removal of a large fraction\nof all methods, which lead to less memory usage, and that the extra\ninlining pass does not negatively impact build speed.\n\nChange-Id: Ieddc6b51bb2c240646bf21a894e1e7e7c204a579\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bddf65076f638974df49aa0d72dd46efb9094859",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/R8.java",
      "new_id": "163e4a14ce644dd83d801fee56b718a4026682a6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/R8.java"
    },
    {
      "type": "modify",
      "old_id": "6cff9de1f98a9cf787c532b6863504039a40542e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/AppView.java",
      "new_id": "54e84f0f27048756d008b6b13568474ef2ee290e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/AppView.java"
    },
    {
      "type": "modify",
      "old_id": "c0c64106018ce24d25ddb4296930bd85cd3ab957",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java",
      "new_id": "a388e9e673a3548cf2dc6d33ecf94ecf1be13afb",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java"
    },
    {
      "type": "modify",
      "old_id": "283694286618b8d34daca4e3bbf43590bdc375d8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/FieldAccessInfoImpl.java",
      "new_id": "6e4f08f1ce9349fb5ca48a2c1fd98e8e1f2fae1e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/FieldAccessInfoImpl.java"
    },
    {
      "type": "modify",
      "old_id": "ee1d85b3cc04773da428cef7f755808a429b4503",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/MutableFieldAccessInfo.java",
      "new_id": "de238d41544cf564b50ad04c1a28253851de9247",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/MutableFieldAccessInfo.java"
    },
    {
      "type": "modify",
      "old_id": "512deb5ecb12e1147dae54905ff80f036e5ca6a8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/analysis/proto/GeneratedExtensionRegistryShrinker.java",
      "new_id": "eb07c95ac957685b592fcfc2924aad211810f98d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/analysis/proto/GeneratedExtensionRegistryShrinker.java"
    },
    {
      "type": "modify",
      "old_id": "b471350cdae23888d49c50fabe5050965de0f53c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/Inliner.java",
      "new_id": "a66aa55814a7a97f1f8ce45b865063e9d1ae3615",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/Inliner.java"
    },
    {
      "type": "modify",
      "old_id": "d60326844bdcc7d6bddd612d0dd2ad9bfe7b6828",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/lightir/LirOpcodeUtils.java",
      "new_id": "1bf60b8ec5d66accae871519efc1382dde16fce9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/lightir/LirOpcodeUtils.java"
    },
    {
      "type": "modify",
      "old_id": "f1e180e9815e79eacb820ca1f66dd748cf056e82",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorMethodReprocessingEnqueuer.java",
      "new_id": "4bf5ec40aba060980a9b53a976137e357a374c49",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorMethodReprocessingEnqueuer.java"
    },
    {
      "type": "modify",
      "old_id": "39054482c175b47ae786fbd8b33334bff3c460c9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java",
      "new_id": "a87b3bc07066fb10f14633c04dc2ea05c067eab2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2b49438c0c9de16fc06716887a78bc230d7f7d7b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/optimize/smallmethodinliner/SmallMethodInliner.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3728aa00ca435347617fdfcf510ea0c8fd18c7f0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/optimize/smallmethodinliner/SmallMethodInlinerResult.java"
    },
    {
      "type": "modify",
      "old_id": "962f6384918f0a4db6ac086884bcdc35fb782560",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassTest.java",
      "new_id": "f578f7cca32360f04e5e197d275fdb703f7d4067",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassTest.java"
    },
    {
      "type": "modify",
      "old_id": "4846becf0948413ec2dc5275f4d207547198873b",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java",
      "new_id": "6b1954c9cbbba647976484110884ffe2ca447c61",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java"
    },
    {
      "type": "modify",
      "old_id": "435cd318406191fa41788df233953644a124fac7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/ir/optimize/membervaluepropagation/fields/FieldInitializedByNonConstantArgumentInSuperConstructorTest.java",
      "new_id": "191dc408c5140409bec231f708c918f397359de6",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/ir/optimize/membervaluepropagation/fields/FieldInitializedByNonConstantArgumentInSuperConstructorTest.java"
    },
    {
      "type": "modify",
      "old_id": "6d0b9c09a489119d0440c12defab4971150b41ef",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java",
      "new_id": "ab5db19735ec596511a65cdf185b201f9d9b468a",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java"
    },
    {
      "type": "modify",
      "old_id": "f2300e38c7e79ab00eda9f66d55ded5b6124dc46",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalRuleOnMemberWithKeepInitSimpleInlineTest.java",
      "new_id": "ef76510e19779eba947b8b457e807a36ecc79470",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalRuleOnMemberWithKeepInitSimpleInlineTest.java"
    },
    {
      "type": "modify",
      "old_id": "38ff7d5ec1fa334a7cd8a71a28b7ec6f99d2e83e",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalRuleOnMemberWithKeepInitTest.java",
      "new_id": "f239d61b4ea19f2766217ba4313c1e3e7155101c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/shaking/ifrule/ConditionalRuleOnMemberWithKeepInitTest.java"
    },
    {
      "type": "modify",
      "old_id": "88d5f711c0cb73fe4955cc96ecfefe3272ccf521",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/startup/SingleCallerBridgeStartupTest.java",
      "new_id": "fd333423df3c4d644f79f7019d6181de0750865d",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/startup/SingleCallerBridgeStartupTest.java"
    },
    {
      "type": "modify",
      "old_id": "c3e82b272f4dfdbfb3b651df0174d188d4570b87",
      "old_mode": 33188,
      "old_path": "src/test/java11/com/android/tools/r8/jdk11/string/StringConcatTest.java",
      "new_id": "3d3dba596efe5ba3cbaf078d2a4fa199aa373342",
      "new_mode": 33188,
      "new_path": "src/test/java11/com/android/tools/r8/jdk11/string/StringConcatTest.java"
    }
  ]
}
