)]}'
{
  "log": [
    {
      "commit": "2ca10eb3f47ef3c2535c137853f7a63d10bb908b",
      "tree": "3684d1d5ef4791795b64620e97f952896c5a2011",
      "parents": [
        "02f41015a0933f146b886c62bb5b02c322ddf882"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 15 15:17:53 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 20 10:38:26 2017 -0800"
      },
      "message": "Refactored optimization passes setup.\n\nRationale:\nRefactors the way we set up optimization passes\nin the compiler into a more centralized approach.\nThe refactoring also found some \"holes\" in the\nexisting mechanism (missing string lookup in\nthe debugging mechanism, or inablity to set\nalternative name for optimizations that may repeat).\n\nBug: 64538565\n\nTest: test-art-host test-art-target\nChange-Id: Ie5e0b70f67ac5acc706db91f64612dff0e561f83\n"
    },
    {
      "commit": "009d166842195711eca4d5768c59a8f7404e6875",
      "tree": "297cbed4084e905767bd979d54697693fd0c7262",
      "parents": [
        "52d52f5dc3e005829926e68c656fb27e8b008ae9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 10 13:21:15 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 12 10:43:29 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator in BCE, DCE, LSE, ...\n\n... ReferenceTypePropagation and GraphChecker.\n\nDefine and use a new allocation kind for LoadStoreAnalysis.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 19.7MiB -\u003e 19.6MiB (-79KiB)\n  BatteryStats.dumpLocked(): 39.4MiB -\u003e 39.3MiB (-120KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: Ib0cf074ac21ab67d8f8f2efabbdfb84cce9cae8e\n"
    },
    {
      "commit": "16e528957869c7debb1f6758c9a364819e15ee1a",
      "tree": "050d42754ce9bca3c3e23652093cd209ae59ea53",
      "parents": [
        "1d2d8b1b6b359f5f476ef78662baa4b8782be530"
      ],
      "author": {
        "name": "Mads Ager",
        "email": "ager@google.com",
        "time": "Fri Jul 14 13:11:37 2017 +0200"
      },
      "committer": {
        "name": "Mads Ager",
        "email": "ager@google.com",
        "time": "Thu Aug 10 14:04:04 2017 +0200"
      },
      "message": "RFC: Generate select instruction for conditional returns.\n\nThe select generator currently only inserts select instructions\nif there is a diamond shape with a phi.\n\nThis change extends the select generator to also deal with the\npattern:\n\n  if (condition) {\n    movable instruction 0\n    return value0\n  } else {\n    movable instruction 1\n    return value1\n  }\n\nwhich it turns into:\n\n  moveable instruction 0\n  moveable instruction 1\n  return select (value0, value1, condition)\n\nTest: 592-checker-regression-bool-input\nChange-Id: Iac50fb181dc2c9b7619f28977298662bc09fc0e1\n"
    },
    {
      "commit": "38e9e8046ea2196284bdb4638771c31108a30a4a",
      "tree": "a2fecce9af616bebd73ce17d9f5954f84f291817",
      "parents": [
        "eda4dfae59eec2db945cf032aee3a9aeaa2eb494"
      ],
      "author": {
        "name": "Jean-Philippe Halimi",
        "email": "jean-philippe.halimi@intel.com",
        "time": "Thu Feb 18 16:42:03 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 18 16:15:27 2016 +0000"
      },
      "message": "Add statistics support for some optimizations\n\nThis patch adds support for the --dump-stats facility with some\noptimizations\nand fixes all build issues introduced by the patch:\nI68751b119a030952a11057cb651a3c63e87e73ea (which got reverted)\n\nChange-Id: I5af1f2a8cced0a1a55c2bb4d8c88e6f0a24ec879\nSigned-off-by: Jean-Philippe Halimi \u003cjean-philippe.halimi@intel.com\u003e\n"
    },
    {
      "commit": "74eb1b264691c4eb399d0858015a7fc13c476ac6",
      "tree": "0b6fc4f3003d50bf6c388601013cdfc606e53859",
      "parents": [
        "75fd2a8ab9b4aff59308034da26eb4986d10fa9e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 14 11:44:01 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 15:50:27 2016 +0000"
      },
      "message": "ART: Implement HSelect\n\nThis patch adds a new HIR instruction to Optimizing. HSelect returns\none of two inputs based on the outcome of a condition.\n\nThis is only initial implementation which:\n - defines the new instruction,\n - repurposes BooleanSimplifier to emit it,\n - extends InstructionSimplifier to statically resolve it,\n - updates existing code and tests accordingly.\n\nCode generators currently emit fallback if/then/else code and will be\nupdated in follow-up CLs to use platform-specific conditional moves\nwhen possible.\n\nChange-Id: Ib61b17146487ebe6b55350c2b589f0b971dcaaee\n"
    }
  ]
}
