)]}'
{
  "log": [
    {
      "commit": "eb19362bae3dc12275c1a3b3aff20e9e8965ead8",
      "tree": "f51d6b397d1054f23a4d6ee6c8cb3b288e3c5cd4",
      "parents": [
        "915e9e0e4fa23e55962f5e7814041f7bc2b1f331"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jun 27 15:42:27 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 30 10:40:37 2015 -0700"
      },
      "message": "Change ART_TEST_GC_STRESS to use new gcstress mode\n\nEnable new gcstress mode that checks at each allocation site\n(with some tracking of stack traces to only do one check per\nunique site).\n\nDisable 137-cfi for gcstress, as it\u0027s sleeping to \"synchronize\"\nwith a forked process, which doesn\u0027t work with the slower mode.\n\nBug: 22014525\nChange-Id: Ife70308e45b04f5d97267b4d98f8c75fa96492a1\n"
    },
    {
      "commit": "ef9849e4adc5e9d9068caf7bb4dc834bb33c976a",
      "tree": "336ec66c4805f6799f9f87dcfec13e78f97b8c2b",
      "parents": [
        "3b0667c1d68ba88c71b031757b757dca659afd69"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jun 27 15:42:27 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 30 10:35:28 2015 -0700"
      },
      "message": "ART: Fix test 036-finalizer\n\nNeed to fix bug in test 036 where some allocation sites could cause\nGC to run which caused the test to fail due to a weak reference\ngetting cleared. This change is required for the new GCSTRESS mode.\n\nBug: 22014525\nChange-Id: I8099d2f03bc2f14f4ca6d49133f0d17d8aa49a7b\n"
    },
    {
      "commit": "806af26f1a8f107cb4f4430ceec8dc9f360f3795",
      "tree": "c28ecfbb589223e667e1aebc0b4911b9768909bb",
      "parents": [
        "f91d27c907589c2b678315793992f09f9acc2e8b",
        "4230e1895b915a22363452823b0e51eabe92cb60"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 14:03:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 14:03:00 2015 +0000"
      },
      "message": "Merge \"Do not replace a live phi with a dead phi.\""
    },
    {
      "commit": "4230e1895b915a22363452823b0e51eabe92cb60",
      "tree": "64bce7a4e8e4fcb73d15c1644f54311bd5a04483",
      "parents": [
        "b485915afd8a6396df7863b651dfe832038fd680"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 14:34:46 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 14:02:30 2015 +0000"
      },
      "message": "Do not replace a live phi with a dead phi.\n\nA dead phi is not properly typed. Therefore, always use the live phi\nequivalent instead.\n\nbug:21865466\nChange-Id: Id5e26ae4062cc18f5532d5b95cc024480652d5b2\n"
    },
    {
      "commit": "f9a199571417b5a5a62d94d05a064077e14dd2c4",
      "tree": "f2fb9f91e1d29f15c168e7966a1d23bfa92a9dec",
      "parents": [
        "2e232ce8c7e7accc1b9654f111266d28fe45b08d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 13:43:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 13:45:31 2015 +0100"
      },
      "message": "Revert \"Revert \"Do not update the type of something we already know.\"\"\n\nThis reverts commit 63107a804ce17db9789051e1fe310d99d1dae1cb.\n\nbug:22116987\nChange-Id: I49a376a5bd2073a69babe122ec0d26e5d2f82461\n"
    },
    {
      "commit": "2e232ce8c7e7accc1b9654f111266d28fe45b08d",
      "tree": "7fd4c83fd14e5ef91e3d856ecd33a8a45f3665ac",
      "parents": [
        "f67156eb8027fb0be7e2e3ec5fdb4323134ae10d",
        "63107a804ce17db9789051e1fe310d99d1dae1cb"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 29 11:43:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 11:43:40 2015 +0000"
      },
      "message": "Merge \"Revert \"Do not update the type of something we already know.\"\""
    },
    {
      "commit": "63107a804ce17db9789051e1fe310d99d1dae1cb",
      "tree": "6c63aac8871de4143ee37f2a513023f1247b2117",
      "parents": [
        "30eb58c548bee08468f68eb140a74a51dd7d9b43"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 29 11:43:16 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 29 11:43:16 2015 +0000"
      },
      "message": "Revert \"Do not update the type of something we already know.\"\n\nThis reverts commit 30eb58c548bee08468f68eb140a74a51dd7d9b43.\n\nChange-Id: Icd959e868160fc3ee7031dd2927554ac5b21d40f\n"
    },
    {
      "commit": "f67156eb8027fb0be7e2e3ec5fdb4323134ae10d",
      "tree": "c7e6c59d235e871a84b4fe3d542e55f454b861fe",
      "parents": [
        "d1c897df8818f2329492f9befb046927be390d90",
        "30eb58c548bee08468f68eb140a74a51dd7d9b43"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 11:03:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 11:03:35 2015 +0000"
      },
      "message": "Merge \"Do not update the type of something we already know.\""
    },
    {
      "commit": "30eb58c548bee08468f68eb140a74a51dd7d9b43",
      "tree": "28412484547b9bfb4a4773df103cef5f485c3a67",
      "parents": [
        "8d1a8c00b89775a251ac5e26a557f81ac1491a44"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 10:56:34 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 10:59:19 2015 +0100"
      },
      "message": "Do not update the type of something we already know.\n\nThis is both an optimization to avoid unneeded nodes,\nand correctness to avoid replacing the second input\nof `HInstanceOf` and `HCheckCast` to something that is\nnot `HLoadClass`.\n\nbug:22116987\n\nChange-Id: I4907197a9002883d7cae8265a9642512b6201396\n"
    },
    {
      "commit": "d1c897df8818f2329492f9befb046927be390d90",
      "tree": "7fd4c83fd14e5ef91e3d856ecd33a8a45f3665ac",
      "parents": [
        "0bf76878a7784b4e0f21ace82d891bf0b760aaac",
        "b550c2e42fe5d30c7ebc196fc705aa18a191ffab"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 29 08:17:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 08:17:40 2015 +0000"
      },
      "message": "Merge \"Exercise sun.misc.Unsafe.compareAndSwapObject.\""
    },
    {
      "commit": "d5ad72fb8ca28ee4fa4109fa7154e08d0c4ac4d3",
      "tree": "b3fad532f90e6e76a442f06ad3e391011932ebdc",
      "parents": [
        "2d0ad78f50cae58d1ca11a497614ca3e1178acc3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 26 17:33:47 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 26 17:53:41 2015 -0700"
      },
      "message": "ART: Fix invalid access and DCHECK in verifier\n\nIf we get a throwing failure when setting types from the signature,\nthe work instruction index is still invalid. Do not try to copy the\nline then.\n\nAs a throwing failure might happen in the above instance, but the\nflow analysis expects to have a cleared failure flag before processing\neach instruction, clear the flag.\n\nBug: 21645819\nBug: 22080519\n\n(cherry picked from commit 3ae8da0a803370be9dd410226438f636af553e22)\n\nChange-Id: I224c4dad98fa5bb50e62210f0ee30c0dd020e3a6\n"
    },
    {
      "commit": "7526d783ab68ed1dd53c763c75895cb432532b0f",
      "tree": "823d90f5eb72010c4ff68d67cc905ac3f44f629a",
      "parents": [
        "83f0a080b68e9cff9333af030f20f242a7ac9168"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 22 22:53:45 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 26 14:22:46 2015 -0700"
      },
      "message": "ART: Fix streaming tracing issues\n\nFix a lock ordering issue in streaming-mode tracing.\n\nFix a moving-GC issue in streaming-mode tracing. DexCache\nobjects are not good keys for a map.\n\nExpose streaming mode for testing in run-tests.\n\nBug: 21760614\n\n(cherry picked from commit b91205e40fe692061edde19ecb87d51414a7fcee)\n\nChange-Id: Idcd0575684ee3cc0cec3f81b4fdd0d5988c11e8c\n"
    },
    {
      "commit": "fc6a86ab2b70781e72b807c1798b83829ca7f931",
      "tree": "90201491e811cf7be0e0469d7a06a828f4384cad",
      "parents": [
        "d3eaade87ac079accca30473ef0a3b38ab600828"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 10:33:45 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 13:49:50 2015 +0100"
      },
      "message": "Revert \"Revert \"ART: Implement try/catch blocks in Builder\"\"\n\nThis patch enables the GraphBuilder to generate blocks and edges which\nrepresent the exceptional control flow when try/catch blocks are\npresent in the code. Actual compilation is still delegated to Quick\nand Baseline ignores the additional code.\n\nTo represent the relationship between try and catch blocks, Builder\nsplits the edges which enter/exit a try block and links the newly\ncreated blocks to the corresponding exception handlers. This layout\nwill later enable the SsaBuilder to correctly infer the dominators of\nthe catch blocks and to produce the appropriate reverse post ordering.\nIt will not, however, allow for building the complete SSA form of the\ncatch blocks and consequently optimizing such blocks.\n\nTo this end, a new TryBoundary control-flow instruction is introduced.\nCodegen treats it the same as a Goto but it allows for additional\nsuccessors (the handlers).\n\nThis reverts commit 3e18738bd338e9f8363b26bc895f38c0ec682824.\n\nChange-Id: I4f5ea961848a0b83d8db3673763861633e9bfcfb\n"
    },
    {
      "commit": "d3eaade87ac079accca30473ef0a3b38ab600828",
      "tree": "12dd483fa488b349312e49ffde8cb538845a2b57",
      "parents": [
        "610a04994ea5988bd6e2e056b658182ec9c445e3",
        "3e18738bd338e9f8363b26bc895f38c0ec682824"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 10:00:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 26 10:00:04 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Implement try/catch blocks in Builder\"\""
    },
    {
      "commit": "3e18738bd338e9f8363b26bc895f38c0ec682824",
      "tree": "708013ef06cfb524f040b2b5c494f7f3cb84ac2c",
      "parents": [
        "0b5c7d1994b76090afcc825e737f2b8c546da2f8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 09:59:52 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 09:59:52 2015 +0000"
      },
      "message": "Revert \"ART: Implement try/catch blocks in Builder\"\n\nCauses OutOfMemory issues, need to investigate.\n\nThis reverts commit 0b5c7d1994b76090afcc825e737f2b8c546da2f8.\n\nChange-Id: I263e6cc4df5f9a56ad2ce44e18932ca51d7e349f\n"
    },
    {
      "commit": "b550c2e42fe5d30c7ebc196fc705aa18a191ffab",
      "tree": "5950ceacc9a06a5ae3f517faa67913b1b5ad6fb9",
      "parents": [
        "2f81cd8f4ff21caf133024795bd5ae028c9f68cd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 26 10:44:53 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 26 10:46:56 2015 +0100"
      },
      "message": "Exercise sun.misc.Unsafe.compareAndSwapObject.\n\nChange-Id: I25aad20be3363aace5189a8134f3484f8675c701\n"
    },
    {
      "commit": "2f81cd8f4ff21caf133024795bd5ae028c9f68cd",
      "tree": "9f7124df650984b848e00625c4185641b5f1650c",
      "parents": [
        "e4a15549608b1c5b1e1cb32f840a8467602dcc14",
        "0b5c7d1994b76090afcc825e737f2b8c546da2f8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 08:56:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 26 08:56:46 2015 +0000"
      },
      "message": "Merge \"ART: Implement try/catch blocks in Builder\""
    },
    {
      "commit": "d7f3c38f1b1d23c08b91abb474e08da3105689f8",
      "tree": "f01ad355cf39649ead8544325fb2c34e64ffe43e",
      "parents": [
        "dfda6d74f97891d1b61027de9b4dca9bcd7c197d",
        "42c3c33df8b6eefc4ba532f1981282510f109928"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 25 22:02:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 25 22:02:33 2015 +0000"
      },
      "message": "Merge \"Make allocation tracker use less memory\""
    },
    {
      "commit": "42c3c33df8b6eefc4ba532f1981282510f109928",
      "tree": "4526fe0a718f2e8ead36907aa9984c402d5a1888",
      "parents": [
        "bb3dabaf804e0d0bd2bf34e69091b2f86fd4e78b"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Tue Jun 23 16:38:25 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Thu Jun 25 14:10:48 2015 -0700"
      },
      "message": "Make allocation tracker use less memory\n\nThe allocation tracker no longer keeps recently allocated objects live.\nInstead it just keeps their class objects live as strong roots. This fixed\nthe gc-stress test failure for 098-ddmc.\n\nAlso fixed the issue in DisableNewSystemWeak() for allocation tracker,\nby making new allocation to wait until GC\u0027s sweeping to complete. I didn\u0027t\nfeel any significant slowdown with this wait.\n\nBug: 20037135\nChange-Id: I6a98188832cf7ee478007e3788e742dc6e18f7b8\n"
    },
    {
      "commit": "d12e782bcee03ecb6dec41aa9673ef53b638dcea",
      "tree": "fdf9ff18d66bf7a5509b4d98dc4d19f7163ab830",
      "parents": [
        "292edf0dacca4b0220522c9b4465638da18dadf4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 25 10:26:40 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 25 12:33:31 2015 -0700"
      },
      "message": "ART: Reset runtime_throw_failure flag\n\nThe flag is instruction-specific. It transports the info from Fail\nto the main loop. It must be cleared after each iteration.\n\nIntroduce a second flag to store whether we saw such a failure at\nall.\n\nUpdate test expectations.\n\nBug: 22080519\nChange-Id: I32be914819946233babaa4cb7343844d97b61ba5\n"
    },
    {
      "commit": "0b5c7d1994b76090afcc825e737f2b8c546da2f8",
      "tree": "057eddf8830b1991f02af3c3ce1b63dee90dd2ad",
      "parents": [
        "1dd3136d9f6b1c7d551897a2d96c8314e40f7324"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 11 11:17:49 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 25 16:58:08 2015 +0100"
      },
      "message": "ART: Implement try/catch blocks in Builder\n\nThis patch enables the GraphBuilder to generate blocks and edges which\nrepresent the exceptional control flow when try/catch blocks are\npresent in the code. Actual compilation is still delegated to Quick\nand Baseline ignores the additional code.\n\nTo represent the relationship between try and catch blocks, Builder\nsplits the edges which enter/exit a try block and links the newly\ncreated blocks to the corresponding exception handlers. This layout\nwill later enable the SsaBuilder to correctly infer the dominators of\nthe catch blocks and to produce the appropriate reverse post ordering.\nIt will not, however, allow for building the complete SSA form of the\ncatch blocks and consequently optimizing such blocks.\n\nTo this end, a new TryBoundary control-flow instruction is introduced.\nCodegen treats it the same as a Goto but it allows for additional\nsuccessors (the handlers).\n\nChange-Id: I415b985596d5bebb7b1bb358a46e08b7b04bb53a\n"
    },
    {
      "commit": "414000ec4d728b5c85f8c6dee4f867fecde59b01",
      "tree": "d4260308a2e6c5b2c14d64bd3c72b6df7061e614",
      "parents": [
        "bcc9d2b5f07afb6d7e83d71179c3069825a69d7c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 23 17:45:21 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 25 10:46:07 2015 +0100"
      },
      "message": "Hard-fail get-/put-object to a non-reference field.\n\nBug: 21886894\nChange-Id: Iec870c223ce97fd90dcce05ae80c002e2b24cb5d\n"
    },
    {
      "commit": "1dd3136d9f6b1c7d551897a2d96c8314e40f7324",
      "tree": "708013ef06cfb524f040b2b5c494f7f3cb84ac2c",
      "parents": [
        "a3c9b4671d4ea89fb7175d5688a13656429d3ab7",
        "f652d605753f1387e7797461b47116c5dcdf928d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 25 05:16:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 25 05:16:20 2015 +0000"
      },
      "message": "Merge \"[MIPS64] JNI Compiler: Sign-extend int function arguments\""
    },
    {
      "commit": "1f1d53ebfc7f955c28f8d5659b7811ad6cef8f19",
      "tree": "388d243d441c2fab1aed725e52f591d1ffd5c095",
      "parents": [
        "2f233b481d8423bf09e295fea9608b68f09a1862",
        "a32210c53d23b73ba769053b8c1b214a7468fe6e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 24 21:31:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 21:31:01 2015 +0000"
      },
      "message": "Merge \"ART: Correctly hard-fail method with undefined register\""
    },
    {
      "commit": "a32210c53d23b73ba769053b8c1b214a7468fe6e",
      "tree": "bf85ea55e38add66912d95771eaf8dd36e8741eb",
      "parents": [
        "0c955b174bf64707ee0ee03195ed56f9cec26fa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 24 10:26:13 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 24 14:20:48 2015 -0700"
      },
      "message": "ART: Correctly hard-fail method with undefined register\n\nIn case a return-object gets an undefined return value register\nand an unresolved return type, the \"undefined\" must take precedence\nand lead to a hard fail of the method.\n\nBug: 22045582\nChange-Id: Id5595a72331cd6272aa9ebc8ff3b9cea046294a2\n"
    },
    {
      "commit": "7d925a9dc0884097743fe122bf6d9c6c08259580",
      "tree": "c5554ec0d2343b31ab64c7168ee404cb5d3857e4",
      "parents": [
        "f46e9d76c1fb99f0bb3a9a68f5b421d29ab25f7a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jun 23 17:34:04 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 24 10:34:41 2015 -0700"
      },
      "message": "Adding optimizing compiler test case for String.\u003cinit\u003e.\n\nBug: 21991156\n\n(cherry-picked from commit e7c7d8ed18a4e1d2291af78944ff913319ec1f23)\n\nChange-Id: I282edaaa422f393629a09cb807da889422e33fb2\n"
    },
    {
      "commit": "fdc9af0ed76aa1a6efa05b122c9bcfdbb7e1e991",
      "tree": "8542c3d8c5dc0d643578b2e04fead5da5c5c63af",
      "parents": [
        "0c955b174bf64707ee0ee03195ed56f9cec26fa2",
        "4824c27988c8eeb302791624bb3ce1d557b0db6c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 16:14:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 16:14:31 2015 +0000"
      },
      "message": "Merge \"Use a flag from the verifier to know if we should compile.\""
    },
    {
      "commit": "4824c27988c8eeb302791624bb3ce1d557b0db6c",
      "tree": "c14f74d9cc4c93cab04bee5c723e420a87db9cb3",
      "parents": [
        "22c4edd865bfdea29e80a789cef70e8e51d2a3a5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:53:03 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 17:01:08 2015 +0100"
      },
      "message": "Use a flag from the verifier to know if we should compile.\n\nOnly used for the lack of bottom type in the aget-object case\nfor now. Could be used for more.\n\nbug:21865466\n\nChange-Id: I64c2c84dfa1c0d259631e65e5f44b94e4139e6a7\n"
    },
    {
      "commit": "0c955b174bf64707ee0ee03195ed56f9cec26fa2",
      "tree": "6c3ee67028e5f47a86bc20ee9323228a71033e57",
      "parents": [
        "22c4edd865bfdea29e80a789cef70e8e51d2a3a5",
        "8df886b9214802ad689316a1dedb00a6d102555c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:51:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 15:51:38 2015 +0000"
      },
      "message": "Merge \"BCE: don\u0027t assume a bounds check always gets a HArrayLength.\""
    },
    {
      "commit": "f652d605753f1387e7797461b47116c5dcdf928d",
      "tree": "a513109ea9fcbc390125b03d07e8d45500a31503",
      "parents": [
        "bb3dabaf804e0d0bd2bf34e69091b2f86fd4e78b"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Wed Jun 24 16:30:21 2015 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Wed Jun 24 16:34:07 2015 +0200"
      },
      "message": "[MIPS64] JNI Compiler: Sign-extend int function arguments\n\nMIPS n64 ABI differs from arm64. Arguments smaller than the 8B stack\nslot need to be sign-extended.\n\nUse combination (lw,sd), instead of (lw,sw) for 4B values.\n\nChange fixes software keyboard crash on mips64.\n\nChange-Id: I7574d37f6039e9e8c9e0047254be71d28d4c829a\n"
    },
    {
      "commit": "2b1bc487d3fa84e4bac16e85112e5e45682ac0ba",
      "tree": "3b9ebc758d870b126b76bf681ed913b773d67667",
      "parents": [
        "b809daaffdd42dc01457ae06ae83f2d7ebdb5e65",
        "a09ff9c11f07863ac57e6120a824f0d20dfaa284"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 14:10:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 14:10:58 2015 +0000"
      },
      "message": "Merge \"BCE: Narrow instead of unconditionnaly overwrite the range.\""
    },
    {
      "commit": "a09ff9c11f07863ac57e6120a824f0d20dfaa284",
      "tree": "d2ddb2da513544e2f64fba6c0e20dbdefe8cc8b2",
      "parents": [
        "582195dfcee32586b71b0ed00a973cfc7d7b8b57"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 10:38:27 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:07:50 2015 +0100"
      },
      "message": "BCE: Narrow instead of unconditionnaly overwrite the range.\n\nbug:21862741\nChange-Id: Ic1c2d6fa64255623f87af33a297c459cc9080d3c\n"
    },
    {
      "commit": "8df886b9214802ad689316a1dedb00a6d102555c",
      "tree": "19023e2d50ae464ecac105583384fbb4425d6c8e",
      "parents": [
        "1c7f2f10230baf7a549af5bfd16fd3f0fb73ba21"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 14:57:44 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:02:23 2015 +0100"
      },
      "message": "BCE: don\u0027t assume a bounds check always gets a HArrayLength.\n\nDeoptimizations may change it to a HPhi.\n\nbug:22056703\nChange-Id: I8995209438764dac496ed856782b147ba21f93e5\n"
    },
    {
      "commit": "b809daaffdd42dc01457ae06ae83f2d7ebdb5e65",
      "tree": "16c3d455297fbf79a1d084392aada209ac2e8704",
      "parents": [
        "1c7f2f10230baf7a549af5bfd16fd3f0fb73ba21",
        "fe659462e7d58bb2585b1bd029f9e08fd9dd32ae"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 13:56:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 13:56:49 2015 +0000"
      },
      "message": "Merge \"ART: Stop creating a fallthrough block for Goto\""
    },
    {
      "commit": "fe659462e7d58bb2585b1bd029f9e08fd9dd32ae",
      "tree": "987b9dd7f8278766d2b6a4a65397f2852f1d7ef4",
      "parents": [
        "582195dfcee32586b71b0ed00a973cfc7d7b8b57"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 14:23:56 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 14:25:48 2015 +0100"
      },
      "message": "ART: Stop creating a fallthrough block for Goto\n\nOptimizing\u0027s Builder used to create a basic block after a Goto under\nthe assumption that control flow can fall through.\n\nBug: 19084197\nChange-Id: Id85f31df98a4177466750d3cd0bc8bb74782ca2d\n"
    },
    {
      "commit": "9dda8f231bf6aaac3f0397f1fa0cd9d42eb393ed",
      "tree": "22b27b0e9926aaa6d9229bc831680ddc8d20fc92",
      "parents": [
        "d61d77d67a90f2e12ef89997e181f91f8858d7a8",
        "1efcc22cd1895c48adccbe49270d8e8583c2b12d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 13:01:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 13:01:56 2015 +0000"
      },
      "message": "Merge \"Fix another case of un-verified dead code.\""
    },
    {
      "commit": "1efcc22cd1895c48adccbe49270d8e8583c2b12d",
      "tree": "9ea6171a7670f8930e219f8a74875c4af19e5c9f",
      "parents": [
        "264e63bb899320a779264964aee6b868de25515e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 12:41:20 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 13:58:20 2015 +0100"
      },
      "message": "Fix another case of un-verified dead code.\n\nbug:22042796\nhttps://code.google.com/p/android/issues/detail?id\u003d178008\n\nChange-Id: Ie77ccf17ce2a69c86b2278f7920aa4ad39bf142b\n"
    },
    {
      "commit": "1f82ecc6a0c9f88d03d6d1a6d95eeb8707bd06c1",
      "tree": "50d71ef83f27827f0acfe6708acdb46e159f7506",
      "parents": [
        "a12f729e7165780e73857e6248af0df00ad6ce2b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 12:20:24 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 12:37:52 2015 +0100"
      },
      "message": "Recompute dominator tree after DCE.\n\nbug:22031382\nChange-Id: Ifebe169897b76872015e3ce0ed7d0a9662f80cef\n"
    },
    {
      "commit": "9714a6e8a2a2c09a1a7954bdd640b5730de411b2",
      "tree": "7a237d5be79bb84ec7503746970ff6ff26864af9",
      "parents": [
        "d4a02cfc59a449d216faa687cfdaa4252b4a433f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 23 12:09:55 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 23 16:28:34 2015 +0100"
      },
      "message": "Fix 496 test.\n\nMake sure the class requested by LoadedByMyClassLoader.bar\nis not loaded yet (\u0027Main\u0027 is already loaded), in order to\ndo a proper class loader lookup and not use a dex cache\nversion.\n\nChange-Id: I77215ae489e6d2c50b90684951bccd0bbf8c1a53\n"
    },
    {
      "commit": "b5061a821d96cb1af7ba24d21a4d2d59f7f16c7c",
      "tree": "c5fb196378d58110cffc32724845aea3f36e467b",
      "parents": [
        "1f22dbc10d9fdc96a6814e737718098e36a0ea3c",
        "a4f3581da73b83484a30ab499c4f8ad43b378dab"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 23 10:15:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 23 10:15:46 2015 +0000"
      },
      "message": "Merge \"Do not overwrite an input register in shift operations.\""
    },
    {
      "commit": "a4f3581da73b83484a30ab499c4f8ad43b378dab",
      "tree": "a4f11578fc3df63ed9d63e248f01d09d4ff18438",
      "parents": [
        "2d655f1ce89a714094a4f55ac75edcf9a34c7e24"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 23:12:45 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 23 11:02:44 2015 +0100"
      },
      "message": "Do not overwrite an input register in shift operations.\n\n\u0027second_reg\u0027 is an input register that can survive the instruction.\nInstead use the output register as a temporary result.\n\nbug:21667432\nChange-Id: I1a4577b0333c3fb184645023d5eae30555bbf65c\n"
    },
    {
      "commit": "1ed11b9ad5512cf464cb1686640df53201fa5297",
      "tree": "7466c110f74fb736a8f00e60a24ac841d1c0213a",
      "parents": [
        "5aa39bb7f93cf2e8f73d06980b588519825c0ebe"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Thu Jun 11 22:47:35 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Mon Jun 22 16:52:08 2015 -0700"
      },
      "message": "Restore DDMS recent allocation tracking\u0027s behavior\n\nMake the allocation tracker mark recently allocated objects as roots,\nso the allocation records are not swept. Because DDMS needs recent\nallocation tracking records even for dead objects. This should fix\nthe flaky failures for 098-ddmc test, but it cannot pass GC stress\ntest (OOM). Re-enabled 098-ddmc for other tests.\n\nThere should be an option to not mark them as roots, when user only\nneeds HPROF dump with traces but not DDMS\u0027s recent allocation tracking.\nProbably need to add a new JNI API function for this option.\n\nThere could be another way to keep a second list of recent allocation\nrecords and maintain a type cache for them, so not to make the objects\nroots. But it\u0027s more complex, and not sure which is better.\n\nAlso reduce memory usage for AllocRecordStackTrace objects, and change\ndefault stack depth to 16. Rename the property that controls the stack\ndepth to \"debug.allocTracker.maxStackDepth\" so developer can change it.\n\nBug:20037135\nChange-Id: Ic6b9ae87bdcda558be6f14ded8057e763439881c\n"
    },
    {
      "commit": "ec3a4e7cdc4f268b40d923227c125429f4ee4884",
      "tree": "d9bc031c772d062c2168c4fd7e8f5d8c4a64093c",
      "parents": [
        "11dc78c8d36b4a65f4d955bc4303cc8279f1151e",
        "2ee54e249ad21c74f29a161e248bebe7d22fddf1"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jun 22 21:15:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 22 21:15:02 2015 +0000"
      },
      "message": "Merge \"runtime: Partially implement box-lambda and unbox-lambda experimental opcodes\""
    },
    {
      "commit": "2ee54e249ad21c74f29a161e248bebe7d22fddf1",
      "tree": "125465dd7a6d23f83ecbf2d3454f21471868422c",
      "parents": [
        "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 10:05:11 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jun 22 14:13:30 2015 -0700"
      },
      "message": "runtime: Partially implement box-lambda and unbox-lambda experimental opcodes\n\nThese opcodes are not yet fully specified, and *will* change before they become shippable.\nDo not write production code against experimental opcodes.\n\n--\n\nImplement partial interpreter support for new dex instructions box/unbox-lambda.\n* box-lambda will take a closure and convert it into an Object\n* unbox-lambda will take an Object and convert it to a closure\n\n(Currently does not implement object identity or variable capture).\n\nAll new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them.\n\nChange-Id: I3c15ccf8a26ccecd1d35808a8c1b4149220f6019\n"
    },
    {
      "commit": "b783b408112d1797da646f576a40f94bcb5162f3",
      "tree": "c6046874de725b77a8744637f470ade1861fa7c7",
      "parents": [
        "a63d8f44740a8406adda6aaff7ed75ef923c085f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 11:06:43 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 14:39:02 2015 +0100"
      },
      "message": "Revert \"Revert \"Use IsAssignableFrom instead of IsSubclass for robustness.\"\"\n\nDon\u0027t use IsAssignableFrom, but check beforehand if the referrer is an\ninterface. Otherwise, we are being too aggressive on removing clinit\nchecks on interfaces (being a subclass doesn\u0027t imply the interface\nhas been initialized).\n\nbug:21870666\n\nThis reverts commit 463580ca5a1e75e27ad0207537ffc6252091326a.\n\nChange-Id: I2a13974d28477ee3e5224142cc260cbf46d19aa9\n"
    },
    {
      "commit": "ae370391057b88607b0e451fdea020b257684b91",
      "tree": "7946765faa7834863c4f9160ade9baffb6c50a7d",
      "parents": [
        "a948b1a0a917b9fd4bbd10a5ba4823594b78373d",
        "afd06414598e011693137ba044e38756609b2179"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 11:09:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 22 11:09:25 2015 +0000"
      },
      "message": "Merge \"Use compiling class instead of outer class for access checks.\""
    },
    {
      "commit": "eb7b7399dbdb5e471b8ae00a567bf4f19edd3907",
      "tree": "a0a488040883c14cc6cbec3186654137459d44ff",
      "parents": [
        "8ec0e20347e13592539a8c0786b1db1735149800"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Jun 19 14:47:01 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jun 22 11:57:36 2015 +0100"
      },
      "message": "Opt compiler: Add disassembly to the \u0027.cfg\u0027 output.\n\nThis is automatically added to the \u0027.cfg\u0027 output when using the usual\n`--dump-cfg` option.\n\nChange-Id: I864bfc3a8299c042e72e451cc7730ad8271e4deb\n"
    },
    {
      "commit": "8ec0e20347e13592539a8c0786b1db1735149800",
      "tree": "657f56663b10d4b79fbaf1f8d9003f7349fbf723",
      "parents": [
        "0f0be7261c68ebb701677b70d40e373accef4d09",
        "1e9ec053008fca7eb713815716c69375c37b399c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jun 22 10:16:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 22 10:16:45 2015 +0000"
      },
      "message": "Merge \"ART: Simplify (Not)Equal bool vs. int to true/false\""
    },
    {
      "commit": "1e9ec053008fca7eb713815716c69375c37b399c",
      "tree": "dc7306ce1153648bfc34c67b9475f7fbfbbd18f6",
      "parents": [
        "e85647ed00d07169193cc07ffa09e3b70ce38f59"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jun 22 10:26:45 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jun 22 11:07:57 2015 +0100"
      },
      "message": "ART: Simplify (Not)Equal bool vs. int to true/false\n\nOptimizations on the HGraph may produce comparisons of bool and ints.\nInstruction simplifier will simplify these only for 0/1 int constants.\nSince the range of bool is known, comparison against all other int\nconstants can always be determined statically.\n\nChange-Id: I502651b7a08edf71ee0b2589069f00def6aacf66\n"
    },
    {
      "commit": "0f0be7261c68ebb701677b70d40e373accef4d09",
      "tree": "6ea3fd862cfe430b3c1e2ebcdcdbd69936e0ff26",
      "parents": [
        "e85647ed00d07169193cc07ffa09e3b70ce38f59",
        "463580ca5a1e75e27ad0207537ffc6252091326a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 10:05:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 22 10:05:59 2015 +0000"
      },
      "message": "Merge \"Revert \"Use IsAssignableFrom instead of IsSubclass for robustness.\"\""
    },
    {
      "commit": "463580ca5a1e75e27ad0207537ffc6252091326a",
      "tree": "c0cb71ddac18ab10c38ffdc5e406ed5283932ca2",
      "parents": [
        "af268bbc4fbd0b9847acf1f7b79c038806118467"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 10:04:29 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 10:05:01 2015 +0000"
      },
      "message": "Revert \"Use IsAssignableFrom instead of IsSubclass for robustness.\"\n\nNot correct for Quick.\n\nBug:21870666\n\nThis reverts commit af268bbc4fbd0b9847acf1f7b79c038806118467.\n\nChange-Id: Id44849cc877a42495619fd71bfd2db75159b6868\n"
    },
    {
      "commit": "afd06414598e011693137ba044e38756609b2179",
      "tree": "fe75ed1f0b7e0d7af27872287e68822fa69aceee",
      "parents": [
        "97d207c3beba0a4ed6402e882c5909c5ac5bde6d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jun 20 22:44:47 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 09:45:33 2015 +0100"
      },
      "message": "Use compiling class instead of outer class for access checks.\n\nbug:21869678\nChange-Id: Ica6ecc759adc76950dcfe9d4d859dd593a742c62\n"
    },
    {
      "commit": "e85647ed00d07169193cc07ffa09e3b70ce38f59",
      "tree": "8050e51ee09ee93bf33f1446d6489032d20b53e6",
      "parents": [
        "8cf7cbf7854199cfd5001fa9503c78c3b15f0b58",
        "af268bbc4fbd0b9847acf1f7b79c038806118467"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 07:53:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 22 07:53:44 2015 +0000"
      },
      "message": "Merge \"Use IsAssignableFrom instead of IsSubclass for robustness.\""
    },
    {
      "commit": "8d82a0c2b2b12f259ccb357d3b1e699c68ad0400",
      "tree": "01bf7818062d6832a28d13fdeeccf27012bebb92",
      "parents": [
        "883ac209066d61404627a8820770755d60068a2b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jun 20 23:49:01 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jun 20 23:49:01 2015 +0100"
      },
      "message": "Fix wrong DCHECK in bounds check elimination.\n\nThe lower range of an array length instruction can\nbe changed by other instructions than HBoundsCheck,\nlike HNewArray.\n\nbug:21862741\nChange-Id: Idbe50ac114287ea6d852fb6fe9f9e2d440d18af5\n"
    },
    {
      "commit": "883ac209066d61404627a8820770755d60068a2b",
      "tree": "94496a0449471b70d954df1923b9e2904cf81847",
      "parents": [
        "1e73a95d74848020fab512a95a7f9a7ada72497b",
        "c9ede3839e1ae33d90ec2ad978ecccde1f9bcf8f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 20 05:56:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 20 05:56:48 2015 +0000"
      },
      "message": "Merge \"Move LD_USE_LOAD_BIAS to run-test-jar to reduce log verbosity.\""
    },
    {
      "commit": "c9ede3839e1ae33d90ec2ad978ecccde1f9bcf8f",
      "tree": "59794b80dfa3c08300cb9611d719a5fa8409ac53",
      "parents": [
        "f16474d08ed51a3ccfaa70360aefdf12ebc79da1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 20 06:03:53 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 20 06:43:49 2015 +0100"
      },
      "message": "Move LD_USE_LOAD_BIAS to run-test-jar to reduce log verbosity.\n\nLD_USE_LOAD_BIAS is needed so that we can use dlopen.\nWithout it, we will fallback to our own loader and\ndump all mmap for diagnostics which makes the tests verbose.\n\nChange-Id: Ib12e9834b3454ffd726642859550545826ce38bf\n"
    },
    {
      "commit": "dde9827f75d1e1e9cd4b7e6b54086aec54f29b5f",
      "tree": "06efa56d932dfdaab5ae27b020cdb7e292558dfe",
      "parents": [
        "e102f1937ca14df87594469430d2e6e0ebe0f357"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 17 16:04:26 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 19 11:03:50 2015 -0700"
      },
      "message": "Fix case where block has no predecessor for StringChange.\n\nRemoves part that checks for throwing half of instruction. It\u0027s no\nlonger necessary. Also adds regression test.\n\nBug: 21902684\n\n(cherry-picked from commit 3e91a44bc9063f7f69b5415e3cf162991f73283f)\n\nChange-Id: I8d7308ff227816fb475341c2b74ed84d5695a2f5\n"
    },
    {
      "commit": "af268bbc4fbd0b9847acf1f7b79c038806118467",
      "tree": "66c3c20a7776cd27368dfcccc307af4745dc6057",
      "parents": [
        "87a135e8699119c9ef99b0221acf481d7d6501d4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 18:35:41 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 18:42:17 2015 +0100"
      },
      "message": "Use IsAssignableFrom instead of IsSubclass for robustness.\n\nWe can get interface methods as referrer. Instead of crashing,\njust use IsAssignableFrom.\n\nbug:21870666\n\nChange-Id: I7978e36fb981d44611635fbaf3899138bae60672\n"
    },
    {
      "commit": "87a135e8699119c9ef99b0221acf481d7d6501d4",
      "tree": "c0cb71ddac18ab10c38ffdc5e406ed5283932ca2",
      "parents": [
        "ff3fd957020f0e5cf5cc279f4bbbca3545ce8745",
        "8b20f88b0a8d1b374dd5eaae289d19734c77b8f8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 15:52:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 19 15:52:24 2015 +0000"
      },
      "message": "Merge \"Be careful with predecessor/successor index.\""
    },
    {
      "commit": "8b20f88b0a8d1b374dd5eaae289d19734c77b8f8",
      "tree": "7bb855bee3c93bd2d4edec359480b4606606559d",
      "parents": [
        "d8d7b90ca57e8e3762951bb419b6f2645bb414c5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 16:17:05 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 16:46:00 2015 +0100"
      },
      "message": "Be careful with predecessor/successor index.\n\nWhen we simplify the CFG, we must preserve things that were already\nsimplified. For example, the index in the predecessor list or\nsuccessor list of a block must be preserved for ensuring the\nfirst block is a loop pre header.\n\nbug:21867463\n\nChange-Id: Ic3fcb3eb2c3fb109d8a57ee2a6b6d4d65fdb9410\n"
    },
    {
      "commit": "ff3fd957020f0e5cf5cc279f4bbbca3545ce8745",
      "tree": "80e976c515c5e21238658e287e0dc422d6bfc7c3",
      "parents": [
        "dbc0345e7a066726fda6dbfe47592963f4602c56",
        "f11c420c448baffac6a70ac0884d481ab347e257"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 19 15:44:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 19 15:44:23 2015 +0000"
      },
      "message": "Merge \"Quick: Fix optimizations for empty if blocks.\""
    },
    {
      "commit": "4dda3376b71209fae07f5c3c8ac3eb4b54207aa8",
      "tree": "0d96a327d1b3a7e09eff178a66c0b5fb946cfc85",
      "parents": [
        "71af6f7aab7491665fe2d6beb9af4c251a99ad56"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Jun 01 18:31:49 2015 -0700"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 19 15:43:58 2015 +0100"
      },
      "message": "MIPS: Initial version of optimizing compiler for MIPS64R6.\n\nBug: 21555893\nChange-Id: I874dc356eee6ab061a32f8f3df5f8ac3a4ab7dcf\nSigned-off-by: Alexey Frunze \u003cAlexey.Frunze@imgtec.com\u003e\nSigned-off-by: Douglas Leung \u003cdouglas.leung@imgtec.com\u003e\n"
    },
    {
      "commit": "f11c420c448baffac6a70ac0884d481ab347e257",
      "tree": "dc7c7c03810c21351d2411e5c01bc0be8299ddd6",
      "parents": [
        "d8d7b90ca57e8e3762951bb419b6f2645bb414c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 19 12:58:22 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 19 15:01:42 2015 +0100"
      },
      "message": "Quick: Fix optimizations for empty if blocks.\n\nIf a block ending with if-eqz or if-nez has the same \"taken\"\nand \"fallthrough\", we cannot assume that the value has been\nchecked against zero in one of the succesors. This affects\nthe null check elimination pass as well as GVN. Refactor all\nthose checks to a single function in BasicBlock and check\nthat the \"taken\" and \"falthrough\" are different when needed.\n\nBug: 21614284\nChange-Id: I8c6ac23e96cdaf5984786a555ebbd28110f095cb\n"
    },
    {
      "commit": "97d207c3beba0a4ed6402e882c5909c5ac5bde6d",
      "tree": "de4cd78e9eb789c14fc248755a5e905d5a277b3d",
      "parents": [
        "d8d7b90ca57e8e3762951bb419b6f2645bb414c5",
        "30451743493bc2f589e96d68ab98f557461f97f9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 13:02:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 19 13:02:11 2015 +0000"
      },
      "message": "Merge \"Use compiling class instead of referrer for access checks.\""
    },
    {
      "commit": "30451743493bc2f589e96d68ab98f557461f97f9",
      "tree": "7d663eaeba566457b54691c03f377fbfdd609cae",
      "parents": [
        "f12ffdb549f1947125e3f56694cb479a619f02bf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 13:32:41 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 13:59:38 2015 +0100"
      },
      "message": "Use compiling class instead of referrer for access checks.\n\nbug:21869670\nChange-Id: Ief329247e90202835e27fa38803e02dd2e2ae8ca\n"
    },
    {
      "commit": "d8d7b90ca57e8e3762951bb419b6f2645bb414c5",
      "tree": "2bf677ead5fcb040745c247b410a1390110841ca",
      "parents": [
        "e43875749fbc674fbad23ba11af64f25ab2add0d",
        "3c4ab80c102ff1bfc0e74d4abddbf5454bf4008d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 11:03:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 19 11:03:45 2015 +0000"
      },
      "message": "Merge \"Do not expect 0 or 1 only when comparing a boolean.\""
    },
    {
      "commit": "e43875749fbc674fbad23ba11af64f25ab2add0d",
      "tree": "8cd2ff04d87f76d87fa9c21c43fab04c9abe9c51",
      "parents": [
        "be59b85251f085359d40bb89b1aa7e037c8ac0ef",
        "66389fbeb41c981648bb2e1e7e2f43089f095591"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 11:02:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 19 11:02:17 2015 +0000"
      },
      "message": "Merge \"Verifier: check an aput, even if we know it will fail.\""
    },
    {
      "commit": "3c4ab80c102ff1bfc0e74d4abddbf5454bf4008d",
      "tree": "88065b979f93f748b72aeb9efc9dea2c5ddcd5d4",
      "parents": [
        "be59b85251f085359d40bb89b1aa7e037c8ac0ef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 11:42:07 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 11:59:27 2015 +0100"
      },
      "message": "Do not expect 0 or 1 only when comparing a boolean.\n\nbug:21866529\nChange-Id: I81ffba609a357010bd86073eb979024fc668ed20\n"
    },
    {
      "commit": "be59b85251f085359d40bb89b1aa7e037c8ac0ef",
      "tree": "4690a379bd53c55233ed539866084738d6fb45cc",
      "parents": [
        "511b7cb2c2c1f276875ff2762bbc97337d824a63",
        "f7714e6c4a02594acb5ac6efb683b277066e758f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 10:07:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 19 10:07:47 2015 +0000"
      },
      "message": "Merge \"Make Main public to pass tests on all configurations.\""
    },
    {
      "commit": "f7714e6c4a02594acb5ac6efb683b277066e758f",
      "tree": "4cfe6a7c5f24f80329d0249f56a6e7227572df07",
      "parents": [
        "3c4fb2d1836a81823677191ad91203779427b610"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 10:45:44 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 10:47:31 2015 +0100"
      },
      "message": "Make Main public to pass tests on all configurations.\n\nThere\u0027s a mismatch between compile-time and runtime access checks.\nThis doens\u0027t fix it but keep us green.\n\nbug:21923303\n\nChange-Id: I1d4a80557f9d8ca9d8bef18a8c23230ed46d4a4c\n"
    },
    {
      "commit": "66389fbeb41c981648bb2e1e7e2f43089f095591",
      "tree": "f6de19a8521f2e33d5c75771867bcf569e6d2ef4",
      "parents": [
        "822c00d0fe3b70d1f1fe5bac03713674d45f8173"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 10:35:42 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 10:37:59 2015 +0100"
      },
      "message": "Verifier: check an aput, even if we know it will fail.\n\nbug:21867457\nChange-Id: I01e333d858995d0e1e083a50cf8d460a86381f2c\n"
    },
    {
      "commit": "ea9ef4dccf8af7ef9865b373ea6da00f007cf641",
      "tree": "b095eccb630dd0a051ba292af1c1b13a111b1236",
      "parents": [
        "f12ffdb549f1947125e3f56694cb479a619f02bf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 10:05:50 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 19 10:11:58 2015 +0100"
      },
      "message": "Use the right bug number. Spotted by vmarko.\n\nbug:21863767\n\nChange-Id: I203072188c0c97b2d6709e1a59555b45fc5a0ab2\n"
    },
    {
      "commit": "2371c7233e0dbb6f770f8089837654c1cb99c9f6",
      "tree": "4c62b78f19f2b21de641d3927602b870a2d5e4a9",
      "parents": [
        "46d8702167d679dbf87ba9fa8fd0f1b6bbb3ed62"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 15:38:59 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 15:40:09 2015 -0700"
      },
      "message": "test: Fix lambda test incorrectly globbing together compiler arguments\n\nThis also fixes test failures when running imageless tests.\n\nChange-Id: I9b0deb836907060160e31c434cf0710507f9665a\n"
    },
    {
      "commit": "46d8702167d679dbf87ba9fa8fd0f1b6bbb3ed62",
      "tree": "6ebe7d6e313475d7b969b29f5a4754af6f1bd90c",
      "parents": [
        "247e97746016b49183b52f4c386bedf7cd53e590",
        "9346ff0cfad6344d0bf4eaa69362dbe1987ac054"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 18 20:01:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 20:01:24 2015 +0000"
      },
      "message": "Merge \"Fix moving GC bugs in proxy stub for X86/X86_64\""
    },
    {
      "commit": "247e97746016b49183b52f4c386bedf7cd53e590",
      "tree": "758c0a7c60c2099fb6a8cf2d4ea68ffc8c9459ac",
      "parents": [
        "2b696ab55e817b583d7b3b3ffd39e48c38db6989",
        "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 19:56:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 19:56:58 2015 +0000"
      },
      "message": "Merge \"interpreter: Add experimental lambda opcodes for invoke/create-lambda\""
    },
    {
      "commit": "9346ff0cfad6344d0bf4eaa69362dbe1987ac054",
      "tree": "b54b7a4ea4025173f89640a753d09384bb7f914a",
      "parents": [
        "f16474d08ed51a3ccfaa70360aefdf12ebc79da1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 18 10:17:26 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 18 11:51:25 2015 -0700"
      },
      "message": "Fix moving GC bugs in proxy stub for X86/X86_64\n\nNeeded to restore the refs.\n\nBug: 21907554\nChange-Id: I562906dff07dcaa78dfb39646ba9ab35a5f56c6c\n"
    },
    {
      "commit": "2d1a0a408fd148f7b2a2d670e6942ec3d920f875",
      "tree": "1bb97d1ae32fbf5ce91fbfc71491b6c1eca6c69e",
      "parents": [
        "3d266a96750db6969f24bcdb8025c06745e5a449"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 18 17:40:00 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 18 19:15:13 2015 +0100"
      },
      "message": "Quick: Don\u0027t expect move-exception in every catch block.\n\nThe dalvik bytecode doesn\u0027t require a move-exception in\na catch handler that ignores the exception.\n\nBug: 21873167\nChange-Id: I3b49218a8c7ff021141387bd929bb2ae798f8509\n"
    },
    {
      "commit": "3d266a96750db6969f24bcdb8025c06745e5a449",
      "tree": "9fad9f8661424a537b588a82e2551a25e2386df0",
      "parents": [
        "822c00d0fe3b70d1f1fe5bac03713674d45f8173",
        "69505f86a1a653bf86c1f2b423b3e0605137d5d1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 17:28:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 17:28:16 2015 +0000"
      },
      "message": "Merge \"Don\u0027t check the return type in the builder.\""
    },
    {
      "commit": "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f",
      "tree": "63bb3bbed85b0add42c7fdc714cd611424d8af2e",
      "parents": [
        "c449e8b79aaaf156ce055524c41474cc1200ed5a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jun 10 15:55:30 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 10:22:27 2015 -0700"
      },
      "message": "interpreter: Add experimental lambda opcodes for invoke/create-lambda\n\nThese opcodes are not yet fully specified, and *will* change before they become shippable.\nDo not write production code against experimental opcodes.\n\n--\n\nImplement partial interpreter support for new dex instructions invoke/create-lambda, and a\nnew opcode format 25x.\n\n* Does not verify, in fact verification will soft fail when we see those opcodes.\n* Compilers will punt to interpreter since they don\u0027t support new opcodes.\n* As there is no way to capture/liberate variables yet, the \"closure\" is just\n  an ArtMethod for the time being.\n\nAll new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them.\n\nFor example:\n  dalvikvm ... -Xexperimental-lambdas ...\n  dex2oat --runtime-arg -Xexperimental-lambdas ...\n\nChange-Id: I6c996ca32a9b54ec45ec21d7a959b84dfb8a24eb\n"
    },
    {
      "commit": "69505f86a1a653bf86c1f2b423b3e0605137d5d1",
      "tree": "5c10c1175fbed15f18ad6502b24bc09f2c437d43",
      "parents": [
        "46ff9b6100e66306233534e26c16d3c6738070a9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 18:04:12 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 18:10:09 2015 +0100"
      },
      "message": "Don\u0027t check the return type in the builder.\n\nThe verifier will not complain about dead code. For the compiler,\nit is benign.\n\nbug:21863767\n\nChange-Id: I6ef7be233d1cd69dddcc4499e4e4fad54753099f\n"
    },
    {
      "commit": "822c00d0fe3b70d1f1fe5bac03713674d45f8173",
      "tree": "f44fb5642da30dc334c6ec3b264e59f53c1739c5",
      "parents": [
        "01b6ec8c982400fe415533296ab0b563971c239d",
        "b2bdfce7f805b00668a2521b1c939a0aafb2be49"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 15:52:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 15:52:31 2015 +0000"
      },
      "message": "Merge \"Run a simplification pass before code generation.\""
    },
    {
      "commit": "b2bdfce7f805b00668a2521b1c939a0aafb2be49",
      "tree": "0c8aba9022fe62a176254b8459b414e9703f890f",
      "parents": [
        "d4de42f6fd0f00c5b3ca01fed6a26d11e617c3b9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 15:46:47 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 15:53:02 2015 +0100"
      },
      "message": "Run a simplification pass before code generation.\n\nThe code generators assume things that only the instruction\nsimplier ensures. So it has to be run last in case previous\noptimiziations broke those assumptions.\n\nbug:21865464\n\nChange-Id: I1f84016017bf691c2a34982e202a505b269f609a\n"
    },
    {
      "commit": "46ff9b6100e66306233534e26c16d3c6738070a9",
      "tree": "d873cf286172ae95c87bc760cb9bdaae62a7b73c",
      "parents": [
        "d4de42f6fd0f00c5b3ca01fed6a26d11e617c3b9",
        "07785bb98dc8bbe192970e0f4c2cafd338a8dc68"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 18 14:19:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 14:19:23 2015 +0000"
      },
      "message": "Merge \"ART: Fix reporting initialized classes by CompilerDriver.\""
    },
    {
      "commit": "d4de42f6fd0f00c5b3ca01fed6a26d11e617c3b9",
      "tree": "a5145587aa7b8d8d1f843a07955cbd0354b301d6",
      "parents": [
        "3b574aadd67c5ce261a7383c38044af4cf993393",
        "015c7e63604c038e866d7af3850c557403cddc8b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 18 11:54:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 11:54:57 2015 +0000"
      },
      "message": "Merge \"ART: Remove old DCHECK that trips Baseline\""
    },
    {
      "commit": "3b574aadd67c5ce261a7383c38044af4cf993393",
      "tree": "30c5fc3eff661c71458883fd2ad2a4c50f09cea2",
      "parents": [
        "7b295db7583a721db1e1d430be78a6ff34f4805d",
        "2e33525bd4eb892246b4c244c6d4ebf6c6d07501"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 11:53:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 11:53:49 2015 +0000"
      },
      "message": "Merge \"Bailout from compilation if an invoke is malformed.\""
    },
    {
      "commit": "015c7e63604c038e866d7af3850c557403cddc8b",
      "tree": "b1ce605a0be44fcb18a9b48eff7e8b88e673d710",
      "parents": [
        "3c4fb2d1836a81823677191ad91203779427b610"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 18 12:40:01 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 18 12:49:12 2015 +0100"
      },
      "message": "ART: Remove old DCHECK that trips Baseline\n\nCodegen verified that the entry block always falls through to the next\nblock. While this is the case with Optimizing, it doesn\u0027t hold for\nBaseline but it doesn\u0027t need to since codegen handles it fine.\n\nBug:21913514\nChange-Id: I751ef227e6cf103af3e7fc35fca4b01c663385a1\n"
    },
    {
      "commit": "2e33525bd4eb892246b4c244c6d4ebf6c6d07501",
      "tree": "ce1eb1ea3fe8310d4320ea71579fb12f74dd916e",
      "parents": [
        "3c4fb2d1836a81823677191ad91203779427b610"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 11:11:27 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 12:47:06 2015 +0100"
      },
      "message": "Bailout from compilation if an invoke is malformed.\n\nBecause the verifier does not check trivially dead instructions,\nthe compilers must prepare for bogus instructions. This change\nfixes the case the arguments for an invoke do not match the\nformal parameters.\n\nbug:21865459\n\nChange-Id: Ie9fa9dbaedaad0350a52391252e18c045056454d\n"
    },
    {
      "commit": "7b295db7583a721db1e1d430be78a6ff34f4805d",
      "tree": "d30773c05cd6d9e3861206cb84f73d32ba49cc71",
      "parents": [
        "3c4fb2d1836a81823677191ad91203779427b610",
        "18e6873c469b48aaed22148451523479eece98e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 18 11:46:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 11:46:31 2015 +0000"
      },
      "message": "Merge \"Fix a bug in optimizing when the null constant has been DCE.\""
    },
    {
      "commit": "07785bb98dc8bbe192970e0f4c2cafd338a8dc68",
      "tree": "d12a20d7790fffc8648d7da6a7944595516c1d89",
      "parents": [
        "6ebf70ec61eff097e1bdddb1b887316389e34dde"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 15 18:52:54 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 18 12:44:51 2015 +0100"
      },
      "message": "ART: Fix reporting initialized classes by CompilerDriver.\n\nFix a bug where the CompilerDriver was erroneously reporting\nclasses as initialized during AOT compilation when they were\nnot guaranteed to be initialized at runtime.\n\nThis fix prevents the Quick compiler from inlining calls to\nstatic methods in classes that are not guaranteed to be\ninitialized, so that the runtime performs the initialization\nrequired for correctness.\n\nBug: 21847756\nChange-Id: I6fee5ef9c05c2e5190ab8a9fe61365d5119011c5\n"
    },
    {
      "commit": "18e6873c469b48aaed22148451523479eece98e3",
      "tree": "6df7efad2f7777bb0a4dbcbbe719750393eac531",
      "parents": [
        "edb83c606e034d76bed1331f34cdc435df47bb95"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 23:09:05 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 23:11:39 2015 +0100"
      },
      "message": "Fix a bug in optimizing when the null constant has been DCE.\n\nIf it has been DCE, we should create a new one, instead of\nusing the old one.\n\nAlso move the first DCE to a place where it could actually\nbe useful.\n\nbug:21870788\n\nChange-Id: I28fc52ae481ef92cba45fc1b5abcf07c995f524c\n"
    },
    {
      "commit": "2ef645ba50544b879a82ea30e606f18c9af98917",
      "tree": "25d18676c87c9738624793f2983bc0e87faecf6e",
      "parents": [
        "43d154bed3ad0bba766211af1f2637500d30a93f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 17 18:20:52 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 17 18:25:03 2015 +0100"
      },
      "message": "ART: Allow PackedSwitch instructions with zero targets\n\nOptimizing and the interpreter wrongly assumed that a PackedSwitch\nalways has at least one target. This patch removes the corresponding\nDCHECKs and adds a regression test case.\n\nThis is a resubmission of CL I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e\n\nBug: 21863783\nChange-Id: I04e6e124bdd16591ba27c79490e6ce183c36b691\n"
    },
    {
      "commit": "15875b0d36fce555534bb840b13b39d61fd108f2",
      "tree": "53de01908990954cdf0f46168cb437d5c12ebf2e",
      "parents": [
        "241f9c41924e33e0c3bab9a7c4306397458749ca"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 17 16:59:53 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 17 16:59:53 2015 +0000"
      },
      "message": "Revert \"ART: Allow PackedSwitch instructions with zero targets\"\n\nThis fixed Optimizing but revealed the same issue in the interpreter.\n\nThis reverts commit 241f9c41924e33e0c3bab9a7c4306397458749ca.\n\nChange-Id: Iad5a28b24f2c21d3575cf8ecc8b7c8fbf98d1132\n"
    },
    {
      "commit": "241f9c41924e33e0c3bab9a7c4306397458749ca",
      "tree": "bdffe0a82c85051607a5ecd61056262836eac212",
      "parents": [
        "edb83c606e034d76bed1331f34cdc435df47bb95"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 17 15:38:35 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 17 17:18:32 2015 +0100"
      },
      "message": "ART: Allow PackedSwitch instructions with zero targets\n\nOptimizing\u0027s Builder wrongly assumed that a PackedSwitch always has\nat least one target. This patch removes the corresponding DCHECK and\nadds a regression test case.\n\nBug:21863783\nChange-Id: I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e\n"
    },
    {
      "commit": "7cb499b1af1575c854860b0d6a103c4a2a59a569",
      "tree": "53de01908990954cdf0f46168cb437d5c12ebf2e",
      "parents": [
        "4b9a93e7774d6650f6f3b637d018109d6fe97546"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 11:35:11 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 11:35:11 2015 +0100"
      },
      "message": "Fix bug in optimizing around instanceof.\n\nWe were too aggressive when removing instanceof. We should\nnot remove it when there is one of the two static types that\nis an interface.\n\nChange-Id: I1fd80915b99b094f7b4393e7adb2b160201b30d5\n"
    },
    {
      "commit": "4b9a93e7774d6650f6f3b637d018109d6fe97546",
      "tree": "0327e8fb6842dad40418639d67a71b518b5bfc8e",
      "parents": [
        "445e35028bc5cb6d921dc60e579b7b40ceb16c71",
        "3cde6227678cf62e06bca264671d1e957456ac3d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 09:44:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 17 09:44:20 2015 +0000"
      },
      "message": "Merge \"Remove bogus DCHECK in BCE.\""
    },
    {
      "commit": "3cde6227678cf62e06bca264671d1e957456ac3d",
      "tree": "3ed515ca629a83c926980e42de1240e412c6d832",
      "parents": [
        "088bd0d28acb70302d20f6e19a9db7f0536c09ee"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 10:17:49 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 10:21:13 2015 +0100"
      },
      "message": "Remove bogus DCHECK in BCE.\n\nWhen creating a phi for the array length when we add HDeoptimization\nnodes, we might update accesses in inner loops to use that phi instead\nof the array length. The BCE phase was not expecting this case.\n\nChange-Id: I639f4ea6f5889726142041a42736183f162c7437\n"
    },
    {
      "commit": "233cf0e8584225f1f7d21d4999cda18c23469d59",
      "tree": "b84e18b6d9d0b8c0c2c2eece78d2086eb6fbf1c5",
      "parents": [
        "088bd0d28acb70302d20f6e19a9db7f0536c09ee",
        "ca1476ff428edc29d258a5e693d894b0f7a0f7b7"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 17 08:56:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 17 08:56:12 2015 +0000"
      },
      "message": "Merge \"Exercise sun.misc.Unsafe.getObject.\""
    },
    {
      "commit": "a70e5b92a629ca4028d10c9320f9d25f2832a1ab",
      "tree": "7dc384b52eb819d877e069722281cb3860c70b2b",
      "parents": [
        "b3e3000a59a3b0d765840bd1a939213a2b400763"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 17 03:52:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 17 08:08:13 2015 +0000"
      },
      "message": "CFI test: kill the other process in native code.\n\nKilling it from Java does not seem reliable and the CFI\ntest tends to leave alive processes on the system.\nThis might be particularly troubling on the build bot.\n\nChange-Id: I888b61037ab77fb4ff929762ea40af53f7a6ed6e\n"
    },
    {
      "commit": "86b35f97ce1848608e70eb1f0ea9f73d25b80d09",
      "tree": "a3e620c8fe65761db65736fc33a517217cc226ba",
      "parents": [
        "7e7e69a0421e30f5e6ffa498db25dfd0c13d500e",
        "1baabf0726eb285284e0c908ccba9f209b399fae"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 16 23:20:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 16 23:20:09 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use dlopen to load oat files.\"\"\""
    },
    {
      "commit": "1baabf0726eb285284e0c908ccba9f209b399fae",
      "tree": "0dc531c157f72a1413079f765e7437280673f93b",
      "parents": [
        "7a46b7e235a7c35191cd9ddbab6ca4db0e535da5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 16 17:12:34 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 16 17:12:34 2015 +0000"
      },
      "message": "Revert \"Revert \"Use dlopen to load oat files.\"\"\n\nThis reverts commit 7a46b7e235a7c35191cd9ddbab6ca4db0e535da5.\n\nChange-Id: I33439d0e3d7a7e63591a8c7b356e716dcb62bca1\n"
    }
  ],
  "next": "ca1476ff428edc29d258a5e693d894b0f7a0f7b7"
}
