)]}'
{
  "log": [
    {
      "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": "d6138ef1ea13d07ae555542f8898b30d89e9ac9a",
      "tree": "a8ffd5fd966512fd280bc1b3214f4e57a9e1805f",
      "parents": [
        "92095533ac28879ddd8b44b559d700527ca12b8a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 18 14:48:53 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 19 14:01:18 2015 +0000"
      },
      "message": "Ensure the graph is correctly typed.\n\nWe used to be forgiving because of HIntConstant(0) also being\nused for null. We now create a special HNullConstant for such uses.\n\nAlso, we need to run the dead phi elimination twice during ssa\nbuilding to ensure the correctness.\n\nChange-Id: If479efa3680d3358800aebb1cca692fa2d94f6e5\n"
    },
    {
      "commit": "ed59619b370ef23ffbb25d1d01f615e60a9262b6",
      "tree": "6c93bb6ceff95f7aaf232825e050eecc05c7282d",
      "parents": [
        "f90eec005997f98c1a9f874fbbf68414e5f9c766"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 23 10:39:45 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 26 16:13:57 2015 +0000"
      },
      "message": "Optimizing: Speed up HEnvironment use removal\n\nRemoval of use records from HEnvironment vregs involved iterating over\npotentially large linked lists which made compilation of huge methods\nvery slow. This patch turns use lists into doubly-linked lists, stores\npointers to the relevant nodes inside HEnvironment and subsequently\nturns the removals into constant-time operations.\n\nChange-Id: I0e1d4d782fd624e7b8075af75d4adf0a0634a1ee\n"
    },
    {
      "commit": "3159674c0863f53cfbc1913d493550221ac47f02",
      "tree": "5dc34e8da8dc695cf80040ba0dbc5312060c10c1",
      "parents": [
        "4d3ed1a6f34bd31ed30faaca0433cf2a4b19bb7b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 24 15:28:45 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 25 00:55:07 2014 +0000"
      },
      "message": "Fix a bug in the type analysis phase of optimizing.\n\nDex code can lead to the creation of a phi with one\nfloat input and one integer input. Since the SSA builder trusts\nthe verifier, it assumes that the integer input must be converted\nto float. However, when the register is not used afterwards, the\nverifier hasn\u0027t ensured that. Therefore, the compiler must remove\nthe phi prior to doing type propagation.\n\nChange-Id: Idcd51c4dccce827c59d1f2b253bc1c919bc07df5\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "102cbed1e52b7c5f09458b44903fe97bb3e14d5f",
      "tree": "cb0a433c8f284021298c8a0c4dd0da97ca9d198a",
      "parents": [
        "07f5c5edb7ef24ac35364e6ef9a8107a44e6564e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 15 18:31:05 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 21 16:03:51 2014 +0100"
      },
      "message": "Implement register allocator for floating point registers.\n\nAlso:\n- Fix misuses of emitting the rex prefix in the x86_64 assembler.\n- Fix movaps code generation in the x86_64 assembler.\n\nChange-Id: Ib6dcf6e7c4a9c43368cfc46b02ba50f69ae69cbe\n"
    },
    {
      "commit": "6b879ddc0959df1cec871f0d41f11cce35a11716",
      "tree": "7ca75abcea8c26601efe3d41d9e55bc24a835bad",
      "parents": [
        "ef3e89b9281525d6c084136c379346608b44d933"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 22 17:13:44 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 22 17:13:44 2014 +0100"
      },
      "message": "Add loop- and phi-related checks in the optimizing compiler.\n\n- Ensure the pre-header block is first in the list of\n  predecessors of a loop header.\n- Ensure the loop header has only two predecessors and that\n  only the second one is the back edge.\n- Ensure there is only one back edge per loop.\n- Ensure the first input of a phi is not itself.\n- Ensure the number of phi inputs is the same as the number\n  of its predecessors.\n- Ensure phi input at index I either comes from the Ith\n  predecessor or from a block that dominates this\n  predecessor.\n\nChange-Id: I4db5c68cfbc9b74d2d03125753d0143ece625378\n"
    },
    {
      "commit": "604c6e4764edb2fd244e9f47626868cda5644a7a",
      "tree": "20ce0beae7663fe8ca0a07132ecd55c7c2626d41",
      "parents": [
        "7d029af44c45c56b3b7a271c54434c2dcec1e219"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 12:08:44 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 12:08:44 2014 +0100"
      },
      "message": "Ensure the first predecessor of a loop is the pre header.\n\nNote that the check in ssa_phi_elimination.cc was very defensive:\nit does not affect the outcome of the algorithm whether the\nloop phi takes itself as the first input.\n\nIt makes things consistent to always have the pre header as first\ninput.\n\nChange-Id: Ic86248c1f38af67f7432782f6deefae1f4bf1ab6\n"
    },
    {
      "commit": "3946844c34ad965515f677084b07d663d70ad1b8",
      "tree": "0d85bfba2ff69c34a2897351d1e50a1464509305",
      "parents": [
        "e2c23739c6395a83b30ece38f8a2e9e1bf7cf3ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 02 15:17:15 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 12:15:07 2014 +0100"
      },
      "message": "Runtime support for the new stack maps for the opt compiler.\n\nNow most of the methods supported by the compiler can be optimized,\ninstead of using the baseline.\n\nChange-Id: I80ab36a34913fa4e7dd576c7bf55af63594dc1fa\n"
    },
    {
      "commit": "3ac17fcce8773388512ce72cb491b202872ca1c1",
      "tree": "475c779c2ee973cf51a0a63c9d010c59c4b2d022",
      "parents": [
        "269c3360f8e69e9faf8bc8a51fd87ae7adadfb59"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 06 23:02:54 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 07 00:02:31 2014 +0100"
      },
      "message": "Fix SsaDeadPhiElimination in the presence of dependent phis.\n\nThis fixes the problem of having a dead loop phi taking as back-edge\ninput a phi that also has this loop phi as input. Walking backwards\ndoes not solve the problem because the loop phi will be visited last.\n\nMost of the time, dex removes dead locals like this.\n\nChange-Id: I797198cf9c15f8faa6585cca157810e23aaa4940\n"
    },
    {
      "commit": "7dc206a53a42a658f52d5cb0b7e79b47da370c9b",
      "tree": "f9940f60c132795d2f5865ba84b942916f076313",
      "parents": [
        "1cad41d900201422cedcbe7837935d17bbf28ed8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 11 09:49:49 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 14 12:35:21 2014 +0100"
      },
      "message": "Add two phi pruning phases.\n\nChange-Id: Ic4f05e3df96970d78a6938b27cdf9b58ef3849b9\n"
    }
  ]
}
