)]}'
{
  "commit": "2452b2246211ac0999766dfc15bb5c929d34b01b",
  "tree": "70c4752ec42b866afd9f7ac0a818c17323c5007f",
  "parents": [
    "2b29155a2ee9b7f9b5acdcd50c9206b25686cf26"
  ],
  "author": {
    "name": "Krzysztof Drewniak",
    "email": "Krzysztof.Drewniak@amd.com",
    "time": "Mon Jan 13 11:19:39 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jan 13 13:19:39 2025 -0600"
  },
  "message": "[Codegen][GPU] Let integer range optimization narrow GPU computations to i32 (#19473)\n\nAdd an option to -iree-util-optimize-int-arithmetic to have it perform\r\ncomputations in i32 where possible, which is enabled when optimizing\r\narithmetic for GPU codegen. This allows LLVM co correctly conclude that\r\nvarious computations don\u0027t need to be done at full 64-bit precision,\r\nthus saving registers and instructions. (LLVM has some rewrites for\r\nthis, but they\u0027re, for example, gated on only having one use of the\r\npotentially-truncated value, which means that shared math stays in an\r\nover-wide data type).\r\n\r\nThis commit also marks several Vulkan tests as succeeding because they no longer need i64 arithmetic",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c3dda57d208583d84c3157b98233ac0e813c4536",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp",
      "new_id": "c1ea8225bba24d3b16919da517b0e89584cc092a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef9e587da95bd007172b90860ba929a6d1fdd89e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/nvvm_extract_address_computation.mlir",
      "new_id": "be163903800ee18ca0d98f4883a5e8c5b32be00e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/nvvm_extract_address_computation.mlir"
    },
    {
      "type": "modify",
      "old_id": "2a13558fb4332e6317e99c3e2775402997e2466f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/SPIRV/Passes.cpp",
      "new_id": "2b8e467449e087e486a4d562ee0e3fa24067e267",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/SPIRV/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "3b6aa5fa4beb98762f941a501ef5148797cfa384",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Transforms/Transforms.cpp",
      "new_id": "f63891c196597b621e70f8af31104766eaf0feb7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Transforms/Transforms.cpp"
    },
    {
      "type": "modify",
      "old_id": "b1c17bdea68f40ce5c51b74266972abbb6d0df30",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Util/IR/UtilOps.td",
      "new_id": "97eae87c3ec4210cbe136ce4b053b84deb46848f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Util/IR/UtilOps.td"
    },
    {
      "type": "modify",
      "old_id": "c58aeacf10e86fc384373d47fdecf4fd68ec6774",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/OptimizeIntArithmetic.cpp",
      "new_id": "fdee32e3b67ef10b4ae1f562e24206aa9dc39dfb",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/OptimizeIntArithmetic.cpp"
    },
    {
      "type": "modify",
      "old_id": "fb0cf7d028a00d32645d5d35998d981e7c708301",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/Passes.td",
      "new_id": "aa4751fcc311618c466350a109af1a1e544527f8",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "c4a4724e7d1162819631b78e0e6902deb3d398c3",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/test/BUILD.bazel",
      "new_id": "b6befb476e1ae664afb6e8e5d6709254e1689a63",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "02ba4d93fa78e5775709fda794a1420127ee2ba8",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/test/CMakeLists.txt",
      "new_id": "b1cd45cd4b1975fecc399382f217ac7d199f93e5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c40dbe495f6d2f70fbb93b8ef757a790b9024b2c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Util/Transforms/test/optimize_int_arithmetic_narrowing.mlir"
    },
    {
      "type": "modify",
      "old_id": "7284fc0e5653b2585fe18fe6f68d252fe0616b3b",
      "old_mode": 33188,
      "old_path": "tests/external/iree-test-suites/onnx_ops/onnx_ops_gpu_vulkan.json",
      "new_id": "5d5d248d4be403f86c00bb9164442ef31e807d5e",
      "new_mode": 33188,
      "new_path": "tests/external/iree-test-suites/onnx_ops/onnx_ops_gpu_vulkan.json"
    }
  ]
}
