)]}'
{
  "commit": "3b83e7fa4ec18991a25d49741418e2b3d325692c",
  "tree": "5818dc40be62ac7fde0903ab5bc56077b57dbab7",
  "parents": [
    "75af8e86749c820f0920c207ecbcdf6bb04a0ebd"
  ],
  "author": {
    "name": "Jean-Didier PAILLEUX",
    "email": "jean-didier.pailleux@sipearl.com",
    "time": "Fri Nov 14 14:06:46 2025 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Nov 14 14:06:46 2025 +0100"
  },
  "message": "[flang] Implement !DIR$ IVDEP directive (#133728)\n\nThis directive tells the compiler to ignore vector dependencies in the\nfollowing loop and it must be placed before a `do loop`.\n\nSometimes the compiler may not have sufficient information to decide\nwhether a particular loop is vectorizable due to potential dependencies\nbetween iterations and the directive is here to tell to the compiler\nthat vectorization is safe with `parallelAccesses` metadata.\n\nThis directive is also equivalent to `#pragma clang loop assume(safety)`\nin C++",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2ce0d86d0213efc72ab83535dc52d8bf68544c3e",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Optimizer/Builder/FIRBuilder.h",
      "new_id": "c586ac0ec08e3c0aacfbe2b68bf47d6893b2a62b",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Optimizer/Builder/FIRBuilder.h"
    },
    {
      "type": "modify",
      "old_id": "43cd653f867a34cba0d8010dbf35509136b4dd25",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Optimizer/Dialect/FIROps.td",
      "new_id": "d416d6c61f1787e5711f2fce5cb1f7451a88eac9",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Optimizer/Dialect/FIROps.td"
    },
    {
      "type": "modify",
      "old_id": "353260b2e5c0262380cb5114412c0d92dd9a2346",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Parser/dump-parse-tree.h",
      "new_id": "5ca9deeb9b7f6cce0ae19e1cab4f81afff79df7b",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Parser/dump-parse-tree.h"
    },
    {
      "type": "modify",
      "old_id": "2f6b95b2fa2a8d9b4b11a101c3fd0cfc48115061",
      "old_mode": 33188,
      "old_path": "flang/include/flang/Parser/parse-tree.h",
      "new_id": "b1765f927d6c91470b84c1722f60c26a9aa83f13",
      "new_mode": 33188,
      "new_path": "flang/include/flang/Parser/parse-tree.h"
    },
    {
      "type": "modify",
      "old_id": "cb324892a06f0b345ff0ab4e30cd1759c4f58535",
      "old_mode": 33188,
      "old_path": "flang/lib/Lower/Bridge.cpp",
      "new_id": "4c381e85d1fdc9948bbff7928c0fac20381ed82b",
      "new_mode": 33188,
      "new_path": "flang/lib/Lower/Bridge.cpp"
    },
    {
      "type": "modify",
      "old_id": "f24a4d9745698808887cb8f1ccb65d300eba84cc",
      "old_mode": 33188,
      "old_path": "flang/lib/Lower/ConvertCall.cpp",
      "new_id": "cd5218e760ea3dce744d6f0072b449f007911c77",
      "new_mode": 33188,
      "new_path": "flang/lib/Lower/ConvertCall.cpp"
    },
    {
      "type": "modify",
      "old_id": "6ef6074cf73adcfe17a6a4c5043bd7420fd6c6be",
      "old_mode": 33188,
      "old_path": "flang/lib/Optimizer/Builder/FIRBuilder.cpp",
      "new_id": "73ce1dc1174a05d11600f47324a6945ae618e66f",
      "new_mode": 33188,
      "new_path": "flang/lib/Optimizer/Builder/FIRBuilder.cpp"
    },
    {
      "type": "modify",
      "old_id": "ca4aefb653d2a19ffce31e9c2724348109584488",
      "old_mode": 33188,
      "old_path": "flang/lib/Optimizer/CodeGen/CodeGen.cpp",
      "new_id": "f96d45d3f6b66cbfeb27fe20d00a8770fa8c9cd0",
      "new_mode": 33188,
      "new_path": "flang/lib/Optimizer/CodeGen/CodeGen.cpp"
    },
    {
      "type": "modify",
      "old_id": "6895736138eb0966d789d11c1ff020e58dbf1b29",
      "old_mode": 33188,
      "old_path": "flang/lib/Optimizer/Dialect/FIROps.cpp",
      "new_id": "97e544f30de3ec885c64c3edce939f2db89993db",
      "new_mode": 33188,
      "new_path": "flang/lib/Optimizer/Dialect/FIROps.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c3f37bdead3f14d6e009f6472c0d6aecdc94338",
      "old_mode": 33188,
      "old_path": "flang/lib/Optimizer/HLFIR/Transforms/ConvertToFIR.cpp",
      "new_id": "8bdf13e08165ce7d8f57bf7f954b17b8ea8af199",
      "new_mode": 33188,
      "new_path": "flang/lib/Optimizer/HLFIR/Transforms/ConvertToFIR.cpp"
    },
    {
      "type": "modify",
      "old_id": "8c0acc517c18fa8973ff746efdc2df0b313085f9",
      "old_mode": 33188,
      "old_path": "flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp",
      "new_id": "c9d52c49e39154ad96ce4aaca931e9abbf199f19",
      "new_mode": 33188,
      "new_path": "flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp"
    },
    {
      "type": "modify",
      "old_id": "cdc9b0add7a48c022d5f6c9cfd7f45edd18c665e",
      "old_mode": 33188,
      "old_path": "flang/lib/Parser/Fortran-parsers.cpp",
      "new_id": "fccb9d82f4fc998943d8d07346741ea16c12b60c",
      "new_mode": 33188,
      "new_path": "flang/lib/Parser/Fortran-parsers.cpp"
    },
    {
      "type": "modify",
      "old_id": "53e74298f96ac92fdee5c6b77eecab16396a9a7c",
      "old_mode": 33188,
      "old_path": "flang/lib/Parser/unparse.cpp",
      "new_id": "e3bc3cdc42ffb60855a5cbf36b351c2489e23b10",
      "new_mode": 33188,
      "new_path": "flang/lib/Parser/unparse.cpp"
    },
    {
      "type": "modify",
      "old_id": "a651a873d3b40287fa52d145add2d09a84945b59",
      "old_mode": 33188,
      "old_path": "flang/lib/Semantics/canonicalize-directives.cpp",
      "new_id": "b21da4d041a9727cca177ebd2647fca70fb2b503",
      "new_mode": 33188,
      "new_path": "flang/lib/Semantics/canonicalize-directives.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c2f78f7c4197316449dd1bdfdc8c291a75956ad",
      "old_mode": 33188,
      "old_path": "flang/lib/Semantics/resolve-names.cpp",
      "new_id": "82e872870c6b1fe0ec63ddc1764aeecb443147d3",
      "new_mode": 33188,
      "new_path": "flang/lib/Semantics/resolve-names.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b122f584b279e272438fa687f49193c8c64fc566",
      "new_mode": 33188,
      "new_path": "flang/test/Integration/ivdep.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "93bcdaedb8003a5efe303241ee45584369b2ffb0",
      "new_mode": 33188,
      "new_path": "flang/test/Lower/ivdep.f90"
    },
    {
      "type": "modify",
      "old_id": "b2fe466377f70fe5f6ee149a1403ee7861b3a8d6",
      "old_mode": 33188,
      "old_path": "flang/test/Parser/compiler-directives.f90",
      "new_id": "56a10f917799740f1067acce40f9d518fdd98cc0",
      "new_mode": 33188,
      "new_path": "flang/test/Parser/compiler-directives.f90"
    }
  ]
}
