)]}'
{
  "log": [
    {
      "commit": "daaf3265806eb2eadb2e03302bd68022fab5ca28",
      "tree": "aff5d6d53d6d2b65995aa204839f88ee66400989",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 24 13:30:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 14:13:08 2015 -0700"
      },
      "message": "Add AccessibleObject and Field to mirror\n\nMain motivation is to remove all the functionality / field access on\njava side to ArtField. Also comes with some reflection speedups /\nslowdowns.\n\nSummary results:\ngetDeclaredField/getField are slower mostly due to JNI overhead.\nHowever, there is a large speedup in getInt, setInt,\nGetInstanceField, and GetStaticField.\n\nBefore timings (N5 --compiler-filter\u003deverything):\n\n                       benchmark      ns linear runtime\n          Class_getDeclaredField  782.86 \u003d\u003d\u003d\n                  Class_getField  832.77 \u003d\u003d\u003d\n                    Field_getInt  160.17 \u003d\n                    Field_setInt  195.88 \u003d\n                GetInstanceField 3214.38 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 6809.49 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter:\n          Class_getDeclaredField 1068.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Class_getField 1180.00 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    Field_getInt  121.85 \u003d\n                    Field_setInt  139.98 \u003d\n                GetInstanceField 1986.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 2523.63 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nBug: 19264997\n\nChange-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77\n"
    },
    {
      "commit": "a0466e1773ec1db32c4b3d04b0416ffef5005b39",
      "tree": "83901e77017d4fdd89b00936a76390b2c0c32c05",
      "parents": [
        "c4181826dcd2b2e484a5b01871f49680881ad379"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 27 15:00:40 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 27 15:00:40 2015 +0000"
      },
      "message": "GVN HClinitCheck nodes.\n\nChange-Id: I5c79caadd57d10214a44149fda53e9e185ac7eca\n"
    },
    {
      "commit": "79829cb3a36fd589df957da118792e4c69abc02b",
      "tree": "934def496ec923c244b0c3611c3405c6e4514185",
      "parents": [
        "b3665e3dfdd23cc7a2f17a0b53bb16205bf4151f"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Mar 27 11:48:25 2015 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Mar 27 11:48:25 2015 +0100"
      },
      "message": "Fix run-all-tests script when --always-clean is used\n\nChange-Id: Icd44776e77c00f789bb579b6e55241abdfc0e68d\n"
    },
    {
      "commit": "790412959a6413a585f45fc5f77fe7106311a00c",
      "tree": "94d7d6016c5a58d6c5f31d8350330c8025baa014",
      "parents": [
        "9ed05c4cf76aaeee48a1eb5bbae659b0acbabe67"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 26 10:05:54 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 26 10:05:54 2015 +0000"
      },
      "message": "Use the original invoke type when inlining.\n\nWhen resolving a method through the compiler driver, the code makes\nsure the call in the DEX bytecode matches the kind of method found,\nto check for IncompatibleClassChangeError. Because when we sharpen\nan invoke virtual, we transform the invoke kind to direct, we must not\nuse the new kind, but the one in DEX.\n\nChange-Id: Iaf77b27b529c659ea48ffb19f46427552c9e3654\n"
    },
    {
      "commit": "651b4fb337eba9971bb830d9e037c633e29a6eba",
      "tree": "06cb3f4534205d2a8947e211834806d6343ead15",
      "parents": [
        "39b4bf99a1167cd9d5e5454059dd360e67f1eac1",
        "9437b78780f9e6ffa5797ebe82de8e8d7f3a5ed6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 25 17:19:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 25 17:19:08 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Inline across dex files.\"\"\""
    },
    {
      "commit": "9437b78780f9e6ffa5797ebe82de8e8d7f3a5ed6",
      "tree": "d99027ae9295f162865c01f9a8795ac8cda09b84",
      "parents": [
        "11e99b19f48576f1bb6d0993635b34b6e09c9832"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 25 10:08:51 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 25 17:13:54 2015 +0000"
      },
      "message": "Revert \"Revert \"Inline across dex files.\"\"\n\nThis reverts commit 6a816cf624ba56bf2872916d7b65b18fd9a411ef.\n\nChange-Id: I36cb524108786dd7996f2aea0443675be1f1b859\n"
    },
    {
      "commit": "b2bd1c5f9171f35fa5b71ada42d1a9e11189428d",
      "tree": "db9165b3daa18d1d430b690b78c2d125bade3021",
      "parents": [
        "11e99b19f48576f1bb6d0993635b34b6e09c9832"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 25 11:17:37 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 25 12:30:26 2015 +0000"
      },
      "message": "ART: Formatting and comments in BooleanSimplifier\n\nChange-Id: I9a5aa3f2aa8b0a29d7b0f1e5e247397cf8e9e379\n"
    },
    {
      "commit": "b64b782f9ae7a94ecbbf64c83cbcdc7d716ba560",
      "tree": "df3aa814ff7762d681c50781c413fd510440ae61",
      "parents": [
        "2c2d00e8ca841aa2f57fa2f852e896378ef67144",
        "46e2a3915aa68c77426b71e95b9f3658250646b7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 24 17:31:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 24 17:31:31 2015 +0000"
      },
      "message": "Merge \"ART: Boolean simplifier\""
    },
    {
      "commit": "46e2a3915aa68c77426b71e95b9f3658250646b7",
      "tree": "2b0a4470b05291894db73c631fe94f0fdff8c46b",
      "parents": [
        "bce0855ca1dbb1fa226c5b6a81760272ce0b64ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 16 17:31:52 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 24 17:28:37 2015 +0000"
      },
      "message": "ART: Boolean simplifier\n\nThe optimization recognizes the negation pattern generated by \u0027javac\u0027\nand replaces it with a single condition. To this end, boolean values\nare now consistently assumed to be represented by an integer.\n\nThis is a first optimization which deletes blocks from the HGraph and\ndoes so by replacing the corresponding entries with null. Hence,\nexisting code can continue indexing the list of blocks with the block\nID, but must check for null when iterating over the list.\n\nChange-Id: I7779da69cfa925c6521938ad0bcc11bc52335583\n"
    },
    {
      "commit": "2c2d00e8ca841aa2f57fa2f852e896378ef67144",
      "tree": "c4050a4e6e9aa6f091ae042daf940ba0a1e72136",
      "parents": [
        "09aa354d0d7ff58cb9f028647d81a67648c9e0ba",
        "da4d79bc9a4aeb9da7c6259ce4c9c1c3bf545eb8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 24 17:00:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 24 17:01:00 2015 +0000"
      },
      "message": "Merge \"Unify ART\u0027s various implementations of bit_cast.\""
    },
    {
      "commit": "09aa354d0d7ff58cb9f028647d81a67648c9e0ba",
      "tree": "d49b3a0a353222252b425911749725b775f56f7b",
      "parents": [
        "af87659f462ac650009fce295097cae3dabce171",
        "6a816cf624ba56bf2872916d7b65b18fd9a411ef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 24 16:24:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 24 16:24:52 2015 +0000"
      },
      "message": "Merge \"Revert \"Inline across dex files.\"\""
    },
    {
      "commit": "6a816cf624ba56bf2872916d7b65b18fd9a411ef",
      "tree": "47d03a97a9b5101ea543beda55f29cce339bd06e",
      "parents": [
        "7e4c3508e4f5512650b63c41f7872a749e99aee9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 24 16:17:56 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 24 16:17:56 2015 +0000"
      },
      "message": "Revert \"Inline across dex files.\"\n\nbug: 19904089\nbug: 19903495\n\nThis reverts commit 7e4c3508e4f5512650b63c41f7872a749e99aee9.\n\nChange-Id: I15df746b5f1882cce78eedde6c05c0d3b69bfa4a\n"
    },
    {
      "commit": "da4d79bc9a4aeb9da7c6259ce4c9c1c3bf545eb8",
      "tree": "151dd61c4b6a8fd512ea4c2c862af28b02f4ed9c",
      "parents": [
        "af87659f462ac650009fce295097cae3dabce171"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 24 14:36:11 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 24 16:02:21 2015 +0000"
      },
      "message": "Unify ART\u0027s various implementations of bit_cast.\n\nART had several implementations of art::bit_cast:\n\n1. one in runtime/base/casts.h, declared as:\n\n   template \u003cclass Dest, class Source\u003e\n   inline Dest bit_cast(const Source\u0026 source);\n\n2. another one in runtime/utils.h, declared as:\n\n   template\u003ctypename U, typename V\u003e\n   static inline V bit_cast(U in);\n\n3. and a third local version, in runtime/memory_region.h,\n   similar to the previous one:\n\n   template\u003ctypename Source, typename Destination\u003e\n   static Destination MemoryRegion::local_bit_cast(Source in);\n\nThis CL removes versions 2. and 3. and changes their callers\nto use 1. instead.  That version was chosen over the others\nas:\n- it was the oldest one in the code base; and\n- its syntax was closer to the standard C++ cast operators,\n  as it supports the following use:\n\n    bit_cast\u003cDestination\u003e(source)\n\n  since `Source\u0027 can be deduced from `source\u0027.\n\nChange-Id: I7334fd5d55bf0b8a0c52cb33cfbae6894ff83633\n"
    },
    {
      "commit": "274395fe6649d83d723c4b912a46291b2987efd6",
      "tree": "b363f83e2190e05f8c37ddb37c7d5f24ea9b3c8a",
      "parents": [
        "bce0855ca1dbb1fa226c5b6a81760272ce0b64ef",
        "767c752fddc64e280dba507457e4f06002b5f678"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 24 11:26:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 24 11:26:17 2015 +0000"
      },
      "message": "Merge \"Quick: Create GC map based on compiler data.\""
    },
    {
      "commit": "0ba627337274ccfb8c9cb9bf23fffb1e1b9d1430",
      "tree": "0e1d0813c1d8d1c7239a900c1653296975713df0",
      "parents": [
        "e295e6ec5beaea31be5d7d3c996cd8cfa2053129"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 24 02:39:46 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 24 02:39:46 2015 +0000"
      },
      "message": "Revert \"Deoptimization-based bce.\"\n\nThis breaks compiling the core image:\n\n Error after BCE: art::SSAChecker: Instruction 219 in block 1 does not dominate use 221 in block 1.\n\nThis reverts commit e295e6ec5beaea31be5d7d3c996cd8cfa2053129.\n\nChange-Id: Ieeb48797d451836ed506ccb940872f1443942e4e\n"
    },
    {
      "commit": "e295e6ec5beaea31be5d7d3c996cd8cfa2053129",
      "tree": "4d8a657d23d511743ce35bee596544d7f652efdb",
      "parents": [
        "d24ba2c44c76a2b2dd13aafe8f7981c15be31a98"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Sat Mar 07 06:37:59 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Mar 23 16:39:37 2015 -0700"
      },
      "message": "Deoptimization-based bce.\n\nA mechanism is introduced that a runtime method can be called\nfrom code compiled with optimizing compiler to deoptimize into\ninterpreter. This can be used to establish invariants in the managed code\nIf the invariant does not hold at runtime, we will deoptimize and continue\nexecution in the interpreter. This allows to optimize the managed code as\nif the invariant was proven during compile time. However, the exception\nwill be thrown according to the semantics demanded by the spec.\n\nThe invariant and optimization included in this patch are based on the\nlength of an array. Given a set of array accesses with constant indices\n{c1, ..., cn}, we can optimize away all bounds checks iff all 0 \u003c\u003d min(ci) and\nmax(ci) \u003c array-length. The first can be proven statically. The second can be\nestablished with a deoptimization-based invariant. This replaces n bounds\nchecks with one invariant check (plus slow-path code).\n\nChange-Id: I8c6e34b56c85d25b91074832d13dba1db0a81569\n"
    },
    {
      "commit": "d24ba2c44c76a2b2dd13aafe8f7981c15be31a98",
      "tree": "0e1d0813c1d8d1c7239a900c1653296975713df0",
      "parents": [
        "90d480c26f7524f35323a11d6ba2880ff3db789a",
        "7e4c3508e4f5512650b63c41f7872a749e99aee9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 23 17:52:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 23 17:52:59 2015 +0000"
      },
      "message": "Merge \"Inline across dex files.\""
    },
    {
      "commit": "7e4c3508e4f5512650b63c41f7872a749e99aee9",
      "tree": "b6f9f89eb384a386ee756e6dd98d9f979feef2ce",
      "parents": [
        "0b1692cd451053198362993d1f6939fde90c2f50"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 18 11:00:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 23 17:42:01 2015 +0000"
      },
      "message": "Inline across dex files.\n\nChange-Id: I5c2c44f5130b50f0bad21a6877a3935dc60b4a85\n"
    },
    {
      "commit": "b8fb4f499d5a78db597142c9986a2550345bd2b9",
      "tree": "855aac644fbde7ecb264666c6691f66333fff93b",
      "parents": [
        "476448128d0ebf3328e96548de34f19bc55fa5c8",
        "0e071250e1291656f2211c5869c649fb459d5c9b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 23 14:08:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 23 14:08:22 2015 +0000"
      },
      "message": "Merge \"Update script now that optimizing is default.\""
    },
    {
      "commit": "0e071250e1291656f2211c5869c649fb459d5c9b",
      "tree": "db1e937da823e07810ee456e0397c49a529f5d57",
      "parents": [
        "0b1692cd451053198362993d1f6939fde90c2f50"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 21 13:43:15 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 23 14:06:29 2015 +0000"
      },
      "message": "Update script now that optimizing is default.\n\nbug:19872972\n\nChange-Id: I648078483af5a0db3a13b0f94c36d083cbc4d2df\n"
    },
    {
      "commit": "476448128d0ebf3328e96548de34f19bc55fa5c8",
      "tree": "d539cf7b3b3261512474fd0cd623b3d6fc93ebbf",
      "parents": [
        "0b1692cd451053198362993d1f6939fde90c2f50",
        "1445dd3b3f47fcbdb722f74bcf5189249310a0b4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 22 20:22:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 22 20:22:25 2015 +0000"
      },
      "message": "Merge \"Change \"no-\",\"no\" test prefix to n\""
    },
    {
      "commit": "9ccd151d0d27a729f88af9d00285afe4d147981a",
      "tree": "edfef268a0ecda957dfaa91ec35dd99c9ad3761f",
      "parents": [
        "3743174267159ec0c39bce1ca28c2081468dda94"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 20 18:11:45 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 20 18:40:32 2015 -0700"
      },
      "message": "Fix verifier handling of empty switch as last instruction.\n\nAlso fixes optimizing compiler\u0027s assumption that switch is non-empty and\nadds test case.\n\nBug: 19827056\nChange-Id: I5ac891d5062f528ef3be787b1094cba7b4c0fbd0\n"
    },
    {
      "commit": "767c752fddc64e280dba507457e4f06002b5f678",
      "tree": "3c7ee2333290b6d634e3cb5e0ab49d6cbee9c096",
      "parents": [
        "0b40ecf156e309aa17c72a28cd1b0237dbfb8746"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 20 12:47:30 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 20 21:58:07 2015 +0000"
      },
      "message": "Quick: Create GC map based on compiler data.\n\nThe Quick compiler and verifier sometimes disagree on dalvik\nregister types (fp/core/ref) for 0/null constants and merged\nregisters involving 0/null constants. Since the verifier is\nmore lenient it can mark a register as a reference for GC\nwhere Quick considers it a floating point register or a dead\nregister (which would have a ref/fp conflict if not dead).\nIf the compiler used an fp register to hold the zero value,\nthe core register or stack location used by GC based on the\nverifier data can hold an invalid value.\n\nPreviously, as a workaround we stored the fp zero value also\nin the stack location or core register where GC would look\nfor it. This wasn\u0027t precise and may have missed some cases.\n\nTo fix this properly, we now generate GC maps based on the\ncompiler\u0027s notion of references if register promotion is\nenabled.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d147187\nChange-Id: Id3a2f863b16bdb8969df7004c868773084aec421\n"
    },
    {
      "commit": "1445dd3b3f47fcbdb722f74bcf5189249310a0b4",
      "tree": "4238fdb989d069e89ad771febf9884104dfef211",
      "parents": [
        "6cc763c8b8157fb42dd44e1dfb84812546500dc1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 20 14:29:51 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 20 14:32:15 2015 -0700"
      },
      "message": "Change \"no-\",\"no\" test prefix to n\n\nReduces file names to under 255 characters, for now.\n\nChange-Id: I095da02c1a3fc14fa9022d1a39307845bd870abc\n"
    },
    {
      "commit": "e86deeffad79c00ed2ebede04f4adc348bda790c",
      "tree": "f0952116fe2fa933c8c9827e83caf4432f0339da",
      "parents": [
        "2f5904383a7b7ffb741c8839ec3c60762860bad3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 19 13:43:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 20 10:26:42 2015 -0700"
      },
      "message": "Add verify-at-runtime compiler filter\n\nVerifies at runtime only, instead of at compilation time.\nAOSP HH boot time after clean-oat: ~30s instead of ~35s if enabled.\nAlso helps install time if enabled there.\n\nTODO: See if there is any possible deadlocks that can result from\nthis.\n\nBug: 19762303\n\nChange-Id: Ibfba77148da9039e8d7d7497c05486bc044eefe7\n"
    },
    {
      "commit": "e7307294211caaef0c9cc441d52a2e186e359706",
      "tree": "8818477b32aee45aa535afafa7ef57424417bb7b",
      "parents": [
        "4f305a4c0af66328b87a4989024a2267ce334a59"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 17 18:12:06 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 17 18:12:06 2015 +0000"
      },
      "message": "Unbreak checker.\n\nChange-Id: Idabb8c04c29d265330ef9ae28c1df01129abe9dd\n"
    },
    {
      "commit": "94e480778b0946d1ab405ecf901e5d41ed54cc17",
      "tree": "a7cce64941d37fe98597a886c40291b6f1ea185f",
      "parents": [
        "ea2a45669b807486b0570c66d29a721e684f8d47",
        "a3d90fb449e2fba87211a7de323faff63cba41fc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 16 17:20:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 16 17:20:07 2015 +0000"
      },
      "message": "Merge \"[optimizing] Use baseline when debuggable is set.\""
    },
    {
      "commit": "a3d90fb449e2fba87211a7de323faff63cba41fc",
      "tree": "b78d4ac59c95d5cc8d26f6c27a800af2125807b3",
      "parents": [
        "24ce79ebb11b7ea2947a35d447e0df1ab39b24bf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 16 13:55:40 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 16 17:03:33 2015 +0000"
      },
      "message": "[optimizing] Use baseline when debuggable is set.\n\nSSA form conflicts with JDWP\u0027s SetValue functionality. Because\nwe do not deopt all the call stack, we may call SetValue on a\ncompiled frame, which doesn\u0027t work with optimizing. Simplest\nsolution for now is to just use baseline.\n\nChange-Id: I91738b363eec8fef145486bd96681aea73a1baa8\n"
    },
    {
      "commit": "a878082462a9df301f289a045049ec9eb61cec9f",
      "tree": "305622f7efccffbbaf2660c8aa95b5ed5e054bac",
      "parents": [
        "97930feb1288f1b8ef08f11af5db9e0fe1e6bbe7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 13 19:51:09 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 15 13:25:02 2015 -0700"
      },
      "message": "ART: Change logging strategy in run-tests\n\nFor host tests, do not silence warnings for the prebuild stage.\n\nBug: 19687013\nChange-Id: Idd8f61a05d548da1679fddbd9ef5d216397b4fe7\n"
    },
    {
      "commit": "faa375ca1409707efaaeeb710b2e933e7668dbe9",
      "tree": "32ce9cd8faec1e102dd2f0c8b601ac3f2e8cc1a9",
      "parents": [
        "f11995b033f70900098ecf56bab32256ce536ada",
        "e50b8d23d69a0d1f4eee51d34870968cd49a6f7d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 10:37:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 10:37:33 2015 +0000"
      },
      "message": "Merge \"Disable inlining in Optimizing when --debuggable is set.\""
    },
    {
      "commit": "e50b8d23d69a0d1f4eee51d34870968cd49a6f7d",
      "tree": "34d0a0b7b17510f1f45817bc8a2fbd09554d985e",
      "parents": [
        "e4aca0297a0c3c710c802342db025832aed9e6ab"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 08:57:42 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 09:58:00 2015 +0000"
      },
      "message": "Disable inlining in Optimizing when --debuggable is set.\n\nChange-Id: I6365269e606e0c176e518c06719ebdaf6a4c4b88\n"
    },
    {
      "commit": "8bc616d09f93523f4bc982cc60c377b00161522a",
      "tree": "820635b2391843e7f8b9577712520768b150de4f",
      "parents": [
        "d9a59ca8f038a0f93a4e1504e0f7f8f388848719",
        "dc034263a5d6b36826664b7223c4d00ae68ed7cc"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Fri Mar 13 09:53:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 09:53:39 2015 +0000"
      },
      "message": "Merge \"art/test/100-reflect2: change incorrect expectations.\""
    },
    {
      "commit": "ddd04a64a13bde9551ca1174957e055cd2132cff",
      "tree": "cfee62d10e81752ec3af2be1b03dc04a4b176fc9",
      "parents": [
        "90a6adc0f6e55ec02f9443c12e93fea85c1a9393",
        "915b9d0c13bb5091875d868fbfa551d7b65d7477"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 08:45:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 13 08:45:12 2015 +0000"
      },
      "message": "Merge \"Tweak liveness when instructions are used in environments.\""
    },
    {
      "commit": "003e7aad9a6e57032dfc7b4677dc815c6aa462ea",
      "tree": "53043cb1877e926c87759549238cb10258620af6",
      "parents": [
        "b1e63900ab0637875adcb77eeb7ff5af532293a1",
        "e2b6997f7e7112af6acfbf4f7184aa70dfad97ff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 12 22:56:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 12 22:56:46 2015 +0000"
      },
      "message": "Merge \"Improve 080-oom-throw-with-finalizer.\""
    },
    {
      "commit": "e2b6997f7e7112af6acfbf4f7184aa70dfad97ff",
      "tree": "df09eb16ceed6f2fb3b8ff3f8c6815ecb7b9aa94",
      "parents": [
        "3848c4fbc189287bca1298d45d07e21ec90c7c82"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 12 13:12:53 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 12 14:22:29 2015 -0700"
      },
      "message": "Improve 080-oom-throw-with-finalizer.\n\nAvoid potential OOME that may be thrown during System.out.println or\nSystem.runFinalization.\n\nBug: 19677738\nChange-Id: I60c678000e965899cc876e746e72dc9cc0c6ebf9\n"
    },
    {
      "commit": "915b9d0c13bb5091875d868fbfa551d7b65d7477",
      "tree": "63822d7081b0da33ccda2019dd52025f0ecedb35",
      "parents": [
        "bf5565a75876a84c8c2401df597d922a7870a8f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 15:11:19 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 12 17:55:01 2015 +0000"
      },
      "message": "Tweak liveness when instructions are used in environments.\n\nInstructions remain live when debuggable, but only instructions\nwith object types remain live when non-debuggable.\n\nEnable StackVisitor::GetThisObject for optimizing.\n\nChange-Id: Id87b2cbf33a02450059acc9993995782e5f28987\n"
    },
    {
      "commit": "97d30aca68af2aa4f114a01d7a7d73e4bf009fe0",
      "tree": "e441187dfab14ffab41aff6576df6aaa14ce8b1c",
      "parents": [
        "3848c4fbc189287bca1298d45d07e21ec90c7c82",
        "b2fd7bca70b580921eebf7c45769c39d2dfd8a5a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 12 17:00:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 12 17:00:15 2015 +0000"
      },
      "message": "Merge \"Opt compiler: Basic simplification for arithmetic operations.\""
    },
    {
      "commit": "4f1a384762bf49fe8f3ecae8dd2bcb0e19d044a9",
      "tree": "3cb359f31e1f3080fb7cfffd5a6fd417f61753d7",
      "parents": [
        "d304629202eec2ab053a47fc7bcf10223b5ccea4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 12 10:34:11 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 12 10:57:47 2015 +0000"
      },
      "message": "Give an expected type to phis created for multiple returns.\n\nWhen inlining, we used to take the type of the inlined method\nfor the phi in case of multiple returns. I recently changed the\nlogic of phi types to only be of int/float/double/ref, so we\nneed to call ToPhiType when creating the phi.\n\nChange-Id: I960067ca8a8814509c2a7c52c08387d892ebf4a3\n"
    },
    {
      "commit": "4cfe74cb50b73f5f4b6dd32aabed55d044afe348",
      "tree": "8371e4999b9a0002588876d7a4d61dd02a1c768f",
      "parents": [
        "cc87995b6d9a61085aa7f2c452ac051e6c955c89",
        "4d57ecf4c8e873017496c7f7aa51c3771dc70969"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 11 21:12:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 11 21:12:42 2015 +0000"
      },
      "message": "Merge \"Properly compile multidex for tests when using Jack.\""
    },
    {
      "commit": "d159eef0a0273a57c1540cc3486c274212069b9f",
      "tree": "18f40b65110342de404057bc16ad9cdf287a7442",
      "parents": [
        "27fa730e58752df9cca8eab78f9b4bb1c9e0473b",
        "091d238936809f6668ca6b7606c62bc224add430"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 11 19:52:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 11 19:52:04 2015 +0000"
      },
      "message": "Merge \"Fix incompatible class change error for JIT stress mode\""
    },
    {
      "commit": "091d238936809f6668ca6b7606c62bc224add430",
      "tree": "90feb09ea9d398f1f80ffa407747496e57e592fe",
      "parents": [
        "637455782147a41fbde2e284c49ca5e02d3444c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 06 10:59:06 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 11 12:43:07 2015 -0700"
      },
      "message": "Fix incompatible class change error for JIT stress mode\n\nThere was a problem with miranda methods, when we would dequicken to\none of these, it wouldn\u0027t resolve as virtual during the method\nlowering resolve. The solution is to try resolving as interface if we\nfail to resolve as virtual.\n\nFixed a bug in dequickening where unreachable register lines with\nquick invokes would cause CHECK failuers. In this case we punt to the\ninterpreter (test 435-try-*).\n\nAdded test regression test. Example failure:\njava.lang.IncompatibleClassChangeError: The method\n\u0027void Main$TheInterface.m()\u0027 was expected to be of type virtual but\ninstead was found to be of type interface (declaration of\n\u0027java.lang.reflect.ArtMethod\u0027 appears in\nout/host/linux-x86/framework/core-libart-hostdex.jar)\n  at Main.DoStuff(Main.java:37)\n  at Main.main(Main.java:44)\n\nBug: 17950037\n\nChange-Id: I39c32cc8849bf02032a4f61a7ce57462b7fcac75\n"
    },
    {
      "commit": "4d57ecf4c8e873017496c7f7aa51c3771dc70969",
      "tree": "90941cd2807fccf45dacf5dc85e36903fea74d37",
      "parents": [
        "637455782147a41fbde2e284c49ca5e02d3444c2"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 11 12:36:24 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 11 12:36:24 2015 -0700"
      },
      "message": "Properly compile multidex for tests when using Jack.\n\nBug: 19687200\nChange-Id: I8c5771ccd474aa06001c3a48cc82550589ac7055\n"
    },
    {
      "commit": "b59dba05697b4ac6c86cb4f45c9222c9c6ad852b",
      "tree": "83cd372b86498c7a78d08be11d6e9f73d7338665",
      "parents": [
        "356286f989941ac495417195e4129aaceaf36a83"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 18:13:21 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 18:13:21 2015 +0000"
      },
      "message": "Fix a bug in the SSA builder.\n\nThe build would leave behind phis with incompatible input types\n(for example float and int). We need another dead phi run after\nthe type propagation to ensure all such phis are dead.\n\nChange-Id: I6ef1da725c7d4a1ebaf6b52dd7eb0c7bacd261b2\n"
    },
    {
      "commit": "b2fd7bca70b580921eebf7c45769c39d2dfd8a5a",
      "tree": "c5dae29519df73f889ba14495eb79d545cd7d6e5",
      "parents": [
        "356286f989941ac495417195e4129aaceaf36a83"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Wed Mar 11 16:48:16 2015 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Wed Mar 11 16:48:16 2015 +0000"
      },
      "message": "Opt compiler: Basic simplification for arithmetic operations.\n\nThe optimisations in this patch do not look further than the\ninputs of each operation.\n\nChange-Id: Iddd0ab6b360b9e7bb042db22086d51a31be85530\n"
    },
    {
      "commit": "234d69d075d1608f80adb647f7935077b62b6376",
      "tree": "f6b68ff38722dc91bd0de2387609ee0ce950e0ce",
      "parents": [
        "31df246d330c45f5691e226d176d0c59450f8435"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:28:50 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 14:23:38 2015 +0000"
      },
      "message": "Revert \"Revert \"[optimizing] Enable x86 long support.\"\"\n\nThis reverts commit 154552e666347d41d95d7619c6ee56249ff4feca.\n\nChange-Id: Idc726551c249a888b7ff5fde8508ae50e81b2e13\n"
    },
    {
      "commit": "dc034263a5d6b36826664b7223c4d00ae68ed7cc",
      "tree": "346c328f287c2dabdf4ef94e9517305b1156489a",
      "parents": [
        "0e242b5cad3c0b68b72f28c1e5fd3fdd4c05bfd8"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Wed Mar 11 12:43:31 2015 +0000"
      },
      "committer": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Wed Mar 11 12:43:31 2015 +0000"
      },
      "message": "art/test/100-reflect2: change incorrect expectations.\n\nMethods can\u0027t be volatile nor transient.\n\nbug: 18488857\n\nChange-Id: Ie82ed513b58083a795549a708197f1db52ffb796\n"
    },
    {
      "commit": "64d69ab01e2f7ef6d489b8b206f6e40bef1d02f4",
      "tree": "24ec49f55bd8f47cc9223b1c9b71fab3e2c6572f",
      "parents": [
        "0b2bfbd440f86c8c0c7ab41b74d5557edf6e9d49"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 19:26:24 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 19:26:24 2015 +0000"
      },
      "message": "Test uses libart.so, so can\u0027t be run NDEBUG.\n\nChange-Id: I22c7391e07a9d06a8ce9a4d23a21ba9f60bcfe64\n"
    },
    {
      "commit": "21c7906e08b801f1afcb62bdd1f1763c93e5ea06",
      "tree": "df4a02135f4c4d78138e075b1643ac22651f8f50",
      "parents": [
        "48e702fe11458b334e6abcc8f562729ccb5b27dd",
        "7d9e5a9de873836f9630b9c4e66e00c3a38ae8e8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 10 18:32:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 10 18:32:15 2015 +0000"
      },
      "message": "Merge \"ART: Relax test 703\""
    },
    {
      "commit": "48e702fe11458b334e6abcc8f562729ccb5b27dd",
      "tree": "eed2c65d5a0fd7d019a156b54b19e84fb535d993",
      "parents": [
        "39d9fe2eb3552a002c53ed41701c6faffe3cd75a",
        "e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 18:07:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 10 18:07:54 2015 +0000"
      },
      "message": "Merge \"Make the SSA builder honor the debuggable flag.\""
    },
    {
      "commit": "e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949c",
      "tree": "26269a55f16d8bee5b5898318fa18491fd72061c",
      "parents": [
        "3dd536ffd7e8f82e4587964545b272acbd61d68e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:02:49 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 16:20:35 2015 +0000"
      },
      "message": "Make the SSA builder honor the debuggable flag.\n\nThis requires to properly type phis that are only\nused by environments, and discard phis with incomptable types.\nThe code generators do not handle these conflicting types. In\nthe process, ensure a phi has a type that does not depend\non the order of the inputs (for example (char, short) -\u003e short),\nand set int for int-like types. We can refine this later.\n\nChange-Id: I60ab601d6d00b1cbf18623ee4ff1795aa28f84a1\n"
    },
    {
      "commit": "7d9e5a9de873836f9630b9c4e66e00c3a38ae8e8",
      "tree": "49c7245b8beee2341e872153b713a0a32fb348f4",
      "parents": [
        "54a8cc689dc23f346c9aac0d5fc6f47e61df8cad"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 09 19:29:48 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 10 09:16:56 2015 -0700"
      },
      "message": "ART: Relax test 703\n\nNaNs are a set of numbers. Do not expect one specific one as the\nresult of a NaN computation.\n\nChange-Id: Ib98d61ea1fe8c2dd80027d1a23b8a77bfb248a27\n"
    },
    {
      "commit": "66d874d96d5699bb090c59f47a5a528956ca053e",
      "tree": "d59bf83a08fead7d9823230831bea63c9e43a62c",
      "parents": [
        "2cfdabd2bb4833d7092819d27ef08a9e1cdffead"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 15 09:37:19 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 09 14:46:23 2015 -0700"
      },
      "message": "Create OatFileAssistant class for assisting with oat files.\n\nThe oat file assistant is used for determining whether dex2oat or\npatchoat is needed, for running dex2oat or patchoat as needed to make\nan oat file up to date, and to load dex files associated with a given\ndex location.\n\nThe introduction of the OatFileAssistant class is meant to clean up and\nconsolidate code related to the management of oat files that was\nduplicated and spread across dalvik_system_DexFile.cc and\nclass_linker.cc.\n\nBug: 11301553\nChange-Id: I0c16027b9bae4570c2c50faa9c14f581c0cbafb8\n"
    },
    {
      "commit": "2cfdabd2bb4833d7092819d27ef08a9e1cdffead",
      "tree": "ff8981dfea062c740223eb652b2fbff698215b42",
      "parents": [
        "504b1731dc8f115d7a6d6d54da6fa6a0e3f4b0c9",
        "155bef4c26032190ae8988d5487eb40e321131ad"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Mar 09 14:07:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 09 14:07:15 2015 +0000"
      },
      "message": "Merge \"Fix run-test with JIT enabled\""
    },
    {
      "commit": "155bef4c26032190ae8988d5487eb40e321131ad",
      "tree": "e6ef519414334bceac8d461c902e815c6bc94e99",
      "parents": [
        "5c9d8f0d2948c2b4fe4258f96e3598ad5b8fa23b"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Mar 09 14:57:48 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Mar 09 15:01:53 2015 +0100"
      },
      "message": "Fix run-test with JIT enabled\n\nUses -Xusejit:true instead of -Xjit.\n\nBug: 17950037\nChange-Id: I8280245e3e2aeced5927ade1632b7a110b040136\n"
    },
    {
      "commit": "43c162f059e6463119aa1efd0841374ca7b4f789",
      "tree": "2dd84ca0249f0c32c833dddaf8b8d847e00558b0",
      "parents": [
        "bf40b5ba88dff872f252c975dd6570571c7d5a90"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 12:21:26 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 13:51:56 2015 +0000"
      },
      "message": "Revert \"Revert \"More Makefile fun for --debuggable.\"\"\n\nThis reverts commit 9728a930fdf717cca60b48d9c2b715d0eed497fd.\n\nChange-Id: Ieca964a793e58f11931f78f50be47a4a9f0dc21f\n"
    },
    {
      "commit": "9728a930fdf717cca60b48d9c2b715d0eed497fd",
      "tree": "169a7bf67d0431922896fe91db3f34a03b786ad7",
      "parents": [
        "bd648cd3aef1ce82aaaa85924b1178a7f499cc29"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 12:13:43 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 12:13:43 2015 +0000"
      },
      "message": "Revert \"More Makefile fun for --debuggable.\"\n\nThis reverts commit bd648cd3aef1ce82aaaa85924b1178a7f499cc29.\n\nChange-Id: I9be508730dc5c25b9d08f914c5628e88bc4aa15b\n"
    },
    {
      "commit": "bd648cd3aef1ce82aaaa85924b1178a7f499cc29",
      "tree": "0621307fc2b196544cf7c36b04ea1e143945714b",
      "parents": [
        "7e5b740cc387645c6b2e0dc8604b1e074c398b4d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 06 11:43:15 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 06 17:08:46 2015 +0000"
      },
      "message": "More Makefile fun for --debuggable.\n\nChange-Id: Icd4a4cf53907bf04b0d45211e264c9985045b55c\n"
    },
    {
      "commit": "65405378f4fd207dcd7d99916c2397a0da08438f",
      "tree": "3f57d35cc15f4933286028e97fac7866068cbcc7",
      "parents": [
        "8d2ceab800890b562c9a03a7f5920fb9bfb37858",
        "c5e3ab2bcb90c1c5579658736ede950ef264883f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Mar 06 05:32:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 06 05:32:52 2015 +0000"
      },
      "message": "Merge \"Follow up 137982\""
    },
    {
      "commit": "c5e3ab2bcb90c1c5579658736ede950ef264883f",
      "tree": "981609505e8d2694eaf29667dba9e7462a17a795",
      "parents": [
        "dc68bafc29a457b1cc5b29a03f2ef5f2af77865d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Mar 04 19:03:48 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Mar 05 17:36:00 2015 +0100"
      },
      "message": "Follow up 137982\n\nUpdates comment explaining why we sort types by name in run-test\n031-class-attributes.\n\nBug: 19499481\nChange-Id: I1ee425a24dffd55d134effc6857e2c0ca368422a\n"
    },
    {
      "commit": "5f8741860d465410bfed495dbb5f794590d338da",
      "tree": "cf295594b5b018e96959ddf474e7c8b7374006b5",
      "parents": [
        "c670efd6ba9dbd1166bfd8c805bb6b2df7d4313a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Mar 04 15:42:45 2015 -0500"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 11:08:33 2015 +0000"
      },
      "message": "[optimizing] Use callee-save registers for x86\n\nAdd ESI, EDI, EBP to available registers for non-baseline mode. Ensure\nthat they aren\u0027t used when byte addressible registers are needed.\n\nChange-Id: Ie7130d4084c2ae9cfcd1e47c26eb3e5dcac1ebd6\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "b1add757fc60d8645ffa36db5bbb9279d86451ee",
      "tree": "05332b60a00d2be899471906826c244fab07e934",
      "parents": [
        "3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Mar 04 16:45:31 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Mar 04 17:53:10 2015 +0100"
      },
      "message": "Update run-test 031-class-attributes\n\nEnsure types are printed in alphabetical order.\n\nBug: 19499481\nChange-Id: Ia14d2529f8031bc4c2bfb8911fdebebf97638dc9\n"
    },
    {
      "commit": "dc5ac731f6369b53b42f1cee3404f3b3384cec34",
      "tree": "72a90f1da01185014551628078b98a79e5d5230e",
      "parents": [
        "0e5e728a4a4f042f157e1897cc8bbc2b0bb110b1"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Feb 25 11:28:05 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Mar 03 13:24:03 2015 -0800"
      },
      "message": "Opt compiler: enhance gvn for commutative ops.\n\nChange-Id: I415b50d58b30cab4ec38077be22373eb9598ec40\n"
    },
    {
      "commit": "ea84bf7246f47693594eb5acc9a25c438289bd9f",
      "tree": "a879181a02d71f666df68576dacc456390625d9a",
      "parents": [
        "dc47e986941b1a3754447fabea272485f3f0f382",
        "57e04754d5b7fb3cc99d6b9f70da73cf4c65b416"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Mar 03 19:53:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 03 19:53:15 2015 +0000"
      },
      "message": "Merge \"bce: add support to narrow two MonotonicValueRange\u0027s at the same time.\""
    },
    {
      "commit": "d845fd0c8daa94c46c0dbdf0e6c023d5d7c0df04",
      "tree": "dd2592752dca7d93790bb06154746f48740695a2",
      "parents": [
        "207fc169d52c17f50c3a9e4ce0442d241c31b5fa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 12:43:45 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 12:43:45 2015 +0000"
      },
      "message": "Tests use libarttest.so, so does not work on ndebug.\n\nChange-Id: I0435e0a62592bd0f449bb52517efa9ac55ec8913\n"
    },
    {
      "commit": "7cde48c56df5b57aed524cce44c902bc720f2d6c",
      "tree": "b9b9e33b29f46bfe0c2da89c7e3e87c8ee419ccc",
      "parents": [
        "4b39eeea67b0fecf21588d7b00e92eb844014c24"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jan 20 16:06:43 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 11:22:00 2015 +0000"
      },
      "message": "Stack support for Optimizing compiler\n\nAllows to read/write DEX registers from physical register or stack\nlocation when the method is compiled with the Optimizing compiler.\n\nRequired fixing arm and arm64 JNI compiler by saving floating\npoint registers.\n\nBug: 18547544\nChange-Id: I401579f251d1c0a130f6cf4a93a960cdcd7518f5\n"
    },
    {
      "commit": "4559f000b323b64e4bd179b72cfb788b30b25b23",
      "tree": "00728f44d761f8663bbadc51d6d6eb67c42465ff",
      "parents": [
        "1d8587fe1d98909b4949282f14c0334085fdc964"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Feb 27 14:43:53 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Mar 02 15:45:08 2015 -0800"
      },
      "message": "bce: handle a pattern for circular buffer\n\nChange-Id: Ie54bdd7c044af58deea0d0addaaa8186cabf3532\n"
    },
    {
      "commit": "caa0a87185257b5d6f5a0771003d58fcbb9548f6",
      "tree": "0be67791b6e92934e964dd2b66bca3bf70276731",
      "parents": [
        "0d1ef55dd46ecd0309f8e9e6b30625cde9473fc8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 11:53:08 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 13:04:34 2015 -0800"
      },
      "message": "Fix bad variable expansion\n\nBug: 19524713\nChange-Id: I6537bc650e2690e5902576fd0e5a55142d91182a\n"
    },
    {
      "commit": "0d1ef55dd46ecd0309f8e9e6b30625cde9473fc8",
      "tree": "2cec21a9987da7ff8b4c2322159ac8b14d25c50b",
      "parents": [
        "8376830b762fbe974a9ddd2d43c640655883c7ab",
        "e2a12c0504cdd75e27c9c6567ceebdc124d344d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 27 22:33:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 27 22:33:30 2015 +0000"
      },
      "message": "Merge \"Change JIT tests to use interpreter image\""
    },
    {
      "commit": "e2a12c0504cdd75e27c9c6567ceebdc124d344d6",
      "tree": "1db91db9d04e4ab1801a6edcfe20a6e5479c4d9b",
      "parents": [
        "02abb5075f3085e69c0c81fb5724c066f6c845b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 27 13:21:15 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 27 14:26:29 2015 -0800"
      },
      "message": "Change JIT tests to use interpreter image\n\nBug: 19528920\nChange-Id: I079cfcca7bb57e492c82a44f104e41228cb33b4f\n"
    },
    {
      "commit": "8376830b762fbe974a9ddd2d43c640655883c7ab",
      "tree": "213f427d1c6c291340693c0e4f6b6a746d47277b",
      "parents": [
        "02abb5075f3085e69c0c81fb5724c066f6c845b7",
        "4de86d0987139153ae0e2d50dbbefde2ce34ee87"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 27 21:29:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 27 21:29:55 2015 +0000"
      },
      "message": "Merge \"Handle another untyped dex CONST issue\""
    },
    {
      "commit": "721f3a817884c1c4cf30cea2bbb337738745a74d",
      "tree": "aca6801eaeef9176bf9ad2e62c7db8f2bc4f993d",
      "parents": [
        "242026e246a8b9efe098a0cce008fd525e011e5b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 27 10:39:48 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 27 11:31:05 2015 -0800"
      },
      "message": "Fix jit tests\n\nMissing image suffix was missing causing tests to fail.\nAlso added missing phony targets.\n\nBug: 19524713\nChange-Id: Ib40d39b1fc16e1adfdc01744a199ae9b0b562664\n"
    },
    {
      "commit": "3fc1b12a2308e39a0c9b1cdcf4eb0b5770081e51",
      "tree": "56463ead06e039bed2bf7726d06c04159df078cd",
      "parents": [
        "f5c224cca603ef1dba9bb80952613facc22598fa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 26 10:58:08 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 26 10:59:31 2015 -0800"
      },
      "message": "Add missing JIT stuff in make files\n\nWas causing core.oat to not be created.\n\nBug: 19524713\nChange-Id: I5da005fd36f9682623fdda9931280997b59c2681\n"
    },
    {
      "commit": "510be430dc4e68c09b56e5636e97a76380927e1d",
      "tree": "a36f0ac6582f98f7074610442d09c5e1c87e3876",
      "parents": [
        "17b01497b29f980a3d515a01adcb5f47df67ac63",
        "e5f13e57ff8fa36342beb33830b3ec5942a61cca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 25 00:47:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 25 00:47:15 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add JIT\"\"\""
    },
    {
      "commit": "7c3952f423b8213083d60596a5f0bf4237ca3f7b",
      "tree": "40cbc6d30e02ab5edd8598d0f811b62f5c6045ba",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 19 18:21:24 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 15:57:15 2015 -0800"
      },
      "message": "ART: Add -Wunused\n\nUntil the global CFLAGS are fixed, add Wunused. Fix declarations\nin the optimizing compiler.\n\nChange-Id: Ic4553f08e809dc54f3d82af57ac592622c98e000\n"
    },
    {
      "commit": "57e04754d5b7fb3cc99d6b9f70da73cf4c65b416",
      "tree": "9bde4949495c4cb2f29e491327801016ff135c76",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 09 18:13:26 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Feb 24 13:54:54 2015 -0800"
      },
      "message": "bce: add support to narrow two MonotonicValueRange\u0027s at the same time.\n\nChange-Id: I545da4f375619ce47e01bb5aa5c8b1a4a9d1df41\n"
    },
    {
      "commit": "e5f13e57ff8fa36342beb33830b3ec5942a61cca",
      "tree": "02e370ecc4e0d955f28bfc71a41015f94fbb19b7",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 09:37:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 10:47:02 2015 -0800"
      },
      "message": "Revert \"Revert \"Add JIT\"\"\n\nAdded missing EntryPointToCodePointer.\n\nThis reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.\n\nChange-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af\n"
    },
    {
      "commit": "2cb551b1f9ef581b0eb1ef7cbee6bfdb6d9db4b3",
      "tree": "697b802f748224261615d0c32dad734dc93ecad1",
      "parents": [
        "6726d200144a1c1be0058c57853f9831223991e6",
        "d8ef2e991a1a65f47a26a1eb8c6b34c92b775d6b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 16:26:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 16:26:54 2015 +0000"
      },
      "message": "Merge \"not-int can also take non-int (byte and short) instructions.\""
    },
    {
      "commit": "6726d200144a1c1be0058c57853f9831223991e6",
      "tree": "6ed4ad98878997b941a370e54ce2303052d35b5c",
      "parents": [
        "a48c573d2351177d878e36e003f0cdf4d7f9328f",
        "ee027c0864cf9d062cc5739e20218bb5951a801d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 16:07:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 16:07:57 2015 +0000"
      },
      "message": "Merge \"ART: Fix run-test 118\""
    },
    {
      "commit": "ee027c0864cf9d062cc5739e20218bb5951a801d",
      "tree": "2ad677bf2867e9f6f95960cd907249669ff75d03",
      "parents": [
        "4fa1a274024067e160a60d0a77124e95dca980e1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 08:06:34 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 08:06:34 2015 -0800"
      },
      "message": "ART: Fix run-test 118\n\nNeed to strip error logging for no-prebuild config.\n\nChange-Id: I870bbbf3b6c7e92996e40e45b1bfa58c7e80f709\n"
    },
    {
      "commit": "d8ef2e991a1a65f47a26a1eb8c6b34c92b775d6b",
      "tree": "d3aa88b42db86584724a2566da304aff70be5613",
      "parents": [
        "a48c573d2351177d878e36e003f0cdf4d7f9328f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 16:02:06 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 16:04:07 2015 +0000"
      },
      "message": "not-int can also take non-int (byte and short) instructions.\n\nSo we should use the result-type instead if the input type\nfor knowning what instruction to use.\n\nBug: 19454010\nChange-Id: I88782ad27ae8c8e1b7868afede5057d26f14685a\n"
    },
    {
      "commit": "995e7d495eb898b2812e14ad82d54597676e93fd",
      "tree": "902a7ec1f5e04bb48b7949ef30eaca63a0ff1f72",
      "parents": [
        "b679039d4fdc739959623c2cb1dcc2efa9a1ebe6",
        "817bce7658918b7a70c17b70aa5e6a46b1ae8b3d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 15:08:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 15:08:37 2015 +0000"
      },
      "message": "Merge \"Fix inlining in the presence of multiple returns.\""
    },
    {
      "commit": "817bce7658918b7a70c17b70aa5e6a46b1ae8b3d",
      "tree": "4dc41c5a319d948ff09666cec28f530282191f72",
      "parents": [
        "0b6daeb0f0014474b542cbba1f713eb0dbefb7f9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 13:35:38 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 14:44:46 2015 +0000"
      },
      "message": "Fix inlining in the presence of multiple returns.\n\nOne return could actually return a phi, so doing a phi check for\nknowing if the result phi was already created was bogus.\n\nBug: 19454010\n\nChange-Id: Iee703a2d1071ae263092354465eda368e5d6770d\n"
    },
    {
      "commit": "2d043b356d2e5c911892badf78aa56b843c5c3a6",
      "tree": "0d00c6118ecc251f7b4af0631308e6ef2104d6ad",
      "parents": [
        "0b6daeb0f0014474b542cbba1f713eb0dbefb7f9",
        "61d544bfb812d79f5c9ddad171198836cea719db"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 24 12:39:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 12:39:54 2015 +0000"
      },
      "message": "Merge \"[optimizing] Add if-context sensitivity for null popagation.\""
    },
    {
      "commit": "61d544bfb812d79f5c9ddad171198836cea719db",
      "tree": "f1f43e31e9fdb6f141f1f028e43b6fc62083ed49",
      "parents": [
        "3173c8a11f7e23a89526e0ac3b21af5150966d74"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 16:46:57 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 24 11:28:18 2015 +0000"
      },
      "message": "[optimizing] Add if-context sensitivity for null popagation.\n\nChange-Id: I3725b6c6a6cf44440c34a1bfb67e623531e665d6\n"
    },
    {
      "commit": "f548c54c69443ba94fcee89daca6f5f499d71e9a",
      "tree": "aff0f707cb27e303d3b9de53f961bf48e38ad5be",
      "parents": [
        "9e87baff2eee8e8ae0700c7391ca4447dbe142b0",
        "a5ca888d715cd0c6c421313211caa1928be3e399"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:11:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 08:11:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Add JIT\"\""
    },
    {
      "commit": "a5ca888d715cd0c6c421313211caa1928be3e399",
      "tree": "bdb08a2cbcf277ab7f02626a23b52a3fdf272ffe",
      "parents": [
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "message": "Revert \"Add JIT\"\n\nSorry, run-test crashes on target:\n0-05 12:15:51.633 I/DEBUG   (27995): Abort message: \u0027art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast\u003cuintptr_t\u003e(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc\u003d71e3366b code\u003d0x71e3362d size\u003dad000000\u0027\n10-05 12:15:51.633 I/DEBUG   (27995):     r0 00000000  r1 0000542b  r2 00000006  r3 00000000\n10-05 12:15:51.633 I/DEBUG   (27995):     r4 00000006  r5 b6f9addc  r6 00000002  r7 0000010c\n10-05 12:15:51.633 I/DEBUG   (27995):     r8 b63fe1e8  r9 be8e1418  sl b6427400  fp b63fcce0\n10-05 12:15:51.633 I/DEBUG   (27995):     ip 0000542b  sp be8e1358  lr b6e9a27b  pc b6e9c280  cpsr 40070010\n10-05 12:15:51.633 I/DEBUG   (27995): \n\nBug: 17950037\nThis reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.\n\nChange-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3\n"
    },
    {
      "commit": "4fa1a274024067e160a60d0a77124e95dca980e1",
      "tree": "61dd41429b6b2ed29239f0c619c0e7ea058fd4ac",
      "parents": [
        "40c99de1fd26f9ba6fae20a01175240b96fc7443",
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 01:29:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 01:29:47 2015 +0000"
      },
      "message": "Merge \"Add JIT\""
    },
    {
      "commit": "992b353402f2af3895d73c44c593037cabd0540f",
      "tree": "0576afa0307937067062c46cadfede15fd87483f",
      "parents": [
        "9e80e7fa5ef60f02f35823bc58969c3d5a03453e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 17:15:47 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 17:15:47 2015 -0800"
      },
      "message": "ART: Strip error message in run-test\n\nIt seems the output is flaky - sometimes the LOG(ERROR) makes it\nto output.txt, sometimes it doesn\u0027t. So instead always strip it.\n\nChange-Id: I409b98eb9a5bf0c2e6c1df16ff3b8013a2a85cc5\n"
    },
    {
      "commit": "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4",
      "tree": "140026ff9638ff34050680b6c706b82fa1740b56",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 17 10:38:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:45:49 2015 -0800"
      },
      "message": "Add JIT\n\nCurrently disabled by default unless -Xjit is passed in.\n\nThe proposed JIT is a method JIT which works by utilizing interpreter\ninstrumentation to request compilation of hot methods async during\nruntime.\n\nJIT options:\n-Xjit / -Xnojit\n-Xjitcodecachesize:N\n-Xjitthreshold:integervalue\n\nThe JIT has a shared copy of a compiler driver which is accessed\nby worker threads to compile individual methods.\n\nAdded JIT code cache and data cache, currently sized at 2 MB\ncapacity by default. Most apps will only fill a small fraction of\nthis cache however.\n\nAdded support to the compiler for compiling interpreter quickened\nbyte codes.\n\nAdded test target ART_TEST_JIT\u003dTRUE and --jit for run-test.\n\nTODO:\nClean up code cache.\nDelete compiled methods after they are added to code cache.\nAdd more optimizations related to runtime checks e.g. direct pointers\nfor invokes.\nAdd method recompilation.\nMove instrumentation to DexFile to improve performance and reduce\nmemory usage.\n\nBug: 17950037\n\nChange-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca\n"
    },
    {
      "commit": "24e04aa68c575d349eac0d9d09aab9bd3106ef94",
      "tree": "e6a14642cc4a4b409fe98a696b17968c6d0a65f4",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Fri Sep 12 12:03:25 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 15:43:46 2015 -0800"
      },
      "message": "ART: Allow the execution to stop if the compilation fails via an option\n\nThe current implementation continues the execution of the application if\ndex2oat fails by relying on the interpreter.\n\nThis patch adds a -Xno-dex-file-fallback option to stop the default behavior.\nThis can be used two-fold.\n\nFirst, one can enforce that a runtime only starts with a boot image. A\nfollow-up patch will ensure that dex2oat (for apps) and patchoat in general\nrequest that mode and close gracefully otherwise.\n\nSecond, this can be used for testing and debugging purposes, as it ensures\nthat compiler failures \u0026 aborts are not silently ignored.\n\nAdd testing.\n\nBug: 19100590\nChange-Id: Iaf07b5ccf00942ca8a8ec8687599320a3ddbc089\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "bad712e2576631529381280e52e36905dda5f048",
      "tree": "7f109a5c6265a6d093f190c05bd8f633e6eac26d",
      "parents": [
        "96ac49a260223dc00291116daa63d7489c52bb0f",
        "8c8bad89ff367712a6f5bbf3a5836cd398391067"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 23 19:25:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 23 19:25:29 2015 +0000"
      },
      "message": "Merge \"More checker tests for BCE.\""
    },
    {
      "commit": "8c8bad89ff367712a6f5bbf3a5836cd398391067",
      "tree": "234b03a2d47b37040b84c42e162a0d52fc8e82e5",
      "parents": [
        "6e27f82193a8f54cd8ecdc8fb2c4c1adadafbaf4"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 09 18:13:26 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 23 11:23:40 2015 -0800"
      },
      "message": "More checker tests for BCE.\n\nAlso make sure the check on MonotonicValueRange narrow is more strict.\nPlus some handling on array length division such as array.length/2.\nAdded checker tests for each case.\n\nChange-Id: I9f32fc5f6ca1f3da8edec576de66b44d85a50bc6\n"
    },
    {
      "commit": "304e47467579c909a6312ef3cca5cdad1433de9c",
      "tree": "01deec033535600b9955dd18719aac3189b0de00",
      "parents": [
        "f9fe845f587e856acf4b3f1b19e4b7bab828b142",
        "3173c8a11f7e23a89526e0ac3b21af5150966d74"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 16:05:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 23 16:05:22 2015 +0000"
      },
      "message": "Merge \"[optimizing] Fix float addition on x86.\""
    },
    {
      "commit": "3173c8a11f7e23a89526e0ac3b21af5150966d74",
      "tree": "490fb32942acdcd19f02adfd075fdd32f0830a7e",
      "parents": [
        "735969139b162f9d45a3c0e47dc24a8aec63c736"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 15:53:39 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 15:55:11 2015 +0000"
      },
      "message": "[optimizing] Fix float addition on x86.\n\nChange-Id: Ic39aaae89b8e5184b98001ea67221a3564e9334a\n"
    },
    {
      "commit": "f9fe845f587e856acf4b3f1b19e4b7bab828b142",
      "tree": "57947e8b35e87568ae58536d2287e1b2882dcc5f",
      "parents": [
        "762374d084cd2d0a564a4bd410b91794af6853a4",
        "776b3184ee04092b11edc781cdb81e8ed60601e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 23 15:17:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 23 15:17:07 2015 +0000"
      },
      "message": "Merge \"Each primitive kind now spills to different locations.\""
    },
    {
      "commit": "776b3184ee04092b11edc781cdb81e8ed60601e3",
      "tree": "98458c7087866b988468f5d356550ff14f2ee3af",
      "parents": [
        "1382e569b31f4fab61fcfca5aa93275a2a3cb757"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 23 14:14:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 23 14:56:07 2015 +0000"
      },
      "message": "Each primitive kind now spills to different locations.\n\nHaving different slots depending on the types greatly simplifies\nthe parallel move resolver. It also avoids doing FPU \u003c-\u003e Core\nregister swaps, and force backends to implement such a swap.\n\nChange-Id: Ide9f0452e7ccf9efb8adddbcc246d44b937b253c\n"
    },
    {
      "commit": "4de86d0987139153ae0e2d50dbbefde2ce34ee87",
      "tree": "e9ec46e3972ad197b5d889e80d15fd9a2e4b6d9d",
      "parents": [
        "4ba405483177cf346211d43d97892bae6ff14119"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 20 14:07:27 2015 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Feb 22 07:54:17 2015 -0800"
      },
      "message": "Handle another untyped dex CONST issue\n\nThe lack of typing for dex byte code instructions causes problems\nfor the Quick compiler\u0027s register allocation scheme.  In Quick,\nDalvik virtual registers can have multiple \"home locations\" depending\non type.  Because CONST operators are untyped and their result can\nbe used in multiple type contexts, the code generator must ensure\nthat any CONST #0 definitions of potential floating point uses\nare also flushed to the associated reference view for the vreg\n(if it exists) to support GC.  Previously, this issue was believed\nto have been fixed by c/255389 (see internal b/7250540).\n\nHowever, the earlier fix failed to account for const definitions\npropogating to other vregs via MOVE.  This CL addresses that case by\napplying the earlier workaround to MOVE operators.\n\nNote that there are a few other places where we attempt to deal\nwith this general problem.  First, the verifier will disable\ncompilation for dex code sequences which have type mismatches on non-const\noperations.  Second, during vreg analysis we detect type mismatches on\nPhi insertion, and disable register promotion if there is a mismatch.\n\nb.android.com/147187\n\nChange-Id: I70f27a59e6f84a89777db91ceacaa94a42f5e952\n"
    },
    {
      "commit": "5ea203d88f5415aaeab345f967f206eea448d74e",
      "tree": "a3cd9af320ce8387da591f26fed6453facf132ab",
      "parents": [
        "ba6d943827e6df52316a843468691de264ab4aa5",
        "65357032589e013e06ea3c84cff681ffdb3ebb0b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 20 16:51:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 20 16:51:38 2015 +0000"
      },
      "message": "Merge \"ART: Silence some run-test configurations\""
    },
    {
      "commit": "65357032589e013e06ea3c84cff681ffdb3ebb0b",
      "tree": "6ddc7e093894bb3eea416340e423ec4ce1c3648b",
      "parents": [
        "718859325c773e144bddac4281a1cc63c5e9fcde"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 19 15:10:24 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 20 08:50:25 2015 -0800"
      },
      "message": "ART: Silence some run-test configurations\n\nRun-tests running with a failing dex2oat or patchoat are expected\nto print error lines of the failure. In this case set the log-level\nto FATAL-only, as stripping those errors is overly complicated.\n\nBug: 18713034\nChange-Id: If9c5f50b517b5e906dd0be841ebc1e7987cac928\n"
    },
    {
      "commit": "36fb59b15fbca20c22e9daf2943fcfeebc97848f",
      "tree": "1d254d5abd062512efaad2c03f97b592f3031808",
      "parents": [
        "1382e569b31f4fab61fcfca5aa93275a2a3cb757",
        "b1498f67b444c897fa8f1530777ef118e05aa631"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 20 14:27:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 20 14:27:01 2015 +0000"
      },
      "message": "Merge \"Improve type propagation with if-contexts\""
    }
  ],
  "next": "b1498f67b444c897fa8f1530777ef118e05aa631"
}
