)]}'
{
  "log": [
    {
      "commit": "d9c90373d640a5e08072cf469c372e24a8c0fc35",
      "tree": "35615699aa6c12b21d9c0de7d11ccf0f088ba0d8",
      "parents": [
        "b180b893b5acb5c55251522465f9d20ed45c3b5a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 16:53:55 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 19:57:21 2016 +0100"
      },
      "message": "Move ArrayRef to runtime/base\n\nWill be used in upcoming CLs regarding VDEX and VerifierDeps.\n\nTest: m test-art-host\nChange-Id: I68e611a4a52246c2bdf45eab7c61f3212908afd4\n"
    },
    {
      "commit": "372f10e5b0b34e2bb6e2b79aeba6c441e14afd1f",
      "tree": "1f29c2467c8909ef0e0147f37f176caa1bcd2ccc",
      "parents": [
        "1b66fdf3f33c72dfdda4d31f6f17b6a0d8607402"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 17 16:30:10 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 02 19:04:20 2016 +0100"
      },
      "message": "Refactor handling of input records.\n\nIntroduce HInstruction::GetInputRecords(), a new virtual\nfunction that returns an ArrayRef\u003c\u003e to all input records.\nImplement all other functions dealing with input records as\nwrappers around GetInputRecords(). Rewrite functions that\npreviously used multiple virtual calls to deal with input\nrecords, especially in loops, to prefetch the ArrayRef\u003c\u003e\nonly once for each instruction.  Besides avoiding all the\nextra calls, this also allows the compiler (clang++) to\nperform additional optimizations.\n\nThis speeds up the Nexus 5 boot image compilation by ~0.5s\n(4% of \"Compile Dex File\", 2% of dex2oat time) on AOSP ToT.\n\nChange-Id: Id8ebe0fb9405e38d918972a11bd724146e4ca578\n"
    },
    {
      "commit": "ec7802a102d49ab5c17495118d4fe0bcc7287beb",
      "tree": "08649609604b9c96bc48ca071c48b0af5abb1a3f",
      "parents": [
        "b2e436ffcda1d7a87e7bf9133d8ed878388c73c2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 01 20:57:57 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 08 11:10:18 2015 +0100"
      },
      "message": "Add DCHECKs to ArenaVector and ScopedArenaVector.\n\nImplement dchecked_vector\u003c\u003e template that DCHECK()s element\naccess and insert()/emplace()/erase() positions. Change the\nArenaVector\u003c\u003e and ScopedArenaVector\u003c\u003e aliases to use the new\ntemplate instead of std::vector\u003c\u003e. Remove DCHECK()s that\nhave now become unnecessary from the Optimizing compiler.\n\nChange-Id: Ib8506bd30d223f68f52bd4476c76d9991acacadc\n"
    },
    {
      "commit": "211c2119dc8932bdb264fae858adba6c0541ce3c",
      "tree": "95dd0a75f9bd6745cf7bee4686dd612e353b5301",
      "parents": [
        "0aeb7599bcd7073a5c849f413fb7a9611f5944eb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 16:52:33 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 12:28:37 2015 +0100"
      },
      "message": "Optimizing: Rewrite DCE\u0027s MarkReachableBlocks().\n\nReplace a recursive implementation with a loop using a work\nlist to avoid stack overflow that we would presumably hit\nfor 702-LargeBranchOffset in host debug build with -O0, once\nthe DCE block elimination is enabled for methods containing\ntry-catch.\n\nBug: 24133462\nChange-Id: I41288ba368722bcb5d68259c7c147552c8928099\n"
    },
    {
      "commit": "345f93e8533e5b5af1e567d1c9d2e21f96c69258",
      "tree": "b34ce41f598e1d7c0f8019ecfad10bd41e998d6d",
      "parents": [
        "34fcff08a9ecc981f5967b9cc8111a5fac555282"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 14 18:58:59 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 14 19:26:57 2015 +0100"
      },
      "message": "Avoid unexpected conversions to ArrayRef.\n\nMake single-parameter constructors explicit, except\nfor the default copy constructor.\n\nChange-Id: If7c8db643b22a4c36e244830154fc699b39c9016\n"
    },
    {
      "commit": "758a801b66c134361a7b43f7e83f85d1fb800c4c",
      "tree": "35b060c780fcf6e7c268fec47df40c74b5ab8b05",
      "parents": [
        "e8aae00fa400efbb8f998a5dbf68eb42810889c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 21:28:42 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:03:17 2015 -0700"
      },
      "message": "ART: Enable Clang\u0027s -Wdeprecated\n\nReplace throw() with noexcept.\n\nAdd default copy constructors and copy assignment constructors for\ncases with destructors, as the implicit definition is deprecated.\n\nChange-Id: Ice306a3f510b072b00bec4d4360f7c8055135c9d\n"
    },
    {
      "commit": "e21dc3db191df04c100620965bee4617b3b24397",
      "tree": "2ad762c6afb024bf95e1eced3d584649a4d57d23",
      "parents": [
        "6d1a047b4b3f9707d4ee1cc19e99717ee021ef48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 08 16:59:43 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 22 10:01:27 2014 -0800"
      },
      "message": "ART: Swap-space in the compiler\n\nIntroduce a swap-space and corresponding allocator to transparently\nswitch native allocations to memory backed by a file.\n\nBug: 18596910\n\n(cherry picked from commit 62746d8d9c4400e4764f162b22bfb1a32be287a9)\n\nChange-Id: I131448f3907115054a592af73db86d2b9257ea33\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": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "f4da675bbc4615c5f854c81964cac9dd1153baea",
      "tree": "ea78bafc7ee543e11e7bd824ab40d5f5f3d82f9d",
      "parents": [
        "f2476d524281c6d649f5deb6d1ccccc92380c1ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 01 19:04:18 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 25 18:56:34 2014 +0100"
      },
      "message": "Implement method calls using relative BL on ARM.\n\nStore the linker patches with each CompiledMethod instead of\nkeeping them in CompilerDriver. Reorganize oat file creation\nto apply the patches as we\u0027re writing the method code. Add\nframework for platform-specific relative call patches in the\nOatWriter. Implement relative call patches for ARM.\n\nChange-Id: Ie2effb3d92b61ac8f356140eba09dc37d62290f8\n"
    },
    {
      "commit": "0110619c2077dbc22571714913e7b57ca7917b83",
      "tree": "def15f97534bb2d5ca81a98099850ac8272fc0b7",
      "parents": [
        "341a0c56ec6687431736edf28294767d7fcf9513"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 05 16:35:31 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 05 16:35:31 2014 +0100"
      },
      "message": "Use std::enable_if instead of a custom helper class.\n\nChange-Id: Iffa0f0350ccc4fce698b9a16aefd340e16654076\n"
    },
    {
      "commit": "089142cf1d0c028b5a7c703baf0b97f4a4ada3f7",
      "tree": "0868af5fe31881ec24ed1b549fcb36fd91dd3f7c",
      "parents": [
        "8ab62f8cb31eb2d42eb2dd58becea4382719be54"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 05 10:57:05 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 05 11:13:21 2014 +0100"
      },
      "message": "Avoid register pool allocations on the heap.\n\nCreate a helper template class ArrayRef and use it instead\nof std::vector\u003c\u003e for register pools in target_\u003carch\u003e.cc to\navoid these heap allocations during program startup.\n\nChange-Id: I4ab0205af9c1d28a239c0a105fcdc60ba800a70a\n"
    }
  ]
}
