)]}'
{
  "log": [
    {
      "commit": "ee3e2be667df36b0f0956bbfad4455f8d39d1f5d",
      "tree": "b5e9ea8075b8a5f8f5cbd662866681ffa2375131",
      "parents": [
        "37da253e5112cc74a9c00a9778961454fd01eb54",
        "250a378d5a2152662e0fa820f2b38f794ddd3596"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 25 08:30:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 25 08:30:32 2016 +0000"
      },
      "message": "Merge \"Add flag to ArtMethod to skip compilation.\""
    },
    {
      "commit": "250a378d5a2152662e0fa820f2b38f794ddd3596",
      "tree": "51896bf755c3f7afd1e0616a9a54071bda6dccc0",
      "parents": [
        "a584db5460a31198bf621cdacf5bc304a984efa4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 20 16:27:53 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 25 09:29:21 2016 +0100"
      },
      "message": "Add flag to ArtMethod to skip compilation.\n\nTo ensure even the JIT will not try to compile methods with\nsoft failures a runtime_throw.\n\nbug:28293819\nbug:28313047\n\nChange-Id: Ie3fd71ded0b77de8dab1c3c825b867cb321b8873\n"
    },
    {
      "commit": "37da253e5112cc74a9c00a9778961454fd01eb54",
      "tree": "fbf0f189ccdc862655f1595af16f09961cc8b7e7",
      "parents": [
        "d5e665a28e8406c11fb2114d9ab52281976ac1ae",
        "d89e2418f2c6d9897fee219f8df9c20ca93c80db"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Apr 24 06:05:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 24 06:05:28 2016 +0000"
      },
      "message": "Merge \"Revert \"Thumb2: Reduce memory used for fixup dependencies.\"\""
    },
    {
      "commit": "d89e2418f2c6d9897fee219f8df9c20ca93c80db",
      "tree": "86cc7ff6e15d316be62f9621d4f34e1ebc1eb07f",
      "parents": [
        "1f2ce44db2613a1e60a66c3c454834b72e994f57"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun Apr 24 05:17:17 2016 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun Apr 24 05:17:17 2016 +0000"
      },
      "message": "Revert \"Thumb2: Reduce memory used for fixup dependencies.\"\n\nBug: 28343425\n\nThis reverts commit 1f2ce44db2613a1e60a66c3c454834b72e994f57.\n\nChange-Id: I39edb37fb6fa4e84ac3fd0e11650fbb92d05ffcb\n"
    },
    {
      "commit": "f6e6331180c16c3b2d626af3179f9aa03ae511c8",
      "tree": "13c7717871f52da5a445f932762c33ae5be6e1e0",
      "parents": [
        "c0a419e89ce7991ffc6a960a0f5a123ea04456c5",
        "7fda7854ed734c4cdc786e46fcfdaa71ec600ecf"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 22 18:26:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 22 18:26:21 2016 +0000"
      },
      "message": "Merge \"MIPS64: Implement bitCount intrinsics.\""
    },
    {
      "commit": "4f4a6c47ef269c68bc136f0805e5e99512d970b7",
      "tree": "449a665d50f98dc75f53f820581f0b0d1673426d",
      "parents": [
        "4b55b52e2dca085365157bc52626630803ce259e",
        "c120bbe26fe116d3c9d8322f44bb9e330e07f745"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 22 16:52:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 22 16:52:19 2016 +0000"
      },
      "message": "Merge \"ART: Naive NullCheck elimination in InstructionBuilder\""
    },
    {
      "commit": "c120bbe26fe116d3c9d8322f44bb9e330e07f745",
      "tree": "63e503da272d0be6d6dc243c29d4e7b184705710",
      "parents": [
        "121c8a6494f2224830ed0ca33df5af0d8c077647"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 22 16:57:00 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 22 16:57:00 2016 +0100"
      },
      "message": "ART: Naive NullCheck elimination in InstructionBuilder\n\nSave a little bit of memory by not generating trivially redundant\nHNullCheck instructions. This patch builds on the fact that the\nInstructionBuilder now directly generates SSA form and looks at the\ninput of the NullCheck. For obvious cases, such as NewInstance/Array\nor `this`, the NullCheck generation is completely avoided.\n\nBug: 28173563\nChange-Id: I1fdf3b096c7a939f7b8586c02a2a6b44dfa43443\n"
    },
    {
      "commit": "1f2ce44db2613a1e60a66c3c454834b72e994f57",
      "tree": "72d4f3a908b97ed9b3ce4d52f3e30703f7367fe5",
      "parents": [
        "1bfc7e5ebf22aac51019937849499f3d7f389db0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 22 12:16:29 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 22 15:39:46 2016 +0100"
      },
      "message": "Thumb2: Reduce memory used for fixup dependencies.\n\nMark fixups for far backward branches as 32-bit from the\nbeginning and ignore their dependencies since they cannot\nbe expanded anymore. This reduces the memory used by the\nfixup_dependents_ when compiling methods with a lot of\nslow paths.\n\nBug: 28256882\nChange-Id: I0b7155ed8970b69703fa9c4666d9c4961e425721\n"
    },
    {
      "commit": "7fda7854ed734c4cdc786e46fcfdaa71ec600ecf",
      "tree": "fb8580dbd8bd13f527f3c57e10885a6e280f799e",
      "parents": [
        "7424025c8566bf560815c75659f30edff7e0df41"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Apr 21 16:00:36 2016 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Apr 21 16:00:36 2016 -0700"
      },
      "message": "MIPS64: Implement bitCount intrinsics.\n\n- int java.lang.Integer.bitCount(int)\n- int java.lang.Long.bitCount(long)\n\nChange-Id: If2390beeb5b900e8680ead1927e0455b35f1948a\n"
    },
    {
      "commit": "2efce70e4204e1a52769c63dac43c9d4af105751",
      "tree": "d812f91e3ca3d64c42d7e0d876b4559e62616406",
      "parents": [
        "70c0f4e15797902e248e8b7aa0e013fe6d426c71",
        "7aa04a145e2e0d2949a1a1c7fd4c72d08d698587"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Apr 21 19:36:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 21 19:36:24 2016 +0000"
      },
      "message": "Merge \"X86/X86_64: Switch to locked add from mfence\""
    },
    {
      "commit": "94408d3144061bd6efc74b3d884d38169969c63f",
      "tree": "549d01e5c1514d6cc63e427c9b0bd13a648a2b39",
      "parents": [
        "0d399c71cb176b0a31d6d51f950c7c32a43668ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 21 14:00:15 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 21 15:43:12 2016 +0100"
      },
      "message": "ART: Address late comments on a GVN memory-saving CL\n\nAdded extra comments and removed redundant code as requested.\n\nBug: 28173563\nBug: 28287086\n\nChange-Id: If6aff68c4c30427a86a27ffba5df1ae135edd294\n"
    },
    {
      "commit": "cc857cfbe4a179dfa7935b7334f1efbb21f2ac76",
      "tree": "ba71a0603c98f09d31fa9b63d91544b8d0927ccf",
      "parents": [
        "9d7c524c9bd603b1df9e88132f7ea4d59dab44a3"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 20 14:24:12 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 21 09:23:04 2016 +0100"
      },
      "message": "Reduce memory usage in GVN\n\nImplement recycling of ValueSet data structures which the GVN\nalgorithm will not access any more.\n\nSavings depend on the shape of the graph, but can be as high as 93%.\nPeak memory usage for GSA drops from 32MB to 26MB, compile times seem\nunaffected.\n\nBug: 28173563\nBug: 28287086\n\nChange-Id: If227177449bc90ad24fa68c37b0c2615924af1ed\n"
    },
    {
      "commit": "c6b5627c25ff5653e97ccff8c5ccf6ac967b6f83",
      "tree": "8cec0d66bdd5e5a9be14bbb881eb36d09868ab39",
      "parents": [
        "a584db5460a31198bf621cdacf5bc304a984efa4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 18:45:25 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 19:40:35 2016 +0100"
      },
      "message": "Fix HInstruction::ReplaceInput(), allow no-op.\n\nAllow HInstruction::ReplaceInput() to be called with\na `replacement` being the same as the old input and\ndo nothing in that case.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/216923\nwhere I erroneously assumed that it never happens.\n\nAlso adhere to the standard C++ std::forward_list\u003c\u003e\nsemantics in the single-element overload of\n`IntrusiveForwardList\u003c\u003e::splice_after()`.\n\nBug: 28173563\nChange-Id: I5cea14c212b1083f90ffe6b5b53324ad663d57d8\n"
    },
    {
      "commit": "a584db5460a31198bf621cdacf5bc304a984efa4",
      "tree": "6e69fc19450495147151f326d16ca00cc3a6d81c",
      "parents": [
        "2bdf84219d96c6414b9eee210f0b634687b78a3c",
        "62977ff198deb673a6990202a2fb8b993217c57c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 14:43:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 20 14:43:55 2016 +0000"
      },
      "message": "Merge \"Fix RTP to hold mutator lock while using raw mirror pointers.\""
    },
    {
      "commit": "2bdf84219d96c6414b9eee210f0b634687b78a3c",
      "tree": "193b62d1da64e6f7774e6bdf84655a775ebada20",
      "parents": [
        "5eda02cee993c71087e3bb18dcb3d44cba55898f",
        "9152fed693f5d823ef29c373d658adc67fa92fe7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 14:36:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 20 14:36:51 2016 +0000"
      },
      "message": "Merge \"Thumb2: Fix EmitJumpTables() to extend buffer only if needed.\""
    },
    {
      "commit": "62977ff198deb673a6990202a2fb8b993217c57c",
      "tree": "a935f37990e67d5deb3ce238484c5d60f2c8fc41",
      "parents": [
        "ac6d660672c21a0ace14276e9c356906218b4412"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 15:06:31 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 15:20:20 2016 +0100"
      },
      "message": "Fix RTP to hold mutator lock while using raw mirror pointers.\n\nReferenceTypePropagation::RTPVisitor::SetClassAsTypeInfo()\nis taking a raw mirror::Class* parameter, so it must be\nmarked with SHARED_REQUIRES(Locks::mutator_lock_). The\nomission of this annotation allowed\n    https://android-review.googlesource.com/216926\nto compile despite using GC-unsafe raw mirror pointers in\nUpdateFieldAccessTypeInfo(). This led to test failures in\nthe debug-GC mode.\n\nChange-Id: I2a743070c642e7a611480e5d495af44f0945e43f\n"
    },
    {
      "commit": "9152fed693f5d823ef29c373d658adc67fa92fe7",
      "tree": "ef0ec2b7332db9e0361d61dcb588518103636a5e",
      "parents": [
        "ac6d660672c21a0ace14276e9c356906218b4412"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 14:39:47 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 14:39:47 2016 +0100"
      },
      "message": "Thumb2: Fix EmitJumpTables() to extend buffer only if needed.\n\nBug: 28256882\nChange-Id: I15227535c0fcb73c04b0b05160852c4b1bebee49\n"
    },
    {
      "commit": "5eda02cee993c71087e3bb18dcb3d44cba55898f",
      "tree": "08d3dc94255e7eaa8049cefd8be547418febb9c7",
      "parents": [
        "ac6d660672c21a0ace14276e9c356906218b4412",
        "3c19d3e029a9fcc123d2c6fd1e5e13867d2cfe1f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 11:52:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 20 11:52:24 2016 +0000"
      },
      "message": "Merge \"Reuse HUseListNode\u003c\u003es when replacing instruction or input.\""
    },
    {
      "commit": "5eed0c5d27f091c952704f652cd77c4e3833ad88",
      "tree": "bd80228f66a7654c6944561384a9848a68127883",
      "parents": [
        "44349d990b1356b455b3369dd7c5ab6f172c3a28"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 11:22:16 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 11:22:16 2016 +0100"
      },
      "message": "Fix reference_type_propagation_test.\n\nBug: 28210356\nChange-Id: I472bbdc48d3959a374d4bf21a921ca57007a96f0\n"
    },
    {
      "commit": "b4154d33eb51de747cc517dd270b58619b3a3122",
      "tree": "c7782e1bfc682b57d6267286f0eafaf265f18d40",
      "parents": [
        "20d2c9d003ea2508154dac4b8a3bfeba00b063de",
        "456307a47336e3d6576ed6d8563b67573a4238d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 09:00:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 20 09:00:49 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use dex cache from compilation unit in RTP.\"\"\""
    },
    {
      "commit": "31244b4cde9156632a08103a8bf1cbff4cbae3cc",
      "tree": "35007c0b0f526da419d858edbbce6830dd179853",
      "parents": [
        "6435910a65067fb38477232b2620cc53978b13c7"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Apr 19 15:07:23 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Apr 19 15:07:23 2016 -0700"
      },
      "message": "Do not use EXPECT_DEATH in unit test, fails on device.\n\nChange-Id: I77ff843edb416fae72e7bbf66a6151405dab81b0\n"
    },
    {
      "commit": "3c19d3e029a9fcc123d2c6fd1e5e13867d2cfe1f",
      "tree": "6cd3dcb90f5ee163b08d933299d5b821c03c6a73",
      "parents": [
        "6435910a65067fb38477232b2620cc53978b13c7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 14:36:35 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 19:43:31 2016 +0100"
      },
      "message": "Reuse HUseListNode\u003c\u003es when replacing instruction or input.\n\nCompiling the Nexus 5 boot image with the 64-bit dex2oat\non host this CL reduces the memory used for compiling the\nmost hungry method, BatteryStats.dumpLocked(), by ~5.6MiB:\n\nBefore:\n  MEM: used: 44393040, allocated: 45361248, lost: 968208\n  Number of arenas allocated: 319,\n  Number of allocations: 815492, avg size: 54\n  ...\n  UseListNode    10308480\n  ...\nAfter:\n  MEM: used: 38554536, allocated: 39463008, lost: 908472\n  Number of arenas allocated: 274,\n  Number of allocations: 572221, avg size: 67\n  ...\n  UseListNode     4469976\n  ...\n\nWith 32-bit dex2oat, the UseListNode would be 2/3 of the\nvalues for 64-bit dex2oat (both before and after).\n\nBug: 28173563\nChange-Id: Ia4fabe03568f0e0dbf2cdf2b031863602aea3530\n"
    },
    {
      "commit": "6435910a65067fb38477232b2620cc53978b13c7",
      "tree": "d607c9103f46242bce5ed75297c20087c0e3f8cd",
      "parents": [
        "814ae9448d7a620a1855d53c7b69b1b377944a67",
        "46817b876ab00d6b78905b80ed12b4344c522b6c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 18:26:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 19 18:26:22 2016 +0000"
      },
      "message": "Merge \"Use iterators \"before\" the use node in HUserRecord\u003c\u003e.\""
    },
    {
      "commit": "456307a47336e3d6576ed6d8563b67573a4238d3",
      "tree": "35d7c3d213b942a562538a8d25129b4e27cc712f",
      "parents": [
        "814ae9448d7a620a1855d53c7b69b1b377944a67"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 14:12:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 19:25:00 2016 +0100"
      },
      "message": "Revert \"Revert \"Use dex cache from compilation unit in RTP.\"\"\n\nThe exposed issue has been fixed by\n    https://android-review.googlesource.com/215877\n\nBug:28210356\n\nThis reverts commit 34d9b04d8d0006967486c0ad1b221e7b632652af.\n\nChange-Id: I5288c923e45d9ef3190dabb89738350a1212a60d\n"
    },
    {
      "commit": "814ae9448d7a620a1855d53c7b69b1b377944a67",
      "tree": "acbefcc0b3d88472d19c114179ccfeba7005eb33",
      "parents": [
        "34714015249ec8c66f6b0ad88bddbbd9375c8230",
        "a5b7557f14e9378ffb575ae724a2e03338e012ea"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Apr 19 17:44:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 19 17:44:08 2016 +0000"
      },
      "message": "Merge \"Fix a DCHECK failure in Arm64RelativePatcher with read barrier.\""
    },
    {
      "commit": "46817b876ab00d6b78905b80ed12b4344c522b6c",
      "tree": "6715bee60b0682a10437866c9617cb442146aa2f",
      "parents": [
        "f59149a151ee694484e21da7b3b207920dead5a6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 29 12:21:58 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 18:33:06 2016 +0100"
      },
      "message": "Use iterators \"before\" the use node in HUserRecord\u003c\u003e.\n\nCreate a new template class IntrusiveForwardList\u003c\u003e that\nmimicks std::forward_list\u003c\u003e except that all allocations\nare handled externally. This is essentially the same as\nboost::intrusive::slist\u003c\u003e but since we\u0027re not using Boost\nwe have to reinvent the wheel.\n\nUse the new container to replace the HUseList and use the\niterators to \"before\" use nodes in HUserRecord\u003c\u003e to avoid\nthe extra pointer to the previous node which was used\nexclusively for removing nodes from the list. This reduces\nthe size of the HUseListNode by 25%, 32B to 24B in 64-bit\ncompiler, 16B to 12B in 32-bit compiler. This translates\ndirectly to overall memory savings for the 64-bit compiler\nbut due to rounding up of the arena allocations to 8B, we\ndo not get any improvement in the 32-bit compiler.\n\nCompiling the Nexus 5 boot image with the 64-bit dex2oat\non host this CL reduces the memory used for compiling the\nmost hungry method, BatteryStats.dumpLocked(), by ~3.3MiB:\n\nBefore:\n  MEM: used: 47829200, allocated: 48769120, lost: 939920\n  Number of arenas allocated: 345,\n  Number of allocations: 815492, avg size: 58\n  ...\n  UseListNode    13744640\n  ...\nAfter:\n  MEM: used: 44393040, allocated: 45361248, lost: 968208\n  Number of arenas allocated: 319,\n  Number of allocations: 815492, avg size: 54\n  ...\n  UseListNode    10308480\n  ...\n\nNote that while we do not ship the 64-bit dex2oat to the\ndevice, the JIT compilation for 64-bit processes is using\nthe 64-bit libart-compiler.\n\nBug: 28173563\nChange-Id: I985eabd4816f845372d8aaa825a1489cf9569208\n"
    },
    {
      "commit": "5f6b90824628504813cd174b90eaaad8c8031726",
      "tree": "53f7230957dc30bbc5505a946d7281d4a8d97863",
      "parents": [
        "35a38d1e250fc3237c79fafa96ec69d6f07c1f3d",
        "8b3f9b246d5bdbf67faeb2b872b75b8d72777bc0"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Apr 19 16:21:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 19 16:21:47 2016 +0000"
      },
      "message": "Merge \"Avoid constructing types with errors.\""
    },
    {
      "commit": "c5c508d149a7eeae1121ca4b932e8c6ab024813f",
      "tree": "f6b6265cf2152239cdd228c0e643b1e179cca9a9",
      "parents": [
        "9c8c16a58077ca9c427cc8996ad6b5e67bb6a181",
        "fd66c50d64c38e40bafde83b4872e27bbff7546d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 13:54:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 19 13:54:10 2016 +0000"
      },
      "message": "Merge \"Fix inlining loops in OSR mode.\""
    },
    {
      "commit": "fd66c50d64c38e40bafde83b4872e27bbff7546d",
      "tree": "e77ea1374211042d5eca3d1a62a81293a29eb108",
      "parents": [
        "c4d445a40bf00ab497b5e4d43a6b43eaafb5fa50"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 18 15:37:01 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 13:59:15 2016 +0100"
      },
      "message": "Fix inlining loops in OSR mode.\n\nWhen compiling a method in OSR mode and the method does not\ncontain a loop (arguably, a very odd case) but we inline\nanother method with a loop and then the final DCE re-runs\nthe loop identification, the inlined loop would previously\nbe marked as irreducible. However, the SSA liveness analysis\nexpects irreducible loop to have extra loop Phis which were\nalready eliminated from the loop before the inner graph was\ninlined to the outer graph, so we would fail a DCHECK().\n\nWe fix this by not marking inlined loops as irreducible when\ncompiling in OSR mode.\n\nBug: 28210356\nChange-Id: If10057ed883333c62a878ed2ae3fe01bb5280e33\n"
    },
    {
      "commit": "fa3091ef031da6c18478fdede12d7762634ee271",
      "tree": "603400fda7a81ddc585c204dbb781536c64bba99",
      "parents": [
        "54c819513ab759815858647cd513c4f351568751"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 19 10:10:17 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 19 09:15:58 2016 +0000"
      },
      "message": "ART: Fix IsLinearOrderWellFormed in liveness analysis\n\nGraph may contain nullptr in list of basic blocks when\nthe basic block is removed. So we must handle nullptr explicitly.\n\nBug: 28252537\nChange-Id: If430939b8fe793e4a9c974936180d06c1a9f90c6\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "8b3f9b246d5bdbf67faeb2b872b75b8d72777bc0",
      "tree": "6cceffd4ee15b9c67f67083851769980cc8988a7",
      "parents": [
        "c4d445a40bf00ab497b5e4d43a6b43eaafb5fa50"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 06 11:22:12 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 18 20:29:08 2016 -0700"
      },
      "message": "Avoid constructing types with errors.\n\nBUG\u003d27626735\n\nRationale:\nDo not construct classes with a link error. Without this,\nthe error type thought it was Object (mirror\u0027s method\nIsObjectClass() returns true if there is no superclass).\n\nChange-Id: I55ca8cc8cfc042210edf748aab10da4c6e345980\n"
    },
    {
      "commit": "a5b7557f14e9378ffb575ae724a2e03338e012ea",
      "tree": "03e1787920887d5cb5a6fdc75f7f9ec4e04054fd",
      "parents": [
        "c4d445a40bf00ab497b5e4d43a6b43eaafb5fa50"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 18 16:05:21 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 18 16:05:21 2016 -0700"
      },
      "message": "Fix a DCHECK failure in Arm64RelativePatcher with read barrier.\n\nWe could encounter an add immediate with\nLinkerPatch::Type::kDexCacheArray for the\nHLoadString::LoadKind::kDexCachePcRelative case of VisitLoadString if\nthe non-baker read barrier is enabled.\n\nBug: 28249352\nBug: 12687968\nChange-Id: I226bea26f6a614cfabb0307805de7cedb3b54a7f\n"
    },
    {
      "commit": "2dcab783cd7a5a4351c50755b3b3de927e70ac38",
      "tree": "621974407f4fe3e9d2c72b4e8f79054328ea59ec",
      "parents": [
        "979fb0090c5c9de1da62735b8611a3c9028ed0aa",
        "18b36abc7cc03076fe1c399c0bb8ec8793cc6806"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 15 19:04:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 19:04:13 2016 +0000"
      },
      "message": "Merge \"Remove the no-longer-needed F/I and D/J alias.\""
    },
    {
      "commit": "979fb0090c5c9de1da62735b8611a3c9028ed0aa",
      "tree": "544d97aa662329876c74780f95ed4f6fcc3a4542",
      "parents": [
        "05241f4edbf6960aac7c04b0b98d05f16a23962b",
        "c01a66465a398ad15da90ab2bdc35b7f4a609b17"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 15 18:55:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 18:55:20 2016 +0000"
      },
      "message": "Merge \"Fix: correctly destruct VIXL labels.\""
    },
    {
      "commit": "18b36abc7cc03076fe1c399c0bb8ec8793cc6806",
      "tree": "3e38ee71b94c7bbde6f93976e16416a2f6d33ee0",
      "parents": [
        "defccc564481c2c892792680c6abb6020e36bacd"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 16:41:35 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 15 10:49:34 2016 -0700"
      },
      "message": "Remove the no-longer-needed F/I and D/J alias.\n\nRationale:\nNow that our HIR is type clean (yeah!), we no longer have\nto conservatively assume F/I and D/J are aliased. This\nenables more accurate side effects analysis, with improvements\nin all clients, such a LICM.\n\nRefinement:\nThe HIR is not completely clean between building and SSA.\nThis refinement takes care of that, with new tests.\n\nBUG\u003d22538329\n\nChange-Id: Id78ff0ff4e325aeebf0022d868937cff73d3a742\n"
    },
    {
      "commit": "05241f4edbf6960aac7c04b0b98d05f16a23962b",
      "tree": "7b02580b8833e8411f061b6a162a58ecffd6ceaf",
      "parents": [
        "6233bff5bd04bb6030929ed6f55e34dde09aa8f3",
        "062157f4e07b525728fa58f4ec57ffe1bf15d545"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Apr 15 17:30:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 17:30:05 2016 +0000"
      },
      "message": "Merge \"Enable allocation elimination as part of LSE\""
    },
    {
      "commit": "9984b637354f0a18203a73d94c931e210cd4a437",
      "tree": "23f1fd41d349ff3911baf44de422ec1ea6c2a0c0",
      "parents": [
        "8fc44d668240d69b31bd5140ae3b67fa948245c3",
        "34d9b04d8d0006967486c0ad1b221e7b632652af"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 15 17:01:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 17:01:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Use dex cache from compilation unit in RTP.\"\""
    },
    {
      "commit": "34d9b04d8d0006967486c0ad1b221e7b632652af",
      "tree": "cf00b5f4af53b6eadef0c3e3f8c05f743176271e",
      "parents": [
        "27bb86edf60e2f9ca2c1075c0c86b9e79374f1d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 15 17:01:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 15 17:01:11 2016 +0000"
      },
      "message": "Revert \"Use dex cache from compilation unit in RTP.\"\n\nbug:28210356\n\nThis reverts commit 27bb86edf60e2f9ca2c1075c0c86b9e79374f1d0.\n\nChange-Id: Ib27ee90a7e4d516fd2db67a9c4e454023737841a\n"
    },
    {
      "commit": "062157f4e07b525728fa58f4ec57ffe1bf15d545",
      "tree": "90be1124b444b735b86e09f4adeff59f813b50d2",
      "parents": [
        "240986c1fcd867b9a01e2e94ee2aa90235ce7d75"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 02 10:15:36 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Apr 15 09:03:55 2016 -0700"
      },
      "message": "Enable allocation elimination as part of LSE\n\nAfter load-store elimination, an allocation may not be used any more\nand may be eliminated.\n\nChange-Id: I7fcaaefa9d6ec2c611e46119c5799293770a917c\n"
    },
    {
      "commit": "c01a66465a398ad15da90ab2bdc35b7f4a609b17",
      "tree": "e85cb2aa05be5c1491814fa83b94748439b8394b",
      "parents": [
        "dad35b0762f97ce79ce3b9a35c9df5021b7dbd17"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Apr 15 11:54:06 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Apr 15 11:54:06 2016 +0100"
      },
      "message": "Fix: correctly destruct VIXL labels.\n\nBug: 27505766\nChange-Id: I077465e3d308f4331e7a861902e05865f9d99835"
    },
    {
      "commit": "d80ff249019ad09b8e6f1c8753b1b4e8c2421e9f",
      "tree": "ec28d78c62aa6c9f41b96ca700909812ae21df26",
      "parents": [
        "a3fd040fc4a0a0581740bb222966a8d51942fa54",
        "6134ba19ac3a9ed9a4a88fac787fcfcea9fd712b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 15 09:23:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 09:23:47 2016 +0000"
      },
      "message": "Merge \"Fix CFI fixups for long branches on MIPS.\""
    },
    {
      "commit": "27bb86edf60e2f9ca2c1075c0c86b9e79374f1d0",
      "tree": "5e2cb0caa0b4456fd55c93f6c863bb3b26d5cd31",
      "parents": [
        "0108f3d945cd5483217d7bf1df75ab5108d4555c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 14 18:07:55 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 14 18:45:01 2016 +0100"
      },
      "message": "Use dex cache from compilation unit in RTP.\n\nAvoid calling the costly ClassLinker::FindDexCache() from\nreference type propagation when the dex cache from the\ncompilation unit will do, i.e. almost always. Compiling\nthe Nexus 5 boot image on host under perf(1) shows that\nthe FindDexCache() hits drop from about 0.2% to almost\nnothing, though enabling inlining for the boot image will\nincrease it a bit to 0.03% due to unavoidable calls from\nthe inliner.\n\nAlso clean up the ScopedObjectAccess usage a bit.\n\nChange-Id: I426a5f9f5da9e64fad2ea57654240789a48d3871\n"
    },
    {
      "commit": "a2a8434deb577317c46ce7f81ee879370688307d",
      "tree": "6761b3f8ab830f418c965f89fe4a787229e40e20",
      "parents": [
        "7d00681e4e732f0964bc05b113838deb7831c3ea",
        "aa680e89cf35ac3af7d3344d7960ba2f055e16d8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 14 15:59:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 15:59:02 2016 +0000"
      },
      "message": "Merge \"ART: Save a bit of memory in production LICM\""
    },
    {
      "commit": "aa680e89cf35ac3af7d3344d7960ba2f055e16d8",
      "tree": "ce07d0ab6506b05275f8174188371d51da664447",
      "parents": [
        "54b5b1a4a93822ff8e1f324dfcd6f0cd3bffa993"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 14 16:36:15 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 14 16:36:15 2016 +0100"
      },
      "message": "ART: Save a bit of memory in production LICM\n\nLICM uses a bit vector to DCHECK that inner loops are visited before\nouter loops. Allocate the bit vector only if kIsDebugBuild.\n\nChange-Id: Ic2641607ebe55ad8974de2ebe03973f0bf182e42\n"
    },
    {
      "commit": "adf84911030ca36835c48cbff8be6b078693fb00",
      "tree": "b08c05d49671ca10d11dbf8f3a4589855885108f",
      "parents": [
        "54b5b1a4a93822ff8e1f324dfcd6f0cd3bffa993"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 14 13:47:24 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 14 15:54:29 2016 +0100"
      },
      "message": "ART: Update DCHECKs in SsaLivenessAnalysis::AddBackEdgeUses\n\nGraph linearization in the presence of irreducible loops is not\nguaranteed to generate a linear order where all blocks of a loop are\nadjacent, first block is the header and last block is one of the back\nedges.\n\nThese assumptions are made when inserting synthesized uses at the back\nedges to aid the register allocator. Not meeting them will result in\nthe algorithm\u0027s early termination and back-edge uses not being added.\n\nThis patch updates the DCHECKs so the compiler does not fail in such\ncircumstances.\n\nBug: 27615840\nBug: 27624868\n\nChange-Id: I63632e8819ea3644d5c6fdfea00b66128bf22c24\n"
    },
    {
      "commit": "89c31e36c388d96f0ecef8d2c4b51747468d1e7a",
      "tree": "0ba47e659de70d156cbd1ae642b0bf48fe30b3e9",
      "parents": [
        "dad35b0762f97ce79ce3b9a35c9df5021b7dbd17",
        "3cd50df11b3076b801954018236c366fd9b97948"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 14 10:30:39 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 10:30:39 2016 +0000"
      },
      "message": "Merge \"Use dex cache from compilation unit in HInstructionBuilder.\""
    },
    {
      "commit": "6134ba19ac3a9ed9a4a88fac787fcfcea9fd712b",
      "tree": "cba6a84457c976c73e4976b1ffef323058a0fc38",
      "parents": [
        "8d4b37ed048487561358e13e2a18ad9ca0dab3c0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 14 11:27:34 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 14 11:27:34 2016 +0100"
      },
      "message": "Fix CFI fixups for long branches on MIPS.\n\nChange-Id: Ibc078e6dc5d7ef423c6a3db855f19f1426e0ea5a\n"
    },
    {
      "commit": "3cd50df11b3076b801954018236c366fd9b97948",
      "tree": "8f442c981f5e0edfd5f2c4fc4fe8439a4eb001e6",
      "parents": [
        "8d4b37ed048487561358e13e2a18ad9ca0dab3c0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 19:29:26 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 14 10:16:28 2016 +0100"
      },
      "message": "Use dex cache from compilation unit in HInstructionBuilder.\n\nAvoid calling costly ClassLinker::FindDexCache() from\nHInstructionBuilder, the dex cache is already available in\nthe compilation unit. Compiling Nexus 5 boot image on host\nunder perf(1) shows that the time spent in FindDexCache()\nis reduced from about 2% to well under 0.2%, 90% of the\nremaining hits coming from ReferenceTypePropagation which\ndoesn\u0027t have access to the compilation unit.\n\nChange-Id: Id9df61c79db9a67e3f12c857f32a4ca80e5420c3\n"
    },
    {
      "commit": "dc1d10458ea2cf29fd861f32ab28e9abac0239ec",
      "tree": "13b6950c54b6635370a0ef1fb358a71680fbf569",
      "parents": [
        "48475137a7879bbc27ae256b7671f0433490e791",
        "1f7624c3bc41251ff72b1409441f541d992967c7"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 22:34:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 13 22:34:17 2016 +0000"
      },
      "message": "Merge \"Revert \"Remove the no-longer-needed F/I and D/J alias.\"\""
    },
    {
      "commit": "1f7624c3bc41251ff72b1409441f541d992967c7",
      "tree": "d6f91bc54a8216358cfc7aa62aab2a615a41160f",
      "parents": [
        "2f52064dcfe5ebce5a998d30766ca079a366c920"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 21:17:17 2016 +0000"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 21:17:17 2016 +0000"
      },
      "message": "Revert \"Remove the no-longer-needed F/I and D/J alias.\"\n\nThis reverts commit 2f52064dcfe5ebce5a998d30766ca079a366c920.\n\nReason:\n\nArrays.sort() returns wrong result on double[] and this CL is the most likely suspect. Rolling back to buy some time for careful analysis and debugging.\n\nChange-Id: I58223c42e95c2287520eef863fbcb738b0736d4d\n"
    },
    {
      "commit": "8d4b37ed048487561358e13e2a18ad9ca0dab3c0",
      "tree": "f1d50e29322a92b66727a2a350731e11e32677bf",
      "parents": [
        "de76960329b18f5330a9a08f24ba661516a93ac3",
        "93205e395f777c1dd81d3f164cf9a4aec4bde45f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 16:55:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 13 16:55:11 2016 +0000"
      },
      "message": "Merge \"Move Assemblers to the Arena.\""
    },
    {
      "commit": "93205e395f777c1dd81d3f164cf9a4aec4bde45f",
      "tree": "1d08efd9b7bca9fe23df9ae9489c5dd575d3c6df",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 11:59:46 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 17:50:16 2016 +0100"
      },
      "message": "Move Assemblers to the Arena.\n\nAnd clean up some APIs to return std::unique_ptr\u003c\u003e instead\nof raw pointers that don\u0027t communicate ownership.\n\nChange-Id: I3017302307a0253d661240750298802fb0d9585e\n"
    },
    {
      "commit": "de76960329b18f5330a9a08f24ba661516a93ac3",
      "tree": "9d50fab0b7bcb6822e91eb6c7964da84f0fd31be",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32",
        "2f52064dcfe5ebce5a998d30766ca079a366c920"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 16:15:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 13 16:15:36 2016 +0000"
      },
      "message": "Merge \"Remove the no-longer-needed F/I and D/J alias.\""
    },
    {
      "commit": "2f52064dcfe5ebce5a998d30766ca079a366c920",
      "tree": "4c49114f810e22e83d662f42705ac908d473b9f4",
      "parents": [
        "ec9a828fa4a4638d2d17124c4fa835f15c7c5589"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Apr 12 15:05:45 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Apr 12 19:25:42 2016 -0700"
      },
      "message": "Remove the no-longer-needed F/I and D/J alias.\n\nRationale:\nNow that our HIR is type clean (yeah!), we no longer have\nto conservatively assume F/I and D/J are aliased. This\nenables more accurate side effects analysis, with improvements\nin all clients, such a LICM.\n\nBUG\u003d22538329\n\nChange-Id: Iba1fb09ff063f31b5893f588aa6d0c5ab3b42f39\n"
    },
    {
      "commit": "7aa04a145e2e0d2949a1a1c7fd4c72d08d698587",
      "tree": "631554549d4b4dbde438fa0e6e636832427fe6c5",
      "parents": [
        "4009bc645e3358d3150b7f94dd90a2c939f0fa51"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Jan 27 22:39:07 2016 -0500"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Apr 12 17:25:51 2016 -0400"
      },
      "message": "X86/X86_64: Switch to locked add from mfence\n\nI finally received the answers about the performance of locked add vs.\nmfence for Java memory semantics.  Locked add has been faster than\nmfence for all processors since the Pentium 4.  Accordingly, I have made\nthe synchronization use locked add at all times, removing it from an\ninstruction set feature.\n\nAlso add support in the optimizing compiler for barrier type\nkNTStoreStore, which is used after non-temporal moves.\n\nChange-Id: Ib47c2fd64c2ff2128ad677f1f39c73444afb8e94\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "d58b837ae41c6d8ce010c362e8f85bd938715900",
      "tree": "a7c8e90ff825838bb27707d14487c0333f2cc5f6",
      "parents": [
        "ec9a828fa4a4638d2d17124c4fa835f15c7c5589"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 12 18:51:43 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 12 21:04:13 2016 +0100"
      },
      "message": "Allocate code generators on the arena.\n\nChange-Id: If8cf0ee43711f6e13171443e3c057ff370ccfbaa\n"
    },
    {
      "commit": "934c5b69b1e78e22cd242c692f9ae4606799af31",
      "tree": "5b93c326641fc85bc52c76f65373d5b83ca74787",
      "parents": [
        "62358ed8377fd14fd9890b54c09f927ce51fc443",
        "ebea3d2cce6aa34216502bb6b83d155d4c92e4ff"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 12 16:18:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 12 16:18:08 2016 +0000"
      },
      "message": "Merge \"Small changes in ARM and x86-64 SystemArrayCopy intrinsics.\""
    },
    {
      "commit": "ebea3d2cce6aa34216502bb6b83d155d4c92e4ff",
      "tree": "16a0adf2d7ee365d4736d1dfe50da1a9cfe54ad4",
      "parents": [
        "04c2b2de69460d41e0c39c1f7d9fb77376c3aa8b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 12 15:42:57 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 12 15:42:57 2016 +0100"
      },
      "message": "Small changes in ARM and x86-64 SystemArrayCopy intrinsics.\n\nHave these intrinsics share a more uniform style with the\nARM64 SystemArrayCopy intrinsic.\n\nAlso make some changes/improvements in:\n- art::IntrinsicOptimizations\n- art::arm64::GenSystemArrayCopyAddresses\n\nChange-Id: Ieeb224795229580f8e5f7219c586d04786d8c705\n"
    },
    {
      "commit": "c2e8af9659db7e456b26febb1b971900057ad427",
      "tree": "af35981588f2995d8bb3a570e2f7244c8c22373a",
      "parents": [
        "04c2b2de69460d41e0c39c1f7d9fb77376c3aa8b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 05 17:15:19 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 12 15:17:28 2016 +0100"
      },
      "message": "ART: Speed up HGraph::PopulateIrreducibleRecursive\n\nPopulating an irreducible loop can potentially traverse all possible\npaths through the HGraph, leading to an exponential algorithm.\nThis patch adds a bit vector of nodes whose membership in the loop\nhas been decided and need not be revisited again.\n\nBug: 27856014\nChange-Id: I3696f08c846e6f40e5de44cb771811bac7e3e08a\n"
    },
    {
      "commit": "2ba04eab7d9d121515d66faee3b99e919f8a68f5",
      "tree": "0d97b1a3ff20a800bcb71eca3b6dc8f23eefc519",
      "parents": [
        "d464fa12eda46d6271f488c09ecffb6380c77c54"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 08 19:01:05 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 11 19:19:30 2016 -0700"
      },
      "message": "Revert \"Revert \"Reduce dirty image pages by improving binning\"\"\n\nThis reverts commit 8ace610a222892f7b700e4f95e50fa6315ab85c0.\n\n(cherry picked from commit 80c563ba136fd8da8791cf0f1a5f8f7026816ead)\n\nChange-Id: I5b312f41d8b96eb189ea8b9d3a3ab861c5c9d515\n"
    },
    {
      "commit": "d464fa12eda46d6271f488c09ecffb6380c77c54",
      "tree": "31d7d1dfa55e1572b283407b97f21cdbb7931412",
      "parents": [
        "f3cee191b3e7de48ac70907f11e78af8c2c9545b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 08 18:54:36 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 11 19:19:30 2016 -0700"
      },
      "message": "Revert \"Reduce dirty image pages by improving binning\"\n\nThis reverts commit 794bff5f622c79fd7bd9899e700cf052a375c675.\n\n(cherry picked from commit 8ace610a222892f7b700e4f95e50fa6315ab85c0)\n\nChange-Id: Id53d64a04aa8766a2cb283a2f7b8354590213b13\n"
    },
    {
      "commit": "f3cee191b3e7de48ac70907f11e78af8c2c9545b",
      "tree": "0d97b1a3ff20a800bcb71eca3b6dc8f23eefc519",
      "parents": [
        "80bda17d9810507fa016206fff90acd0e1337a3a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 07 14:16:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 11 19:19:30 2016 -0700"
      },
      "message": "Reduce dirty image pages by improving binning\n\nChange ordering from dirty to less dirty since ArtFields are clean\nand they are last. Add separate binning for DexCache and instances\nof java lang object (probably a lock object).\n\nBusiness card .art RAM (on shamu):\n              PSS     Private Dirty\n.art mmap     1011      600\n.art mmap      990      560\n\nBug: 27906566\n\n(cherry picked from commit 794bff5f622c79fd7bd9899e700cf052a375c675)\n\nChange-Id: I31c9ff41c3d713fc3b14573c2b731325ac6f366f\n"
    },
    {
      "commit": "e835f3a2e4a7af404e61a88058712f77737d87cd",
      "tree": "1b8f14d3910377502c218971d5f538f694f7c01b",
      "parents": [
        "250a23c892bb809267325c0744c6f70fca49ac94",
        "c4ae916def97b9e1ef6df35c8fabb3921a0e380c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 08 17:50:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 08 17:50:05 2016 +0000"
      },
      "message": "Merge changes from topic \u0027rr_barrier\u0027\n\n* changes:\n  Store precice set of which constructors require barriers\n  Revert \"Revert \"Check if we require barrier if we did not resolve classes\"\"\n  Revert \"Revert \"Change RequiresConstructorBarrier default to yes\"\"\n"
    },
    {
      "commit": "c4ae916def97b9e1ef6df35c8fabb3921a0e380c",
      "tree": "9423d8a1df2ae043e2a9abb7a20977d849d1b7d6",
      "parents": [
        "b5d386118334fa5181c31b83b3fee6332537f4b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 07 13:19:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 08 10:33:00 2016 -0700"
      },
      "message": "Store precice set of which constructors require barriers\n\nFixes bugs where things in the boot image might not have been\ncalculated even though resolved_clases was true. This only occured\nfor app and test compiles though.\n\nFixes test 476-checker-ctor-memory-barrier which was failing due to\ninlining something in the boot class path and getting a unexpected\nbarrier since the barrier defaults to enabled.\n\nNo measurable increase in RAM usage.\n\nBug: 28005874\n\nChange-Id: I4a417819aa129c95f4a83c38df1a66eb77824ea9\n"
    },
    {
      "commit": "e1bcd8a96f3627703f0dfd13d037205fd4d0ef6c",
      "tree": "bc54e778acc05b816a8b60d4217d880a896ccd74",
      "parents": [
        "1d6fdaf2ed078c774e2c88c5132b23ab35259308"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 07 11:44:50 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 07 11:52:08 2016 -0700"
      },
      "message": "Revert \"Disable some image_test cases with concurrent collector.\"\n\nThis reverts commit d52765768b634c6f32a9bddd5c1269f26d32ea3a.\n\nBug: 27578460\nChange-Id: Ie23877ac5332e05805c251749159e8f00af4ac8c\n"
    },
    {
      "commit": "1d6fdaf2ed078c774e2c88c5132b23ab35259308",
      "tree": "33daa1fec36ea1ae9fd112832713d6722851f4de",
      "parents": [
        "2c6760a0eb1e05d3a89a6cca9d2746da3d547e9e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 07 11:31:26 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 07 11:50:29 2016 -0700"
      },
      "message": "Fix image_test for the CC collector.\n\nIncrease the image address space reserve.\n\nBug: 27578460\nChange-Id: I262f6be81c496a7a777013702e3da74ea4d619b4\n"
    },
    {
      "commit": "b5d386118334fa5181c31b83b3fee6332537f4b7",
      "tree": "d274af1da7f514536f755c77b8305ff1046f1759",
      "parents": [
        "371bd83f21f8db3b8e4cc8a660ead6a0650e92f6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 07 10:52:52 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 07 10:52:52 2016 -0700"
      },
      "message": "Revert \"Revert \"Check if we require barrier if we did not resolve classes\"\"\n\nThis reverts commit a7ab4997f7263439561093ffbc7dea29181a47c5.\n"
    },
    {
      "commit": "371bd83f21f8db3b8e4cc8a660ead6a0650e92f6",
      "tree": "d71023c2408ed6145153bbeac5f573dd5667e163",
      "parents": [
        "7fa1f92cbf98c40baa00c6fb9331ec7ac72abfa8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 07 10:19:48 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 07 10:19:48 2016 -0700"
      },
      "message": "Revert \"Revert \"Change RequiresConstructorBarrier default to yes\"\"\n\nThis reverts commit 0436ee6bd33a0b905cd2a7e333f7935da1bd5d86.\n"
    },
    {
      "commit": "7fa1f92cbf98c40baa00c6fb9331ec7ac72abfa8",
      "tree": "1c913694558dabe227a8ec124a5235c65a89fa00",
      "parents": [
        "8913162a5959035f100f608fd5ccc348cf3922cf",
        "8b233fc3c50e3c1785b445582502ecb9a7e983eb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 16:13:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 07 16:13:10 2016 +0000"
      },
      "message": "Merge \"Remove more Quick-related macros in tests.\""
    },
    {
      "commit": "8913162a5959035f100f608fd5ccc348cf3922cf",
      "tree": "d3e6dd3e0c8e35288db04a263438c7a0081b2bb3",
      "parents": [
        "950dd553041b324e9e343a60d94d45596b5c7926",
        "dee58d6bb6d567fcd0c4f39d8d690c3acaf0e432"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 07 16:03:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 07 16:03:51 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Refactor HGraphBuilder and SsaBuilder to remove HLocals\"\"\""
    },
    {
      "commit": "dee58d6bb6d567fcd0c4f39d8d690c3acaf0e432",
      "tree": "5a2f20546ca3c1544c44bee560062580e22dc79c",
      "parents": [
        "391e155a6936a05bd39b171031ec21d2dee62133"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 07 09:54:26 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 07 16:03:16 2016 +0000"
      },
      "message": "Revert \"Revert \"Refactor HGraphBuilder and SsaBuilder to remove HLocals\"\"\n\nThis patch merges the instruction-building phases from HGraphBuilder\nand SsaBuilder into a single HInstructionBuilder class. As a result,\nit is not necessary to generate HLocal, HLoadLocal and HStoreLocal\ninstructions any more, as the builder produces SSA form directly.\n\nSaves 5-15% of arena-allocated memory (see bug for more data):\n  GMS      20.46MB  \u003d\u003e  19.26MB  (-5.86%)\n  Maps     24.12MB  \u003d\u003e  21.47MB  (-10.98%)\n  YouTube  28.60MB  \u003d\u003e  26.01MB  (-9.05%)\n\nThis CL fixed an issue with parsing quickened instructions.\n\nBug: 27894376\nBug: 27998571\nBug: 27995065\n\nChange-Id: I20dbe1bf2d0fe296377478db98cb86cba695e694\n"
    },
    {
      "commit": "8b233fc3c50e3c1785b445582502ecb9a7e983eb",
      "tree": "474099c4d0521749d3594015adb1d0e8110e29ce",
      "parents": [
        "950dd553041b324e9e343a60d94d45596b5c7926"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Apr 06 18:23:01 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 16:26:27 2016 +0100"
      },
      "message": "Remove more Quick-related macros in tests.\n\nRemove these macros, as Quick is gone:\n- TEST_DISABLED_FOR_HEAP_REFERENCE_POISONING_WITH_QUICK\n- TEST_DISABLED_FOR_READ_BARRIER_WITH_QUICK\n\nAlso remove TEST_DISABLED_FOR_NON_PIC_COMPILING_WITH_OPTIMIZING,\nas it is no longer used anywhere.\n\nChange-Id: I78617fc060b7727f9b6fffcb2348d6fca01b4928\n"
    },
    {
      "commit": "950dd553041b324e9e343a60d94d45596b5c7926",
      "tree": "f47efdd7ba8579c9defd3d265c80b06a2c6d2f22",
      "parents": [
        "35d6a426c699da05ee6f962cfbe426b7d638780a",
        "0436ee6bd33a0b905cd2a7e333f7935da1bd5d86"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 14:58:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 07 14:58:32 2016 +0000"
      },
      "message": "Merge \"Revert \"Change RequiresConstructorBarrier default to yes\"\""
    },
    {
      "commit": "0436ee6bd33a0b905cd2a7e333f7935da1bd5d86",
      "tree": "ef484cab06471b80d78d546ba567cdb6c2007324",
      "parents": [
        "f2f0f4b0b9185fe0b6d1fb22744a871c96296db2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 14:58:12 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 14:58:12 2016 +0000"
      },
      "message": "Revert \"Change RequiresConstructorBarrier default to yes\"\n\nCL https://android-review.googlesource.com/#/c/213119/ is\nbreaking run-test 476-checker-ctor-memory-barrier on ARM\nand ARM64.\n\nBug: 28005874\n\nThis reverts commit f2f0f4b0b9185fe0b6d1fb22744a871c96296db2.\n\nChange-Id: Ic6e97ab07358406c07c654ac9de700f0186f15f8\n"
    },
    {
      "commit": "35d6a426c699da05ee6f962cfbe426b7d638780a",
      "tree": "ece769c9094c2791015b4fc61035ea50221bb477",
      "parents": [
        "173e99a73e535f07bc32fc76d3ff9f987caeffda",
        "a7ab4997f7263439561093ffbc7dea29181a47c5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 14:57:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 07 14:57:50 2016 +0000"
      },
      "message": "Merge \"Revert \"Check if we require barrier if we did not resolve classes\"\""
    },
    {
      "commit": "a7ab4997f7263439561093ffbc7dea29181a47c5",
      "tree": "7e5daa065982d909da229843d5121e8cd5aa47ae",
      "parents": [
        "20fd7cdd25364b16d878df037c6ae0fbd5f2a9ac"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 14:56:58 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 14:56:58 2016 +0000"
      },
      "message": "Revert \"Check if we require barrier if we did not resolve classes\"\n\nCL https://android-review.googlesource.com/#/c/213119/ is\nbreaking run-test 476-checker-ctor-memory-barrier on ARM\nand ARM64, and reverting it requires reverting this CL\n(https://android-review.googlesource.com/#/c/213109/)\nfirst.\n\nBug: 28005874\n\nThis reverts commit 20fd7cdd25364b16d878df037c6ae0fbd5f2a9ac.\n\nChange-Id: Iaf174b2df3dd4dd469c79ca3f2c68ef87748d124\n"
    },
    {
      "commit": "391e155a6936a05bd39b171031ec21d2dee62133",
      "tree": "e9ca04db5c2af5ec448cf1000429faa456116a35",
      "parents": [
        "791947dc6284b6f28bb6fdbe1b585eb3cf821e44",
        "40ecb12f8eeb97b810e11f895278abbf7988ed4d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 07 09:18:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 07 09:18:36 2016 +0000"
      },
      "message": "Merge \"Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod.\""
    },
    {
      "commit": "791947dc6284b6f28bb6fdbe1b585eb3cf821e44",
      "tree": "3743ea6042f862a5734a9ab36a8a9cb777e925fc",
      "parents": [
        "e7fbbe4ea5c36f5d4bea6e060f535f883da8294c",
        "a3aef2e42f4e88ae556432bd4a8040456a42bf74"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 07 09:08:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 07 09:08:06 2016 +0000"
      },
      "message": "Merge \"Move optimizations out of HInliner::TryBuildAndInlineHelper.\""
    },
    {
      "commit": "20fd7cdd25364b16d878df037c6ae0fbd5f2a9ac",
      "tree": "3872f8e290990ceb9267313452d2a5e4a7d1ce0d",
      "parents": [
        "43574b561a9f4b1721ea4ab2bbccae7a825c2ebb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 06 14:41:23 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 06 16:01:48 2016 -0700"
      },
      "message": "Check if we require barrier if we did not resolve classes\n\nCheck fields instead of just always inserting the return void\nbarrier.\n\nBug: 28005874\n\n(cherry picked from commit 03c7df9648028228d75dddfc25cbc81ab8096167)\n\nChange-Id: I1207fecc9a4425d024a7e5e1a850c9e2a6e17c31\n"
    },
    {
      "commit": "f2f0f4b0b9185fe0b6d1fb22744a871c96296db2",
      "tree": "c00bbd43cb73d098e11831bf7be71b4a5b0224e7",
      "parents": [
        "d1bdb7cc301a75050bd440597997421c6b9278d9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 06 10:47:45 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 06 11:42:42 2016 -0700"
      },
      "message": "Change RequiresConstructorBarrier default to yes\n\nPreviously it defaulted to false, this caused incorrect dex2dex if\nthe resolution pass was not run.\n\nTODO: Re-enable the no barrier for no resolution case to improve\ninterpreter performance slightly.\n\nBug: 28005874\n\n(cherry picked from commit e5d8020b03956db6d533852b3ae940e0eb0fafc4)\n\nChange-Id: Ibde6e18b8543f7bc9e17db6941a710756cd8b617\n"
    },
    {
      "commit": "0fb09f7a441a2858c4724198f1ef74d9235be044",
      "tree": "e9c88dbb3f20aec58d99dcd1edca73639820fb3f",
      "parents": [
        "c28a0d71d18e333b22b453128dc549a44634b1fa",
        "5dcf19d402b4ea7023ced2afa8d615576fe2784f"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Apr 06 16:59:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 06 16:59:03 2016 +0000"
      },
      "message": "Merge \"Fix and re-enable compiler_driver_test\""
    },
    {
      "commit": "5dcf19d402b4ea7023ced2afa8d615576fe2784f",
      "tree": "6266158f027410b9b16a4ecf53d8df16e1459ecb",
      "parents": [
        "eb98c0ded592cfca8187c744393c82efd1020b2a"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Apr 04 17:44:59 2016 +0100"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Apr 06 16:50:46 2016 +0000"
      },
      "message": "Fix and re-enable compiler_driver_test\n\nThis reverts commit 6f58cb85328bed2f3ea246cce4080244544d7c2b.\n\nThe move to OpenJDK introduces new dependencies to compile these\nmethods, however we don\u0027t actually need them to run this test. Remove\nthem here to enable the test again.\n\nBug: 25836016\nChange-Id: I75b12c48941fca6646142004accae8364e8c6dbc\n"
    },
    {
      "commit": "a3aef2e42f4e88ae556432bd4a8040456a42bf74",
      "tree": "03261fe4fd630bb18840f0397dcf19475deb8129",
      "parents": [
        "5827507da8efdaf4536c70dfdc54407c28e37852"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Apr 06 17:45:58 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Apr 06 17:45:58 2016 +0100"
      },
      "message": "Move optimizations out of HInliner::TryBuildAndInlineHelper.\n\nThis is a followup CL to\nhttps://android-review.googlesource.com/#/c/212651.\n\nChange-Id: I37d1c3fc06d8e36c335dd62887936486f7deeba4\n"
    },
    {
      "commit": "40ecb12f8eeb97b810e11f895278abbf7988ed4d",
      "tree": "54d999605c0eaf3b4d311f83f8162684506f4a31",
      "parents": [
        "5827507da8efdaf4536c70dfdc54407c28e37852"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 06 17:33:41 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 06 17:33:41 2016 +0100"
      },
      "message": "Optimizing: Fix codegens for MethodLoadKind::kDexCacheViaMethod.\n\nUse the original method index instead of the target method\nindex because the target method may point to a different dex\nfile.\n\nNo regression test: this currently happens only if the\ncodegen uses the kDexCacheViaMethod as a fallback for\nanother load kind and we aim to avoid that fallback, so it\nwould be difficult to write a reliable regression test. We\ncould try and exploit current fallbacks for irreducible\nloops on x86 and arm but those fallbacks will eventually\ndisappear anyway.\n\nBug: 28036230\nChange-Id: I4cc9e046480d3d60a7fb521f0ca6a98914625cdc\n"
    },
    {
      "commit": "96de6c36efd328b3c5a7e4bb8f32ab340cce3efe",
      "tree": "3eba3b4fad4af8d639faa096ff33b84ffef7a3be",
      "parents": [
        "274704fd37ff65c65f229638d359186e33f4912b",
        "c2ec9ad9a0008a95b29185e6a971244ef108c766"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 05 13:25:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 05 13:25:12 2016 +0000"
      },
      "message": "Merge \"Implement ARM64 support for SystemArrayCopy()\""
    },
    {
      "commit": "83ca47a2a20da233cc1fec273614845e0c8bb32f",
      "tree": "339a54de68191b7c9a934c41cad2d47c85f4a62d",
      "parents": [
        "75563e34a4e64a8e805e6810b13e07f1cafec137"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Apr 05 13:08:21 2016 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Apr 05 13:31:35 2016 +0200"
      },
      "message": "Remove unused \u0027status\u0027 variable\n\nGCC (mips32 Buildbot) is complaining about unused variable.\n\nThis is follow up change for\n    https://android-review.googlesource.com/#/c/212523/.\n\nChange-Id: Id6ac2736d30f324f2cad68d8dabe409092f000ac\n"
    },
    {
      "commit": "75563e34a4e64a8e805e6810b13e07f1cafec137",
      "tree": "30bc7341b8b2c49e0fc56f783de86777abada138",
      "parents": [
        "a07be75830af60ce50aba357e8de066e849aa21c",
        "9d07e3d128ccfa0ef7670feadd424a825e447d1d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 05 09:23:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 05 09:23:53 2016 +0000"
      },
      "message": "Merge \"Clean up OatQuickMethodHeader after Quick removal.\""
    },
    {
      "commit": "085a072b209ac24ab4cb6b565a1570b485ec2fa3",
      "tree": "4dcbb7c502d72bfb4b29fa0ad4c14f7e6e77d7ab",
      "parents": [
        "7d9a5b0fbceef5806f059060d47533b9e699ec28"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 01 17:33:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 04 11:36:13 2016 -0700"
      },
      "message": "Mark array classes as verification attempted\n\nWe now initialize all array classes in the compiler driver. This in\nturn will ensure they are marked verified in the image. This\nprevents dirty pages in the image since we would otherwise set the\nflags in the zygote.\n\nOn BusinessCard:\nReduces shared dirty from 636k -\u003e 432k for boot.art, and dirty pages\nfrom 183 to 132.\n\n(cherry picked from commit 3b674098bef6eaf7d3fb731878293ef715fe1080)\n\nChange-Id: If3093e4e3242e4ee3ea120abe5be7db028290260\n"
    },
    {
      "commit": "7d9a5b0fbceef5806f059060d47533b9e699ec28",
      "tree": "411f4f2a709efdbf2b3d54cb40ee271061cb30bb",
      "parents": [
        "75c221dcffab45e3c1e4ba8b8cd048c87497334f",
        "60328910cad396589474f8513391ba733d19390b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 17:48:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 04 17:48:02 2016 +0000"
      },
      "message": "Merge \"Revert \"Refactor HGraphBuilder and SsaBuilder to remove HLocals\"\""
    },
    {
      "commit": "60328910cad396589474f8513391ba733d19390b",
      "tree": "01702f6df5c39925b354a3152dd04289e7d97062",
      "parents": [
        "e3ff7b293be2a6791fe9d135d660c0cffe4bd73f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 17:47:42 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 17:47:42 2016 +0000"
      },
      "message": "Revert \"Refactor HGraphBuilder and SsaBuilder to remove HLocals\"\n\nBug: 27995065\nThis reverts commit e3ff7b293be2a6791fe9d135d660c0cffe4bd73f.\n\nChange-Id: I5363c7ce18f47fd422c15eed5423a345a57249d8\n"
    },
    {
      "commit": "9d07e3d128ccfa0ef7670feadd424a825e447d1d",
      "tree": "dfb677fd75f0f297fef9bc49311cf1d22c770f56",
      "parents": [
        "eb98c0ded592cfca8187c744393c82efd1020b2a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 31 12:02:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 04 17:50:20 2016 +0100"
      },
      "message": "Clean up OatQuickMethodHeader after Quick removal.\n\nThis reduces the size of the pre-header by 8 bytes, reducing\noat file size and mmapped .text section size. The memory\nneeded to store a CompiledMethod by dex2oat is also reduced,\nfor 32-bit dex2oat by 8B and for 64-bit dex2oat by 16B. The\naosp_flounder-userdebug 32-bit and 64-bit boot.oat are each\nabout 1.1MiB smaller.\n\nDisable the broken StubTest.IMT, b/27991555 .\n\nChange-Id: I05fe45c28c8ffb7a0fa8b1117b969786748b1039\n"
    },
    {
      "commit": "eb98c0ded592cfca8187c744393c82efd1020b2a",
      "tree": "1b1504f200b626c405ce3381743d8ba5825cf9d0",
      "parents": [
        "2f92ec8a52faa4bc566af8fa34212f3e749e82c8",
        "a8013fd4f2630aa45b5a3c320660ac9590523537"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 04 14:36:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 04 14:36:12 2016 +0000"
      },
      "message": "Merge \"Please Clang wrt stack frames in HInliner::TryBuildAndInlineHelper.\""
    },
    {
      "commit": "a8013fd4f2630aa45b5a3c320660ac9590523537",
      "tree": "b8bbdcd6999e728d5faae712044ca541b22c3aba",
      "parents": [
        "75ee5c28ab583c532066b64d6337a5f78d6aa2ad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 04 15:34:31 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 04 15:34:31 2016 +0100"
      },
      "message": "Please Clang wrt stack frames in HInliner::TryBuildAndInlineHelper.\n\nThis change enables Clang to compile ART on MIPS64 without\ncomplaining about stack frames larger than what\n`-Wframe-larger-than` allows.\n\nChange-Id: I72f424922d9cb3d01f7b8ba4e5cb9170b82870d9\n"
    },
    {
      "commit": "2f92ec8a52faa4bc566af8fa34212f3e749e82c8",
      "tree": "78b9ee38ae016f1198bc21ae7d913bc961f7624a",
      "parents": [
        "75ee5c28ab583c532066b64d6337a5f78d6aa2ad",
        "61b28a17d9b6e8e998103646e98e4a9772e11927"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 04 13:35:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 04 13:35:53 2016 +0000"
      },
      "message": "Merge \"Use bit-level packing for InlineInfo in stackmaps as well.\""
    },
    {
      "commit": "75ee5c28ab583c532066b64d6337a5f78d6aa2ad",
      "tree": "21f4ff61cee75c35157366278641916786cfc58b",
      "parents": [
        "7e168f65949e70069418148b0b60ac86d04339d0",
        "fa3912edfac60a9f0a9b95a5862c7361b403fcc2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 04 12:58:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 04 12:58:23 2016 +0000"
      },
      "message": "Merge \"Fix BitCount intrinsics assertions.\""
    },
    {
      "commit": "7e168f65949e70069418148b0b60ac86d04339d0",
      "tree": "2fda16039c6fee2eaa4fd81a60cfe223b545f8ca",
      "parents": [
        "a999af471f4288b7f7e03b59f66e2387839676bf",
        "3a448e4af9595392c1a2308f59c084842c955e3e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 04 11:37:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 04 11:37:58 2016 +0000"
      },
      "message": "Merge \"Improve debugging in art/compiler/optimizing/common_arm64.h.\""
    },
    {
      "commit": "e3ff7b293be2a6791fe9d135d660c0cffe4bd73f",
      "tree": "d578d27cb78e6d2caef683cd8ac94c9a9752b192",
      "parents": [
        "86ea7eeabe30c98bbe1651a51d03cb89776724e7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 02 16:48:20 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 11:21:30 2016 +0100"
      },
      "message": "Refactor HGraphBuilder and SsaBuilder to remove HLocals\n\nThis patch merges the instruction-building phases from HGraphBuilder\nand SsaBuilder into a single HInstructionBuilder class. As a result,\nit is not necessary to generate HLocal, HLoadLocal and HStoreLocal\ninstructions any more, as the builder produces SSA form directly.\n\nSaves 5-15% of arena-allocated memory (see bug for more data):\n  GMS      20.46MB  \u003d\u003e  19.26MB  (-5.86%)\n  Maps     24.12MB  \u003d\u003e  21.47MB  (-10.98%)\n  YouTube  28.60MB  \u003d\u003e  26.01MB  (-9.05%)\n\nBug: 27894376\nChange-Id: Iefe28d40600c169c5d306fd2c77034ae19476d90\n"
    },
    {
      "commit": "86ea7eeabe30c98bbe1651a51d03cb89776724e7",
      "tree": "01702f6df5c39925b354a3152dd04289e7d97062",
      "parents": [
        "0cb5c86b7021e70cbf584c1455aad1ef383af786"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 16 09:26:07 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 11:21:20 2016 +0100"
      },
      "message": "Build dominator tree before generating HInstructions\n\nSecond CL in the series of merging HGraphBuilder and SsaBuilder. This\npatch refactors the builders so that dominator tree can be built\nbefore any HInstructions are generated. This puts the SsaBuilder\nremoval of HLoadLocals/HStoreLocals straight after HGraphBuilder\u0027s\nHInstruction generation phase. Next CL will therefore be able to\nmerge them.\n\nThis patch also adds util classes for iterating bytecode and switch\ntables which allowed to simplify the code.\n\nBug: 27894376\nChange-Id: Ic425d298b2e6e7980481ed697230b1a0b7904526\n"
    },
    {
      "commit": "3a448e4af9595392c1a2308f59c084842c955e3e",
      "tree": "0fa1cdf37049487b61fc2f34f02d9477c55d8805",
      "parents": [
        "cbfa10557ab6e2669747a1e21a87adf212ec44c2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 01 18:37:46 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 01 18:37:46 2016 +0100"
      },
      "message": "Improve debugging in art/compiler/optimizing/common_arm64.h.\n\nChange-Id: I44ff2cb64c1fd45390ed4a6517af2488fdbdaf41\n"
    },
    {
      "commit": "fa3912edfac60a9f0a9b95a5862c7361b403fcc2",
      "tree": "2c39b911f1e68335c45ba30690f170a47e298c68",
      "parents": [
        "fe2b13717879abae993603534a145372e3110aae"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 01 18:21:55 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 01 18:21:55 2016 +0100"
      },
      "message": "Fix BitCount intrinsics assertions.\n\nBug: 27852035\nChange-Id: Iba43039aadd9ba288b476d53cc2306a58356465f\n"
    }
  ],
  "next": "61b28a17d9b6e8e998103646e98e4a9772e11927"
}
