)]}'
{
  "commit": "3df1c6f88bfbbd76d9256c55358bb75e02e33779",
  "tree": "532905046f41658f2e3323fa96ac5b3b08d964bf",
  "parents": [
    "4a788031e8fc00eeae58a50665b499e6e87be850"
  ],
  "author": {
    "name": "Florian Hahn",
    "email": "flo@fhahn.com",
    "time": "Mon Feb 23 22:49:00 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Feb 23 22:49:00 2026 +0000"
  },
  "message": "[VPlan] Add simple driver option to run some individual transforms. (#178522)\n\nAdd an alternative to test VPlan in more isolation via a new\n`vplan-test-transform` option, which builds VPlan0 for each loop in the\ninput IR and then can invoke a set of transforms on it.\n\nIn order to allow different recipe types to be created, a new\nwiden-from-metadata transform is added, which transforms VPInstructions\nto different recipes, based on custom !vplan.widen metadata. Currently\nthis supports creating widen \u0026 replicate recipes, but can easily be\nextended in the future.\n\nCurrently the handling is intentionally bare-bones, to be extended\ngradually as needed.\n\nPR: https://github.com/llvm/llvm-project/pull/178522",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "22ed7d53ae48c0b5311e0323e0df0f77fb8f9566",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Transforms/Vectorize/VPlanTestPass.h"
    },
    {
      "type": "modify",
      "old_id": "78e4c73ef0d2b400f114a89e6070ae1cb00742a7",
      "old_mode": 33188,
      "old_path": "llvm/lib/Passes/PassBuilder.cpp",
      "new_id": "b31dfa9b66ca79247f60b10e8ac94c8f946fafb1",
      "new_mode": 33188,
      "new_path": "llvm/lib/Passes/PassBuilder.cpp"
    },
    {
      "type": "modify",
      "old_id": "879713f4d6e578219851d97f2d948c047b72fd55",
      "old_mode": 33188,
      "old_path": "llvm/lib/Passes/PassRegistry.def",
      "new_id": "c7cd784344a40f565d12d51ec548db6162a0289b",
      "new_mode": 33188,
      "new_path": "llvm/lib/Passes/PassRegistry.def"
    },
    {
      "type": "modify",
      "old_id": "9f4a242214471353e84b1035331513ccaba1e812",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/CMakeLists.txt",
      "new_id": "19c0cf13e983ba7322b49e84b46bd69fa470c91f",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "3101b42625c5360d771bf4bbe92337fe9d2c09d1",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp",
      "new_id": "e8c02c0c2870d2ba8d624b414c0ad288f0203c15",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fc24b9c34136db379779e3bdc269f526243367bb",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/VPlanTestPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "875bad9bfe17bdc46fe1ef78505388d35dc8405c",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp",
      "new_id": "7228e58b418992a11b73b66a86df2bd64dcd56fc",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp"
    },
    {
      "type": "modify",
      "old_id": "7c5d44daf003fcb97460947b8db9444d3b1392e6",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Vectorize/VPlanTransforms.h",
      "new_id": "3fda80a1bf7fa1cfec0ada04baad6fac5a228232",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Vectorize/VPlanTransforms.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8e0ae454289e35f1758a7cb5e9d726e8ca7a731d",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/VPlan/vplan-licm.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bce6a4d6c98f5eb8c20e672889581b64c9b75e0f",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/VPlan/vplan-merge-blocks.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac4288c6ba6308cd9c6f540881cd2128dcf2b196",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/VPlan/vplan-remove-dead-recipes.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d78c6512d9aee43033e06163b0e139363f3bb757",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/VPlan/vplan-simplify-recipes.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f91b37d215b94eaae7b4e5157604f30015e6e93a",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopVectorize/VPlan/vplan-widen-from-metadata.ll"
    }
  ]
}
