)]}'
{
  "commit": "44d17ca02e0b112b4777ba6416b87793c045d8de",
  "tree": "b4be791d451e979ab260551d14d82d351d1bb152",
  "parents": [
    "9bb96980aa3c87aab8c26459f61559aa582d41c2"
  ],
  "author": {
    "name": "Stanislav Mekhanoshin",
    "email": "Stanislav.Mekhanoshin@amd.com",
    "time": "Tue May 21 19:32:41 2019 +0000"
  },
  "committer": {
    "name": "Stanislav Mekhanoshin",
    "email": "Stanislav.Mekhanoshin@amd.com",
    "time": "Tue May 21 19:32:41 2019 +0000"
  },
  "message": "Fix register coalescer failure to prune value\n\nRegister coalescer fails for the test in the patch with the assertion in\nJoinVals::ConflictResolution `DefMI !\u003d nullptr\u0027. It attempts to join\nlive intervals for two adjacent instructions and erase the copy:\n\n    %2:vreg_256 \u003d COPY %1\n    %3:vreg_256 \u003d COPY killed %1\n\nThe LI needs to be adjusted to kill subrange for the erased instruction\nand extend the subrange of the original def. That was done for the main\ninterval only but not for the subrange. As a result subrange had a VNI\npointing to the erased slot resulting in the above failure.\n\nDifferential Revision: https://reviews.llvm.org/D62162\n\nllvm-svn: 361293\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ca53fe4f393b3a9e1db701bd5cec72c98b00eea5",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/RegisterCoalescer.cpp",
      "new_id": "58e29d613f0e94aebc304d03ef9775566bb5ad7f",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/RegisterCoalescer.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "919a7b10ec6c50c5ec09e41aa9b2dc13e9a798cf",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/AMDGPU/coalescer-subranges-prune-kill-copy.mir"
    }
  ]
}
