)]}'
{
  "commit": "81dd4e629539facd3d57723c455d7922b427c000",
  "tree": "0b0b97abb0f97f8849ccd2d42ee2790ec4d31c62",
  "parents": [
    "d4975713a0aa3ba872807fc16585fb4b5a04e41d"
  ],
  "author": {
    "name": "Ian Wood",
    "email": "ianwood2024@u.northwestern.edu",
    "time": "Thu Nov 14 14:57:28 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Nov 14 14:57:28 2024 -0800"
  },
  "message": "[Util][NFC] OptimizeIntArithmetic: reduce calls to `eraseState` (#19130)\n\nThis pass is causing long compilation times for llama3 405b (even when\r\ncherry-picking https://github.com/llvm/llvm-project/pull/115399). The\r\nmajority of the time is spent in this one pass. The compilation times\r\nimprove when calling `eraseState` only when ops are deleted. This is\r\nsimilar to the upstream listeners in `UnsignedWhenEquivalent.cpp` and\r\n`IntRangeOptimizations.cpp`. It appears this function loops over all\r\n`LatticeAnchors` on each invocation to find the one to delete, causing\r\nit to be slow. My (nonrigorous) experiment showed a decrease from 18 min\r\nto 3 min compile time. My main concern here would be this affecting\r\ncorrectness, as I don\u0027t know if this has unaccounted for side effects.\r\n\r\nSigned-off-by: Ian Wood \u003cianwood2024@u.northwestern.edu\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1049f3950bc3268f475de09bdd147545d8157470",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/OptimizeIntArithmetic.cpp",
      "new_id": "d4b3a14b43f5cfa24ad49a737b390bdb0ea436e4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/OptimizeIntArithmetic.cpp"
    }
  ]
}
