)]}'
{
  "log": [
    {
      "commit": "808c7a57bb913b13c22884f57cdacd59bf1fdb3f",
      "tree": "d7f0d7cabaac5a7646c25bae584a82a9aa279cc0",
      "parents": [
        "64bae9fb677aa0e2406d13ea9f8ebaa92e16f978"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 15 11:19:33 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 22 09:41:17 2017 -0800"
      },
      "message": "Make CodeItem fields private\n\nMake code item fields private and use accessors. Added a hand full of\nfriend classes to reduce the size of the change.\n\nChanged default to be nullable and removed CreateNullable.\nCreateNullable was a bad API since it defaulted to the unsafe, may\nadd a CreateNonNullable if it\u0027s important for performance.\n\nMotivation:\nHave a different layout for code items in cdex.\n\nBug: 63756964\nTest: test-art-host-gtest\nTest: test/testrunner/testrunner.py --host\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I42bc7435e20358682075cb6de52713b595f95bf9\n"
    },
    {
      "commit": "28e012a4af2d710e5e5f824709ffd6432e4f549f",
      "tree": "576ebdbff9d5f9f098cd29d652215b8f67b6b042",
      "parents": [
        "4388fb213ec746ee18a6bea38ee894f8c19990b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 07 11:22:59 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 15:27:27 2017 +0000"
      },
      "message": "Determine HLoadClass/String load kind early.\n\nThis helps save memory by avoiding the allocation of\nHEnvironment and related objects for AOT references to\nboot image strings and classes (kBootImage* load kinds)\nand also for JIT references (kJitTableAddress).\n\nCompiling aosp_taimen-userdebug boot image, the most memory\nhungry method BatteryStats.dumpLocked() needs\n  - before:\n    Used 55105384 bytes of arena memory...\n    ...\n    UseListNode    10009704\n    Environment      423248\n    EnvVRegs       20676560\n    ...\n  - after:\n    Used 50559176 bytes of arena memory...\n    ...\n    UseListNode     8568936\n    Environment      365680\n    EnvVRegs       17628704\n    ...\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nBug: 34053922\nChange-Id: I68e73a438e6ac8e8908e6fccf53bbeea8a64a077\n"
    },
    {
      "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": "1e065a54845da12541572f4f149e6ab0dcd20180",
      "tree": "061d28c8905c7bc8ac50c8c86f4073034afb5ba2",
      "parents": [
        "f573972a087b798f74bf5404e271355a2805e100"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 09 13:20:34 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 11 10:23:07 2017 -0700"
      },
      "message": "optimizing: Refactor statistics to use OptimizingCompilerStats helper\n\nRemove all copies of \u0027MaybeRecordStat\u0027, replacing them with a single\nOptimizingCompilerStats::MaybeRecordStat helper.\n\nChange-Id: I83b96b41439dccece3eee2e159b18c95336ea933\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": "2d7352ba5311b8f57427b91b7a891e61497373c1",
      "tree": "3f3426f4f30663ee252ebc1f02ecd0eb114bad85",
      "parents": [
        "c5cb691ca6a746a193bfbe3525aafa7cbb281d40"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 20 14:52:42 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 24 16:19:31 2015 +0100"
      },
      "message": "ART: Dead block removal\n\nAdds a new pass which finds all unreachable blocks, typically due to\nsimplifying an if-condition to a constant, and removes them from the\ngraph. The patch also slightly generalizes the graph-transforming\noperations.\n\nChange-Id: Iff7c97f1d10b52886f3cd7401689ebe1bfdbf456\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": "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": "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": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "75be28332b278cff9039b54bfb228ac72f539ccc",
      "tree": "a01829ba0412d0f6637a833b41694f0d757d8f43",
      "parents": [
        "ffb078ee815a38123581e706099a3bed65a6cb24"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 17 17:02:00 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 17 17:11:43 2014 +0100"
      },
      "message": "Revert \"Revert \"Introduce a class to implement optimization passes.\"\"\n\nThis reverts commit 1ddbf6d4b37979a9f11a203c12befd5ae8b65df4.\n\nChange-Id: I110a14668d1564ee0604dc958b91394b40da89fc\n"
    },
    {
      "commit": "1ddbf6d4b37979a9f11a203c12befd5ae8b65df4",
      "tree": "2bc48925657e791441aa947d4d629994a0696e78",
      "parents": [
        "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "message": "Revert \"Introduce a class to implement optimization passes.\"\n\nThis reverts commit bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.\n\nChange-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e\n"
    },
    {
      "commit": "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8",
      "tree": "0bd049b173d23fcaed5c1b5cb4299e8faef840da",
      "parents": [
        "34bb808affbed7a1db177b9ef4ab5461c2b2106b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 30 16:15:14 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 01 11:52:58 2014 +0100"
      },
      "message": "Introduce a class to implement optimization passes.\n\n- Add art::HOptimization.\n- Rename art::ConstantPropagation to art::HConstantFolding in\n  compiler/optimizing/constant_folding.h to avoid name\n  clashes with a class of the same name in\n  compiler/dex/post_opt_passes.h.\n- Rename art::DeadCodeElimination to\n  art::HDeadCodeElimination for consistency reasons.\n- Have art::HDeadCodeElimination and art::HConstantFolding\n  derive from art::HOptimization.\n- Start to use these optimizations in\n  art:OptimizingCompiler::TryCompile.\n\nChange-Id: Iaab350c122d87b2333b3760312b15c0592d7e010\n"
    }
  ]
}
