)]}'
{
  "log": [
    {
      "commit": "b2bdfce7f805b00668a2521b1c939a0aafb2be49",
      "tree": "0c8aba9022fe62a176254b8459b414e9703f890f",
      "parents": [
        "d4de42f6fd0f00c5b3ca01fed6a26d11e617c3b9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 15:46:47 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 15:53:02 2015 +0100"
      },
      "message": "Run a simplification pass before code generation.\n\nThe code generators assume things that only the instruction\nsimplier ensures. So it has to be run last in case previous\noptimiziations broke those assumptions.\n\nbug:21865464\n\nChange-Id: I1f84016017bf691c2a34982e202a505b269f609a\n"
    },
    {
      "commit": "454a481d116ec4e6dc36fab23a073017b1436d7f",
      "tree": "9c603f9e2015a405ed1932f397df4f42930c23e2",
      "parents": [
        "bebf6bdf833ea9e090171303200bd8adc9321762"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 09 10:37:32 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 10 16:13:34 2015 +0100"
      },
      "message": "Revert \"Revert \"Support for inlining virtual and interface calls.\"\"\n\nIt now works thanks to:\n- https://android-review.googlesource.com/#/c/154016/ where\n  the invoke type is changed.\n- The new FindMethodIndexIn method in this change, that\n  locates the right method index relative to the caller\u0027s\n  dex file.\n\nThis reverts commit 6e4758615308bb525b6350c30468e33a2e1f2274.\n\nChange-Id: Iddba11664a9241e210fec211cd2aed9f4b90d118\n"
    },
    {
      "commit": "6e4758615308bb525b6350c30468e33a2e1f2274",
      "tree": "0a9fbb0f1f90dfe273d94659f077cc1e6b84966c",
      "parents": [
        "1d5006c34d75758752bf3499892e3d5beb11d5dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 08 15:52:23 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 08 15:54:14 2015 +0000"
      },
      "message": "Revert \"Support for inlining virtual and interface calls.\"\n\nFails for some apps.\n\nbug: 21674542\n\nThis reverts commit 1d5006c34d75758752bf3499892e3d5beb11d5dc.\n\nChange-Id: Ia74b5e54d59f8ffe9992591324a12f71efb67af4\n"
    },
    {
      "commit": "1d5006c34d75758752bf3499892e3d5beb11d5dc",
      "tree": "3540993b4bb05138e0a029c016384fd05b6ace57",
      "parents": [
        "6a0d5e7fe6dc0c9d3dd941ab991203f2d5d1c354"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 03 15:04:32 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 04 14:45:18 2015 +0100"
      },
      "message": "Support for inlining virtual and interface calls.\n\nAlso had to change the pass order to get reference type propagation\nbefore the inliner.\n\nChange-Id: I4bf3bbb2d17c7d9cab632cfdd96adad8368bdfea\n"
    },
    {
      "commit": "a06d66a4ee60926127b9498b7ff0b3e37a24fccf",
      "tree": "87ec5d72211d5c3446e1d80ee71eda77faffd6b3",
      "parents": [
        "b4e2fbbed28c3bcdb8fd0fee5a201ba78e1edf28"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 28 11:14:54 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 28 11:57:49 2015 +0100"
      },
      "message": "ART: Distinguish Checker lines from comments\n\nIn order to prevent tests passing due to lines with hard-to-spot\nformatting errors begin ignored, e.g. by forgetting the colon after\n\"//CHECK\", Checker will now require its assertions to start with \"///\"\nor \"##\", respectivelly for Java and Smali. Such lines will never be\nignored and will fail the test unless successfully parsed.\n\nChange-Id: I0da9a8f13eb96d950af8c85df17d1899a853a299\n"
    },
    {
      "commit": "c57397b2b87c7e6f28f4eee3c996d091e7dc0b01",
      "tree": "51ef8e6126cb41174f6103700c5f5442a38bbfe5",
      "parents": [
        "06675720cc274eb9d91a4ecd3fb1eef94a2d88f0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 15 16:01:59 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 15 16:50:23 2015 +0100"
      },
      "message": "ART: Print C1vis lists as [v1,...,vN]\n\nChecker interprets whitespace as a don\u0027t-care placeholder, making it\neasier to write assertions which test only parts of the output (e.g.\n\"//CHECK: Add liveness:44\" does not test the inputs or any other\nattributes apart from \"liveness\").\n\nHowever, since the GraphVisualizer prints lists with elements\nseparated by spaces (\"[ v1 ... vN ]\"), this allows for false positives\ncaused by an occurrence elsewhere in the output. For example, the\nassertion: \"//CHECK: [ x y ]\" will match \"[ x y ]\" but also\n\"[ x a y b ]\" or even \"[ x ] abc [ y ]\".\n\nSwitching to comma-separated lists works around this issue.\n\nThis patch updates all test files, fixes one false positive that this\nchange revealed (test 442, line 337) and two occurrences of a wrong\nmatch (test 462, lines 121, 149).\n\nBug: 21189305\nChange-Id: I3b22503be3d92529dac0b13f66bccbcfabea6721\n"
    },
    {
      "commit": "c2c48ffdd623b4e58b34115d1521b0988a42b217",
      "tree": "56a7aea7fa187c388592e3d6df60be9c8edbfd0e",
      "parents": [
        "1cad536d675846ac9c110b5b3a412dfc55ace3ed"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 15 14:24:31 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 15 14:50:51 2015 +0100"
      },
      "message": "ART: Change Checker syntax for variables\n\nThis patch changes the syntax for defining and referencing variables\nfrom square brackets \u0027[[VAR]]\u0027 to angle brackets \u0027\u003c\u003cVAR\u003e\u003e\u0027. This is\ndone in order to avoid clashes when matching against lists enclosed\nin square brackets.\n\nChange-Id: Ib9560b07bdc7bd641fd1eb6143c0063e0783f1eb\n"
    },
    {
      "commit": "ba56d060116d6e145be348fa575314654c6b0572",
      "tree": "4ef90809f6628435a60320b8fa0fd939849e2d29",
      "parents": [
        "6727a48193db2a0cf01af971cccffe1a6518c247"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue May 05 21:34:03 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon May 11 08:44:54 2015 -0400"
      },
      "message": "[optimizing] Improve 32 bit long shift by 1.\n\nAlso change FOO \u003c\u003c 1 to FOO+FOO in the instruction simplifier.  This is\nan architecture independent simplification, which helps \u0027long \u003c\u003c 1\u0027 for\n32 bit architectures.\n\nGenerate an add/adc for long \u003c\u003c 1 in x86, in case something is generated\nafter the simplifier.\n\nAdd test cases for the simplification.\n\nChange-Id: I0d512331ef13cc4ccf10c80f11c370a10ed02294\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "0d22184ec9e5b1e958c031ac92c7f053de3a13a2",
      "tree": "4055eda9986916dc86b39d023082a57e60c804f4",
      "parents": [
        "97c96f5aab22f75dd54089bdc194588a4b5a2e8d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 27 08:53:46 2015 +0000"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Apr 27 20:06:50 2015 -0400"
      },
      "message": "Revert \"Revert \"[optimizing] Replace FP divide by power of 2\"\"\n\nThis reverts commit 067cae2c86627d2edcf01b918ee601774bc76aeb.\n\nChange-Id: Iaaa8772500ea7d3dce6ae0829dc0dc3bbc9c14ca\n"
    },
    {
      "commit": "769c9e539da8ca80aa914cd12276aa5bd79148ee",
      "tree": "9aadf98a3fcbf7909f76c53fa2ee036ebda00304",
      "parents": [
        "0fbfe6f92a2481daf914043262b5854e65d8c3cc"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 27 13:54:09 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 27 17:00:58 2015 +0100"
      },
      "message": "ART: Simplify Ifs with BooleanNot condition\n\nIf statements with negated condition can be simplified by removing the\nnegation and swapping the true and false branches.\n\nChange-Id: I197afbc79fb7344d73b7b85d3611e7ca2519717f\n"
    },
    {
      "commit": "adf15974e0a0a2b0e6dc311ff5701b87ca15964a",
      "tree": "65cc0394a15ea82df9ccb680b1ec6b3be72a1a87",
      "parents": [
        "5ff903a589af282f516bbcf6844ff2656ce76b02",
        "067cae2c86627d2edcf01b918ee601774bc76aeb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Apr 26 16:43:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 26 16:43:19 2015 +0000"
      },
      "message": "Merge \"Revert \"[optimizing] Replace FP divide by power of 2\"\""
    },
    {
      "commit": "067cae2c86627d2edcf01b918ee601774bc76aeb",
      "tree": "170607d1194943f4eff92e70170da36e06b68a9c",
      "parents": [
        "b0bd8915cb257cdaf46ba663c450a6543bca75af"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Apr 26 16:43:00 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Apr 26 16:43:00 2015 +0000"
      },
      "message": "Revert \"[optimizing] Replace FP divide by power of 2\"\n\nFails compiling docs.\n\nThis reverts commit b0bd8915cb257cdaf46ba663c450a6543bca75af.\n\nChange-Id: I47d32525c83a73118e2163eb58c68bbb7a28bb38\n"
    },
    {
      "commit": "5ff903a589af282f516bbcf6844ff2656ce76b02",
      "tree": "853e7f348c7299f32021a7f0f60ca95ef4f04b24",
      "parents": [
        "2c31b5ac1d45f2f96932c8ff0d299abb2dbde862",
        "b0bd8915cb257cdaf46ba663c450a6543bca75af"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Apr 26 15:05:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 26 15:05:29 2015 +0000"
      },
      "message": "Merge \"[optimizing] Replace FP divide by power of 2\""
    },
    {
      "commit": "7bf9bc7854f5c8ccc2cb2ef4be4f728c5fbd3236",
      "tree": "f4a4caeb5c0682b15e68b4f47020ea0239987cb9",
      "parents": [
        "f16d7b3824b2777b95fb509c1d2a95bef89f65a4",
        "b2a58477e14e1b15cb9848d16015a49a854ee32c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 15:53:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 15:53:25 2015 +0000"
      },
      "message": "Merge \"Minor improvements to 458-checker-instruction-simplification.\""
    },
    {
      "commit": "b0bd8915cb257cdaf46ba663c450a6543bca75af",
      "tree": "0af66cce65abb2958d03579bd7fb660ffdda929b",
      "parents": [
        "b9791aa606834160b085dec7c5b32ccbeaf9a186"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Apr 15 19:57:22 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Apr 20 14:26:10 2015 -0400"
      },
      "message": "[optimizing] Replace FP divide by power of 2\n\nReplace a floating point division by a power of two by a multiplication\nof the reciprocal.  This is guarenteed to have the exact same result as\nit is exactly representable.\n\nAdd routines to allow generation of float and double constants after the\nSSA Builder.  I was unsure if float and double caches should be\nimplemented.  Under the assumption that there is probably not a lot of\nrepetition of FP values.  Please let me know.\n\nChange-Id: I3a6c3847b49b4e747a7e7e8843ca32bb174b1584\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "0d13fee6f4330cc9cb100c43135490a34c11d7a5",
      "tree": "e96f089c1e384772bebdd8d8701c95d73569f29c",
      "parents": [
        "27eac12a66a73eb38b5ccb45b62350cf341299d0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 17 14:52:19 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 20 18:11:39 2015 +0100"
      },
      "message": "ART: Simplify more bool operations\n\nNow that we have the HBooleanNot instruction, the instruction\nsimplifier can optimize out more conditions comparing a boolean\nagainst a constant, as well as sequences of Boolean negations.\n\nChange-Id: I7f634f6428a3984dd97b27b3d6362491346f1ff6\n"
    },
    {
      "commit": "b2a58477e14e1b15cb9848d16015a49a854ee32c",
      "tree": "4d99998bb80bbe373a3b5627edad24e0be35ddbe",
      "parents": [
        "2e0f89b1b61685f7c322a4c6ec3e3b4839e76d64"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Fri Apr 17 14:35:18 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Mon Apr 20 14:46:22 2015 +0100"
      },
      "message": "Minor improvements to 458-checker-instruction-simplification.\n\nThis follows earlier comments from Roland:\nhttps://android-review.googlesource.com/#/c/140446\n  /2/test/458-checker-instruction-simplification/src/Main.java@337\n  /2/test/458-checker-instruction-simplification/src/Main.java@465\n\nChange-Id: I255ab74b8885dd8e86bb2c11bba4075fa0eaa183\n"
    },
    {
      "commit": "188d4316a880ae24aed315aa52dc503c4fcb1ec7",
      "tree": "a480bdc4a80f63d46abcde2ef7a36e1ad072d624",
      "parents": [
        "27ef3177fb164b5e1a3b8a6fd43d25f3074e586d"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Thu Apr 09 18:30:21 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 10 16:19:55 2015 +0000"
      },
      "message": "Opt compiler: Instruction simplification for HAdd, HNeg, HNot, HSub.\n\nUnder assumptions for the \u0027cost\u0027 of each IR (eg. neither HAdd nor HSub\nare faster than the other), transformations are only applied if they\n(locally) cannot degrade the quality of the graph. The code could be\nextended to look at uses of the IRs and detect more opportunities for\noptimisations.  The optimisations in this patch do not look at other\nuses for their inputs.\n\nChange-Id: Ib60dab007af30f43421ef5bb55db2ec32fb8fc0c\n"
    },
    {
      "commit": "744176959a259f36fe7ca7d101aee1cf39d707d5",
      "tree": "2f3aa65a881020beeb6f4b3313b3366733bbf3f5",
      "parents": [
        "e8888c83786d1f2bddbffd1dd6f37b95b7d2425d"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Thu Apr 09 15:21:41 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Fri Apr 10 10:53:19 2015 +0100"
      },
      "message": "Fix checker tests in 458-checker-instruction-simplification.\n\nChange-Id: I9931e1692117360b8396c0dd8d171c822f0aba3b\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"
    }
  ]
}
