)]}'
{
  "commit": "aebcf71b7a50bb6e72c539d4e8aae0c96c732a44",
  "tree": "a0dff2b01c85f92293e29ddc99f2fd4c9ed74f7b",
  "parents": [
    "f6b97bbcefb856cb0fc90a5986e5e5e610999aed"
  ],
  "author": {
    "name": "Stefan Schulze Frielinghaus",
    "email": "stefansf@gcc.gnu.org",
    "time": "Fri Jun 12 11:15:14 2026 +0200"
  },
  "committer": {
    "name": "Stefan Schulze Frielinghaus",
    "email": "stefansf@gcc.gnu.org",
    "time": "Tue Jun 30 17:22:04 2026 +0200"
  },
  "message": "ira: Allow multiple uses within an insn [PR125173]\n\nFor the attached test we end up during IRA with\n\n6: r99:DI\u003d`s\u0027\n  REG_EQUIV `s\u0027\n7: {[`b\u0027]\u003dasm_operands;\n    [const(`s\u0027+0x4)]\u003dasm_operands;\n    [`a\u0027]\u003dasm_operands;clobber flags:CC;}\n  REG_DEAD r99:DI\n  REG_UNUSED flags:CC\n\nwhere r99 is used in each asm_operands\n\n(mem/c:SI (plus:DI (reg/f:DI 99)\n                   (const_int 4 [0x4])) [2 s.d+0 S4 A32])\n\nThis in turn means that we hit multiple times the very same insn while\niterating over all uses of r99 which in the end triggers the assert.\n\nThis patch relaxes the assert since what we want to ensure here is that\na register is not used by multiple insns since otherwise we cannot\ntrivially move or delete the definition.\n\n\tPR rtl-optimization/125173\n\ngcc/ChangeLog:\n\n\t* ira.cc (combine_and_move_insns): Allow multiple uses within\n\tan insn.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.dg/pr125173-1.c: New test.\n\n(cherry picked from commit 107d2ad166d09883b43ec1a5cf1e37c68b134a93)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d65e1b97ed8448ef8e9856baab7e32c5cfb4285e",
      "old_mode": 33188,
      "old_path": "gcc/ira.cc",
      "new_id": "3936fa0fbc16107ec473a859dd1625b705d45d9e",
      "new_mode": 33188,
      "new_path": "gcc/ira.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f66b24fcb00eedb79b925bc4a813ede37a8df77",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.dg/pr125173-1.c"
    }
  ]
}
