)]}'
{
  "log": [
    {
      "commit": "77520bca97ec44e3758510cebd0f20e3bb4584ea",
      "tree": "2e3be6fdc182e5cf5ae390019457af5e9c1ed242",
      "parents": [
        "4d2c611bf17ff309abfa152e56c0b98a21ec8787"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 12 18:45:46 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 21 14:26:35 2015 +0000"
      },
      "message": "Record implicit null checks at the actual invoke time.\n\nImplicitNullChecks are recorded only for instructions directly (see NB\nbelow) preceeded by NullChecks in the graph. This way we avoid recording\nredundant safepoints and minimize the code size increase.\n\nNB: ParallalelMoves might be inserted by the register allocator between\nthe NullChecks and their uses. These modify the environment and the\ncorrect action would be to reverse their modification. This will be\naddressed in a follow-up CL.\n\nChange-Id: Ie50006e5a4bd22932dcf11348f5a655d253cd898\n"
    },
    {
      "commit": "4d2c611bf17ff309abfa152e56c0b98a21ec8787",
      "tree": "dea746cb0f03b7d7815eac972ff4d0e4f0c39515",
      "parents": [
        "1272d4272676005acfcbde25b4eddca64463612b",
        "c399fdc442db82dfda66e6c25518872ab0f1d24f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 12:43:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 21 12:43:11 2015 +0000"
      },
      "message": "Merge \"Revert \"Fully support pairs in the register allocator.\"\""
    },
    {
      "commit": "c399fdc442db82dfda66e6c25518872ab0f1d24f",
      "tree": "6f0841ad5e8e80b09e34e084ae8eac336bce73a2",
      "parents": [
        "41aedbb684ccef76ff8373f39aba606ce4cb3194"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 12:42:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 12:42:57 2015 +0000"
      },
      "message": "Revert \"Fully support pairs in the register allocator.\"\n\nLibcore tests fail.\n\nThis reverts commit 41aedbb684ccef76ff8373f39aba606ce4cb3194.\n\nChange-Id: I2572f120d4bbaeb7a4d4cbfd47ab00c9ea39ac6c\n"
    },
    {
      "commit": "1272d4272676005acfcbde25b4eddca64463612b",
      "tree": "f0209185c0877db98ae8efe089228c1fa0d48f71",
      "parents": [
        "86657befce55a928c39feebfff9bdf3014d73fba",
        "41aedbb684ccef76ff8373f39aba606ce4cb3194"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 11:28:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 21 11:28:53 2015 +0000"
      },
      "message": "Merge \"Fully support pairs in the register allocator.\""
    },
    {
      "commit": "41aedbb684ccef76ff8373f39aba606ce4cb3194",
      "tree": "94929237a0fe9b24dda7409d9433f07e82af4461",
      "parents": [
        "97c89e4c081dcf4bacbde70b6609e366c9da417e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 10:49:16 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 11:27:57 2015 +0000"
      },
      "message": "Fully support pairs in the register allocator.\n\nEnabled on ARM for longs and doubles.\n\nChange-Id: Id8792d08bd7ca9fb049c5db8a40ae694bafc2d8b\n"
    },
    {
      "commit": "24f2dfae084b2382c053f5d688fd6bb26cb8a328",
      "tree": "74cfabf632f13c04729081051e34f68d002c91d4",
      "parents": [
        "93edf73a5fecd526920fbd870068fa592376ac8a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Jan 14 19:51:45 2015 -0500"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 21 11:00:55 2015 +0000"
      },
      "message": "[optimizing compiler] Implement inline x86 FP \u0027%\u0027\n\nReplace the calls to fmod/fmodf by inline code as is done in the Quick\ncompiler.\n\nRemove the quick fmod/fmodf runtime entries, as they are no longer in\nuse.\n\n64 bit code generator Move() routine needed to be enhanced to handle\nconstants, as Location::Any() allows them to be generated.\n\nChange-Id: I6b6a42f6faeed4b0b3c940453e487daf5b25d184\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "93edf73a5fecd526920fbd870068fa592376ac8a",
      "tree": "c24e0223e6ff0d1ec2eefeb1d863c1c32ca5f65c",
      "parents": [
        "97d9f286971a4c1eec70e08f9f18f990d21780d5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 20 20:14:07 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 20 20:14:07 2015 +0000"
      },
      "message": "Use CompilerOptions for implicit stack overflow checks\n\nChange-Id: I52744382a7e3d2c6c11a43e027d87bf43ec4e62b\n"
    },
    {
      "commit": "d426a8f36d958a251d14e263c9c9e928848df90f",
      "tree": "35a9071020a90ca8176d30d2ce7b44a2812aa889",
      "parents": [
        "e7fd3e3a8e7f10048b7ea558cc525331c97bbefa"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 20 12:54:52 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 20 12:54:52 2015 +0000"
      },
      "message": "Fix register allocator test.\n\nChange-Id: I87481757d6f59bf2d6127571f58f11b5372b3a06\n"
    },
    {
      "commit": "e7fd3e3a8e7f10048b7ea558cc525331c97bbefa",
      "tree": "a5d1a942460fe34c82f3dce7846d004b90ebd08d",
      "parents": [
        "606a81aab3b9289d37d828375793020b93718c6a",
        "cd6dffedf1bd8e6dfb3fb0c933551f9a90f7de3f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 20 12:28:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 20 12:28:11 2015 +0000"
      },
      "message": "Merge \"Add implicit null checks for the optimizing compiler\""
    },
    {
      "commit": "606a81aab3b9289d37d828375793020b93718c6a",
      "tree": "86eb3dc8741239a4519820e567fbfe6a2bd8b663",
      "parents": [
        "3889897a1f040f4da006ea4248c36a3b6c132b96",
        "aecbd26b29c6122d1eacfd67e0bd5aa26b96eebb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 20 10:52:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 20 10:52:51 2015 +0000"
      },
      "message": "Merge \"Ensure HCondition nodes on objects are either HEqual or HNotEqual\""
    },
    {
      "commit": "a943a75a890f43ff9517e13bb6c16de8bfa35d90",
      "tree": "431826ff4bd27be57027d3ca2619ddeff1cf7b06",
      "parents": [
        "452773fec59e033da4bb258a64bd65bd2ae658e8",
        "4846d13744f07e82571d2882acc823d811ec942d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 20 08:54:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 20 08:54:10 2015 +0000"
      },
      "message": "Merge \"ART: Invoke Checker from run-test scripts\""
    },
    {
      "commit": "3747b48f7b09a9bc836397ceaacb9de0940db6fd",
      "tree": "8d8d5a096504344ab2d336641ed272517dcbc42c",
      "parents": [
        "e210661a68e933cc6982368c24cca165eb61962f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 19 17:17:16 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 19 17:17:16 2015 +0000"
      },
      "message": "Address review comments.\n\nComments were from:\nhttps://android-review.googlesource.com/#/c/121992.\n\nChange-Id: I8c59b30a356d606f12c50d0c8db916295a5c9e13\n"
    },
    {
      "commit": "4846d13744f07e82571d2882acc823d811ec942d",
      "tree": "8076f0fc13637500f1b9574fab1d44b32eeedf84",
      "parents": [
        "1235c46dc5d5a329a9074e2168219a3e85ad6d48"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 15 19:07:08 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 19 15:12:49 2015 +0000"
      },
      "message": "ART: Invoke Checker from run-test scripts\n\nThis patch moves Checker-based tests of the optimizing compiler into\nthe art/test directory and modifies the run-test scripts to dump\nthe CFG during compilation and to verify the graph using Checker as\npart of the \"running\" stage. Outputs generated by running the test\nand running Checker are concatenated and compared with expected.txt.\n\nChecker is invoked only if the test\u0027s name name matches the format\n\"\u003cnumber\u003e-checker-*\" and it\u0027s currently enabled only for optimizing +\nhost configs. The tests are still invoked on other configs but\nwithout Checker.\n\nChange-Id: Ib24da808cd4bca66f07e0dbeb913a418065f2859\n"
    },
    {
      "commit": "aecbd26b29c6122d1eacfd67e0bd5aa26b96eebb",
      "tree": "22ea87d86ca7a095c0af2b6a34b62492fd25abf3",
      "parents": [
        "d599b39357cb0d3ab8b719357c86ffe609bb3fcb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 19 12:44:01 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 19 12:44:01 2015 +0000"
      },
      "message": "Ensure HCondition nodes on objects are either HEqual or HNotEqual\n\nChange-Id: I47efae209b7ab931d7d314e5b37582a7e21085d5\n"
    },
    {
      "commit": "e45ff20fa341f88cc1c4a87089e0731914ccf7d0",
      "tree": "0a4814cdf793b783a2955075110817465eb9a5fd",
      "parents": [
        "1235c46dc5d5a329a9074e2168219a3e85ad6d48",
        "9ee66183d8e046ea661f642ba884626f16b46e06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 19 09:34:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 19 09:34:42 2015 +0000"
      },
      "message": "Merge \"Constant fold after inlining.\""
    },
    {
      "commit": "9ee66183d8e046ea661f642ba884626f16b46e06",
      "tree": "d400690c920b0857dafd06efd3db6336c9eeba5b",
      "parents": [
        "36740379b9b1c81b7eb06ea9c9df411d0a9a765e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 12:35:40 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 19 09:29:40 2015 +0000"
      },
      "message": "Constant fold after inlining.\n\n- Inlining opens up new opportunities for constant folding.\n- Fix a bug in constant folder where the result type was not\n  correctly set for the folding of a HCompare.\n- Improve graph checker\u0027s coverage.\n\nChange-Id: I0943bf8ff65505c4addc4a555a526b55e00b5268\n"
    },
    {
      "commit": "a8eef82f394f31272610d7ed80328ee465fa1a0f",
      "tree": "363103fcf07b2b4e6c944b02984d3f345b2949f1",
      "parents": [
        "c2c7a33a25169cdf19a0dcf45ddb3747055c7296"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 11:14:27 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 19 09:10:12 2015 +0000"
      },
      "message": "Do not use STMP, it conflicts with the calling convention.\n\nHard-float calling convention uses S14 and D7 for argument passing,\nso we cannot use them.\n\nChange-Id: I77a2d8c875677640204baebc24355051aa4175fd\n"
    },
    {
      "commit": "cd6dffedf1bd8e6dfb3fb0c933551f9a90f7de3f",
      "tree": "0d83e9fdf65bded684d6e836078f253e63b7e11f",
      "parents": [
        "12c03ac7575db242a6f35739bb459e8277115da4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 08 17:35:35 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jan 16 17:27:03 2015 +0000"
      },
      "message": "Add implicit null checks for the optimizing compiler\n\n- for backends: arm, arm64, x86, x86_64\n- fixed parameter passing for CodeGenerator\n- 003-omnibus-opcodes test verifies that NullPointerExceptions work as\nexpected\n\nChange-Id: I1b302acd353342504716c9169a80706cf3aba2c8\n"
    },
    {
      "commit": "42d1f5f006c8bdbcbf855c53036cd50f9c69753e",
      "tree": "fb885c3df20797b55f19e5ceccf72dac1c13017b",
      "parents": [
        "36740379b9b1c81b7eb06ea9c9df411d0a9a765e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 09:14:18 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 11:22:08 2015 +0000"
      },
      "message": "Do not use register pair in a parallel move.\n\nThe ParallelMoveResolver does not work with pairs. Instead,\ndecompose the pair into two individual moves.\n\nChange-Id: Ie9d3f0b078cef8dc20640c98b20bb20cc4971a7f\n"
    },
    {
      "commit": "6450d14f4f3da6fcb519a0bb948acc8cd274d5a3",
      "tree": "3b56f57b40ae035fc73629a347d15d083a0a0b20",
      "parents": [
        "6a5f5b25b3866966175859bc20216c5519d8b029"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 09:04:49 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 09:08:07 2015 +0000"
      },
      "message": "Remove test that is now invalid.\n\nIt does not make sense to have moves to the same destination\nwithin a single parallel move. There is now an explicit\nDCHECK to prevent these situations.\n\nChange-Id: I3a33e748579ecb53b95476e77a37164d2f145f5a\n"
    },
    {
      "commit": "6a5f5b25b3866966175859bc20216c5519d8b029",
      "tree": "b8d60df229a56e3931eaa0486f4451fe9818786d",
      "parents": [
        "ddcaf45db2874ffc37d2a8820e815db19a54c517",
        "dd8f887e81b894bc8075d8bacdb223747b6a8018"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 08:41:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 16 08:41:31 2015 +0000"
      },
      "message": "Merge \"Fix a bug in the register allocator.\""
    },
    {
      "commit": "dd8f887e81b894bc8075d8bacdb223747b6a8018",
      "tree": "2358f04f707177fc5b1a8463973ddd5f295d6e72",
      "parents": [
        "63991dd7c9bd68f23121e420c005628d7307cba3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 15 15:37:37 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 16 08:37:59 2015 +0000"
      },
      "message": "Fix a bug in the register allocator.\n\nWhen allocating a register blocked by existing intervals,\nwe need to split inactive intervals at the end of their\nlifetime hole, and not at the next intersection. Otherwise,\nthe allocation for following intervals will not see\nthat a register is being used by the split interval.\n\nChange-Id: I40cc79dde541c07392a7cf4c6f0b291dd1ce1819\n"
    },
    {
      "commit": "71fb52fee246b7d511f520febbd73dc7a9bbca79",
      "tree": "444d91e910433aaf887bbdada28dfaa3160bebc2",
      "parents": [
        "420457e6040184a6e1639a4c84fcc8e237bd8a3d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 29 17:43:08 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 10:21:11 2015 -0800"
      },
      "message": "ART: Optimizing compiler intrinsics\n\nAdd intrinsics infrastructure to the optimizing compiler.\n\nAdd almost all intrinsics supported by Quick to the x86-64 backend.\nFurther intrinsics require more assembler support.\n\nChange-Id: I48de9b44c82886bb298d16e74e12a9506b8e8807\n"
    },
    {
      "commit": "c507c7f8f905f77b039e58441b2e7da20fa65342",
      "tree": "98411281496e2af2f3b001881bec8f11782131cd",
      "parents": [
        "f80dfb498451dc59e8f3375e6cf617055d3e76d1",
        "f85a9ca9859ad843dc03d3a2b600afbaf2e9bbdd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 15 16:58:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 15 16:58:14 2015 +0000"
      },
      "message": "Merge \"[optimizing compiler] Compute live spill size\""
    },
    {
      "commit": "f85a9ca9859ad843dc03d3a2b600afbaf2e9bbdd",
      "tree": "a802042fa7a3a8cb820916d558e630596daaa9b4",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jan 13 09:20:58 2015 -0500"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Jan 15 11:21:37 2015 -0500"
      },
      "message": "[optimizing compiler] Compute live spill size\n\nThe current stack frame calculation assumes that each live register to\nbe saved/restored has the word size of the machine.  This fails for X86,\nwhere a double in an XMM register takes up 8 bytes.  Change the\ncalculation to keep track of the number of core registers and number of\nfp registers to handle this distinction.\n\nThis is slightly pessimal, as the registers may not be active at the\nsame time, but the only way to handle this would be to allocate both\nclasses of registers simultaneously, or remember all the active\nintervals, matching them up and compute the size of each safepoint\ninterval.\n\nChange-Id: If7860aa319b625c214775347728cdf49a56946eb\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "1c1d40ab7fd856eac52e1a3be7ce60da3fc21fb5",
      "tree": "72df746c7d012f559e898707f7a039c034473d8d",
      "parents": [
        "cbabd3cba33662b296df7c1d392bdd35b3c978ad",
        "866c03125a3fcd74c9fff04da87865f5eb1767d9"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 15 00:02:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 15 00:02:31 2015 +0000"
      },
      "message": "Merge \"ART: dex2oat flag for HGraphVisualizer dump file\""
    },
    {
      "commit": "c5573c29b7d7af0815e0e7b0ae241aafb52817a5",
      "tree": "0fe7c47ad364e4b9527b6beaeec0ee218471da0a",
      "parents": [
        "ea1c64dba97cb367e6594332f2e542bfcf30e295",
        "48c310c431b110f6ab54907da20c4fa39a8f76b8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 14:49:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 14 14:49:39 2015 +0000"
      },
      "message": "Merge \"Remove constant moves after emitting them in parallel resolver.\""
    },
    {
      "commit": "48c310c431b110f6ab54907da20c4fa39a8f76b8",
      "tree": "3f8e75544539544feda353a1f225145e5ee41fa0",
      "parents": [
        "c40a4350daac81ddbfc5f6ceab934f2180dc4ec6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 10:45:05 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 14:45:40 2015 +0000"
      },
      "message": "Remove constant moves after emitting them in parallel resolver.\n\nThis fixes the case where a constant move requires a scratch\nregister. Note that there is no backend that needs this for now,\nbut X86 might with the move to hard float.\n\nChange-Id: I37f6b8961b48f2cf6fbc0cd281e70d58466d018e\n"
    },
    {
      "commit": "c208b8776eac5ab2d656eda1c5ede90d2cc795a2",
      "tree": "a2359060c57423bb35da15408af2fa7e628714bf",
      "parents": [
        "c40a4350daac81ddbfc5f6ceab934f2180dc4ec6",
        "53f1262773516a247e7bfad50de3cd94a4dcf4df"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 10:31:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 14 10:31:29 2015 +0000"
      },
      "message": "Merge \"Implement ParallelMoveResolver::Swap for doubles on arm.\""
    },
    {
      "commit": "53f1262773516a247e7bfad50de3cd94a4dcf4df",
      "tree": "acf2c3095a0af9457a42a82c0fbdf43bcc2cd3e7",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 13 18:04:41 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 10:30:21 2015 +0000"
      },
      "message": "Implement ParallelMoveResolver::Swap for doubles on arm.\n\nCurrently reserve a global register DTMP for these operations.\n\nChange-Id: Ie88b4696af51834492fd062082335bc2e1137be2\n"
    },
    {
      "commit": "af2c65c38449dfeb21b572887110c5c9a0008ca1",
      "tree": "fe90654338f6768cfc6475c3ee2d87c01ec1f703",
      "parents": [
        "7774edf4c19734922669fa888923e8c7d7385ea3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 09:40:32 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 14 09:40:32 2015 +0000"
      },
      "message": "Remove whitespace.\n\nChange-Id: I82f51cff87765a3aeeb861d2ae64978f2e762c73\n"
    },
    {
      "commit": "866c03125a3fcd74c9fff04da87865f5eb1767d9",
      "tree": "497bafc21358961524a6ef9bb045d522b91d8d27",
      "parents": [
        "07ab4ec97221d882322a1ce064557202150f44ea"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 21:21:31 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 21:21:31 2015 +0000"
      },
      "message": "ART: dex2oat flag for HGraphVisualizer dump file\n\nThis patch adds a new \u0027--dump-cfg\u003d\u003cfile\u003e\u0027 flag to dex2oat which\nspecifies the file that HGraphVisualizer will store its output into.\nUntil now the graph was dumped to \u0027art.cfg\u0027 in the current working\ndirectory. To make Checker work with run-test, the output directory\nneeds to be customizable.\n\nChange-Id: I4a940f7708b88deea5a0e51d13aed13e52199349\n"
    },
    {
      "commit": "6e73272f093e9dc045c08baae57eebb5dcd6e044",
      "tree": "bffd41529429f9b654ab6824c368191dd5e97719",
      "parents": [
        "54953dfdcb3bb8896d8af2d20adef84fb740ce77"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 19:11:14 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 19:11:14 2015 +0000"
      },
      "message": "Revert \"ART: dex2oat flag for HGraphVisualizer dump file\"\n\nBreaks compilation of tests.\n\nThis reverts commit 54953dfdcb3bb8896d8af2d20adef84fb740ce77.\n\nChange-Id: I868b876c3130be61f1169c5fccdffc0368bee11e\n"
    },
    {
      "commit": "69c15d340e7e76821bbc5d4494d4cef383774dee",
      "tree": "afea69c321ffa55e0af63a83be62eedd2b378d2f",
      "parents": [
        "603104b5b5c3759b0bc2733bda2f972686a775a3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 13 11:42:13 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 13 18:11:24 2015 +0000"
      },
      "message": "Skip r1 on arm if first parameter is a long.\n\nChange-Id: I16d927ee0a0b55031ade4c92c0095fd74e18ed5b\n"
    },
    {
      "commit": "54953dfdcb3bb8896d8af2d20adef84fb740ce77",
      "tree": "5ffa9718d1f20c27fceaff95a1da0558d5d20321",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 18:07:00 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 13 18:07:00 2015 +0000"
      },
      "message": "ART: dex2oat flag for HGraphVisualizer dump file\n\nThis patch adds a new flag to dex2oat which allows to specify the\nname of the file that HGraphVisualizer will store its output into.\nUntil now the graph was dumped to \"art.cfg\" in the current working\ndirectory. To make Checker work with run-test, the output directory\nneeds to be customizable.\n\nChange-Id: I395c518b987e594e89e5e80f202a96befa41ac20\n"
    },
    {
      "commit": "425f239c291d435f519a1cf4bdd9ccc9a2c0c070",
      "tree": "6c4ec2cef8fd0caf45712191bcbc5d72ed0d318b",
      "parents": [
        "11adb76fbc2dc3d8cbb6665945ff5d6733e2a8e6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 08 14:52:29 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 12 14:08:55 2015 +0000"
      },
      "message": "Fix handling of long argument spanning register/memory.\n\nComment in arm_lir.h says:\n * If a 64-bit argument would span the register/memory argument\n * boundary, it will instead be fully passed in the frame.\n\nThis change implements such logic for all platforms. We still need\nto pass the low part in register as well because I haven\u0027t ported\nthe jni compilers (x86 and mips) to it.\n\nOnce the jni compilers are updated, we can remove the register\nassignment.\n\nNote that this greatly simplifies optimizing\u0027s register allocator\nby not having to understand a long spanning register and memory.\n\nChange-Id: I59706ca5d47269fc46e5489ac99bd6576e87e7f3\n"
    },
    {
      "commit": "11adb76fbc2dc3d8cbb6665945ff5d6733e2a8e6",
      "tree": "f1a5cb2ce14e1592dd557c28bd1e1ba3c5ea071e",
      "parents": [
        "f3401f7a21c99ebec7355de27ab7bc0840f28726",
        "12df9ebf72255544b0147c81b1dca6644a29764e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 12 10:46:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 12 10:46:18 2015 +0000"
      },
      "message": "Merge \"Move code around in OptimizingCompiler::Compile to reduce stack space.\""
    },
    {
      "commit": "12df9ebf72255544b0147c81b1dca6644a29764e",
      "tree": "93a47865d0c93922cfc036fba1f2490b64549912",
      "parents": [
        "4270e74152d8a7cd979ab5a92fe2a8f84adb8a42"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 09 14:53:50 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 12 08:49:25 2015 +0000"
      },
      "message": "Move code around in OptimizingCompiler::Compile to reduce stack space.\n\nAlso fix an (intentional) memory leak, by allocating the CodeGenerator\non the heap instead of the arena: they construct an Assembler object\nthat requires destruction.\n\nBUG:18787334\n\nChange-Id: I8cf0667cb70ce5b14d4ac334bd4487a562635f1b\n"
    },
    {
      "commit": "2b32f6ad341a769020dbf3ab6d479bace695d0cd",
      "tree": "50f7fc63e34efcd731855c6bcee3bca368d88a32",
      "parents": [
        "7899cc3c1216b718c4014000a980206ad51159d2",
        "bdcedd301a0a417ca538b7bf7e684c60cb1dbda3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 09 08:50:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 09 08:50:32 2015 +0000"
      },
      "message": "Merge \"Don\u0027t overwrite a register input.\""
    },
    {
      "commit": "bdcedd301a0a417ca538b7bf7e684c60cb1dbda3",
      "tree": "fe557008730c8eb19d27ccf7895899e098f4dd8e",
      "parents": [
        "c9025c185462c9b8d61725a7399ccf2d8a433a6d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 09 08:48:29 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 09 08:48:29 2015 +0000"
      },
      "message": "Don\u0027t overwrite a register input.\n\n`addr` is a register input, which can survive the current instruction,\ntherefore we can\u0027t overwrite it.\n\nChange-Id: I6eaa60e5f91c2b7b9b31673457d2a0d63474e587\n"
    },
    {
      "commit": "f455009879eac5d9c337dfd67185da173c7c57ec",
      "tree": "3893acf775f1418413b50791a564752879e8eab7",
      "parents": [
        "c9025c185462c9b8d61725a7399ccf2d8a433a6d",
        "be0cc08fb4faed1ab69361fcd030af65f9020393"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 08 22:20:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 08 22:20:26 2015 +0000"
      },
      "message": "Merge \"ART: Refactored regex code in Checker\""
    },
    {
      "commit": "be0cc08fb4faed1ab69361fcd030af65f9020393",
      "tree": "493c048e498435afea9de491b5a2ae0c5876a4eb",
      "parents": [
        "7e1a34386368d2bb3dc89bf5aa0519cafc326095"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Dec 31 11:49:30 2014 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 08 21:57:34 2015 +0000"
      },
      "message": "ART: Refactored regex code in Checker\n\nThis patch refactors how Checker constructs regular expressions which\nit uses to parse tests and verify compiler output. It also replaces\nall occurrences of the \u0027[0-9]+\u0027 ID-matching expression with the \u0027\\d+\u0027\nshorthand.\n\nChange-Id: I5f854a25707e44ed2fa1673ff084990e8f43e4a2\n"
    },
    {
      "commit": "c9025c185462c9b8d61725a7399ccf2d8a433a6d",
      "tree": "86a0e24b8b27fdb64ad65799e82a564882853e0b",
      "parents": [
        "ca7d89d09294254f16db170a53b0f8dfbf0213ac",
        "36cf095e615059608b1d0b2fa81953e138bd1174"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 08 21:50:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 08 21:50:02 2015 +0000"
      },
      "message": "Merge \"ART: Fixed formatting in HGraphVisualizerPrinter\""
    },
    {
      "commit": "36cf095e615059608b1d0b2fa81953e138bd1174",
      "tree": "9b63074ea7bc0881dec4bd560bfdf8d31211f7ab",
      "parents": [
        "7e1a34386368d2bb3dc89bf5aa0519cafc326095"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 08 19:28:33 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 08 19:28:33 2015 +0000"
      },
      "message": "ART: Fixed formatting in HGraphVisualizerPrinter\n\nChange-Id: I06d9bb0fc03e13cfc49f2b4da07a0ee2d09a339a\n"
    },
    {
      "commit": "c06c1d60ed88fc33574169264a1e7d983538db79",
      "tree": "55b8aec0a5095fc960b7154c464a92c316ea02e1",
      "parents": [
        "7e1a34386368d2bb3dc89bf5aa0519cafc326095",
        "840e5461a85f8908f51e7f6cd562a9129ff0e7ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 08 18:52:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 08 18:52:34 2015 +0000"
      },
      "message": "Merge \"Implement double and float support for arm in register allocator.\""
    },
    {
      "commit": "840e5461a85f8908f51e7f6cd562a9129ff0e7ce",
      "tree": "ea8b4cbc5a0e3dea96fefcd9247e6c06b17ac518",
      "parents": [
        "893e8881e31180721512c1b9e5ffacb03aad2e45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 07 16:01:24 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 08 13:57:51 2015 +0000"
      },
      "message": "Implement double and float support for arm in register allocator.\n\nThe basic approach is:\n- An instruction that needs two registers gets two intervals.\n- When allocating the low part, we also allocate the high part.\n- When splitting a low (or high) interval, we also split the high\n  (or low) equivalent.\n- Allocation follows the (S/D register) requirement that low\n  registers are always even and the high equivalent is low + 1.\n\nChange-Id: I06a5148e05a2ffc7e7555d08e871ed007b4c2797\n"
    },
    {
      "commit": "4ea18c02148cffe72e025990e9b2727bfec563da",
      "tree": "b94bf2131d5469080bfc130f12f560e8c57ab274",
      "parents": [
        "893e8881e31180721512c1b9e5ffacb03aad2e45",
        "68427b166dea53f81469e4b5a6daadcca85cdaca"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 07 19:37:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 07 19:37:33 2015 +0000"
      },
      "message": "Merge \"ART: Add copyright to Optimizing\u0027s Inliner test\""
    },
    {
      "commit": "68427b166dea53f81469e4b5a6daadcca85cdaca",
      "tree": "17653b0139ec723dda00fc075a31207170881e8c",
      "parents": [
        "3d5872eb090a04a9444b5621d381eec3846f47a3"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 07 19:22:04 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 07 19:22:04 2015 +0000"
      },
      "message": "ART: Add copyright to Optimizing\u0027s Inliner test\n\nChange-Id: I10c29d607baa5b8b23b5d998a3c72dafcb7f47b8\n"
    },
    {
      "commit": "df64950a466c0f00cd36120d1afd389c577cae87",
      "tree": "d2452b35379bb084ee2975a1ee3bc0ad9517e1c0",
      "parents": [
        "78990227774cf47bebe8bc7b3781e24c6f79f55e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 06 14:13:52 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 06 14:13:52 2015 -0800"
      },
      "message": "ART: Fix leak in codegen_test\n\nMake sure the InstructionSetFeatures isn\u0027t leaked.\n\nChange-Id: Ide25773500c1513ecb204a380bb0a95513ff7276\n"
    },
    {
      "commit": "0eb8e5db064188f09ebec78ea8ac8b4a7596c12c",
      "tree": "76f9812b6ea74ed8ac072cdd27629682611f3f7a",
      "parents": [
        "1e862370ff2c3207afd1b2fc6f77f7ca345643b2",
        "3416601a9e9be81bb7494864287fd3602d18ef13"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 06 12:10:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 06 12:10:49 2015 +0000"
      },
      "message": "Merge \"Look at instruction set features when generating volatiles code\""
    },
    {
      "commit": "3d5872eb090a04a9444b5621d381eec3846f47a3",
      "tree": "121bc995f1bb702cf1a01e7279dfeb46fda054ba",
      "parents": [
        "b994c437ae8ec6b9d85ceb1fb11e4c97eace32ef",
        "1cc7dbabd03e0a6c09d68161417a21bd6f9df371"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 05 19:26:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 05 19:26:09 2015 +0000"
      },
      "message": "Merge \"ART: Reorder entrypoint argument order\""
    },
    {
      "commit": "02d81cc8d162a31f0664249535456775e397b608",
      "tree": "8bce70d3d44dcc9384d72e4edc1505e4d1a6ea07",
      "parents": [
        "8558375377946aabbbda6ab584e13f754590bd89"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Mon Jan 05 16:08:49 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 05 18:23:33 2015 +0000"
      },
      "message": "Opt Compiler: ARM64: Add support for rem-float, rem-double and volatile.\n\nAdd support for rem-float, rem-double and volatile memory accesses\nusing acquire-release and memory barriers.\n\nChange-Id: I96a24dff66002c3b772c3d8e6ed792e3cb59048a\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "3416601a9e9be81bb7494864287fd3602d18ef13",
      "tree": "dd228519bfb9733aa7627b9cea81ecb28974a1ab",
      "parents": [
        "8558375377946aabbbda6ab584e13f754590bd89"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 19 17:22:29 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 05 16:25:59 2015 +0000"
      },
      "message": "Look at instruction set features when generating volatiles code\n\nChange-Id: Ia882405719fdd60b63e4102af7e085f7cbe0bb2a\n"
    },
    {
      "commit": "ba31c3c400cfc59bfe284701763ef96c8810aa14",
      "tree": "3f415b99a482ac26402979db5d01b123b134f115",
      "parents": [
        "42177ceb495ef591cd74e3f45ccf6f49dea03fea",
        "9a6f20e0ca565f2256c59f72a2437994e15ca597"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Dec 31 16:16:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 31 16:16:29 2014 +0000"
      },
      "message": "Merge \"ART: New types of Checker assertions\""
    },
    {
      "commit": "9a6f20e0ca565f2256c59f72a2437994e15ca597",
      "tree": "ae8ed6d8602d2626f8aa2cc6a295bb2e946f25e8",
      "parents": [
        "5e0a9849d4e353c3726095b65ab07cefce40a636"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 19 11:17:21 2014 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Dec 31 13:36:55 2014 +0000"
      },
      "message": "ART: New types of Checker assertions\n\nChecker now supports positive out-of-order assertions (CHECK-DAG),\nwhich are useful for matching dependency graphs, and negative\nassertions (CHECK-NOT) to test element removal.\n\nConstantFolding tests are rewritten using -DAG checks and Inliner\ntests are added.\n\nChange-Id: I5afb665f532b24683624b6d21ef4377cb441d731\n"
    },
    {
      "commit": "1cc7dbabd03e0a6c09d68161417a21bd6f9df371",
      "tree": "8557bdff971e366909351af95a7c8ead82792986",
      "parents": [
        "5e0a9849d4e353c3726095b65ab07cefce40a636"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 17 18:43:01 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 29 10:52:02 2014 -0800"
      },
      "message": "ART: Reorder entrypoint argument order\n\nShuffle the ArtMethod* referrer backwards for easier removal.\n\nClean up ARM \u0026 MIPS assembly code.\n\nChange some macros to make future changes easier.\n\nChange-Id: Ie2862b68bd6e519438e83eecd9e1611df51d7945\n"
    },
    {
      "commit": "b7e4a069ae51a86152faacdc39298fe78f33a66e",
      "tree": "b8924b7e72aec7f8858091e62f83c3b3361f033c",
      "parents": [
        "5e0a9849d4e353c3726095b65ab07cefce40a636"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 29 15:35:02 2014 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 29 15:51:10 2014 +0000"
      },
      "message": "ART: Refactored VisualizerPrinter visitor pattern\n\nThis patch refactors the visitor pattern in HGraphVisualizerPrinter\nto output instruction-specific details.\n\nChange-Id: Icfed9cd844b973025337a6bb584e1bc88f1ddd58\n"
    },
    {
      "commit": "5c79aec9d53d1320041d5a52e5115d78d16035b7",
      "tree": "0e36345912571fc0e3e01976f6b698b631706bb7",
      "parents": [
        "508d2665febbb06c853bfab131c4dc7164fffabb",
        "e21dc3db191df04c100620965bee4617b3b24397"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 18:30:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 22 18:30:07 2014 +0000"
      },
      "message": "Merge \"ART: Swap-space in the compiler\""
    },
    {
      "commit": "e21dc3db191df04c100620965bee4617b3b24397",
      "tree": "2ad762c6afb024bf95e1eced3d584649a4d57d23",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 08 16:59:43 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 10:01:27 2014 -0800"
      },
      "message": "ART: Swap-space in the compiler\n\nIntroduce a swap-space and corresponding allocator to transparently\nswitch native allocations to memory backed by a file.\n\nBug: 18596910\n\n(cherry picked from commit 62746d8d9c4400e4764f162b22bfb1a32be287a9)\n\nChange-Id: I131448f3907115054a592af73db86d2b9257ea33\n"
    },
    {
      "commit": "10c9cbe05ab860cb7d5ce82c411698a10f811aa6",
      "tree": "2e0acaeb2d9adf2b16b23ab0f658f02c2b01e4df",
      "parents": [
        "86632a79ae3887bc07c7c07642c7044369837d90"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 19 10:50:19 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 19 10:50:19 2014 +0000"
      },
      "message": "Fixed CanBeMoved for field access\n\nChange-Id: I36a1f4a468f3701e0608d71f64d64049c54aec18\n"
    },
    {
      "commit": "52c489645b6e9ae33623f1ec24143cde5444906e",
      "tree": "a39667aa354645bd42a7a061d08ca82df3004143",
      "parents": [
        "193c7a94822f765b0b6b0cecd54c9f08dfd26425"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 16 17:02:57 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 19 09:58:27 2014 +0000"
      },
      "message": "[optimizing compiler] Add support for volatile\n\n- for backends: arm, x86, x86_64\n- added necessary instructions to assemblies\n- clean up code gen for field set/get\n- fixed InstructionDataEquals for some instructions\n- fixed comments in compiler_enums\n\n* 003-opcode test verifies basic volatile functionality\n\nChange-Id: I144393efa312dfb2c332cb84056b00edffee338a\n"
    },
    {
      "commit": "6048838af46f41c08c4132ba242040dc49bd5f23",
      "tree": "5124300bf9a7106d534e126b1926cc9d787ae2dc",
      "parents": [
        "ca747ea9951188dbc6f5217d49aca34aeadcc2a6",
        "5b4b898ed8725242ee6b7229b94467c3ea3054c8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 18 17:46:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 18 17:46:13 2014 +0000"
      },
      "message": "Merge \"Revert \"Don\u0027t block quick callee saved registers for optimizing.\"\""
    },
    {
      "commit": "5b4b898ed8725242ee6b7229b94467c3ea3054c8",
      "tree": "46f6df76e49f9a42dae89a6b9cf8336eae1da519",
      "parents": [
        "6004796d6c630696127df2494dcd4f30d1367a34"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 18 17:45:56 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 18 17:45:56 2014 +0000"
      },
      "message": "Revert \"Don\u0027t block quick callee saved registers for optimizing.\"\n\nX64 has one libcore test failing, and codegen_test on\narm is failing.\n\nThis reverts commit 6004796d6c630696127df2494dcd4f30d1367a34.\n\nChange-Id: I20e00431fa18e11ce4c0cb6fffa91977fa8e9b4f\n"
    },
    {
      "commit": "e408f8c6ac0ee80543ee1a695695e8917e45eaf3",
      "tree": "8637636ea603b134b410cf535281fb56249f9d55",
      "parents": [
        "452a8bec86e7795c99f774e81c02f12f1b1e502f",
        "6004796d6c630696127df2494dcd4f30d1367a34"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 18 15:49:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 18 15:49:53 2014 +0000"
      },
      "message": "Merge \"Don\u0027t block quick callee saved registers for optimizing.\""
    },
    {
      "commit": "6004796d6c630696127df2494dcd4f30d1367a34",
      "tree": "850f3e82a47061200c4e34e2c7e7a934f4769a97",
      "parents": [
        "407d77f344cfbdbbfb50531c5f0766bc0892e2fe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 15 00:01:18 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 18 14:59:50 2014 +0000"
      },
      "message": "Don\u0027t block quick callee saved registers for optimizing.\n\nThis change builds on:\nhttps://android-review.googlesource.com/#/c/118983/\n\n- Also fix x86_64 assembler bug triggered by this change.\n- Fix (and improve) x86\u0027s backend byte register usage.\n- Fix a bug in baseline register allocator: a fixed\n  out register must prevent inputs from allocating it.\n\nChange-Id: I4883862e29b4e4b6470f1823cf7eab7e7863d8ad\n"
    },
    {
      "commit": "259136f1a8670f533031b7adf7f8908e60f8dd6b",
      "tree": "e227eed3abafc68e4670327b32445608b81e4d6c",
      "parents": [
        "e9231c0aecc013c61b6cf7f88a228204651d4d41"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 23:21:58 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 18 12:57:40 2014 +0000"
      },
      "message": "When inlining, also look whether we can allocate registers.\n\narm and x86 currently don\u0027t allocate registers for floating point\nand long operations, so we can\u0027t inline methods with these operations.\n\nChange-Id: I11e4b97ddbe90f4978f2abe1081fb0f849acb811"
    },
    {
      "commit": "942a3785dca38feaae9d01b35d6bfb09c39315eb",
      "tree": "0e0dc3a8d8f7615c327de0bab21d9351adece277",
      "parents": [
        "8012102dea15e62fce94f6ac32e301aa0cb3f52d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 17:10:47 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 17:10:47 2014 +0000"
      },
      "message": "Now that GraphChecker has a state, don\u0027t re-use it.\n\nOtherwise, we\u0027ll see the same ids twice.\n\nChange-Id: Ic9bb801629ff90cc788248528d5260aaaff73675\n"
    },
    {
      "commit": "8012102dea15e62fce94f6ac32e301aa0cb3f52d",
      "tree": "47ce8a40410af799be2e2e90759d6e9c7fc3dbb4",
      "parents": [
        "44a7f89cff6c93f5a900a02e9fa92613ea2f3f8e",
        "7c5367badfe61b96c5836d495d286cee64861579"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 16:18:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 17 16:18:23 2014 +0000"
      },
      "message": "Merge \"Fix ids and remove invoke when inlining.\""
    },
    {
      "commit": "ee690a3dd364c025ebc1767d9f84097bb7473eec",
      "tree": "9fe546eba2c7be93017188b376789281f7b32aa9",
      "parents": [
        "3fea27b5f956a08b5b01f873b807fac98a5cc1f6"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 01 17:04:16 2014 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Dec 17 15:46:21 2014 +0000"
      },
      "message": "ART: Added Checker, a pattern matching test engine\n\nThis patch adds a Python script which implements a domain-specific\nmini-language similar to that of LLVM\u0027s FileCheck. It is primarily\nintended for writing tests for the optimizing compiler but could be\nconfigured for other use cases too. It is implemented from scratch in\norder to avoid dependency on LLVM.\n\nChecker tests are written in Java and dex2oat is invoked with a flag\nwhich dumps the CFG before and after each pass of the optimizing\ncompiler. The output is then compared against assertions in the\ntest\u0027s comments parsed by Checker. See comments in tools/checker.py\nfor more details about the currently supported language features.\n\nThis initial CL implements only one type of assertion - whether the\noutput contains lines matching a desired pattern in the given order -\nbut supports both plain text and regex matching and allows for\nequivalency testing by matching for the outcome of a previous match.\nSee the tests in compiler/optimizing/test/ConstantFolding.java for\nexamples.\n\nChange-Id: I1ad7431b399c38dc0391ccee74d2c643ba0b0675\n"
    },
    {
      "commit": "7c5367badfe61b96c5836d495d286cee64861579",
      "tree": "0468316d467302abc1f9feae3af8e64c2877610b",
      "parents": [
        "240016da1d6615b26c8342bdeb4bae381570ac47"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 10:13:46 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 14:11:29 2014 +0000"
      },
      "message": "Fix ids and remove invoke when inlining.\n\nBugs found by Razvan Lupusoru.\n\nChange-Id: I3a5a9af280d8700d18f52abb4a2cff0e3a9aac74\n"
    },
    {
      "commit": "4e44c829e282b3979a73bfcba92510e64fbec209",
      "tree": "42375a128b28bb886955214336f63391dfc41d5c",
      "parents": [
        "390f59f9bec64fd81b05e796dfaeb03ab6d4cc81"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 12:25:12 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 12:25:12 2014 +0000"
      },
      "message": "Revert \"Small optimization for recursive calls: avoid dex cache.\"\n\nFails on target.\n\nThis reverts commit 390f59f9bec64fd81b05e796dfaeb03ab6d4cc81.\n\nChange-Id: Ic3865b8897068ba20df0fbc2bcf561faf6c290c1\n"
    },
    {
      "commit": "390f59f9bec64fd81b05e796dfaeb03ab6d4cc81",
      "tree": "d418b4a488390d718144bf5a5a180d965d1d762e",
      "parents": [
        "240016da1d6615b26c8342bdeb4bae381570ac47"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 12 19:22:03 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 17 11:53:33 2014 +0000"
      },
      "message": "Small optimization for recursive calls: avoid dex cache.\n\nChange-Id: Ic4054b6c38f0a2a530ba6ef747647f86cee0b1b8\n"
    },
    {
      "commit": "e53798a7e3267305f696bf658e418c92e63e0834",
      "tree": "8979bbed96b107a5a6bbae9285ff4e0c362dad95",
      "parents": [
        "e6c0cdd11097dd72275ac24f1e98217c299d973e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 10:31:54 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 15 22:52:27 2014 +0000"
      },
      "message": "Inlining support in optimizing.\n\nCurrently only inlines simple things that don\u0027t require an\nenvironment, such as:\n- Returning a constant.\n- Returning a parameter.\n- Returning an arithmetic operation.\n\nChange-Id: Ie844950cb44f69e104774a3cf7a8dea66bc85661\n"
    },
    {
      "commit": "37cbe23bf1d183b63ddae1ca5e4fe9a84d3f2061",
      "tree": "e934fa1ef20c2294d087a82fe1e8c85db6911c1d",
      "parents": [
        "4de14bbf154daeacafaa60b12a0b855adb0f3705",
        "48c2b03965830c73cdddeae8aea8030f08430137"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 15 16:05:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 15 16:05:53 2014 +0000"
      },
      "message": "Merge \"Add more compilation stats to optimizing\""
    },
    {
      "commit": "6419752e81177670756becbd9c5438323a75818d",
      "tree": "619e3f8bbe6cfd3898975d5e1f07d602410761ce",
      "parents": [
        "55037f186fff482084cd5659ff747339eb17ba4e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 05 15:56:23 2014 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 12 10:58:14 2014 -0800"
      },
      "message": "Some enhancements on BCE.\n\n1) Better format detection when creating ValueBound.\n2) Some code cleanup on returning bool for overflow_or_underflow.\n\nChange-Id: I03e8bd0d756652da021ccb5b2a62075648d39cc2\n"
    },
    {
      "commit": "48c2b03965830c73cdddeae8aea8030f08430137",
      "tree": "56cf034739095c71a175fa97205ed6dc76efbe0d",
      "parents": [
        "d2ec87d84057174d4884ee16f652cbcfd31362e9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 09 18:11:36 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Dec 10 16:27:08 2014 +0000"
      },
      "message": "Add more compilation stats to optimizing\n\nOptimizing is getting closer to have full coverage and this provides a\nnice overview on why certain methods are not compiled/optimized.\n\nAlso, clean up some of the builder methods.\n\nChange-Id: Id2f31441a788b797b0efea7ec78bee27bb654186\n"
    },
    {
      "commit": "3e69f16ae3fddfd24f4f0e29deb106d564ab296c",
      "tree": "c796b1a2f71d4410af9fbdcb970b548a681f3955",
      "parents": [
        "776b880f66edb21cb3b4225877e494ec7a9ec1a2"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Wed Dec 10 10:36:50 2014 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Wed Dec 10 14:36:14 2014 +0000"
      },
      "message": "Opt compiler: Add arm64 support for register allocation.\n\nChange-Id: Idc6e84eee66170de4a9c0a5844c3da038c083aa7"
    },
    {
      "commit": "376b2bbf7c39108223a7a01568a7b4b04d84eeac",
      "tree": "f6fdbe6180c3d330bc24aa35a7d9fa51f3eb1c55",
      "parents": [
        "b1a38e246cfbfb21100d9c9e57f33970e824f075"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 14:26:32 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 14:49:02 2014 +0000"
      },
      "message": "Ensure stack maps are 4 byte aligned.\n\nWith the recent move to gcc 4.9, we are hitting alignment\nSIGBUS on ARM. The reason is that gcc will optimize two consecutive\n32bits loads into one 64bits load, and the instruction (ldrd)\nwill fail if the data is not aligned.\n\nAlso removed the emission of mapping table when a method is optimized.\nThe information can be found in the StackMap itself.\n\nChange-Id: Icf79406c18a3f4db3c05d52fc2c0dd2e35bf0f8f\n"
    },
    {
      "commit": "486cc19e1e2eca4231f760117e95090c03e2d8c6",
      "tree": "d9d21691ea0e019c0940d6c72b8593c75d810662",
      "parents": [
        "6c964c98400b8c0949d5e369968da2d4809b772f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 08 18:00:55 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 10:18:04 2014 +0000"
      },
      "message": "Explicitly mask constants in shift operations.\n\nThe assemblers expect an int8, so we mask ahead of calling them.\n\nChange-Id: Id668cda6853fa365ac02531bf7aae288cad20fcd\n"
    },
    {
      "commit": "d2ec87d84057174d4884ee16f652cbcfd31362e9",
      "tree": "9456c5851f157566380c37895407dfce4749bb4d",
      "parents": [
        "f551efff34c20e2f0cf962c3fc267204d5e7611f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 14:24:46 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 17:02:11 2014 +0000"
      },
      "message": "[optimizing compiler] Add REM_FLOAT and REM_DOUBLE\n\n- for arm, x86, x86_64 backends\n- reinstated fmod quick entry points for x86. This is a partial revert\nof bd3682eada753de52975ae2b4a712bd87dc139a6 which added inline assembly\nfor floting point rem on x86. Note that Quick still uses the inline\nversion.\n- fix rem tests for longs\n\nChange-Id: I73be19a9f2f2bcf3f718d9ca636e67bdd72b5440\n"
    },
    {
      "commit": "abb3977bf924b923b45ae234a48be739035bbd32",
      "tree": "15a9480c654adbbf77e15a9804eb7777a76bac22",
      "parents": [
        "355e3b1cc67c263268289021268109ae5432537a",
        "4c0b61f506644bb6b647be05d02c5fb45b9ceb48"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Dec 05 12:08:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 12:08:40 2014 +0000"
      },
      "message": "Merge \"Add support for double-to-int \u0026 double-to-long in optimizing.\""
    },
    {
      "commit": "4c0b61f506644bb6b647be05d02c5fb45b9ceb48",
      "tree": "26ff4e14af3cae5f9b30f65177be258d8259ecee",
      "parents": [
        "7c8ce29e97fb7873160ab8895d847e9643a1f8f6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Dec 05 12:06:01 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Dec 05 12:06:01 2014 +0000"
      },
      "message": "Add support for double-to-int \u0026 double-to-long in optimizing.\n\n- Add support for the double-to-int and double-to-long Dex\n  instructions in the optimizing compiler.\n- Add S1 to the list of ARM FPU parameter registers so that\n  a double value can be passed as parameter during a call\n  to the runtime through D0.\n- Have art::x86_64::X86_64Assembler::cvttsd2si work with\n  64-bit operands.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  double to int and double to long HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: Ic93b9ec6630c26e940f7966a3346ad3fd5a2ab3a\n"
    },
    {
      "commit": "0418b5b20587c645b6bf9d8cb65d3d6a9f074d96",
      "tree": "f0f7d8a245851acd0409535640a804be5db7a6bb",
      "parents": [
        "044ac4f4f6760eeef4ed96b5349a8a5c325c52f1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:24:50 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:24:50 2014 -0800"
      },
      "message": "ART: Fix linting errors\n\nFix bounds_check_elimination linting errors.\n\nChange-Id: I040433ecbc84d740bff331c37df0bfcc64dc244e\n"
    },
    {
      "commit": "044ac4f4f6760eeef4ed96b5349a8a5c325c52f1",
      "tree": "89263eae1b447de21b1b2bfa9b8839499de71d5c",
      "parents": [
        "a21fdd0432aa38b63d144ee4b92b6a567aab61d2",
        "f384f88d4d1e89df82f47fbc7245a8acc9c2d49c"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 05 01:06:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 01:06:54 2014 +0000"
      },
      "message": "Merge \"Bounds check elimination.\""
    },
    {
      "commit": "e4d4d323aa42506351b03e842818e9ec09ea6c37",
      "tree": "5df6c117bc518a8c4db6777b89b5dfd23a53ed88",
      "parents": [
        "7c8ce29e97fb7873160ab8895d847e9643a1f8f6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 09:09:57 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 15:58:34 2014 -0800"
      },
      "message": "ART: Add SparseSwitch support to the optimizing compiler\n\nAdd simple sparse-switch support through chained IFs. Refactor a\nbit to better reuse code between switch types.\n\nNow enables compiled versions of 015-switch and 095-switch-MAX_INT.\n\nBug: 18410979\nChange-Id: Ib617e4b877f0b7fbc3bb289800f612f013480713\n"
    },
    {
      "commit": "7c8ce29e97fb7873160ab8895d847e9643a1f8f6",
      "tree": "76a45f69cd12c9ad43d87187b4a932eac89a28fa",
      "parents": [
        "8a717bc12bf30c5ad2b8764f89abe6c5ec72bb42",
        "d881df5aad7950a185480876951762c1f60ea708"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:09:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 17:09:45 2014 +0000"
      },
      "message": "Merge \"ART: Add PackedSwitch support to the optimizing compiler\""
    },
    {
      "commit": "d881df5aad7950a185480876951762c1f60ea708",
      "tree": "4609e13b55cf8a4525cb54682eee75ec710bd216",
      "parents": [
        "8b9a97e8b6ed97ff1991596cbd0f7ce78f004766"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 24 23:28:39 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:08:45 2014 +0000"
      },
      "message": "ART: Add PackedSwitch support to the optimizing compiler\n\nAdd simple packed-switch support through chained IFs.\n\nNow enables compiled versions of 015-switch and 095-switch-MAX_INT.\n\nChange-Id: I17cc8d659d1dd2d64227851c23998c04367e8cf5"
    },
    {
      "commit": "8964e2b689d80fe546604ac8c724078645095cf1",
      "tree": "9909dfb2f891d12cc9ad6aabebfba9f535014609",
      "parents": [
        "833e903b7a9063f37bea3c505cf134fc4a4e2084"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 12:10:50 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 12:10:50 2014 +0000"
      },
      "message": "Add support for float-to-double \u0026 double-to-float in optimizing.\n\nChange-Id: I41b0fee5a28c83757697c8d000b7e224cf5a4534\n"
    },
    {
      "commit": "624279f3c70f9904cbaf428078981b05d3b324c0",
      "tree": "a81f8d8facfc28cac479a68a1042edc74c36d25b",
      "parents": [
        "9a64a46e8edfa89402598d8650b8ebb337ba3d52"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 11:54:28 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 11:54:28 2014 +0000"
      },
      "message": "Add support for float-to-long in the optimizing compiler.\n\n- Add support for the float-to-long Dex instruction in the\n  optimizing compiler.\n- Add a Dex PC field to art::HTypeConversion to allow the\n  x86 and ARM code generators to produce runtime calls.\n- Instruct art::CodeGenerator::RecordPcInfo not to record\n  PC information for HTypeConversion instructions.\n- Add S0 to the list of ARM FPU parameter registers.\n- Have art::x86_64::X86_64Assembler::cvttss2si work with\n  64-bit operands.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  float to long HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: I954214f0d537187883f83f7a83a1bb2dd8a21fd4\n"
    },
    {
      "commit": "f384f88d4d1e89df82f47fbc7245a8acc9c2d49c",
      "tree": "11c1b7094ca95fda08feba3ee9f8622b096e327d",
      "parents": [
        "8b9a97e8b6ed97ff1991596cbd0f7ce78f004766"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 22 16:08:18 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Dec 03 15:39:21 2014 -0800"
      },
      "message": "Bounds check elimination.\n\nChange-Id: Ia0d6a4226c1f9f1ff1dd35347a38db1dc4265319\n"
    },
    {
      "commit": "9a64a46e8edfa89402598d8650b8ebb337ba3d52",
      "tree": "78b29260bf542f7a21ed072425aa125a2ccffbf8",
      "parents": [
        "add2f944284992106cd9a1f1df93a17d666eaaf6",
        "3f8f936aff35f29d86183d31c20597ea17e9789d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 16:04:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 03 16:04:28 2014 +0000"
      },
      "message": "Merge \"Add support for float-to-int in the optimizing compiler.\""
    },
    {
      "commit": "add2f944284992106cd9a1f1df93a17d666eaaf6",
      "tree": "84eef247787ba172f2956f7abb499e3e59068182",
      "parents": [
        "1a3960aae50ee8f6967b7ff2d094dbcf5b6b5be4",
        "fc600dccd7797a9a10cdd457034ea8e148ccd631"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 14:52:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 03 14:52:52 2014 +0000"
      },
      "message": "Merge \"Fix a compiler bug related to a catch-less try-finally statement.\""
    },
    {
      "commit": "3f8f936aff35f29d86183d31c20597ea17e9789d",
      "tree": "3abc4e5f99cf7de74dbc65cafb6c045074e25381",
      "parents": [
        "fc600dccd7797a9a10cdd457034ea8e148ccd631"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 02 17:45:01 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 12:09:28 2014 +0000"
      },
      "message": "Add support for float-to-int in the optimizing compiler.\n\n- Add support for the float-to-int Dex instruction in the\n  optimizing compiler.\n- Factor type conversion related lines in\n  compiler/optimizing/builder.cc.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  float to int HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: I2382dfc04bf394ed75f675148cfcf98216d65bc6\n"
    },
    {
      "commit": "fc600dccd7797a9a10cdd457034ea8e148ccd631",
      "tree": "31bf5b4632c14d7706c5c9d605beec57825f2dfe",
      "parents": [
        "f25c2ec6b63e116f24f359a10b59c78768fde67a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 02 17:16:31 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 12:09:28 2014 +0000"
      },
      "message": "Fix a compiler bug related to a catch-less try-finally statement.\n\nEnsure a dead basic block produced in this case is properly\nremoved.\n\nChange-Id: I7c88e26aaa6c6378892f7c7c299494fa42312db2\n"
    },
    {
      "commit": "92a6ed2014278c78b60d7ef00751f15e6727aae0",
      "tree": "2b8dec6f14999ede3f4b33bfff5aef76931d4021",
      "parents": [
        "f25c2ec6b63e116f24f359a10b59c78768fde67a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 18:58:03 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 20:28:07 2014 +0000"
      },
      "message": "Fix new-instance node.\n\nnew-instance may throw when called on:\n- interfaces\n- abstract/innaccessible/unknown classes\n\nChange-Id: Id55dbb95b906a58c946b14adad934ee0e3498c0a\n"
    },
    {
      "commit": "e0245b0a3deaeb4d0707e76ed747e3771fef11c0",
      "tree": "5c6798c68f64a8ae5c47fa181cc911d85e260095",
      "parents": [
        "98646a3d98075da05f9959b2cecea849183dbd27",
        "c7c8fe21f9688c52fdd92c1ff5deeffd620b99cf"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 14:52:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 14:52:40 2014 +0000"
      },
      "message": "Merge \"[optimizing compiler] Fix invoke-direct\""
    },
    {
      "commit": "383993c1dc58c13f7570b9945037d6f83094785b",
      "tree": "c0c4c601964e4c37011f133ea70b3a7da7b00271",
      "parents": [
        "68af004aa1e8c82ddb503261c5e3080238e77b59",
        "43a539f780af20a1854bca81c3d4835a585f0620"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 12:41:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 12:41:26 2014 +0000"
      },
      "message": "Merge \"Add some heursitics for compiling, close to Quick\u0027s.\""
    },
    {
      "commit": "f537012ceb6cba8a78b36a5065beb9588451a250",
      "tree": "08851014d687b0e08accfdc2f1553a89789b4fd4",
      "parents": [
        "10a573a1f8708dbe2bcb7835341cbd8e9606af63"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 11:51:19 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 12:24:07 2014 +0000"
      },
      "message": "Treat SSA transformation special, as we may have to bailout.\n\nWe forgot to bailout when we found a non-natural loop (on which\nour optimizations don\u0027t work).\n\nChange-Id: I11976b5af4c98f4f29267a74c74d34b5ad81e20c\n"
    },
    {
      "commit": "c7c8fe21f9688c52fdd92c1ff5deeffd620b99cf",
      "tree": "fad3b8374e72a563c6ca41f7e4178a1946842b7e",
      "parents": [
        "eea79dd779ba199658ada7264f8f96d776e53f19"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 11:42:34 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 12:23:38 2014 +0000"
      },
      "message": "[optimizing compiler] Fix invoke-direct\n\nAlways compute invoke info via compiler driver. This ensures that the\nmethod is not called directly if its access cannot be verified.\n\nChange-Id: I04b35563a1148bc5cb16b37324419e2a977ec8db\n"
    },
    {
      "commit": "43a539f780af20a1854bca81c3d4835a585f0620",
      "tree": "241042d7f40dab9fbf24560624b6e8ddfe9c066e",
      "parents": [
        "05d5810c2b20ac83da82cef9a9677884af81147d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 10:19:51 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 10:26:17 2014 +0000"
      },
      "message": "Add some heursitics for compiling, close to Quick\u0027s.\n\nQuick has more machinery to give up/not give up, but we can\nbackport them later.\n\nChange-Id: I5eb62c664246f4ce46f0400cf24ec34a72afb51e\n"
    }
  ],
  "next": "37b55ebd45a2f4514bee3e111bd49c06751da49d"
}
