)]}'
{
  "log": [
    {
      "commit": "4fa13f65ece3b68fe3d8722d679ebab8656bbf99",
      "tree": "09939739f6ae87e05e91d370007e978b5e72ca8e",
      "parents": [
        "c470193cfc522fc818eb2eaab896aef9caf0c75a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 06 18:11:54 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 08 15:45:22 2015 +0100"
      },
      "message": "Fuse long and FP compare \u0026 condition on ARM in Optimizing.\n\nAlso:\n- Stylistic changes in corresponding parts on the x86 and\n  x86-64 code generators.\n- Update and improve the documentation of\n  art::arm::Condition.\n\nBug: 21120453\nChange-Id: If144772046e7d21362c3c2086246cb7d011d49ce\n"
    },
    {
      "commit": "69ba7b7112c2277ac225615b37e6df74c055740d",
      "tree": "3177340740abfabd80f055b17ab92fb6e740bd87",
      "parents": [
        "b809daaffdd42dc01457ae06ae83f2d7ebdb5e65"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jun 23 18:27:30 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 15:02:15 2015 +0100"
      },
      "message": "ART: Run GraphChecker after Builder and SsaBuilder\n\nThis patch refactors the way GraphChecker is invoked, utilizing the\nsame scoping mechanism as pass timing and graph visualizer. Therefore,\nGraphChecker will now run not just after instances of HOptimization\nbut after the builders and reg alloc, too.\n\nChange-Id: I8173b98b79afa95e1fcbf3ac9630a873d7f6c1d4\n"
    },
    {
      "commit": "a3a3c5943522e7325d60cfcbdd17aff1e138f53d",
      "tree": "a6c3d098fda6134b8b6ed28d33a2a8fab73d2841",
      "parents": [
        "10176757836db987e11fb3723e4cb07bd9ea7e95"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 12 14:30:53 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 12 14:49:30 2015 +0100"
      },
      "message": "Optimizing: Move optimization objects to Arena.\n\nThis should reduce the stack size needed by the\nOptimizingCompiler::CompileOptimized() which was very\nclose to our limits for clang builds, causing repeated\nbuild breakages on otherwise healthy changes:\n    art/compiler/optimizing/optimizing_compiler.cc:395:37:\n    error: stack frame size of 1760 bytes in function\n    \u0027art::OptimizingCompiler::CompileOptimized\u0027\n    [-Werror,-Wframe-larger-than\u003d]\n\nChange-Id: I2f4ab0235f4eac61823a4a320bb4fe78942a23c2\n"
    },
    {
      "commit": "7c3952f423b8213083d60596a5f0bf4237ca3f7b",
      "tree": "40cbc6d30e02ab5edd8598d0f811b62f5c6045ba",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 19 18:21:24 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 15:57:15 2015 -0800"
      },
      "message": "ART: Add -Wunused\n\nUntil the global CFLAGS are fixed, add Wunused. Fix declarations\nin the optimizing compiler.\n\nChange-Id: Ic4553f08e809dc54f3d82af57ac592622c98e000\n"
    },
    {
      "commit": "acf735c13998ad2a175f5a17e7bfce220073279d",
      "tree": "94969f2387f0e6dad8c7e5712aa8187c9de2be56",
      "parents": [
        "39109a06015c91188232e59fa9e60e0915d24cd7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 12 15:25:22 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 19 17:07:52 2015 +0000"
      },
      "message": "Reference type propagation\n\n- propagate reference types between instructions\n- remove checked casts when possible\n- add StackHandleScopeCollection to manage an arbitrary number of stack\nhandles (see comments)\n\nChange-Id: I31200067c5e7375a5ea8e2f873c4374ebdb5ee60\n"
    },
    {
      "commit": "10e244f9e7f6d96a95c910a2bedef5bd3810c637",
      "tree": "bc2b90ce716129115c05f79e21c58fe13b01fd20",
      "parents": [
        "ab7f56d9b9838811cb01773e45999e2cda4aa03a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 26 18:54:32 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 29 12:01:26 2015 +0000"
      },
      "message": "optimizing: NullCheck elimination\n\nHow it works:\n- run a type analysis to propagate null information on instructions\n- during the last instruction simplifier remove null checks for which\nthe input is known to be not null\n\nThe current type analysis is actually a nullability analysis but it will\nbe reused in follow up CLs to propagate type information: so it keeps\nthe more convenient name.\n\nChange-Id: I54bb1d32ab24604b4d677d1ecdaf8d60a5ff5ce9\n"
    },
    {
      "commit": "5e6916cea259897baaca019c5c7a5d05746306ed",
      "tree": "0b4c73776c68e9ccbf4b49dbff5cdc9b3d7150f9",
      "parents": [
        "bf75c5cf32a47eecadcc5e4a324237c1f1d09cde"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 18 16:53:35 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 19 14:33:12 2014 +0000"
      },
      "message": "Use HOptimization abstraction for running optimizations.\n\nMove existing optimizations to it.\n\nChange-Id: I3b43f9997faf4ed8875162e3a3abdf99375478dd\n"
    },
    {
      "commit": "af07bc121121d7bd7e8329c55dfe24782207b561",
      "tree": "51e93225aa77c3949a63104f8d48e4b6f6fb2b5b",
      "parents": [
        "d0d805bad888857fe974142cbf3292b9747daae3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 18:08:09 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 14 13:45:02 2014 +0000"
      },
      "message": "Minor object store optimizations.\n\n- Avoid emitting write barrier when the value is null.\n- Do not do a typecheck on an arraystore when storing something that\n  was loaded from the same array.\n\nChange-Id: I902492928692e4553b5af0fc99cce3c2186c442a\n"
    },
    {
      "commit": "01ef345767ea609417fc511e42007705c9667546",
      "tree": "8a3cf1b5a576caf212ef31db966b97b6d23aaf98",
      "parents": [
        "a9f2904263581f606a5704f2bb74efcecf7e9f97"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 11:32:17 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 07 21:25:27 2014 +0100"
      },
      "message": "Add trivial register hints to the register allocator.\n\n- Add hints for phis, same as first input, and expected registers.\n- Make the if instruction accept non-condition instructions.\n\nChange-Id: I34fa68393f0d0c19c68128f017b7a05be556fbe5\n"
    },
    {
      "commit": "3c04974a90b0e03f4b509010bff49f0b2a3da57f",
      "tree": "52649104e3e80272c3774793350f4d9f260ae732",
      "parents": [
        "c0d36abb12cdbb9469039c1dc153a586bd984015"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 24 18:10:46 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 12:23:40 2014 +0100"
      },
      "message": "Optimize suspend checks in optimizing compiler.\n\n- Remove the ones added during graph build (they were added\n  for the baseline code generator).\n- Emit them at loop back edges after phi moves, so that the test\n  can directly jump to the loop header.\n- Fix x86 and x86_64 suspend check by using cmpw instead of cmpl.\n\nChange-Id: I6fad5795a55705d86c9e1cb85bf5d63dadfafa2a\n"
    }
  ]
}
