)]}'
{
  "log": [
    {
      "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": "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": "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": "0d9f17de8f21a10702de1510b73e89d07b3b9bbf",
      "tree": "3d58a2a165ee2bc5af0e813b1ffa893fba72ed6d",
      "parents": [
        "9bb3e8e10d7d9230a323511094a9e260062a1473"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 14:17:44 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 14:17:44 2015 +0100"
      },
      "message": "Move the linear order to the HGraph.\n\nBug found by Zheng Xu: SsaLivenessAnalysis being a stack allocated\nobject, we should not refer to it in later phases of the compiler.\nSpecifically, the code generator was using the linear order, which\nwas stored in the liveness analysis object.\n\nChange-Id: I574641f522b7b86fc43f3914166108efc72edb3b\n"
    },
    {
      "commit": "fb8d279bc011b31d0765dc7ca59afea324fd0d0c",
      "tree": "01b21964ce0516bda835faa15b260ac290714fe0",
      "parents": [
        "dcff612c3a6e1427749771c4559f198fa480f709"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Mar 31 22:16:59 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Apr 01 08:45:38 2015 -0400"
      },
      "message": "[optimizing] Implement x86/x86_64 math intrinsics\n\nImplement floor/ceil/round/RoundFloat on x86 and x86_64.\nImplement RoundDouble on x86_64.\n\nAdd support for roundss and roundsd on both architectures.  Support them\nin the disassembler as well.\n\nAdd the instruction set features for x86, as the \u0027round\u0027 instruction is\nonly supported if SSE4.1 is supported.\n\nFix the tests to handle the addition of passing the instruction set\nfeatures to x86 and x86_64.\n\nAdd assembler tests for roundsd and roundss to x86_64 assembler tests.\n\nChange-Id: I9742d5930befb0bbc23f3d6c83ce0183ed9fe04f\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\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": "cd6dffedf1bd8e6dfb3fb0c933551f9a90f7de3f",
      "tree": "0d83e9fdf65bded684d6e836078f253e63b7e11f",
      "parents": [
        "12c03ac7575db242a6f35739bb459e8277115da4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 08 17:35:35 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jan 16 17:27:03 2015 +0000"
      },
      "message": "Add implicit null checks for the optimizing compiler\n\n- for backends: arm, arm64, x86, x86_64\n- fixed parameter passing for CodeGenerator\n- 003-omnibus-opcodes test verifies that NullPointerExceptions work as\nexpected\n\nChange-Id: I1b302acd353342504716c9169a80706cf3aba2c8\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": "f537012ceb6cba8a78b36a5065beb9588451a250",
      "tree": "08851014d687b0e08accfdc2f1553a89789b4fd4",
      "parents": [
        "10a573a1f8708dbe2bcb7835341cbd8e9606af63"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 11:51:19 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 12:24:07 2014 +0000"
      },
      "message": "Treat SSA transformation special, as we may have to bailout.\n\nWe forgot to bailout when we found a non-natural loop (on which\nour optimizations don\u0027t work).\n\nChange-Id: I11976b5af4c98f4f29267a74c74d34b5ad81e20c\n"
    },
    {
      "commit": "a8eed3acbc39c71ec22dc2943e71eaa07c6507dd",
      "tree": "73f00c656e118c118c0b7dd8985df06624ca4666",
      "parents": [
        "4d3ed1a6f34bd31ed30faaca0433cf2a4b19bb7b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 24 17:47:10 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 24 18:05:48 2014 +0000"
      },
      "message": "Revert \"Revert \"Fix the computation of linear ordering.\"\"\n\nPS2 fixes the obvious typos/wrong refactoring.\n\nThis reverts commit e50fa5887b1342b845826197d81950e26753fc9c.\n\nChange-Id: I22f81d63a12cf01aafd61535abc2399d936d49c2\n"
    },
    {
      "commit": "e50fa5887b1342b845826197d81950e26753fc9c",
      "tree": "979ab50cee6e41f6d26d6e2db453b065f782c958",
      "parents": [
        "3054a90063d379ab8c9e5a42a7daf0d644b48b07"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 24 17:44:15 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 24 17:44:15 2014 +0000"
      },
      "message": "Revert \"Fix the computation of linear ordering.\"\n\nBuild is broken.\n\nThis reverts commit 3054a90063d379ab8c9e5a42a7daf0d644b48b07.\n\nChange-Id: I259bc2bd6a58e30391b8176f3db5fdb5c07e4d6d\n"
    },
    {
      "commit": "3054a90063d379ab8c9e5a42a7daf0d644b48b07",
      "tree": "90e2138b5505f00daca6db17783a9129a6845e9b",
      "parents": [
        "23442bea869747da0361e96ec2704956de54ded7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 21 13:33:51 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 21 13:33:51 2014 +0000"
      },
      "message": "Fix the computation of linear ordering.\n\nThe register allocator makes assumptions on the order, and\nwe ended up not computing the right one. The algorithm worked\nfine when the loop header is the block branching to the exit,\nbut in the presence of breaks or do/while, it was incorrect.\n\nChange-Id: Iad0a89872cd3f7b7a8b2bdf560f0d03493f93ba5\n"
    },
    {
      "commit": "8a16d97fb8f031822b206e65f9109a071da40563",
      "tree": "9dbbf5feaac15d2e4f54fbfc3c204fcdd6e8317a",
      "parents": [
        "c7f6b86c269727fe031146b9c18652d40916d46f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 11 10:30:02 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 11 10:32:12 2014 +0100"
      },
      "message": "Fix valgrind errors.\n\nFor now just stack allocate the code generator. Will think\nabout cleaning up the root problem later (CodeGenerator being an\narena object).\n\nChange-Id: I161a6f61c5f27ea88851b446f3c1e12ee9c594d7\n"
    },
    {
      "commit": "31d76b42ef5165351499da3f8ee0ac147428c5ed",
      "tree": "4f9cf307923c72f73e4a814662a26406f155c38c",
      "parents": [
        "7eb3fa1e03b070c55ecbc814e2e3ae4409cf7b1e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 09 15:02:22 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 10 10:48:50 2014 +0100"
      },
      "message": "Plug code generator into liveness analysis.\n\nAlso implement spill slot support.\n\nChange-Id: If5e28811e9fbbf3842a258772c633318a2f4fafc\n"
    },
    {
      "commit": "8f1a4d4e92e9572dc1b5eaf33f03d390c4ff801a",
      "tree": "fcf787dd087cfeaf16aefa2b84a80547ccba9f7d",
      "parents": [
        "27710fa87cc7fc0f205a6b5a46f418a0cf9a5171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 16 09:36:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 16 09:47:02 2014 +0100"
      },
      "message": "Workaround for multi-line comment error when compiled with g++.\n\nChange-Id: I2f6921d698688526bc52cd7dd33fd39c6853dc09\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"
    }
  ]
}
