)]}'
{
  "commit": "e6e497dbc2dc6e97b33f7fb1ec661df92d0ce100",
  "tree": "6010aff2211c497a0b42531216d829a92ae31a93",
  "parents": [
    "d7ee972862e2952ed895497eba5760c738a7da11"
  ],
  "author": {
    "name": "Jan Voung",
    "email": "jvoung@chromium.org",
    "time": "Wed Jul 30 10:06:03 2014 -0700"
  },
  "committer": {
    "name": "Jan Voung",
    "email": "jvoung@chromium.org",
    "time": "Wed Jul 30 10:06:03 2014 -0700"
  },
  "message": "Fix bug when atomic load is fused with an arith op (and not in the entry BB)\n\nNormally, the FakeUse for preserving the atomic load ends\nup on the load\u0027s Dest. However, for fused load+add, the load\nis deleted, and its Dest is no longer defined. This trips\nup the liveness analysis when it happens on a non-entry\nblock. So the FakeUse should be for the add\u0027s dest instead,\nin that case.\n\nWe have no access to the add, so introduce a\ngetLastInserted() helper. A couple of ways to do that:\n- modify insert() to track explicitly\n- rewind from Next one step\n\nEither that, or we disable the fusing for atomic loads.\n\nBUG\u003d  https://code.google.com/p/nativeclient/issues/detail?id\u003d3882\nR\u003dstichnot@chromium.org\n\nReview URL: https://codereview.chromium.org/417353003\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2a9b8c431ac6fbd42cabba5f8bfb9384017829bb",
      "old_mode": 33188,
      "old_path": "src/IceTargetLowering.cpp",
      "new_id": "0034de5f7ca3e2340eb15e52f23530dfafc8ca56",
      "new_mode": 33188,
      "new_path": "src/IceTargetLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "ec86cffae50396a54690c2d3167cebb01070b562",
      "old_mode": 33188,
      "old_path": "src/IceTargetLowering.h",
      "new_id": "91512a9fb47189ad7f322bb1d18e8c08816f076b",
      "new_mode": 33188,
      "new_path": "src/IceTargetLowering.h"
    },
    {
      "type": "modify",
      "old_id": "2db795ba2208999abc4b8fdc193fcaf567594535",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8632.cpp",
      "new_id": "00db25a5a29823b3411b6b030f5fd174184aeb55",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8632.cpp"
    },
    {
      "type": "modify",
      "old_id": "2c325df05ab5e228040d35c1d3be092ac4fc8aa8",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/nacl-atomic-intrinsics.ll",
      "new_id": "82f975f4117c9c07ab99d998ae9c2dfdc1ef3e8e",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/nacl-atomic-intrinsics.ll"
    }
  ]
}
