)]}'
{
  "commit": "a6b7181733c83523a39d4f4e788c6b7a227d477d",
  "tree": "2587974c0e5b3a4fab4b4e2101ca7b6f7f08a3b5",
  "parents": [
    "0e1c5bfac8574bc8419968279069c76b55e5f270"
  ],
  "author": {
    "name": "Farzon Lotfi",
    "email": "farzonlotfi@microsoft.com",
    "time": "Thu Jan 09 13:11:52 2025 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jan 09 13:11:52 2025 -0500"
  },
  "message": "[HLSL] Move length support out of the DirectX Backend  (#121611)\n\n## Changes\r\n- Delete DirectX length intrinsic\r\n- Delete HLSL length lang builtin\r\n- Implement length algorithm entirely in the header.\r\n\r\n## History\r\n- In the past if an HLSL intrinsic lowered to either a spirv op code or\r\na DXIL opcode we represented it with intrinsics\r\n\r\n## Why we are moving away?\r\n- To make HLSL apis more portable the team decided that it makes sense\r\nfor some intrinsics to be defined only in the header.\r\n- Since there tends to be more SPIRV opcodes than DXIL opcodes the plan\r\nis to support SPIRV opcodes either with target specific builtins or via\r\npattern matching.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "468c16050e2bf08e86711c8375db87009bba1f07",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Basic/Builtins.td",
      "new_id": "f4216bd01a0743cf01998e82c61ba26ed3c8a2d1",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Basic/Builtins.td"
    },
    {
      "type": "modify",
      "old_id": "ca03fb665d423d80ab29d4f27034c4e3c8571ed8",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CGBuiltin.cpp",
      "new_id": "2b0919766999615f3e41e344100a17e121e0440e",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CGBuiltin.cpp"
    },
    {
      "type": "modify",
      "old_id": "46e472f0aae2130f9eb12a0698e8191aec281823",
      "old_mode": 33188,
      "old_path": "clang/lib/CodeGen/CGHLSLRuntime.h",
      "new_id": "00e110e8e6fa27a15575a1fd5497dac1a55a318a",
      "new_mode": 33188,
      "new_path": "clang/lib/CodeGen/CGHLSLRuntime.h"
    },
    {
      "type": "modify",
      "old_id": "8d5fd9413315314808ad93285eee9bc1b0440754",
      "old_mode": 33188,
      "old_path": "clang/lib/Headers/hlsl/hlsl_detail.h",
      "new_id": "392075d276b188798167f193a7a056ce7b13a18f",
      "new_mode": 33188,
      "new_path": "clang/lib/Headers/hlsl/hlsl_detail.h"
    },
    {
      "type": "modify",
      "old_id": "b745997f1d5a2b8b9e8725bb2083ba0f8e36c6e2",
      "old_mode": 33188,
      "old_path": "clang/lib/Headers/hlsl/hlsl_intrinsics.h",
      "new_id": "cf287e598f76bacbe43eb080babce425a7605bba",
      "new_mode": 33188,
      "new_path": "clang/lib/Headers/hlsl/hlsl_intrinsics.h"
    },
    {
      "type": "modify",
      "old_id": "600c800029fd05a55a950ee610bfbbfbc9acf611",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaHLSL.cpp",
      "new_id": "64b6fe4cd5eb41a6a8a54cc24a0a58e7a5a57e46",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaHLSL.cpp"
    },
    {
      "type": "modify",
      "old_id": "a24f01d275440a0ab1f8653d7224ce9527679dc8",
      "old_mode": 33188,
      "old_path": "clang/test/CodeGenHLSL/builtins/length.hlsl",
      "new_id": "ecf2edcf0b05f1c4626694372bc70d6e99eca7a8",
      "new_mode": 33188,
      "new_path": "clang/test/CodeGenHLSL/builtins/length.hlsl"
    },
    {
      "type": "modify",
      "old_id": "281faada6f5e9404a5478c22f826fb8262ff4835",
      "old_mode": 33188,
      "old_path": "clang/test/SemaHLSL/BuiltIns/length-errors.hlsl",
      "new_id": "a191f0419fbbafeede1db8725fad3e208f9f7253",
      "new_mode": 33188,
      "new_path": "clang/test/SemaHLSL/BuiltIns/length-errors.hlsl"
    },
    {
      "type": "modify",
      "old_id": "3b1d1a88e01a8b235e5dbd1a6066a3acd0452130",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/IR/IntrinsicsDirectX.td",
      "new_id": "ef48af5b42dbf1e7fb03b782f9908af739c8972b",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/IR/IntrinsicsDirectX.td"
    },
    {
      "type": "modify",
      "old_id": "51dc3025f0c3790e25da611cd2355e98d44414c2",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp",
      "new_id": "cf142806bb1df6bc16ff229e3d9027f0ce6e934e",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp"
    },
    {
      "type": "delete",
      "old_id": "fc5868a7f6e82c47087e9d25cbdff62a7e729695",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/DirectX/length.ll",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "143b41fc506e1dc6dcf17275ac7a53b220f1d9be",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/DirectX/length_error.ll",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f722de2f9029e779e7d43687184a81dce923e537",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/DirectX/length_invalid_intrinsic_error.ll",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "ac3a0513eb6b27bfa3e038041ea85cc3f3e17b1c",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/DirectX/length_invalid_intrinsic_error_scalar.ll",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
