)]}'
{
  "log": [
    {
      "commit": "27cc09337cdff14f592f4e22fd235809ebe0d6a7",
      "tree": "f4736d92888a02b4115f5030cfc35b46d7b8e8d8",
      "parents": [
        "3eae0839c28469a00030b967b998e9c8a694c1a5"
      ],
      "author": {
        "name": "Matteo Franchin",
        "email": "matteo.franchin@arm.com",
        "time": "Mon Sep 08 18:29:24 2014 +0100"
      },
      "committer": {
        "name": "Matteo Franchin",
        "email": "matteo.franchin@arm.com",
        "time": "Fri Oct 03 11:53:02 2014 +0100"
      },
      "message": "AArch64: oat patches should be 32-bit ints.\n\nThis makes the arm64 backend consistent with the behaviour of the code\nin oat_writer.cc and in the patchoat tool.\nIt also reduces the size of boot.oat by 1.6% (aosp_arm64-eng build).\n\nChange-Id: Ia0b96737159c08955cd7b776ee396ff578cd58f6\n"
    },
    {
      "commit": "53ce7d4f97da490d74b0695c83a7f165aacf5ab6",
      "tree": "896742cc04f8b17635399f4a62791d488c18e815",
      "parents": [
        "013bf973fe1faf98f17ccfc4fbdae67e4bfdb696",
        "f889267adadd62c92d1d3726764598946a961c10"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 02 22:58:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 02 22:58:32 2014 +0000"
      },
      "message": "Merge \"Fix x86_64 assembler LoadRef to use movl.\""
    },
    {
      "commit": "6e301ec84ff8cd55a29386cff9b3b00d51675b64",
      "tree": "4489f4e89d04ebe1579149861190bc391cfec480",
      "parents": [
        "37241e5c70aa599ff7383ad18af5ddf5694a7144",
        "e767f6ce3997f7634b26e7651bc7b90c060d3965"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 02 09:58:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 02 09:58:11 2014 +0000"
      },
      "message": "Merge \"Fix build_all_egdes in MIRGraph::ProcessCanThrow().\""
    },
    {
      "commit": "37241e5c70aa599ff7383ad18af5ddf5694a7144",
      "tree": "0b79d3fd2242746abb9af6c459e04c2a7a4bfe1b",
      "parents": [
        "d25cee7088d03881265fe3d04c09ec2f798860f5",
        "fa23645319cca1f1c4a7c208f931820f6783b1a4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 01 17:45:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 01 17:45:38 2014 +0000"
      },
      "message": "Merge \"Quick: Fix LVN/GVN handling of acquire operations.\""
    },
    {
      "commit": "e767f6ce3997f7634b26e7651bc7b90c060d3965",
      "tree": "6a9086951ae19f7347e0b2f2e7b95333eb28d485",
      "parents": [
        "d25cee7088d03881265fe3d04c09ec2f798860f5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 01 17:38:02 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 01 18:04:43 2014 +0100"
      },
      "message": "Fix build_all_egdes in MIRGraph::ProcessCanThrow().\n\nCalculate build_all_edges only after in_try_block has\nreceived its final value. This was a minor omission in\n  https://android-review.googlesource.com/100505\n\nChange-Id: Icc9189d2092bbd29fcf1706e4d6074a6d915cebe\n"
    },
    {
      "commit": "fa23645319cca1f1c4a7c208f931820f6783b1a4",
      "tree": "4c9e535f1348968750f894066390520bf6a60b5c",
      "parents": [
        "cf447411f59a0cc34189ba486abea9c553151445"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 29 17:58:10 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 01 17:42:52 2014 +0100"
      },
      "message": "Quick: Fix LVN/GVN handling of acquire operations.\n\nAcquire operations, i.e. MONITOR_ENTER and volatile GETs,\nchange the thread\u0027s view of the memory, so subsequent loads\nmust get new value names in LVN/GVN. Release operations do\nnot affect this thread\u0027s view of the memory, they the only\npush the modifications for other threads to see.\n\nBug: 17689750\nChange-Id: I9442d89b1d2c5252b99b02851b71bb85f871d734\n"
    },
    {
      "commit": "d25cee7088d03881265fe3d04c09ec2f798860f5",
      "tree": "e37953f590f924e06b9905f922407559a3661cb6",
      "parents": [
        "bff187b5079631a18288cd78d3dddafba9ca94e7",
        "1ddbf6d4b37979a9f11a203c12befd5ae8b65df4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 01 14:59:51 2014 +0000"
      },
      "message": "Merge \"Revert \"Introduce a class to implement optimization passes.\"\""
    },
    {
      "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": "bff187b5079631a18288cd78d3dddafba9ca94e7",
      "tree": "ea1eab47ce7f5a125b7da602a221371215755194",
      "parents": [
        "439bfb95c06080ed921409a4b8aad33d0da86c16",
        "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 01 14:38:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 01 14:38:10 2014 +0000"
      },
      "message": "Merge \"Introduce a class to implement optimization passes.\""
    },
    {
      "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"
    },
    {
      "commit": "07140838a3ee44a6056cacdc78f2930e019107da",
      "tree": "4f344df6ec2612d8ddbf0a00e2b49a39a7501249",
      "parents": [
        "f9098ea6d7326b4d8de2860d18adf74046b80855"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 30 15:43:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 30 15:43:59 2014 -0700"
      },
      "message": "Enable -Wunreachable-code\n\nCaught bugs in DeoptimizeStackVisitor and assemble_x86 SIB encoding.\nAdd UNREACHABLE macro to document code expected to be unreachable.\nBug: 17731047\n\nChange-Id: I2e363fe5b38a1246354d98be18c902a6031c0b9e\n"
    },
    {
      "commit": "f9098ea6d7326b4d8de2860d18adf74046b80855",
      "tree": "8d8ac87eec10555f21b6ecae8a68375dcd6ba8a1",
      "parents": [
        "955af682a64bcf4e66c33efc671325054c25a648",
        "53cec00aa6789382621a53b33b13f45bd27148ca"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Tue Sep 30 19:53:21 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 19:53:21 2014 +0000"
      },
      "message": "Merge \"ART: Fix GenReduceVector and GenSetVector\""
    },
    {
      "commit": "955af682a64bcf4e66c33efc671325054c25a648",
      "tree": "a0921af75fa7642f0424334e51ae2a49580b681c",
      "parents": [
        "f4ae8d8976abd1dcbb33824ced27775bff73f600",
        "590c6a4ded1deb378baa253c86070d8eeffdc820"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Tue Sep 30 19:46:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 19:46:10 2014 +0000"
      },
      "message": "Merge \"ART: Reset bb id to the last list mir\""
    },
    {
      "commit": "f889267adadd62c92d1d3726764598946a961c10",
      "tree": "aa58586aa076fa9766f5c355711ec8cbaaee5d75",
      "parents": [
        "bafedc3424c3660d5d5e3ef190b3ac8313a5a59e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 30 10:56:14 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 30 12:28:09 2014 -0700"
      },
      "message": "Fix x86_64 assembler LoadRef to use movl.\n\nAs references are 32-bit, we should use movl instead movq.\n\nChange-Id: Iffefbb9d86d5f40375f73994fd481f9bd28499b2\n"
    },
    {
      "commit": "f4ae8d8976abd1dcbb33824ced27775bff73f600",
      "tree": "c4e46d4055591c9d10eaed96e26adf2ab91aede9",
      "parents": [
        "a2a91086feb01c1465f063e10da70b7fa37a19eb",
        "6f4dcae28c23a9ac42fd1283ea1c2462f5e1e210"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Tue Sep 30 19:17:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 19:17:29 2014 +0000"
      },
      "message": "Merge \"ART: Allow overridable calculation of basic block dataflow\""
    },
    {
      "commit": "a2a91086feb01c1465f063e10da70b7fa37a19eb",
      "tree": "0693b03c1af47dafdbdd6a10cab95ec17afa00fb",
      "parents": [
        "bafedc3424c3660d5d5e3ef190b3ac8313a5a59e",
        "c029c98cc056bc247b69160f413ee7ce9a93d8c3"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Tue Sep 30 19:16:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 19:16:40 2014 +0000"
      },
      "message": "Merge \"Update maximum number of reachable blocks in last step\""
    },
    {
      "commit": "6f4dcae28c23a9ac42fd1283ea1c2462f5e1e210",
      "tree": "cda59f07940539a985273c2ee214790ba1738641",
      "parents": [
        "c70535b4f9f1ff3e3da451734bb7d9601012ccc1"
      ],
      "author": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Mon Sep 29 11:59:12 2014 -0700"
      },
      "committer": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Tue Sep 30 10:33:48 2014 -0700"
      },
      "message": "ART: Allow overridable calculation of basic block dataflow\n\nCurrently dataflow information is not calculated for catch blocks in order to\nreduce overhead. However, this makes assumption that the lack of this\ninformation is only preventing local optimizations to catch block. But in\nreality this problematic for global optimizations.\n\nHowever, since no optimizations need complete information for now, simply\nleave logic same but factor it out in separate method.\n\nChange-Id: I5c13344c18409bd172a5d9b07577b4a1353cc733\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\n"
    },
    {
      "commit": "bafedc3424c3660d5d5e3ef190b3ac8313a5a59e",
      "tree": "555f848f52a0452e02956193288c203dfe1e7419",
      "parents": [
        "cf447411f59a0cc34189ba486abea9c553151445",
        "b88f0b16dbaff09a140d2a62b66eca2736ff514b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 30 17:11:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 17:11:28 2014 +0000"
      },
      "message": "Merge \"Get heap poisoning working in 64-bit.\""
    },
    {
      "commit": "35c68e3018d0066eec8e374897d5cf07e1360729",
      "tree": "064075304a45e1f43822b7784115592eb6f86c9d",
      "parents": [
        "00ade1e5eb76318790aad096ded1b7c4e9638785"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 30 08:39:37 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 30 08:39:37 2014 -0700"
      },
      "message": "ART: Fix typo\n\nFixes a miss-translation in the pedantic change.\n\nChange-Id: Ibdce896bf3667e06f10d60f160803451096b08ba\n"
    },
    {
      "commit": "00ade1e5eb76318790aad096ded1b7c4e9638785",
      "tree": "682580d9c7600472c1fe85d402b7ec8b0c05ca66",
      "parents": [
        "79705f99ea6351c8625f47b8659ecd56a4120459",
        "c8ccf68b805c92674545f63e0341ba47e8d9701c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 30 14:47:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 14:47:23 2014 +0000"
      },
      "message": "Merge \"ART: Fix some -Wpedantic errors\""
    },
    {
      "commit": "79705f99ea6351c8625f47b8659ecd56a4120459",
      "tree": "88f864888b64af9ac456bbd307b52e1b260c1930",
      "parents": [
        "94114c1a87fb7993109ea3ba2e4d71bfbb530bf9",
        "4163c53ce38a0f1f88bf3e8d26de9914da38498b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 30 13:00:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 13:00:02 2014 +0000"
      },
      "message": "Merge \"AArch64: address some outstanding TODOs.\""
    },
    {
      "commit": "8ddb00ca935733f5d3b07816e5bb33d6cabe6ec4",
      "tree": "9bca67b136523eb31aab736988143295ece97b56",
      "parents": [
        "cc6b59ee25d7b9782cc971687715d664a97b05bd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 29 12:00:40 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 30 13:50:38 2014 +0100"
      },
      "message": "Improve detection of lifetime holes.\n\nThe check concluding that the next use was in a successor\nwas too conservative: two blocks following each other\nin terms of liveness are not necessarily predecessor/sucessor.\n\nChange-Id: Ideec98046c812aa5fb63781141b5fde24c706d6d\n"
    },
    {
      "commit": "4163c53ce38a0f1f88bf3e8d26de9914da38498b",
      "tree": "8aa9a99309c83c8ebf38054654b3f58f33fd2353",
      "parents": [
        "cc6b59ee25d7b9782cc971687715d664a97b05bd"
      ],
      "author": {
        "name": "Matteo Franchin",
        "email": "matteo.franchin@arm.com",
        "time": "Tue Jul 15 15:20:27 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 30 11:59:54 2014 +0100"
      },
      "message": "AArch64: address some outstanding TODOs.\n\nFix comments in arm64_lir.h. Rename Arm* to A64* and replace FWIDE,\nFUNWIDE, ... with WIDE, UNWIDE, ...\n\nChange-Id: I4900902e28463ea5e00e34ea40ddfc15704c0bfa\n"
    },
    {
      "commit": "cc6b59ee25d7b9782cc971687715d664a97b05bd",
      "tree": "13eee22c7c6f4e24185e9fceb7c4541d6d3f12a2",
      "parents": [
        "fcabfbe577c0fd40910b565beb681bd4b66f6c5d",
        "ae9f3e6ef9f97f47416f829448e5281e9a57d8b8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 30 06:15:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 30 06:15:29 2014 +0000"
      },
      "message": "Merge \"ART: Fix movnti assembler\""
    },
    {
      "commit": "c8ccf68b805c92674545f63e0341ba47e8d9701c",
      "tree": "fb360323538cb242ebf7c5c0aca27d3a0bce0abb",
      "parents": [
        "fcabfbe577c0fd40910b565beb681bd4b66f6c5d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:07:43 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:13:48 2014 -0700"
      },
      "message": "ART: Fix some -Wpedantic errors\n\nRemove extra semicolons.\n\nDollar signs in C++ identifiers are an extension.\n\nNamed variadic macros are an extension.\n\nBinary literals are a C++14 feature.\n\nEnum re-declarations are not allowed.\n\nOverflow.\n\nChange-Id: I7d16b2217b2ef2959ca69de84eaecc754517714a\n"
    },
    {
      "commit": "b88f0b16dbaff09a140d2a62b66eca2736ff514b",
      "tree": "4870524a0f0f8f5fbc2bbdf0157cf6092eceb327",
      "parents": [
        "7fe50c6239e298a9ff7918dbc73d9eeb6666a7dc"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Sep 26 14:55:38 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 29 16:21:28 2014 -0700"
      },
      "message": "Get heap poisoning working in 64-bit.\n\nThis adds the reference negate code in arm64 and x86_64 that\u0027s used by\nthe jni compiler.\n\nBug: 12687968\nBug: 8367515\nChange-Id: I28a44bcead1ee613866645620b4eaf54fad6a3aa\n"
    },
    {
      "commit": "1edf638010c4b15b87f865d180c3b95026827e9a",
      "tree": "bc752c9dd1f36cf0421e56c267e772e7c7ebf43f",
      "parents": [
        "f731a78809ac61a9085781370f0f38ef88305276",
        "750359753444498d509a756fa9a042e9f3c432df"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 29 18:31:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 29 18:31:02 2014 +0000"
      },
      "message": "Merge \"ART: Deprecate CompilationUnit\u0027s code_item\""
    },
    {
      "commit": "750359753444498d509a756fa9a042e9f3c432df",
      "tree": "4261bdcbe1fcd6a1163eda372b6ef4796731017c",
      "parents": [
        "c70535b4f9f1ff3e3da451734bb7d9601012ccc1"
      ],
      "author": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Thu Sep 11 15:24:59 2014 -0700"
      },
      "committer": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Mon Sep 29 17:49:59 2014 +0000"
      },
      "message": "ART: Deprecate CompilationUnit\u0027s code_item\n\nThe code_item field is tracked in both the CompilationUnit and the MIRGraph.\nHowever, the existence of this field in CompilationUnit promotes bad practice\nbecause it creates assumption only a single code_item can be part of method.\n\nThis patch deprecates this field and updates MIRGraph methods to make it\neasy to get same information as before. Part of this is the update to\ninterface GetNumDalvikInsn which ensures to count all code_items in MIRGraph.\n\nSome dead code was also removed because it was not friendly to these updates.\n\nChange-Id: Ie979be73cc56350321506cfea58f06d688a7fe99\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\n"
    },
    {
      "commit": "584cc791cd0e352fb54ad54e72ba002a35dc758f",
      "tree": "29f1f37db1957baebe386ffbe745134769188de4",
      "parents": [
        "c70535b4f9f1ff3e3da451734bb7d9601012ccc1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 29 10:49:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 29 10:49:11 2014 -0700"
      },
      "message": "Reduce scope of MIR analysis attributes.\n\nMIR analaysis attributes are only used in MIRGraph::AnalyzeBlock. Reduce the\nscope to just the file that defines that function.\nReduce the size of the attributes from int32 to int16.\nRemove the use of #defines in favor of enums.\n\nChange-Id: I45ba3aa08beae67240507917b584d537a029838e\n"
    },
    {
      "commit": "ae9f3e6ef9f97f47416f829448e5281e9a57d8b8",
      "tree": "75ca2f18379d514d15593e41c499f50a30d83130",
      "parents": [
        "c70535b4f9f1ff3e3da451734bb7d9601012ccc1"
      ],
      "author": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Tue Sep 23 14:54:32 2014 -0700"
      },
      "committer": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Mon Sep 29 09:44:50 2014 -0700"
      },
      "message": "ART: Fix movnti assembler\n\nMovnti was receiving rex prefix before its opcode. Additionally,\nthe 64-bit version was missing the rex.w prefix.\n\nChange-Id: Ie5c3bbe109765a0b990cafeeea1ee30329daabd0\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "740475d5f45b8caa2c3c6fc51e657ecf4f3547e5",
      "tree": "81196b753045fa16c13a4c1106031c1f28d9d233",
      "parents": [
        "13c4e8f4ef687f650aa76fb15ab12762d5a85602"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 29 10:33:25 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 29 11:04:07 2014 +0100"
      },
      "message": "Fix a bug in the insertion of parallel move.\n\nTo make sure we do not connect interval siblings in the\nsame parallel move, I added a new field in MoveOperands\nthat tells for which instruction this move is for.\nA parallel move should not contains moves for the same instructions.\n\nThe checks revealed a bug when connecting siblings, where\nwe would choose the wrong parallel move.\n\nChange-Id: I70f27ec120886745c187071453c78da4c47c1dd2\n"
    },
    {
      "commit": "fd680d8c8b3ab7cf162bae2d322f6327d05ef23f",
      "tree": "16415bde6d075b7dee49cec908e7c7c1971a18e7",
      "parents": [
        "eb1d22bf405f0edaeb34f78905d75f167e88b868"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 29 09:46:03 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 29 09:46:42 2014 +0100"
      },
      "message": "Fix test now that instructions can die at instruction entry.\n\nChange-Id: I816279c55d12de8e69ac0b6c88730bd676c03335\n"
    },
    {
      "commit": "eb1d22bf405f0edaeb34f78905d75f167e88b868",
      "tree": "5ea293ff46ad011fecbd1d344dfaeb0ed6b90106",
      "parents": [
        "68fd50b247aafac0b5cabb6a4698dc9977bf8464",
        "7690562d40878f44823d5fb03a2084cfc677ec4a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 27 11:56:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 27 11:56:12 2014 +0000"
      },
      "message": "Merge \"Register allocator: refine instructions liveness.\""
    },
    {
      "commit": "7690562d40878f44823d5fb03a2084cfc677ec4a",
      "tree": "3a55347eadd55b6b1231575f363ed3278559f83c",
      "parents": [
        "34bb808affbed7a1db177b9ef4ab5461c2b2106b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 14:39:26 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 27 12:54:23 2014 +0100"
      },
      "message": "Register allocator: refine instructions liveness.\n\nAdd support for instructions that die at the beginning\nof another instruction. Before, an instruction needed\nto stay alive during the instruction, so the register\nallocator was not able not reuse the register.\n\nChange-Id: I5f11a80b0a20778227229eb797816edcc6365297\n"
    },
    {
      "commit": "53cec00aa6789382621a53b33b13f45bd27148ca",
      "tree": "54739a2f5db0d11267c0fc108dfd56257efddb51",
      "parents": [
        "628a74f9365f7d18dbd1fcc6b2f2661780574b4f"
      ],
      "author": {
        "name": "Udayan Banerji",
        "email": "udayan.banerji@intel.com",
        "time": "Fri Sep 26 10:41:47 2014 -0700"
      },
      "committer": {
        "name": "Udayan Banerji",
        "email": "udayan.banerji@intel.com",
        "time": "Fri Sep 26 10:41:47 2014 -0700"
      },
      "message": "ART: Fix GenReduceVector and GenSetVector\n\nFor GenReduceVector:\nWe now correctly load non-wide values for non-wide destination registers,\nand generate reg-reg and reg-mem forms of pextr correctly.\n\nFor GenSetVector:\nWe use the correct opcode from loading into an xmm from a 64-bit GPR\n\nChange-Id: I0a01d1f0b12b32a0dee8f79a0139ffcf6d6cb4d5\nSigned-off-by: Udayan Banerji \u003cudayan.banerji@intel.com\u003e\n"
    },
    {
      "commit": "d282d59b482b6c3ecdb6af06eabaa7fd4bae975f",
      "tree": "3a0afd7793150233d8c94e4225d7a150ecbd072b",
      "parents": [
        "68dc10152839ad0bac0aae888f788d658e4713ef",
        "b7e9e3207577861030f0d5816baa523ef6bcd1bb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 26 16:53:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 26 16:53:58 2014 +0000"
      },
      "message": "Merge \"Elimination of redundant instructuion\""
    },
    {
      "commit": "1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb",
      "tree": "e80187277f4a41c9b41a25ebb6dd9567b66fd2bf",
      "parents": [
        "34bb808affbed7a1db177b9ef4ab5461c2b2106b",
        "f4da675bbc4615c5f854c81964cac9dd1153baea"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 25 18:08:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 25 18:08:04 2014 +0000"
      },
      "message": "Merge \"Implement method calls using relative BL on ARM.\""
    },
    {
      "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": "9ebc72c99e6b703bda611d7c918c9cf3dfb43e55",
      "tree": "6696e6e51dbe2606d2b2e0c0c60dfec06af97e60",
      "parents": [
        "a72cb229d555a8ca86dca748733ea3791eaeec14"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 16:33:42 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 16:33:42 2014 +0100"
      },
      "message": "Make suspend checks note have side effects.\n\nAlso adjust gtests.\n\nChange-Id: I5e1a3e53115812b45ec7f4b6f50ba468fa7ac6b1\n"
    },
    {
      "commit": "a72cb229d555a8ca86dca748733ea3791eaeec14",
      "tree": "b051a0f2d10c126a83d22ff45f2feecf0365aca3",
      "parents": [
        "d7e2f329ddacd2294ba94cd5acde026677d32e0d",
        "3c04974a90b0e03f4b509010bff49f0b2a3da57f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 25 13:37:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 25 13:37:06 2014 +0000"
      },
      "message": "Merge \"Optimize suspend checks in optimizing compiler.\""
    },
    {
      "commit": "d7e2f329ddacd2294ba94cd5acde026677d32e0d",
      "tree": "3a986ce4819556a05170d8fa22a3cffc67829e39",
      "parents": [
        "034168039d28c84ae4cba60d306a8bc7b396d409",
        "5799fc0754da7ff2b50b472e05c65cd4ba32dda2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 25 13:28:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 25 13:28:28 2014 +0000"
      },
      "message": "Merge \"Optimizing compiler: remove unnecessary `explicit\u0027 keywords.\""
    },
    {
      "commit": "034168039d28c84ae4cba60d306a8bc7b396d409",
      "tree": "cc224ad4deab8d7259f3273f26ecfc3bb3e049cc",
      "parents": [
        "f2476d524281c6d649f5deb6d1ccccc92380c1ed",
        "6b46923ff0197c95f1e7ea0bc730961df6725cc9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 25 12:41:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 25 12:41:10 2014 +0000"
      },
      "message": "Merge \"Optimizing compiler: check inputs \u0026 uses definitions in CFG.\""
    },
    {
      "commit": "5799fc0754da7ff2b50b472e05c65cd4ba32dda2",
      "tree": "38a4189bc2e667dfd0537b02b24a8563907898d4",
      "parents": [
        "f2476d524281c6d649f5deb6d1ccccc92380c1ed"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 25 12:15:20 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 25 13:06:17 2014 +0100"
      },
      "message": "Optimizing compiler: remove unnecessary `explicit\u0027 keywords.\n\nChange-Id: I5927fd92d53308c81e14edbd6e7d1c943bfa085b\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"
    },
    {
      "commit": "f2476d524281c6d649f5deb6d1ccccc92380c1ed",
      "tree": "5a7351ed7b785d096ccec00871c8f8007d5449c9",
      "parents": [
        "c5c71bfa21aee5ad05217af57e94a0263c4eef1d",
        "e39c54ea575ec710d5e84277fcdcc049f8acb3c9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 25 11:23:21 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 25 11:23:22 2014 +0000"
      },
      "message": "Merge \"Deprecate GrowableArray, use ArenaVector instead.\""
    },
    {
      "commit": "6b46923ff0197c95f1e7ea0bc730961df6725cc9",
      "tree": "45cf685a23c70f95b1d16b7d3d67369d6148a514",
      "parents": [
        "c0d36abb12cdbb9469039c1dc153a586bd984015"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 25 10:10:38 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 25 10:10:38 2014 +0100"
      },
      "message": "Optimizing compiler: check inputs \u0026 uses definitions in CFG.\n\nEnsure each input and each use of an instruction is defined\nin a block of the control-flow graph.\n\nChange-Id: If4a83b02825230329b0b4fd84255dcb7c3219684\n"
    },
    {
      "commit": "cc67607798dbf978af00988ea2d9683c3e01cb63",
      "tree": "c9ca923b9aaf4edbe50cfdb7cf6b0e659d52675b",
      "parents": [
        "f038ed9f031acb9c4fdf8a7f86e3c7ffad537e37"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 23 22:58:07 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 24 00:21:52 2014 -0700"
      },
      "message": "ART: Refactor elf_writer_quick for elf section order\n\nThis writes ELF sections in approximate order (debug sections are\ncurrently out-of-order) to avoid incompletely written files\nappearing OK to ART loading code.\n\nBug: 17622827\n\n(cherry picked from commit 3c5ec99e156632a734c2359642ae928102850597)\n\nChange-Id: I812fd42fcf2823dbfaf5891bf101d3b59406f263\n"
    },
    {
      "commit": "590c6a4ded1deb378baa253c86070d8eeffdc820",
      "tree": "e0d2f1ce81741c6a75778314fac537a55c55b09c",
      "parents": [
        "f038ed9f031acb9c4fdf8a7f86e3c7ffad537e37"
      ],
      "author": {
        "name": "Chao-ying Fu",
        "email": "chao-ying.fu@intel.com",
        "time": "Tue Sep 23 14:54:32 2014 -0700"
      },
      "committer": {
        "name": "Chao-ying Fu",
        "email": "chao-ying.fu@intel.com",
        "time": "Tue Sep 23 14:55:21 2014 -0700"
      },
      "message": "ART: Reset bb id to the last list mir\n\nThis patch fixes a bug in RemoveMIRList() to reset bb id to\nthe last list mir.\n\nChange-Id: I0384d8d22e357b69725f455772f55296c50bc1d3\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\n"
    },
    {
      "commit": "f038ed9f031acb9c4fdf8a7f86e3c7ffad537e37",
      "tree": "82c4903f0949d8732eb46bb96c58482f1af25128",
      "parents": [
        "92822f4052629395eb1aa1a1253440b9c3ebad6c",
        "7e53b415e5e587cd7961978f6da7347248f40b29"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 23 17:13:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 23 17:13:55 2014 +0000"
      },
      "message": "Merge \"Optimizing compiler: ensure loop header dominates loop\u0027s blocks.\""
    },
    {
      "commit": "e39c54ea575ec710d5e84277fcdcc049f8acb3c9",
      "tree": "407209e732961074488043f6ccba8f1d692298a6",
      "parents": [
        "b36bba6d35e88687852b108c8d4b73b3ec2a9397"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 22 14:50:02 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 23 14:42:17 2014 +0100"
      },
      "message": "Deprecate GrowableArray, use ArenaVector instead.\n\nPurge GrowableArray from Quick and Portable.\nRemove GrowableArray\u003cT\u003e::Iterator.\n\nChange-Id: I92157d3a6ea5975f295662809585b2dc15caa1c6\n"
    },
    {
      "commit": "3f5e9bbb1e25b50dbaf75e1b5300863c112a62d0",
      "tree": "ca535bf8e23ab08996caed729febc51838f43399",
      "parents": [
        "2e1391b9abdafdbe7e0ef5ef116c49f812394056",
        "3bca0df855f0e575c6ee020ed016999fc8f14122"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 23 13:36:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 23 13:36:29 2014 +0000"
      },
      "message": "Merge \"Support for saving and restoring live registers in a slow path.\""
    },
    {
      "commit": "3bca0df855f0e575c6ee020ed016999fc8f14122",
      "tree": "15e15c8290ad314c29ca608f51d89d4db68fd9ba",
      "parents": [
        "d41491adb23764f28a80cbb7f2bd7af6491cd892"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 19 11:01:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 23 13:57:30 2014 +0100"
      },
      "message": "Support for saving and restoring live registers in a slow path.\n\nAnd use it in suspend check slow paths.\n\nChange-Id: I79caf28f334c145a36180c79a6e2fceae3990c31\n"
    },
    {
      "commit": "2e1391b9abdafdbe7e0ef5ef116c49f812394056",
      "tree": "bdac0775c4f9290741f9583c2acbd53655c63fb0",
      "parents": [
        "0f6016557d300a5a07c972465aef1ab2a125f5d1",
        "18efde5017369e005f1e8bcd3bbfb04e85053640"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 23 11:25:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 23 11:25:56 2014 +0000"
      },
      "message": "Merge \"Fix code generation with materialized conditions.\""
    },
    {
      "commit": "18efde5017369e005f1e8bcd3bbfb04e85053640",
      "tree": "dcb8bc8db745f3b8096cde55228730e6c402b2c5",
      "parents": [
        "ef3e89b9281525d6c084136c379346608b44d933"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 22 15:51:11 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 23 12:02:03 2014 +0100"
      },
      "message": "Fix code generation with materialized conditions.\n\nChange-Id: I8630af3c13fc1950d3fa718d7488407b00898796\n"
    },
    {
      "commit": "7e53b415e5e587cd7961978f6da7347248f40b29",
      "tree": "383d8ab17f50abcc501410ba3b33600ec1a66d26",
      "parents": [
        "6b879ddc0959df1cec871f0d41f11cce35a11716"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 23 10:50:22 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 23 10:50:22 2014 +0100"
      },
      "message": "Optimizing compiler: ensure loop header dominates loop\u0027s blocks.\n\nChange-Id: I6b2f1fdaac9f91dc5d9901cc2ad4c83745e90e70\n"
    },
    {
      "commit": "0f6016557d300a5a07c972465aef1ab2a125f5d1",
      "tree": "70c9a3f35ead685324753e7bff4ca1dc4e3ab7fa",
      "parents": [
        "8380c7c246337e66291a88f633dfaa250457bb0f",
        "6b879ddc0959df1cec871f0d41f11cce35a11716"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 23 09:02:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 23 09:02:33 2014 +0000"
      },
      "message": "Merge \"Add loop- and phi-related checks in the optimizing compiler.\""
    },
    {
      "commit": "8380c7c246337e66291a88f633dfaa250457bb0f",
      "tree": "b0e1a772012c1fefdb6550a987edcdb8387e9759",
      "parents": [
        "b36bba6d35e88687852b108c8d4b73b3ec2a9397",
        "2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 22 21:40:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 22 21:40:06 2014 +0000"
      },
      "message": "Merge \"Add ScopedAssertNoThreadSuspension\""
    },
    {
      "commit": "6b879ddc0959df1cec871f0d41f11cce35a11716",
      "tree": "7ca75abcea8c26601efe3d41d9e55bc24a835bad",
      "parents": [
        "ef3e89b9281525d6c084136c379346608b44d933"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 22 17:13:44 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 22 17:13:44 2014 +0100"
      },
      "message": "Add loop- and phi-related checks in the optimizing compiler.\n\n- Ensure the pre-header block is first in the list of\n  predecessors of a loop header.\n- Ensure the loop header has only two predecessors and that\n  only the second one is the back edge.\n- Ensure there is only one back edge per loop.\n- Ensure the first input of a phi is not itself.\n- Ensure the number of phi inputs is the same as the number\n  of its predecessors.\n- Ensure phi input at index I either comes from the Ith\n  predecessor or from a block that dominates this\n  predecessor.\n\nChange-Id: I4db5c68cfbc9b74d2d03125753d0143ece625378\n"
    },
    {
      "commit": "724c96326dea6ec33287a0076279c136abb0208a",
      "tree": "350acb15d7a30f76d6a451626bd5e3e701cd61d4",
      "parents": [
        "ef3e89b9281525d6c084136c379346608b44d933"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 22 12:27:27 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 22 15:10:00 2014 +0100"
      },
      "message": "Also remove environment links to removed instructions.\n\nChange-Id: I505163fb8683269c7d3fe21b34df92337d244552\n"
    },
    {
      "commit": "145f0ca7c7c5f5fd9f5226f2a65e1fd9ba3a4f47",
      "tree": "775f344295e864e60694c2d43aa7f90a6249422f",
      "parents": [
        "cff942b1f7ebb82e3d5e0a1334467544eced1575"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 22 11:51:51 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 22 11:54:48 2014 +0100"
      },
      "message": "Fix a bug in the handling of moves in register allocator.\n\nChange-Id: Iaf1f34b0bece4f252290a97c3b73cc06e365985a\n"
    },
    {
      "commit": "b7e9e3207577861030f0d5816baa523ef6bcd1bb",
      "tree": "1133b5cd2af09b120259f9aaa252f2fd34eff2f9",
      "parents": [
        "cff942b1f7ebb82e3d5e0a1334467544eced1575"
      ],
      "author": {
        "name": "Anton Shamin",
        "email": "anton.shamin@intel.com",
        "time": "Mon Sep 22 16:43:51 2014 +0700"
      },
      "committer": {
        "name": "Anton Shamin",
        "email": "anton.shamin@intel.com",
        "time": "Mon Sep 22 16:43:51 2014 +0700"
      },
      "message": "Elimination of redundant instructuion\n\nElimination of storing offset in phys register (while it\u0027s already\nstored in ECX by default) from two address shift operation.\n\nChange-Id: Iaf9abde65f505ab855f73f9da7bd13fa46c64fbb\nSigned-off-by: Anton Shamin \u003canton.shamin@intel.com\u003e\n"
    },
    {
      "commit": "2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893",
      "tree": "b0b9a8d4c386555f009b825bd5fbd8ab31909c3b",
      "parents": [
        "24f4b816dd50793e8456dc60fe1b50856004d708"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 19 17:52:37 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 19 18:57:47 2014 -0700"
      },
      "message": "Add ScopedAssertNoThreadSuspension\n\nAdded a new class, ScopedAssertNoThreadSuspension.\nDeleted some unnecessary ScopedAssertNoThreadSuspension since\nVisitObjects already has a ScopedAssertNoThreadSuspension.\n\nChange-Id: I29ec0006120c39a27184d30e2d1d0c179e203776\n"
    },
    {
      "commit": "04db94656e4316fe84a19856452c6ca037799d11",
      "tree": "ecbdcdf028b727fe60075c154581496998253283",
      "parents": [
        "24f4b816dd50793e8456dc60fe1b50856004d708",
        "a870bc5495b20a830ebd8342b49ef148bbff72dd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 19 23:23:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 19 23:23:01 2014 +0000"
      },
      "message": "Merge \"ART: Address three issues with x86 assembler before enabling load store elimination.\""
    },
    {
      "commit": "d7fe69baee699ef1c9ec17f95b2d4f2522f03557",
      "tree": "48bf1807e377504ae735a992248fa4b29ef48b4f",
      "parents": [
        "8147dcb6b149ba5bba0915fdf0cbcb2dd18d431e",
        "52ed9ad728bf03cc996feff6b3874c1c5a3d0a1f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 19 16:51:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 19 16:51:13 2014 +0000"
      },
      "message": "Merge \"ART: Fix host test failure (assembler_thumb_test).\""
    },
    {
      "commit": "8147dcb6b149ba5bba0915fdf0cbcb2dd18d431e",
      "tree": "177fb4a55f5abb4211c9797cdac75cde0bce8925",
      "parents": [
        "87258edd817672daefc1d262af4cfdf732d4e454",
        "f9f0ed401f7fe4138a71b36719423b908a3b7bfb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 19 16:48:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 19 16:48:20 2014 +0000"
      },
      "message": "Merge \"ART: Overflow of bound check in ArrayCopy intrinsic\""
    },
    {
      "commit": "87258edd817672daefc1d262af4cfdf732d4e454",
      "tree": "80e11d4998c337263ab198066ead51deaab90a82",
      "parents": [
        "8d050d8cccaa4e7d4a3fde863ccb0411337c9c98",
        "589e046c483ca0dbee6c28fb617997f43ee28b94"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Fri Sep 19 16:11:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 19 16:11:09 2014 +0000"
      },
      "message": "Merge \"Slow path should break def tracking\""
    },
    {
      "commit": "8d050d8cccaa4e7d4a3fde863ccb0411337c9c98",
      "tree": "1e2a14cd30eb2976cec28c1ac04a0c999e3dd2ff",
      "parents": [
        "d872b7945ea07ba93ff984cb42b7388e0551a16c",
        "9863daf4fdc1a08339edac794452dbc719aef4f1"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Fri Sep 19 15:52:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 19 15:52:50 2014 +0000"
      },
      "message": "Merge \"AddIntrinsicSlowPath with resume requires clobbering\""
    },
    {
      "commit": "d872b7945ea07ba93ff984cb42b7388e0551a16c",
      "tree": "39f8edd88c5161fe806239545dda55e50e682f2f",
      "parents": [
        "f33e4d419e90b9a8514c040e5c8b5780965dd538",
        "b7fc629dc562ee9f3df04a112a70b7868664f94d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 19 15:44:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 19 15:44:25 2014 +0000"
      },
      "message": "Merge \"ART: Fix instruction flags of kMirOpCheck and kMirOpCheckPart2\""
    },
    {
      "commit": "f33e4d419e90b9a8514c040e5c8b5780965dd538",
      "tree": "6f83635ef5d9e5906766bd54e6de60f20b7ff6c1",
      "parents": [
        "d026d88e07894cb8ca45aaec4d7b5e68b87b3218",
        "0a1174efd81fc25110ad106a84063c62af9ce7e5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 19 15:37:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 19 15:37:27 2014 +0000"
      },
      "message": "Merge \"X86 QBE: Make some X86 routines virtual\""
    },
    {
      "commit": "d31cf3d55a0847c018c4eaa2b349b8eea509de64",
      "tree": "2594116391a59c1fce83c5cbd9058ba76534fec0",
      "parents": [
        "e07d111b9bff8b68b8d0ed44fb95805a5c6f47fb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 17:30:24 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 19 13:59:39 2014 +0100"
      },
      "message": "First optimization in new compiler: simple GVN.\n\nChange-Id: Ibe0efa4e84fd020a53ded310a92e0b4363f91b12\n"
    },
    {
      "commit": "b7fc629dc562ee9f3df04a112a70b7868664f94d",
      "tree": "ab9ca40dfa9effc90f870934790e2c7378a0f0a0",
      "parents": [
        "c64746c1d224143d85232c8899126930e3fe5d27"
      ],
      "author": {
        "name": "Udayan Banerji",
        "email": "udayan.banerji@intel.com",
        "time": "Tue Sep 09 16:49:34 2014 -0700"
      },
      "committer": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Thu Sep 18 23:03:02 2014 +0000"
      },
      "message": "ART: Fix instruction flags of kMirOpCheck and kMirOpCheckPart2\n\nSince they are just wrappers for correct modeling, it was believed\nthat these instructions do not need flags. However, the flags\nare needed to correctly reflect their semantic behavior in a manner\nconsistent with all other instructions.\n\nAlso, missing flags for new extended instructions have also been added.\n\nChange-Id: I2282eebf4b9c82b82e26722914645fcc0be49c82\nSigned-off-by: Udayan Banerji \u003cudayan.banerji@intel.com\u003e\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\n"
    },
    {
      "commit": "53562d9a8fb210cf33a694f5e81f3d13ce3a8c48",
      "tree": "135561e5b98f0d5b9357acc707c13255e39a3332",
      "parents": [
        "f67bda68a579a8ac79f9d8f889e0233a8f94da55",
        "556c3d193134f6461f3e1fe17c032b087c5931a0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 16:07:18 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 16:07:19 2014 +0000"
      },
      "message": "Merge \"Initiate a constant propagation pass in the optimizing compiler.\""
    },
    {
      "commit": "c83d441a722f0afb510c9cd0e69e09d65652143c",
      "tree": "68ec67c519cfc3b4eb6e4bbefe2f2fa88a185c22",
      "parents": [
        "aaadf03fd8d9f6a50a3b8b4b916e7cc161e4edba"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 16:46:20 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 16:46:20 2014 +0100"
      },
      "message": "Fix a lint error and update a test after the phi fix.\n\nChange-Id: I6e9ab2a8300c2493a8d3e93ab4ced3d7c9552fc5\n"
    },
    {
      "commit": "aaadf03fd8d9f6a50a3b8b4b916e7cc161e4edba",
      "tree": "2447d33b3338e2448f061aaeff471bd9342325d3",
      "parents": [
        "6aa606c9284ac31961f4c5b20c3645ac78acfaad",
        "604c6e4764edb2fd244e9f47626868cda5644a7a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 15:02:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 15:02:41 2014 +0000"
      },
      "message": "Merge \"Ensure the first predecessor of a loop is the pre header.\""
    },
    {
      "commit": "556c3d193134f6461f3e1fe17c032b087c5931a0",
      "tree": "436660c7155d0864c37f8aeabbc0f52e889a0cc2",
      "parents": [
        "6aa606c9284ac31961f4c5b20c3645ac78acfaad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 15:25:07 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 15:25:07 2014 +0100"
      },
      "message": "Initiate a constant propagation pass in the optimizing compiler.\n\n- Perform constant folding on int and long additions and subtractions in\n  the optimizing compiler.\n- Apply constant folding to conditions and comparisons.\n\nChange-Id: Ic88783a3c975fda777c74c531e257fa777be42eb\n"
    },
    {
      "commit": "e5cafd5fd1d476c1309cf10ff45877adce2f4347",
      "tree": "444e1db559cf7d21632275c3db23a26a40f165bf",
      "parents": [
        "e2aa073e57e8129706cf4f87c1e7c5cfedd2951f",
        "ce71ae7daca2e9ae4eec42d7445013c37d96e385"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 11:22:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 11:22:39 2014 +0000"
      },
      "message": "Merge \"It can be that no method has been compiled.\""
    },
    {
      "commit": "e2aa073e57e8129706cf4f87c1e7c5cfedd2951f",
      "tree": "3718dc967d410a35197057aeb729a868effc0687",
      "parents": [
        "185a7a49c2e6f8869ffd11452f1d93ef5304fb5f",
        "b09aacb495dce2cb3e8469f056fdc2636ae393e6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 10:59:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 10:59:27 2014 +0000"
      },
      "message": "Merge \"Small fixes to get the boot image compiled in debug mode.\""
    },
    {
      "commit": "ce71ae7daca2e9ae4eec42d7445013c37d96e385",
      "tree": "3f39c8f4a82cb4b6f2ee48c1e8ac04ec8f4f0256",
      "parents": [
        "d41491adb23764f28a80cbb7f2bd7af6491cd892"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 11:31:32 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 11:31:32 2014 +0100"
      },
      "message": "It can be that no method has been compiled.\n\nTherefore do not divide by 0, but log it.\n\nChange-Id: Iee7760ab7f31c73e90d62387e5fb6fb7aa2c56e2\n"
    },
    {
      "commit": "185a7a49c2e6f8869ffd11452f1d93ef5304fb5f",
      "tree": "d118a19a41e5c9bb4164b98c9f66de7b0bcd739a",
      "parents": [
        "539f559e0a4af726eba0ecd424cf9cd668adc45f",
        "72bceff11a98cc1ecdb64a6fae16c521f99ec6a7"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 09:37:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 09:37:31 2014 +0000"
      },
      "message": "Merge \"Initiate a dead code elimination pass in the optimizing compiler.\""
    },
    {
      "commit": "539f559e0a4af726eba0ecd424cf9cd668adc45f",
      "tree": "75a7ead8c1427386dcb822798f89372ea8354e62",
      "parents": [
        "d41491adb23764f28a80cbb7f2bd7af6491cd892",
        "ccc07a9579c554443cd03a306ca9b4f943fd2a93"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 18 09:37:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 09:37:03 2014 +0000"
      },
      "message": "Merge \"Add CFG and SSA form checkers in the optimizing compiler.\""
    },
    {
      "commit": "b09aacb495dce2cb3e8469f056fdc2636ae393e6",
      "tree": "9e044d74ec6c7667d2c6684b8c44a7a5db045096",
      "parents": [
        "7d029af44c45c56b3b7a271c54434c2dcec1e219"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 18:21:53 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 18 09:10:09 2014 +0100"
      },
      "message": "Small fixes to get the boot image compiled in debug mode.\n\nChange-Id: Id697737a1bcfb87f407d707e2ddd4f50a77caf26\n"
    },
    {
      "commit": "497d62e65e703a8875ca5001b34a9740ec93b36f",
      "tree": "6c699982ec4d46b8a2d7e454c2827914244a7c6e",
      "parents": [
        "e70547c69a4428e32b7182386a6de166e5b3d22b"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Sep 17 13:23:58 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 17 20:38:27 2014 -0700"
      },
      "message": "ART: skip compilation of huge methods.\n\nBesides not being worthwhile to compile, it huge methods could cause\noverflow of some internal compiler structures.\n\ninternal b/17524219\n\n(cherry picked from commit bf5d818f7e59ce33521ad81bbab68b1e7a09e0ba)\n\nChange-Id: If99b47c3191c69feee319c9d73537e827ba0cc1d\n"
    },
    {
      "commit": "72bceff11a98cc1ecdb64a6fae16c521f99ec6a7",
      "tree": "d326cc4fd32315735466efbb17ea22adf121395c",
      "parents": [
        "ccc07a9579c554443cd03a306ca9b4f943fd2a93"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 15 18:29:00 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 17 18:23:21 2014 +0100"
      },
      "message": "Initiate a dead code elimination pass in the optimizing compiler.\n\nChange-Id: Ie9db5d8e2c2c30e34145a0f7d2386b8ec58cfc4e\n"
    },
    {
      "commit": "ccc07a9579c554443cd03a306ca9b4f943fd2a93",
      "tree": "3514cb48520ecd6cf4bb93129bed5cd97f24cb43",
      "parents": [
        "926d8e99aa69151a271180299df68963688010d8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 16 14:48:16 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 17 18:19:46 2014 +0100"
      },
      "message": "Add CFG and SSA form checkers in the optimizing compiler.\n\nChecks performed on control-flow graphs:\n- Ensure that the predecessors and successors of a basic block are\n  consistent within a control-flow graph.\n- Ensure basic blocks end with a branch instruction.\n- Detect phi functions listed in non-phi instruction lists and vice\n  versa.\n- Ensure a block\u0027s instructions (and phi functions) are associated\n  with this very block.\n\nChecks performed on SSA form graphs:\n- Ensure an instruction dominates all its uses.\n- Ensure there are no critical edges.\n\nChange-Id: I1c12b4a61ecf608682152c897980ababa7eca847\n"
    },
    {
      "commit": "f9f0ed401f7fe4138a71b36719423b908a3b7bfb",
      "tree": "a9bc6bb9a33c423aa115243e6e608e7a81801a00",
      "parents": [
        "97ca64b01e14de77ba14067b26069405d0dba0bf"
      ],
      "author": {
        "name": "avignate",
        "email": "aleksey.v.ignatenko@intel.com",
        "time": "Wed Sep 17 22:35:07 2014 +0700"
      },
      "committer": {
        "name": "avignate",
        "email": "aleksey.v.ignatenko@intel.com",
        "time": "Wed Sep 17 22:35:07 2014 +0700"
      },
      "message": "ART: Overflow of bound check in ArrayCopy intrinsic\n\nSystem.arraycopy method is implemented as intrinsic on x86. It has\nbound check which has a bug to overflow in certain conditions\nwhen summ of array offset and number elements to be copied are\nmore than MAX_INT. For the methods like CarArrayBuffer.get it\nmeans no OutOfBound exception to be thrown. The proposed\nsolution fixed that.\n\nChange-Id: Id16a26163a61d934b862a8729a52ca5c1a56caec\nSigned-off-by: avignate \u003caleksey.v.ignatenko@intel.com\u003e\n"
    },
    {
      "commit": "604c6e4764edb2fd244e9f47626868cda5644a7a",
      "tree": "20ce0beae7663fe8ca0a07132ecd55c7c2626d41",
      "parents": [
        "7d029af44c45c56b3b7a271c54434c2dcec1e219"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 12:08:44 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 12:08:44 2014 +0100"
      },
      "message": "Ensure the first predecessor of a loop is the pre header.\n\nNote that the check in ssa_phi_elimination.cc was very defensive:\nit does not affect the outcome of the algorithm whether the\nloop phi takes itself as the first input.\n\nIt makes things consistent to always have the pre header as first\ninput.\n\nChange-Id: Ic86248c1f38af67f7432782f6deefae1f4bf1ab6\n"
    },
    {
      "commit": "7d029af44c45c56b3b7a271c54434c2dcec1e219",
      "tree": "91eac51207931dc9ff99bb0f93a184e0032d1480",
      "parents": [
        "97ca64b01e14de77ba14067b26069405d0dba0bf",
        "88157efc1e16707d4ae10775d4acb15121c50fe7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 10:03:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 17 10:03:58 2014 +0000"
      },
      "message": "Merge \"Add the \"time\" compilation filter and output compilation stats.\""
    },
    {
      "commit": "88157efc1e16707d4ae10775d4acb15121c50fe7",
      "tree": "37934ec3933ca89224a674b13f5dc3415a06786a",
      "parents": [
        "bace0378d720a1d2938ec7f6be17e2814671d20a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 12 10:29:53 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 11:02:37 2014 +0100"
      },
      "message": "Add the \"time\" compilation filter and output compilation stats.\n\nA \"time\" compiler filter means the compiler optimizes for\ncompile time.\n\nChange-Id: Id1a207ceb2d95f3548aae5e45d51b80695da2029\n"
    },
    {
      "commit": "e982f0b8e809cece6f460fa2d8df25873aa69de4",
      "tree": "df729d47439f7243b498dd4503a5f7aa41a4818b",
      "parents": [
        "f031724abf4f215e1627ff837f87cad5d7a25165"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 13 02:11:24 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 17 09:53:50 2014 +0100"
      },
      "message": "Implement invoke virtual in optimizing compiler.\n\nAlso refactor 004 tests to make them work with both Quick and\nOptimizing.\n\nChange-Id: I87e275cb0ae0258fc3bb32b612140000b1d2adf8\n"
    },
    {
      "commit": "0a1174efd81fc25110ad106a84063c62af9ce7e5",
      "tree": "1ce2a9735a39aff57959ab6110d0e3693176b7ec",
      "parents": [
        "19f7c95491a053b818f914137fa73df0517b8792"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Sep 11 14:51:02 2014 -0400"
      },
      "committer": {
        "name": "Razvan A Lupusoru",
        "email": "razvan.a.lupusoru@intel.com",
        "time": "Wed Sep 17 02:32:43 2014 +0000"
      },
      "message": "X86 QBE: Make some X86 routines virtual\n\nAdd virtual in one place, and move some code into a virtual routine.\nThis allows subclassing and overriding for my purposes.\n\nChange-Id: Ie415df943b17b56ad1f057513b2df2a31801a72f\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e"
    },
    {
      "commit": "0b4f345ddf2919d496eb632bc4d5e7d7926a441a",
      "tree": "371c1b03d1acf0d4e67ce295a14799d1a497479d",
      "parents": [
        "bace0378d720a1d2938ec7f6be17e2814671d20a",
        "61ff009e37fa73ddfa7676bd9832cf3ee9702f97"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 16 18:37:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 16 18:37:36 2014 +0000"
      },
      "message": "Merge \"ART: Check for exceptions from unresolved classes\""
    },
    {
      "commit": "61ff009e37fa73ddfa7676bd9832cf3ee9702f97",
      "tree": "9ca6b82361c1f557b7612d82f5c280502eaa88ba",
      "parents": [
        "ed6839d7df3c668fa138c461cd657bcb32a43a7f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 16 11:23:23 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 16 11:36:34 2014 -0700"
      },
      "message": "ART: Check for exceptions from unresolved classes\n\nIn no-verify mode, classes may be unresolved because of missing\ndependencies. Ignore and clear the exception.\n\nBug: 17506140\nChange-Id: I70602b089e6631b1e177dbe8316c5fefdaf777a0\n(cherry picked from commit ba354a97a9742774f57bad7f96ccae2dbbd59f75)\n"
    },
    {
      "commit": "bace0378d720a1d2938ec7f6be17e2814671d20a",
      "tree": "d986e10ad92b40e38f9098c486e12891b0ec4118",
      "parents": [
        "5733b35c23792834f3a2374003c109301a48867c",
        "fbc695f9b8e2084697e19c1355ab925f99f0d235"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 15:19:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 16 15:19:06 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Implement suspend checks in new compiler.\"\"\""
    },
    {
      "commit": "fbc695f9b8e2084697e19c1355ab925f99f0d235",
      "tree": "03e643aa9b468a512873293528bec93438580bab",
      "parents": [
        "3d2d7fb7ad24f4aec681ddc68a9565fa837b97ef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 15 15:33:30 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 16:18:12 2014 +0100"
      },
      "message": "Revert \"Revert \"Implement suspend checks in new compiler.\"\"\n\nThis reverts commit 7e3652c45c30c1f2f840e6088e24e2db716eaea7.\n\nChange-Id: Ib489440c34e41cba9e9e297054f9274f6e81a2d8\n"
    },
    {
      "commit": "5733b35c23792834f3a2374003c109301a48867c",
      "tree": "9f625e70eb5c8ebe7abc614517bb490c7e1b5cfd",
      "parents": [
        "3d2d7fb7ad24f4aec681ddc68a9565fa837b97ef",
        "1127b127b688c754585cd1c07ede486a0869d0c6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 16 14:52:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 16 14:52:55 2014 +0000"
      },
      "message": "Merge \"ART: fix highest PC values removal in SrcMap.DeltaFormat()\""
    },
    {
      "commit": "3d2d7fb7ad24f4aec681ddc68a9565fa837b97ef",
      "tree": "a4d24773c64e50fb63cf29e020646bb9db69bd7f",
      "parents": [
        "ed6839d7df3c668fa138c461cd657bcb32a43a7f",
        "aac0f39a3501a7f7dd04b2342c2a16961969f139"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 14:05:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 16 14:05:52 2014 +0000"
      },
      "message": "Merge \"Fix a bug in the register allocator.\""
    },
    {
      "commit": "aac0f39a3501a7f7dd04b2342c2a16961969f139",
      "tree": "ef71b73a7d95de726d36883e6c88f7c8cbcfaaf6",
      "parents": [
        "56369897d662ea63ea5ed57ae36af0ae0fa1452d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 14:11:14 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 16 14:15:22 2014 +0100"
      },
      "message": "Fix a bug in the register allocator.\n\nWe need to take the live interval that starts first to know\nuntil when a register is free, instead of using the live interval\nthat is last in the inactive list.\n\nChange-Id: I2c9f87481ff1b4fc7b9948db7559b8d3b11d84ce\n"
    },
    {
      "commit": "1127b127b688c754585cd1c07ede486a0869d0c6",
      "tree": "543a7cc9161f3d8e05840bdffc67bfd9dc782bfd",
      "parents": [
        "ed6839d7df3c668fa138c461cd657bcb32a43a7f"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Tue Sep 16 11:29:26 2014 +0700"
      },
      "committer": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Tue Sep 16 12:43:23 2014 +0000"
      },
      "message": "ART: fix highest PC values removal in SrcMap.DeltaFormat()\n\nThe conversion from absolute to offset Line Number Table values mistakenly\nremoved all values less than the highest one, which resulted in clearing\nall the table.\n\nThe fix is to use the reverse condition finding the highest correct PC\nvalue in the sorted table.\n\nChange-Id: I9850c2c46c1910b809043dd8163eb930a7849ded\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "daab38ca60c5b91787e29c87a161a2bb8c1b6f11",
      "tree": "0b155557e516ec1ff571c359af904e00d31d0c43",
      "parents": [
        "d2e5a6934ca1a07c9e1e87d3d0b21b63e1011934"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 12 18:38:24 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 22:34:11 2014 -0700"
      },
      "message": "ART: Make elf loading not abort\n\nChanges elf_file code to use less CHECKs and instead return error\nvalues (usually nullptr). This avoids aborts.\n\nIn oat_file, when loading an oat file fails, try to unlink at. If\nthis succeeds, on the next run we may compile again.\n\nBug: 17491333\n\n(cherry picked from commit afa6b8e93a0dc0de33c9d404945c7c5621e20b1a)\n\nChange-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af\n"
    },
    {
      "commit": "5a4b8a236030460651a3136397d23ca6744e7eb7",
      "tree": "0e43891398e416d3fa77c7de391bf4db4408e8ee",
      "parents": [
        "19f7c95491a053b818f914137fa73df0517b8792"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 08:30:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 19:50:12 2014 -0700"
      },
      "message": "ART: Rename Handle hierarchy\n\nBring the names in line with normal OO principles: ConstHandle\nbecomes Handle, and Handle becomes MutableHandle.\n\nChange-Id: I0f018eb7ba28bc422e3a23dd73a6cbe6fc2d2044\n"
    }
  ],
  "next": "2ed8deff799448e094fa7a7cb9cf3b718820f4c6"
}
