)]}'
{
  "commit": "64031ddf1981a07830d2fd2d9a19149d2382d5f3",
  "tree": "249300dfc9662d8b5fc2f5d41dd5d86985a66aa9",
  "parents": [
    "e6139f68ae0edd77d65777f9ceca5b02939c8ec9"
  ],
  "author": {
    "name": "Han-Chung Wang",
    "email": "hanhan0912@gmail.com",
    "time": "Thu Apr 30 17:20:15 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Apr 30 17:20:15 2026 -0700"
  },
  "message": "Reapply \"[Codegen] Use local binders for optimization flags in codegen (#24220)\" (#24333)\n\nPreviously, I made a workaround in\nhttps://github.com/iree-org/iree/commit/1b75890ac8093dd9b74b8110833bd2a46b3da7f0.\nThe main reason is that all the codegen pipeline tests were anchor on a\nsingle pass (e.g., `XXXLowerExecutableTargetPass`), which makes plumbing\nthrough options infeasible.\n\nAfter migrating to the real pipeline transformations, we are able to use\nthe option in whole pipeline tests; we can drop the old workaround from\niree-opt changes.\n\nThe revision introduces the option for each backend (default `O0`) and\nuse local binders to apply the optimization flags. It drops the\n`XXX::FromFlags::get()` uses from Codegen.\n\nThe additional change is updating the default value in `Passes.td` to\nnot apply optimization level. It was a workaround when we abused the\npass for optimization control. Now all the pipeline tests use textual\npass pipelines, so we no longer need the workaround.\n\nci-extra: linux_x64_clang_tsan\n\n---------\n\nSigned-off-by: hanhanW \u003chanhan0912@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "904e82c3d120c98431969079b7e4766151f51de2",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/API/Internal/BUILD.bazel",
      "new_id": "7bdee2725a98efcca60fef0744bc4542d039a536",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/API/Internal/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "757f4d43d505c61764e4467730094641a4d0a81f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/API/Internal/CMakeLists.txt",
      "new_id": "11a3421b52ad648d4f8e66dee4f765ef8caf633d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/API/Internal/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "da21598f51a053728b0ac1419ace55558d3b01c1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/API/Internal/IREEOptToolEntryPoint.cpp",
      "new_id": "86cb44873499942c8640adb468fd8ad34423599e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/API/Internal/IREEOptToolEntryPoint.cpp"
    },
    {
      "type": "modify",
      "old_id": "bf8bd4f1e09acd9b9e13fa4e4d09eeae76f406a5",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp",
      "new_id": "0bfa8002887057c08df10329cdc03d0089960321",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "0983e77882596977bd3200da55abe6d470912d15",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.td",
      "new_id": "4d59fe4b268ec1f99d580692817e2590337d9314",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "931e33c3e888eca81f2184d97a7325ca3298d2dc",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/pipeline_split_reduction_tests.mlir",
      "new_id": "f6663219aaae5954f1c671c270b79b65958f081e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/pipeline_split_reduction_tests.mlir"
    },
    {
      "type": "modify",
      "old_id": "db208eb4bc78ee1a8056ec3e0bff42d86502b8ea",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/pipeline_tests.mlir",
      "new_id": "edf62600b330f3a00121027b58bbd7d0916c626e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/test/pipeline_tests.mlir"
    },
    {
      "type": "modify",
      "old_id": "82bd866e4716d955122cd8af8786cc0bf67a1827",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.td",
      "new_id": "901dbd54efe3cf90989c83d70b46b66be21c6f3d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "4d4140542da06f38ddf7777d056db5b918dc21fc",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Utils/CodegenOptions.cpp",
      "new_id": "868d1c8a8c79135b53a692c793e147ebecbb79f5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Utils/CodegenOptions.cpp"
    },
    {
      "type": "modify",
      "old_id": "f6b0ca1f815149e9b3d34e80909c5ec493fcf2a2",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Utils/CodegenOptions.h",
      "new_id": "81f7bf973bf6456d46909e9c47d24281a41c12d2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Utils/CodegenOptions.h"
    }
  ]
}
