)]}'
{
  "commit": "3fcfce4c5e5fd1c3072e8db1d692c93459e8cd74",
  "tree": "12d6e0f287ac3788eaeca321c4a49e2e1a6a482a",
  "parents": [
    "676e660e2dafea6d0f720d2b712dd39fac10e7de"
  ],
  "author": {
    "name": "Florian Hahn",
    "email": "flo@fhahn.com",
    "time": "Sat May 17 10:51:05 2025 +0100"
  },
  "committer": {
    "name": "Florian Hahn",
    "email": "flo@fhahn.com",
    "time": "Sat May 17 10:51:05 2025 +0100"
  },
  "message": "Reapply \"[LoopPeel] Implement initial peeling off the last loop iteration. (#139551)\"\n\nThis reverts the revert commit bf92b127d2637948f53d11a187e865aa10e2e74c.\n\nThis adds missing initialization of PeelLast in gatherPeelingPreferences.\n\nOriginal message:\nGeneralize countToEliminateCompares to also consider peeling off the\nlast iteration if it eliminates a compare.\n\nAt the moment, codegen for peeling off the last iteration is quite\nrestrictive and callers have to make sure that the exit condition can be\nadjusted when peeling and that the loop executes at least 2 iterations.\n\nBoth will be relaxed in follow-ups.\n\nPR: https://github.com/llvm/llvm-project/pull/139551\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3f639138d8b75e035c459b7c3334c9e7c5fdca5b",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/Analysis/TargetTransformInfo.h",
      "new_id": "1aed98e8f50db51a4138824ca58275d162f3d443",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Analysis/TargetTransformInfo.h"
    },
    {
      "type": "modify",
      "old_id": "0b78700ca71bb92e74d2024c421b153bf1d614d9",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/Transforms/Utils/LoopPeel.h",
      "new_id": "dd59a9c766e451a4dcea5024f3ded3eb91aefe54",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/Transforms/Utils/LoopPeel.h"
    },
    {
      "type": "modify",
      "old_id": "5bba3016ba4a1da5a2e1851a5d5dc051ec21bbe4",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Scalar/LoopFuse.cpp",
      "new_id": "d6bd92d520e28f2c366bcc1dfdea5aa4578ed988",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Scalar/LoopFuse.cpp"
    },
    {
      "type": "modify",
      "old_id": "d84b74dd0eecccd03738f23f749b62e4d3630a85",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp",
      "new_id": "0b9fee5727c6ff6c99ad3af7491528828b900eb6",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "f6ace9c4e5d2f0c7d13b70f9cfef4c53af30ee0b",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Utils/LoopPeel.cpp",
      "new_id": "c5c637ab6e20228fc8ec6a1bf6fbe9014539ebdf",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Utils/LoopPeel.cpp"
    },
    {
      "type": "modify",
      "old_id": "2d024bd83e5ce44f685b0766cfb9ca429830ec34",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/LoopUnroll/peel-last-iteration.ll",
      "new_id": "78a13b83ec8d124e0c93bd3e081749409d3d385f",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/LoopUnroll/peel-last-iteration.ll"
    }
  ]
}
