)]}'
{
  "commit": "75f2e873ab2bbc44e87d788dbbc136482c99e9d8",
  "tree": "3dc04c4ffe18ef9d01fa38e85d0423fe852e32e0",
  "parents": [
    "6039eeff17918b1053dfcbac267d2fa2220b8024"
  ],
  "author": {
    "name": "Steven Perron",
    "email": "stevenperron@google.com",
    "time": "Tue May 13 18:29:55 2025 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue May 13 18:29:55 2025 -0400"
  },
  "message": "[opt] Move debug instruction when neccessary in copy prop arrays. (#6142)\n\nDebug instructions for a function scope variable may appear before the\nstore. We use the store as the insertion point for a new access change\nto the source variable assuming all uses of the variable are dominated\nby the store. This causes problems for the debug instruction. It will\nthen receive an operand that has not been defined.\n\nThe fix this we move the debug instruction to after the new access chain\nif necessary. We opt for this option because:\n\n1. We did not want to avoid doing the optimization because of debug\n   information.\n2. There is no other reasonable place to insert the access chain. If we\n   move it to the start of the entry block, some operands may not be\ndefined, and may not be available. If we put it anywhere else, we\npotentially get the same problem as we currently have with the store.\n3. Moving the debug value or debug declare instructions are not a\n   problem. Before the store the varible was undefined, so the debug\ninformation would not enable any useful information in the debugger\nanyway.\n\nFixes https://github.com/microsoft/DirectXShaderCompiler/issues/7025",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d66193b6724802273891e9af289442f7a69e6658",
      "old_mode": 33188,
      "old_path": "source/opt/copy_prop_arrays.cpp",
      "new_id": "0ddfbcc4008f4a5d79c269bddde315d7859d9ae8",
      "new_mode": 33188,
      "new_path": "source/opt/copy_prop_arrays.cpp"
    },
    {
      "type": "modify",
      "old_id": "6d993c79bc3384c6170ebdef5a60911144be3459",
      "old_mode": 33188,
      "old_path": "test/opt/copy_prop_array_test.cpp",
      "new_id": "20f26c648d2e7547ac1e0e0af5b48829a0d2e9b0",
      "new_mode": 33188,
      "new_path": "test/opt/copy_prop_array_test.cpp"
    }
  ]
}
