)]}'
{
  "log": [
    {
      "commit": "0223a19fa4fc39ba89de2b87b03b98a5fd97778b",
      "tree": "0d1fdc9eb33ba27ec5fcb784ac8fee794936d8ce",
      "parents": [
        "726078d229fdb2857f3d8794fa50783f571cb7a2",
        "57b34294758e9c00993913ebe43c7ee4698a5cc6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 19:34:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 15 19:34:26 2015 +0000"
      },
      "message": "Merge \"ART: Allow to compile interpret-only mips64 files\""
    },
    {
      "commit": "57b34294758e9c00993913ebe43c7ee4698a5cc6",
      "tree": "981821619027686f83fbe00445299b0522f1df05",
      "parents": [
        "4945bfef00ac446d9c5458e55500229d463ab4c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 14 15:45:59 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 11:32:48 2015 -0800"
      },
      "message": "ART: Allow to compile interpret-only mips64 files\n\nInclude enough infrastructure to allow cross-compiling for mips64,\ninterpret-only. This includes the instruction-set-features, frame\nsize info and utils assembler.\n\nAlso add a disassembler for oatdump, and support in patchoat.\n\nNote: the runtime cannot run mips64, yet.\n\nChange-Id: Id106581fa76b478984741c62a8a03be0f370d992\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": "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": "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": "956af0f0cb05422e38c1d22cbef309d16b8a1a12",
      "tree": "b558c804d206dad8da648b815750f1b3c97610ae",
      "parents": [
        "407d77f344cfbdbbfb50531c5f0766bc0892e2fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 11 14:34:28 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 09:33:34 2014 -0800"
      },
      "message": "Remove portable.\n\nChange-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc\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": "32f5b4d2c8c9b52e9522941c159577b21752d0fa",
      "tree": "1b30de145c7865fd8a79f17a4cfe67b1b890878c",
      "parents": [
        "eea79dd779ba199658ada7264f8f96d776e53f19"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Nov 25 20:05:46 2014 +0000"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Fri Nov 28 12:02:58 2014 +0000"
      },
      "message": "Vixl: Update the VIXL interface to VIXL 1.7 and enable VIXL debug.\n\nThis patch updates the interface to VIXL 1.7 and enables the debug version of\nVIXL when ART is built in debug mode.\n\nChange-Id: I443fb941bec3cffefba7038f93bb972e6b7d8db5\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "af6925b7fe5dc5a3c8d52ee3370e86e75400f873",
      "tree": "1fe667865bb7dbae3a00bb002492bd4ff4ab194a",
      "parents": [
        "f585e549682a98eec12f92033e9634dc162b7df8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 31 16:37:32 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 21 18:47:37 2014 +0000"
      },
      "message": "Rewrite GVN\u0027s field id and field type handling.\n\nCreate a helper unit for dex insn classification and cache\ndex field type (as encoded in the insn) in the MirFieldInfo.\nUse this for cleanup and a few additional DCHECKs.\n\nChange the GVN\u0027s field id to match the field lowering info\nindex (MIR::meta::{i,s}field_lowering_info), except where\nmultiple indexes refer to the same field and we use the\nlowest of the applicable indexes. Use the MirMethodInfo from\nMIRGraph to retrieve field type for GVN using this index.\nThis slightly reduces GVN compilation time and prepares for\nfurther compilation time improvements.\n\nChange-Id: I1b1247cdb8e8b6897254e2180f3230f10159bed5\n"
    },
    {
      "commit": "6c36a8bc6c514664ad91ce377df33de839342a8d",
      "tree": "735cf8dc77e270b8d26a80af2992780a798d6cae",
      "parents": [
        "0c45167f110ddd4912b228c6ea04965f10de5873"
      ],
      "author": {
        "name": "Dehao Chen",
        "email": "dehao@google.com",
        "time": "Thu Nov 13 14:13:58 2014 -0800"
      },
      "committer": {
        "name": "Dehao Chen",
        "email": "dehao@google.com",
        "time": "Thu Nov 20 23:47:55 2014 +0000"
      },
      "message": "Restrict FDO to only apply to target build.\n\nChange-Id: I0ef4199b34c123a17eaf2c2f18bc8a1496e03cf8\n"
    },
    {
      "commit": "f5b4c50f52d1bde054deee33a8ef6fa18a0eff33",
      "tree": "52b7cedb38af4f428b11e79da0f7318dd02ebfb6",
      "parents": [
        "bdfbf86afde269ee3b38a6c928618333ffac13cf"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 14 15:01:59 2014 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Nov 20 14:47:57 2014 -0800"
      },
      "message": "dex2oat: Pack likely-dirty objects together when generating the boot image\n\nThis introduces a new algorithm into image writer which \"bins\" objects\nby how likely they are to be dirtied at runtime. Objects in the same bin\nare placed contiguously in memory (i.e. into the same page). We try to\ntune the bin selection based on how clean or how dirty the object will\nlikely be at runtime.\n\nAs-is, this saves about 150KB per-process (private-dirty pages) and 700KB in\nzygote (shared-dirty).\n\nThere is still about 800KB of objects that are clean but located in\ndirty pages, so with more analysis we can tune the bin selection and get\neven more memory savings.\n\n(cherry picked from commit 3f735bd4f9d09a0f9b2b01321e4c6917879dcae6)\n\nBug: 17611661\nChange-Id: Ia1455e4c56ffd0a36ae2a723d35b7e06502980f7\n"
    },
    {
      "commit": "847c8db052fcb3c1a945a8206547c409d3eb06fc",
      "tree": "013b7081bf3805b25970dcd71ee18b79944fcab5",
      "parents": [
        "195c576fbff290d4c313b67ed24ca36f2531acc4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 17 10:22:02 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 17 10:22:02 2014 +0000"
      },
      "message": "Revert \"Arm64: Use the debug version of VIXL for debug builds.\"\n\nThis reverts commit 195c576fbff290d4c313b67ed24ca36f2531acc4.\n\nChange-Id: Id992a43ae346bb4c38a6c47639b02aea838d974a\n"
    },
    {
      "commit": "195c576fbff290d4c313b67ed24ca36f2531acc4",
      "tree": "0565c97102cc73fa989b6df822b9f2b3f1022a6c",
      "parents": [
        "ff5298ff1640b730ee62c90ca78fc96b7ee82ec4"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Nov 13 11:14:25 2014 +0000"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Fri Nov 14 19:02:47 2014 +0000"
      },
      "message": "Arm64: Use the debug version of VIXL for debug builds.\n\nThis patch builds the debug version of ART against VIXL debug. In this\nway VIXL will assert misuses of the assembler and disassembler.\n\nChange-Id: Ic4654eb20e420f23b40e96a69be452dc50770c1c\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "99f84c410a23c0aa280976b9f75fc22eccab9fb5",
      "tree": "b9569e10f89c3ef58d132ea7941758fc82bb4108",
      "parents": [
        "a8825e4b38ae01fa77d255ca423ab2f2b77c6097"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:53:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:53:42 2014 -0700"
      },
      "message": "Remove bogus compiler flag from libart-compiler.\n\nChange-Id: I2e2c555cb80c745e3d9859b88f16491ea146b38f\n"
    },
    {
      "commit": "872dd8208f00c667af8d9e0fd07fdd0ada56d437",
      "tree": "2f69282f19c72ef157dad9fdc7b6c6daf8a1bf38",
      "parents": [
        "af62cf99a1a4320157e1074c1e65c5fbb0320349"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:19:14 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 30 11:19:14 2014 -0700"
      },
      "message": "Tidy and reduce ART library dependencies on the host.\n\nMove to shared rather than static libraries. Avoids capture of all static\nlibraries library dependencies.\n\nChange-Id: I2be96e92dad4ed1842d76b044745f2a2e15372eb\n"
    },
    {
      "commit": "5319defdf502fc4569316473846b83180ec08035",
      "tree": "909c6b29f065c79c8368a283946947cbb582d1c7",
      "parents": [
        "37a7188810e865a1ee0a7bdc2d01d62c1f1ea49e"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Thu Oct 23 10:03:10 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 23 13:44:42 2014 +0100"
      },
      "message": "ART: optimizing compiler: initial support for ARM64.\n\nThe ARM64 port uses VIXL for code generation, to which it defers work\nlike label binding and branch resolving, register type coherency\nchecking, and immediate values handling.\n\nChange-Id: I0a44508c0c991f472a63e67b3469cdd878fe1a68\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\nSigned-off-by: Alexandre Rames \u003calexandre.rames@arm.com\u003e\n"
    },
    {
      "commit": "75be28332b278cff9039b54bfb228ac72f539ccc",
      "tree": "a01829ba0412d0f6637a833b41694f0d757d8f43",
      "parents": [
        "ffb078ee815a38123581e706099a3bed65a6cb24"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 17 17:02:00 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 17 17:11:43 2014 +0100"
      },
      "message": "Revert \"Revert \"Introduce a class to implement optimization passes.\"\"\n\nThis reverts commit 1ddbf6d4b37979a9f11a203c12befd5ae8b65df4.\n\nChange-Id: I110a14668d1564ee0604dc958b91394b40da89fc\n"
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "26a25ef62a13f409f941aa39825a51b4d6f0f047",
      "tree": "aa0ed991cfcea17297e85f74624a44e32e8913cf",
      "parents": [
        "17b1c174dddb1d83018740c2084ab42daa812fff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 30 13:54:09 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 06 18:52:56 2014 +0100"
      },
      "message": "Add a prepare for register allocation pass.\n\n- Currently the pass just changes the uses of checks to the\n  actual values.\n- Also optimize array access, now that inputs can be constants.\n- And fix another bug in the register allocator reveiled by\n  this change.\n\nChange-Id: I43be0dbde9330ee5c8f9d678de11361292d8bd98\n"
    },
    {
      "commit": "62d1ca3182a6cbb921799825f43ad36821233fd7",
      "tree": "54d9663f5ce10f41e95fe774d4e4841c1a78bbc3",
      "parents": [
        "63462448ca4e377074a10a4720aa22f71154dbe9"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Wed Sep 03 17:24:56 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Oct 03 11:25:11 2014 -0700"
      },
      "message": "ART: Prepare for ELF64.\n\nOnly expose necessary interface in ElfFile, and move all details into template class ElfFileImpl.\n\nChange-Id: I9df2bbc55f32ba0ba91f4f3d5d0009e84a2ddf74\n"
    },
    {
      "commit": "d25cee7088d03881265fe3d04c09ec2f798860f5",
      "tree": "e37953f590f924e06b9905f922407559a3661cb6",
      "parents": [
        "bff187b5079631a18288cd78d3dddafba9ca94e7",
        "1ddbf6d4b37979a9f11a203c12befd5ae8b65df4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 01 14:59:51 2014 +0000"
      },
      "message": "Merge \"Revert \"Introduce a class to implement optimization passes.\"\""
    },
    {
      "commit": "1ddbf6d4b37979a9f11a203c12befd5ae8b65df4",
      "tree": "2bc48925657e791441aa947d4d629994a0696e78",
      "parents": [
        "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "message": "Revert \"Introduce a class to implement optimization passes.\"\n\nThis reverts commit bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.\n\nChange-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e\n"
    },
    {
      "commit": "bff187b5079631a18288cd78d3dddafba9ca94e7",
      "tree": "ea1eab47ce7f5a125b7da602a221371215755194",
      "parents": [
        "439bfb95c06080ed921409a4b8aad33d0da86c16",
        "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 01 14:38:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 01 14:38:10 2014 +0000"
      },
      "message": "Merge \"Introduce a class to implement optimization passes.\""
    },
    {
      "commit": "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8",
      "tree": "0bd049b173d23fcaed5c1b5cb4299e8faef840da",
      "parents": [
        "34bb808affbed7a1db177b9ef4ab5461c2b2106b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 30 16:15:14 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 01 11:52:58 2014 +0100"
      },
      "message": "Introduce a class to implement optimization passes.\n\n- Add art::HOptimization.\n- Rename art::ConstantPropagation to art::HConstantFolding in\n  compiler/optimizing/constant_folding.h to avoid name\n  clashes with a class of the same name in\n  compiler/dex/post_opt_passes.h.\n- Rename art::DeadCodeElimination to\n  art::HDeadCodeElimination for consistency reasons.\n- Have art::HDeadCodeElimination and art::HConstantFolding\n  derive from art::HOptimization.\n- Start to use these optimizations in\n  art:OptimizingCompiler::TryCompile.\n\nChange-Id: Iaab350c122d87b2333b3760312b15c0592d7e010\n"
    },
    {
      "commit": "1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb",
      "tree": "e80187277f4a41c9b41a25ebb6dd9567b66fd2bf",
      "parents": [
        "34bb808affbed7a1db177b9ef4ab5461c2b2106b",
        "f4da675bbc4615c5f854c81964cac9dd1153baea"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 25 18:08:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 25 18:08:04 2014 +0000"
      },
      "message": "Merge \"Implement method calls using relative BL on ARM.\""
    },
    {
      "commit": "f4da675bbc4615c5f854c81964cac9dd1153baea",
      "tree": "ea78bafc7ee543e11e7bd824ab40d5f5f3d82f9d",
      "parents": [
        "f2476d524281c6d649f5deb6d1ccccc92380c1ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 01 19:04:18 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 25 18:56:34 2014 +0100"
      },
      "message": "Implement method calls using relative BL on ARM.\n\nStore the linker patches with each CompiledMethod instead of\nkeeping them in CompilerDriver. Reorganize oat file creation\nto apply the patches as we\u0027re writing the method code. Add\nframework for platform-specific relative call patches in the\nOatWriter. Implement relative call patches for ARM.\n\nChange-Id: Ie2effb3d92b61ac8f356140eba09dc37d62290f8\n"
    },
    {
      "commit": "3c04974a90b0e03f4b509010bff49f0b2a3da57f",
      "tree": "52649104e3e80272c3774793350f4d9f260ae732",
      "parents": [
        "c0d36abb12cdbb9469039c1dc153a586bd984015"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 24 18:10:46 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 12:23:40 2014 +0100"
      },
      "message": "Optimize suspend checks in optimizing compiler.\n\n- Remove the ones added during graph build (they were added\n  for the baseline code generator).\n- Emit them at loop back edges after phi moves, so that the test\n  can directly jump to the loop header.\n- Fix x86 and x86_64 suspend check by using cmpw instead of cmpl.\n\nChange-Id: I6fad5795a55705d86c9e1cb85bf5d63dadfafa2a\n"
    },
    {
      "commit": "d31cf3d55a0847c018c4eaa2b349b8eea509de64",
      "tree": "2594116391a59c1fce83c5cbd9058ba76534fec0",
      "parents": [
        "e07d111b9bff8b68b8d0ed44fb95805a5c6f47fb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 17:30:24 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 19 13:59:39 2014 +0100"
      },
      "message": "First optimization in new compiler: simple GVN.\n\nChange-Id: Ibe0efa4e84fd020a53ded310a92e0b4363f91b12\n"
    },
    {
      "commit": "556c3d193134f6461f3e1fe17c032b087c5931a0",
      "tree": "436660c7155d0864c37f8aeabbc0f52e889a0cc2",
      "parents": [
        "6aa606c9284ac31961f4c5b20c3645ac78acfaad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 15:25:07 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 15:25:07 2014 +0100"
      },
      "message": "Initiate a constant propagation pass in the optimizing compiler.\n\n- Perform constant folding on int and long additions and subtractions in\n  the optimizing compiler.\n- Apply constant folding to conditions and comparisons.\n\nChange-Id: Ic88783a3c975fda777c74c531e257fa777be42eb\n"
    },
    {
      "commit": "72bceff11a98cc1ecdb64a6fae16c521f99ec6a7",
      "tree": "d326cc4fd32315735466efbb17ea22adf121395c",
      "parents": [
        "ccc07a9579c554443cd03a306ca9b4f943fd2a93"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 15 18:29:00 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 17 18:23:21 2014 +0100"
      },
      "message": "Initiate a dead code elimination pass in the optimizing compiler.\n\nChange-Id: Ie9db5d8e2c2c30e34145a0f7d2386b8ec58cfc4e\n"
    },
    {
      "commit": "ccc07a9579c554443cd03a306ca9b4f943fd2a93",
      "tree": "3514cb48520ecd6cf4bb93129bed5cd97f24cb43",
      "parents": [
        "926d8e99aa69151a271180299df68963688010d8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 16 14:48:16 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 17 18:19:46 2014 +0100"
      },
      "message": "Add CFG and SSA form checkers in the optimizing compiler.\n\nChecks performed on control-flow graphs:\n- Ensure that the predecessors and successors of a basic block are\n  consistent within a control-flow graph.\n- Ensure basic blocks end with a branch instruction.\n- Detect phi functions listed in non-phi instruction lists and vice\n  versa.\n- Ensure a block\u0027s instructions (and phi functions) are associated\n  with this very block.\n\nChecks performed on SSA form graphs:\n- Ensure an instruction dominates all its uses.\n- Ensure there are no critical edges.\n\nChange-Id: I1c12b4a61ecf608682152c897980ababa7eca847\n"
    },
    {
      "commit": "53c913bb71b218714823c8c87a1f92830c336f61",
      "tree": "96aebfc9ae62eb1454b78286236567e2b6f3e5c7",
      "parents": [
        "e18aa4316eb9a15cd6b1051f27a1ce49967c170e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 12 23:19:23 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 22 21:20:08 2014 -0700"
      },
      "message": "ART: Clean up compiler\n\nClean up the compiler: less extern functions, dis-entangle\ncompilers, hide some compiler specifics, lower global includes.\n\nChange-Id: Ibaf88d02505d86994d7845cf0075be5041cc8438\n"
    },
    {
      "commit": "547cdfd21ee21e4ab9ca8692d6ef47c62ee7ea52",
      "tree": "078d52b6025fc1e42b7343550b0dbbdad69eafac",
      "parents": [
        "8b62dc0f993d0445401655fc274e5225498fa81c"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Tue Aug 05 01:54:19 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Tue Aug 05 11:11:33 2014 -0700"
      },
      "message": "Emit CFI for x86 \u0026 x86_64 JNI compiler.\n\nNow for host-side x86 \u0026 x86_64 ART, we are able to get complete stacktrace with even mixed C/C++ \u0026 Java stack frames.\n\nTesting:\n1. art/test/run-test --host --gdb [--64] --no-relocate 005\n2. In gdb, run \u0027b art::Class_classForName\u0027 which is implementation of a Java native method, then \u0027r\u0027\n3. In gdb, run \u0027bt\u0027. You should see stack frames down to main()\n\nChange-Id: I2d17e9aa0f6d42d374b5362a15ea35a2fce96302\n"
    },
    {
      "commit": "03f92f4e2ba358c701aa1c02a73372670d616e5a",
      "tree": "a152910b11c380ce675f0404d4fbeddb18db3553",
      "parents": [
        "89c210bf418a152ccabfbbf853ddcce33aea450d"
      ],
      "author": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Aug 04 17:19:29 2014 +0900"
      },
      "committer": {
        "name": "Junmo Park",
        "email": "junmoz.park@samsung.com",
        "time": "Mon Aug 04 17:19:56 2014 +0900"
      },
      "message": "Fix art build script.\n\nUse ART_BUILD_HOST_NDEBUG instead of ART_BUILD_NDEBUG.\n\nChange-Id: I1fcca4c52e79bad93dcdd750989f6223df2b0df4\nSigned-off-by: Junmo Park \u003cjunmoz.park@samsung.com\u003e\n"
    },
    {
      "commit": "1740eca19de8870a319033eacde16793ef391825",
      "tree": "0b3ce537ba1cfa885a69ed52a8ba2ab8aa5ca921",
      "parents": [
        "4483fbfdf17fd7230a52cc54bc5f7fbca82bbd75"
      ],
      "author": {
        "name": "Dehao Chen",
        "email": "dehao@google.com",
        "time": "Thu Jul 24 16:12:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jul 27 18:32:22 2014 +0000"
      },
      "message": "Remove the per-project FDO support. Use the common FDO support from build/core.\nLOCAL_FDO_SUPPORT indicates if the module should enable FDO builds.\n\nChange-Id: I1eab8bf418b7ceb060eea18bdd304a06597af3d3\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "96f89a290eb67d7bf4b1636798fa28df14309cc7",
      "tree": "ca2b484a18107f8253aa7774cde304586a31bc60",
      "parents": [
        "4436e926aa8e64ac7e4c4afb81f2a59b2477045a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 10:57:49 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 21 09:54:20 2014 +0100"
      },
      "message": "Add assembly operations with constants in optimizing compiler.\n\nChange-Id: I5bcc35ab50d4457186effef5592a75d7f4e5b65f\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "7dc206a53a42a658f52d5cb0b7e79b47da370c9b",
      "tree": "f9940f60c132795d2f5865ba84b942916f076313",
      "parents": [
        "1cad41d900201422cedcbe7837935d17bbf28ed8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 09:49:49 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 14 12:35:21 2014 +0100"
      },
      "message": "Add two phi pruning phases.\n\nChange-Id: Ic4f05e3df96970d78a6938b27cdf9b58ef3849b9\n"
    },
    {
      "commit": "95a059793c4c194f026afc74c713cc295d75d91a",
      "tree": "dab1800b2f19d4ed7359bf234c96202ddaf5a2ed",
      "parents": [
        "50fb243619d337d20b56d2713d861166d48cb491"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 30 10:01:32 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 10 09:37:47 2014 +0100"
      },
      "message": "Global Value Numbering.\n\nImplement the Global Value Numbering for optimization\npurposes. Use it for the null check and range check\nelimination as the LVN used to do.\n\nThe order of evaluation of basic blocks needs improving as\nwe currently fail to recognize some obviously identical\nvalues in methods with more than one loop. (There are three\ndisabled tests that check this. This is just a missed\noptimization, not a correctness issue.)\n\nChange-Id: I0d0ce16b2495b5a3b17ad1b2b32931cd69f5a25a\n"
    },
    {
      "commit": "afd9acc30bdd11cdd12d8209eb994cb371c65e33",
      "tree": "10ebfa28d992a96422fcf81eb28c98393719e9a6",
      "parents": [
        "ba778fae99ec3b38d4f98262e6b7072bab0e9de4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 17 08:21:54 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 24 16:47:31 2014 -0700"
      },
      "message": "Multilib ART host.\n\nBuild ART for the host as a multilib project with dalvikvm32 and dalvikvm64\nrunning as 32 or 64-bit repsectfully. Note, currently multilib host builds\nare not the default, you make the so by setting BUILD_HOST_64bit\u003d1.\nExtend tests to execute in both 32 and 64-bit modes. By default both 32 and\n64-bit tests are run, add 32 or 64 to the end of a test name to run it in\npurely that flavor.\nGiven the extra spam, modify oat tests to only generate console output when\nthe test fails.\nChange the test harness so that common commands are run when a test should be\nskipped, when it passes or when it fails. Use these commands to generate a\nsummary of passing, skipped and failing tests. Tests will be skipped if they\nare known to be broken or if a test has already failed. Setting the variable\nTEST_ART_KEEP_GOING\u003dtrue will force working tests not to be skipped.\nIn this change all tests running on the optimizing compiler are marked broken\ndue to breakages running them in a multilib environment.\nBreak apart Android.common.mk into its constituent parts, along with other\npieces of reorganization.\n\nStylistic nit, we refer to make rule targets as targets thereby overloading\nthe term target. While consistent with make\u0027s terminology, its confusing with\nthe Android notion of target. I\u0027ve switched to just calling targets rules to\navoid confusion in host tests.\n\nChange-Id: I5190fc3de46800a949fbb06b3f4c258ca89ccde9\n"
    },
    {
      "commit": "9cf35523764d829ae0470dae2d5dd99be469c841",
      "tree": "889459a8ecf8fdf801ea46dd58d15268dfb25af8",
      "parents": [
        "b08f63c21de64f8b74003e3638e100471bd099f3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 18:40:10 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 13 09:49:30 2014 +0100"
      },
      "message": "Add x86_64 support to the optimizing compiler.\n\nChange-Id: I4462d9ae15be56c4a3dc1bd4d1c0c6548c1b94be\n"
    },
    {
      "commit": "8dea81ca9c0201ceaa88086b927a5838a06a3e69",
      "tree": "6a074462c1c13d23aa21cef3f4d2d1a7a880de32",
      "parents": [
        "3e1e549c564045d852ace46388eb06427d63e6ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 06 14:50:36 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 12 18:25:00 2014 +0100"
      },
      "message": "Rewrite use/def masks to support 128 bits.\n\nReduce LIR memory usage by holding masks by pointers in the\nLIR rather than directly and using pre-defined const masks\nfor the common cases, allocating very few on the arena.\n\nChange-Id: I0f6d27ef6867acd157184c8c74f9612cebfe6c16\n"
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "184d640d2a3ac86d871dab58386a50cc9bb973f9",
      "tree": "4880a8790937e57de955b38cda06404f7a105a0f",
      "parents": [
        "fbc2b1747e7e3d06f214f801f53218a1d4bf2dbe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 14:06:02 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 14:06:02 2014 +0100"
      },
      "message": "Add a type propagation phase after building SSA.\n\nThis ensures all phis have a type.\n\nChange-Id: I7e4f9a16d1efb5f64c493c1351749b352c870cbd\n"
    },
    {
      "commit": "0eb3e752b65ef908e3790d81fae57cd85a41006b",
      "tree": "0378d281508f1f1b05e6463d80fceeba4d91eb16",
      "parents": [
        "7ce610516242b1ffd47a42bfc31c2d562f443ca6",
        "65fcc2cf3c5cd97b84330c094908f3a6a7a8d4e7"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 19:47:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 05 19:47:18 2014 +0000"
      },
      "message": "Merge \"Thumb2 assembler for JNI compiler and optimizing compiler\""
    },
    {
      "commit": "65fcc2cf3c5cd97b84330c094908f3a6a7a8d4e7",
      "tree": "fc0ce77d446477be37f0ec8c86d67df4941cac9b",
      "parents": [
        "e3b5cb502371aff7e7b7291facfc27b092e7803e"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon Apr 28 13:45:27 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jun 05 12:45:20 2014 -0700"
      },
      "message": "Thumb2 assembler for JNI compiler and optimizing compiler\n\nThis provides a programmatic assembler for the thumb2 instruction set for\nARM.  The interface is the same as the ARM assembler and the ARM assembler has\nbeen moved into Arm32Assembler.  The assembler handles most 16 and 32 bit instructions\nand also allows relocations due to branch expansion.  It will also rewrite cbz/cbnz\ninstructions if they go out of range.\n\nIt also changes the JNI compiler to use the thumb2 assembler as opposed\nto forcing it to use ARM32.  The trampoline compiler still uses ARM due to the\nway it returns the address of its generated code.  A trampoline in thumb2 is the\nsame size as that in ARM anyway (8 bytes).\n\nProvides gtest for testing the thumb2 instruction output.  This gtest only runs\non the host as it uses arm-eabi-objdump to disassemble the generated code.  On the\ntarget the output is not checked but the assembler will still be run to perform\nall its checks.\n\nChange-Id: Icd9742b6f13541bec5b23097896727392e3a6fb6\n"
    },
    {
      "commit": "5ca4eaace8ba513f97309bbdc2e156de4b1d648a",
      "tree": "3a392eb39fda9b6f6e46e05e529c85e18296bc49",
      "parents": [
        "fa5fda3ca52678b6fa739aad46e5c6ea08ae301e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 29 02:09:33 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 04 08:00:30 2014 -0700"
      },
      "message": "ART: Make LOCAL_CLANG architecture dependent for the target\n\nBe selective for which target we compile with Clang. Currently we\nonly want to compile with Clang for ARM64, which means we need to\nbe careful about ARM, which is the second architecture for that.\n\nBug: 15014252\n\n(cherry picked from commit 9689e3768621130b2536564f4e00fcb6b3d25df4)\n\nChange-Id: I312e1caea08f2f3a20304b27f979d3c7b72b0a04\n"
    },
    {
      "commit": "2469e60e6ff08c2a0b4cd1e209246c5d91027679",
      "tree": "37b2f537fca7ba56cb787913557ee12d6e533d55",
      "parents": [
        "29b53d3d715b1ec19349e8cbf7c5e4ff529bd5fe"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Tue May 06 20:36:55 2014 -0700"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 30 10:15:48 2014 +0100"
      },
      "message": "ART: Setting up cleanup\n\n- Moved code around to actually have the clean-up code in a PassDriver format.\n    This allows us to better control what is being called after an optimization\n    It also allows the use of a centralized pass system for both optimizations\n      and cleanup.\n\nChange-Id: I9d21e9bb9ee663739722f440d82adf04f73e380c\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Yixin Shou \u003cyixin.shou@intel.com\u003e\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\nSigned-off-by: Udayan Banerji \u003cudayan.banerji@intel.com\u003e\n"
    },
    {
      "commit": "a7062e05e6048c7f817d784a5b94e3122e25b1ec",
      "tree": "a5d6b64ae6d5352f761fc2547bda863281adbe40",
      "parents": [
        "8b5b1e5593ffa77c393e4172b71a3d5a821d2ed8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 22 12:50:17 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 26 11:31:38 2014 +0100"
      },
      "message": "Add a linear scan register allocator to the optimizing compiler.\n\nThis is a \"by-the-book\" implementation. It currently only deals\nwith allocating registers, with no hint optimizations.\n\nThe changes remaining to make it functional are:\n- Allocate spill slots.\n- Resolution and placements of Move instructions.\n- Connect it to the code generator.\n\nChange-Id: Ie0b2f6ba1b98da85425be721ce4afecd6b4012a4\n"
    },
    {
      "commit": "a5b8fde2d2bc3167078694fad417fddfe442a6fd",
      "tree": "287942554467eb8566291f7d021549f65763f53e",
      "parents": [
        "567e9dbc65ee183cda2a052dbf224c8c4a8f9423"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 23 15:16:44 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 23 17:12:15 2014 +0100"
      },
      "message": "Rewrite BitVector index iterator.\n\nThe BitVector::Iterator was not iterating over the bits but\nrather over indexes of the set bits. Therefore, we rename it\nto IndexIterator and provide a BitVector::Indexes() to get\na container-style interface with begin() and end() for range\nbased for loops.\n\nAlso, simplify InsertPhiNodes where the tmp_blocks isn\u0027t\nneeded since the phi_nodes and input_blocks cannot lose any\nblocks in subsequent iterations, so we can do the Union()\ndirectly in those bit vectors and we need to repeat the loop\nonly if we have new input_blocks, rather than on phi_nodes\nchange. And move the temporary bit vectors to scoped arena.\n\nChange-Id: I6cb87a2f60724eeef67c6aaa34b36ed5acde6d43\n"
    },
    {
      "commit": "adde7d2854dbcd4282e94cebd7c66ee8793aece8",
      "tree": "6eb16488188c3f98de8f7101afd2a180a9e22d83",
      "parents": [
        "48e50e8876379d38a561096415ac43ed765f65fc",
        "4e3d23aa1523718ea1fdf3a32516d2f9d81e84fe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 23 09:03:36 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 23 09:03:36 2014 +0000"
      },
      "message": "Merge \"Import Dart\u0027s parallel move resolver.\""
    },
    {
      "commit": "4e3d23aa1523718ea1fdf3a32516d2f9d81e84fe",
      "tree": "78593d033513a98486a409e7b23678ccced12cd5",
      "parents": [
        "59f3f62534581311c7c403c832f56c272426a17c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 22 18:32:45 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 23 10:00:44 2014 +0100"
      },
      "message": "Import Dart\u0027s parallel move resolver.\n\nAnd write a few tests while at it.\n\nA parallel move resolver will be needed for performing multiple moves\nthat are conceptually parallel, for example moves at a block\nexit that branches to a block with phi nodes.\n\nChange-Id: Ib95b247b4fc3f2c2fcab3b8c8d032abbd6104cd7\n"
    },
    {
      "commit": "5da6e2b88258733dd3856543af27ca73b395ef60",
      "tree": "06869d3bbbee80a641e808bb95dfde63fd1abb77",
      "parents": [
        "b8033db2a8dc6f7c7e29b1552177542964f56e44",
        "2a0e954ecf7c60e6ec62d64b9382cc4ee447e224"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 22 17:22:00 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 22 17:22:00 2014 +0000"
      },
      "message": "Merge \"Move art host to libc++\""
    },
    {
      "commit": "4f59668b3d51f63601ebe59dbd2b7e8a7c5bd093",
      "tree": "cf93995a8e42da6799e895918ee2ee52dc1c03a0",
      "parents": [
        "59f3f62534581311c7c403c832f56c272426a17c"
      ],
      "author": {
        "name": "James C Scott",
        "email": "james.c.scott@intel.com",
        "time": "Thu May 01 05:52:04 2014 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu May 22 06:42:23 2014 -0700"
      },
      "message": "ART: Pass driver generalization\n\n- Generalizing Pass Driver.\n- Migrating ME Pass Driver to use the new generalized Pass Driver.\n\nThere will be some more changes after in the compiler code to generalize\n it a bit more by separating what is being done by the optimizing passes\n and post-pass cleanups.\n\nChange-Id: I140a70e88483d7c3991b7d336bd593b2613ae194\nSigned-off-by: James C Scott \u003cjames.c.scott@intel.com\u003e\n"
    },
    {
      "commit": "2a0e954ecf7c60e6ec62d64b9382cc4ee447e224",
      "tree": "37d22f5d9e221ecd8a68c41d430e7b21fa3f54d1",
      "parents": [
        "299d2a2b200a94daa49c4727fd679f4461c083c7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 21 14:55:02 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 21 19:47:17 2014 -0700"
      },
      "message": "Move art host to libc++\n\nChange-Id: Ia51a4fdfdbae7377130a43c401c2d8d241671d1e\n"
    },
    {
      "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"
    }
  ],
  "next": "413e89f277ec6ba1bdf2040f5b5611f29a27a447"
}
