)]}'
{
  "log": [
    {
      "commit": "5da2180e684ae6afcb55d787f6a69bc97489bb83",
      "tree": "8a487fd3c41b1a501b4f77fca7d7a76a783680c4",
      "parents": [
        "f5091eee4abe73c64959e53bda684bd689569643"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 20 09:29:18 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 20 09:40:48 2015 +0100"
      },
      "message": "Fix codegen_test for long multiplication.\n\nIt seems like clang (that we use on the host) was *very* forgiving\nwith this broken test: the code generated for for MulLong used ebx\nbut this is a callee-save register in C but not ART. Also, the test\nwas not properly written for handling longs, so it was taking\nunitialized stack entries.\n\nGCC on target is not as forgiving.\n\nChange-Id: I5d7a962f8a72b3ce407dce50ca50b4ffc690c99e\n"
    },
    {
      "commit": "f5091eee4abe73c64959e53bda684bd689569643",
      "tree": "ee188b62e08b03084cb5a997932020121b719751",
      "parents": [
        "33259fdfcd350793d10f67f2ea7dfc6051a8afa2",
        "fa8429b967fe2260ece572337534c9dda6c50d8a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 18 00:52:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 18 00:52:31 2015 +0000"
      },
      "message": "Merge \"ART: Re-add dlopen\""
    },
    {
      "commit": "fa8429b967fe2260ece572337534c9dda6c50d8a",
      "tree": "b21da4365bdb203029a30e201ff506bd3b4b7745",
      "parents": [
        "e7bee3b7d307508243f4a00b5cf8a8867fcaaff5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 18:34:42 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 17 17:51:27 2015 -0700"
      },
      "message": "ART: Re-add dlopen\n\nRe-add an oat-file path that uses dlopen to load oat files. This\ncode-path will be necessary to support libunwind unwinding through\nproperly CFI-annotated oat files, as libunwind consults the linker\nabout loaded ELF files.\n\nWe avoid the original dlopen issue, namely that the semantics of\ndlopen disallow loading the same soname twice, by using an extension\nof bionic that supersedes the specified behavior.\n\nChange-Id: I4a7e3cb00d1ea156dad84f76826def2a5967c9ca\n"
    },
    {
      "commit": "33259fdfcd350793d10f67f2ea7dfc6051a8afa2",
      "tree": "5decdfc2d16a72565bd2c1ca4f497f37fe081bcb",
      "parents": [
        "b73f887f7e9a6794159d8ae646e9b1d18797125c",
        "c50358b8947ae4367132dae5987d2e9738e90464"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 17 22:36:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 22:36:51 2015 +0000"
      },
      "message": "Merge \"Fix access past end of args array.\""
    },
    {
      "commit": "c50358b8947ae4367132dae5987d2e9738e90464",
      "tree": "5decdfc2d16a72565bd2c1ca4f497f37fe081bcb",
      "parents": [
        "b73f887f7e9a6794159d8ae646e9b1d18797125c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 17 13:26:09 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 17 14:16:33 2015 -0700"
      },
      "message": "Fix access past end of args array.\n\nBug: 20340831\nChange-Id: Ibc0995e28e74c65d81f001e5b4d1e4780ff19686\n"
    },
    {
      "commit": "b73f887f7e9a6794159d8ae646e9b1d18797125c",
      "tree": "eeca980738c913caa5add5505664d45e9c11577f",
      "parents": [
        "adf87b0c8cd68ed365e01aec620d016493357cec",
        "c9d185d2b4ac045840586d3a890eab61c922379f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 17 17:32:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 17:32:28 2015 +0000"
      },
      "message": "Merge \"Fix undefined behavior in hash calculation.\""
    },
    {
      "commit": "c9d185d2b4ac045840586d3a890eab61c922379f",
      "tree": "fcd621ffa8bd526ab6eddc372d951102aa4a1ec0",
      "parents": [
        "e50dffa29fb6c67eba44e267aa890d35712de9dd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 16 11:54:24 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 17 10:23:55 2015 -0700"
      },
      "message": "Fix undefined behavior in hash calculation.\n\ndex_register might be \u003e\u003d the width of the map hash. Shifting by that\nvalue would be undefined behavior. Constrain the value to within the\nvalid range.\n\nChange-Id: I9037c5c7ec554850ba3385585aca96fde1d50387\n"
    },
    {
      "commit": "adf87b0c8cd68ed365e01aec620d016493357cec",
      "tree": "febb69106adc5625e11e71c88aa8ee6fbe5412d7",
      "parents": [
        "41de22394e0108f6216a56193b579a199fc37649",
        "f4eb9ae9436d72d1406286528331a52c1b3afa1d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 17:23:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 17:23:28 2015 +0000"
      },
      "message": "Merge \"ART: Fix a failing gtest\""
    },
    {
      "commit": "f4eb9ae9436d72d1406286528331a52c1b3afa1d",
      "tree": "febb69106adc5625e11e71c88aa8ee6fbe5412d7",
      "parents": [
        "41de22394e0108f6216a56193b579a199fc37649"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 18:19:30 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 18:20:46 2015 +0100"
      },
      "message": "ART: Fix a failing gtest\n\nStricter assumptions about the state of linear scan caused a reg alloc\ngtest to fail.\n\nChange-Id: I0c568bf996ce6adefe4f000524b38acd3967421e\n"
    },
    {
      "commit": "41de22394e0108f6216a56193b579a199fc37649",
      "tree": "d5fdfaed3d79b435dc0b674d60565f1719b2a416",
      "parents": [
        "81b13f6b5244b664000d4bcad16920aadf3b7e29",
        "3fc992f9dfe8f49ff350132323cc635f102b7b62"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 16:25:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 16:25:17 2015 +0000"
      },
      "message": "Merge \"ART: Improve range search caching in LiveInterval\""
    },
    {
      "commit": "3fc992f9dfe8f49ff350132323cc635f102b7b62",
      "tree": "d5fdfaed3d79b435dc0b674d60565f1719b2a416",
      "parents": [
        "81b13f6b5244b664000d4bcad16920aadf3b7e29"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 18:31:55 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 17:13:57 2015 +0100"
      },
      "message": "ART: Improve range search caching in LiveInterval\n\nRegister allocator spends too long in LiveInterval queries. This patch\nbuilds on previously introduced caching of range search results to\nfurther speed up LiveInterval\u0027s Covers and FindIntersectionWith.\nOnly calls which are guaranteed to query the current-\u003eGetStart()\nposition are cached. Other calls are replaced with CoversSlow which\nsearches through the entire list of ranges.\n\nChange-Id: I84d92b526e174caa70d6477497a06afd85016c4a\n"
    },
    {
      "commit": "81b13f6b5244b664000d4bcad16920aadf3b7e29",
      "tree": "06a2edd119148674efefbf65fde24d9d5840b03f",
      "parents": [
        "dd2cf0c7a5dc7f2c89b8ac217f16b7529461e509",
        "c08675c3e6502f69ee4d1f62998f658ccd152414"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 15:07:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 15:07:26 2015 +0000"
      },
      "message": "Merge \"ART: Fix incorrect last range when adding high interval\""
    },
    {
      "commit": "c08675c3e6502f69ee4d1f62998f658ccd152414",
      "tree": "06a2edd119148674efefbf65fde24d9d5840b03f",
      "parents": [
        "dd2cf0c7a5dc7f2c89b8ac217f16b7529461e509"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 15:49:51 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 15:49:51 2015 +0100"
      },
      "message": "ART: Fix incorrect last range when adding high interval\n\nAdding a high interval clones live ranges but assigns last_range from\nthe low interval. This should not cause any problems as last_range\nis only used for constant-time GetEnd which will return the same\nvalue for both low/high intervals.\n\nChange-Id: Iaf242183436c8ac2f78c0aeea22cd07cd4beacc0\n"
    },
    {
      "commit": "dd2cf0c7a5dc7f2c89b8ac217f16b7529461e509",
      "tree": "eccb77f011b88a3df1f3a4789d4192d509a7c6a9",
      "parents": [
        "f8bdd9f3a002970e4b8fdcf6fe6730116f1626c3",
        "3192540155d51a42b340de7afebe83a5eaf23b03"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 17 10:03:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 17 10:03:22 2015 +0000"
      },
      "message": "Merge \"Cleanup unnecessary test conditions in ssa builder.\""
    },
    {
      "commit": "3192540155d51a42b340de7afebe83a5eaf23b03",
      "tree": "eccb77f011b88a3df1f3a4789d4192d509a7c6a9",
      "parents": [
        "f8bdd9f3a002970e4b8fdcf6fe6730116f1626c3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 17 10:36:57 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 17 10:36:57 2015 +0100"
      },
      "message": "Cleanup unnecessary test conditions in ssa builder.\n\nChange-Id: Ic36e535aec3f977ebe36bfe20bc54a1033de62c6\n"
    },
    {
      "commit": "f8bdd9f3a002970e4b8fdcf6fe6730116f1626c3",
      "tree": "0605ec617454d051485b649898b3e241553411f6",
      "parents": [
        "11c9cd45f2aadad5622fef4b3e81b9e2181ebae3",
        "f903680dd74e1f353dae0f4155163839a6386bf9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 16 23:24:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 23:24:25 2015 +0000"
      },
      "message": "Merge \"Fix value used for shift in quick_cfi_test.\""
    },
    {
      "commit": "11c9cd45f2aadad5622fef4b3e81b9e2181ebae3",
      "tree": "050e70169920ab955852346f8b85773a287b6c59",
      "parents": [
        "e50dffa29fb6c67eba44e267aa890d35712de9dd",
        "00e466dee77088f13b3c2b13474d346b437439ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 21:39:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 21:39:12 2015 +0000"
      },
      "message": "Merge \"Fix build\""
    },
    {
      "commit": "00e466dee77088f13b3c2b13474d346b437439ee",
      "tree": "050e70169920ab955852346f8b85773a287b6c59",
      "parents": [
        "e50dffa29fb6c67eba44e267aa890d35712de9dd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 14:34:45 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 14:36:24 2015 -0700"
      },
      "message": "Fix build\n\nart/runtime/mirror/art_method-inl.h:142: error: undefined\nreference to \u0027art::ClassLinker::ResolveType(unsigned short,\nart::mirror::ArtMethod*)\u0027\n\nChange-Id: I3c5d26eed13e3f8d0a4d96756c09364707b6358e\n"
    },
    {
      "commit": "f903680dd74e1f353dae0f4155163839a6386bf9",
      "tree": "5a6c3405737a725faab4e87c4fbd71c5caf67058",
      "parents": [
        "e50dffa29fb6c67eba44e267aa890d35712de9dd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 16 11:52:45 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Apr 16 14:24:28 2015 -0700"
      },
      "message": "Fix value used for shift in quick_cfi_test.\n\nThe spill mask bit should be shifted by the register number, not the\nwhole register mask.\n\nPreviously this test was shifting by values well over the width of the\ntype, which is undefined behavior.\n\nChange-Id: Idf750be6d95b4487f8f4570b8c7ff9dba38be9f2\n"
    },
    {
      "commit": "e50dffa29fb6c67eba44e267aa890d35712de9dd",
      "tree": "f0392c35efcf00bfc547dfe358d3a176dfc312e3",
      "parents": [
        "73a3fb3d884f14e5de488bc679da4ce5ac7700be",
        "c7df66e2cb124d261cf3b0691a09a3b6e357b6f1"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 16 18:35:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 18:35:14 2015 +0000"
      },
      "message": "Merge \"Remove transitive dependency on \u003ccutils/atomic.h\u003e.\""
    },
    {
      "commit": "c7df66e2cb124d261cf3b0691a09a3b6e357b6f1",
      "tree": "f8ddfd8b0316dd11c9af12283acdd02b7a15eb08",
      "parents": [
        "a76a08fed88bd081bcc4d240f1ba3472a2acbbab"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Apr 15 15:40:18 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Apr 16 10:57:05 2015 -0700"
      },
      "message": "Remove transitive dependency on \u003ccutils/atomic.h\u003e.\n\nBug: 20262261\nChange-Id: Ic6c2ed76e692fc09100b917e00ee9b73621ec8f0\n"
    },
    {
      "commit": "73a3fb3d884f14e5de488bc679da4ce5ac7700be",
      "tree": "23cefb49a93447538480fb567a18f1965794c50b",
      "parents": [
        "50a4d671268cff5041fb09dcb9f64515dd809e4a",
        "10d6886c9ce3ed87431cf10d376a69c23950fa61"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 17:23:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 17:23:36 2015 +0000"
      },
      "message": "Merge \"Disable parallel GC by default\""
    },
    {
      "commit": "50a4d671268cff5041fb09dcb9f64515dd809e4a",
      "tree": "633291b7a22eb9c879d5841c79cfa0d5ab07f10e",
      "parents": [
        "f458ba7d9c04bc8d499532b5470af28db18e4149",
        "241a486267bdb59b32fe4c8db370eb936068fb39"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 17:22:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 17:22:20 2015 +0000"
      },
      "message": "Merge \"ART: Replace expensive calls to Covers in reg alloc\""
    },
    {
      "commit": "241a486267bdb59b32fe4c8db370eb936068fb39",
      "tree": "ea8edc6b55285340ae58bc00f283e8fcaaff3c22",
      "parents": [
        "f90b8548e91392dfc24e8b0f7d3000f4f121c19d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 17:59:03 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 18:13:01 2015 +0100"
      },
      "message": "ART: Replace expensive calls to Covers in reg alloc\n\nLiveInterval::Covers is implemented as a linear-time search over\nliveness ranges and can therefore be rather expensive and should be\navoided unless necessary. This patch replaces calls to Covers when\nsearching for a sibling with the cheaper IsDefinedAt call.\n\nChange-Id: I93fc73529c15a518335f4cbdc3a0def52d9501e5\n"
    },
    {
      "commit": "f458ba7d9c04bc8d499532b5470af28db18e4149",
      "tree": "0c6b662fe5b19228075844100f51c83e36ae7f78",
      "parents": [
        "e7bee3b7d307508243f4a00b5cf8a8867fcaaff5",
        "de486925d74f229e00b568200035eb9ed40aaa62"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 16:52:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 16:52:34 2015 +0000"
      },
      "message": "Merge \"Don\u0027t call ComputeEagerResolvedStrings\""
    },
    {
      "commit": "de486925d74f229e00b568200035eb9ed40aaa62",
      "tree": "1edbb12c332f7418ba8c02483348917608f28547",
      "parents": [
        "a76a08fed88bd081bcc4d240f1ba3472a2acbbab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 15 20:03:16 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 09:39:50 2015 -0700"
      },
      "message": "Don\u0027t call ComputeEagerResolvedStrings\n\nDoesn\u0027t add any strings to the dex caches, takes 50ms on nexus 5\nduring image writing.\n\nChange-Id: Ib38d456b765a90efc0008955f974446fbe285bff\n"
    },
    {
      "commit": "e7bee3b7d307508243f4a00b5cf8a8867fcaaff5",
      "tree": "b9d350a3d1432d7546e5feab77e25807d328300a",
      "parents": [
        "59bb47675b1f1bafbcababadb4a6ba1c345fec1a",
        "a4f8831d6533e4fe5aed18433099e1130d95a877"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 16 15:53:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 15:53:23 2015 +0000"
      },
      "message": "Merge \"Remove duplicates phis created during SSA transformation\""
    },
    {
      "commit": "a4f8831d6533e4fe5aed18433099e1130d95a877",
      "tree": "914c97dd322f59b282f01ca5659a960609e0aa0b",
      "parents": [
        "e015a31e509c3f4de8a90b57b77329ba6609ce2f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 16 12:57:19 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 16 16:48:25 2015 +0100"
      },
      "message": "Remove duplicates phis created during SSA transformation\n\nWhen creating equivalent phis we copy the inputs of the original phi\nwhich may be improperly typed. This will be fixed during the type\npropagation but as a result we may have two equivalent phis with the\nsame type for the same dex register. This is correct but generates more\ncode and prevent some optimizations.\n\nThis CL adds another step in the SSA builder to remove the extra Phi\nnodes created due to equality operators.\n\nThe graph checker verifies that for a given dex register not two phis\nhave the same type.\n\nAlso, replace zero int constant with null constant when we compare a\nreference against null.\n\nChange-Id: Id37cc11a016ea767c7e351575e003d822a9d2e60\n"
    },
    {
      "commit": "59bb47675b1f1bafbcababadb4a6ba1c345fec1a",
      "tree": "e3d42f08052c38e8be22f78723b27248f80af010",
      "parents": [
        "8aec061f5e58876bcc892d8c0309bc13b5349f5c",
        "3d233577c2a9a8dfc6053d93466861b10719b97e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 15:41:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 15:41:53 2015 +0000"
      },
      "message": "Merge \"ART: Fix whitespace in test\""
    },
    {
      "commit": "8aec061f5e58876bcc892d8c0309bc13b5349f5c",
      "tree": "468528f9081cc33299317a3fa62cfc6d84c224e8",
      "parents": [
        "f90b8548e91392dfc24e8b0f7d3000f4f121c19d",
        "f1c6d9e87cbfd27702103ccc7c7f08ce784dc872"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 16 15:41:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 15:41:03 2015 +0000"
      },
      "message": "Merge \"Fallback to quick in case of soft verification errors\""
    },
    {
      "commit": "3d233577c2a9a8dfc6053d93466861b10719b97e",
      "tree": "079154adac27ddc72c3df422f9988e71564f8f57",
      "parents": [
        "f90b8548e91392dfc24e8b0f7d3000f4f121c19d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 16:37:01 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 16:37:01 2015 +0100"
      },
      "message": "ART: Fix whitespace in test\n\nChange-Id: Ia17ac99868efcc7ff32ea63f72644097dd2065bf\n"
    },
    {
      "commit": "f1c6d9e87cbfd27702103ccc7c7f08ce784dc872",
      "tree": "45ad9f5bb52eb0db3857e344ab67b5aab2309472",
      "parents": [
        "e015a31e509c3f4de8a90b57b77329ba6609ce2f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 13 18:42:21 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 16 16:28:11 2015 +0100"
      },
      "message": "Fallback to quick in case of soft verification errors\n\nAdd a regression test: using uninitialized values triggers a soft\nverification error and optimizing should not crash.\n\nThanks to Stephen Kyle (stephenckyle@googlemail.com) for the bug report.\n\nBug: 19988704\nChange-Id: I67174538eed853baff735694b3ae8eb34afe2a39\n"
    },
    {
      "commit": "f90b8548e91392dfc24e8b0f7d3000f4f121c19d",
      "tree": "6c7ec032020177cb6c378f4978d2009e391e59b2",
      "parents": [
        "e316f57b7449b2e4183ff5ef26130efedcaa0a79",
        "f4687e7b4d239937c3cfdb6c877799df1a715fd2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 15:17:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 15:17:10 2015 +0000"
      },
      "message": "Merge \"ART: Adds a regression test for an inliner issue\""
    },
    {
      "commit": "f4687e7b4d239937c3cfdb6c877799df1a715fd2",
      "tree": "96b970a3a0e3f5ca305fc333b39b0f71b5c06132",
      "parents": [
        "05144f4322eed049f4878015bf1f0381d419b785"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 15:42:27 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 16:16:08 2015 +0100"
      },
      "message": "ART: Adds a regression test for an inliner issue\n\nRegression test for CL Ieddadcd94135930a1f29ad64ad57349a384da07f.\n\nChange-Id: Ibc8fd827a4b8b3d0cddf7f7590a689ec99bf1329\n"
    },
    {
      "commit": "e316f57b7449b2e4183ff5ef26130efedcaa0a79",
      "tree": "cbb0eb5933a443ac16ec4612f3d46c4406737742",
      "parents": [
        "a2b78fc83354e1dcdcd6f4715688926d37ac3219",
        "05144f4322eed049f4878015bf1f0381d419b785"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 14:25:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 14:25:55 2015 +0000"
      },
      "message": "Merge \"ART: Hot fix for an inliner issue\""
    },
    {
      "commit": "05144f4322eed049f4878015bf1f0381d419b785",
      "tree": "1608d15ead8f9f897b954560779b30232956b25d",
      "parents": [
        "3e6f1c41220c84f31479a88aa37882307244110b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 15:18:00 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 15:20:34 2015 +0100"
      },
      "message": "ART: Hot fix for an inliner issue\n\nChange 147130 caused a problem with duplicit instruction ids when\ninlining methods with constants. This is a hot fix to unblock build.\n\nChange-Id: Ieddadcd94135930a1f29ad64ad57349a384da07f\n"
    },
    {
      "commit": "a2b78fc83354e1dcdcd6f4715688926d37ac3219",
      "tree": "3273730f5995659ecb8cdba626fa4fa10e0986ef",
      "parents": [
        "3e6f1c41220c84f31479a88aa37882307244110b",
        "43af728a3ccecb5f0eacef85f44d70df3d4c40f9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 16 13:36:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 13:36:44 2015 +0000"
      },
      "message": "Merge \"Split safepoint positions to avoid calling Covers.\""
    },
    {
      "commit": "43af728a3ccecb5f0eacef85f44d70df3d4c40f9",
      "tree": "3273730f5995659ecb8cdba626fa4fa10e0986ef",
      "parents": [
        "3e6f1c41220c84f31479a88aa37882307244110b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 16 13:01:01 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 16 13:01:01 2015 +0100"
      },
      "message": "Split safepoint positions to avoid calling Covers.\n\nThis is also in preparation for caller/callee save based\nregister allocation.\n\nChange-Id: I63954bdae5ea7870568fd93b4d11e1c9dcd6de6f\n"
    },
    {
      "commit": "3e6f1c41220c84f31479a88aa37882307244110b",
      "tree": "34d6efd2cda3ceb233118e4d135c4a897f02ea12",
      "parents": [
        "da93333d568f3c5bd8eeb58341d10a332e1d42bf",
        "13b4718ecd52a674b25eac106e654d8e89872750"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 10:10:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 10:10:59 2015 +0000"
      },
      "message": "Merge \"ART: Remove DCHECKs for boolean type\""
    },
    {
      "commit": "13b4718ecd52a674b25eac106e654d8e89872750",
      "tree": "34d6efd2cda3ceb233118e4d135c4a897f02ea12",
      "parents": [
        "da93333d568f3c5bd8eeb58341d10a332e1d42bf"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 15 16:29:32 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 11:09:55 2015 +0100"
      },
      "message": "ART: Remove DCHECKs for boolean type\n\nSince bool and int are interchangeable types, checking whether an\ninput is kPrimBoolean can fail when replaced with 0/1 constant or\na phi. This patch removes the problematic DCHECKs, adds a best-effort\nverification into SSAChecker but leaves the phi case empty until a\nsuitable analysis is implemented.\n\nChange-Id: I31e8daf27dd33d2fd74049b82bed1cb7c240c8c6\n"
    },
    {
      "commit": "da93333d568f3c5bd8eeb58341d10a332e1d42bf",
      "tree": "ce6aba4bb0214f733707c58634fa98e73a03563b",
      "parents": [
        "669d8a1edbb2a78e08731a9cd6d8e815b0ec49db",
        "4a3faecbe4157225a3fe83a9ef7f4992dfc9c19d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 09:49:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 09:49:56 2015 +0000"
      },
      "message": "Merge \"ART: Don\u0027t duplicate null/int/long constants when inlining\""
    },
    {
      "commit": "4a3faecbe4157225a3fe83a9ef7f4992dfc9c19d",
      "tree": "90cd60a8f7e39f6d160c3e24598fc898cdac3d7e",
      "parents": [
        "8e8bb8aab6f19ccb5b5869a632d9bc882891e17e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 10:38:44 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 16 10:40:53 2015 +0100"
      },
      "message": "ART: Don\u0027t duplicate null/int/long constants when inlining\n\nChange-Id: I7e6a3393fcbbcf76b4ba2000915ba6bbbfb7c70e\n"
    },
    {
      "commit": "669d8a1edbb2a78e08731a9cd6d8e815b0ec49db",
      "tree": "240d26edb4af28ccd7fa65a9fecc39f718d3d603",
      "parents": [
        "ee2da343bb2a54d9d77e29226e0317ccc913c8c1",
        "e14590bdfed24df30e6b7545fc819ba03ff8bba1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 16 09:40:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 09:40:39 2015 +0000"
      },
      "message": "Merge \"Revert \"[optimizing] Improve x86 parallel moves/swaps\"\""
    },
    {
      "commit": "ee2da343bb2a54d9d77e29226e0317ccc913c8c1",
      "tree": "1bac4253382eb605c3904f3bc00807dd85e15424",
      "parents": [
        "8e8bb8aab6f19ccb5b5869a632d9bc882891e17e",
        "f776b92a0d52bb522043812dacb9c21ac11858e2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 16 08:00:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 08:00:08 2015 +0000"
      },
      "message": "Merge \"Remove dead blocks for the blocks_ array.\""
    },
    {
      "commit": "8e8bb8aab6f19ccb5b5869a632d9bc882891e17e",
      "tree": "ff39a8bb3a813e907ed354a474b917302e7cf2be",
      "parents": [
        "a76a08fed88bd081bcc4d240f1ba3472a2acbbab",
        "40da286d3207d88ed8ff3f5caac4873874603428"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 16 04:24:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 04:24:05 2015 +0000"
      },
      "message": "Merge \"ART: Streaming trace mode\""
    },
    {
      "commit": "40da286d3207d88ed8ff3f5caac4873874603428",
      "tree": "3f9720425b2a024a5a54a0a71447dcea107229a8",
      "parents": [
        "6508158f8388847f4cc3693e2cc1dbee6c2c7d18"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 12:49:04 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 20:45:35 2015 -0700"
      },
      "message": "ART: Streaming trace mode\n\nAdd a streaming mode for tracing. Streaming uses a buffer of 16KB\nand writes to the output when that buffer gets full. Streaming mode\ncan be enabled with -Xmethod-trace-stream and is currently not\nexposed otherwise.\n\nAdd a python script that can parse the streaming format, which\nsimply contains strings for newly encountered threads and methods\ninline, and create output that can be used with traceview.\n\nAdd Trace::Pause and Trace::Abort, which can pause and abort tracing.\nAbort is different from Stop in that it does not write the data.\n\nAdd code to the zygote hooks JNI implementation that pauses tracing\nbefore the fork, making sure that a child cannot clobber the parent\u0027s\ndata.\n\nAdd code to the zygote hooks JNI implementation that aborts old\ntracing and starts new tracing in the child after the fork. Currently\nbase the output on the pid. This will not work on an unmodified\ndevice, as the profiles directory is not generally writable, but\nwe do not have enough information at that point. Consider a scheme\nthat restarts tracing later.\n\nChange-Id: I93c7bf87e35af582bdfdd3ecc7c52454514220dd\n"
    },
    {
      "commit": "10d6886c9ce3ed87431cf10d376a69c23950fa61",
      "tree": "52cfc18e941d78e480c5fdacda57721083b5e51f",
      "parents": [
        "a76a08fed88bd081bcc4d240f1ba3472a2acbbab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 15 14:21:33 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 15 14:42:50 2015 -0700"
      },
      "message": "Disable parallel GC by default\n\nNot using parallel GC seems to reduce avg pauses by ~0.1s on\nEvaluateAndApplyChanges. Avoiding creating the thread pool should\nhelp app launch slightly and reduce memory ussage.\n\nChange-Id: Iebec2a17701c76e4145b41d7c0b4f6dd17806efa\n"
    },
    {
      "commit": "f776b92a0d52bb522043812dacb9c21ac11858e2",
      "tree": "619ae49853b201fc4ea9d0ac4b113c6226e3c339",
      "parents": [
        "acf9b7b7616a9b104e6f2146051d8e14d9cb9030"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 18:22:45 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 21:51:12 2015 +0100"
      },
      "message": "Remove dead blocks for the blocks_ array.\n\nThis prevents crashing because of structurally incorrect\nblocks. Also we now don\u0027t need to remove its instructions.\n\nTest case courtesy of Serguei I Katkov.\n\nChange-Id: Ia3ef9580549fc3546e8cd5f346079b1f0ceb2a61\n"
    },
    {
      "commit": "e14590bdfed24df30e6b7545fc819ba03ff8bba1",
      "tree": "1fe89a424c91dae7adc07ebd620dce8297a0854e",
      "parents": [
        "a5c19ce8d200d68a528f2ce0ebff989106c4a933"
      ],
      "author": {
        "name": "Guillaume Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Wed Apr 15 18:57:27 2015 +0000"
      },
      "committer": {
        "name": "Guillaume Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Wed Apr 15 18:57:27 2015 +0000"
      },
      "message": "Revert \"[optimizing] Improve x86 parallel moves/swaps\"\n\nThis reverts commit a5c19ce8d200d68a528f2ce0ebff989106c4a933.\n\nThis commit introduces a performance regression on CaffeineLogic of 30%.\n\nChange-Id: I917e206e249d44e1748537bc1b2d31054ea4959d\n"
    },
    {
      "commit": "a76a08fed88bd081bcc4d240f1ba3472a2acbbab",
      "tree": "cd016bb007c3757ab2a6df28bc1a65d6a8e78e44",
      "parents": [
        "acf9b7b7616a9b104e6f2146051d8e14d9cb9030",
        "9021825d1e73998b99c81e89c73796f6f2845471"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 14:10:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 14:10:29 2015 +0000"
      },
      "message": "Merge \"Type MoveOperands.\""
    },
    {
      "commit": "acf9b7b7616a9b104e6f2146051d8e14d9cb9030",
      "tree": "14ce120d10571c187a2c6bdc87b350cb9a7e3ad6",
      "parents": [
        "e1d0b80eef04606e426377f30e7e862b3337e2c6",
        "0d9f17de8f21a10702de1510b73e89d07b3b9bbf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 13:29:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 13:29:03 2015 +0000"
      },
      "message": "Merge \"Move the linear order to the HGraph.\""
    },
    {
      "commit": "0d9f17de8f21a10702de1510b73e89d07b3b9bbf",
      "tree": "3d58a2a165ee2bc5af0e813b1ffa893fba72ed6d",
      "parents": [
        "9bb3e8e10d7d9230a323511094a9e260062a1473"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 14:17:44 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 14:17:44 2015 +0100"
      },
      "message": "Move the linear order to the HGraph.\n\nBug found by Zheng Xu: SsaLivenessAnalysis being a stack allocated\nobject, we should not refer to it in later phases of the compiler.\nSpecifically, the code generator was using the linear order, which\nwas stored in the liveness analysis object.\n\nChange-Id: I574641f522b7b86fc43f3914166108efc72edb3b\n"
    },
    {
      "commit": "9021825d1e73998b99c81e89c73796f6f2845471",
      "tree": "13e1038931cbb8bf8b8d0f4e3f51553ba1bfa983",
      "parents": [
        "858d28ca2e73a785977f53141e775a7d4841b89d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 11:56:51 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 12:53:42 2015 +0100"
      },
      "message": "Type MoveOperands.\n\nThe ParallelMoveResolver implementation needs to know if a move\nis for 64bits or not, to handle swaps correctly.\n\nBug found, and test case courtesy of Serguei I. Katkov.\n\nChange-Id: I9a0917a1cfed398c07e57ad6251aea8c9b0b8506\n"
    },
    {
      "commit": "e1d0b80eef04606e426377f30e7e862b3337e2c6",
      "tree": "0799cd859304fd6f4a393698c1adc34e3b961b75",
      "parents": [
        "858d28ca2e73a785977f53141e775a7d4841b89d",
        "66d126ea06ce3f507d86ca5f0d1f752170ac9be1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 15 11:53:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 11:53:08 2015 +0000"
      },
      "message": "Merge \"ART: Implement HBooleanNot instruction\""
    },
    {
      "commit": "66d126ea06ce3f507d86ca5f0d1f752170ac9be1",
      "tree": "8e247db17ef085b55725b21c64d292414fd00b32",
      "parents": [
        "9bb3e8e10d7d9230a323511094a9e260062a1473"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 03 16:02:44 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 15 12:51:49 2015 +0100"
      },
      "message": "ART: Implement HBooleanNot instruction\n\nOptimizations simplifying operations on boolean values (boolean\nsimplifier, instruction simplifier) can benefit from having a special\nHInstruction for negating booleans in order to perform more transforms\nand produce faster machine code.\n\nThis patch implements HBooleanNot as \u0027x xor 1\u0027, assuming that booleans\nare 1-bit integers and allowing for a single-instruction negation on\nall supported platforms.\n\nChange-Id: I33a2649c1821255b18a86ca68ed16416063c739f\n"
    },
    {
      "commit": "858d28ca2e73a785977f53141e775a7d4841b89d",
      "tree": "2b8faa67fffba75bbe2d8493883e575556741e6a",
      "parents": [
        "3b75943bfdd22adf4833d148aed89856879c01c6",
        "009e2a6003389207a4ba7dabb028173f350c8144"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 15 10:15:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 10:15:10 2015 +0000"
      },
      "message": "Merge \"Do not deduplicate code if --debuggable is set.\""
    },
    {
      "commit": "3b75943bfdd22adf4833d148aed89856879c01c6",
      "tree": "7cf97d885e5d2a615aa084bdc951ab95d0068ce7",
      "parents": [
        "9bb3e8e10d7d9230a323511094a9e260062a1473",
        "a978d43fc40984e0cef0c4d42076263f5a20b5b5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 10:08:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 10:08:07 2015 +0000"
      },
      "message": "Merge \"Revert \"Add a check in the location summary.\"\""
    },
    {
      "commit": "a978d43fc40984e0cef0c4d42076263f5a20b5b5",
      "tree": "792a11dfdd9f943017b575e99557da36e5bc43bd",
      "parents": [
        "95bf7547986e68d4ac93b0a529aaa8eb3c998c1f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 10:07:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 10:07:52 2015 +0000"
      },
      "message": "Revert \"Add a check in the location summary.\"\n\nMy assumption was wrong. We actually can use same as first input with any, *only if* the generate code does not clobber the first input. We use this for, e.g. DivZeroCheck, NullCheck.\n\nThis reverts commit 95bf7547986e68d4ac93b0a529aaa8eb3c998c1f.\n\nChange-Id: Ib72d73fe580f5bc707b41c651f2c8936bd4e2407\n"
    },
    {
      "commit": "009e2a6003389207a4ba7dabb028173f350c8144",
      "tree": "0745f6e34d9eb26d0c7a1cd462270f47d7eb46e4",
      "parents": [
        "74bf58167e22a781adffe798803105f6541d25a0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 15 02:46:30 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 15 10:47:59 2015 +0100"
      },
      "message": "Do not deduplicate code if --debuggable is set.\n\nThis ensures that the correct method is displayed in backtrace, and it\nmakes it possible to reliably set native breakpoints in the methods.\n\nI assume this will also be needed for java debugging as soon as the\nArtMethod* is removed from the stackframe.\n\nChange-Id: I289e85461c231fde2d45473bb19aff9ad5fb496d\n"
    },
    {
      "commit": "9bb3e8e10d7d9230a323511094a9e260062a1473",
      "tree": "a942557fa165d52cb5e22ba6699d922735dadac5",
      "parents": [
        "40676e7d4f59d9010f51d4ccd6def61d8b203941",
        "95bf7547986e68d4ac93b0a529aaa8eb3c998c1f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 09:17:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 09:17:20 2015 +0000"
      },
      "message": "Merge \"Add a check in the location summary.\""
    },
    {
      "commit": "40676e7d4f59d9010f51d4ccd6def61d8b203941",
      "tree": "7cf97d885e5d2a615aa084bdc951ab95d0068ce7",
      "parents": [
        "cd5bc14b1aa77c4c1e84b5edd800a577411992aa",
        "5588e588144fffc978845a2c9c915a0044565a03"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 09:17:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 09:17:03 2015 +0000"
      },
      "message": "Merge \"Refactor safepoints in register allocator.\""
    },
    {
      "commit": "5588e588144fffc978845a2c9c915a0044565a03",
      "tree": "b4346bb9e3a6fb93ed9a76f7caa1b9f72e4c9746",
      "parents": [
        "6fea0097be6aefb0a1faf9eaf24cfbadda0959a5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 14 14:10:59 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 10:16:07 2015 +0100"
      },
      "message": "Refactor safepoints in register allocator.\n\nThis is in preparation for adding logic around callee/caller\nsaved in the register allocator.\n\nChange-Id: I4204169f0a6a01074880538833144be7b0810882\n"
    },
    {
      "commit": "95bf7547986e68d4ac93b0a529aaa8eb3c998c1f",
      "tree": "7865118be29c02ccbfdb893277a40f1a2557918f",
      "parents": [
        "85806723695120d183e85e9d12d52340b839b781"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 14 17:05:16 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 09:37:01 2015 +0100"
      },
      "message": "Add a check in the location summary.\n\nHaving SameAsFirstInput for out, and first input Any does not\nmake sense currently. If it\u0027s stack, we are going to overwrite\nit, potentially clobbering another local. And constant does not\nmake sense.\n\nChange-Id: I0ce357137487ed3dcecf4efd9922a039a2a1a29d\n"
    },
    {
      "commit": "cd5bc14b1aa77c4c1e84b5edd800a577411992aa",
      "tree": "596640bd9066d6f218665dd0adce897bf9d5855e",
      "parents": [
        "6508158f8388847f4cc3693e2cc1dbee6c2c7d18",
        "69a503050fb8a7b3a79b2cd2cdc2d8fbc594575d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 15 08:28:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 08:28:59 2015 +0000"
      },
      "message": "Merge \"ARM64: Remove suspend register.\""
    },
    {
      "commit": "6508158f8388847f4cc3693e2cc1dbee6c2c7d18",
      "tree": "07bf4abee493119b15cd295ad5d866024df9eac7",
      "parents": [
        "74bf58167e22a781adffe798803105f6541d25a0",
        "5d4bb1d14475dec53347e9e8ad2b8a4f2dd76bf3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 05:44:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 05:44:30 2015 +0000"
      },
      "message": "Merge \"ART: More nullptr checks in unstarted runtime\""
    },
    {
      "commit": "5d4bb1d14475dec53347e9e8ad2b8a4f2dd76bf3",
      "tree": "07bf4abee493119b15cd295ad5d866024df9eac7",
      "parents": [
        "74bf58167e22a781adffe798803105f6541d25a0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 22:16:14 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 22:16:14 2015 -0700"
      },
      "message": "ART: More nullptr checks in unstarted runtime\n\nMore checks necessary for the compiler-driver test.\n\nChange-Id: I29bc20d1f571df5407f9b5fca212e3e79ef9cdc7\n"
    },
    {
      "commit": "74bf58167e22a781adffe798803105f6541d25a0",
      "tree": "146b6e64c44774df0a7e5fbef45859ea102bbcc8",
      "parents": [
        "db6dc3d839209b13937b5e4a1310edf174f0eb2b",
        "799b8c4cba128d13bab63c28800d1eed4e3bd243"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 15 01:10:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 15 01:10:13 2015 +0000"
      },
      "message": "Merge \"Split .debug_info section to compilation units.\""
    },
    {
      "commit": "799b8c4cba128d13bab63c28800d1eed4e3bd243",
      "tree": "19f607698efe767fcd3e433a1ac252d3b24c97d9",
      "parents": [
        "edae94ab217d4ef3912cb89c20dae58001ceaec9"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 14 01:57:43 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 15 01:53:42 2015 +0100"
      },
      "message": "Split .debug_info section to compilation units.\n\nThis resolves old TODO in the code.  It is also very important\nfor performance and memory usage of any tools which might be\nconsuming the debug data.  Without this split, the tools\nwould be forced to decode (and probably store in memory) all of\ndebug data even for a simple query.  With this change it should\nbe easy to find only the relevant compilation unit.\n\nChange-Id: I9f285eaa01632b6adea39cae866df6f76e9d0062\n"
    },
    {
      "commit": "db6dc3d839209b13937b5e4a1310edf174f0eb2b",
      "tree": "fd02e2b8e8030c37d02f58fa431ebc71018aa6df",
      "parents": [
        "04538c1d79c892ec6f2ccdb1345af5b71f398681",
        "f3f2a7a0dac552593825807605c98f3910f3e557"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 22:54:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 22:54:08 2015 +0000"
      },
      "message": "Merge \"Remove suspend point from field loading\""
    },
    {
      "commit": "f3f2a7a0dac552593825807605c98f3910f3e557",
      "tree": "dad6d3821a562f7c26f9518002a7ed27716205be",
      "parents": [
        "e689c8a41355621e1a4c738ffb9d527e2a567b80"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 15:43:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 15:43:10 2015 -0700"
      },
      "message": "Remove suspend point from field loading\n\nThe error was that we had a partially constructed field array when we\ngot suspended by moving GC. This caused the already allocated fields\nto not get updated, and be stale roots the next GC. Fixes test 125\nwith GSS collector.\n\nChange-Id: I7278def915f540b6a9d12677a6ba61637f5949a2\n"
    },
    {
      "commit": "04538c1d79c892ec6f2ccdb1345af5b71f398681",
      "tree": "1be8e216969bb8392ffa9b1dae0850a2a971b2d1",
      "parents": [
        "503559045a794c2b376fc0ef74d9e7afb0acca64",
        "7848da48a0a4241dedc1cc83ac4931e61575eb92"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 21:17:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 21:17:05 2015 +0000"
      },
      "message": "Merge \"ART: Store classpath information into oat file\""
    },
    {
      "commit": "7848da48a0a4241dedc1cc83ac4931e61575eb92",
      "tree": "58a789b6b21893135a8770496175ccc7259d7ea6",
      "parents": [
        "6c7bd25b2b2a07740bcd838c2f4024e67be83fd1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 09 11:15:04 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 21:16:31 2015 +0000"
      },
      "message": "ART: Store classpath information into oat file\n\nStore a \"dependency list\" of class-path dex-files into the key-value\nstore of an oat file. The list is made up of dex locations and\ncorresponding checksums.\n\nAdd tests for encoding, decoding and checking the list.\n\nBug: 19781184\nChange-Id: Ie700dd37e6e086db599c95d329ac1f1d2ff0b758\n"
    },
    {
      "commit": "503559045a794c2b376fc0ef74d9e7afb0acca64",
      "tree": "440b8cdbbba982351987b1cbc417a56f28933db1",
      "parents": [
        "0cbb4a8cab4c7824ab702404b832ee1ea5950aad",
        "f778eb275986811a3e1aba82d364b7e6a94678f3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 21:07:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 21:07:05 2015 +0000"
      },
      "message": "Merge \"ART: Add Security cutout to unstarted runtime\""
    },
    {
      "commit": "0cbb4a8cab4c7824ab702404b832ee1ea5950aad",
      "tree": "eb43fda0667e44673fefdb718115a129163565cd",
      "parents": [
        "e689c8a41355621e1a4c738ffb9d527e2a567b80",
        "f865ea9557e6fe017caf99832dc3adf9fadbf86f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 21:06:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 21:06:16 2015 +0000"
      },
      "message": "Merge \"ART: Make the PathClassLoader fast-path recursive\""
    },
    {
      "commit": "f865ea9557e6fe017caf99832dc3adf9fadbf86f",
      "tree": "e6b94a730b832496eaf4f652a9839ed3a78cd366",
      "parents": [
        "e015a31e509c3f4de8a90b57b77329ba6609ce2f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 13 22:14:19 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 13:45:04 2015 -0700"
      },
      "message": "ART: Make the PathClassLoader fast-path recursive\n\nAllow an arbitrary nesting of path class-loaders. This will also\nhandle the fake java.lang.BootClassLoader as a class-loader object\ncorrectly (which is of some importance to compile-time initialization).\n\nBug: 19781184\nBug: 19542228\nChange-Id: I61f0249cf4ec8df08a83ccbd29bcf067619c28c0\n"
    },
    {
      "commit": "e689c8a41355621e1a4c738ffb9d527e2a567b80",
      "tree": "1f170380e5bdf9c49de6b60127b6efad97074dc4",
      "parents": [
        "2ff3c2cd515963ca8ba493c22a24f9e0df4f1bdd",
        "44fe8b32265e81a5539aa6730ba8ded270913d3a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 18:54:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 18:54:16 2015 +0000"
      },
      "message": "Merge \"Fix test 104 for --relocate --no-patchoat\""
    },
    {
      "commit": "44fe8b32265e81a5539aa6730ba8ded270913d3a",
      "tree": "1f170380e5bdf9c49de6b60127b6efad97074dc4",
      "parents": [
        "2ff3c2cd515963ca8ba493c22a24f9e0df4f1bdd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 11:33:53 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 11:41:17 2015 -0700"
      },
      "message": "Fix test 104 for --relocate --no-patchoat\n\nFailure caused by keeping an array live in a vreg, this caused\ngetDeclaredMethod to throw OOME.\n\nChange-Id: Id2aa976af0978cdd7354fb94b3becfcc85e19ca2\n"
    },
    {
      "commit": "2ff3c2cd515963ca8ba493c22a24f9e0df4f1bdd",
      "tree": "d30e8045c9a9d4d5f19fc40c2834cfe89d7c3edd",
      "parents": [
        "ec0402b0323850b5a1be2b783a7a09516772c611",
        "9086b65b2ad35dd39a8afc62d535be8217208d08"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 18:12:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 18:12:13 2015 +0000"
      },
      "message": "Merge \"Fix valgrind tests\""
    },
    {
      "commit": "9086b65b2ad35dd39a8afc62d535be8217208d08",
      "tree": "3abc6e3297b840289bc240e3a9bc7e61b7a99cbc",
      "parents": [
        "8d20011a9de7cd94bee59db3ae8c0cbbf55911d9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 09:35:18 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 14 11:06:34 2015 -0700"
      },
      "message": "Fix valgrind tests\n\nDelete large objects in space destructor. Also some cleanup.\n\nChange-Id: I4c4e90149841a156b7a3236201b37683e14890fb\n"
    },
    {
      "commit": "ec0402b0323850b5a1be2b783a7a09516772c611",
      "tree": "20d8f31919052c8ba7263fdc310d4473da353247",
      "parents": [
        "1e6c489d95afa6c13aa7cf1c213093b8f9b41f1c",
        "bf4d3afaf5b408eae7bbd693054447e9b2487505"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 17:33:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 17:33:50 2015 +0000"
      },
      "message": "Merge \"ART: Add a null-check to unstarted-runtime\""
    },
    {
      "commit": "1e6c489d95afa6c13aa7cf1c213093b8f9b41f1c",
      "tree": "e68ac05fdf7d6c686b36ddf0d00f9d135440c964",
      "parents": [
        "8d20011a9de7cd94bee59db3ae8c0cbbf55911d9",
        "a1c9f013c034fbddb9337cc5c7ecf0e5a8b77547"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Apr 14 17:31:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 17:31:13 2015 +0000"
      },
      "message": "Merge \"getRuntimeStat() support (ART).\""
    },
    {
      "commit": "bf4d3afaf5b408eae7bbd693054447e9b2487505",
      "tree": "376293a3ead59084af08a5ae2a8c7e76df12cc9d",
      "parents": [
        "e015a31e509c3f4de8a90b57b77329ba6609ce2f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 10:10:33 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 10:11:06 2015 -0700"
      },
      "message": "ART: Add a null-check to unstarted-runtime\n\nCheck the string parameter to Class.forName before using it.\n\nBug: 19542228\nChange-Id: I0d5c44122055c46e251451b1c0f687bbaf64d13e\n"
    },
    {
      "commit": "f778eb275986811a3e1aba82d364b7e6a94678f3",
      "tree": "d549ae0860c264f61ffb4250ef6aff3d15756237",
      "parents": [
        "6c7bd25b2b2a07740bcd838c2f4024e67be83fd1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 13 14:17:09 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 14 10:06:33 2015 -0700"
      },
      "message": "ART: Add Security cutout to unstarted runtime\n\nThis allows limited I/O in the compiler to read security.properties,\nwhich in turn allows to compile-time initialize Security, and thus\nServices and most of the providers.\n\nBug: 19498458\nBug: 19542228\nChange-Id: I853952b83ca99006907c070734f767259c975517\n"
    },
    {
      "commit": "8d20011a9de7cd94bee59db3ae8c0cbbf55911d9",
      "tree": "e8f0656ae879c27175c7287086ee8fd70c24b93a",
      "parents": [
        "85806723695120d183e85e9d12d52340b839b781",
        "760d8efd535764e54500bf65a944ed3f2a54c123"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 14 16:34:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 16:34:45 2015 +0000"
      },
      "message": "Merge \"Opt Compiler: ARM64 goodness\""
    },
    {
      "commit": "69a503050fb8a7b3a79b2cd2cdc2d8fbc594575d",
      "tree": "b7f99172f921d7100959ab48210097906794d043",
      "parents": [
        "e015a31e509c3f4de8a90b57b77329ba6609ce2f"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Tue Apr 14 20:04:41 2015 +0800"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 14 17:29:08 2015 +0100"
      },
      "message": "ARM64: Remove suspend register.\n\nIt also clean up build/remove frame used by JNI compiler and generates\nstp/ldp instead of str/ldr. Also x19 has been unblocked in both quick and\noptimizing compiler.\n\nChange-Id: Idbeac0942265f493266b2ef9b7a65bb4054f0e2d\n"
    },
    {
      "commit": "85806723695120d183e85e9d12d52340b839b781",
      "tree": "792a11dfdd9f943017b575e99557da36e5bc43bd",
      "parents": [
        "e015a31e509c3f4de8a90b57b77329ba6609ce2f",
        "5f4886aad49b48cdc6945e3094549145c0914fe8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 14 15:35:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 15:35:24 2015 +0000"
      },
      "message": "Merge \"Fix a bug in type propagation.\""
    },
    {
      "commit": "5f4886aad49b48cdc6945e3094549145c0914fe8",
      "tree": "792a11dfdd9f943017b575e99557da36e5bc43bd",
      "parents": [
        "e015a31e509c3f4de8a90b57b77329ba6609ce2f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 14 15:11:57 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 14 15:59:12 2015 +0100"
      },
      "message": "Fix a bug in type propagation.\n\nIf a phi requests its inputs to be of a certain type, the inputs need\nto propagate that type to their users, as those users might be\nphis.\n\nBug report and test courtesy of Serguei I Katkov.\n\nChange-Id: I79baac271566ec4fa684c1edf11a1b3383d896a9\n"
    },
    {
      "commit": "e015a31e509c3f4de8a90b57b77329ba6609ce2f",
      "tree": "3b4ce3591c8fe00b3fe232847ad5af0042afd064",
      "parents": [
        "5b310c4bc77609d8247356005430ae05714e9585",
        "1561e1b4029cc25a653e17b36663ae047345fad0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 14 00:18:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 00:18:14 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Turn of native stack dump on x86 on-device\"\""
    },
    {
      "commit": "5b310c4bc77609d8247356005430ae05714e9585",
      "tree": "579050000af02898dca3cd433427bcdcce1e8c87",
      "parents": [
        "edae94ab217d4ef3912cb89c20dae58001ceaec9",
        "d3ed9a320a89cb9b91b2361892c043ab7e112717"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 13 23:54:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 13 23:54:09 2015 +0000"
      },
      "message": "Merge \"Fix DCHECK failures from Class::VisitFieldRoots\""
    },
    {
      "commit": "1561e1b4029cc25a653e17b36663ae047345fad0",
      "tree": "dfcb3db9060f9e05be6109616811bbe97f20b40c",
      "parents": [
        "6c7bd25b2b2a07740bcd838c2f4024e67be83fd1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 13 23:18:02 2015 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 13 16:22:01 2015 -0700"
      },
      "message": "Revert \"ART: Turn of native stack dump on x86 on-device\"\n\nThis reverts commit 2f0751ea75e5f093d9ce7b8587e65a2ca3de0855.\n\nBug: 20040863\n\nChange-Id: Ibd40916c0f84512b0ba13af09d4fd345be39e227\n"
    },
    {
      "commit": "d3ed9a320a89cb9b91b2361892c043ab7e112717",
      "tree": "94d2b646e8ff9b28e0bef735804ce17a6a8be729",
      "parents": [
        "4b5673b7387804947a1605a906deee132ab28f14"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 14:23:35 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 13 16:15:22 2015 -0700"
      },
      "message": "Fix DCHECK failures from Class::VisitFieldRoots\n\nWe now use GetDeclaringClassUnchecked when marking roots to fix\nflaky test failures. Fixed a race condition in root marking where\nwe could have non zero field array length with a null pointer.\nFixed a race condition where we could be marking roots before\nFixupTemporaryDeclaringClass had finished. The solution is to\nonly do the declaring class CHECK if we are at least resolved.\nFixed JDWP tests by changing FieldId / MethodId to be 64 bits.\n\nAlso some cleanup.\n\nChange-Id: Ibac09519860d93c3f68a5cc964bbc91dc10a279a\n"
    },
    {
      "commit": "edae94ab217d4ef3912cb89c20dae58001ceaec9",
      "tree": "efeab75defdadffd5f354c51ce9146c88001a434",
      "parents": [
        "67592a44cd5600b3c007b9215e3e5296a61118e8",
        "626a1666015b0fa201e979870baf06afa93b65e7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 22:42:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 13 22:42:58 2015 +0000"
      },
      "message": "Merge \"Append [DEDUPED] suffix to all deduped methods in the symbol table.\""
    },
    {
      "commit": "a1c9f013c034fbddb9337cc5c7ecf0e5a8b77547",
      "tree": "77a722cae515f6b3c7ea54f5b0fd2435682ae55b",
      "parents": [
        "67592a44cd5600b3c007b9215e3e5296a61118e8"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 02 10:18:12 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 13 15:37:40 2015 -0700"
      },
      "message": "getRuntimeStat() support (ART).\n\nExport some runtime stats (currently GC stats) via\nVMDebug.getRuntimeStat().\n\nAdded several new GC stats such as blocking GC counts and GC count\nhistograms.\n\nBug: 19825248\nChange-Id: I8ece9ed241dc3982dfd983d7159090ba82940dce\n"
    },
    {
      "commit": "626a1666015b0fa201e979870baf06afa93b65e7",
      "tree": "efeab75defdadffd5f354c51ce9146c88001a434",
      "parents": [
        "67592a44cd5600b3c007b9215e3e5296a61118e8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 13:12:26 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 23:35:56 2015 +0100"
      },
      "message": "Append [DEDUPED] suffix to all deduped methods in the symbol table.\n\nThis resolves old TODO in the code.  The first method was never\nmarked as deduped and only the subsequent copies were recognised.\nTherefore the suffix might have been missing in backtraces.\n\nChange-Id: I4882d90f3049f7e196cd38c8987ba02960dab338\n"
    },
    {
      "commit": "67592a44cd5600b3c007b9215e3e5296a61118e8",
      "tree": "9fbea72eb9523426e78e474bee09bf364661c412",
      "parents": [
        "6c7bd25b2b2a07740bcd838c2f4024e67be83fd1",
        "7c869b352d122ab0bbf7cb529b45fc0365837c3a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 22:25:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 13 22:25:38 2015 +0000"
      },
      "message": "Merge \"Move the file which defines DWARF enums.\""
    },
    {
      "commit": "7c869b352d122ab0bbf7cb529b45fc0365837c3a",
      "tree": "364077598a96e702ed40ccaae334b8ce84aabdb6",
      "parents": [
        "2f6cdb01f74772c1c521a125776ef57ea3c73d43"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 08:47:47 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 21:54:26 2015 +0100"
      },
      "message": "Move the file which defines DWARF enums.\n\nIt was previously part of the runtime since it was needed\nby the linker.  This is no longer the case so we can move\nit to the DWARF utility library.\n\nChange-Id: I1874fad45d27fd9ebbae17dd82d43322190f91ef\n"
    },
    {
      "commit": "6c7bd25b2b2a07740bcd838c2f4024e67be83fd1",
      "tree": "838ee849aceb86966f3a4705b41c92bb0552ed19",
      "parents": [
        "a2ba36e0e617a02c0d5509699fa5386acb297065",
        "c2055cf5d764e7f861818121afec9c7d88465af5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 20:44:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 13 20:44:26 2015 +0000"
      },
      "message": "Merge \"Add test for x86-64 DWARF register mapping.\""
    },
    {
      "commit": "c2055cf5d764e7f861818121afec9c7d88465af5",
      "tree": "b05a3d31ed3948aff8ad411be7245048d84198b0",
      "parents": [
        "2f6cdb01f74772c1c521a125776ef57ea3c73d43"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 14:58:39 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 21:40:58 2015 +0100"
      },
      "message": "Add test for x86-64 DWARF register mapping.\n\nThis is the only mapping which is non-trivial.\n\nChange-Id: I59be4b6ffb0ffbbf00ddb72e77e80cfb9e89d9f2\n"
    },
    {
      "commit": "a2ba36e0e617a02c0d5509699fa5386acb297065",
      "tree": "245ce4265cc31990fa6d2f6e792ccd9d44af1dc1",
      "parents": [
        "4af290af4e89cfbc3a4e1ada79909ccee353361a",
        "8dc7324da5bd0f2afd2ab558ab04882329a61fe8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 20:34:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 13 20:34:11 2015 +0000"
      },
      "message": "Merge \"Add --include-cfi compiler option.\""
    },
    {
      "commit": "8dc7324da5bd0f2afd2ab558ab04882329a61fe8",
      "tree": "245ce4265cc31990fa6d2f6e792ccd9d44af1dc1",
      "parents": [
        "4af290af4e89cfbc3a4e1ada79909ccee353361a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 11:40:39 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 21:24:12 2015 +0100"
      },
      "message": "Add --include-cfi compiler option.\n\nDecouple generation of CFI from the rest of debug symbols.\nThis makes it possible to generate oat with CFI but without\nthe rest of debug symbols.\n\nThis is in line with intention of the .eh_frame section.\nThe section does not have the .debug_ prefix because it\nis considered somewhat different to the rest of debug symbols.\n\nChange-Id: I32816ecd4f30ac4e0dc69d69a4993e349c737f96\n"
    }
  ],
  "next": "4af290af4e89cfbc3a4e1ada79909ccee353361a"
}
