)]}'
{
  "log": [
    {
      "commit": "0a51605ddd81635135463dab08b6f7c21b58ffb0",
      "tree": "820f338333010f4d6e4b543ffea47e9ff7d2dd3f",
      "parents": [
        "e2727154f25e0db9a5bb92af494d8e47b181dfcf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "message": "Revert \"Make compiler/optimizing/ symbols hidden.\"\n\nThis reverts commit e2727154f25e0db9a5bb92af494d8e47b181dfcf.\n\nReason for revert: Breaks ASAN tests (ODR violation).\nBug: 142365358\n\nChange-Id: I38103d74a1297256c81d90872b6902ff1e9ef7a4\n"
    },
    {
      "commit": "e2727154f25e0db9a5bb92af494d8e47b181dfcf",
      "tree": "0ddc6eec3ad9508d7eb1f2b941786dd0ed7d2cd8",
      "parents": [
        "c78860b91ae07eed92f86876e7a03132adea6fcd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 10 10:46:42 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 08:22:00 2019 +0000"
      },
      "message": "Make compiler/optimizing/ symbols hidden.\n\nMake symbols in compiler/optimizing hidden by a namespace\nattribute. The unit intrinsic_objects.{h,cc} is excluded as\nit is needed by dex2oat.\n\nAs the symbols are no longer exported, gtests are now linked\nwith the static version of the libartd-compiler library.\n\nlibart-compiler.so size:\n  - before:\n    arm: 2396152\n    arm64: 3345280\n  - after:\n    arm: 2016176 (-371KiB, -15.9%)\n    arm64: 2874480 (-460KiB, -14.1%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nBug: 142365358\nChange-Id: I1fb04a33351f53f00b389a1642e81a68e40912a8\n"
    },
    {
      "commit": "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403",
      "tree": "0fbce767bc383358cf4cd65aafc74140e1850982",
      "parents": [
        "19379b58bd433da91230e4fe6cd96e7416d16adc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 16:58:47 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:06:07 2018 +0100"
      },
      "message": "Use \u0027final\u0027 and \u0027override\u0027 specifiers directly in ART.\n\nRemove all uses of macros \u0027FINAL\u0027 and \u0027OVERRIDE\u0027 and replace them with\n\u0027final\u0027 and \u0027override\u0027 specifiers. Remove all definitions of these\nmacros as well, which were located in these files:\n- libartbase/base/macros.h\n- test/913-heaps/heaps.cc\n- test/ti-agent/ti_macros.h\n\nART is now using C++14; the \u0027final\u0027 and \u0027override\u0027 specifiers have\nbeen introduced in C++11.\n\nTest: mmma art\nChange-Id: I256c7758155a71a2940ef2574925a44076feeebf\n"
    },
    {
      "commit": "fa3db3d377bfaceb51c9a97864b17ce02538b7e0",
      "tree": "e499305451300d3a7a9a2c4e86d5392846f889e2",
      "parents": [
        "b12293f196dffe3df29a17a054565bac1b578a4f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 12 14:42:18 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 13 00:29:43 2018 +0000"
      },
      "message": "Change compiler tests to have aligned code item\n\nPreviously, the code item was not necessarily 32 bit aligned. This\ncaused bus errors on armv7.\n\nAlso create a real dexfile object instead of casting 0 initialized\nmemory to a dex file pointer. We just got lucky before that the cdex\nboolean was false.\n\nTest: test-art-target-gtest\nBug: 63756964\nBug: 71605148\n\nChange-Id: Ic7199f2b97bbd421de1d702efa5c6531ff45c022\n"
    },
    {
      "commit": "9e734c7ab4599d7747a05db0dc73c7b668cb6683",
      "tree": "dce1d1993734a947fb2e6f626eb1b425cb72143b",
      "parents": [
        "b496af808eaf3af5ebac50aef4fbec33323b5016"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 04 17:56:19 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jan 05 11:07:19 2018 -0800"
      },
      "message": "Create dex subdirectory\n\nMove all the DexFile related source to a common subdirectory dex/ of\nruntime.\n\nBug: 71361973\nTest: make -j 50 test-art-host\nChange-Id: I59e984ed660b93e0776556308be3d653722f5223\n"
    },
    {
      "commit": "ca6fff898afcb62491458ae8bcd428bfb3043da1",
      "tree": "195a6b16d3a4b34acc2faf91ce56f448efb15e07",
      "parents": [
        "aa7273e56fbafc2692c8d20a31b50d2f4bdd2aa1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 03 14:49:14 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 06 17:53:50 2017 +0100"
      },
      "message": "ART: Use ScopedArenaAllocator for pass-local data.\n\nPasses using local ArenaAllocator were hiding their memory\nusage from the allocation counting, making it difficult to\ntrack down where memory was used. Using ScopedArenaAllocator\nreveals the memory usage.\n\nThis changes the HGraph constructor which requires a lot of\nchanges in tests. Refactor these tests to limit the amount\nof work needed the next time we change that constructor.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Build with kArenaAllocatorCountAllocations \u003d true.\nBug: 64312607\nChange-Id: I34939e4086b500d6e827ff3ef2211d1a421ac91a\n"
    },
    {
      "commit": "0ebe0d83138bba1996e9c8007969b5381d972b32",
      "tree": "a5ee66ebc5b587ade97e56ac8fc7d832fbbed4af",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 22:50:39 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 25 15:45:01 2017 +0100"
      },
      "message": "ART: Introduce compiler data type.\n\nReplace most uses of the runtime\u0027s Primitive in compiler\nwith a new class DataType. This prepares for introducing\nnew types, such as Uint8, that the runtime does not need\nto know about.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 23964345\nChange-Id: Iec2ad82454eec678fffcd8279a9746b90feb9b0c\n"
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\n"
    },
    {
      "commit": "3c19d3e029a9fcc123d2c6fd1e5e13867d2cfe1f",
      "tree": "6cd3dcb90f5ee163b08d933299d5b821c03c6a73",
      "parents": [
        "6435910a65067fb38477232b2620cc53978b13c7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 14:36:35 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 19:43:31 2016 +0100"
      },
      "message": "Reuse HUseListNode\u003c\u003es when replacing instruction or input.\n\nCompiling the Nexus 5 boot image with the 64-bit dex2oat\non host this CL reduces the memory used for compiling the\nmost hungry method, BatteryStats.dumpLocked(), by ~5.6MiB:\n\nBefore:\n  MEM: used: 44393040, allocated: 45361248, lost: 968208\n  Number of arenas allocated: 319,\n  Number of allocations: 815492, avg size: 54\n  ...\n  UseListNode    10308480\n  ...\nAfter:\n  MEM: used: 38554536, allocated: 39463008, lost: 908472\n  Number of arenas allocated: 274,\n  Number of allocations: 572221, avg size: 67\n  ...\n  UseListNode     4469976\n  ...\n\nWith 32-bit dex2oat, the UseListNode would be 2/3 of the\nvalues for 64-bit dex2oat (both before and after).\n\nBug: 28173563\nChange-Id: Ia4fabe03568f0e0dbf2cdf2b031863602aea3530\n"
    },
    {
      "commit": "dee58d6bb6d567fcd0c4f39d8d690c3acaf0e432",
      "tree": "5a2f20546ca3c1544c44bee560062580e22dc79c",
      "parents": [
        "391e155a6936a05bd39b171031ec21d2dee62133"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 07 09:54:26 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 07 16:03:16 2016 +0000"
      },
      "message": "Revert \"Revert \"Refactor HGraphBuilder and SsaBuilder to remove HLocals\"\"\n\nThis patch merges the instruction-building phases from HGraphBuilder\nand SsaBuilder into a single HInstructionBuilder class. As a result,\nit is not necessary to generate HLocal, HLoadLocal and HStoreLocal\ninstructions any more, as the builder produces SSA form directly.\n\nSaves 5-15% of arena-allocated memory (see bug for more data):\n  GMS      20.46MB  \u003d\u003e  19.26MB  (-5.86%)\n  Maps     24.12MB  \u003d\u003e  21.47MB  (-10.98%)\n  YouTube  28.60MB  \u003d\u003e  26.01MB  (-9.05%)\n\nThis CL fixed an issue with parsing quickened instructions.\n\nBug: 27894376\nBug: 27998571\nBug: 27995065\n\nChange-Id: I20dbe1bf2d0fe296377478db98cb86cba695e694\n"
    },
    {
      "commit": "60328910cad396589474f8513391ba733d19390b",
      "tree": "01702f6df5c39925b354a3152dd04289e7d97062",
      "parents": [
        "e3ff7b293be2a6791fe9d135d660c0cffe4bd73f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 17:47:42 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 17:47:42 2016 +0000"
      },
      "message": "Revert \"Refactor HGraphBuilder and SsaBuilder to remove HLocals\"\n\nBug: 27995065\nThis reverts commit e3ff7b293be2a6791fe9d135d660c0cffe4bd73f.\n\nChange-Id: I5363c7ce18f47fd422c15eed5423a345a57249d8\n"
    },
    {
      "commit": "e3ff7b293be2a6791fe9d135d660c0cffe4bd73f",
      "tree": "d578d27cb78e6d2caef683cd8ac94c9a9752b192",
      "parents": [
        "86ea7eeabe30c98bbe1651a51d03cb89776724e7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 02 16:48:20 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 11:21:30 2016 +0100"
      },
      "message": "Refactor HGraphBuilder and SsaBuilder to remove HLocals\n\nThis patch merges the instruction-building phases from HGraphBuilder\nand SsaBuilder into a single HInstructionBuilder class. As a result,\nit is not necessary to generate HLocal, HLoadLocal and HStoreLocal\ninstructions any more, as the builder produces SSA form directly.\n\nSaves 5-15% of arena-allocated memory (see bug for more data):\n  GMS      20.46MB  \u003d\u003e  19.26MB  (-5.86%)\n  Maps     24.12MB  \u003d\u003e  21.47MB  (-10.98%)\n  YouTube  28.60MB  \u003d\u003e  26.01MB  (-9.05%)\n\nBug: 27894376\nChange-Id: Iefe28d40600c169c5d306fd2c77034ae19476d90\n"
    },
    {
      "commit": "badd826664896d4a9628a5a89b78016894aa414b",
      "tree": "a30e8b3e62126ae1e1df1152ac643cfc5f2b074a",
      "parents": [
        "47a2a45a6673ddf3322115ff5058763f82a9368f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 02 16:28:56 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 10:21:07 2016 +0000"
      },
      "message": "ART: Run SsaBuilder from HGraphBuilder\n\nFirst step towards merging the two passes, which will later result in\nHGraphBuilder directly producing SSA form. This CL mostly just updates\ntests broken by not being able to inspect the pre-SSA form.\n\nUsing HLocals outside the HGraphBuilder is now deprecated.\n\nBug: 27150508\nChange-Id: I00fb6050580f409dcc5aa5b5aa3a536d6e8d759e\n"
    },
    {
      "commit": "4833f5a1990c76bc2be89504225fb13cca22bedf",
      "tree": "8e096f222368f30bf821b154bc78bac12d5cd2e5",
      "parents": [
        "bb41b250153308ef51664d7a6cc26c6a2e588fb7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Dec 16 10:37:39 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 31 09:58:33 2015 +0000"
      },
      "message": "ART: Refactor SsaBuilder for more precise typing info\n\nThis reverts commit 68289a531484d26214e09f1eadd9833531a3bc3c.\n\nNow uses Primitive::Is64BitType instead of Primitive::ComponentSize\nbecause it was incorrectly optimized by GCC.\n\nBug: 26208284\nBug: 24252151\nBug: 24252100\nBug: 22538329\nBug: 25786318\n\nChange-Id: Ib39f3da2b92bc5be5d76f4240a77567d82c6bebe\n"
    },
    {
      "commit": "68289a531484d26214e09f1eadd9833531a3bc3c",
      "tree": "6f87852b9d14e479ea2c7ef92de35c3118a0fd1e",
      "parents": [
        "bc90a0538e56f98b8e138cb622e6b9d834244ad9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 17:30:30 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 17:40:08 2015 -0800"
      },
      "message": "Revert \"ART: Refactor SsaBuilder for more precise typing info\"\n\nThis reverts commit d9510dfc32349eeb4f2145c801f7ba1d5bccfb12.\n\nBug: 26208284\n\nBug: 24252151\nBug: 24252100\nBug: 22538329\nBug: 25786318\n\nChange-Id: I5f491becdf076ff51d437d490405ec4e1586c010\n"
    },
    {
      "commit": "d9510dfc32349eeb4f2145c801f7ba1d5bccfb12",
      "tree": "9f4e4ffb5fae25c4f14059fd1d772726e9d96170",
      "parents": [
        "ceec5a3c81925cf80a18954b2e585316450c575c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 04 23:30:22 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 14 13:03:19 2015 +0000"
      },
      "message": "ART: Refactor SsaBuilder for more precise typing info\n\nThis patch refactors the SsaBuilder to do the following:\n\n1) All phis are constructed live and marked dead if not used or proved\nto be conflicting.\n\n2) Primitive type propagation, now not a separate pass, identifies\nconflicting types and marks corresponding phis dead.\n\n3) When compiling --debuggable, DeadPhiHandling used to revive phis\nwhich had only environmental uses but did not attempt to resolve\nconflicts. This pass was removed as obsolete and is now superseded\nby primitive type propagation (identifying conflicting phis) and\nSsaDeadPhiEliminiation (keeping phis live if debuggable + env use).\n\n4) Resolving conflicts requires correct primitive type information\non all instructions. This was not the case for ArrayGet instructions\nwhich can have ambiguous types in the bytecode. To this end,\nSsaBuilder now runs reference type propagation and types ArrayGets\nfrom the type of the input array.\n\n5) With RTP being run inside the SsaBuilder, it is not necessary to\nrun it as a separate optimization pass. Optimizations can now assume\nthat all instructions of type kPrimNot have reference type info after\nSsaBuilder (with the exception of NullConstant).\n\n6) Graph now contains a reference type to be assigned to NullConstant.\nAll reference type instructions therefore have RTI, as now enforced\nby the SsaChecker.\n\nBug: 24252151\nBug: 24252100\nBug: 22538329\nBug: 25786318\n\nChange-Id: I7a3aee1ff66c82d64b4846611c547af17e91d260\n"
    },
    {
      "commit": "fa6b93c4b69e6d7ddfa2a4ed0aff01b0608c5a3a",
      "tree": "3528c88e104dac8e58ae5370ab066b8b1dd0218f",
      "parents": [
        "e295be4a95d7861f6ec179edf6565f58cad747cc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 15 10:15:55 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 16 13:21:33 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in HGraph.\n\nReplace GrowableArray with ArenaVector in HGraph and related\nclasses HEnvironment, HLoopInformation, HInvoke and HPhi,\nand tag allocations with new arena allocation types.\n\nChange-Id: I3d79897af405b9a1a5b98bfc372e70fe0b3bc40d\n"
    },
    {
      "commit": "8b20f88b0a8d1b374dd5eaae289d19734c77b8f8",
      "tree": "7bb855bee3c93bd2d4edec359480b4606606559d",
      "parents": [
        "d8d7b90ca57e8e3762951bb419b6f2645bb414c5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 16:17:05 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 16:46:00 2015 +0100"
      },
      "message": "Be careful with predecessor/successor index.\n\nWhen we simplify the CFG, we must preserve things that were already\nsimplified. For example, the index in the predecessor list or\nsuccessor list of a block must be preserved for ensuring the\nfirst block is a loop pre header.\n\nbug:21867463\n\nChange-Id: Ic3fcb3eb2c3fb109d8a57ee2a6b6d4d65fdb9410\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": "db216f4d49ea1561a74261c29f1264952232728a",
      "tree": "8b7914435ad1ba519a3d88b5cca7f0f6e842cd4f",
      "parents": [
        "bc3b93eadd155342b6124d2d5ef3806ecec5dfd6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 05 17:02:20 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 07 09:54:09 2015 +0100"
      },
      "message": "Relax the only one back-edge restriction.\n\nThe rule is in the way for better register allocation, as\nit creates an artificial join point between multiple paths.\n\nChange-Id: Ia4392890f95bcea56d143138f28ddce6c572ad58\n"
    },
    {
      "commit": "3afca781086699e60a8941fb9474d4607c5909cb",
      "tree": "ea9e1c3b0dbb2180b6c4971d93849aeb265c23b1",
      "parents": [
        "21c7906e08b801f1afcb62bdd1f1763c93e5ea06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 18:59:31 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 18:59:31 2015 +0000"
      },
      "message": "Fix tests now that the SSA builder is pruning more phis.\n\nChange-Id: I503400e7343322e31ad393d51367b404d6ed7bd8\n"
    },
    {
      "commit": "2ed20afc6a1032e9e0cf919cb8d1b2b41e147182",
      "tree": "169a7bf67d0431922896fe91db3f34a03b786ad7",
      "parents": [
        "b341b70b2418922d9b792cdba96d22bece87c55a"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Fri Mar 06 13:55:35 2015 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Fri Mar 06 14:15:57 2015 +0000"
      },
      "message": "Opt compiler: Clean the use of `virtual` and `OVERRIDE`.\n\nChange-Id: I806ec522b979334cee8f344fc95e8660c019160a\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": "5e8b137d28c840b128e2488f954cccee3e86db14",
      "tree": "c56e4c709ce07d605ab4b754e89f7739264feb73",
      "parents": [
        "f9af19413333c271192c3b11425f865bd8054c0c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 23 14:39:08 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 04 13:47:49 2015 +0000"
      },
      "message": "Create HGraph outside Builder, print timings\n\nThis patch refactors the way HGraph objects are created, moving the\ninstantiation out of the Builder class and creating the CodeGenerator\nearlier. The patch uses this to build a single interface for printing\ntimings info and dumping the CFG.\n\nChange-Id: I2eb63eabf28e2d0f5cdc7affaa690c3a4b1bdd21\n"
    },
    {
      "commit": "e53798a7e3267305f696bf658e418c92e63e0834",
      "tree": "8979bbed96b107a5a6bbae9285ff4e0c362dad95",
      "parents": [
        "e6c0cdd11097dd72275ac24f1e98217c299d973e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 10:31:54 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 15 22:52:27 2014 +0000"
      },
      "message": "Inlining support in optimizing.\n\nCurrently only inlines simple things that don\u0027t require an\nenvironment, such as:\n- Returning a constant.\n- Returning a parameter.\n- Returning an arithmetic operation.\n\nChange-Id: Ie844950cb44f69e104774a3cf7a8dea66bc85661\n"
    },
    {
      "commit": "a3c00e54f9b711bf3fc55ce5e7d4f8765e2ea9fa",
      "tree": "ef28050647d302368a06d7cb3ed18589d5f35e89",
      "parents": [
        "8acd5cbf7a96e012d28b1773651c4a1bf84b38a3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 25 11:18:37 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 25 11:18:37 2014 +0000"
      },
      "message": "Fix tests now that dead phis are removed when building SSA.\n\nChange-Id: Ie795f5f1c7c44ec1a3ea2bac822b6255bfb8d45c\n"
    },
    {
      "commit": "9ebc72c99e6b703bda611d7c918c9cf3dfb43e55",
      "tree": "6696e6e51dbe2606d2b2e0c0c60dfec06af97e60",
      "parents": [
        "a72cb229d555a8ca86dca748733ea3791eaeec14"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 16:33:42 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 16:33:42 2014 +0100"
      },
      "message": "Make suspend checks note have side effects.\n\nAlso adjust gtests.\n\nChange-Id: I5e1a3e53115812b45ec7f4b6f50ba468fa7ac6b1\n"
    },
    {
      "commit": "c83d441a722f0afb510c9cd0e69e09d65652143c",
      "tree": "68ec67c519cfc3b4eb6e4bbefe2f2fa88a185c22",
      "parents": [
        "aaadf03fd8d9f6a50a3b8b4b916e7cc161e4edba"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 16:46:20 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 16:46:20 2014 +0100"
      },
      "message": "Fix a lint error and update a test after the phi fix.\n\nChange-Id: I6e9ab2a8300c2493a8d3e93ab4ced3d7c9552fc5\n"
    },
    {
      "commit": "fbc695f9b8e2084697e19c1355ab925f99f0d235",
      "tree": "03e643aa9b468a512873293528bec93438580bab",
      "parents": [
        "3d2d7fb7ad24f4aec681ddc68a9565fa837b97ef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 15:33:30 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 16:18:12 2014 +0100"
      },
      "message": "Revert \"Revert \"Implement suspend checks in new compiler.\"\"\n\nThis reverts commit 7e3652c45c30c1f2f840e6088e24e2db716eaea7.\n\nChange-Id: Ib489440c34e41cba9e9e297054f9274f6e81a2d8\n"
    },
    {
      "commit": "184d640d2a3ac86d871dab58386a50cc9bb973f9",
      "tree": "4880a8790937e57de955b38cda06404f7a105a0f",
      "parents": [
        "fbc2b1747e7e3d06f214f801f53218a1d4bf2dbe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 14:06:02 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 14:06:02 2014 +0100"
      },
      "message": "Add a type propagation phase after building SSA.\n\nThis ensures all phis have a type.\n\nChange-Id: I7e4f9a16d1efb5f64c493c1351749b352c870cbd\n"
    },
    {
      "commit": "ec7e4727e99aa1416398ac5a684f5024817a25c7",
      "tree": "3ad51887c890b5cbebf1ae8e4afec8d93b485168",
      "parents": [
        "7a6b77f9a694ea4569fbf44493fdcaeea237a8be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 06 11:24:33 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 08:59:02 2014 +0100"
      },
      "message": "Fix some bugs in graph construction/simplification methods.\n\nAlso fix a brano during SSA construction. The code should\nnot have been commented out. Added a test to cover what the code\nintends.\n\nChange-Id: Ia00ae79dcf75eb0d412f07649d73e7f94dbfb6f0\n"
    },
    {
      "commit": "7c3560f2ce0ec9484004d05a94bfaa6e02f5a96a",
      "tree": "44544a733178fe7416264e064477c681f08ae562",
      "parents": [
        "57795db7d44bcd6d106481fa192691400b2358c8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 04 12:12:08 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 04 13:39:37 2014 +0100"
      },
      "message": "Fix a bug in SSA construction.\n\nIf a join block does not have an incoming value for a local\nfrom a predecessor block, we should not create a phi. The\nverifier has made sure the local is updated before any\nfollowing reads after this block.\n\nChange-Id: Id2785efc73c9fb3224826fff2f4b4ad215905ff4\n"
    },
    {
      "commit": "0d3f578909d0d1ea072ca68d78301b6fb7a44451",
      "tree": "5a90ec26839afa06294a46e67a4c4481982c47bf",
      "parents": [
        "c2ffcecb61e474f29f3c6a8721dfd00e0252b1f8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 09:43:38 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 16 09:07:31 2014 +0100"
      },
      "message": "Linearize the graph before creating live ranges.\n\nChange-Id: I02eb5671e3304ab062286131745c1366448aff58\n"
    },
    {
      "commit": "f635e63318447ca04731b265a86a573c9ed1737c",
      "tree": "47cab84a6ac47d8a4f5f281e3eabdf1780f220d0",
      "parents": [
        "d115735fe5523ff72319f0968f773683323c7f79"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 09:43:38 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 14 14:26:11 2014 +0100"
      },
      "message": "Add a compilation tracing mechanism to the new compiler.\n\nCode mostly imported from: https://android-review.googlesource.com/#/c/81653/.\n\nChange-Id: I150fe942be0fb270e03fabb19032180f7a065d13\n"
    },
    {
      "commit": "622d9c31febd950255b36a48b47e1f630197c5fe",
      "tree": "8a7f14ce3c6c087955ad5fe91a3ce7d5b5a82461",
      "parents": [
        "98a8a542f95e41c09d214a329a940b270f08f5b3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 12 16:11:02 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 13 09:06:14 2014 +0100"
      },
      "message": "Add loop recognition and CFG simplifications in new compiler.\n\nWe do three simplifications:\n- Split critical edges, for code generation from SSA (new).\n- Ensure one back edge per loop, to simplify loop recognition (new).\n- Ensure only one pre header for a loop, to simplify SSA creation (existing).\n\nChange-Id: I9bfccd4b236a00486a261078627b091c8a68be33\n"
    },
    {
      "commit": "804d09372cc3d80d537da1489da4a45e0e19aa5d",
      "tree": "b226350fdf3dc0c55a11e1615010c8475f167f90",
      "parents": [
        "0095e0b8380a8802f40a21928800b9df6e11f1d7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 02 08:46:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 07 10:32:11 2014 +0100"
      },
      "message": "Build live-in, live-out and kill sets for each block.\n\nThis information will be used when computing live ranges of\ninstructions.\n\nChange-Id: I345ee833c1ccb4a8e725c7976453f6d58d350d74\n"
    },
    {
      "commit": "c32e770f21540e4e9eda6dc7f770e745d33f1b9f",
      "tree": "56a76d7399bf749a4500fb60483e0dc075a24ee7",
      "parents": [
        "618a87009202dc959c935ed8f237ae32bdec57d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 24 12:43:16 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 28 16:21:40 2014 +0100"
      },
      "message": "Add a Transform to SSA phase to the optimizing compiler.\n\nChange-Id: Ia9700756a0396d797a00b529896487d52c989329\n"
    }
  ]
}
