)]}'
{
  "log": [
    {
      "commit": "20e9cef1461a332072591246a89998f536a742b7",
      "tree": "ef0c27ab0f4c57f252e7b38bbde9417c65c0f0b6",
      "parents": [
        "9b26463fcddf5bc26e5550be5abd39d8c0f0b4b5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 27 10:38:14 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 27 10:39:32 2016 +0100"
      },
      "message": "Disable stack assertions in non-compiled code.\n\nbug:28769520\n\nChange-Id: Ib9e8a1ae1e7c8a4a9e49173cec80466c40b9f472\n"
    },
    {
      "commit": "f711f2cf3c28dfe865e36f17419a16f06a0ebb5a",
      "tree": "3657d68b2a2fb67f4919cb97ca279cf9310224e9",
      "parents": [
        "bbfa42aa4c4b5cbc2ed2d8bdea6ff76da615a8aa"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon May 23 12:29:39 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 26 13:24:54 2016 -0700"
      },
      "message": "Partial fragment deoptimization\n\nWe used to do either single frame deoptimization, or full fragment\ndeoptimization which deoptimizes all the frames in a fragment.\nThis change allows some methods to be not deoptimizeable, likely due\nto some kind of optimization. So we need another deoptimization mode\nthat unwinds partial fragment. Deoptimizations are now generalized into\neither full or partial fragment. A full fragment deoptimization will\ndeopt all frames in the fragment, and then returns from the invoke stub\nto enter interpreter. A partial fragment deoptimization will deopt a\nsingle frame, or all frames up to the method that\u0027s not deoptimizeable,\nand then jumps to the interpreter bridge.\n\nCurrently code not deoptimizeable is the code in boot image since the\ncode may not be compiled with debuggable flag.\n\nBug: 28769520\nChange-Id: I875c694791cc8ebd5121abcd92ce7b0db95aca38\n"
    },
    {
      "commit": "0950abe82f86a9943feb7719876ec291c6581037",
      "tree": "825692a547fccead5f2c95718904fcab5c8b4876",
      "parents": [
        "09da219c802df3bc362a71582e73fd42e98e7b89"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 25 14:52:37 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 25 14:52:37 2016 +0100"
      },
      "message": "Remove bogus DCHECK.\n\nbug:28771056\nChange-Id: I43a1d99623adc2393d7004927ef1651654ef137c\n"
    },
    {
      "commit": "68b6380096581019c5a0067bafb879f4481cf3dd",
      "tree": "265887ab3bb4814e5254510d523337e215e6cc20",
      "parents": [
        "7ebb7aed1c10a83a24a66475f886e77645bf29c4",
        "53b52005ddae649e6f1cf475de7c259bc6885e6d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 25 11:39:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 25 11:39:28 2016 +0000"
      },
      "message": "Merge \"Apply String.equals() optimizations on arm, arm64 and x86-64.\""
    },
    {
      "commit": "53b52005ddae649e6f1cf475de7c259bc6885e6d",
      "tree": "6d0a2618fda946fa26e3cdb27825f03834e3529b",
      "parents": [
        "db9fcb30402a2726564905c206fa23ee86e146c3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 24 19:30:45 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 25 11:48:53 2016 +0100"
      },
      "message": "Apply String.equals() optimizations on arm, arm64 and x86-64.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/174192\n\nChange-Id: Ie71197df22548d6eb0ca773de6f19fcbb975f065\n"
    },
    {
      "commit": "d53208c8e7ca4b2e2d4070d8e67ec1ee078cee74",
      "tree": "5f34fa08fac3a48fcde3aeef7dd7f007ac4e4619",
      "parents": [
        "c445f6f8165ec384f7e7e35c03b8cd889b1e146b",
        "2576be290ffb38eab719526b1c64a1edaab41030"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 24 20:38:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 24 20:38:52 2016 +0000"
      },
      "message": "Merge \"Increase test timeouts\""
    },
    {
      "commit": "80fd43eead361bd3b61d646e5c8efcdd0720304d",
      "tree": "44433e54f130ee17dcd18f0ecfca934fa6584b1d",
      "parents": [
        "da97c4eee83d89c577ecc2ba98b2e45a2191b1f4",
        "c2bc26513ea7c5e2dd9f3b102fb23fd207e4ce63"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 24 17:54:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 24 17:54:11 2016 +0000"
      },
      "message": "Merge \"Fix bug in verifier: soft fail was hiding hard fail.\""
    },
    {
      "commit": "2576be290ffb38eab719526b1c64a1edaab41030",
      "tree": "04f3668da41cf3d85c99fd7d7cbaceca10698ef7",
      "parents": [
        "2b650b7a170b2c474de177458057a190ff548862"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 24 10:24:53 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 24 10:45:10 2016 -0700"
      },
      "message": "Increase test timeouts\n\nIncreased for strace to 30 min. Increased other places by 100% to\nhelp prevent random timeouts on overloaded machines.\n\nChange-Id: I9dd4def34513062723ae6744eabc2bacc68b4e0f\n"
    },
    {
      "commit": "c2bc26513ea7c5e2dd9f3b102fb23fd207e4ce63",
      "tree": "cabc7c8d7fc27ea901d1d80548d7daaec3b2efd4",
      "parents": [
        "1e5dda549c11d02aff51f132760dd693e351ce85"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon May 23 14:58:49 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 24 09:48:21 2016 -0700"
      },
      "message": "Fix bug in verifier: soft fail was hiding hard fail.\n\nRationale:\nDexfuzzing found a situation where a soft fail (modifying\na final field) was hiding a hard fail (type error on that\nfield), which caused a crash in the compiler later on.\nAlso added a crash-before/pass-after regression test,\nso we don\u0027t add the return by accident later.\n\nBUG\u003d28908555\n\nChange-Id: I0cdc400be22a2d9eb00db8c8c6b25a85fbdac993\n"
    },
    {
      "commit": "f6d1e0f6196cb3669dfb4eed8ceef679b0588c0f",
      "tree": "fa9ade37af2b3c5736aa3431e393be348f21532c",
      "parents": [
        "84f00fe695a7a78551d7f2e8d7bc2bed1ce86a67"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 23 15:32:42 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 24 17:33:07 2016 +0100"
      },
      "message": "Compile JNI stubs for verify-profile and interpret-only.\n\nThis is the intended behavior to have a good JNI transition\nperformance.\n\nBug: 28902384\n\n(cherry picked from commit 8c185bf0c6f18a5349bc87a7e3751ba06d90f461)\n\nChange-Id: I52767909b916ada3c619206c8838b85bff5ac316\n"
    },
    {
      "commit": "ffedec510c07cf0f77d0cce51940838f2e630514",
      "tree": "7b21bd86b08f2750bab8d4fd9f23a721ec4eba84",
      "parents": [
        "247250f28028a5b2260ba2eb0a7f555a183b996a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 19 10:48:40 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri May 20 11:36:18 2016 -0700"
      },
      "message": "Revert \"Revert \"Move rewritten StringFactory call results into dex registers for deopt\"\"\n\nPotential gc points can make the result value stale. We now set the result value\nto null proactively once it\u0027s moved to shadow frame registers. IsStringInit()\nis written in a way that does string comparison instead of requiring method\nresolution so that it doesn\u0027t have a gc point. Also we don\u0027t cache the callee\nmethod during frame unwinding since the method may be rewritten already.\n\nBug: 28555675\n\nChange-Id: Ic51511a4a0fc84a852d8d907f91e7835f49ac478\n"
    },
    {
      "commit": "4020ecd536601213b3262b2a6a8bb922d594b994",
      "tree": "fed5aaa53f80f368872bfcc963047ada5b12ab0b",
      "parents": [
        "2f710e0b26049557ad52fdbfde49999e4f36d6c2",
        "f09d532a5eeda4b8c629c3d7aa207ac63c4a9070"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu May 19 17:25:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 19 17:25:26 2016 +0000"
      },
      "message": "Merge \"MIPS32: java.lang.Math.round(float)\""
    },
    {
      "commit": "695e2c4aa1e61aa006412c83f15c4a659111a08a",
      "tree": "37bd8865195a0eeff1b237dbbd94db2dc7f31f70",
      "parents": [
        "8ca33bf04060fadd5b35fa93fa56547c62fe52e7"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 19 00:15:12 2016 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 19 00:15:12 2016 +0000"
      },
      "message": "Revert \"Move rewritten StringFactory call results into dex registers for deopt\"\n\nThis reverts commit 8ca33bf04060fadd5b35fa93fa56547c62fe52e7.\n\n597-deopt-new-string is failing.\n\nBug: 28846692\nBug: 28555675\nChange-Id: Ibfb59ec36e089c987ea64e4af4ca3709e536412a\n"
    },
    {
      "commit": "989ab3b3034d16a57f5a893d73ed804169d8eced",
      "tree": "bda9791bb3b9917a34bb0f6d6de560ab967ffea4",
      "parents": [
        "a741785dddab1f4b79253514287860d11c5800c6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 18 15:52:54 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 18 15:52:54 2016 +0100"
      },
      "message": "Catch classes inheriting from themselves in the class linker.\n\n(cherry picked from commit 90328ac545f65759a8e4fb217a75332906795518)\n\nBug: 28685551\nBug: 27682580\nBug: 28830038\n\nChange-Id: If568013bf3c82c1df9b282522712d9af5ca5945d\n"
    },
    {
      "commit": "8ca33bf04060fadd5b35fa93fa56547c62fe52e7",
      "tree": "8f41ac9cad78e9cae1902fbd2f2e9636a9d5bd31",
      "parents": [
        "8ccc728d9275ad9bf839507a4979774f26ee7392"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon May 16 11:01:49 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue May 17 17:03:58 2016 -0700"
      },
      "message": "Move rewritten StringFactory call results into dex registers for deopt\n\nBug: 28555675\nChange-Id: I9236df283f2e83ca5dcde01f73dc0522d745cd59\n"
    },
    {
      "commit": "f0192c86a58b2f43378c9a2113007538dd38ddbf",
      "tree": "df3fef8e9ccd30152819e893e6212ce45b5f51a5",
      "parents": [
        "783d02e527107e91880f12bddf41afd313919132"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 28 20:39:50 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 17 11:08:41 2016 -0700"
      },
      "message": "Support to pass \u003cuses-library\u003e option through to dex2oat.\n\nThis change takes an app\u0027s shared libraries specified by \u003cuses-library\u003e\nand passes it through to dex2oat to be used during compilation.\n\nPart of a multi-project change.\n\nBug: 26880306\n\n(cherry-picked from commit 26e8a2f150cd7f7195a10650ab8a5b6fa5014bc8)\n\nChange-Id: I72a352abdfc37eacd8bedfa6c218e3809ca8e39c\n"
    },
    {
      "commit": "97bad1bb1e3f030acc4d264c1b1a78388402b11a",
      "tree": "812ae1fd1e831b1285060dddac6f2edd3cda5f54",
      "parents": [
        "31e61f1d0aeb2c85ebddc7cd0cc3d7f1aea4014e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 16 14:58:01 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 16 18:04:54 2016 -0700"
      },
      "message": "Visit IMT of all classes during image writing\n\nWe still need to visit the IMT for classes that does not have any\nmethods. It is required to visit the IMT of every class to assign\nimage offsets for the conflict table methods.\n\nAdded regression test.\n\nBug: 28707801\n\n(cherry picked from commit 54689b7d5568dcf01ff42d69435d0af7ae4e4d8e)\n\nChange-Id: I4806685c32df7f2707f6018e21a489bfd48af6f7\n"
    },
    {
      "commit": "8494943e2e4ca98f2087dbacfae1dedefc853a4b",
      "tree": "c931bfa11f66a8a68bcfb8b7945b23e10c1d7d68",
      "parents": [
        "b68b354db33957cd20ca444cdb49b957781f70c9"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri May 13 14:46:28 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 16 10:16:22 2016 -0700"
      },
      "message": "Make quick frames of proxy methods visited if they\u0027re constructors.\n\nAlso adds a test case for getting annotations during moving GC.\n\nBug: 28510922\n\n(cherry-picked from commit 12c08f03f65acc1c308491fc7ab6c57f682e2f24)\n\nChange-Id: I0d5cc9d5bb8bbff6bd6b108f7486a63402a15993\n"
    },
    {
      "commit": "ab880f4371e1ae5239c1b887911bd88f0c216a3d",
      "tree": "2e13093b2255369257844865db39c56816dfb054",
      "parents": [
        "2273f678ea3a55ec0f6b3b8c29c1e5100d6fc846"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 12 16:24:36 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon May 16 15:56:23 2016 +0100"
      },
      "message": "Typos and stylistic fixes.\n\nChange-Id: I1c88af9bd1d2cac6c803c8c61088c569a3847e01\n"
    },
    {
      "commit": "d7c2fdc939bb7efb3e7204d62e54c6a3f7d77f9b",
      "tree": "692eb754d2cf5fdb81809529f02a50f2e4747a62",
      "parents": [
        "b2b55596e605bef315b615cb89e4515f360548f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 10 14:35:34 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 12 08:58:12 2016 +0100"
      },
      "message": "Fix another case of live_in at irreducible loop entry.\n\nGVN was implicitly extending the liveness of an instruction across\nan irreducible loop.\n\nFix this problem by clearing the value set at loop entries that contain\nan irreducible loop.\n\nbug:28252896\n\n(cherry picked from commit 77ce6430af2709432b22344ed656edd8ec80581b)\n\nChange-Id: Ie0121e83b2dfe47bcd184b90a69c0194d13fce54\n"
    },
    {
      "commit": "435a668ad16ce13293074b2281a8c5b5f0e845a9",
      "tree": "5b18e38d59211bcf51a5f90c84c7c9b176730b73",
      "parents": [
        "dfbeb1452bbc59aa0e7c7d1101db7e80943d66df",
        "10bc5a4e07ac51cb1e6ba1af7ec0cec1f6821c58"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed May 11 16:14:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 11 16:14:01 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Make run-test default to optimizing compiler.\"\"\""
    },
    {
      "commit": "10bc5a4e07ac51cb1e6ba1af7ec0cec1f6821c58",
      "tree": "5e608d945f6a2a0b9637505a9fc4fcc3e48b6f17",
      "parents": [
        "36a94ab70d4ae1ce239022a5841abf3ffe1196e3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 10 10:01:22 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 10 10:41:46 2016 -0700"
      },
      "message": "Revert \"Revert \"Make run-test default to optimizing compiler.\"\"\n\nThis reverts commit 4650c939e8590b2d421241023e359260b1b59bf1.\n\nChange-Id: I3814c6a579d3d88222b53d7ae63a2d4b03b620a7\n"
    },
    {
      "commit": "e16259f9dfef36728ac50d6ec7b4444fa8ecb772",
      "tree": "c672a02c9df08eb21f62ff83002e31e3bf3c0ba2",
      "parents": [
        "36a94ab70d4ae1ce239022a5841abf3ffe1196e3",
        "52c9da0925c67265bf353f5a66b7cb5541a88046"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 10 17:17:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 10 17:17:46 2016 +0000"
      },
      "message": "Merge \"Fix issue with Constructor proxies.\""
    },
    {
      "commit": "52c9da0925c67265bf353f5a66b7cb5541a88046",
      "tree": "4c6b36d9ee344c7d7b4953d6cd380f8ca53494d8",
      "parents": [
        "266f2d4d51a18a703b2d4fbfedc63eb1baaf3ffb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 09 15:31:18 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 10 09:23:08 2016 -0700"
      },
      "message": "Fix issue with Constructor proxies.\n\nBug: 28659889\nChange-Id: I4307916c79e7b56608c3ff5c9bbe83e175254f28\n"
    },
    {
      "commit": "36a94ab70d4ae1ce239022a5841abf3ffe1196e3",
      "tree": "c7f7cf4fffc082280d194117af52ebc6620f36be",
      "parents": [
        "450a6796beba9aced022e1a917390f9b910e6cb7",
        "dce016eab87302f02b0bd903dd2cd86ae512df2d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 10 14:30:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 10 14:30:06 2016 +0000"
      },
      "message": "Merge \"Intrinsify String.length() and String.isEmpty() as HIR.\""
    },
    {
      "commit": "d8cd1c83f9fe7637494f7a65807289041d2fb7d3",
      "tree": "a5e99fc922172da3374a86673285610fd3f8d1be",
      "parents": [
        "24950e1e9a94cbae5f0c9adbb5260c2afa4b20b0",
        "4650c939e8590b2d421241023e359260b1b59bf1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 10 09:13:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 10 09:13:30 2016 +0000"
      },
      "message": "Merge \"Revert \"Make run-test default to optimizing compiler.\"\""
    },
    {
      "commit": "4650c939e8590b2d421241023e359260b1b59bf1",
      "tree": "a8761c36f7ec3a9f67a940b3af0cceefbc425fb6",
      "parents": [
        "f494663ab5295fadf7209a9a1bead05be5039858"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 10 09:13:13 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 10 09:13:13 2016 +0000"
      },
      "message": "Revert \"Make run-test default to optimizing compiler.\"\n\n454 and 457 fail with interpreter access checks.\n\nThis reverts commit f494663ab5295fadf7209a9a1bead05be5039858.\n\nChange-Id: Iaff6036e83e1745f4ed00b8d6814abd5759c6854\n"
    },
    {
      "commit": "a8d06f0a77fcacada77ec70cbcc19751b886fc44",
      "tree": "c4d831111af475aa7110deeb747821dbd5d55ffd",
      "parents": [
        "cdd55c2cf61dd77f8b8c797e2bd53750f88ffff2",
        "f663e341c550d1aa6f8f587d0ae0dbf7d254ff55"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 10 08:13:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 10 08:13:28 2016 +0000"
      },
      "message": "Merge \"Workaround invokesuper underspecified behavior.\""
    },
    {
      "commit": "cdd55c2cf61dd77f8b8c797e2bd53750f88ffff2",
      "tree": "83f5648387db0d4142efc1742bbe1dfbeb9f9970",
      "parents": [
        "50107e014b7d392ff024eeb4e00469b1e37d79f0",
        "65fef30952bb92acec7ed36f7f431d93f7ce88b3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 10 08:12:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 10 08:12:41 2016 +0000"
      },
      "message": "Merge \"Relax the DCHECK in load store elimination.\""
    },
    {
      "commit": "bc90d0f783d31a2ba388958ed3c2aed2111d556e",
      "tree": "0ab8cfe86afa42824da4c14270248654aa82759d",
      "parents": [
        "266f2d4d51a18a703b2d4fbfedc63eb1baaf3ffb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 09 16:21:09 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 09 16:21:11 2016 -0700"
      },
      "message": "Make --jvm work again\n\nA previous commit broke --jvm by making it be passed dex2oat args. Fix\nthis bug.\n\nChange-Id: I22864ef876c7b3c174af029fe2f1a76cf7825fa7\n"
    },
    {
      "commit": "dce016eab87302f02b0bd903dd2cd86ae512df2d",
      "tree": "3af3c0e6b9d845e611b560484882e6b438ef439a",
      "parents": [
        "a246510965fc57ec51d1b202649304535adfe9f3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 28 13:10:02 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 09 20:40:32 2016 +0100"
      },
      "message": "Intrinsify String.length() and String.isEmpty() as HIR.\n\nUse HArrayLength for String.length() in anticipation of\nchanging the String.charAt() to HBoundsCheck+HArrayGet to\nallow the existing BCE to seamlessly work for strings.\nUse HArrayLength+HEqual for String.isEmpty().\n\nWe previously relied on inlining but we now want to apply\nthe new intrinsics even when we do not inline, i.e. when\ncompiling debuggable (as is currently the case for boot\nimage) or when we hit inlining limits, i.e. depth, size,\nor the number of accumulated dex registers.\n\nBug: 28330359\nChange-Id: Iab9d2f6d2967bdd930a72eb461f27efe8f37c103\n"
    },
    {
      "commit": "46a9114333d1be384cf56ab4a485beae43f982ac",
      "tree": "8c73429cfbca38428b35ac7f1bda79fd843809c5",
      "parents": [
        "e0b2e604b968bc202910db5b8a619a93910bcc3f",
        "f494663ab5295fadf7209a9a1bead05be5039858"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 09 16:36:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 09 16:36:25 2016 +0000"
      },
      "message": "Merge \"Make run-test default to optimizing compiler.\""
    },
    {
      "commit": "3cbdfc6b0863a7419ec42f458c41c41bf2d155b1",
      "tree": "5ee4ae2ca0fcb8163e975d61f8f243f8b46073c8",
      "parents": [
        "5bcbdd59c066f46642f6ddf5833d58ce4170c1e0",
        "90d48f28af67ab44d755363bf92d57a1b3e72a29"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 06 19:44:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 06 19:44:17 2016 +0000"
      },
      "message": "Merge \"Fix libart tests on target\""
    },
    {
      "commit": "90d48f28af67ab44d755363bf92d57a1b3e72a29",
      "tree": "214e71dcf2860836231f8f0e5a5806bf7f4d602b",
      "parents": [
        "9b4c6f431b8e08317dd91961064faf32e8b76acd"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 05 17:24:28 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 06 11:48:02 2016 -0700"
      },
      "message": "Fix libart tests on target\n\n1. Add libart/d.so to the list of additional public libraries\n2. Fix java.library.path to include /system/lib(64)? for tests\n   run by dalvikvm\n\nBug: http://b/28449304\nChange-Id: I11f2dc22e445389160d6f7ed6743bb9664cf3745\n"
    },
    {
      "commit": "5bcbdd59c066f46642f6ddf5833d58ce4170c1e0",
      "tree": "aa50b637f192f96e9a3afe562e03ebfaf13e8ccc",
      "parents": [
        "af3ec0a7d3428d02492dd41ecf19bc33e6807828",
        "ace7a000a433ce4ecf94f30adea39c01a76fa936"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 06 14:46:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 06 14:46:47 2016 +0000"
      },
      "message": "Merge \"Optimizing: LoadString may not have any side effects.\""
    },
    {
      "commit": "af3ec0a7d3428d02492dd41ecf19bc33e6807828",
      "tree": "49704c702114598e6e78203a33a38d90dd7b4fb4",
      "parents": [
        "9858f04577d2ca7400660dba9b3abe8b33bab96c",
        "3f4a522cc39f5c651e7c718196e989bc81d8c6ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 06 13:45:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 06 13:45:50 2016 +0000"
      },
      "message": "Merge \"ART: Fix dominance for irreducible loops\""
    },
    {
      "commit": "f663e341c550d1aa6f8f587d0ae0dbf7d254ff55",
      "tree": "cc919e9fb060ff73bbe5bdee8fdac6fc926a52ae",
      "parents": [
        "4e377e58066ccef401276d7d0985521e5e63d1fb"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 04 17:28:59 2016 -0700"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 06 13:53:29 2016 +0100"
      },
      "message": "Workaround invokesuper underspecified behavior.\n\nThe verifier allows invokesuper on a class unrelated\nto the referring class. However, the runtime uses the vtable of\nthe super class of the referring class to lookup the ArtMethod.\nSince the receiver has no relation to the referring class, this lead\nto either jumping to a wrong method, or \"luckily\" throw a\nNoSuchMethodError if the vtable index is out of bounds of the super\nclass of the referring class.\n\nThis changes the runtime behavior to always throw NoSuchMethodError\nwhen hitting such invokesuper.\n\nAlso, we make the verifier consistent with the runtime by treating\nsuch calls unresolved.\n\nbug\u003d27627004\n\nChange-Id: I68486501a9625f91679078c5a980b39974ddbf1c\n"
    },
    {
      "commit": "3f4a522cc39f5c651e7c718196e989bc81d8c6ef",
      "tree": "37820ae22c0e96817f6278ebe71f4588f26eab15",
      "parents": [
        "bc177b3f3461f1db013d5511344ebe52270e136f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 06 12:46:21 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 06 13:10:16 2016 +0100"
      },
      "message": "ART: Fix dominance for irreducible loops\n\nComputation of dominance was broken in the presence of irreducible\nloops because the algorithm assumed that back edges are always\ndominated by their respective headers and a fix-point iteration is\ntherefore unnecessary.\n\nThis is not true for irreducible loops, forcing us to revisit their\nloop headers and all dependent blocks. This patch adds a fix-point\niteration if a back edge not dominated by its header is found.\n\nBug: 28611485\nChange-Id: If84044e49d5b9c682949648033d2861628d7fe05\n"
    },
    {
      "commit": "130b7cf114a9af84e97f3de10f56ab626313c744",
      "tree": "7fd04be85f0a6d4421742b1c570d200f1c57d178",
      "parents": [
        "7555dae26276213f0c3bd07b3daf7d398ba48405"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 06 10:08:36 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 06 10:08:36 2016 +0100"
      },
      "message": "Fix test with libarttest.so.\n\nWe used to always skip it as kIsDebugBuild was true for\nlibarttest.so and libarttestd.so.\n\nChange-Id: I1a5efbba8c2f9d63af824ed727154794aaea8d29\n"
    },
    {
      "commit": "48b2b3e57e0510f549e9dc5c5a61f50eec697cf5",
      "tree": "acceae3657d83adf4cb7c76cd1433d63a95884f0",
      "parents": [
        "043f83226ea0cd5a2840e805249e92a75380de10"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 05 15:31:12 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 05 17:07:48 2016 -0700"
      },
      "message": "Fix libarttest to be non debug\n\nPreviously both libarttest and libarttestd had debug enabled. This\nmade it hard to know which one was loaded (couldn\u0027t look at\nkIsDebugBuild).\n\nFixes test 136 with ART_TEST_RUN_TEST_NDEBUG configuration.\n\nBug: 28406866\n\nChange-Id: I92983f71374b211f96f5b346fec326ea8543f876\n"
    },
    {
      "commit": "f494663ab5295fadf7209a9a1bead05be5039858",
      "tree": "e236bc23e9743c22877072dfaded37ad6457d326",
      "parents": [
        "ee0882732bcd12b0ee6deb7c311b31d071e784e2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu May 05 15:45:29 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu May 05 15:45:29 2016 -0700"
      },
      "message": "Make run-test default to optimizing compiler.\n\nQuick compiler is dead.\n\nChange-Id: I88d83a9935a81a38ca2a02bd3168c35b81a791da\n"
    },
    {
      "commit": "b0fca360a081eff1a44c6f055c628e2dba44c003",
      "tree": "1f6225b10d8089160856a61dd45a7427da99339f",
      "parents": [
        "ee0882732bcd12b0ee6deb7c311b31d071e784e2",
        "504a69081f63818ca332ddaf54e8198448554538"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 05 20:52:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 05 20:52:30 2016 +0000"
      },
      "message": "Merge \"Fix assert failure in interpreter after deoptimization.\""
    },
    {
      "commit": "504a69081f63818ca332ddaf54e8198448554538",
      "tree": "337b397a2167c91ada31f33f9613b9ec6479c4a3",
      "parents": [
        "b652da7aae5515c58c776a6975305d895f81ac19"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Apr 28 16:23:01 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 05 11:44:27 2016 -0700"
      },
      "message": "Fix assert failure in interpreter after deoptimization.\n\nThere is code that does\n  new String(chararr, 0, chararr_count);\nwhich under debuggable turns into a call into pNewEmptyString() plus a\ncall into pNewStringFromChars_CII().\nEven though we currently don\u0027t patch return pc in a runtime method,\ncalling into pNewEmptyString() is special since it\u0027s hacked such\nthat it\u0027s acting as if the caller calls into the java method\nStringFactory.newEmptyString() directly. So deoptimization can now\nhappen at the NewEmptyString site and the assert is triggered since\nit\u0027s a new instance instead of an invoke instruction.\n\nThe fix relaxes the assert to allow the special case.\n\nBug: 28555675\nChange-Id: Idbb159b5aa450df2344cd93ae74fef5f55bdc534\n"
    },
    {
      "commit": "06fd2cff238cbdd8f6ceb4a85273c5a7fd0db023",
      "tree": "a8761c36f7ec3a9f67a940b3af0cceefbc425fb6",
      "parents": [
        "727d6dff8fce26f7f3a252177cc730fbfcbc52ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 05 11:09:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 05 11:36:36 2016 -0700"
      },
      "message": "Change test 136 to use dlopen\n\ndlopen self to prevent the native libary being closed from\nDestroyJavaVM. We need this since it is the library currently\nexecuting code.\n\nBug: 28406866\n\nChange-Id: I8fab78bc7c27f5c03a6670d20d5cf8e44295d5e2\n"
    },
    {
      "commit": "b652da7aae5515c58c776a6975305d895f81ac19",
      "tree": "ea9484dc8b8142b70eec7b0612148e648582ee2c",
      "parents": [
        "a246510965fc57ec51d1b202649304535adfe9f3",
        "f4b3487ee77e3c2e3d5372ae9e857cd3429bb808"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu May 05 15:26:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 05 15:26:21 2016 +0000"
      },
      "message": "Merge \"Remove -XOatFileManagerCompilerFilter argument.\""
    },
    {
      "commit": "65fef30952bb92acec7ed36f7f431d93f7ce88b3",
      "tree": "31e893a43b6753e225f58bae4e75055faeaf2daf",
      "parents": [
        "43aa3318f9ada1d2f3b99aa6a659685a99fc9c45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 04 14:00:12 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 05 10:45:30 2016 +0100"
      },
      "message": "Relax the DCHECK in load store elimination.\n\nThe DCHECK was too strong, as we could come from a field or array\nget on null, instead of null directly.\n\nbug:27831001\n\nChange-Id: I24b6a0b3c92467aff81aaeaa22402743e9014d97\n"
    },
    {
      "commit": "a210689f1a0e7839f5b3589fd57583e6ae20ded0",
      "tree": "9b07a9a999c0fff883163b06e4eb0a92ede376fd",
      "parents": [
        "f5d1fbe2893803b22d57121ce80a7f44f484a438"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed May 04 14:00:55 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed May 04 14:40:41 2016 -0700"
      },
      "message": "Exploit NE/EQ tests on array length in BCE.\n\nBUG\u003d28585870\n\nChange-Id: I382ffaf80dfb861f66eb0bfb6508e7d946a07e14\n"
    },
    {
      "commit": "b8154f8f36e2811b2524929a7ef31cb4edab44b8",
      "tree": "b93d3da8e227888173f6605e17099a76ba56374e",
      "parents": [
        "43aa3318f9ada1d2f3b99aa6a659685a99fc9c45",
        "05b3fa02ed8ef62841a92cd96526ba3a06bf1f63"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 04 12:59:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 04 12:59:08 2016 +0000"
      },
      "message": "Merge \"Do not look at dead phis during SsaRedundantPhiElimination.\""
    },
    {
      "commit": "05b3fa02ed8ef62841a92cd96526ba3a06bf1f63",
      "tree": "0107006b45bdf69894a053507d600d826881fb9a",
      "parents": [
        "a6513729ae2ad0d2f9dd21d77ea6cf9ed9fa6eef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 04 12:05:56 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 04 12:47:41 2016 +0100"
      },
      "message": "Do not look at dead phis during SsaRedundantPhiElimination.\n\nOtherwise, we may replace a dead loop phi with its incoming input.\nThis broke an assumption during liveness analysis in the presence\nof irreducible loops.\n\nbug:28256552\nChange-Id: Ia9e82026555e6b7f6a2cd37df4b765cd3684079d\n"
    },
    {
      "commit": "157855b4ac5e1d002f97ea23f8a16585a25d04b3",
      "tree": "02a234d02d8a100dc11da42f173c7858b784d799",
      "parents": [
        "40d3061ea1a2a07a1aede662318257aa0fa5fe4b",
        "2e960a075cd30a1fdfc31597c4a64f1fca026efd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 04 00:27:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 04 00:27:01 2016 +0000"
      },
      "message": "Merge \"Make test for app-image loading.\""
    },
    {
      "commit": "2e960a075cd30a1fdfc31597c4a64f1fca026efd",
      "tree": "024993a4d06305565fc0f49ed700a9f381ed4eaa",
      "parents": [
        "a6513729ae2ad0d2f9dd21d77ea6cf9ed9fa6eef"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 03 15:01:06 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 03 15:40:54 2016 -0700"
      },
      "message": "Make test for app-image loading.\n\nBug: 26882072\n\nChange-Id: I40a45e7944aec3a5ee28ef3d47e9881f61a7c9e6\n"
    },
    {
      "commit": "f4b3487ee77e3c2e3d5372ae9e857cd3429bb808",
      "tree": "b48ab16dec4e8d1deab6556788f9a5fe2b62f77a",
      "parents": [
        "a6513729ae2ad0d2f9dd21d77ea6cf9ed9fa6eef"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Apr 13 11:03:46 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 03 12:22:39 2016 -0700"
      },
      "message": "Remove -XOatFileManagerCompilerFilter argument.\n\nInstead use the value of \u0027-Xcompiler-option --compiler-filter\u003dXXX\u0027 for\nthe target compiler filter to use to determine if the runtime should\ntry to invoke dex2oat when oat files are loaded.\n\nBug: 27641809\nChange-Id: I1856e0e37df91835b81105567c70d8a285a88f62\n"
    },
    {
      "commit": "d6c2bfaff8850a9a02ee9b75cf8c96eadd8d5c69",
      "tree": "841c06ba9677b83b9a15198201402ad802320403",
      "parents": [
        "a6513729ae2ad0d2f9dd21d77ea6cf9ed9fa6eef"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 02 18:51:34 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue May 03 10:24:31 2016 -0700"
      },
      "message": "Fix vtable corruption.\n\nDue to failing to keep track of superclass implementations of\ninterface methods we could end up in situations where methods were\nplaced onto a class\u0027s vtable multiple times. This could cause virtual\nand interface dispatches on subclasses to fail by causing corruption\nof the subclass\u0027s vtable and iftable.\n\nBug: 28333278\n\nChange-Id: I37d9740ca912daf37cdf9ff82697bbc5db46177a\n"
    },
    {
      "commit": "0f35e0b26d8c7738ca7b284357afa9dafb659d47",
      "tree": "b84167d8b952ab19287f9d87edbdb4272149d28f",
      "parents": [
        "fa288cff8689f882aa99696bc1c9b2e826730736",
        "1be7cbd532a41981019f1e89c8ecf404bc9af809"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 29 13:57:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 29 13:57:19 2016 +0000"
      },
      "message": "Merge \"Remove invoke after inlining.\""
    },
    {
      "commit": "1be7cbd532a41981019f1e89c8ecf404bc9af809",
      "tree": "f027ec1b2835a47abf64faff263b79772e186b35",
      "parents": [
        "945dc321df3e69bb59c834f6399d34bbfd624e5c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 29 13:56:01 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 29 13:56:01 2016 +0100"
      },
      "message": "Remove invoke after inlining.\n\nbug:28460178\nChange-Id: I0ce00667aab1e02bab9e04a4cea7ee5d278f6a71\n"
    },
    {
      "commit": "de604a2d6e69f5a7de10ca4876c758658879124d",
      "tree": "62922ade4d527f71281bcfebda940d97d06c828e",
      "parents": [
        "945dc321df3e69bb59c834f6399d34bbfd624e5c",
        "f39f0097c5cb6f9413f5df0558ffb24bc3221d41"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 29 11:47:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 29 11:47:50 2016 +0000"
      },
      "message": "Merge changes I96464d76,Id5e77316,Icb42a081,I68afc181,I82094e46\n\n* changes:\n  Fix how the ProfileSaver thread attaches to the runtime.\n  Fix -Xint and -Xusejit interaction\n  Add command line option for jit invoke transition weight\n  Split profile recording from jit compilation\n  Allow the framework to register sensistive threads to the runtime\n"
    },
    {
      "commit": "79b2d3f0993681025bc0f310853d6bb560af5ebe",
      "tree": "1701a9c6f86d7752b0d61693c874bbe4a8f6ced5",
      "parents": [
        "e645c93d031f30395c62fae2f3476c7db62b5345",
        "3a79b6389df39928823a7a8e862c2f647a1cd164"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 29 00:44:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 29 00:44:08 2016 +0000"
      },
      "message": "Merge \"Supply librarySearchPath to PathClassLoader\""
    },
    {
      "commit": "3a79b6389df39928823a7a8e862c2f647a1cd164",
      "tree": "24d9bad289ff14556a5ab32ae519716fc40b5abb",
      "parents": [
        "85e47976a483844177eb486d6e501fa070fbe6e2"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 28 16:29:22 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Apr 28 16:29:22 2016 -0700"
      },
      "message": "Supply librarySearchPath to PathClassLoader\n\nPathClassLoader needs librarySearchPath in order to\nbe able to find native libraries.\n\nThe java.library.path property is no longer implicitly\napplied to all basedexclassloaders, and needs to be\npassed explicitly.\n\nBug: http://b/28449304\nChange-Id: Id5b4273553d783c0f7a964f72ecb2c99f3aeaf6f\n"
    },
    {
      "commit": "91288d8f03b9aab28b61a4a76e552ad7e0c15c8b",
      "tree": "f4d7265c8e96375905da749f858672b37580e596",
      "parents": [
        "d23d7d145c86975acbcc75505b8a323337066ac0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 09:44:54 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 15:18:24 2016 -0700"
      },
      "message": "Revert \"Revert \"Write conflict tables in image\"\"\n\nAdded test.\n\nBug: 27906566\n\nThis reverts commit 8e2478d23e89a7022c93ddc608dcbba7b29b91e6.\n\n(cherry picked from commit cdca476bf3394ce9d97a369e84e701b427009318)\n\nChange-Id: Ia94fc7acc7ae3879921c4e8d0a02b156037ac286\n"
    },
    {
      "commit": "ffc87076dda9878cb2cc098149bae441d38b9268",
      "tree": "e587208d6a8e62532792add3e1ace6b4e6d73e0f",
      "parents": [
        "97cbc9206e9adc473a90650ebdb5d620f517ff04"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 20 14:22:09 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 28 16:15:04 2016 +0100"
      },
      "message": "Split profile recording from jit compilation\n\nWe still use ProfileInfo objects to record profile information. That\ngives us the flexibility to add the inline caches in the future and the\nconvenience of the already implemented GC.\n\nIf UseJIT is false and SaveProfilingInfo true, we will only record the\nProfileInfo and never launch compilation tasks.\n\nBug: 27916886\n\n(cherry picked from commit e5de54cfab5f14ba0b8ff25d8d60901c7021943f)\n\nChange-Id: I68afc181d71447895fb12346c1806e99bcab1de2\n"
    },
    {
      "commit": "da9394689b5362f699c05ba26072659d47827fee",
      "tree": "c0c524e80a9fa5c7a9b382c2a246620a33b665b6",
      "parents": [
        "387dd9b53fe01f53b0deb40311f24af019766b10",
        "07b35109c64fc449a14723b259df17806fd0b16e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 27 15:41:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 27 15:41:58 2016 +0000"
      },
      "message": "Merge \"ART: Disable back edge uses for irreducible loops\""
    },
    {
      "commit": "07b35109c64fc449a14723b259df17806fd0b16e",
      "tree": "8731b077f3df183f1f3f577ecc37df433dd01e32",
      "parents": [
        "4e377e58066ccef401276d7d0985521e5e63d1fb"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 27 15:33:22 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 27 15:33:22 2016 +0100"
      },
      "message": "ART: Disable back edge uses for irreducible loops\n\nAlgorithm adding back edge uses in liveness analysis makes assumptions\nabout the linear order which are not met in the presence of irreducible\nloops. Disable back edges uses when the graph contains them.\n\nThis partially reverts CL I63632e8819ea3644d5c6fdfea00b66128bf22c24.\n\nBug: 28252747\nBug: 27615840\nBug: 27624868\nChange-Id: I7ecdde0ed8a8831f7513b8e43cf7d84599b830a7\n"
    },
    {
      "commit": "a4a640e7efb706c2b2730a7917d44b5617f83cb6",
      "tree": "63ae12554801e568ca41997f21e87f2698776bf9",
      "parents": [
        "e30ee0a74f7ab723e81591e8a9c6c3be7260c08b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 27 13:43:48 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 27 13:43:48 2016 +0100"
      },
      "message": "Fix test to return expected value.\n\nbug:28335959\nChange-Id: Id4b3fc7b3ea5705530283daffedef17ab0699ae9\n"
    },
    {
      "commit": "e30ee0a74f7ab723e81591e8a9c6c3be7260c08b",
      "tree": "5ec317b236ddf293f3604ea2ad2ffee44de09880",
      "parents": [
        "4e377e58066ccef401276d7d0985521e5e63d1fb",
        "93a18c5d4160f632ecdb92af099574e9c7098c49"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 27 11:31:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 27 11:31:23 2016 +0000"
      },
      "message": "Merge \"Forbid HDeoptimize instructions in OSR methods.\""
    },
    {
      "commit": "93a18c5d4160f632ecdb92af099574e9c7098c49",
      "tree": "328e28e160fe894fb9487a625cbbfc4ab94c093c",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 22 13:16:14 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 27 10:18:48 2016 +0100"
      },
      "message": "Forbid HDeoptimize instructions in OSR methods.\n\nOtherwise dominated instructions will assume something that\nisn\u0027t necessarily correct if coming from the interpreter.\n\nbug:28335959\nbug:28249238\nbug:28348878\nbug:28080135\n\nChange-Id: I842bd1c6a919aff48cf6048d2ea51cf2d40f3c1d\n"
    },
    {
      "commit": "f09d532a5eeda4b8c629c3d7aa207ac63c4a9070",
      "tree": "7194c02dfbe75a1336a08b499ab94b0b590ff519",
      "parents": [
        "4e377e58066ccef401276d7d0985521e5e63d1fb"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Apr 22 12:06:34 2016 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Apr 26 16:51:59 2016 -0700"
      },
      "message": "MIPS32: java.lang.Math.round(float)\n\nBUG\u003d26327751\n\nChange-Id: I9ec0d600bbbbcf9e1ed07fbfc0ce9187a2ae5727\n"
    },
    {
      "commit": "4e377e58066ccef401276d7d0985521e5e63d1fb",
      "tree": "71a2fabb10fbb85118c650ab795223e3b9fad824",
      "parents": [
        "5e67a6a26e12d79e7ab788d4496240ac2fc2be73",
        "5bc80b9994bde67184adc1a168538c2a9b99fc8b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 26 17:52:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 26 17:52:48 2016 +0000"
      },
      "message": "Merge \"Work around Jack optimizations in arm64 shifter operand test.\""
    },
    {
      "commit": "5bc80b9994bde67184adc1a168538c2a9b99fc8b",
      "tree": "77c0f94907fa58459ca4e1b035ef1483a93799a9",
      "parents": [
        "e6d96771a2c9934c8ba6efe1689a1d1b5c54a6f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 26 17:55:55 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 26 17:57:14 2016 +0100"
      },
      "message": "Work around Jack optimizations in arm64 shifter operand test.\n\nAnd also in the ror test.\n\nBug: 28392114\nChange-Id: I66afb371de57d7742385d5e02daa2797cb8d1b22\n"
    },
    {
      "commit": "f417ff44d1eb111854d7a213f106912b3dd9e3d4",
      "tree": "be69b00348b8d296a5bae7dd2c17d9f9a2b8ba0e",
      "parents": [
        "dbea8b4eacb62b357bce1bc299c8442788b288a1"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 25 12:51:37 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 25 16:21:34 2016 -0700"
      },
      "message": "Test component type for errors too.\nWith regression test.\n\nRationale:\nMoved erroneous check in convenience method, so we\nput all the same logic in one place. When testing\nfor erroneous T[], check both the array type\nas well at the component type T for errors\n(it is possible T[] is not marked erroneous\neven though T is eventually).\n\nBUG\u003d28358598\n\nChange-Id: I11339a976dc83e0493a99e6bb97f3a058ca3f796\n"
    },
    {
      "commit": "22c1f543ed75114d8ee5219598ba766e7dc674c0",
      "tree": "2743371eea54b44b8ace1d5b23eb3f0db2964eb6",
      "parents": [
        "27983255b19b633e91cf62883035b8af02b94eb0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 25 17:47:43 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 25 17:47:43 2016 +0100"
      },
      "message": "ART: Fix ROR Checker test\n\nRecent update of Jack started encoding \"x \u003c\u003c -2\" as \"x \u003c\u003c 30\". Update\nthe corresponding Checker test to accept both values.\n\nBug: 28244190\nChange-Id: I65833afa416a7eb8fa05d381cff547a58dcc0bea\n"
    },
    {
      "commit": "88b891534b7b9218faa7f021e5b0768a7b519ae3",
      "tree": "71eb536865b26d91fbdb3a5bcf7e473f4af247b9",
      "parents": [
        "6583646a6b65ce16a03b41466eddd385234eb7eb",
        "bb661c0f0cb72d4bbfc2e251f6ded6949a713292"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Apr 25 13:03:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 25 13:03:01 2016 +0000"
      },
      "message": "Merge \"Refactor use of __ANDROID__ macro\""
    },
    {
      "commit": "4f4a6c47ef269c68bc136f0805e5e99512d970b7",
      "tree": "449a665d50f98dc75f53f820581f0b0d1673426d",
      "parents": [
        "4b55b52e2dca085365157bc52626630803ce259e",
        "c120bbe26fe116d3c9d8322f44bb9e330e07f745"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 22 16:52:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 22 16:52:19 2016 +0000"
      },
      "message": "Merge \"ART: Naive NullCheck elimination in InstructionBuilder\""
    },
    {
      "commit": "c120bbe26fe116d3c9d8322f44bb9e330e07f745",
      "tree": "63e503da272d0be6d6dc243c29d4e7b184705710",
      "parents": [
        "121c8a6494f2224830ed0ca33df5af0d8c077647"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 22 16:57:00 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 22 16:57:00 2016 +0100"
      },
      "message": "ART: Naive NullCheck elimination in InstructionBuilder\n\nSave a little bit of memory by not generating trivially redundant\nHNullCheck instructions. This patch builds on the fact that the\nInstructionBuilder now directly generates SSA form and looks at the\ninput of the NullCheck. For obvious cases, such as NewInstance/Array\nor `this`, the NullCheck generation is completely avoided.\n\nBug: 28173563\nChange-Id: I1fdf3b096c7a939f7b8586c02a2a6b44dfa43443\n"
    },
    {
      "commit": "bb661c0f0cb72d4bbfc2e251f6ded6949a713292",
      "tree": "4fe7e66f3385b1955934d3ec6f02e00bde6e13b8",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Mon Apr 04 16:27:32 2016 +0100"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Fri Apr 22 13:33:30 2016 +0100"
      },
      "message": "Refactor use of __ANDROID__ macro\n\nWe use the __ANDROID__ macro, which is provided by the toolchain, in\nnumerous places. This patch refactors the usage of this by defining a\nnew macro, ART_TARGET_ANDROID, that is being passed during build to\nART_TARGET_CFLAGS in Android.common_build.mk on the same line as\nART_TARGET. The codebase currently assumes that the existence of the\n__ANDROID__ macro implies that we are compiling art for an android\ntarget device. This is because, currently, target builds are compiled\nwith target toolchains that provide the macro, while host toolchains\ndo not.  With this change this assumption is still preserved. However,\nin a future patch we will add the ability to compile art for a linux\ntarget, and in that case the ART_TARGET_ANDROID macro won\u0027t be passed\nanymore.\n\nChange-Id:  I1f3a811aa735c87087d812da27fc6b08f01bad51\n"
    },
    {
      "commit": "dbeb6eee5e54c420e64d87a39b2533231fb41c47",
      "tree": "8dec7b43746439709ab557599a7519d99ffce529",
      "parents": [
        "9d7c524c9bd603b1df9e88132f7ea4d59dab44a3"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Apr 21 14:45:43 2016 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Apr 21 14:45:59 2016 +0100"
      },
      "message": "Avoid redundant Long allocation before unboxing\n\nlong x \u003d Long.valueOf(s) --\u003e Long.parseLong()\n\nBug: 28289401\nChange-Id: I0a6766d44a522b6dd5c7afc5e81ebe135103315e\n"
    },
    {
      "commit": "c6b5627c25ff5653e97ccff8c5ccf6ac967b6f83",
      "tree": "8cec0d66bdd5e5a9be14bbb881eb36d09868ab39",
      "parents": [
        "a584db5460a31198bf621cdacf5bc304a984efa4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 18:45:25 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 19:40:35 2016 +0100"
      },
      "message": "Fix HInstruction::ReplaceInput(), allow no-op.\n\nAllow HInstruction::ReplaceInput() to be called with\na `replacement` being the same as the old input and\ndo nothing in that case.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/216923\nwhere I erroneously assumed that it never happens.\n\nAlso adhere to the standard C++ std::forward_list\u003c\u003e\nsemantics in the single-element overload of\n`IntrusiveForwardList\u003c\u003e::splice_after()`.\n\nBug: 28173563\nChange-Id: I5cea14c212b1083f90ffe6b5b53324ad663d57d8\n"
    },
    {
      "commit": "44349d990b1356b455b3369dd7c5ab6f172c3a28",
      "tree": "347c8e36ac7aebc793c9401fe0348d6303032ae8",
      "parents": [
        "b4154d33eb51de747cc517dd270b58619b3a3122",
        "732350b9f19f85421368f533f7e3c0b2e4e08928"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 09:06:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 20 09:06:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Increase timeout for the 570-checker-osr test from 20s to 60s.\"\""
    },
    {
      "commit": "732350b9f19f85421368f533f7e3c0b2e4e08928",
      "tree": "f6b6265cf2152239cdd228c0e643b1e179cca9a9",
      "parents": [
        "d676227d8fcef3c3d34f1a7a44141b4f5f2e8519"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 09:06:08 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 20 09:06:08 2016 +0000"
      },
      "message": "Revert \"Increase timeout for the 570-checker-osr test from 20s to 60s.\"\n\nThe timeout was an actual test failure, fixed by\n    https://android-review.googlesource.com/217041\n\nBug: 28210356\n\nThis reverts commit d676227d8fcef3c3d34f1a7a44141b4f5f2e8519.\n\nChange-Id: If69e09f3650f87cd4e6e22bb28a7b807be3094e1\n"
    },
    {
      "commit": "b9d338b96c804a077dc2ed60b36b7ab64dc2c78c",
      "tree": "7914dee7fc3af50bdf13995114007712999ca2b0",
      "parents": [
        "5f6b90824628504813cd174b90eaaad8c8031726"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 17:26:54 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 17:34:15 2016 +0100"
      },
      "message": "Fix 570-checker-osr test for non-debuggable mode.\n\nFor non-debuggable mode, we need to create profiling info.\n\nBug: 28210356\nChange-Id: I3c2e1f7a7b447d44ca12382fe5f5a93e3dc83cab\n"
    },
    {
      "commit": "d676227d8fcef3c3d34f1a7a44141b4f5f2e8519",
      "tree": "010188cbb68a08cc394f383b77db0f2e592e2ee5",
      "parents": [
        "c5c508d149a7eeae1121ca4b932e8c6ab024813f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 16:10:21 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 16:12:44 2016 +0100"
      },
      "message": "Increase timeout for the 570-checker-osr test from 20s to 60s.\n\nWe have added new tests to the 570-checker-osr test in\n    https://android-review.googlesource.com/215877\nwithout increasing the timeout and we\u0027re seeing a timeout\non the build bot but not locally.\n\nBug: 28210356\nChange-Id: I52160e617772857c62c7cbb7de6cbb5c23c02a66\n"
    },
    {
      "commit": "c5c508d149a7eeae1121ca4b932e8c6ab024813f",
      "tree": "f6b6265cf2152239cdd228c0e643b1e179cca9a9",
      "parents": [
        "9c8c16a58077ca9c427cc8996ad6b5e67bb6a181",
        "fd66c50d64c38e40bafde83b4872e27bbff7546d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 13:54:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 19 13:54:10 2016 +0000"
      },
      "message": "Merge \"Fix inlining loops in OSR mode.\""
    },
    {
      "commit": "fd66c50d64c38e40bafde83b4872e27bbff7546d",
      "tree": "e77ea1374211042d5eca3d1a62a81293a29eb108",
      "parents": [
        "c4d445a40bf00ab497b5e4d43a6b43eaafb5fa50"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 18 15:37:01 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 13:59:15 2016 +0100"
      },
      "message": "Fix inlining loops in OSR mode.\n\nWhen compiling a method in OSR mode and the method does not\ncontain a loop (arguably, a very odd case) but we inline\nanother method with a loop and then the final DCE re-runs\nthe loop identification, the inlined loop would previously\nbe marked as irreducible. However, the SSA liveness analysis\nexpects irreducible loop to have extra loop Phis which were\nalready eliminated from the loop before the inner graph was\ninlined to the outer graph, so we would fail a DCHECK().\n\nWe fix this by not marking inlined loops as irreducible when\ncompiling in OSR mode.\n\nBug: 28210356\nChange-Id: If10057ed883333c62a878ed2ae3fe01bb5280e33\n"
    },
    {
      "commit": "fa3091ef031da6c18478fdede12d7762634ee271",
      "tree": "603400fda7a81ddc585c204dbb781536c64bba99",
      "parents": [
        "54c819513ab759815858647cd513c4f351568751"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 19 10:10:17 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 19 09:15:58 2016 +0000"
      },
      "message": "ART: Fix IsLinearOrderWellFormed in liveness analysis\n\nGraph may contain nullptr in list of basic blocks when\nthe basic block is removed. So we must handle nullptr explicitly.\n\nBug: 28252537\nChange-Id: If430939b8fe793e4a9c974936180d06c1a9f90c6\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "8446707fb8a2279455228d4b68d530f29679e1fb",
      "tree": "6e3bf0f9933ed4968ebc80085d86f73f14ead4fc",
      "parents": [
        "64c17bc60b991e37b2b8a8255002ff608e78ca25",
        "8f4ade0f05c0203b33e5f421d1e3794ab6075a82"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 16 01:32:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 16 01:32:29 2016 +0000"
      },
      "message": "Merge \"ART: Fix nits for verifier change\""
    },
    {
      "commit": "8f4ade0f05c0203b33e5f421d1e3794ab6075a82",
      "tree": "60a6029ef116d7a71c8e8b32aa2388f48c48685c",
      "parents": [
        "2dcab783cd7a5a4351c50755b3b3de927e70ac38"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 15 10:09:16 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 15 17:14:38 2016 -0700"
      },
      "message": "ART: Fix nits for verifier change\n\nFollow-up to 6659624baadf2285ac5880fd28ffa31767dcae0b.\n\nBug: 28187158\nChange-Id: Ie81aff1cae1ff275faaaf4b858608e74b86d8622\n"
    },
    {
      "commit": "64c17bc60b991e37b2b8a8255002ff608e78ca25",
      "tree": "bfb23d28c0b58dd0018214b1f71b05fc5bae4d86",
      "parents": [
        "2dcab783cd7a5a4351c50755b3b3de927e70ac38",
        "1b85354e974bac725b5baf1c8d1041b9b1e96643"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Apr 15 21:03:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 21:03:59 2016 +0000"
      },
      "message": "Merge \"Disable stripped-dex test for no-dex2oat.\""
    },
    {
      "commit": "1b85354e974bac725b5baf1c8d1041b9b1e96643",
      "tree": "7be9049389a52f85e72c37fd0551fccf73a4d010",
      "parents": [
        "05241f4edbf6960aac7c04b0b98d05f16a23962b"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Apr 15 12:16:45 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Apr 15 12:16:45 2016 -0700"
      },
      "message": "Disable stripped-dex test for no-dex2oat.\n\nBecause the stripped-dex test requires a prebuild configuration.\n\nBug: 27599626\nChange-Id: Id94e76057201c8fb26b68d7123469cf4c61464e4\n"
    },
    {
      "commit": "2dcab783cd7a5a4351c50755b3b3de927e70ac38",
      "tree": "621974407f4fe3e9d2c72b4e8f79054328ea59ec",
      "parents": [
        "979fb0090c5c9de1da62735b8611a3c9028ed0aa",
        "18b36abc7cc03076fe1c399c0bb8ec8793cc6806"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 15 19:04:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 19:04:13 2016 +0000"
      },
      "message": "Merge \"Remove the no-longer-needed F/I and D/J alias.\""
    },
    {
      "commit": "18b36abc7cc03076fe1c399c0bb8ec8793cc6806",
      "tree": "3e38ee71b94c7bbde6f93976e16416a2f6d33ee0",
      "parents": [
        "defccc564481c2c892792680c6abb6020e36bacd"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 16:41:35 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 15 10:49:34 2016 -0700"
      },
      "message": "Remove the no-longer-needed F/I and D/J alias.\n\nRationale:\nNow that our HIR is type clean (yeah!), we no longer have\nto conservatively assume F/I and D/J are aliased. This\nenables more accurate side effects analysis, with improvements\nin all clients, such a LICM.\n\nRefinement:\nThe HIR is not completely clean between building and SSA.\nThis refinement takes care of that, with new tests.\n\nBUG\u003d22538329\n\nChange-Id: Id78ff0ff4e325aeebf0022d868937cff73d3a742\n"
    },
    {
      "commit": "062157f4e07b525728fa58f4ec57ffe1bf15d545",
      "tree": "90be1124b444b735b86e09f4adeff59f813b50d2",
      "parents": [
        "240986c1fcd867b9a01e2e94ee2aa90235ce7d75"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 02 10:15:36 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Apr 15 09:03:55 2016 -0700"
      },
      "message": "Enable allocation elimination as part of LSE\n\nAfter load-store elimination, an allocation may not be used any more\nand may be eliminated.\n\nChange-Id: I7fcaaefa9d6ec2c611e46119c5799293770a917c\n"
    },
    {
      "commit": "240986c1fcd867b9a01e2e94ee2aa90235ce7d75",
      "tree": "9c5d8c4c230d114bae7c7261f08b84e0f7c7c768",
      "parents": [
        "37d8c5cbe2fee273ac613b328283688a05b0b75c",
        "5d8fa8bbcb9411015c92d687cb1f3cb785146bf7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Apr 15 14:31:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 15 14:31:00 2016 +0000"
      },
      "message": "Merge \"Track removal of String hash functions.\""
    },
    {
      "commit": "5d8fa8bbcb9411015c92d687cb1f3cb785146bf7",
      "tree": "8ca5140a37f955b50806b2567a65454f0eeab5ec",
      "parents": [
        "0108f3d945cd5483217d7bf1df75ab5108d4555c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 13 14:17:44 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Apr 15 15:26:45 2016 +0100"
      },
      "message": "Track removal of String hash functions.\n\nThe number of virtual methods dropped by one. The change to the\nfield counting merits some explanation, with the change to OpenJDK\nwe got rid of two 16 bit fields and added a 32 bit field (which the\ncompanion change removed), so things continued to work happily.\nThis change brings the number of 16 bit fields down to zero.\n\nAlso fixes 100-reflect2, which iterates over all methods in j.l.String.\n\nbug: 28082128\nChange-Id: If402a372c010b673ef54949e13815b4ae9d3fb99\n"
    },
    {
      "commit": "d5d892d412bba7132e40e0ab95c016770416615c",
      "tree": "308f2bf2e317c72d61edc1f0380c3d1f5e17ee86",
      "parents": [
        "d80ff249019ad09b8e6f1c8753b1b4e8c2421e9f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 15 10:35:04 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 15 10:35:27 2016 +0100"
      },
      "message": "Rename test whose name was too long for some configs\n\nBug: 27615840\nBug: 27624868\nChange-Id: Id15382753a65a16d438abf514104233441444c8d\n"
    },
    {
      "commit": "defccc564481c2c892792680c6abb6020e36bacd",
      "tree": "92d13e0566f0e5c3f1a589ae3dbc9d8e15c23199",
      "parents": [
        "cc9b74f278d516d70782806494aafb517096e82a",
        "d7864d85b9ce87bc4a0ceb94adf6b9c216543da0"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Apr 14 21:19:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 21:19:56 2016 +0000"
      },
      "message": "Merge \"Disable stripped-dex test on target.\""
    },
    {
      "commit": "d7864d85b9ce87bc4a0ceb94adf6b9c216543da0",
      "tree": "26e7c89a1cce6b6241db3f78c402af02edcdff4f",
      "parents": [
        "0108f3d945cd5483217d7bf1df75ab5108d4555c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Apr 14 13:31:30 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Apr 14 14:17:13 2016 -0700"
      },
      "message": "Disable stripped-dex test on target.\n\nBecause the targets don\u0027t have the required zip command.\n\nBug: 27599626\n\nChange-Id: I5ba075165d96d831a4b8e0912cff1319071c60a5\n"
    },
    {
      "commit": "cc9b74f278d516d70782806494aafb517096e82a",
      "tree": "732b2e8dbe0a590338767d5d0e4e624c4d4f070d",
      "parents": [
        "0108f3d945cd5483217d7bf1df75ab5108d4555c",
        "6659624baadf2285ac5880fd28ffa31767dcae0b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 14 20:09:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 20:09:00 2016 +0000"
      },
      "message": "Merge \"ART: Make iget receiver mismatch hard verifier error\""
    },
    {
      "commit": "6659624baadf2285ac5880fd28ffa31767dcae0b",
      "tree": "c8102edd4d380fea54b370b702f41c716fa564ad",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 14 10:55:04 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 14 11:36:39 2016 -0700"
      },
      "message": "ART: Make iget receiver mismatch hard verifier error\n\nIf the classes are resolved, and still not match, this should be\na verify error.\n\nBug: 28187158\nChange-Id: I89c996ae15865674f21cf32ec378d37bac34861b\n"
    },
    {
      "commit": "0108f3d945cd5483217d7bf1df75ab5108d4555c",
      "tree": "cf00b5f4af53b6eadef0c3e3f8c05f743176271e",
      "parents": [
        "a2a8434deb577317c46ce7f81ee879370688307d",
        "76f5cb6026b9c83bf00fd1007703503a327f704d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Apr 14 16:11:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 16:11:40 2016 +0000"
      },
      "message": "Merge \"Restore fallback behavior in the no-image stripped-dex case.\""
    },
    {
      "commit": "adf84911030ca36835c48cbff8be6b078693fb00",
      "tree": "b08c05d49671ca10d11dbf8f3a4589855885108f",
      "parents": [
        "54b5b1a4a93822ff8e1f324dfcd6f0cd3bffa993"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 14 13:47:24 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 14 15:54:29 2016 +0100"
      },
      "message": "ART: Update DCHECKs in SsaLivenessAnalysis::AddBackEdgeUses\n\nGraph linearization in the presence of irreducible loops is not\nguaranteed to generate a linear order where all blocks of a loop are\nadjacent, first block is the header and last block is one of the back\nedges.\n\nThese assumptions are made when inserting synthesized uses at the back\nedges to aid the register allocator. Not meeting them will result in\nthe algorithm\u0027s early termination and back-edge uses not being added.\n\nThis patch updates the DCHECKs so the compiler does not fail in such\ncircumstances.\n\nBug: 27615840\nBug: 27624868\n\nChange-Id: I63632e8819ea3644d5c6fdfea00b66128bf22c24\n"
    },
    {
      "commit": "dad35b0762f97ce79ce3b9a35c9df5021b7dbd17",
      "tree": "ae2b62f31749602b8153bdb55a7f2b57c061da24",
      "parents": [
        "dc1d10458ea2cf29fd861f32ab28e9abac0239ec",
        "274fe4adcb0610a9920be7814d9beb9cac6417ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 14 09:47:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 14 09:47:04 2016 +0000"
      },
      "message": "Merge \"Remove the JIT from the instrumentation framework.\""
    }
  ],
  "next": "dc1d10458ea2cf29fd861f32ab28e9abac0239ec"
}
