)]}'
{
  "log": [
    {
      "commit": "15bd22849ee6a1ffb3fb3630f686c2870bdf1bbc",
      "tree": "a261601589163faa4538bcf1c9d156e8ec4a42b3",
      "parents": [
        "5b7b5ddb515828c93f0c2aec67aa513c32d0de22"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 05 15:55:41 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 14 15:00:20 2016 +0000"
      },
      "message": "Implement irreducible loop support in optimizing.\n\nSo we don\u0027t fallback to the interpreter in the presence of\nirreducible loops.\n\nImplications:\n- A loop pre-header does not necessarily dominate a loop header.\n- Non-constant redundant phis will be kept in loop headers, to\n  satisfy our linear scan register allocation algorithm.\n- while-graph optimizations, such as gvn, licm, lse, and dce\n  need to know when they are dealing with irreducible loops.\n\nChange-Id: I2cea8934ce0b40162d215353497c7f77d6c9137e\n"
    },
    {
      "commit": "4a34277c55279ba57ab361f7580db846a201d9b1",
      "tree": "31d775a871a351357ecd5d6c76a3a827e20e6d07",
      "parents": [
        "f4c539395244ccfc14aebaf53fdc1122287f65a6"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 30 10:17:46 2015 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 01 13:26:16 2015 -0800"
      },
      "message": "Dynamic BCE (based on induction range analysis)\n\nRationale:\nA rewritten dynamic BCE that uses induction variable analysis\nto generate the run-time tests before a loop in order to\neliminate bounds-checks from its body. This CL removes now\nobsoleted induction related code inside the BCE module.\nAlso, the dynamic test generation is placed more strategically,\nsince we missed a few cases where static analysis does better.\n\nMost significant performance improvements (filtering noise) is about:\n\nLinpack +20%\nLU    \u003e +10%\n\nChange-Id: I03d7631857154b6a131b132f26a2dc568af1b3a1\n"
    },
    {
      "commit": "d59c70627cc42878cc30b46bd29ff497b4483b22",
      "tree": "b0b7013ea78b10f23fae75ef145e53a696ff797c",
      "parents": [
        "0b5849be045c5683d4a6b6b6c306abadba5f0fcc"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Nov 21 05:21:52 2015 +0000"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Nov 21 05:21:52 2015 +0000"
      },
      "message": "Revert \"Dynamic BCE (based on induction range analysis)\"\n\nThis reverts commit 0b5849be045c5683d4a6b6b6c306abadba5f0fcc.\n\n\nChange-Id: Id33f5da42bbdfb1aff7e2281417c8a7aa492df05\nRationale: so close :-( but bullhead-userdebug (linux) build in git_mnc-dr-dev-plus-aosp reported a breakage with a type inconsistency (long vs int in probably the codegen of dynamic bce); no time to investigate and fix this fully before my trip, so rolling back for now\n"
    },
    {
      "commit": "0b5849be045c5683d4a6b6b6c306abadba5f0fcc",
      "tree": "87245845c05ddef6fb53ac4c3774607a89fa5db4",
      "parents": [
        "3944f7175dcf60316ba58a42698ccf23c65ac57c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 19 14:59:26 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Nov 20 17:00:04 2015 -0800"
      },
      "message": "Dynamic BCE (based on induction range analysis)\n\nRationale: A rewritten dynamic BCE that uses induction variable analysis\n           to generate the run-time tests before a loop in order to\n           eliminate bounds-checks from its body. This CL removes now\n           obsoleted induction related code inside the BCE module.\n           Also, the dynamic test generation is placed more strategically,\n           since we missed a few cases where static analysis does better.\n\nMost significant performance improvements (after filtering noise) is about:\n  Linpack +20%\n  LU    \u003e +10%\n\nChange-Id: I4e7b8bab0288beff6f98a14856e3536103d32742\n"
    },
    {
      "commit": "e6e3beaf2d35d18a79f5e7b60a21e75fac9fd15d",
      "tree": "b4164b3862e372a8fb83a1910bb669dedc8664ca",
      "parents": [
        "c05aca78fad20901ae17902a3671ccfca9071758"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 14 13:53:10 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 14 13:53:10 2015 +0000"
      },
      "message": "Revert \"Revert \"optimizing: propagate type information of arguments\"\"\n\nThis reverts commit 89c0d32437011bbe492fe14c766cd707046ce043.\n\nChange-Id: I603a49794e155cc97410b8836c8ea425bfdc98eb\n"
    },
    {
      "commit": "c05aca78fad20901ae17902a3671ccfca9071758",
      "tree": "b17f003a121f0b1a27bd237dfbc83c2514538f99",
      "parents": [
        "2c1ffc3a06e9ed0411e29e7dc2558b5d657ede7a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 13 13:10:33 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 13 13:10:33 2015 +0000"
      },
      "message": "Revert \"optimizing: propagate type information of arguments\"\n\nThis reverts commit 2c1ffc3a06e9ed0411e29e7dc2558b5d657ede7a.\n\nChange-Id: I3291070c373e661fa578f5a38becbb5a502baf94\n"
    },
    {
      "commit": "2c1ffc3a06e9ed0411e29e7dc2558b5d657ede7a",
      "tree": "b4164b3862e372a8fb83a1910bb669dedc8664ca",
      "parents": [
        "89792b9c5ed09dda2937944b69b1b2016807b6aa"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 12 15:01:58 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 12 18:01:14 2015 +0100"
      },
      "message": "optimizing: propagate type information of arguments\n\nThis helps inlining and type check elimination.\n\ne.g:\n\nvoid foo(ArrayList a) {\nint size \u003d a.size(); // this can be inlined now.\n}\n\nChange-Id: I3ffeaa79d9df444aa19511c83c544cb5f9d9ab20\n"
    },
    {
      "commit": "154746b84b407cfd166b45e039b62e6a06dc3f39",
      "tree": "e610cbef3b2ccba5fd7bc6f2be8c007ab02990f9",
      "parents": [
        "98893e146b0ff0e1fd1d7c29252f1d1e75a163f2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 06 15:46:54 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 06 16:42:57 2015 +0100"
      },
      "message": "Remove dex_pc\u0027s default value from top level HInstruction\n\nThis clearly hints that the dex_pc is stored in the super class and\ndoesn\u0027t need to be reimplemented in subclasses.\n\nChange-Id: Ifd4aa95190c4c89367b4dd2cc8ab0ffd263659ac\n"
    },
    {
      "commit": "22af3bee34d0ab1a4bd186c71ccab00366882259",
      "tree": "793f358d498142a2e60d7d5131c347b0fd668cbd",
      "parents": [
        "fe9a1b05ea5a21b6d9a2e9e5081f5e80ff8a1ba2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 10 12:50:58 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 15 17:03:13 2015 -0700"
      },
      "message": "Use induction variable range analysis in BCE (statically).\n\nRationale: Finally! After lots of very large CLs, now a small CL\n           that uses the new induction variable analysis in BCE\n           (statically, using this dynamically with de-opt is TBD).\n           Despite its relative small size, be aware though,\n           since the CL introduces a new phase to the compiler.\n\nChange-Id: If5555a173fd5d55d147c63138ef51fc296fa1414\n"
    },
    {
      "commit": "3584bce5b1f45e5741d3a6ca24884a36320ecb6b",
      "tree": "d9ccce473db996594e84135cb6d50d260063aabf",
      "parents": [
        "cbc1e2ed4a7d3d43d59c20713888058097c8188f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue May 19 16:01:59 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Jun 10 16:51:57 2015 -0700"
      },
      "message": "Fix premature deoptimization if the loop body isn\u0027t entered.\n\nAdd a test between initial_ and end_ to see if the loop body is entered.\nIf the loop body isn\u0027t entered at all, we jump to the loop header. Loop header is\nstill executed and is going to test the condition again and loop body won\u0027t be\nentered. This makes sure no deoptimization is triggered if the loop body isn\u0027t\neven entered.\n\nBug: 21034044\nChange-Id: I2b6de1f22fbc4568ca419f76382ebd87806d9694\n"
    },
    {
      "commit": "69aa60163989c33a008115205d39732a76ecc1dc",
      "tree": "058392dc104a8e7b3594a548239dca2d3ec06cce",
      "parents": [
        "aa77f6e5839b2ad3bf8ca2c06a44ec92e2667af1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 09 10:34:25 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 09 16:01:49 2015 +0100"
      },
      "message": "Revert \"Revert \"Pass current method to HNewInstance and HNewArray.\"\"\n\nProblem exposed by this change was fixed in:\nhttps://android-review.googlesource.com/#/c/154031/\n\nThis reverts commit 7b0e353b49ac3f464c662f20e20e240f0231afff.\n\nChange-Id: I680c13dc9db9ba223ab11c7af255222860b4e6d2\n"
    },
    {
      "commit": "7b0e353b49ac3f464c662f20e20e240f0231afff",
      "tree": "b5c936df891b08521176065ccaddb1f9e27c9f46",
      "parents": [
        "e21aa42e1341d34250742abafdd83311ad9fa737"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 09 09:25:50 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 09 09:25:50 2015 +0000"
      },
      "message": "Revert \"Pass current method to HNewInstance and HNewArray.\"\n\n082-inline-execute fails on x86.\n\nThis reverts commit e21aa42e1341d34250742abafdd83311ad9fa737.\n\nChange-Id: Ib3fd25faee2e0128001e40d3d51a74f959bc4449\n"
    },
    {
      "commit": "e21aa42e1341d34250742abafdd83311ad9fa737",
      "tree": "d2c9f8530e59876588d32f04b4effc25ebc0fa89",
      "parents": [
        "c47908e8c32fd58bc4dc75998a80f706954db1dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 08 15:35:07 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 08 15:36:27 2015 +0100"
      },
      "message": "Pass current method to HNewInstance and HNewArray.\n\nAlso remove unsed CodeGenerator::LoadCurrentMethod.\n\nChange-Id: I4b8d3f2a30b8e2c76b6b329a72555483c993cb73\n"
    },
    {
      "commit": "81d804a51d4fc415e1544a5a09505db049f4eda6",
      "tree": "fcb1fbb3acf1c6328c5e6a8147e5a6f12a907534",
      "parents": [
        "c06841dac1443e99e92596f15caa82c99bfee010"
      ],
      "author": {
        "name": "Guillaume \"Vermeille\" Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Wed May 20 12:42:25 2015 +0100"
      },
      "committer": {
        "name": "Guillaume \"Vermeille\" Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Wed May 27 18:10:31 2015 +0100"
      },
      "message": "Bring Reference Type Propagation to NewArray\n\nChange-Id: Ieff4f38854e06b0ed4b5689ced94a4289053d80d\n"
    },
    {
      "commit": "0a23d74dc2751440822960eab218be4cb8843647",
      "tree": "39d69de5d812826c4065d0acd38a58cd983f21f0",
      "parents": [
        "cdeb0b5fede4c06488f43a212591e661d946bc78"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 07 11:57:35 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 11 14:17:22 2015 +0100"
      },
      "message": "Add a parent environment to HEnvironment.\n\nThis code has no functionality change. It adds a placeholder\nfor chaining inlined frames.\n\nChange-Id: I5ec57335af76ee406052345b947aad98a6a4423a\n"
    },
    {
      "commit": "1152c926076a760490085c4497c3f117fa8da891",
      "tree": "215d3f45a946f51ae680ec50239ebc48f929aed7",
      "parents": [
        "76f1413492c228bfa710e1eaa4c60370eaffbb8a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 24 17:06:35 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 24 19:25:51 2015 -0400"
      },
      "message": "[optimizing] Rename HasArrayAccesses and check it\n\nSince the flag is only used to see if there is a HBoundsCheck, rename\nHasArrayAccesses() to HasBoundsChecks().\n\nAdd a check in graph_checker to see that the flag is set if we see a\nHBoundsCheck instruction.\n\nChange-Id: I10fe92897374fb247082152dd75c3611cc40ff30\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "d43b3ac88cd46b8815890188c9c2b9a3f1564648",
      "tree": "6c599c3f40d57e92786bd7f41c0541d9eaa2643b",
      "parents": [
        "a109632b240f3c9355ca95500f6f48e4478e3c51"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 14:03:04 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 14:05:13 2015 -0700"
      },
      "message": "Revert \"Revert \"Deoptimization-based bce.\"\"\n\nThis reverts commit 0ba627337274ccfb8c9cb9bf23fffb1e1b9d1430.\n\nChange-Id: I1ca10d15bbb49897a0cf541ab160431ec180a006\n"
    },
    {
      "commit": "8d5b8b295930aaa43255c4f0b74ece3ee8b43a47",
      "tree": "c26fc49bbc74615e7f0b9657aaf3757a8282d7a9",
      "parents": [
        "c8924c6ea9e83ba3832dd5551df38ab06f4aaca9"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 24 10:51:52 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 26 14:10:03 2015 +0000"
      },
      "message": "ART: Force constants into the entry block\n\nOptimizations such as GVN and BCE make the assumption that all\nconstants are located in the entry block of the CFG, but not all\npasses adhere to this rule.\n\nThis patch makes constructors of constants private and only accessible\nto friend classes - HGraph for int/long constants and SsaBuilder for\nfloat/double - which ensure that they are placed correctly and not\nduplicated.\n\nNote that the ArenaAllocatorAdapter was modified to not increment\nthe ArenaAllocator\u0027s internal reference counter in order to allow\nfor use of ArenaSafeMap inside an arena-allocated objects. Because\ntheir destructor is not called, the counter does not get decremented.\n\nChange-Id: I36a4fa29ae34fb905cdefd482ccbf386cff14166\n"
    },
    {
      "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": "6775ba544283897c7bd0cac9e7c70c354b962a5a",
      "tree": "520d7b81f028821df0623e36fcddd95c39a05685",
      "parents": [
        "d8de6f2f6083c119a56b6d4abe537a67c070ebea"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 04 12:10:34 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 04 12:10:34 2015 -0800"
      },
      "message": "Fix bce gtest.\n\nChange-Id: I8b974b68bbebef704fa3c8a073f2920f8a78d1fa\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": "1abb4191a2e56d8dbf518efcaeefb266c1acdf2b",
      "tree": "e9cd0006df96b167c5da9f8f872713ff05b72803",
      "parents": [
        "735969139b162f9d45a3c0e47dc24a8aec63c736"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 17 18:33:36 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 23 15:12:24 2015 +0000"
      },
      "message": "Optimizing: Speed up HInstruction use removal\n\nSimilarly to a previous commit on HEnvironment use removal, this patch\nadds links from instructions to their respective inputs\u0027 use lists for\ncontant-time removal at the cost of doubling the size of input lists\n(from one pointer per entry to two). Manual testing shows that this\nsignificantly reduces the time required to transform HGraph to SSA\nform for some huge methods.\n\nChange-Id: I8dc3e4b0c48a50ac1481eb55c31093b99f4dc29f\n"
    },
    {
      "commit": "b666f4805c8ae707ea6fd7f6c7f375e0b000dba8",
      "tree": "a61439a9bcb555dc575286f3e0bb5e50ce185982",
      "parents": [
        "39109a06015c91188232e59fa9e60e0915d24cd7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 18 14:33:14 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 19 09:59:50 2015 -0800"
      },
      "message": "Move arenas into runtime\n\nMoved arena pool into the runtime.\n\nMotivation:\nAllow GC to use arena allocators, recycle arena pool for linear alloc.\n\nBug: 19264997\nChange-Id: I8ddbb6d55ee923a980b28fb656c758c5d7697c2f\n"
    },
    {
      "commit": "0304e182adee81be32c744fd3c0d28add29974ff",
      "tree": "1fb1a8730d94222e79e8525b5f887c6816d6833d",
      "parents": [
        "2a3611feeb12bd73ccdbb4692f9ca3705f925d56"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Jan 30 16:41:29 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 09 10:53:16 2015 -0800"
      },
      "message": "Improve bce so that more bounds checks can be eliminated.\n\nFor pattern like \"int[] array \u003d new int[size+1]\", we record this range\nfor size:\n[-1, array.length-1]\nThis can eliminate more bounds checks.\n\nAlso simplify overflow/underflow handling and make it more solid.\n\nEnhance instruction simplifier such that if array is a result of\nNewArray with a constant size, replace array.length with that constant.\n\nPlan to move all bce gtests to checker in another change.\n\nChange-Id: Ibe7cc7940b68fb6465dc3e0ff3ebdb0fd6487aa9\n"
    },
    {
      "commit": "cb1b00aedd94785e7599f18065a0b97b314e64f6",
      "tree": "fdde101b239c66325243bcc60d3d94f07ff56492",
      "parents": [
        "9544368685b4aa65e746332e602491a3e8e5b247"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 28 14:50:01 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 30 17:43:16 2015 +0000"
      },
      "message": "Use the non access check entrypoint when possible.\n\nChange-Id: I0b53d63141395e26816d5d2ce3fa6a297bb39b54\n"
    },
    {
      "commit": "827eedbfa882496407375f22b08243a38a5bd53b",
      "tree": "aa4ff781982ffd2f8a95d9a6cdeb1aa28a1f671a",
      "parents": [
        "f90eec005997f98c1a9f874fbbf68414e5f9c766"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 15:18:36 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 16:02:35 2015 +0000"
      },
      "message": "Move code around and address growable_array comment.\n\n- Move SideEffectsAnalysis to its own file.\n- Move most of gvn.h to gvn.cc.\n- Don\u0027t call Resize in GrowableArray constructor, but just set num_used\n  directly.\n\nChange-Id: I1f1291207945d678d3c99cc0ec1ec155bcae82f6\n"
    },
    {
      "commit": "e6f171514c9c499bd0a137aff6bd8a7a79d2682a",
      "tree": "b69c22e07b26938118e35c665b77d7f743300ffa",
      "parents": [
        "3c40d38eadeb5ea7c0733f6a40816061db8c86f8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 15:13:47 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 15:15:56 2015 +0000"
      },
      "message": "Fix build breakage after GVN change.\n\nChange-Id: I120717f8cae452cad9967559c466c1605a3e7b14\n"
    },
    {
      "commit": "0418b5b20587c645b6bf9d8cb65d3d6a9f074d96",
      "tree": "f0f7d8a245851acd0409535640a804be5db7a6bb",
      "parents": [
        "044ac4f4f6760eeef4ed96b5349a8a5c325c52f1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:24:50 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:24:50 2014 -0800"
      },
      "message": "ART: Fix linting errors\n\nFix bounds_check_elimination linting errors.\n\nChange-Id: I040433ecbc84d740bff331c37df0bfcc64dc244e\n"
    },
    {
      "commit": "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"
    }
  ]
}
