)]}'
{
  "commit": "43eafc0c4aca0b2fd159c09d4b162c1941b4f4ed",
  "tree": "ed8cf3c481182e8dc7510ddc8d9de00579fc5f15",
  "parents": [
    "1c1238d3615a7e1a99570d1e02de3b538d2e0669"
  ],
  "author": {
    "name": "Paul Kirth",
    "email": "paulkirth@google.com",
    "time": "Mon May 05 18:16:33 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon May 05 18:16:33 2025 -0700"
  },
  "message": "[llvm][gvn-sink] Don\u0027t try to sink inline asm (#138414)\n\nFixes #138345. Before this patch, gvn-sink would try to sink inline\nassembly statements. Other GVN passes avoid them (see\nhttps://github.com/llvm/llvm-project/blob/b4fac94181c4cf17dbb7ecc2ae975712b0e4a6d1/llvm/lib/Transforms/Scalar/GVN.cpp#L2932\nSimilarly, gvn-sink should skip these instructions, since they are not\nsafe to move. To do this, we update the early exit in\ncanReplaceOperandWithVariable, since it should have caught this case.\nIt\u0027s more efficient to also skip numbering in GVNSink if the instruction\nis InlineAsm, but that should be infrequent.\n\nThe test added is reduced from a failure when compiling Fuchsia with\ngvn-sink.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "809a0d7ebeea69bfd0388ad93ae6f37f71683c93",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Utils/Local.cpp",
      "new_id": "ce03bc066c6e26e73994f4f65948e3991a3d62af",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Utils/Local.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7a29d25d84eebb0cdcc08baf500bb95879c16e40",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/GVNSink/pr138345.ll"
    }
  ]
}
