)]}'
{
  "log": [
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "f635e63318447ca04731b265a86a573c9ed1737c",
      "tree": "47cab84a6ac47d8a4f5f281e3eabdf1780f220d0",
      "parents": [
        "d115735fe5523ff72319f0968f773683323c7f79"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 09:43:38 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 14:26:11 2014 +0100"
      },
      "message": "Add a compilation tracing mechanism to the new compiler.\n\nCode mostly imported from: https://android-review.googlesource.com/#/c/81653/.\n\nChange-Id: I150fe942be0fb270e03fabb19032180f7a065d13\n"
    },
    {
      "commit": "e45fb9e7976c8462b94a58ad60b006b0eacec49f",
      "tree": "1d8139f92fb127fc931c6e5c9ca2ed2c8dc871b9",
      "parents": [
        "410d87ff51e9432768924d2f294592818f93c244"
      ],
      "author": {
        "name": "Matteo Franchin",
        "email": "matteo.franchin@arm.com",
        "time": "Tue May 06 10:10:30 2014 +0100"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed May 07 14:54:16 2014 -0700"
      },
      "message": "AArch64: Change arm64 backend to produce A64 code.\n\nThe arm backend clone is changed to produce A64 code. At the moment\nthis backend can only compile simple methods (both leaf and non-leaf).\n\nMost of the work on the assembler (assembler_arm64.cc) has been done.\nSome work on the LIR generation layer (functions such as OpRegRegImm\n\u0026 friends) is still necessary. The register allocator still needs to\nbe adapted to the A64 instruction set (it is mostly unchanged from\nthe arm backend). Offsets for helpers in gen_invoke.cc still need to\nbe changed to work on 64-bit.\n\nChange-Id: I388f99eeb832857981c7d9d5cb5b71af64a4b921\n"
    },
    {
      "commit": "804d09372cc3d80d537da1489da4a45e0e19aa5d",
      "tree": "b226350fdf3dc0c55a11e1615010c8475f167f90",
      "parents": [
        "0095e0b8380a8802f40a21928800b9df6e11f1d7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 02 08:46:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 07 10:32:11 2014 +0100"
      },
      "message": "Build live-in, live-out and kill sets for each block.\n\nThis information will be used when computing live ranges of\ninstructions.\n\nChange-Id: I345ee833c1ccb4a8e725c7976453f6d58d350d74\n"
    },
    {
      "commit": "c32e770f21540e4e9eda6dc7f770e745d33f1b9f",
      "tree": "56a76d7399bf749a4500fb60483e0dc075a24ee7",
      "parents": [
        "618a87009202dc959c935ed8f237ae32bdec57d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 24 12:43:16 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 28 16:21:40 2014 +0100"
      },
      "message": "Add a Transform to SSA phase to the optimizing compiler.\n\nChange-Id: Ia9700756a0396d797a00b529896487d52c989329\n"
    },
    {
      "commit": "bd5ea6a2f7c61c4cd7b66fead1bedd96e938369d",
      "tree": "1c1dde0d817303e669c413a919c192e2f3463bb0",
      "parents": [
        "5e17616b7386159cef8f2fb6ffe3cbc4fb1373e4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 16 16:34:44 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 16 16:35:44 2014 -0700"
      },
      "message": "Preparation for transition to libc++.\n\nMove the dependency on libc++ to its own makefile so that we can switch in a\nsingle place between libc++ and stlport.\n\nChange-Id: Ie61e7d054dcd049e36d5e7298c27d8a4abe6edf7\n"
    },
    {
      "commit": "d6ed642458c8820e1beca72f3d7b5f0be4a4b64b",
      "tree": "1b6e0438f786d6eeb5566e176d71d454a6cdb9e5",
      "parents": [
        "f9487c039efb4112616d438593a2ab02792e0304"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Apr 09 23:36:15 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Apr 09 23:36:15 2014 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Use trampolines for calls to helpers\"\"\"\n\nThis reverts commit f9487c039efb4112616d438593a2ab02792e0304.\n\nChange-Id: Id48a4aae4ecce73db468587967968a3f7618b700\n"
    },
    {
      "commit": "f9487c039efb4112616d438593a2ab02792e0304",
      "tree": "95f88645bec774d3e8df170bd0f40e4cd0911a34",
      "parents": [
        "b24b0e2bb128532945b31ea62715776d7751f84d"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Apr 08 23:08:12 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Apr 09 13:18:07 2014 -0700"
      },
      "message": "Revert \"Revert \"Use trampolines for calls to helpers\"\"\n\nThis reverts commit 081f73e888b3c246cf7635db37b7f1105cf1a2ff.\n\nChange-Id: Ibd777f8ce73cf8ed6c4cb81d50bf6437ac28cb61\n\nConflicts:\n\tcompiler/dex/quick/mir_to_lir.h\n"
    },
    {
      "commit": "081f73e888b3c246cf7635db37b7f1105cf1a2ff",
      "tree": "3ad0cab1dfa3bca814ab162cb04af125e819e623",
      "parents": [
        "754ddad084ccb610d0cf486f6131bdc69bae5bc6"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Apr 07 18:58:07 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Apr 07 18:58:07 2014 +0000"
      },
      "message": "Revert \"Use trampolines for calls to helpers\"\n\nThis reverts commit 754ddad084ccb610d0cf486f6131bdc69bae5bc6.\n\nChange-Id: Icd979adee1d8d781b40a5e75daf3719444cb72e8\n"
    },
    {
      "commit": "754ddad084ccb610d0cf486f6131bdc69bae5bc6",
      "tree": "18d8314f3f6760b035c2bcda7760782ad4f0e0bf",
      "parents": [
        "97a332b4476d5a2b4ad0650dacc6bfcff882fc57"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Feb 19 14:05:39 2014 -0800"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Apr 04 16:07:46 2014 -0700"
      },
      "message": "Use trampolines for calls to helpers\n\nThis is an ARM specific optimization to the compiler\nthat uses trampoline islands to make calls to runtime\nhelper functions.  The intention is to reduce the size\nof the generated code (by 2 bytes per call) without\naffecting performance.\n\nBy default this is on when generating an OAT file.  It is\noff when compiling to memory.\n\nTo switch this off in dex2oat, use the command line option:\n--no-helper-trampolines\n\nEnhances disassembler to print the trampoline entry on the\nBL instruction like this:\n\n0xb6a850c0: f7ffff9e  bl      -196 (0xb6a85000)  ; pTestSuspend\n\nBug: 12607709\nChange-Id: I9202bdb7cf21252ad807bd48701f1f6ce8e3d0fe\n"
    },
    {
      "commit": "fca82208f7128fcda09b6a4743199308332558a2",
      "tree": "8bed3f2fd50773003647daba43570335a74b5c90",
      "parents": [
        "ad174d1b54bf2fa477bec71a0ca93595f54b8fe9"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri Mar 21 11:21:37 2014 +0700"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri Mar 28 13:55:19 2014 +0700"
      },
      "message": "x86_64: JNI compiler\n\nPassed all tests from jni_compiler_test and art/test on host with jni_copiler.\nIncoming argument spill is enabled, entry_spills refactored. Now each entry spill\ncontains data type size (4 or 8) and offset which should be used for spill.\nAssembler REX support implemented in opcodes used in JNI compiler.\nPlease note, JNI compiler is not enabled by default yet (see compiler_driver.cc:1875).\n\nChange-Id: I5fd19cca72122b197aec07c3708b1e80c324be44\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "b95a5345ae4217b70ca36f0cced92f68dda7caf5",
      "tree": "d9c76db71eb8dd3a668643781eefe6152888fd1d",
      "parents": [
        "66e4c3e96dccdec7423d673ad6bbf7821a776651"
      ],
      "author": {
        "name": "Stuart Monteith",
        "email": "stuart.monteith@arm.com",
        "time": "Wed Mar 12 13:32:32 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 19 17:17:55 2014 -0700"
      },
      "message": "AArch64: Add arm64 runtime support.\n\nAdds support for arm64 to ART. Assembler stubs are sufficient for\ndown calls into interpreter. JNI compiler and generics are not finished.\n\nBasic Generic JNI functionality.\n\nChange-Id: I4a07c79d1e037b9f5746673480e32cf456867b82\n"
    },
    {
      "commit": "b9d50a9829b795932eac4cc50a99b4ce80b0ecb4",
      "tree": "dc8d2af41f15d7701a19ae1b950a6c35fd0ad70f",
      "parents": [
        "c1db36ce74d74deb068bf0a9bb683af17baa8b9d",
        "e3e0260c23d8999b9433715ac7ee5296ee2fd633"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 13 10:33:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 13 10:33:36 2014 +0000"
      },
      "message": "Merge \"Move inline method detection to runtime.\""
    },
    {
      "commit": "b34f69ab43aaf7a6e6045c95f398baf566ef5023",
      "tree": "4090a650de1de3806f6273f3828e77bef9704453",
      "parents": [
        "113f7a4b6093280e4783c69e06467f816a568e72"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 07 15:28:39 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 13 09:10:43 2014 +0000"
      },
      "message": "Add command line support for enabling the optimizing compiler.\n\nAlso run tests with the optimizing compiler enabled when\nthe file art/USE_OPTIMIZING_COMPILER is present.\n\nChange-Id: Ibc33eed62a43547bc3b9fe786d014c0d81b5add8\n"
    },
    {
      "commit": "e3e0260c23d8999b9433715ac7ee5296ee2fd633",
      "tree": "8f13f12f929e36d9366583934ebb4a20b4ce09b7",
      "parents": [
        "ca46e2003360b44f4c043f6da87092592bc3d6d6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 12 15:42:41 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 12 17:59:23 2014 +0000"
      },
      "message": "Move inline method detection to runtime.\n\nThe debugger needs this for selective deoptimization.\n\nChange-Id: I8100000449b56e619288fb05d41ea6f02b53b334\n"
    },
    {
      "commit": "f096aad9203d7c50b2f9cbe1c1215a50c265a059",
      "tree": "44be6a56bbc5e8e697bbc2cd8cabc51e602eeefc",
      "parents": [
        "0307b5c91c287e08cd414ecc5de32befceb7e371"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 23 15:51:58 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 10 10:59:57 2014 +0000"
      },
      "message": "Cache method lowering info in mir graph.\n\nThis should enable easy inlining checks. It should also\nimprove compilation time of methods that call the same\nmethods over and over - it is exactly such methods that\ntend to exceed our 100ms time limit.\n\nChange-Id: If01cd18e039071a74a1444570283c153429c9cd4\n"
    },
    {
      "commit": "a9d7be62735e3356cef7e8ed797c519134a17061",
      "tree": "631a2b7985bfdebc99e0b244273700e22036243c",
      "parents": [
        "234897797cf15beb3223dd2a99047add25a42f0a",
        "83cc7ae96d4176533dd0391a1591d321b0a87f4f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 07 10:50:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 10:50:35 2014 +0000"
      },
      "message": "Merge \"Create a scoped arena allocator and use that for LVN.\""
    },
    {
      "commit": "719d1a33f6569864f529e5a3fff59e7bca97aad0",
      "tree": "fcd84efd7b9806b93ec1a44e2317e6f882e7fe0e",
      "parents": [
        "5365eea9940269b662cfbe103caa348816ff1558"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 12:13:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 19:16:01 2014 -0800"
      },
      "message": "Enable annotalysis on clang ART builds.\n\nFix clang build errors aswell as restructure locking/mutex code for correct\nthread safety analysis support.\nReorder make dependencies so that host builds build first as they should\nprovide better compilation errors than target.\nRemove host\u0027s use of -fno-omit-frame-pointer as it has no value with correct\nuse of CFI, which we should have.\n\nChange-Id: I72cea8da9a3757b1a0b3acb4081feccb7c6cef90\n"
    },
    {
      "commit": "83cc7ae96d4176533dd0391a1591d321b0a87f4f",
      "tree": "6b3c607119c1dc2850810f8463dfd968c486fba4",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 18:02:05 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 06 15:37:40 2014 +0000"
      },
      "message": "Create a scoped arena allocator and use that for LVN.\n\nThis saves more than 0.5s of boot.oat compilation time\non Nexus 5.\n\nTODO: Move other stuff to the scoped allocator. This CL\nalone increases the peak memory allocation. By reusing\nthe memory for other parts of the compilation we should\nreduce this overhead.\n\nChange-Id: Ifbc00aab4f3afd0000da818dfe68b96713824a08\n"
    },
    {
      "commit": "ed8dd492e43cbaaa435c4892447072c84dbaf2dc",
      "tree": "e93e3d1e7dd6770ec8e2a3ed7105a7305eb2bc4d",
      "parents": [
        "511472b9110d15cf30a205bb514eb98f6afce651"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Feb 11 14:15:10 2014 +0000"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 12:14:43 2014 -0800"
      },
      "message": "AArch64: Add ARM64 Assembler\n\nThis patch adds the ARM64 Assembler and ManagedRegister backend.\nThe implementation of the Arm64Assembler class is based on VIXL (a\nprogrammatic A64 Assembler - see external/vixl ).\n\nChange-Id: I842fd574637a953c19631eedf26f6c70d9ed7f9e\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "3cd52df3d740f8a656233b199dfcaab165f415ff",
      "tree": "4afa8c91584a5a18c9ac1be9e6ff39d6f1dae97b",
      "parents": [
        "2fecd65be4ce930e15a9d20358d32a650a2442b9",
        "f2b39562f384aa94dfff7e2d226c497f76800004"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 05 15:45:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 05 15:45:10 2014 +0000"
      },
      "message": "Merge \"Fix portable build.\""
    },
    {
      "commit": "2fecd65be4ce930e15a9d20358d32a650a2442b9",
      "tree": "fbcd2e0d71b0b4577553ff93bb890f31bf2e8f42",
      "parents": [
        "83f56a43d85dfdadb07cd6b057c03f4df45af647",
        "d4dd255db1d110ceb5551f6d95ff31fb57420994"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 05 15:42:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 05 15:42:51 2014 +0000"
      },
      "message": "Merge \"Add codegen support to the optimizing compiler.\""
    },
    {
      "commit": "d4dd255db1d110ceb5551f6d95ff31fb57420994",
      "tree": "93c9dfff8d16f2b9675c35477cc4bcd8ea3f630c",
      "parents": [
        "b565506a63e75dac4a8bb9dd54dabf5259e5b95f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 10:23:58 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 04 16:19:11 2014 +0000"
      },
      "message": "Add codegen support to the optimizing compiler.\n\nChange-Id: I9aae76908ff1d6e64fb71a6718fc1426b67a5c28\n"
    },
    {
      "commit": "f2b39562f384aa94dfff7e2d226c497f76800004",
      "tree": "260a19b40af2979f1f3ea87ed1bb991a47ffa6af",
      "parents": [
        "cc261bfd336eddac18b85d4eb47f6c905d495241"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 03 15:54:42 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 03 15:54:42 2014 +0000"
      },
      "message": "Fix portable build.\n\nChange-Id: I84f223c6629eaf567ef33cd616dbaf04af7ed0b3\n"
    },
    {
      "commit": "be0e546730e532ef0987cd4bde2c6f5a1b14dd2a",
      "tree": "41aa0541ec85b8e26c5e50cc7341f506f5d52314",
      "parents": [
        "cc261bfd336eddac18b85d4eb47f6c905d495241"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 26 11:24:15 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 03 12:55:45 2014 +0000"
      },
      "message": "Cache field lowering info in mir_graph.\n\nChange-Id: I9f9d76e3ae6c31e88bdf3f59820d31a625da020f\n"
    },
    {
      "commit": "b48b9eb6d181a1f52e2e605cf26a21505f1d46ed",
      "tree": "117d99c16f201b2f14adfe0922e56b9ff433c133",
      "parents": [
        "3c506f9877b4a106d93169b6bb5610b24a84d61c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 16:20:21 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 19:03:57 2014 -0800"
      },
      "message": "Fix clang to compile and run host tests.\n\nDon\u0027t use the computed goto interpreter with clang 3.4 as it causes compilation\nto hang.\nAvoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it\nsets clang incompatible cflags.\nMost fixes are self-evident, for the quick dex file method inliner the enums\nwere being used with ostreams, so fix the enums and operator out python script\nto allow this.\nNote this change effects portable but this is untestable as portable was broken\nby ELF file and mc linker changes.\n\nChange-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903\n"
    },
    {
      "commit": "0e33643519b68a343a7466dcaba12b8567777cc3",
      "tree": "1e806496e21c12a8cb3ad83962e0f2ceed13eeda",
      "parents": [
        "504e6997501aa19c7e7973e70f187314af95602c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 26 18:24:38 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 26 18:30:05 2014 +0000"
      },
      "message": "Move arena_bit_vector.h/cc to compiler/utils.\n\nAlso move MIR\u0027s BasicBlock related code from arena_bit_vector.h to\nbit_vector_block_iterator.cc.\n\nChange-Id: I85c224b387d31cf57a1ef1f1a36eaadf22f1c85d\n"
    },
    {
      "commit": "9c86a0279aaf953377aa9e2277592e68bf814989",
      "tree": "bb9c9ae4b6916d89d0f95c6cf4a654ad0b469e9c",
      "parents": [
        "bf5b4b3a2d216e1dc7f693bf8efe223472136bb0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 21 16:40:21 2014 +0000"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 21 09:00:50 2014 -0800"
      },
      "message": "Revert \"Annotate used fields.\"\n\nThis reverts commit 7f6cf56942c8469958b273ea968db253051c5b05.\n\nChange-Id: Ic389a194c3404ecb5bb563a405bf4a0d6336ea0d\n"
    },
    {
      "commit": "7f6cf56942c8469958b273ea968db253051c5b05",
      "tree": "8df31f196572acea32513083f98c1f387e581915",
      "parents": [
        "3188d117d6f1ba5f3a30d0ff231d816ebb59a7f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 29 10:31:55 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 20 11:26:18 2014 +0000"
      },
      "message": "Annotate used fields.\n\nAnnotate all fields used by a method early during the\ncompilation, check acces rights and record field offset,\nvolatility, etc. Use these annotations when generating code\nfor IGET/IPUT/SGET/SPUT instructions.\n\nChange-Id: I4bbf5cca4fecf53c9bf9c93ac1793e2f40c16b5f\n"
    },
    {
      "commit": "f3e2cc4a38389aa75eb8ee3973a535254bf1c8d2",
      "tree": "ae6cf8c43b724cf2c5d21bd12e0eca507dcc7842",
      "parents": [
        "e7da4cf71712a3d7a64166ceadfb176d07018d32"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 18:37:26 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 20 09:43:34 2014 +0000"
      },
      "message": "Code cleanup to avoid LLVM dependency when building with quick only.\n\nChange-Id: I0985c227d775c72fd23975d4c9bf673ba32615c2\n"
    },
    {
      "commit": "c4a2ee4958c1abe17973233b154874ade01d0a99",
      "tree": "f23021e6aa1bd70eed02e7b8573df689cb6b615b",
      "parents": [
        "de853fec54442da15a7de5df1e6988cbbe68954a",
        "dc781a13ddb4dabf646bb45d0c53b65cab948e5b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 19 20:25:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 19 20:25:19 2014 +0000"
      },
      "message": "Merge \"art: convert makefiles to support multilib build\""
    },
    {
      "commit": "818f2107e6d2d9e80faac8ae8c92faffa83cbd11",
      "tree": "0a92aa1ba319115d8af05badc150d1e9e8e5e4ca",
      "parents": [
        "a2a5354cd95faf242a70b99b7b11f8fdb7cb7c1b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 16:43:35 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 19:22:41 2014 +0000"
      },
      "message": "Re-apply: Initial check-in of an optimizing compiler.\n\nThe classes and the names are very much inspired by V8/Dart.\nIt currently only supports the RETURN_VOID dex instruction,\nand there is a pretty printer to check if the building of the\ngraph is correct.\n\nChange-Id: I28e125dfee86ae6ec9b3fec6aa1859523b92a893\n"
    },
    {
      "commit": "1af0c0b88a956813eb0ad282664cedc391e2938f",
      "tree": "22c31a72dc2d0c711056b4d4b1388a64de103261",
      "parents": [
        "68a5fefa90f03fdf5a238ac85c9439c6b03eae96"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 17:30:16 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 17:30:16 2014 +0000"
      },
      "message": "Revert \"Initial check-in of an optimizing compiler.\"\n\ng++ warnings turned into errors.\n\nThis reverts commit 68a5fefa90f03fdf5a238ac85c9439c6b03eae96.\n\nChange-Id: I09bb95d9cc13764ca8a266c41af04801a34b9fd0\n"
    },
    {
      "commit": "68a5fefa90f03fdf5a238ac85c9439c6b03eae96",
      "tree": "0f3ba23e5d3e2bbd211023fd7ce0740f694e7215",
      "parents": [
        "0bf2ed98bc7d529a28ab470d36308ee2358f5a1c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 16:43:35 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 16:48:02 2014 +0000"
      },
      "message": "Initial check-in of an optimizing compiler.\n\nThe classes and the names are very much inspired by V8/Dart.\nIt currently only supports the RETURN_VOID dex instruction,\nand there is a pretty printer to check if the building of the\ngraph is correct.\n\nChange-Id: Id5ef1b317ab997010d4e3888e456c26bef1ab9c0\n"
    },
    {
      "commit": "dc781a13ddb4dabf646bb45d0c53b65cab948e5b",
      "tree": "b74e4a579747ce12297b5a66f04669f42dfffa6a",
      "parents": [
        "89925e948c49616689eb4959aaf0e4ff1de18161"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 04 16:22:03 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 18 17:22:15 2014 -0800"
      },
      "message": "art: convert makefiles to support multilib build\n\nConvert makefiles to allow for building two architectures at the\nsame time.  More changes may be necessary to get the tests to\nbuild.\n\nChange-Id: I02ba11706b7e5b5592d76e43c167bcbf0e665b93\n"
    },
    {
      "commit": "f5df8974173124faddb8e2b6a331959afdb94fdf",
      "tree": "26114bf466b445c60176b06a2f8a01f1e14e9358",
      "parents": [
        "32a6c7f3bd76bbe574675d44b7d8076995690a5b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 14 18:37:08 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 10:03:48 2014 +0000"
      },
      "message": "Rewrite the compiler interface for CompilerDriver.\n\nChange-Id: I15fa9afe7ffb7283ebda8d788a1e02793e3f75a6\n"
    },
    {
      "commit": "c7f832061fea59fd6abd125f26c8ca1faec695a5",
      "tree": "183afb5dfc1f4e6fb81f14707caffa558d31dbcc",
      "parents": [
        "7ea5dafc81b2bba7cabad26130bb75dc8f709803"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 24 17:55:18 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 28 11:22:42 2014 +0000"
      },
      "message": "Refactor verification results.\n\nRename VerificationMethodsData to VerificationResults.\nCreate new class VerifiedMethod to hold all the data for\na given method.\n\nChange-Id: Ife1ac67cede20f3a2f9c7f5345f08a851cf1ed20\n"
    },
    {
      "commit": "4e3b284b2babf813c26ad9afb129f57e3d88f67d",
      "tree": "192dab3320cc06b43d8967983a755711f0287c12",
      "parents": [
        "ed31badc6de501320f49bec679dcdf9214ac07cc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jan 18 11:26:51 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jan 18 22:56:17 2014 -0800"
      },
      "message": "Update ElfWriterMclinker for klp\n\n(cherry picked from commit a6263af9aea65c65744bdd845fed68c4814e9514)\n\nChange-Id: I3eb9fee8afb1ef12aae4c87770882afee637971d\n"
    },
    {
      "commit": "4e97c539408f47145526f0062c1c06df99146a73",
      "tree": "f196db2807a8e3640ad86e1d8026f2007348db19",
      "parents": [
        "121f6a1ebaf8abd2b7ec99df8347ec87b78548f7"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Tue Jan 07 10:07:18 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 13 19:34:52 2014 -0800"
      },
      "message": "Added pass framework\n\nThe patch adds a Middle-End pass system and normalizes the current\n passes into the pass framework.\n\nPasses have:\n - A start, work, and end functions.\n - A gate to determine to apply the pass.\n - Can provide a CFG dump folder.\n\nmir_dataflow.cc, mir_graph.cc, mir_optimization.cc, ssa_transformation.cc:\n - Changed due to moving code into bb_optimizations.cc.\n - Moved certain functions from private to public due to needed from the passes.\n\npass.cc, pass.h:\n - Pass base class\n\npass_driver.cc, pass_driver.h:\n - The pass driver implementation.\n\nfrontend.cc:\n - Replace the function calls to the passes with the pass driver.\n\nChange-Id: I88cd82efbf6499df9e6c7f135d7e294dd724a079\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "2b5eaa2b49f7489bafdadc4b4463ae27e4261817",
      "tree": "ada8b60989919068d562e3fcee01aa5b7c5cfc61",
      "parents": [
        "0bf1f266869776c2dd21b3242599d74ac80855f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 13 13:59:30 2013 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 17 11:03:53 2013 +0000"
      },
      "message": "Move compiler code out of method verifier.\n\nWe want to detect small methods for inlining at the end of\nthe method verification. Instead of adding more compiler\ncode to the runtime, we create a callback from the runtime\ninto the compiler, so that we can keep the code there.\nAdditionally, we move the compiler-related code that was\nalready in the method verifier to the compiler since it\ndoesn\u0027t really belong to the runtime in the first place.\n\nChange-Id: I708ca13227c809e07917ff3879a89722017e83a9\n"
    },
    {
      "commit": "867a2b35e67ddcbec089964e8f3cd9a827186e48",
      "tree": "393bfdb93cbec42bebe699c56e052a96502fa2a1",
      "parents": [
        "70b797d998f2a28e39f7d6ffc8a07c9cbc47da14"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 10 13:01:13 2013 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 10 15:23:20 2013 +0000"
      },
      "message": "Get rid of platform-specific method inliners.\n\nThe DexFileToMethodInlinerMap dependency on CompilerDriver\nand its instruction set makes it impossible to implement\nverification-time checking for methods we want to inline.\nTherefore, we get rid of the platform-specific method\ninliners and rely on the backend\u0027s existing ability to\nrecognize when it can actually emit an intrinsic function.\n\nChange-Id: I57947db93f13a26c1c794cb3584130321106306f\n"
    },
    {
      "commit": "5c96e6b4dc354a7439b211b93462fbe8edea5e57",
      "tree": "b89930ae568d5219e4cb1823586a6e536bebdd9b",
      "parents": [
        "ca368cb576cf6a436a32c357fca51fbb3082d7a9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 14 15:34:17 2013 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 18 12:11:02 2013 +0000"
      },
      "message": "Rewrite intrinsics detection.\n\nIntrinsic methods should be treated as a special case of\ninline methods. They should be detected early and used to\nguide other optimizations. This CL rewrites the intrinsics\ndetection so that it can be moved to any compilation phase.\n\nChange-Id: I4424a6a869bd98b9c478953c9e3bcaf1c6de2b33\n"
    },
    {
      "commit": "ba150c37d582eeeb8c11ba5245edc281cf31793c",
      "tree": "ca12cf82602e4b78b2a6ca463e9d0e35fc5e3ff6",
      "parents": [
        "3c2a6e2468e3e519ade6c3cfcaad7cd34243cdf1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 27 17:31:03 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 28 00:06:03 2013 -0700"
      },
      "message": "Omit OatMethodOffsets for classes without compiled code\n\nChange-Id: If0d290f4aebc778ff12d8fed017c270ad2ac3220\n"
    },
    {
      "commit": "413e89f277ec6ba1bdf2040f5b5611f29a27a447",
      "tree": "41fb703df7e0f208bbfa0d94919efae9630e7d1c",
      "parents": [
        "79b4f38dd35b83206e8166aaafb94bd75c3318b3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 21 23:53:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 24 14:43:30 2013 -0700"
      },
      "message": "Refactor ArenaBitVector to create more general BitVector\n\nChange-Id: Ib26f2884de9ce7d620048bdf5ed6dec639622e41\n"
    },
    {
      "commit": "d9c4fc94fa618617f94e1de9af5f034549100753",
      "tree": "1305efbbc3d4bc306c0947bb6d4b01553667f98e",
      "parents": [
        "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 01 19:45:43 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 02 09:31:55 2013 -0700"
      },
      "message": "Inflate contended lock word by suspending owner.\n\nBug 6961405.\nDon\u0027t inflate monitors for Notify and NotifyAll.\nTidy lock word, handle recursive lock case alongside unlocked case and move\nassembly out of line (except for ARM quick). Also handle null in out-of-line\nassembly as the test is quick and the enter/exit code is already a safepoint.\nTo gain ownership of a monitor on behalf of another thread, monitor contenders\nmust not hold the monitor_lock_, so they wait on a condition variable.\nReduce size of per mutex contention log.\nBe consistent in calling thin lock thread ids just thread ids.\nFix potential thread death races caused by the use of FindThreadByThreadId,\nmake it invariant that returned threads are either self or suspended now.\n\nCode size reduction on ARM boot.oat 0.2%.\nOld nexus 7 speedup 0.25%, new nexus 7 speedup 1.4%, nexus 10 speedup 2.24%,\nnexus 4 speedup 2.09% on DeltaBlue.\n\nChange-Id: Id52558b914f160d9c8578fdd7fc8199a9598576a\n"
    },
    {
      "commit": "193bad9b9cfd10642043fa2ebbfc68bd5f9ede4b",
      "tree": "0fc125adc74316df802b76889a780decd5b8236b",
      "parents": [
        "179486aee731f734207873244542993ed4bcff21"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 29 18:46:00 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 03 17:44:20 2013 -0700"
      },
      "message": "Multi threaded hashed deduplication during compilation.\n\nMoved deduplication to be in the compiler driver instead of oat\nwriter. This enables deduplication to be performed on multiple\nthreads. Also added a hash function to avoid excessive comparison\nof byte arrays.\n\nImprovements:\nBefore (alloats host):\nreal\t1m6.967s\nuser\t4m22.940s\nsys\t1m22.610s\n\nThinkfree.apk (target mako):\n0m23.74s real     0m50.95s user     0m9.50s system\n0m24.62s real     0m50.61s user     0m10.07s system\n0m24.22s real     0m51.44s user     0m10.09s system\n0m23.70s real     0m51.05s user     0m9.97s system\n0m23.50s real     0m50.74s user     0m10.63s system\n\nAfter (alloats host):\nreal\t1m5.705s\nuser\t4m44.030s\nsys\t1m29.990s\n\nThinkfree.apk (target mako):\n0m23.32s real     0m51.38s user     0m10.00s system\n0m23.49s real     0m51.20s user     0m9.80s system\n0m23.18s real     0m50.80s user     0m9.77s system\n0m23.52s real     0m51.22s user     0m10.02s system\n0m23.50s real     0m51.55s user     0m9.46s system\n\nBug: 10552630\n\nChange-Id: Ia6d06a747b86b0bfc4473b3cd68f8ce1a1c7eb22\n"
    },
    {
      "commit": "c6dfdacea2fd9e268f70328805b0366cdd6b7b9e",
      "tree": "8c6032e2276a3962054dd450025dcf3cc817e43f",
      "parents": [
        "b8a874ca3b13007f4bf688963483ffb3c76e0d7d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 26 18:57:31 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 26 22:33:11 2013 -0700"
      },
      "message": "Add buffering to ELF file generation\n\nBug: 10496017\nChange-Id: I3cbad249e0fb33f726bd0a504b3b6bd9b4f759c8\n"
    },
    {
      "commit": "3eeda8fe5a481226b246d08e1c645f3ee3b48cf2",
      "tree": "0f96cb7f34888aa81b4dc2ce9345d979987745ec",
      "parents": [
        "0e480cad5d2cf0904b98b7b56e90280e9b97ba30",
        "90af14d2743614e3e1453984b14258a6f145501d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 16 22:56:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 22:56:30 2013 +0000"
      },
      "message": "Merge \"Get SEA fibonacci running in interpreter mode.\" into dalvik-dev"
    },
    {
      "commit": "0e480cad5d2cf0904b98b7b56e90280e9b97ba30",
      "tree": "56e12c8d362e1c6aaef38e8d1f7e54ade1b3a21c",
      "parents": [
        "d2b0f33cf01601f040494f4f882e60f70b527930"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 16 14:36:13 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 16 14:57:10 2013 -0700"
      },
      "message": "Move output_stream files out of runtime.\n\nAlso move image_test and oat_test that are more writing tests.\n\nChange-Id: I6af1400d8e745bbf87f626ca87dae3e2d85b40f1\n"
    },
    {
      "commit": "90af14d2743614e3e1453984b14258a6f145501d",
      "tree": "defcc7bdc0a85de36695b7c7285d7d5759ade92c",
      "parents": [
        "212ec8f32919d50a1e1cb7ea4b3b91ca938ae4e6"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu Aug 15 17:50:16 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Fri Aug 16 14:34:53 2013 -0700"
      },
      "message": "Get SEA fibonacci running in interpreter mode.\n\nAndroid.mk: Added new file to build.\ncompile_driver.cc: Moved SE_IR usage test in the block\n         protected by bool compile, which is enabled by\n         adding a sepatate test in IsCnadidateForCompilation.\nclass_linker.cc: Added check in NeedsInterpreter to enable SEA_IR.\nart_method-inl.h: DIsabled check in SEA_IR mode.\nmethod_verifier.cc: Added check for SEA_IR mode.\nmethod_verifier.h: Chenged IsCandidateForCompilation signature to\n         allow testing the function name (for SEA_IR selective\n         compilation).\ndot_gen.h: Updated ART file API usage to altest version.\nsea_ir/frontend.cc: Passing function symbol name to CompileMethod.\ninstruction_Nodes.h: Added  accessor for method index for\n         InvokeStatic IR node.\nsea.cc: Added additional IR SignatureNode for function calls (extra\n         Method parameter). Fixed UnnamedConstant constant value.\nsea.h: Passing function_name to GenerateLLVM.\ntype_inference_visitor.cc: Aded type for first (placeholder) method\n         parameter.\n\nChange-Id: I295858ea0761a3dffb36f35748d8b93d4919d6a9\n"
    },
    {
      "commit": "c9f9444a0d58f395fee5ddd9f55ff32f92cb7b57",
      "tree": "2626125a263f8cbb0b733631a7c6fd2a07e9360a",
      "parents": [
        "b0f871965d588cce066785728fb105248b38bb4a",
        "a024a0686c3b0fea13f362bff70d65981e5febc5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 08 14:01:03 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 08 14:01:03 2013 -0700"
      },
      "message": "am a024a068: Compilation filter\n\n* commit \u0027a024a0686c3b0fea13f362bff70d65981e5febc5\u0027:\n  Compilation filter\n"
    },
    {
      "commit": "a024a0686c3b0fea13f362bff70d65981e5febc5",
      "tree": "99b003e7524544156a4e94bcca7daa41ed4d4b77",
      "parents": [
        "e0a53e99e2a01f8668d6616c3cec7e2f5a711286"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jul 31 10:47:37 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 08 13:30:16 2013 -0700"
      },
      "message": "Compilation filter\n\nThis CL introduces a static compilation filter mechanism intended\nto allow us to reduce compilation time and space requirements until\nwe have a profiling mechanism in place.\n\nIt supports 5 modes of filtering:\n\n   o interpret-only (compile nothing)\n   o deferred-compilation (compile only those methods believe to be\n     compute-intensive)\n   o space (optimized for space)\n   o balanced (best return on space investment)\n   o speed (compile everything)\n\nA future CL will allow the default filtering mode to be set\nvia system property.  For now, you can pass it in via command\nline as follows:\n\n   dalvikvm -compiler-filter:[interpret-only|defer-compilation|\n                              space|balanced|speed]\n\nor dex2oat --runtime-arg -compiler-filter:[one of the above modes]\n\nCreating a file named art/SMALL_ART will force the filter\ndefault to interpret-only.  Later on we\u0027ll move this capability\nto a persistent system property.\n\nor modify kDefaultCompilerFilter in runtime.h\n\nIt also changes the compiler driver to allow the compilers to\ndecline to compile a method by return NULL.\n\nChange-Id: Ic73411818f8bb845a4a19a05b0395c50902c534f\n"
    },
    {
      "commit": "848871b4d8481229c32e0d048a9856e5a9a17ef9",
      "tree": "4be4602e3becc899f76a29a87618801458fe04b9",
      "parents": [
        "423fb4d70f2ac36bf9f630146b4150771a8e7e76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 05 10:56:33 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 07 22:17:00 2013 -0700"
      },
      "message": "Entry point clean up.\n\nCreate set of entry points needed for image methods to avoid fix-up at load time:\n - interpreter - bridge to interpreter, bridge to compiled code\n - jni - dlsym lookup\n - quick - resolution and bridge to interpreter\n - portable - resolution and bridge to interpreter\n\nFix JNI work around to use JNI work around argument rewriting code that\u0027d been\naccidentally disabled.\nRemove abstact method error stub, use interpreter bridge instead.\nConsolidate trampoline (previously stub) generation in generic helper.\nSimplify trampolines to jump directly into assembly code, keeps stack crawlable.\nDex: replace use of int with ThreadOffset for values that are thread offsets.\nTidy entry point routines between interpreter, jni, quick and portable.\n\nChange-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e\n"
    },
    {
      "commit": "bfaf44fa3366955a2bacb2c38c79b53df2434582",
      "tree": "61d7621de5ab245d6e55675c925ef18e691101b8",
      "parents": [
        "53c45f117a1e404c121c4eb6fb4c35706e2fdf62"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Tue Aug 06 15:41:44 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Wed Aug 07 10:43:49 2013 -0700"
      },
      "message": "Refactored SEA IR folder structure to be more logical.\n\nChange-Id: I302c79af92c07cceb38dff36efe416bfa4869a91\n"
    },
    {
      "commit": "6447919b5ee8d34c4767f908c7cd7223c224544c",
      "tree": "f5931682be1b8e618051b3b2b4150c06aea6825e",
      "parents": [
        "3d1b8c1931fcc7e1d13a19b09e61a69fafb77d3b"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu Aug 01 15:38:43 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Mon Aug 05 10:21:12 2013 -0700"
      },
      "message": "Generation of dot files through visitor.Added type info to .dot.\n\nvisitor.h: Fixed formatting.\ntype_inference.cc: Changed GetSSAConsumers() to return pointer.\nsea_node.h, sea.cc: Removed ToDot classes functions.\ninstruction_nodes.h: Added acessor for SSA producers.\n                     Marked GetUses() as const.\nsea.h: Marked fields as const.\nfrontend.cc: Changed .dot generation code.\ncode_gen.h: Fixed include to have full path.\n\nChange-Id: Ia84371c171c4537d9cf2f56644baa075f1706df1\n"
    },
    {
      "commit": "b40eddfc96b9ac235dea562e55ce2ad7b1cfb7c9",
      "tree": "9f33a14f2dd37980ff7e0434f913ad2aa91b1b2f",
      "parents": [
        "8d4fb0eb94ea3dd5db9461230e2c11926e4ebdb4"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Wed Jul 31 13:37:31 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu Aug 01 10:37:12 2013 -0700"
      },
      "message": "Added SEA IR type infrastructure (and a bit of cleanup).\n\ncompiler/Android.mk: Added new files to compile.\ninstruction_nodes.h,\ncode_gen.cc: Renamed GetSSAUses to GetSSAProducers to avoid confusion\n             (uses of what?).\nsea.cc: Added invoke of type inference framework.\nsea.h: Expose dex_file through GetDexFile().\n       Added GetPositionInSIgnature() for SignatureNodes.\nsea.cc: Cleanup of debug output.\nvisitor.h: Removed dependence on LLVM (now only in code_gen.*).\n           Corrected minor typo in comment.\nfrontend.cc: Renamed access_flags for clarity.\n\nChange-Id: I211d2e9ff1e0c4f910de73a52a5ac2c50e4ca7df\n"
    },
    {
      "commit": "f133479fa1d7e41bc9e63f50088dbcb8592d074c",
      "tree": "90466fb1941f08e63d565715901592131703b6e7",
      "parents": [
        "0b12b9318c29d7c32d5a605e0b1dc309872c8a37",
        "025218c7e4330a4942b14f9a8f1f68bd3390261c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 30 21:38:38 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 30 21:38:38 2013 -0700"
      },
      "message": "am 025218c7: Clean up stlport usage.\n\n* commit \u0027025218c7e4330a4942b14f9a8f1f68bd3390261c\u0027:\n  Clean up stlport usage.\n"
    },
    {
      "commit": "025218c7e4330a4942b14f9a8f1f68bd3390261c",
      "tree": "8bfc33d0dcc9d5687845cea2c8d24a5020b1aa3a",
      "parents": [
        "2724776ad521eebb1c7f0e4be56d6e6ab4764f86"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 30 17:13:06 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 30 17:13:06 2013 -0700"
      },
      "message": "Clean up stlport usage.\n\nChange-Id: I133cd88f1da37f6f801a9e07a78ae23b671cf4f1\n"
    },
    {
      "commit": "c95d6b1cb35b382804b9a310d32f66059eca65d9",
      "tree": "c1425fd0cb38efd47bfbc97fff839fbac922e02c",
      "parents": [
        "166db04e259ca51838c311891598664deeed85ad",
        "b07b8b7a1815fc22c0e7b3f0899406cc7eeebaca"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 18:20:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 29 18:20:01 2013 +0000"
      },
      "message": "Merge \"Move vector output stream to compiler.\" into dalvik-dev"
    },
    {
      "commit": "b07b8b7a1815fc22c0e7b3f0899406cc7eeebaca",
      "tree": "350bf8394b15497ad004deca1803aba1484b7fae",
      "parents": [
        "d41119e863a9f9c5809b7732d30870ffd237b60c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 11:12:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 11:12:14 2013 -0700"
      },
      "message": "Move vector output stream to compiler.\n\nChange-Id: Ia4c5edabb6be31a7d953c932b490ed2d89f941c1\n"
    },
    {
      "commit": "166db04e259ca51838c311891598664deeed85ad",
      "tree": "5ffa63c1b3bf58e92be2890c54f0ba6fdec2059e",
      "parents": [
        "d41119e863a9f9c5809b7732d30870ffd237b60c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 26 12:05:57 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 09:52:11 2013 -0700"
      },
      "message": "Move assembler out of runtime into compiler/utils.\n\nOther directory layout bits of clean up. There is still work to separate quick\nand portable in some files (e.g. argument visitor, proxy..).\n\nChange-Id: If8fecffda8ba5c4c47a035f0c622c538c6b58351\n"
    },
    {
      "commit": "8a7bc17da633d3577eda040ac490cbd8351dc6b9",
      "tree": "39054b0494486aa68d3852e5125c855af3e01952",
      "parents": [
        "3489af22a126e135acfc3c93beec9c31999c0ce6",
        "55c0ac8528fb07c9f0900013b828ee8c60120860"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 23 14:21:45 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 23 14:21:45 2013 -0700"
      },
      "message": "am 55c0ac85: Merge \"Enable darwin target build for art.\"\n\n* commit \u002755c0ac8528fb07c9f0900013b828ee8c60120860\u0027:\n  Enable darwin target build for art.\n"
    },
    {
      "commit": "19e776ceb178397661b0323a9a982f6db249a56d",
      "tree": "f1e7911e08077dba585b61514d151f2854763f7c",
      "parents": [
        "4560248d4c85cade7f4fc7b30c3fb41b95a04a7f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 23 12:16:44 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 23 12:16:44 2013 -0700"
      },
      "message": "Enable darwin target build for art.\n\nChange-Id: I8fc04258360d663d2fcd07c307fdfdd2981cdd19\n"
    },
    {
      "commit": "0e260a32601fb1178e11837c460807071d489f82",
      "tree": "5b9d4ac485805f99e0ada0009bbe040cf0d523e9",
      "parents": [
        "49ed57499b918553e2d3db922ca2826dffa5bcd1"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Fri Jun 21 09:20:34 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Mon Jul 22 10:19:07 2013 -0700"
      },
      "message": "Added code generation framework.\n\nvisitors.h: Contains only IR visitor declarations for now.\ncode_gen.h: Code generation vistor declaration (needs llvm).\ncode_gen.cc:Code generation visitor implementation (needs llvm).\ninstruction_nodes.h: Classes for each type of instruction; this\n            enables the visitor to visit each instruction differently and\n            corresponds to the sea of nodes paper.\nsea_node.h : Moved base Sea IR Node to this separate header.\n             Replaced NO_REGISTER with enum (including RETURN_REGISTER)\nsea.cc: Addded code generation call.\n        Set parent region for SignatureNodes.\n        Propagate method and class ids in IR generation routine.\n        Create InstructionNode subclasses.\n*.mk: Updated to support the new files. Fixed some pre-existing formatting.\ninstruction_tools.h: Fixed double-define of NO_REGISTER to\n                     refer to the new enum.\ndex_instruction.cc: Added support for one more instruction in\n                    HasRegXX and VRegXX functions.\n\nChange-Id: I7c78f603e41df7bf9da5b77951b8485dd1b49200\n"
    },
    {
      "commit": "e68fb3c532f7a99c50b34321577dfc8a1bc3e6b1",
      "tree": "d4349e7679fe844f06a3fce2feaded223775c859",
      "parents": [
        "7940e44f4517de5e2634a7e07d58d0fb26160513"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Jul 12 19:46:57 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Jul 12 19:46:57 2013 -0700"
      },
      "message": "Mark libbcinfo as a SHARED_LIBRARY dependency.\n\nART\u0027s compiler depends on libbcc, which transitively depends on libbcinfo.\nWithout the direct specification, it is possible to end up with a build that\nfails to link.\n\nChange-Id: I8a7237e2d5ed8118e4f4d78031ac528d0905c070\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "1581766afea0b31de0ed0f9f677fc3b92a29daae",
      "tree": "78793c270596134e5848dda3af66e674a7160017",
      "parents": [
        "3d76933675895667f212500a65c9c7ea2b6209fc",
        "51c2467e8771b56e25ae4f17f66522f979f57a7e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 08:50:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 08:50:57 2013 -0700"
      },
      "message": "resolved conflicts for merge of 51c2467e to dalvik-dev\n\nChange-Id: Ia7a8785d3220df6feeb999bc70f6d1917cad8d75\n"
    },
    {
      "commit": "51c2467e8771b56e25ae4f17f66522f979f57a7e",
      "tree": "16a66abbb45ea3fcc8c513c8511f34a46cd454c4",
      "parents": [
        "27c590edf6c24107b6473e84e526c432bd081f6e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 11 16:00:56 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 11 21:16:04 2013 -0700"
      },
      "message": "libart-compiler cleanup\n\n- Move compile-time code to src/compiler and libart-compiler\n  OatWriter, ImageWriter, ElfWriter, ElfFixup, ElfStripper, stub generation\n- Move ClassReference and MethodReference to remove MethodVerifier dependency on CompilerDriver\n- Move runtime_support_llvm.cc out of src/compiler and next to runtime_support.cc\n- Change dex2oat and gtests to directly depend on libart-compiler\n- Move non-common definitions from Android.common.mk to more specific makefiles\n- Add LOCAL_ADDITIONAL_DEPENDENCIES on appropriate makefiles\n\nChange-Id: I897027e69945914128f21f317a92caf9255bc600\n"
    },
    {
      "commit": "d25de7a7c5f3c9462654a572e28cca73909520b0",
      "tree": "2309d2c81ab43c4b474424e3fb4d4ef66d296508",
      "parents": [
        "8a8539937f9cdbe37e0fba64101012a35ae204bf"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Fri Jun 21 09:20:34 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Wed Jul 03 11:48:17 2013 -0700"
      },
      "message": "Preparing SSA support for SEA IR: reaching definitions.\n\nAdded the following:\n- Downward-exposed uses.\n- Reaching definitions.\n- Better .dot generation.\n\nPer file:\nsea_ir/sea.*: Downward exposed definitions and reaching definitions code.\ndex_instruction.*: Wrapper function added to expose the vA register,\n                   which is later used by dataflow analysis.\nsea_ir/instruction_tools.*: These tools provide info needed by dataflow analysis\n                            that is dependent on dex format.\ndex/frontend.cc: Formatting issues fixed.\nsea_ir/*.*: All files pass cpplint validation.\n*.mk: Support for new files added in this CL.\n\nChange-Id: Ic510e7fb55aebcde99a121304ee7e841a3307358\n"
    },
    {
      "commit": "7467ee05012e1fd9834df74663c1ebda46f5636b",
      "tree": "d93d7b7f13440eff50c552ccdab8ce8e4e5a9547",
      "parents": [
        "b126134010ebeee771da0eec7fa76ad13fe9a9c9"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Fri Jun 21 09:20:34 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Tue Jun 25 13:12:53 2013 -0700"
      },
      "message": "Added support for SEA IR.\n\n- Modified makefile to take the existance of SEA_IR_ART\n  file to mean \"switch to sea ir mode\".\n- Switching SEA IR mode on leads to the new compiler being\n  fed the fibonacci methods only, if they are used as input.\n- Added partial support for the control flow subgraph of\n  the SEA IR (instruction nodes and region nodes for\n  conditional and unconditional branches).\n\nChange-Id: I29020b8e2df5a00fde75715c3683cc25038589f4\n\nConflicts:\n\tsrc/compiler/driver/compiler_driver.cc\n"
    },
    {
      "commit": "2d6ba5158d7fd459db2870df47300b517dc4d08c",
      "tree": "51e306969d4d707aee7a6bc36481390721e0f81f",
      "parents": [
        "1e2ee7de9dff66f7ca2bdf83a7262e21d75b37d1"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 17 11:31:37 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Jun 24 15:29:06 2013 +0200"
      },
      "message": "Quickening support.\n\nThis CL adds quickening support for methods which are interpreted at runtime.\n\nThis CL introduces a DEX-to-DEX compiler. A method is now compiled in one of\nthe two following modes:\n- Native compilation: the method is compiled by the Quick or Portable backends.\nAt runtime, the generated native target-dependent code is executed.\n- DEX-to-DEX compilation: the method is executed by the interpreter at runtime.\nIts DEX code is compiled so some instructions can be replaced by special\ninstructions only valid at runtime. No native code is generated.\n\nThe quickening adds special instructions to improve runtime performance. They\nare \"-quick\" versions of the following instructions:\n- iget/iput\n- iget-wide/iput-wide\n- iget-object/iput-object\n- invoke-virtual/range.\n\nThese special instructions cannot be treated by the verifier since they lose\nthe field/method index referencing the field/method being accessed/invoked.\nTo prevent this, the DEX-to-DEX compiler is run only on methods of preverified\nclasses (without verification error at compilation time).\n\nThe DEX-to-DEX compiler implements quickening support using the CompilerDriver\ninterface like the native compiler does (Quick or Portable backends).\nTo replace instructions, the DEX-to-DEX compiler must be able to modify the\nmmapped DEX file. Since it can be read-only protected, the DEX-to-DEX compiler\nmust be able to temporarily change its protection to read-write mmapped file.\nTo achieve this, this CL adds support for changing DEX file protection with\nDexFile::EnableWrite and DexFile::DisableWrite methods. Besides, it also adds\na dedicated lock (DexFile::modification_lock) to ensure thread-safety and avoid\nconcurrent DEX file protection change (from a parallel DEX-to-DEX compiler on\nthe same DEX file).\n\nChange-Id: Iaafd103b9766810d7fc94a2c424a8fafba66e26a\n"
    },
    {
      "commit": "8d3a117b374352a1853fae9b7306afeaaa9e3b91",
      "tree": "3d715e8abed609581249034f1f62037def104ac2",
      "parents": [
        "4b3dc167917f8cf700416659b1bca220c1ccafe9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 04 01:13:28 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 04 09:16:43 2013 -0700"
      },
      "message": "Perf tweaks to compiling and oat writing.\n\nMake hot quick compiler routines inlinable.\nRemove computation/use of SSA strings.\nUse vector insert when writing to the end of a vector in the output stream, to\navoid a memset followed by a memcpy.\n\nGenerating boot.oat/art these changes improve performance by around 2.5%.\n\nChange-Id: I3d0bdb01333efe8f0eda4bdf97225e0b307f934d\n"
    },
    {
      "commit": "1e8c505213dea6ce5a29aa1b7a78a3566251e60c",
      "tree": "e2bbb8b20d9b56831b98e518c034bebefb6e85b8",
      "parents": [
        "7f55288906c21b99801d75bb6fe17fe25af5c1e9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 20:25:19 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 20:25:19 2013 -0700"
      },
      "message": "Remove quick compile-time dependency on mclinker\n\nChange-Id: Ib3444a0cb53438dcd38290a23381cb445384c865\n"
    },
    {
      "commit": "6a47b9dc850b903aabefcfab4adb132cb68bba2e",
      "tree": "924d2ea244bb01a48620e704b181a1d9d1f4055c",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 17 10:58:25 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 18:37:04 2013 -0700"
      },
      "message": "Refactor ElfWriter and introduce ElfWriterQuick\n\nChange-Id: I3eaa1fa1085bb4d28fe342a7420272720e48274b\n"
    },
    {
      "commit": "cd5d0422ac07b03220970a3606f8b402a3636528",
      "tree": "6879c685081ce4e4f53eb33bb2a8ad60d55cdc9b",
      "parents": [
        "e606010a5e5ea803736576b47740a2551e5d0dfc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 17 15:54:01 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 17 15:54:01 2013 -0700"
      },
      "message": "Clang build support, -Wthread-safety with GCC 4.6.\n\nChange-Id: Idccb4daa012c66a6ece3f7a037c9c2c029beba64\n"
    },
    {
      "commit": "9d6589c2744835bf946e52b3dfcbcec7099e343e",
      "tree": "c2225b4f1f59f41bb0d1ad001e8fce9bda0c4872",
      "parents": [
        "1c42ff9a4729cd9c1f947476fdae237506ac2e0e",
        "862a76027076c341c26aa6cd4a30a7cdd6dc2143"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Apr 11 00:24:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 11 00:24:41 2013 +0000"
      },
      "message": "Merge \"Compiler: continuing refactoring\" into dalvik-dev"
    },
    {
      "commit": "862a76027076c341c26aa6cd4a30a7cdd6dc2143",
      "tree": "4a683c0aac1af88db8138cdcb36ecd2d006f2f7a",
      "parents": [
        "5fa60c3db4208df407113b5a69d295a9c93d53b1"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Apr 05 10:58:54 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Apr 10 14:04:37 2013 -0700"
      },
      "message": "Compiler: continuing refactoring\n\nMoving the arena memory allocation mechanism into it\u0027s own class as\na prelude to cleaning up the MIR and LIR data structures.\n\nReworked bit vector as a class using placement new w/ the arena\nallocator.\n\nReworked GrowableList as a class template using the new arena\nallocator and renamed to GrowableArray.\n\nChange-Id: I639c4c08abe068094cae2649e04f58c8addd0015\n"
    },
    {
      "commit": "9609cb6ee479d5853aaf170d55b60715491c5db5",
      "tree": "4b227a7c81ee685ee542eae97208a15fa2266eee",
      "parents": [
        "5fa60c3db4208df407113b5a69d295a9c93d53b1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 05 16:48:22 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 08 10:23:45 2013 -0700"
      },
      "message": "Remove remaining code related to compiled invoke and proxy stubs.\n\nChange-Id: Ib0b2829fed9d7efee09d098ce4db9d13f2fa2eac\n"
    },
    {
      "commit": "bf393efe476801b7f27fe6aa47691e3305552e9e",
      "tree": "2bfd05752781815306c115e40aab2b5fef10dfd0",
      "parents": [
        "c404bfb072f9273beb13bf8e098e2a4aa108f18b",
        "b56812165dd3a2e6eb8b85c810943b3d7bd9bfc4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 30 14:41:33 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 30 14:41:33 2013 -0700"
      },
      "message": "Merge branch \u0027dalvik-dev\u0027 of https://googleplex-android.googlesource.com/a/platform/art into fixes-for-art-build-with-mr2\n\nChange-Id: Ie46d1f77f98b8a6f55f02b8614cb88b36b6a2d44\n"
    },
    {
      "commit": "ecc668244c869af4241662f51ff0ecb7e77c6bdb",
      "tree": "33f78c2932ddea57ea49e63faffc88c06fa8fd5b",
      "parents": [
        "f3c9932f97486b8e327add270217f806e04b2309"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 29 16:58:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 29 17:03:11 2013 -0700"
      },
      "message": "Tracking rename of libcompiler-rt.a to libcompiler_rt.a\n\nChange-Id: I3f9396dbef38d38245a181023f2ad0f74866458c\n"
    },
    {
      "commit": "74180cad94848107cf297d37e72437c5a6eecf1b",
      "tree": "9dfa6f7183bc7d6085a2753483b0f7a93c3ce486",
      "parents": [
        "857fe960a02834c0d6b8792dcc0af8143995cb1f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 27 15:29:11 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 27 15:29:11 2013 -0700"
      },
      "message": "Remove code related to compiled invoke stubs.\n\nNote that the oat file version is now bumped to 004. A clean-oat will be\nnecessary after syncing this change.\n\nChange-Id: If8875335b7fcc39b6b40c6f95de07da50da7b6b8\n"
    },
    {
      "commit": "37d4879df243f7a2161b5416fad299ad1d495131",
      "tree": "af247644575db7bb85db29d3694c40a8b9ebef54",
      "parents": [
        "59b976bc993af84fdc7af9b72cb60bf709cc7ffa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 22 14:14:45 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Mar 24 23:20:55 2013 -0700"
      },
      "message": "Changes to move to jb-mr2 based llvm\n\nChange-Id: Iae8b2164f25146807662a6025a254fec6d40bb52\n"
    },
    {
      "commit": "311ca169f4727d46a55bdc8dfa0059719fa72b65",
      "tree": "c92882e4bb34029bcc71495045e062accea10ced",
      "parents": [
        "2af52e76dc76b41969b6147d7bd6925d0f61e932"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 28 15:56:43 2013 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 19 19:14:52 2013 -0700"
      },
      "message": "Compiler: Spring cleaning\n\nSignificant restructuring of the Quick compiler to break out the\ncommon frontend more cleanly.  Additional C++\u0027ification.\n\nThe goal is to move from the monolithic structure of the old\nJIT towards a more modular model in which components - in\nparticular the compiler backend - can be replaced.  This CL\nfocuses on moving MIR-related data from the CompilationUnit\nstruct into a new MIRGraph class.  The next CL will isolate all\nLIR-related data and code down into the Quick backend.\n\nThis change will happen in multiple steps, and may look uglier\nbefore it starts looking better.\n\nAmong the changes:\n\n   o Moved all mir-related fields from CompilationUnit to new\n     MirGraph class.\n\n   o Moved the register promotion stuff into the Quick backend.\n\n   o Deleted the GBC to LIR conversion code.\n\n   o Replaced with old C-style function pointer dataflow analysis\n     dispatcher with a basic block iterator class.\n\n   o Renamed some files to make the name more consistent with what\n     the code actually does.\n\n   o Added the foundation for future inlining support.\n\n   o Stripped out the remains of the old fingerprinting mechanism.\n\nChange-Id: I6c30facc642f8084b1c7b2075cf7014de387aa56\n"
    },
    {
      "commit": "265091e581c9f643b37e7966890911f09e223269",
      "tree": "ae493ce6c3537aebc3a85f59a73500fa819a7baf",
      "parents": [
        "4c1c283a7410784e9cab309f868248690b788a9c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 30 14:08:26 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 14:08:46 2013 -0800"
      },
      "message": "Remove ExtractCodeAndPrelink and switch Portable to MCLinker\n\nChange-Id: Ia2459c7da6b79e0a1c0f1148c6e28ad9cbbe27a2\n"
    },
    {
      "commit": "4c1c283a7410784e9cab309f868248690b788a9c",
      "tree": "629ce783004007641a9a5b0c9f8e269d0fd57a8f",
      "parents": [
        "89756f21c107d96e6d1bbc75811bd33078c8ceee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 18:30:13 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 18:38:16 2013 -0800"
      },
      "message": "Move compiler_llvm to art::llvm.\n\nAlso move the invoke stubs (soon to be removed) under compiler.\nStart moving LLVM code under compiler. Will move GBC expander to dex/portable\nonce it is disentangled from other builds (moving toward solving Bug: 8195425).\n\nChange-Id: I8829f9db6ade9ac8e32bd16198b90f83619769f1\n"
    },
    {
      "commit": "0211378ed7ccdedac8ad910eb62b74625ea271aa",
      "tree": "acd853965caa859ea8823fc2a87dcdd92544072d",
      "parents": [
        "1212a022fa5f8ef9585d765b1809521812af882c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 12:12:48 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 12:12:48 2013 -0800"
      },
      "message": "Move the JNI compilers under compiler.\n\nChange-Id: Id1d40f35be191758906b96b56b74a83ab0dfb88e\n"
    },
    {
      "commit": "01d1134c605190f988744ad4916f79fcb99273cd",
      "tree": "ac6e7556df11f34f76c243a2ce6052490ecc95cd",
      "parents": [
        "76ae4fe651c77619aeeb4dd395c7ec8fc29685fc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 28 00:15:33 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 28 00:15:33 2013 -0800"
      },
      "message": "Always compile compiler_llvm files.\n\nBuild fix.\n\nChange-Id: I7dec1350345ffe2ed60a498896eda3854b0c75ff\n"
    },
    {
      "commit": "76ae4fe651c77619aeeb4dd395c7ec8fc29685fc",
      "tree": "c9160ac0bfafe49d5b4a0c303e4767ee52b7abd3",
      "parents": [
        "395116cae130c983498c0a2f42b89e42f75bb9d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 16:03:41 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 22:20:36 2013 -0800"
      },
      "message": "1 IR builder. Kill greenland. Remove JTypeSpace.\n\nChange-Id: I7d08cfd8c1fec46df4ce5f51706dff2e246695b5\n"
    },
    {
      "commit": "395116cae130c983498c0a2f42b89e42f75bb9d0",
      "tree": "75c356436f7a60077d0dc7e7dd32dc11b7b08dde",
      "parents": [
        "b7f49eb431ae936f71a4542fecd46784dba07874"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 27 14:30:25 2013 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 27 16:00:05 2013 -0800"
      },
      "message": "Compiler: rearranging the deck chairs.\n\nFirst of several steps to adopt the new source directory layout.  No\nlogic changes - just moved files around.\n\nChange-Id: I087631f8aa23973e18da4dc7706249c490bee061\n"
    },
    {
      "commit": "c928de90ad22ecdf83c18a07008409595f13d3b1",
      "tree": "065a08f379960f7ba946318aaa742d7ddd0c94bd",
      "parents": [
        "0f827169742aad6209d830db773a101849c32a83"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "message": "Remove Iceland.\n\nART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER\nis used in #ifdefs.\n\nChange-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55\n"
    },
    {
      "commit": "00bc1dc4f81268d78d7dfeb298b85c56876425a9",
      "tree": "bae8027055563460692e87f18f31aac1b61d0ef0",
      "parents": [
        "12a2bdd245ea866b665d4800b493397ec412892a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 01 15:56:27 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 01 18:01:50 2013 -0800"
      },
      "message": "Remove separate libart-compiler-llvm\n\nChange-Id: I82303c6db3361e2842ff9d882f43f7d0830584b1\n"
    },
    {
      "commit": "641ce0371c2f0dc95d26be02d8366124c8b66653",
      "tree": "5c132a223a739e852849d6a0d1b9ffef4305dfc3",
      "parents": [
        "6cbd384cb98c6619c73fe4f76ef40a34ac6f355d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jan 31 15:21:37 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 01 12:22:53 2013 -0800"
      },
      "message": "Rename compiler_llvm CompilationUnit to LlvmCompilationUnit\n\nAlso fixed stray ART_TEST_CFLAGS to LOCAL_CFLAGS\nAlso fixed relative includes\n\nTried to change CompilationUnit to reference LlvmCompilationUnit, but\nthat causes issues because of the split libart-compiler\nlibart-compiler-llvm.\n\nChange-Id: I7a490f339add6355a20c1cedae858ccf6967a6aa\n"
    },
    {
      "commit": "700c8d31733534a3d978b75a03f6f7e177dc7e81",
      "tree": "6b9d8d93a70e31dba3b0a880f886ce408776314c",
      "parents": [
        "9adbff5b85fcae2b3e2443344415f6c17ea3ba0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 10:42:02 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 25 14:28:43 2013 -0800"
      },
      "message": "Move .oat files to ELF format\n\nGenerates .oat in ELF file format using MCLinker\n- Uses MCLinker IRBuilder to create a synthetic .o from OatWriter output.\n- Uses new ElfFile for prelinking to support art image optimizations.\n\nAdapted OatFile to load using dlopen, ElfFile, or memory, removing raw MemMap mechanism.\n\nChanged image code to not assume oat data will be immediately after\nimage to allow space for ELF headers.\n\nPasses test-art and works with installd.\n\nChange-Id: Idc026eddb5de93f4b97490c405f3ed7b39589749\n"
    },
    {
      "commit": "2502e004d93734a99bdfeab811b3c5ae06f45bec",
      "tree": "1f1ef0f89464d4a2d5477fe026866cc684c7ca1b",
      "parents": [
        "2d76b041be770102fc912effc398e629a18180d2"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 31 16:05:53 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jan 03 06:17:11 2013 -0800"
      },
      "message": "Basic block optimization refactoring\n\nVarious optimization improvements for the common frontend.\n\nBefore applying basic block optimizations, split the graph\ninto extended basic blocks.  Replace existing pattern-match\nrange-check elimination with a scheme based on local value\nnumbering (which could also serve as the basis for some CSE\nif the existing, but so-far untested, common frontend temp\nregister mechanism works as designed).\n\nFor the framework, this CL improves null check elimination\nfrom 90.74% (statically) to 91.24% removed, and range\ncheck elimination from 3.45% to 8.17%.\n\nChange-Id: Ie1ce730cfe12a12fef665a30fe3814bad1993895\n"
    },
    {
      "commit": "8c4bbb55d0d801e492d849ee636771c8b2840429",
      "tree": "03975d337cafc86da0c02f9ab45e14b7b3dba677",
      "parents": [
        "372a910ee64fb1b7118a00e4d01db12f284c42d0"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 26 14:00:58 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 26 14:00:58 2012 -0800"
      },
      "message": "Eliminate build of target-specific compiler .so\n\nNow that the Quick compiler backend supports all targets, stop\nbuilding target-specific versions.\n\nChange-Id: I5e519930dd3ed731c8e73005f654213af3ab5a3e\n"
    },
    {
      "commit": "02031b185b4653e6c72e21f7a51238b903f6d638",
      "tree": "0fae8dbc0a15d4ed379768bdc7adf1910b1d46af",
      "parents": [
        "90ad9639047a8acbd563247f8869f825cf80e576"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 23 09:41:35 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Nov 25 13:22:45 2012 -0800"
      },
      "message": "Quick compiler: Single .so for all targets\n\nWith this CL, all targets can be built into a single .so (but\nwe\u0027re not yet doing so - the compiler driver needs to be reworked).\n\nA new Codgen class is introduced (see compiler/codegen/codegen.h),\nalong with target-specific sub-classes ArmCodegen, MipsCodegens and\nX86Codegen (see compiler/codegen/*/codegen_[Arm|Mips|X86].h).\n\nAdditional minor code, comment and format refactoring.  Some source\nfiles combined, temporary header files deleted and a few file\nrenames to better identify their function.\n\nNext up is combining the Quick and Portable .so files.\n\nNote: building all targets into libdvm-compiler.so increases its\nsize by 140K bytes.  I\u0027m inclined to not bother introducing conditional\ncompilation to limit code to the specific target - the added build and\ntesting complexity doesn\u0027t doesn\u0027t seem worth such a modest size savings.\n\nChange-Id: Id9c5b4502ad6b77cdb31f71d3126f51a4f2e9dfe\n"
    },
    {
      "commit": "1bc37c60da71c923ea9a2e99d31ba1b3d76d79a8",
      "tree": "6af0698d02487d1561832841ca01dea6a4d5a963",
      "parents": [
        "78f1dc74c54c63bce57d434e756199205c3abf7f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 13:35:41 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 17:50:36 2012 -0800"
      },
      "message": "Continuing Quick compiler refactoring\n\nWith this CL, we no longer include any .cc files - all source\nfiles compile stand-alone.   We still build a separate .so for\neach target, but all code in the target-independent \"codegen\"\ndirectory is now truly independent and doesn\u0027t rely on any\ntarget-specific macros to compile.\n\nHeader file inclusion is still a bit of a mess, but that will be\naddressed in a subsequent CL.\n\nNext up: create a codegen class to hold code generator routines\noverrideable by target.\n\nChange-Id: I3a93118d11afeab11f310950a6a73381a99e26e1\n"
    },
    {
      "commit": "eaf09bc65f9a10d12befcdb239156938c9bceef2",
      "tree": "e3b85c241b24aa058a413363e4f9c94f4c76d4d6",
      "parents": [
        "efc6369224b036a1fb77849f7ae65b3492c832c0"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 15 14:51:41 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 16 16:48:09 2012 -0800"
      },
      "message": "Quick compiler: more refactoring\n\nFocus on header file cleanup here.  Note: target_list.h\nis transitional, and upcoming CLs will do additional header\nfile reorganization.\n\nChange-Id: If86e1a8c1c43305762fe37b157a9d3c17d911ea7\n"
    },
    {
      "commit": "efc6369224b036a1fb77849f7ae65b3492c832c0",
      "tree": "e61d88a5b3b787d782b2fa02b90947ba9a115458",
      "parents": [
        "a3c6849b160cd5d2b2ca6e6fa9d9df834def85ee"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 14 16:31:52 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 15 09:47:38 2012 -0800"
      },
      "message": "Quick compiler source reorganizatio - part 1\n\nA step towards cleanup of the quick compiler source.  In this\nCL we rename all files to Art standards, combine some of the\nold target-specific files that may have made sense in the\nJIT, but no longer do.  Also removed some codegen/\u003ctarget\u003e/\nsubdirectories, combined and deleted some existing files.\n\nStill quite a bit of work to do in cleaning up header files,\ngetting some better consistency in what codegen functions\ngo where.  That will happen in later CLs.\n\nNo logic changes in this CL - just renaming and moving stuff around\n\nChange-Id: Ic172cd3b76d4c670f8e4d5fdd4a3e967db3f4c1e\n"
    },
    {
      "commit": "c531cefbfb5394413122e9f57d211ba436cff012",
      "tree": "f1a7183c0aa17414df90409e99dc24e84aaa2562",
      "parents": [
        "9281f004db3f194930ef34d31e5d80c98341f38f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 18 07:09:20 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Oct 26 10:13:33 2012 -0700"
      },
      "message": "Eliminate #ifdef ART_USE_QUICK_COMPILER\n\nOne of several steps towards having a single compiler build.\nIn this CL, we introduce a compiler_backend command-line option\nto select between Quick, Quick w/ GBC, Portable and Iceland\nback ends.  The Iceland option is temporary, and will go away once\nwe combine with Portable.  The Quick variants are with\nand without GBC conversion.  In time, those will converge to a\nsingle option.\n\nAll uses of \"#if defined(ART_USE_QUICK_COMPILER)\" are eliminated.  All\nprevious uses in the Quick compiler have been converted to runtime\ntests.  On the llvm side, ART_USE_QUICK_COMPILER was previously\nused to differentiate between Portable and Iceland builds.  Those\nusages have been replaced with ART_USE_PORTABLE_COMPILER, and in\na following CL will also be converted to run-time tests.\n\nAs of this CL, we\u0027re still generating separate libraries for\nQuick and Portable/Iceland.  Next up is elminating the target-specific\nlibraries for Quick-arm, Quick-x86 and Quick-mips.  Once that is\ncomplete, we will consoldate Quick and Portable into a single build.\n\nTo build either Iceland or Portable, touch USE_PORTABLE_COMPILER or\nUSE_LLVM_COMPILER as usual.  Otherwise, the build will default\nto Quick (non-GBC).\n\nChange-Id: Ic86c56f51710c9b06d4430b71a429ae12903cc47\n"
    }
  ],
  "next": "7fbee0731b14b5bf392a4254f5cd84685ab517da"
}
