)]}'
{
  "log": [
    {
      "commit": "a841bc3fb000a9cdbbb7b3cedf2cb7a11e2c82ce",
      "tree": "875da22fe58b8be37e556a790fa199678f67ed3c",
      "parents": [
        "25255512bae64fefc5cb76b1590e8e9c1dd42e82",
        "5233f93ee336b3581ccdb993ff6342c52fec34b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 30 17:46:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 17:46:01 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag even more arena allocations.\""
    },
    {
      "commit": "25255512bae64fefc5cb76b1590e8e9c1dd42e82",
      "tree": "43c5ec7de2b39fd95646fc348ebb08d7332a3d7a",
      "parents": [
        "6387821209a03c5d873cf9dc6fd11434918bbdf4",
        "9401f5397128ddc8dc36de923dd5e6bd4e4b5be4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 30 17:23:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 17:23:55 2015 +0000"
      },
      "message": "Merge \"Implemented trip-count safety information.\""
    },
    {
      "commit": "9401f5397128ddc8dc36de923dd5e6bd4e4b5be4",
      "tree": "4ff8052307da80baa89dfa80a446f48752c0e95c",
      "parents": [
        "931e26843bbb688eacfa67b40414c6b8f221a56a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 28 16:25:56 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 30 09:58:53 2015 -0700"
      },
      "message": "Implemented trip-count safety information.\n\nAs shown in the induction analysis presentation, trip-counts need to\ndeal with potential taken/not-taken situations (so that trip-count\nis either valid in the full loop or just in the loop-body proper)\nand potential finite/infinite situations (the latter can still be\nanalyzed but may need to run-time test later to guard against the\ninfinite conditions). This CL provides that information.\n\nChange-Id: I0445d8e836b80a3614af217ce3e39d766e77b986\n"
    },
    {
      "commit": "1920c1036ebe6dcdc93959714c9fdcedc199baf0",
      "tree": "e36976aea8f789ceb037b66308d1ec84a0421772",
      "parents": [
        "0766e3ff5638b14d6b3ea6157c800eed11be5b98"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 18:00:03 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 30 09:05:15 2015 +0100"
      },
      "message": "Revert \"Revert \"Enable optimizations with --debuggable.\"\"\n\nThis reverts commit b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde.\n\nChange-Id: I398c23863e4fd86a3112076417378d22efd08306\n"
    },
    {
      "commit": "5233f93ee336b3581ccdb993ff6342c52fec34b0",
      "tree": "225dc0ab491263ef56362a8d0fe2926266bd5047",
      "parents": [
        "de8a3f4dce1e9ff0e3be16956b06bafc8cd4f397"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 19:01:15 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 19:46:03 2015 +0100"
      },
      "message": "Optimizing: Tag even more arena allocations.\n\nTag previously \"Misc\" arena allocations with more specific\nallocation types. Move some native heap allocations to the\narena in BCE.\n\nBug: 23736311\nChange-Id: If8ef15a8b614dc3314bdfb35caa23862c9d4d25c\n"
    },
    {
      "commit": "0766e3ff5638b14d6b3ea6157c800eed11be5b98",
      "tree": "e37a48f0f06a60271c02c4175cfbe8d1b409e71d",
      "parents": [
        "de8a3f4dce1e9ff0e3be16956b06bafc8cd4f397",
        "b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:30:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 17:30:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable optimizations with --debuggable.\"\""
    },
    {
      "commit": "b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde",
      "tree": "fdf0c3bb7630ed0d5598365059fca4c04cccb1bf",
      "parents": [
        "43855ccb01703b188777fe59e1110e6a23803171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:30:10 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:30:10 2015 +0000"
      },
      "message": "Revert \"Enable optimizations with --debuggable.\"\n\nBuild error with gcc.\n\nThis reverts commit 43855ccb01703b188777fe59e1110e6a23803171.\n\nChange-Id: I45abc7ee0943b2ad7bd644c88858891fc7a38ead\n"
    },
    {
      "commit": "de8a3f4dce1e9ff0e3be16956b06bafc8cd4f397",
      "tree": "97b1251e4572637bc9d99335bd2c3044f8ef7074",
      "parents": [
        "9baa4df684bdf0150bd8632f991708627772ea85",
        "43855ccb01703b188777fe59e1110e6a23803171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:05:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 17:05:26 2015 +0000"
      },
      "message": "Merge \"Enable optimizations with --debuggable.\""
    },
    {
      "commit": "f6860a5f12a8fe974b8f25e67a19a71bf0378d62",
      "tree": "040cb5be85ad86a6e1e87be7bedb3de70eb0f6d0",
      "parents": [
        "a2d8b187e7b6631692fa1243e86ef16c428fa9da",
        "452c1b60120aee0883c3339b363f820b8d69c299"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 16:33:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 16:33:44 2015 +0000"
      },
      "message": "Merge \"Optimizing: Simplify UShr+And, Shr+And.\""
    },
    {
      "commit": "43855ccb01703b188777fe59e1110e6a23803171",
      "tree": "7cd613dacd58258af4684595c41e4c118250b528",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 15:43:06 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 16:57:52 2015 +0100"
      },
      "message": "Enable optimizations with --debuggable.\n\nChange-Id: I8979e59ee081222687fda1c93ac0bf3acbbad936\n"
    },
    {
      "commit": "a2d8b187e7b6631692fa1243e86ef16c428fa9da",
      "tree": "dd05583c9b6e8ddd1b9cd7a84b3ee3cbf5152271",
      "parents": [
        "a68ceb1fd5c4f8fe18aacdb33d605919f7d61ddf",
        "b11fc61d9769753ec9e4a51b88ee288923159283"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 15:18:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 15:18:29 2015 +0000"
      },
      "message": "Merge \"Fix a bug in DeadPhiHandling around conflicting phis.\""
    },
    {
      "commit": "b11fc61d9769753ec9e4a51b88ee288923159283",
      "tree": "1a513fc5103594129a4bd716892b56c3af752f25",
      "parents": [
        "722b5a7580e2d1e7a0327f46615d4c24acba9baa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 13:42:22 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 16:18:03 2015 +0100"
      },
      "message": "Fix a bug in DeadPhiHandling around conflicting phis.\n\nChange-Id: I44ec40f71a7e05eb4295bea55f6045cb86017329\n"
    },
    {
      "commit": "a68ceb1fd5c4f8fe18aacdb33d605919f7d61ddf",
      "tree": "df4d7b498edd4a74192605c02dd166c2c3051172",
      "parents": [
        "9139578addd6d0e51088fc45bfc0972fc97939b7",
        "225b6464a58ebe11c156144653f11a1c6607f4eb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 14:56:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 14:56:04 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag arena allocations in code generators.\""
    },
    {
      "commit": "452c1b60120aee0883c3339b363f820b8d69c299",
      "tree": "78d0c7134064446dadd86407d353769b939d64f0",
      "parents": [
        "ec7e44f7afe0ff48d4d1ae54a12d375e0392d24c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 14:44:17 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 13:40:06 2015 +0100"
      },
      "message": "Optimizing: Simplify UShr+And, Shr+And.\n\nEliminate And from UShr+And if the And-mask contains all the\nbits that can be non-zero after UShr. Transform Shr+And to\nUShr if the And-mask precisely clears the shifted-in sign\nbits.\n\nThis prepares for detecting the Rotate pattern, i.e.\n  (x \u003c\u003c N) | (x \u003e\u003e\u003e (SIZE - N))\nin code that unnecessarily masks the UShr, for example\n  (x \u003c\u003c 1) | ((x \u003e\u003e\u003e 31) \u0026 1) ,\nor uses Shr, for example\n  (x \u003c\u003c 8) | ((x \u003e\u003e 24) \u0026 0xff) .\n\nChange-Id: I684c4b752547d9b1057d0d4c4d44550bb1a3ffb4\n"
    },
    {
      "commit": "9139578addd6d0e51088fc45bfc0972fc97939b7",
      "tree": "bbaf5649a4dcda99d0815a14993ecb0157386921",
      "parents": [
        "d8750f3ce82225013f078c98caec0c8922a3689a",
        "97a87ec836ff8f480af1166d05b92dad1c5daadd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 10:37:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 10:37:49 2015 +0000"
      },
      "message": "Merge \"Quick: Avoid shifting -1 left (undefined behavior).\""
    },
    {
      "commit": "97a87ec836ff8f480af1166d05b92dad1c5daadd",
      "tree": "82a4bba2f2b4d6e430c018caf15594f7a6c2d5e9",
      "parents": [
        "6a9984e62c08bcd78c8e49dd40b1f0f9d53513b7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 11:25:48 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 11:27:54 2015 +0100"
      },
      "message": "Quick: Avoid shifting -1 left (undefined behavior).\n\nC++11 clarifies that shifting left a negative value is\nundefined behavior. Fix legacy code that shifted -1 left.\n\nBug: 24489455\nChange-Id: Iaf4f26c7cde175f039b6a2cad12af6f0b1624fba\n"
    },
    {
      "commit": "225b6464a58ebe11c156144653f11a1c6607f4eb",
      "tree": "3f1c6067c3841c892edaa1a60a61af9c559cb4e4",
      "parents": [
        "6a9984e62c08bcd78c8e49dd40b1f0f9d53513b7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 28 12:17:40 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 10:49:35 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in code generators.\n\nAnd completely remove the deprecated GrowableArray.\n\nReplace GrowableArray with ArenaVector in code generators\nand related classes and tag arena allocations.\n\nLabel arrays use direct allocations from ArenaAllocator\nbecause Label is non-copyable and non-movable and as such\ncannot be really held in a container. The GrowableArray\nnever actually constructed them, instead relying on the\nzero-initialized storage from the arena allocator to be\ncorrect. We now actually construct the labels.\n\nAlso avoid StackMapStream::ComputeDexRegisterMapSize() being\npassed null references, even though unused.\n\nChange-Id: I26a46fdd406b23a3969300a67739d55528df8bf4\n"
    },
    {
      "commit": "6e7455e90411c77088af5fcbf828219842bd2182",
      "tree": "739174a530e18aebcc9ebedba906c1de4e541234",
      "parents": [
        "85e5207ef094f99081539333bd868ce721c6fd73"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 28 16:25:37 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 10:01:07 2015 +0100"
      },
      "message": "Use dominance information for null optimization in write barrier.\n\nChange-Id: I8b57dafcd321c9afa1bbfc6a0674cbea15cbf10c\n"
    },
    {
      "commit": "1d0a03c2eb0e26ded029b84e011458e8466f87de",
      "tree": "33943c964ae1b4aa2ed2e9d27ee5aeed5599acc2",
      "parents": [
        "6adb995d8e0177189bf77e9a0f6fce7ded87d993"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 28 14:11:09 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 28 15:31:55 2015 +0100"
      },
      "message": "ART: Fix DeadPhiHandling creating \u003e2 equivalents\n\nRun test 531 failed a DCHECK because the DeadPhiHandling algorithm\nwould generate three phis of the same type:\n  (0) loop phi [#0, ref] with equivalents void \u0026 object\n  (1) type object equivalent by its first input \u003d\u003e int \u0026 int\n  (2) request object equivalent by a user \u003d\u003e int \u0026 int \u0026 object\n  (3) type second \u003d\u003e int \u0026 object \u0026 object (dead)\n  (4) type first \u003d\u003e object \u0026 object \u0026 object\n\nThis patch fixes the issue by skipping (1) when the phi already has\na type, thus not creating the third equivalent for the phi\u0027s user.\n\nChange-Id: I00c990a5982ddc1f7de013f72bbcfb1c649a6e5f\n"
    },
    {
      "commit": "3b9f30487e160eb97f3fa8694351dc1073e2fd45",
      "tree": "a98540ff1b8af2bfe996ecf51d7bacd9247863b8",
      "parents": [
        "6a9984e62c08bcd78c8e49dd40b1f0f9d53513b7"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Sep 24 08:43:40 2015 -0400"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 28 13:21:34 2015 +0100"
      },
      "message": "Address HPackedSwitch issues raised after merge\n\nThere were some stylistic comments about the merged files.  Fix those.\n\nAdd a test that PackedSwitch can be removed by DCE.\n\nChange-Id: Idf45833956e9b58051f942a52b06a1e416606e2e\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "6918bf13eb855b3aa8ccdddda2d27ae8c60cec56",
      "tree": "907f504a4d004ac1e44b73c3984e365e889407e8",
      "parents": [
        "446ca43e8f876dcc1ee90fcf432d6392c44a3f60"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Sun Sep 27 19:19:06 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Sun Sep 27 19:19:23 2015 -0700"
      },
      "message": "Revert \"Revert \"lambda: Experimental support for capture-variable and liberate-variable\"\"\n\nThis reverts commit 7bbb80ab52c203e44d2ded2c947b3b03b4b31ec4.\n\nChange-Id: If806ce5c6c5e96fdb2c3761dee096f74e7e5b001\n"
    },
    {
      "commit": "446ca43e8f876dcc1ee90fcf432d6392c44a3f60",
      "tree": "29e82c4fff7663d1e184ae3059f547fa3b65646b",
      "parents": [
        "b175a45be78152606a1db1eac0b79ef8777644f5",
        "7bbb80ab52c203e44d2ded2c947b3b03b4b31ec4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Sep 27 19:50:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Sep 27 19:50:57 2015 +0000"
      },
      "message": "Merge \"Revert \"lambda: Experimental support for capture-variable and liberate-variable\"\""
    },
    {
      "commit": "7bbb80ab52c203e44d2ded2c947b3b03b4b31ec4",
      "tree": "eb54c557467f1401c4bd5729fa2b9e8ae91e8ffd",
      "parents": [
        "b72123440d8541362ebdb131436f9dbdda5fd329"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Sep 27 19:50:40 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Sep 27 19:50:40 2015 +0000"
      },
      "message": "Revert \"lambda: Experimental support for capture-variable and liberate-variable\"\n\nTest fails.\n\nThis reverts commit b72123440d8541362ebdb131436f9dbdda5fd329.\n\nChange-Id: Ic9ed92f8c826d8465eb36b746dc44af05caf041c\n"
    },
    {
      "commit": "b175a45be78152606a1db1eac0b79ef8777644f5",
      "tree": "d31b1ddd46ef19b04752e41e64ef8791b7d727bd",
      "parents": [
        "fb0a0e831f3df4977c51c9f85046c3099613390f",
        "0b7ac98ecdb891797a282c508b41238451d6c770"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Sep 26 02:45:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 26 02:45:05 2015 +0000"
      },
      "message": "Merge \"MIPS64: Implement intrinsics from java.lang.Math:\""
    },
    {
      "commit": "9c612cacb05c8661719d770dbce8dfdcb9c105cf",
      "tree": "6cd7d8e51ace1f48692d0f48c33e9c6b22cc283a",
      "parents": [
        "c27e706785c975eb91d9716800aae6c48dc47da6",
        "b72123440d8541362ebdb131436f9dbdda5fd329"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 25 23:55:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 23:55:58 2015 +0000"
      },
      "message": "Merge \"lambda: Experimental support for capture-variable and liberate-variable\""
    },
    {
      "commit": "0b7ac98ecdb891797a282c508b41238451d6c770",
      "tree": "c6d2b03cf97c8c087cbf5a00e632db3105a58726",
      "parents": [
        "c27e706785c975eb91d9716800aae6c48dc47da6"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Sep 04 12:54:28 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Sep 25 16:15:52 2015 -0700"
      },
      "message": "MIPS64: Implement intrinsics from java.lang.Math:\n\n- abs(double)           - abs(float)            - abs(int)\n- abs(long)             - ceil(double)          - floor(double)\n- max(double, double)   - max(float, float)     - max(int, int)\n- max(long, long)       - min(double, double)   - min(float, float)\n- min(int, int)         - min(long, long)       - rint(double)\n- sqrt(double)\n\nThe math intrinsics:\n\n- round(double)         - round(float)\n\naren\u0027t implemented because there is no simple mapping from these Java\nfunctions into MIPS assembly code.\n\nChange-Id: I37ee5224d3d64f7162ed98521ba566fbc58d7905\n"
    },
    {
      "commit": "b72123440d8541362ebdb131436f9dbdda5fd329",
      "tree": "41e3d21496a270edc06879f084a504a39af9469b",
      "parents": [
        "9f3b8d38de615efef6d2536817f19ad2ccaa313a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 25 14:22:08 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 25 15:53:00 2015 -0700"
      },
      "message": "lambda: Experimental support for capture-variable and liberate-variable\n\nSupports capturing/liberating any primitive variables.\nNo support for capturing objects/lambdas yet since they would both\nneed GC changes to track roots through closures.\n\nChange-Id: Ibfb68bfe4c579dbf93823aac4c0e6ac8f6360c5d\n"
    },
    {
      "commit": "aff587c6ad1930d056e12c804cc330796eb9f244",
      "tree": "12f89433c31c0d513c2c7c2cc9cf4d258ea71730",
      "parents": [
        "6525e67f3c13033a7d9f93e9a639b401eec0cc78",
        "70fb1f447970548555c3a994de880be2a17a146a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 25 22:14:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 22:14:19 2015 +0000"
      },
      "message": "Merge \"MIPS64: Implement intrinsics from libcore.io.Memory:\""
    },
    {
      "commit": "95ca0733c618556383b288ad5cdee9b431f691f5",
      "tree": "a0ed4d570f74a3726140bd56b7182df0d1b00edf",
      "parents": [
        "8a0014dd3ad1562d93695fa0d3033856ec7da133",
        "3039e381b79ac1ef01c420511f6629f639d40ab4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 25 19:51:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 19:51:10 2015 +0000"
      },
      "message": "Merge \"MIPS64: Implement miscellaneous bit manipulation intrinsics\""
    },
    {
      "commit": "70fb1f447970548555c3a994de880be2a17a146a",
      "tree": "f1e96f47c2269c6091ac5ae95d0cafc7a9ff5ee9",
      "parents": [
        "3039e381b79ac1ef01c420511f6629f639d40ab4"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Sep 04 10:15:27 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Sep 25 10:53:17 2015 -0700"
      },
      "message": "MIPS64: Implement intrinsics from libcore.io.Memory:\n\n- peekByte(long address)\n- peekShort(long address)\n- peekInt(long address)\n- peekLong(long address)\n- pokeByte(long address, byte value)\n- pokeShort(long address, short value)\n- pokeInt(long address, int value)\n- pokeLong(long address, long value)\n\nChange-Id: Ic5996ea035bf7e622b6fc85b9526ee8318cb6b1f\n"
    },
    {
      "commit": "430c4f561ec41a59813a17f7e3b4da10996a4774",
      "tree": "978b9a6bc7c3ce8028347fabe478df6bd98d183f",
      "parents": [
        "ec7e44f7afe0ff48d4d1ae54a12d375e0392d24c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 17:10:15 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 17:13:13 2015 +0100"
      },
      "message": "Optimizing: Add comment on DCE\u0027s packed-switch value check.\n\nChange-Id: I0c264d00b889917f88347c16c53e7647d0d8fd0f\n"
    },
    {
      "commit": "ec7e44f7afe0ff48d4d1ae54a12d375e0392d24c",
      "tree": "30ce5725c7258d6584a56f2c6382cee529df2cc2",
      "parents": [
        "e92ed9d31bae7ccd48b60aa921e9dd2ca96ac9db",
        "2aaa4b5532d30c4e65d8892b556400bb61f9dc8c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 13:59:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 13:59:08 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag more arena allocations.\""
    },
    {
      "commit": "e92ed9d31bae7ccd48b60aa921e9dd2ca96ac9db",
      "tree": "497ad13136a0683b41e856899ad48c6c42bec15c",
      "parents": [
        "1c79b7f7a2ef3fadd6de2d4ff70f6e6b6ddf56ef",
        "211c2119dc8932bdb264fae858adba6c0541ce3c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 13:58:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 13:58:00 2015 +0000"
      },
      "message": "Merge \"Optimizing: Rewrite DCE\u0027s MarkReachableBlocks().\""
    },
    {
      "commit": "211c2119dc8932bdb264fae858adba6c0541ce3c",
      "tree": "95dd0a75f9bd6745cf7bee4686dd612e353b5301",
      "parents": [
        "0aeb7599bcd7073a5c849f413fb7a9611f5944eb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 16:52:33 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 12:28:37 2015 +0100"
      },
      "message": "Optimizing: Rewrite DCE\u0027s MarkReachableBlocks().\n\nReplace a recursive implementation with a loop using a work\nlist to avoid stack overflow that we would presumably hit\nfor 702-LargeBranchOffset in host debug build with -O0, once\nthe DCE block elimination is enabled for methods containing\ntry-catch.\n\nBug: 24133462\nChange-Id: I41288ba368722bcb5d68259c7c147552c8928099\n"
    },
    {
      "commit": "2aaa4b5532d30c4e65d8892b556400bb61f9dc8c",
      "tree": "f4259c33171ec8efd945aeedab1e57feb7970f42",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 17:03:26 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 12:18:02 2015 +0100"
      },
      "message": "Optimizing: Tag more arena allocations.\n\nReplace GrowableArray with ArenaVector and tag arena\nallocations with new allocation types.\n\nAs part of this, make the register allocator a bit more\nefficient, doing bulk insert/erase. Some loops are now\nO(n) instead of O(n^2).\n\nChange-Id: Ifac0871ffb34b121cc0447801a2d07eefd308c14\n"
    },
    {
      "commit": "d0180f9027488b95a47b35efa9ced30aeb86ff06",
      "tree": "79e2be87d4bf561bf4a7e5bd43468626fd2eb9fe",
      "parents": [
        "0aeb7599bcd7073a5c849f413fb7a9611f5944eb"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 22 14:39:58 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 25 11:00:12 2015 +0100"
      },
      "message": "ART: SsaBuilder clean up\n\nAdds DCHECKs which verify assumptions about catch blocks. Uses HPhi::\nIsVRegEquivalentOf instead of a local function.\n\nChange-Id: I1b6db5ff2da5263d61261963308b6d65453a6d56\n"
    },
    {
      "commit": "d7558daaa86decf5a38f4f9bcd82267ab6e3e17f",
      "tree": "abfbc97a44e301f850b775eaa1d63aaa5efd1a0e",
      "parents": [
        "c7e0da5292e841f6a864dd010bd6e0b06e0ece73"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 22 13:04:14 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 25 10:40:08 2015 +0100"
      },
      "message": "ART: Preserve loop headers with try/catch\n\nAlgorithm for inserting HTryBoundary instructions would generate a\nnon-natural loop when a loop header block was covered by a TryItem.\nThis patch changes the approach to fix the issue.\n\nBug: 23895756\nChange-Id: I0e1ee6cf135cea326a96c97954907d202c9793cc\n"
    },
    {
      "commit": "e02fa201444f5e599f9375b7da330f42350b007e",
      "tree": "70e110479413774b8b84e7d5ab9e559708ee270a",
      "parents": [
        "51adce9465d73e31031dd54af52945fd6a08583b",
        "1f8695ca0c0d443a3d2754637ea5c9459147af55"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 17:13:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 24 17:13:16 2015 +0000"
      },
      "message": "Merge \"Optimizing: Rewrite HGraph::FindBackEdges().\""
    },
    {
      "commit": "51adce9465d73e31031dd54af52945fd6a08583b",
      "tree": "6e148a0bc41ac93fa46c04eded270a1aa4dafb6e",
      "parents": [
        "eae0927cb81437389dc96437e9f04903783282b4",
        "d76d1390b04a4db9ca1f74eb4873d926643d979b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 17:04:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 24 17:04:38 2015 +0000"
      },
      "message": "Merge \"Optimizing: Rewrite HGraph::ComputeDominanceInformation().\""
    },
    {
      "commit": "1f8695ca0c0d443a3d2754637ea5c9459147af55",
      "tree": "7a16895e4618be3889bff3945e07b1bfb406249c",
      "parents": [
        "d76d1390b04a4db9ca1f74eb4873d926643d979b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 13:11:31 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 18:02:04 2015 +0100"
      },
      "message": "Optimizing: Rewrite HGraph::FindBackEdges().\n\nReplace a recursive implementation with a loop using a work\nlist to avoid stack overflow for 702-LargeBranchOffset in\nhost debug build with -O0, 512KiB thread pool worker stack.\n\nChange-Id: Iaa91f006fa1099913aeffc9c764879bd004d56de\n"
    },
    {
      "commit": "d76d1390b04a4db9ca1f74eb4873d926643d979b",
      "tree": "d7b864ad95dc7bef401d0715aff1786089a5fb4d",
      "parents": [
        "b4fd73139aca48d7319221aeefe8bae93a98c56d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 23 16:07:14 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 18:01:01 2015 +0100"
      },
      "message": "Optimizing: Rewrite HGraph::ComputeDominanceInformation().\n\nReplace a recursive implementation with a loop using a work\nlist to avoid stack overflow for 702-LargeBranchOffset in\nhost debug build with -O0.\n\nBug: 24133462\nChange-Id: I444cc85733a9212403a071ea98b9ddfb52bfc402\n"
    },
    {
      "commit": "cd26feb7e9f9eb36af9453f3cdb55cfc4e6e5ec4",
      "tree": "39768556d365d9830119f03aae81de1e7ee3efd3",
      "parents": [
        "a6cfe5a3acb3af782322fde734bfcf0c524d6f99"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 23 17:50:50 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 23 18:36:11 2015 -0700"
      },
      "message": "Minor cleanup in range analysis.\n\n(1) replaced min/max macro as previously required.\n(2) removed some redundant code by merging min/max into one.\n\nChange-Id: I610879a06d550346bfac7e6e12ec0299ba226a37\n"
    },
    {
      "commit": "f475bee067ae0f6dd2a022c823c642265f97b065",
      "tree": "a411acce47e6b60ef87bc2f873604aad1d31c318",
      "parents": [
        "15ed726eae70a479f3179de68a643ef30c777cbb"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 16 12:50:25 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 23 16:20:53 2015 -0700"
      },
      "message": "Various improvements in finding induction variables.\n\nRationale:\n(1) Analyze multi-way phis (requested by Nicolas, Igor, and Mingyao).\n(2) Analyze trip count for restricted !\u003d loops\n(3) Added unit test for public API of range analysis (static methods\n    were already well-tested).\n\nChange-Id: I9285d22d3bb927f141204cc4697ea6fe5120994d\n"
    },
    {
      "commit": "aab5b758a2ec7b089cd4993fc77f8f94d979e61e",
      "tree": "7a3b4e43361f2295237b8c1eaa215f640e4bd9b0",
      "parents": [
        "25ec2c19b1e1e1e712b916da7da429877841d3e8"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 23 11:18:57 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 23 11:18:57 2015 -0700"
      },
      "message": "Replaced INT_MIN/MAX with modern-day limits.\n\nChange-Id: Ia6a0df1e8c6a543c338db0acd75437e1d19701e3\n"
    },
    {
      "commit": "33c0ed6cc26d07d4512a87a5d39d3412ee077020",
      "tree": "a1ac0376f982c7e3898ae13a2053a39a7aa155ce",
      "parents": [
        "4ef16199765253bfe0ae1f02daf3b4f392d9ff67",
        "fe57faa2e0349418dda38e77ef1c0ac29db75f4d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 22 23:05:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 23:05:00 2015 +0000"
      },
      "message": "Merge \"[optimizing] Add basic PackedSwitch support\""
    },
    {
      "commit": "4ef16199765253bfe0ae1f02daf3b4f392d9ff67",
      "tree": "26ffd518246c88fcc747f54e1b195269a22d27f3",
      "parents": [
        "782c5315644df989cd386c35ca57b97426011b8c",
        "5550c56da14fb324caba040b425f9a7e267fac4a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 23:04:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 23:04:55 2015 +0000"
      },
      "message": "Merge \"Clear allocator in image writer\""
    },
    {
      "commit": "5550c56da14fb324caba040b425f9a7e267fac4a",
      "tree": "33d743db6a791ac335e47e335698775db9261fca",
      "parents": [
        "b64d5832879f462ed146f0b012ea0bf62255b643"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 15:18:04 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 15:57:33 2015 -0700"
      },
      "message": "Clear allocator in image writer\n\nDoesn\u0027t fix any active bugs, just precautionary.\n\nChange-Id: I32a89e00b1d5964ad77fb53eded55263fea5df00\n"
    },
    {
      "commit": "b3365e0c4cda4f8f19284d2d418db158ab78d810",
      "tree": "d76a5ee48912d7fae2c5e612def63000c8284f8a",
      "parents": [
        "6a6916b378c413c2692782e901393607c47f0005"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 21 14:45:05 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 22 16:22:32 2015 +0000"
      },
      "message": "Various improvements in range analysis.\n\nRationale:\nUsing min/max values for \"unknowns\" is a bit wasteful,\nsince it eliminates two useful values. Replaced this\nwith additional boolean to make cases more accurate.\nAdded few cases to handle examples found in real-life.\n\nChange-Id: I211f8d9a28b1ae79abdb55fb4569716f21d8043b\n"
    },
    {
      "commit": "3039e381b79ac1ef01c420511f6629f639d40ab4",
      "tree": "afc8fb56069e007b28891d853dca4676b39da87f",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Wed Aug 26 07:54:08 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Sep 22 05:07:41 2015 -0700"
      },
      "message": "MIPS64: Implement miscellaneous bit manipulation intrinsics\n\n// java.lang.Double\n- doubleToRawLongBits(double)   - longBitsToDouble(long)\n\n// java.lang.Float\n- floatToRawIntBits(float)      - intBitsToFloat(int)\n\n// java.lang.Integer\n- numberOfLeadingZeros(int)     - reverseBytes(int)\n- reverse(int)\n\n// java.lang.Long\n- numberOfLeadingZeros(long)    - reverseBytes(long)\n- reverse(long)\n\n// java.lang.Short\n- reverseBytes(short)\n\nChange-Id: Ic8f8c4e7b584132e2282b4fd267453870fefbaaa\n"
    },
    {
      "commit": "3f4b39dec9ec6b8948ed18b9d65ba49db2465004",
      "tree": "fdf0c3bb7630ed0d5598365059fca4c04cccb1bf",
      "parents": [
        "99e4953d1e8253fd9414f37b4adb238b5a5e5b33",
        "abfcf18fa2fe723bd683edcb685ed5058d9c7cf3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:53:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 09:53:20 2015 +0000"
      },
      "message": "Merge \"Further refinements to checkcast/instanceof.\""
    },
    {
      "commit": "abfcf18fa2fe723bd683edcb685ed5058d9c7cf3",
      "tree": "98f8c9be7b4cb6bdcfd7ce7fc817f6a0750f30d5",
      "parents": [
        "47d89c7376090a3a4b8eb114e2c861afe27d01d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 21 18:41:21 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 10:38:46 2015 +0100"
      },
      "message": "Further refinements to checkcast/instanceof.\n\n- Use setcc when possible.\n- Do an exact check in the Object[] case before checking the\n  component type.\n\nChange-Id: Ic11c60643af9b41fe4ef2beb59dfe7769bef388f\n"
    },
    {
      "commit": "9edb5b1dda41563fd4afdde964f306b10b7c408f",
      "tree": "b1d761fe0a677ac4d39adae0fdccd67b73a7e4a1",
      "parents": [
        "9f3b8d38de615efef6d2536817f19ad2ccaa313a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 21 11:46:52 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 21 11:54:35 2015 -0700"
      },
      "message": "Revert \"ART: Skip image visitor in OatWriter for VerifyAtRuntime\"\n\nThis reverts commit d5ce6a80d6795ada9f47600287706135481cbb4b.\n\nThis has an unexpected side effect of not correctly including\nreference classes in the boot image. Needs more investigation.\n\nBug: 24103765\nBug: 24213543\nChange-Id: I2a7649f07ec73c59a8cb543f12b6496ac74f7a11\n"
    },
    {
      "commit": "bb3d505c9fd5ef4e161510e23d601c643feb4c3d",
      "tree": "eb54c557467f1401c4bd5729fa2b9e8ae91e8ffd",
      "parents": [
        "0d50412e4626b6183b72e7535da16a78500170ad"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 21 18:39:16 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 21 18:39:16 2015 +0100"
      },
      "message": "MIPS64: No call if ArraySet does not need a type check\n\nThe MIPS64 back-end did not use the ArraySet::NeedsTypeCheck query to\ndecide whether to invoke runtime or not like the other back-ends do.\n\nChange-Id: Ie4ef9ee3ca97947256cd59983a2c1c3e3af58c83\n"
    },
    {
      "commit": "9f0dece681c9531596ba2aab5a758b29d984fe36",
      "tree": "23d7eeed0b8b046a4a948c36065f6047506181e6",
      "parents": [
        "d0d11f20811f260453f6dfe2e26d7dbd6ed55f01"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 21 18:20:26 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 21 18:20:26 2015 +0100"
      },
      "message": "ART: Print short register names with MIPS64\n\nMIPS64 back-end would print register names as \"GpuRegister: X\" or\n\"FpuRegister: X\". Space separates Checker attributes and therefore\ncaused a test to fail. This patch changes it to print \"aX\" and \"fX\"\nrespectively.\n\nChange-Id: Iffae989f25563ef074dd7ef0b09cdfe438119cee\n"
    },
    {
      "commit": "d0d11f20811f260453f6dfe2e26d7dbd6ed55f01",
      "tree": "a87eeac15fd485bb14ea8ace2b2bc839c4c253be",
      "parents": [
        "7b87ff905ada1815d9b24843cf13b6ff54240e34",
        "b701315cb7c4dfe907c27c24c819b7a14141fd2e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 21 15:44:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 21 15:44:52 2015 +0000"
      },
      "message": "Merge \"ART: Fix bug in DeadPhiHandling\""
    },
    {
      "commit": "b701315cb7c4dfe907c27c24c819b7a14141fd2e",
      "tree": "0bb83a5d10c6de112a3b105335d19b06987fc423",
      "parents": [
        "9e30c0e177adabaaf94a66c91130a19a7632fc7c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 17 16:47:21 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 21 16:44:00 2015 +0100"
      },
      "message": "ART: Fix bug in DeadPhiHandling\n\nWhen reviving dead phis for --debuggable, the DeadPhiHandling algorithm\ncould produce two phis of the same type, which causes the SSAChecker\ngraph verifier to fail. This patch fixes the bug.\n\nNote that the code is currently not exercised because compilation is\ndelegated to Quick for --debuggable.\n\nBug: 24129675\nChange-Id: I26b6dcf3071b325cc7871b989a36c505279ae681\n"
    },
    {
      "commit": "7b87ff905ada1815d9b24843cf13b6ff54240e34",
      "tree": "63a071bad49006cf09cba94cf9cd0439e2fb83cc",
      "parents": [
        "47d89c7376090a3a4b8eb114e2c861afe27d01d0",
        "eead0711984ee20a3bba7c2e2415593a520e40b3"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 21 14:30:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 21 14:30:38 2015 +0000"
      },
      "message": "Merge \"ART: Optimize catch phi creation to save memory.\""
    },
    {
      "commit": "fe57faa2e0349418dda38e77ef1c0ac29db75f4d",
      "tree": "38ba7a406f8a86a1152bd6c9f2d0a6c677423211",
      "parents": [
        "9e30c0e177adabaaf94a66c91130a19a7632fc7c"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Sep 18 09:26:15 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Sep 21 07:23:45 2015 -0400"
      },
      "message": "[optimizing] Add basic PackedSwitch support\n\nAdd HPackedSwitch, and generate it from the builder.  Code generators\nconvert this to a series of compare/branch tests.  Better implementation\nin the code generators as a real jump table will follow as separate CLs.\n\nChange-Id: If14736fa4d62809b6ae95280148c55682e856911\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "cd9533565b7a3bbf2f7649d2d18df3402885b33d",
      "tree": "5f30468efb013555274dc5c656f3706e0e49b73a",
      "parents": [
        "7bfd7ee880785ef383f6434eb4eb35fcaac5ad5a",
        "85c7bab43d11180d552179c506c2ffdf34dd749c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 14:20:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 14:20:39 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Optimize code generation of check-cast and instance-of.\"\"\""
    },
    {
      "commit": "85c7bab43d11180d552179c506c2ffdf34dd749c",
      "tree": "337976b69d3b2a35cc9f12284cda03c8eb2a58c7",
      "parents": [
        "819a9c5638b6d6b579c89fe36df96acc1f378182"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 13:40:46 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 15:19:04 2015 +0100"
      },
      "message": "Revert \"Revert \"Optimize code generation of check-cast and instance-of.\"\"\n\nThis reverts commit 7537437c6a2f89249a48e30effcc27d4e7c5a04f.\n\nChange-Id: If759cb08646e47b62829bebc3c5b1e2f2969cf84\n"
    },
    {
      "commit": "eead0711984ee20a3bba7c2e2415593a520e40b3",
      "tree": "cb3b7e7330cb421005557c138d65ed43f0118473",
      "parents": [
        "819a9c5638b6d6b579c89fe36df96acc1f378182"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 18 14:58:57 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 18 15:00:28 2015 +0100"
      },
      "message": "ART: Optimize catch phi creation to save memory.\n\nCatch phis are eagerly created for all vregs and then removed as\nthrowing instructions with undefined locals are encountered. This can\nbe optimized since rougly one third of vregs is already undefined with\nthe first throwing instruction.\n\nChange-Id: Ia4e66f19ea03f9a129b4b64d4193d262fff45224\n"
    },
    {
      "commit": "7bfd7ee880785ef383f6434eb4eb35fcaac5ad5a",
      "tree": "42b5d6ea600edac939677ee8e021d91ac12da1c0",
      "parents": [
        "819a9c5638b6d6b579c89fe36df96acc1f378182",
        "46fe0650be6a69f63b54c0967194350c6a145557"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 13:51:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 13:51:30 2015 +0000"
      },
      "message": "Merge \"Fix x64\u0027s cmpw.\""
    },
    {
      "commit": "46fe0650be6a69f63b54c0967194350c6a145557",
      "tree": "951c08c8993ad0da72dd96a651617a00a00d102e",
      "parents": [
        "46aa836b632b5f01e8b4c8e5d8eed2199e8f35d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 14:36:49 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 14:47:38 2015 +0100"
      },
      "message": "Fix x64\u0027s cmpw.\n\nChange-Id: If700f2994990864c8b34aa52eb7a767153a1f917\n"
    },
    {
      "commit": "3eaa32f72b6abd807964134aad4c158946dc92e3",
      "tree": "003aa2bcd15499c7ebfdc5528b607e23f4f452f0",
      "parents": [
        "9632d5a5ed8295d63fc82fe418a3b776de4e4459"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 18 10:58:32 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 18 14:14:53 2015 +0100"
      },
      "message": "ART: Delete catch phis for undefined vregs.\n\nSSA builder assumed that (eagerly created) catch phis for undefined\nvregs must be dead and will be deleted by dead phi elimination. This,\nhowever, does not hold for --debuggable because the catch phis might\nbe revived for their environment uses. This patch modifies the builder\nto delete the phis itself.\n\nBug: 24054676\nChange-Id: Iaa5f2487ff1c38353b44cb89c709bbff1ecd73cc\n"
    },
    {
      "commit": "dc25b96abb09f292cf6e580e49d4cea4c968c106",
      "tree": "615aeea1e332de0e3cbc5dcda0da887553d82cc4",
      "parents": [
        "61b8bf03d93215e69a3c69ff27ebab238b03c81a",
        "8f8926a5c7ea332ab387c2b3ebc6fd378a5761bc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 18 00:10:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 00:10:09 2015 +0000"
      },
      "message": "Merge \"Implement StringGetCharsNoCheck intrinsic for X86\""
    },
    {
      "commit": "61b8bf03d93215e69a3c69ff27ebab238b03c81a",
      "tree": "c17dab4c750fa5b626aba51db5edc6a14d2df0de",
      "parents": [
        "2582e1ec39adc69bf29b60dba8c9d62b218fd741",
        "d5ce6a80d6795ada9f47600287706135481cbb4b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 23:26:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 23:26:15 2015 +0000"
      },
      "message": "Merge \"ART: Skip image visitor in OatWriter for VerifyAtRuntime\""
    },
    {
      "commit": "85b62f23fc6dfffe2ddd3ddfa74611666c9ff41d",
      "tree": "c916b01b1608558a7d8c9d100274c4c6b6706386",
      "parents": [
        "6766eae2d91e894b4ceab9f29cc983900e7bc0c7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 09 13:15:38 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 14:41:52 2015 -0700"
      },
      "message": "ART: Refactor intrinsics slow-paths\n\nRefactor slow paths so that there is a default implementation for\ncommon cases (only arm64 with vixl is special). Write a generic\nintrinsic slow-path that can be reused for the specific architectures.\nMove helper functions into CodeGenerator so that they are accessible.\n\nChange-Id: Ibd788dce432601c6a9f7e6f13eab31f28dcb8550\n"
    },
    {
      "commit": "d5ce6a80d6795ada9f47600287706135481cbb4b",
      "tree": "c11e0fb978f53bba035cca795f0626ec475e6458",
      "parents": [
        "930761fb7a4db70fbd5e75faa1fca07e5b494ae9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 17:12:55 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 14:02:50 2015 -0700"
      },
      "message": "ART: Skip image visitor in OatWriter for VerifyAtRuntime\n\nThere\u0027s no use running the visitor, and it will force-resolve all\nmethods. Avoid the overhead. Reduces boot image compile time in\nverify-at-runtime mode from 1.25s to 1s (on the host, in -j4 mode).\n\nBug: 24103765\nChange-Id: Icdc3be628fed0c9bda01cf5f24fe377f23c571a9\n"
    },
    {
      "commit": "6766eae2d91e894b4ceab9f29cc983900e7bc0c7",
      "tree": "4a3aac762e01c7933bcbffebb5277bde208e975b",
      "parents": [
        "930761fb7a4db70fbd5e75faa1fca07e5b494ae9",
        "7537437c6a2f89249a48e30effcc27d4e7c5a04f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 17:12:37 2015 +0000"
      },
      "message": "Merge \"Revert \"Optimize code generation of check-cast and instance-of.\"\""
    },
    {
      "commit": "7537437c6a2f89249a48e30effcc27d4e7c5a04f",
      "tree": "3f5f1d89f27d549cf40901f906ffab86bb05b520",
      "parents": [
        "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:19 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:19 2015 +0000"
      },
      "message": "Revert \"Optimize code generation of check-cast and instance-of.\"\n\nFailures with libcore tests.\n\nThis reverts commit 64acf303eaa2f32c0b1d8cfcbf044a822c5eec08.\n\nChange-Id: Ie6f323fcf5d86bae5c334c1352bb21f1bad60a88\n"
    },
    {
      "commit": "ca83cd09bde09dac73ed66f38dec4bc0bd6afb54",
      "tree": "a4d1a7267ae3009758b704d8aa0dd30133baea08",
      "parents": [
        "e3b223594e2e9d91903a62180c9660664052506b",
        "76c92ac73eeda2582caee39dd427ca035caf172b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:53:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 15:53:10 2015 +0000"
      },
      "message": "Merge \"Optimizing: Allow storing value objects in containers.\""
    },
    {
      "commit": "b7d8e8cf7063fdec1cce6ebd33e33804976bd978",
      "tree": "8d60856999139cf5b0b0f145f69c35a84a60716c",
      "parents": [
        "a201d5eeb0903408df925a1ed1686a55238a274c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:47:05 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 16:06:59 2015 +0100"
      },
      "message": "Optimizing: Do not use range-based loop when inserting elements.\n\nWhen we iterate over the elements of a container and we may\ninsert new elements into that container, it\u0027s wrong to use\nthe range-based loop.\n\nBug: 24133462\nChange-Id: Iee35fbcf88ed3bcd6155cbeba09bd256032a16be\n"
    },
    {
      "commit": "76c92ac73eeda2582caee39dd427ca035caf172b",
      "tree": "7d5baae363d7c380476ce8842ad1f43b59d48af5",
      "parents": [
        "a201d5eeb0903408df925a1ed1686a55238a274c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:39:16 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:45:39 2015 +0100"
      },
      "message": "Optimizing: Allow storing value objects in containers.\n\nChange-Id: Ic9c6b62e36706e571fd71c18d24d8e76ae2d5c7b\n"
    },
    {
      "commit": "a201d5eeb0903408df925a1ed1686a55238a274c",
      "tree": "d59b87e3c0bddb1d244199e9fbcc9301cb7dc52f",
      "parents": [
        "271d30dd847fb72d78d3178b8b3b225192c2d1c0",
        "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 14:18:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 14:18:03 2015 +0000"
      },
      "message": "Merge \"Optimize code generation of check-cast and instance-of.\""
    },
    {
      "commit": "271d30dd847fb72d78d3178b8b3b225192c2d1c0",
      "tree": "9ea1b98840ee6108408d6f11e0c670e39eb28136",
      "parents": [
        "017719a03c7c111a2069b5f85e3b9c81566c0902",
        "e6f49b47b6a4dc9c7684e4483757872cfc7ff1a1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 14:05:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 14:05:27 2015 +0000"
      },
      "message": "Merge \"Revert \"Support unresolved fields in optimizing\" breaks debuggable tests.\""
    },
    {
      "commit": "e6f49b47b6a4dc9c7684e4483757872cfc7ff1a1",
      "tree": "6a5f45136832f73138ced75fcd3c6110b74116ea",
      "parents": [
        "23a8e35481face09183a24b9d11e505597c75ebb"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 14:04:33 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 14:04:33 2015 +0000"
      },
      "message": "Revert \"Support unresolved fields in optimizing\"\nbreaks debuggable tests.\n\nThis reverts commit 23a8e35481face09183a24b9d11e505597c75ebb.\n\nChange-Id: I8e60b5c8f48525975f25d19e5e8066c1c94bd2e5\n"
    },
    {
      "commit": "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08",
      "tree": "1e9829deb0621b3cb9b275846c8d08381956fecf",
      "parents": [
        "017719a03c7c111a2069b5f85e3b9c81566c0902"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 14 22:20:29 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 14:45:39 2015 +0100"
      },
      "message": "Optimize code generation of check-cast and instance-of.\n\nOn x86/x64/arm/arm64. Improve code size of selected apks from 0.3% to 1%,\nand performance of DeltaBlue by 20%.\n\nChange-Id: Ib5799f7a53443cd880a121dd7f21932ae9f5c7aa\n"
    },
    {
      "commit": "017719a03c7c111a2069b5f85e3b9c81566c0902",
      "tree": "3f5f1d89f27d549cf40901f906ffab86bb05b520",
      "parents": [
        "9d567824e101428adfde58976a1307fbd6c0e247",
        "23a8e35481face09183a24b9d11e505597c75ebb"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 12:29:09 2015 +0000"
      },
      "message": "Merge \"Support unresolved fields in optimizing\""
    },
    {
      "commit": "9d567824e101428adfde58976a1307fbd6c0e247",
      "tree": "9ea1b98840ee6108408d6f11e0c670e39eb28136",
      "parents": [
        "b4b543d79b427fa96f0dd635014bd8754a798cc9",
        "175dc732c80e6f2afd83209348124df349290ba8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 12:29:02 2015 +0000"
      },
      "message": "Merge \"Support unresolved methods in Optimizing\""
    },
    {
      "commit": "b4b543d79b427fa96f0dd635014bd8754a798cc9",
      "tree": "5ddd79f4869533616ffd9dafd450766ee6491794",
      "parents": [
        "46aa836b632b5f01e8b4c8e5d8eed2199e8f35d0",
        "5d01db1aa7634a012109d43e6403451b76de1daa"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:28:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 12:28:50 2015 +0000"
      },
      "message": "Merge \"BuildInvoke refactor: extract String.init in its own code path\""
    },
    {
      "commit": "23a8e35481face09183a24b9d11e505597c75ebb",
      "tree": "bcaafb6ea001349acbf160c2cc89334fab4a38dc",
      "parents": [
        "175dc732c80e6f2afd83209348124df349290ba8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 08 19:56:31 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:59 2015 +0100"
      },
      "message": "Support unresolved fields in optimizing\n\nChange-Id: I9941fa5fcb6ef0a7a253c7a0b479a44a0210aad4\n"
    },
    {
      "commit": "175dc732c80e6f2afd83209348124df349290ba8",
      "tree": "6a5f45136832f73138ced75fcd3c6110b74116ea",
      "parents": [
        "5d01db1aa7634a012109d43e6403451b76de1daa"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Aug 25 15:42:32 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:51 2015 +0100"
      },
      "message": "Support unresolved methods in Optimizing\n\nChange-Id: If2da02b50d2fa668cd58f134a005f1752e7746b1\n"
    },
    {
      "commit": "5d01db1aa7634a012109d43e6403451b76de1daa",
      "tree": "9032845624b975d13d28cdddd920e6b66ddae2db",
      "parents": [
        "9b2c10ebac8e024412b4cc43e6511d724a0fd345"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Aug 25 15:02:42 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:26:28 2015 +0100"
      },
      "message": "BuildInvoke refactor: extract String.init in its own code path\n\nThis makes it clear that we special handle String init. Getting rid of\nall `if (is_string_init)` improves readability into what we actually do\nand expect for strings.\n\nChange-Id: I9b4fba4c3ea89e0003c0704335cbe80e874d0e15\n"
    },
    {
      "commit": "46aa836b632b5f01e8b4c8e5d8eed2199e8f35d0",
      "tree": "fd8a1588dd4aa00051973cf0c999c90857a8a96a",
      "parents": [
        "9eac83e1563fbf7423a3de9634e21d7b8e5f9a9a",
        "2d554795420be0be88bb4600ea81d1ec293217c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 20:51:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 20:51:55 2015 +0000"
      },
      "message": "Merge \"X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight\""
    },
    {
      "commit": "9eac83e1563fbf7423a3de9634e21d7b8e5f9a9a",
      "tree": "0b30cd4ca01f0d5fce5e81249febfb20e7fc342a",
      "parents": [
        "9b2c10ebac8e024412b4cc43e6511d724a0fd345",
        "740667a1c5fa0188bb676c569064deb2c47c0825"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 17:22:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 17:22:02 2015 +0000"
      },
      "message": "Merge \"ART: Skip compiler-driver compile loop for VerifyAtRuntime\""
    },
    {
      "commit": "740667a1c5fa0188bb676c569064deb2c47c0825",
      "tree": "bbfdc04e8f6a28ad8825f67dfabad6bc6094eeb3",
      "parents": [
        "1a1d77f7f8cdc892a59b1618b5bd8fea269354cb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 15 17:55:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 08:47:30 2015 -0700"
      },
      "message": "ART: Skip compiler-driver compile loop for VerifyAtRuntime\n\nWe don\u0027t compile (not even dex-to-dex) anyways, so skip iterating\nover all methods. Shows a ~10% improvement of boot image compile\ntime on Nexus 9. Shows a ~40% improvement for a common large app\non the same device. Most of the remaining time is unzipping dex\nfiles.\n\nBug: 24103765\nChange-Id: I00931fd062a0a2297d1c7b90794302cb664571cc\n"
    },
    {
      "commit": "71bf8090663d02869cafafdd530976f7f2a9db7f",
      "tree": "70f910498031be392dd1f851cf38fe68bdc3154c",
      "parents": [
        "4919c34ead9a10d6cbdaba9967952c344b32e5b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 15 15:33:14 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 16 16:41:01 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in SsaBuilder.\n\nReplace GrowableArray with ArenaVector in SsaBuilder and\ntag allocations with a new arena allocation type.\n\nChange-Id: I27312c51d7be9d2ad02a974cce93b365c65c5fc4\n"
    },
    {
      "commit": "831904f6fb678354bdf8e7736723a9d87a2cde31",
      "tree": "49fd12aaad3102b397803f8eebc99a866edbf111",
      "parents": [
        "fe157012b6d760c275d944ff83e8bea371c59b09",
        "87000a948524cba7538ccc5438f6a9ecbd4e347e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Sep 16 14:34:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 14:34:41 2015 +0000"
      },
      "message": "Merge \"Add option to append to the cfg dump.\""
    },
    {
      "commit": "fe157012b6d760c275d944ff83e8bea371c59b09",
      "tree": "a2b013dded6e25cab1d3ff5abf09c426904e142c",
      "parents": [
        "aef880c4b872ccf1a63a3c563cb056ae117fc9c8",
        "ecc4366670e12b4812ef1653f7c8d52234ca1b1f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Sep 16 14:33:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 14:33:16 2015 +0000"
      },
      "message": "Merge \"Add OptimizingCompilerStats to the CodeGenerator class.\""
    },
    {
      "commit": "8f8926a5c7ea332ab387c2b3ebc6fd378a5761bc",
      "tree": "dae52706de27cba64ddc37df824deb7739c46dfe",
      "parents": [
        "d226ad6acaf65a94133a3c537221ea5c7ac5b998"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Aug 17 11:39:06 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Sep 16 09:07:12 2015 -0400"
      },
      "message": "Implement StringGetCharsNoCheck intrinsic for X86\n\nGenerate inline code for String.GetChars internal no checking form for\nX86 and X86_64. Use REP MOVSW to copy the characters, rather than\nmemcpy as Quick does.\n\nChange-Id: Ia67aff248461b394f97c48053f216880381945ff\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "2d554795420be0be88bb4600ea81d1ec293217c4",
      "tree": "506926bb71b919e46838996d37362cf0373ffd3a",
      "parents": [
        "d226ad6acaf65a94133a3c537221ea5c7ac5b998"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Sep 15 21:45:18 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Sep 16 08:41:40 2015 -0400"
      },
      "message": "X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight\n\nImplement {Long,Integer}NumberOfTrailingZeros and\n{Long,Integer}Rotate{Left,Right}.\n\nX86 32 bit mode doesn\u0027t implement the LongRotate{Left,Right} intrinsics\nat this time.\n\nChange-Id: Ie25c1dca15ee2d17fbdf0c15c758bde431034d35\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "fa6b93c4b69e6d7ddfa2a4ed0aff01b0608c5a3a",
      "tree": "3528c88e104dac8e58ae5370ab066b8b1dd0218f",
      "parents": [
        "e295be4a95d7861f6ec179edf6565f58cad747cc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 15 10:15:55 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 16 13:21:33 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in HGraph.\n\nReplace GrowableArray with ArenaVector in HGraph and related\nclasses HEnvironment, HLoopInformation, HInvoke and HPhi,\nand tag allocations with new arena allocation types.\n\nChange-Id: I3d79897af405b9a1a5b98bfc372e70fe0b3bc40d\n"
    },
    {
      "commit": "e295be4a95d7861f6ec179edf6565f58cad747cc",
      "tree": "a994a7f270e8dd81e3bb1a704c4ee5f6ea98aa7c",
      "parents": [
        "9ea4a93674b42f213334bb83d1982db11091b96a",
        "2fadd7bb67abf5bc3c5370f9508cfb5959d6e536"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 04:21:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 04:21:39 2015 +0000"
      },
      "message": "Merge \"Additional MIPS64 instructions needed by intrinsics code.\""
    },
    {
      "commit": "9ea4a93674b42f213334bb83d1982db11091b96a",
      "tree": "bdee6695631b3b15def83d7a9e66f7daa0c787c8",
      "parents": [
        "7fa1a81d9b1ea11f0e9917732b22c2fb6b635308",
        "22af3bee34d0ab1a4bd186c71ccab00366882259"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 16 04:13:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 04:13:03 2015 +0000"
      },
      "message": "Merge \"Use induction variable range analysis in BCE (statically).\""
    },
    {
      "commit": "7fa1a81d9b1ea11f0e9917732b22c2fb6b635308",
      "tree": "5655d348f8609cb07d3087864c43e826fa66f90c",
      "parents": [
        "a68922706fb5ee79e92723f18420edfd8650a3c6",
        "0c9497da9485ba688c592e5f452b7b1305a519c0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 03:41:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 03:41:47 2015 +0000"
      },
      "message": "Merge \"X86: Use short forward jumps if possible\""
    },
    {
      "commit": "1a1d77f7f8cdc892a59b1618b5bd8fea269354cb",
      "tree": "8b5085b69d1c3a7083a11a60892fd2ced9d75cb3",
      "parents": [
        "7ac8b34c09274ee79bf9d966f352d93248337b23",
        "6bc53a9d884265e0a0b14c4383bef0aa47824e64"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 02:58:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 02:58:04 2015 +0000"
      },
      "message": "Merge \"Support X86 intrinsic System.arraycopy char\""
    },
    {
      "commit": "bcee092d7b0cbb7181d428115ad98d25ce844061",
      "tree": "dab00e7f7dc19b002948020a8c2cbde665203c0e",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Sep 15 21:45:01 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Sep 15 21:45:01 2015 -0400"
      },
      "message": "Add X86 bsf and rotate instructions\n\nThese are for use in new intrinsics.  Bsf (Bit Scan Forward) is used in\n{Long,Integer}NumberOfTrailingZeros and the rotates are used in\n{Long,Integer}Rotate{Left,Right}.\n\nChange-Id: Icb599d7e1eec4e4ea9e5b4f0b1654c7b8d4de678\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "22af3bee34d0ab1a4bd186c71ccab00366882259",
      "tree": "793f358d498142a2e60d7d5131c347b0fd668cbd",
      "parents": [
        "fe9a1b05ea5a21b6d9a2e9e5081f5e80ff8a1ba2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 10 12:50:58 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 15 17:03:13 2015 -0700"
      },
      "message": "Use induction variable range analysis in BCE (statically).\n\nRationale: Finally! After lots of very large CLs, now a small CL\n           that uses the new induction variable analysis in BCE\n           (statically, using this dynamically with de-opt is TBD).\n           Despite its relative small size, be aware though,\n           since the CL introduces a new phase to the compiler.\n\nChange-Id: If5555a173fd5d55d147c63138ef51fc296fa1414\n"
    },
    {
      "commit": "87000a948524cba7538ccc5438f6a9ecbd4e347e",
      "tree": "3cf06ec6a939c31540ed5d7028aa0c0838329cc2",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Aug 24 15:34:44 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 15 15:02:18 2015 +0100"
      },
      "message": "Add option to append to the cfg dump.\n\nThis makes life easier when verifying tests with unresolved classes\n(which call dex2oat at rutime).\n\nChange-Id: I7985b2b7c0f343462e03a26b8395297c810b1d95\n"
    },
    {
      "commit": "b505997b2176bd29a108cb6c33d06d4ef29ba001",
      "tree": "05316a1837f77729f87b4fe25bfa7eb2b9e9549c",
      "parents": [
        "5c1a3374adff0d5c6c8e2248fffd7549eb3a6bae",
        "77a48ae01bbc5b05ca009cf09e2fcb53e4c8ff23"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 12:34:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 12:34:35 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ART: Register allocation and runtime support for try/catch\"\"\""
    }
  ],
  "next": "77a48ae01bbc5b05ca009cf09e2fcb53e4c8ff23"
}
