)]}'
{
  "commit": "9c43b68de628a1e2cba556adfb71c17028eb802e",
  "tree": "835d7ebc0d87f635d661481632e743fd2131e6d3",
  "parents": [
    "ec7a869d31a1f82fe5b7750d8952c26753ea1df8"
  ],
  "author": {
    "name": "Aurelien Jarno",
    "email": "aurelien@aurel32.net",
    "time": "Tue Oct 09 21:53:07 2012 +0200"
  },
  "committer": {
    "name": "Aurelien Jarno",
    "email": "aurelien@aurel32.net",
    "time": "Sun Oct 28 14:54:21 2012 +0100"
  },
  "message": "tcg: rework liveness analysis\n\nRework the liveness analysis by tracking temps that need to go back to\nmemory in addition to dead temps tracking. This allows to mark output\narguments as \"need sync\", and to synchronize them back to memory as soon\nas they are not written anymore. This way even arguments mapping to\nglobals can be marked as \"dead\", avoiding moves to a new register when\ninput and outputs are aliased.\n\nIn addition it means that registers are freed as soon as temps are not\nused anymore, instead of waiting for a basic block end or an op with side\neffects. This reduces register spilling especially on CPUs with few\nregisters, and spread the mov over all the TB, increasing the\nperformances on in-order CPUs.\n\nReviewed-by: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Aurelien Jarno \u003caurelien@aurel32.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cfeeaf1e441ed89eecd9fba05915a2a4478ec064",
      "old_mode": 33188,
      "old_path": "tcg/tcg.c",
      "new_id": "567ec87dadc01e3c858dec83e81e344f06f740d0",
      "new_mode": 33188,
      "new_path": "tcg/tcg.c"
    }
  ]
}
