)]}'
{
  "log": [
    {
      "commit": "253a37bd15c48a3c374312873066bc83a8f7f3aa",
      "tree": "bae027039db39f17dc44779c6cd54920be1b7f77",
      "parents": [
        "5991b184a40e4ce181d67d683ced46caa6143b53",
        "225ed1dd42d008bdb189da92e185906d08b2ff2f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 12 21:39:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 12 21:39:37 2018 +0000"
      },
      "message": "Merge \"Everyone -- even \"NDK\" users -- gets C++14 by default now.\""
    },
    {
      "commit": "225ed1dd42d008bdb189da92e185906d08b2ff2f",
      "tree": "c3fb25ce505581e5c6cc2bb78dbbdba826db9cfd",
      "parents": [
        "e83d3416e09e6454af38c250a4fda81537d8da9f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 12 10:33:02 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 12 10:33:02 2018 -0700"
      },
      "message": "Everyone -- even \"NDK\" users -- gets C++14 by default now.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I87b169661620c4fd788eea7670060f5e3020e453\n"
    },
    {
      "commit": "bbd2cc2e23691515def685fc3dcea6cd792a2f4e",
      "tree": "45d84f370b70b9aaee23aaa514dd3073d78893ba",
      "parents": [
        "c06bfc9b18e6421ac60e7b27f8f1e90b45772f52",
        "51b8aafd3beb8855a258383a9eb876a783375629"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 12 10:43:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 12 10:43:28 2018 +0000"
      },
      "message": "Merge \"Fix HClinitCheck elimination in instruction builder.\""
    },
    {
      "commit": "51b8aafd3beb8855a258383a9eb876a783375629",
      "tree": "002f77eb0308dbb11b6e5e5a88ce4bc19c6ff836",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 09 15:17:05 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 12 09:23:17 2018 +0100"
      },
      "message": "Fix HClinitCheck elimination in instruction builder.\n\nTo handle escaping instances of erroneous classes correctly,\nwe can omit the HClinitCheck only when using a class in the\nstatic method of the very same class. Even for superclasses\nwe need to do the check. The new test exposes the cases\nwhere we were previously diverging from the RI.\n\nAlso clean up the CompilerDriver by inlining one function\ndirectly to the HInstructionBuild::IsInitialized(.) and\nremoving some related functions that are no longer used.\n\nThe size of the aosp_taimen-userdebug prebuilts:\n  - before:\n    arm/boot*.oat: 16891788\n    arm64/boot*.oat: 19815520\n    oat/arm64/services.odex: 20071624\n  - after:\n    arm/boot*.oat: 16949532 (+56.4KiB, +0.34%)\n    arm64/boot*.oat: 19889752 (+72.5KiB, +0.37%)\n    oat/arm64/services.odex: 20224328 (+149.1KiB, +0.76%)\nwith minor changes to other app prebuilts.\n\nNote: Some of that could be reclaimed by reinstating the old\noptimization for classes where no bytecode can be executed\nduring initialization (no \u003cclinit\u003e to execute in that class\nor superclasses).\n\nTest: 174-escaping-instance-of-bad-class\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: testrunner.py --jvm -t 174\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 62478025\nChange-Id: I41f026ea7fecc615c06e87f3b6cb847de0ede8a6\n"
    },
    {
      "commit": "2a90bc93225f38624333d1d7fa8785f90c687fe5",
      "tree": "8183353ae38facf846e32d6dbdcc01bd9885fa80",
      "parents": [
        "839f53a179df5225dac6964732486fc8dc5c79b0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 21:57:42 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 16:08:22 2018 -0700"
      },
      "message": "Revert^2 \"Move Trace to use trampolines\"\n\nThis reverts commit 27d85eaf54d1cf5f9279ba4d333488b0fbbf441f.\n\nAn ancestor of the original CL got a typo put in it during a minor\nrefactor. This caused a check to be reversed and was not noticed since\nit was a rebase.\n\nReason for revert:  Fixed issue causing --trace failures on some tests\n\nChange-Id: I066519950294edae7b2c22a5850b4a9a96ba46c9\nTest: ./test.py --host --trace --ntrace\n"
    },
    {
      "commit": "27d85eaf54d1cf5f9279ba4d333488b0fbbf441f",
      "tree": "64f9c8896038ada2f7a17bd7cc62c488027dd548",
      "parents": [
        "19af3b9b7fda03417a724fb7e465a3457d528eab"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 21:55:37 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 21:55:37 2018 +0000"
      },
      "message": "Revert \"Move Trace to use trampolines\"\n\nThis reverts commit 19af3b9b7fda03417a724fb7e465a3457d528eab.\n\nCaused the following tests to fail.\n\ntest-art-host-run-test-debug-prebuild-interpreter-no-relocate-trace-cms-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-916-obsolete-jit32\ntest-art-host-run-test-debug-prebuild-interpreter-no-relocate-trace-cms-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-916-obsolete-jit64\n\nIt seems we did not setup the tracing fully correctly.\n\nReason for revert: Caused failure of 2 tests on buildbots\nTest: None\n\nChange-Id: Ied420b95c24ce530a19cdd39dc2403e5cc99fde5\n"
    },
    {
      "commit": "19af3b9b7fda03417a724fb7e465a3457d528eab",
      "tree": "efa7d558db285cca5143ba30b6bba7495b616269",
      "parents": [
        "3e36a9c24f591097b4403fe77b1d426c03aeb56a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 13 14:51:20 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:52 2018 -0700"
      },
      "message": "Move Trace to use trampolines\n\nChange method tracing to use instrumentation trampolines instead of\ninterpreter. This is generally faster but can slow down recursion as\nthe stack gets longer. Due to this we need to disable several tests\nwhich will no longer finish in a reasonable time.\n\nTest: ./test.py --host --trace --ntrace\n\nChange-Id: Id4fb7c997a854859f2998f72018980973d8493f8\n"
    },
    {
      "commit": "c916736ca1e375c276df251446baf2ac8ff3eb13",
      "tree": "64f5243c1b95e63a24861af5508b3f71311b51c0",
      "parents": [
        "2c8206ffeb07cebe2f612b8c66c0f4f4132e2be2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 16:46:43 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Ensure proxy methods are reported by instrumentation\n\nPreviously we would not report proxy methods to instrumentation in all\ncases. Specifically if the instrumentation trampolines were not\ninstalled we would never report proxy method entry or exit. This fixes\nthat and ensures that proxy methods are always reported to\ninstrumentation regardless of what instrumentation method is being\nused. It also ensures that these methods will only ever be reported\nonce per entry.\n\nTest: ./test.py --host\nTest: ./test/testrunner/testrunner.py \\\n         --host \\\n         --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\n\nChange-Id: I78f1d4b3b3f242e8915989ab26f7c204baab08e5\n"
    },
    {
      "commit": "2d441b1253cca39bf3078422e8f0b2f4ec1bb408",
      "tree": "3db740023b1322749856f943c4b25b8158da8a44",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 08 15:33:21 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Make instrumentation trampoline able to jump to jit code\n\nIn order to get the benefit of the instrumentation trampoline it must\nbe able to jump to jit code. This patch adds support for doing that\nand adds code to ensure that we will not be jumping back and forth\nbetween the trampoline and the interpreter all the time if the jit has\nnot yet compiled the current method.\n\nNote we also disable the jit-gc when turning on these trampolines\nsince otherwise we could end up either sending instrumentation events\nmultiple times or running uninitialized memory.\n\nBug: 110263880\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so --runtime-option\u003d-Xjitthreshhold:0\nTest: ./test.py --host\n\nChange-Id: Ie6e92ec6367452fe4fde24d520d808b7af91d1b5\n"
    },
    {
      "commit": "97c465ca6ee4c76766f8abaa3a98ee0329019c5c",
      "tree": "ea4236d021cfa3df45e27efe1556732a06c6737b",
      "parents": [
        "91b6befbb0a323ccbdce5f0631e260346e04f045",
        "753a055b5398fcf00d2633565452679c8fb93e9d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 05 20:05:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 20:05:48 2018 +0000"
      },
      "message": "Merge \"Revert \"Handle a special case of lock aliasing during lock verification\"\""
    },
    {
      "commit": "753a055b5398fcf00d2633565452679c8fb93e9d",
      "tree": "e334f68df51c6078fd51f293a38146c6fcb6c106",
      "parents": [
        "82898ed01eedfb82a5b4adfe1327b827210af3ca"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 05 20:05:20 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 05 20:05:20 2018 +0000"
      },
      "message": "Revert \"Handle a special case of lock aliasing during lock verification\"\n\nFails run-test with --tracing or --debuggable.\n\nThis reverts commit 82898ed01eedfb82a5b4adfe1327b827210af3ca.\n\nChange-Id: I8005a1fbe63c6508d9abd5bea77679201c71ab46\n"
    },
    {
      "commit": "91b6befbb0a323ccbdce5f0631e260346e04f045",
      "tree": "ceb3c5608472a396f4f090c315c5cf16386fabd1",
      "parents": [
        "4a72f8b1baec1fb93105e381edb1bad60e372540",
        "82898ed01eedfb82a5b4adfe1327b827210af3ca"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 05 16:32:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 05 16:32:16 2018 +0000"
      },
      "message": "Merge \"Handle a special case of lock aliasing during lock verification\""
    },
    {
      "commit": "82898ed01eedfb82a5b4adfe1327b827210af3ca",
      "tree": "c801d41b2491271324a06343efc8618d5ea063a2",
      "parents": [
        "dc53f1616d656a757fb26039f387b7ee44ff2f1d"
      ],
      "author": {
        "name": "Alexey Grebenkin",
        "email": "a.grebenkin@samsung.com",
        "time": "Thu May 31 23:42:20 2018 +0300"
      },
      "committer": {
        "name": "Alexey Grebenkin",
        "email": "a.grebenkin@samsung.com",
        "time": "Thu Jul 05 12:41:54 2018 +0300"
      },
      "message": "Handle a special case of lock aliasing during lock verification\n\nCheck whether the two instructions immediately before a monitor-enter\nare const-class, establishing previously untracked lock aliasing\nin a low-overhead manner.\n\nTest: m test-art-host\nChange-Id: I94c187cbc422f8f0c13b688b09a5d9579a735b56\n"
    },
    {
      "commit": "ab86413a9b5fab9eb7d3967d30277b2e7b580e9a",
      "tree": "aec564fbeda491eb02360ab65335d26dd924a8e5",
      "parents": [
        "0e4563c4ccd3a36dff11c33fc98aa9cedae722e4"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jul 04 15:45:13 2018 +0200"
      },
      "committer": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jul 04 15:45:13 2018 +0200"
      },
      "message": "Move a 530-checker-lse test from java to smali\n\nThe test expectations was updated in\nhttps://android-review.googlesource.com/c/platform/art/+/707705 due\nto D8 also performing the same optimization.\n\nMoved the test to smali to be independent of the dexer output, and reverted\nthe test expectations to test this optimization on Art again.\n\nTest: art/test/testrunner/testrunner.py -b --host -t 530-checker-lse\nChange-Id: I8c8a37ea08adb44ea9e00284cce43d93a768e7bf\n"
    },
    {
      "commit": "a8d5a5f709cc7611352d58fb6f2fb50411563653",
      "tree": "be3f0cf1d59e5797100cae0d859e12605ac0b378",
      "parents": [
        "7583d915800ad330da0232dfdb0a4d1bda2d074c",
        "8a62a4c9570b345b715a022d33d443413a634392"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 04 07:50:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 07:50:56 2018 +0000"
      },
      "message": "Merge \"Handle String.\u003cinit\u003e with a phi input.\""
    },
    {
      "commit": "8a62a4c9570b345b715a022d33d443413a634392",
      "tree": "4b34426f14301f230e9d6b5f23486a038cf6e548",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 03 09:39:07 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 03 11:22:34 2018 +0100"
      },
      "message": "Handle String.\u003cinit\u003e with a phi input.\n\nWe wrongly assumed only irreducible loops could lead\nto this situation, but any loop can actually be in between\na String NewInstance and a String.\u003cinit\u003e.\n\nbug: 109666561\nTest: 563-checker-fakestring\nChange-Id: I018a22f7e22c15e140252544415f51d544f7cc13\n"
    },
    {
      "commit": "003e64b4108125d6f59bc1b663fd71864abadab9",
      "tree": "488f963dc86f905245df46a6ba99e534b1666edd",
      "parents": [
        "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 27 13:20:52 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 28 19:43:13 2018 +0100"
      },
      "message": "hiddenapi: Refactor before new features are added\n\nRefactor the hiddenapi build tool to take a command name as its\nfirst argument and create a notion of a \"class path\" group of dex\nfiles. These changes will be needed for creating a new command\nthat resolves SDK stubs against the boot class path.\n\nBug: 79409988\nTest: m hiddenapi\nTest: m test-art-host-gtest-hiddenapi_test\nTest: art/test.py -r -t 674-hiddenapi -t 999-redefine-hiddenapi\nChange-Id: I93c36154cc8c5e8c0e9414cf02e2c6ea298ae0e8\n"
    },
    {
      "commit": "f5020eecfde4e91e4499418f9e189f08cd4ecbd5",
      "tree": "f4777bfc1b122a4c9dfa15e7eb35ac3c306baf2f",
      "parents": [
        "0028ce042e6b0f8446d59d0632c344824aae20fc",
        "b40d361019897e8b8484b772ccc0be433abafb5f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 15:49:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 15:49:25 2018 +0000"
      },
      "message": "Merge \"ART: Finish old move of OatDexFile\""
    },
    {
      "commit": "cd059b6568f5ada2922ef34a45603720f03945e2",
      "tree": "004971d8017619e41a86656372afa7021877e4c4",
      "parents": [
        "86c84f7edbe58a7a18ac40abba0ef268ed367271",
        "5084cda031d1ffcc1819070d127215adf17a1835"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 27 13:25:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 13:25:03 2018 +0000"
      },
      "message": "Merge \"ART: disable 638-no-line-number after move to d8\""
    },
    {
      "commit": "de4efa65db3c38df49c680159bedf72afcc1fc71",
      "tree": "42566e66d3dd8581bc961758c4a5caef324fc933",
      "parents": [
        "f07d5617770c37d87447c8bddf105eb0469ab093",
        "0044b53dfb4752a3379211e696506c29b5ce039f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 12:45:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 12:45:05 2018 +0000"
      },
      "message": "Merge \"ART: Clean-up d8 expections\""
    },
    {
      "commit": "4ced1a8537f887d9d878042d9ea2415b1b959512",
      "tree": "b5808c7f882b02d08c9e6ab2bc35346a016d5178",
      "parents": [
        "893753811f4686edf11c953701e3cc857b8f45e0",
        "a3234e96206a841c83f9f5bf0d4e14fb07b72a5e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 12:16:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 12:16:14 2018 +0000"
      },
      "message": "Merge \"ARM64: Optimization of HRem and HDiv when a denominator is power of 2\""
    },
    {
      "commit": "893753811f4686edf11c953701e3cc857b8f45e0",
      "tree": "ee9f04d1c89be2966cdabc013cdc71f47d19a993",
      "parents": [
        "639f5150805006a2c3a07daa804abcdba0bc3ece",
        "a6e2614354803077bd6e2f015873a717a7cc6690"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 27 11:35:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 11:35:33 2018 +0000"
      },
      "message": "Merge \"ART: Extend the range of clonable instructions.\""
    },
    {
      "commit": "5084cda031d1ffcc1819070d127215adf17a1835",
      "tree": "64481429fc4216d7cdae7a34eb953dd024befdab",
      "parents": [
        "a98d9e76ed2486db9a7490a6e421a509ab2f6e2d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 27 10:08:15 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 27 11:56:06 2018 +0100"
      },
      "message": "ART: disable 638-no-line-number after move to d8\n\nThe slicer library generates different DEX offsets with d8 generated\nbytecode.\n\nBug: b/110869946\nBug: b/110150973\nTest: art/test.py --host --64 --redefine-stress -r -t 638-no-line-number\nChange-Id: I866baeff31fc8eb9b8cb8c0eb13da482738bb1a3\n"
    },
    {
      "commit": "0044b53dfb4752a3379211e696506c29b5ce039f",
      "tree": "18bfea99e3c8eeb8b64b3248063026907c8e43cd",
      "parents": [
        "a98d9e76ed2486db9a7490a6e421a509ab2f6e2d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 27 11:52:37 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 27 11:52:37 2018 +0100"
      },
      "message": "ART: Clean-up d8 expections\n\nWe no longer need diffs for expectations when using d8.\n\nBug: b/110150973\nTest: art/test/run-test --host --64 910\nTest: art/test/run-test --host --64 913\nChange-Id: I4673452858733a0f289435c1eccbb747cffa8d7c\n"
    },
    {
      "commit": "a3234e96206a841c83f9f5bf0d4e14fb07b72a5e",
      "tree": "b71bab3d76984daa0def172ac9811a1f72c758e7",
      "parents": [
        "a84b53a0a5404f4049f24300dbc81bc859b12105"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Jun 19 23:26:15 2018 +0100"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Jun 27 10:03:49 2018 +0100"
      },
      "message": "ARM64: Optimization of HRem and HDiv when a denominator is power of 2\n\nOn ARM64 when a denominator is a power of 2 fewer instructions can be\nused to represent HDiv and HRem. For example, a/2 can be lowered to\nadd+asr; a%2 to cmp+and+csneg. Currently four instructions\nare always used for the division by a power of 2 and five instructions for the\nremainder.\n\nThis patch optimizes the division by 2 (lowering to two instructions),\nthe remainder from the division by 2 (lowering to three instructions)\nand the remainder from the division by a power of 2 (lowering to four\ninstructions).\n\nOn Pixel 2, performance improvements, geomean of diff for a benchmark group (%),\nmax - the maximum seen diff of a single case in a benchmark group, higher better:\nBig core:\nalgorithm                 0.664 (max: 1.6)\nintrinsics                5.813 (max: 19.0)\nmicro                     4.734 (max: 22.0)\n\nLittle core:\nalgorithm                 2.097 (max: 5.4)\nintrinsics               14.610 (max: 27.3)\nmicro                    12.687 (max: 35.6)\n\nTest: 012-math, 014-math3, 411-optimizing-arith, 411-checker-hdiv-hrem-pow2\nTest: test-art-host, test-art-target\nChange-Id: Iaaec6dc8fc0ec5df2b2d0e8692d5dea573b8d284\n"
    },
    {
      "commit": "b40d361019897e8b8484b772ccc0be433abafb5f",
      "tree": "cfb4498ee5757be7cec06f8e4a866e7faabfadba",
      "parents": [
        "a98d9e76ed2486db9a7490a6e421a509ab2f6e2d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 15:49:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 15:49:42 2018 -0700"
      },
      "message": "ART: Finish old move of OatDexFile\n\nThe class has been made standalone so it can be forward-declared,\nbut not all nested references had been updated.\n\nTest: mmma art\nChange-Id: Idc5f0af24af17dcae286dee290f729ba61693a11\n"
    },
    {
      "commit": "64fe3be84105db1a8f35550ae0a3c06f1092d436",
      "tree": "22f91ab45b3c8b1d940e83a0fd24b851be32949c",
      "parents": [
        "cca7cb9ffa56d8ab8fd0c5997c8bfd965d7426c1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jun 15 12:50:22 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 26 14:08:29 2018 +0000"
      },
      "message": "ART: Retire desugar and dx in run-tests\n\nRun-tests now use d8 for desugaring and dexing.\n\nBuild scripts no longer have hand written dexer invocations.\n\nBug: 110150973\nBug: 73711890\nTest: art/test.py --host --64 -r\nTest: art/test.py --target --prebuild --optimizing -r\nChange-Id: Iae2199cf756624c1f045de7777c5ee6432398bd2\n"
    },
    {
      "commit": "a6e2614354803077bd6e2f015873a717a7cc6690",
      "tree": "c0bc563a2e002b18166912c7497ae2e1d66cd75b",
      "parents": [
        "f28f96987c9a8fc3d01154f51f0a37fd32967949"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Jun 19 14:55:17 2018 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 22 14:41:50 2018 +0100"
      },
      "message": "ART: Extend the range of clonable instructions.\n\nMake a bunch of instructions clonable: DivZeroCheck,\nTypeConversion, InstanceOf, CheckCast.\n\nTest: with forced peeling and unrolling (applied to every clonable\nloop) all the test pass and device boots to GUI.\n\nTest: angler boots to GUI.\nTest: test-art-target, test-art-host.\nTest: 530-checker-peel-unroll.\n\nChange-Id: Id056b998e0a656dbada6958e7c667b7331047059\n"
    },
    {
      "commit": "eebb821b1adaf2db7662fc1c3ff4e9fcfe59a694",
      "tree": "a3d3cf5f8c20d03fccdc0808537904da63e74938",
      "parents": [
        "7e56bd41cde4e489a11050d9e340bf8b5692d9e8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 05 14:57:24 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 21 16:12:28 2018 +0100"
      },
      "message": "Implement Integer.valueOf() intrinsic for PIC.\n\nAnd fix the intrinsic for JIT even in case when someone\nmesses up the IntegerCache using reflection. Two cases are\nexposed with a regression test (one that previously failed\nrandomly and one that failed 100%) but other crashes were\npossible; for example, we would need a read barrier for\narray reads when elements are not guaranteed to be in the\nboot image.\n\nThe new approach loads references only from the boot image\nlive objects array which cannot be touched by reflection.\nThe referenced objects and IntegerCache.cache are exposed\nand can lead to weird behavior but not crashes.\n\nOn x86, the pc_relative_fixups_86 actually checks the cache\nan additional time but discrepancies between this check and\nthe location building at the beginning of codegen should be\nOK as the HIsX86ComputeBaseMethodAddress should be added\nfor PIC regardless of whether pc_relative_fixups_86 thinks\nthe method is intrinsified or not.\n\nTest: 717-integer-value-of\nTest: Pixel 2 XL boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --pictest --npictest\nTest: testrunner.py --host --jit\nTest: testrunner.py --target --optimizing --pictest --npictest\nTest: testrunner.py --target --jit\nBug: 71526895\nChange-Id: I89b3245a62aba22980c86a99e2af480bfa250af1\n"
    },
    {
      "commit": "44217b253bf4e5990de7051129ecda34f94d7f25",
      "tree": "ce2c0682275a33e97ac288f2e8f0631b6e9d9d85",
      "parents": [
        "053a28f216351018a0026361b37f532b5da0bbe8",
        "dabd5639e3b65f8e96e4aafe004f1c0ccae3c5c3"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Thu Jun 21 11:15:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 21 11:15:08 2018 +0000"
      },
      "message": "Merge \"Update test expectations for 530-checker-lse\""
    },
    {
      "commit": "053a28f216351018a0026361b37f532b5da0bbe8",
      "tree": "3ccf8d4bc9731b651f5588bec65291f35ef61176",
      "parents": [
        "e5e0e979987c2b43b3c5841155dac4b6bef4d580",
        "834b66ff65770d04239867344d6a26620e75458c"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Thu Jun 21 11:15:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 21 11:15:08 2018 +0000"
      },
      "message": "Merge \"Update test expectations for 911-get-stack-trace\""
    },
    {
      "commit": "c046a45aabc2a244ea2595692feb97238b568701",
      "tree": "5f0f0bb103227bb22d96575830ed87cc8b7a2f1d",
      "parents": [
        "3fc03632687b2eabfa1906292b17b7792b9637af",
        "8338995cdb6fae41178d932357ddbfbb0ade95ea"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 21 10:13:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 21 10:13:51 2018 +0000"
      },
      "message": "Merge \"ART/mterp: Fix mul-long to clear shadow registers.\""
    },
    {
      "commit": "8338995cdb6fae41178d932357ddbfbb0ade95ea",
      "tree": "ee72841c452d031bf09fc97376ca22adcd180a4d",
      "parents": [
        "47d165e4e2f11b780cb1b7a0347e7a9313467210"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 21 08:54:17 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 21 09:16:02 2018 +0100"
      },
      "message": "ART/mterp: Fix mul-long to clear shadow registers.\n\nAnd enable D8 for the test where using D8 exposed the bug.\n\nTest: testrunner.py --target --gcstress --interpreter -t 704\nBug: 110398163\nChange-Id: Ia39dd5f15fb8a074a213c68c40fe4827f9cf7a2f\n"
    },
    {
      "commit": "73e8d8367cb394f8deb7b94dfff0861074f5eb56",
      "tree": "2e8e37c2f5e22977d824ab63fbf9c0698eec8768",
      "parents": [
        "2e639002351545a76b0dbb2fbcb33c988d2d786e",
        "2d8e184b5fdeb9b18fd6816dfdabebe20e57f4e0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 20 17:46:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 20 17:46:48 2018 +0000"
      },
      "message": "Merge \"Don\u0027t report OTHER references in test 913\""
    },
    {
      "commit": "dabd5639e3b65f8e96e4aafe004f1c0ccae3c5c3",
      "tree": "bb1aeb61432133ddb05308e0ded4ab7472ac10c2",
      "parents": [
        "b1775a8bc48bc1b3d90c34a509285c02e56548da"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jun 20 17:40:14 2018 +0200"
      },
      "committer": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jun 20 17:40:14 2018 +0200"
      },
      "message": "Update test expectations for 530-checker-lse\n\nWith D8 version 1.3.1-dev the optimization \"Eliminate redundant field loads.\"\n(https://r8-review.googlesource.com/c/r8/+/22160) removes an instruction in\none of the methods in the test 530-checker-lse.\n\nThe dex code for\n\n  static int test10(TestClass obj) {\n    TestClass.si +\u003d obj.i;\n    return obj.i;\n  }\n\nwill only have one instance field get instruction generated.\n\nTest: art/test/testrunner/testrunner.py -b --host -t 530-checker-lse\nChange-Id: Id238d53b7cbcc2667a842ff7a6393ba92e702b72\n"
    },
    {
      "commit": "faf742fe798038cd314ad06165017c9719cbce6e",
      "tree": "c7c60475d2955e1a401647c6a02057887b62fb53",
      "parents": [
        "866caa04287db748c2f8a16992b99e0ee6bf4a25",
        "89de444350fdbd7df4fb4d95bb71f00e6673b466"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 20 15:17:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 20 15:17:20 2018 +0000"
      },
      "message": "Merge changes I43d8736f,I6148d743,Id3687eb6\n\n* changes:\n  ART: Fix some performance-X tidy\n  ART: Mask garbage-memory warnings\n  ART: Fix clang-analyzer leak/memory warnings\n"
    },
    {
      "commit": "866caa04287db748c2f8a16992b99e0ee6bf4a25",
      "tree": "997b3af70b72c77cd2c8beeb00b051191dc13462",
      "parents": [
        "58ef29a621fb629a639b13632e7a43337901a056",
        "a6f5c8cd15316ff1ceeb4ce7c3de0644e3b81cb8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 20 14:26:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 20 14:26:04 2018 +0000"
      },
      "message": "Merge \"ART-tests: remove DX dependency from 706-checker-scheduler.\""
    },
    {
      "commit": "834b66ff65770d04239867344d6a26620e75458c",
      "tree": "b0de50c5589bf04bd27d81bc8253ba58c7af0d3a",
      "parents": [
        "b1775a8bc48bc1b3d90c34a509285c02e56548da"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jun 20 15:22:08 2018 +0200"
      },
      "committer": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Jun 20 13:28:38 2018 +0000"
      },
      "message": "Update test expectations for 911-get-stack-trace\n\nWith D8 version 1.3.1-dev the optimization \"Eliminate redundant field loads.\"\n(https://r8-review.googlesource.com/c/r8/+/22160) removes an instruction in\none of the methods in the test 911-get-stack-trace.\n\nThe code\n\n    3:   0x06: InvokeStatic        { v0 v3 v4 } Lart/PrintThread;-\u003eprint(Ljava/lang/Thread;II)V\n    4:   0x09: Goto                0x32 (+41)\n         0x0a, line 43, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n    5:   0x0a: IgetObject          v0, v5, Field java.lang.Object art.ControlData.waitFor\n    6:   0x0c: IfEqz               v0, 0x28 (+28)\n         0x0e, line 44, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n    7:   0x0e: IgetObject          v0, v5, Field java.lang.Object art.ControlData.waitFor\n    8:   0x10: MonitorEnter        v0\n         0x11, line 45, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n    9:   0x11: IgetObject          v1, v5, Field java.util.concurrent.CountDownLatch art.ControlData.reached\n   10:   0x13: InvokeVirtual       { v1 } Ljava/util/concurrent/CountDownLatch;-\u003ecountDown()V\n         0x16, line 47, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n   11:   0x16: IgetObject          v1, v5, Field java.lang.Object art.ControlData.waitFor\n   12:   0x18: InvokeVirtual       { v1 } Ljava/lang/Object;-\u003ewait()V\n\nbecomes\n\n    3:   0x06: InvokeStatic        { v0 v3 v4 } Lart/PrintThread;-\u003eprint(Ljava/lang/Thread;II)V\n    4:   0x09: Goto                0x30 (+39)\n         0x0a, line 43, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n    5:   0x0a: IgetObject          v0, v5, Field java.lang.Object art.ControlData.waitFor\n    6:   0x0c: IfEqz               v0, 0x26 (+26)\n         0x0e, line 44, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n    7:   0x0e: MonitorEnter        v0\n         0x0f, line 45, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n    8:   0x0f: IgetObject          v1, v5, Field java.util.concurrent.CountDownLatch art.ControlData.reached\n    9:   0x11: InvokeVirtual       { v1 } Ljava/util/concurrent/CountDownLatch;-\u003ecountDown()V\n         0x14, line 47, locals: [3 -\u003e start, 4 -\u003e max, 5 -\u003e data]\n   10:   0x14: IgetObject          v1, v5, Field java.lang.Object art.ControlData.waitFor\n   11:   0x16: InvokeVirtual       { v1 } Ljava/lang/Object;-\u003ewait()V\n\nhence the changed expectations.\n\nTest: art/test/testrunner/testrunner.py -b --host -t 911-get-stack-trace\nChange-Id: If10846b6be145dfda639f6ee78a455a8e6b891a9\n"
    },
    {
      "commit": "a6f5c8cd15316ff1ceeb4ce7c3de0644e3b81cb8",
      "tree": "0621bf0b8c544f7c0d4dc300a7cbaea699561e88",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Wed Jun 20 13:57:04 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Wed Jun 20 13:57:04 2018 +0200"
      },
      "message": "ART-tests: remove DX dependency from 706-checker-scheduler.\n\nWith the D8 generated code 2 PHI instruction are swapped in the ARM64\ncode. This CL updates the corresponding CHECK conditions and enables\nD8.\n\nTest: art/test.py -b -r --target -t 706-checker-scheduler\nBug: 65168732\nChange-Id: If17bfdd0732b850279a10736c15ef296e15f0c90\n"
    },
    {
      "commit": "e383d23918db4eede30c3d78589d4639de3ec446",
      "tree": "a103f54ec49fac8d5cd15661f5c2d0cb5dab32e5",
      "parents": [
        "dbf540399a2aaddad00b1233b80808c80dc0d443"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 19 12:29:51 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 19 17:09:45 2018 -0700"
      },
      "message": "ART: Mask garbage-memory warnings\n\nAdd invariants or NOLINT to let clang-analyzer understand that\nthere\u0027s no garbage involved.\n\n(The analysis itself is too expensive to force it on for all\n local builds.)\n\nTest: mmma art\nChange-Id: I6148d743321248195abb3a8f646e63941f11f9a9\n"
    },
    {
      "commit": "2d8e184b5fdeb9b18fd6816dfdabebe20e57f4e0",
      "tree": "ab25f4636b8e4e60bf84339bec29577d938dd075",
      "parents": [
        "45b12e704e158f29877c78bd9a8406db7e361537"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 19 14:09:31 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 19 14:19:14 2018 -0700"
      },
      "message": "Don\u0027t report OTHER references in test 913\n\nThese references are from vm-internal sources and can change depending\non the configuration and current state of the runtime. Notably\nadditional roots in the OTHER category will be present if the runtime\nis current using instrumentation trampolines for tracing.\n\nTest: ./test/testrunner/testrunner.py --host --debug --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nChange-Id: Ib8c2da7b203edd59be296028557bc074f9d0dceb\n"
    },
    {
      "commit": "02fe4ed7dabdde8d2bf8375cc6eb2556caca215e",
      "tree": "87225435e59588ddf5db0e3ff89a2a2bd7bab49e",
      "parents": [
        "d8d3adcb2ab08725fcb9477887fb462748a4c6bf",
        "03b03467db15e2191d1e53e47e7165bdf13d13cb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 19 17:49:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 19 17:49:59 2018 +0000"
      },
      "message": "Merge \"Mark test-art-*-run-test-dependencies as phony targets\""
    },
    {
      "commit": "d8d3adcb2ab08725fcb9477887fb462748a4c6bf",
      "tree": "cb1beaedc39500ea399ad5bb2b9571f7b1d8f26a",
      "parents": [
        "a53cf8740d72fda0cb8e973f4df64f9ec4b9e8d6",
        "e596f1e7d28f2e9e861da959191538e90422c722"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 19 16:17:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 19 16:17:57 2018 +0000"
      },
      "message": "Merge \"Remove the `art-gtest-valgrind32` testrunner configuration.\""
    },
    {
      "commit": "a53cf8740d72fda0cb8e973f4df64f9ec4b9e8d6",
      "tree": "fcd69c28fd70229fcccb56c8bc05134f780bfc53",
      "parents": [
        "b63d8d1210b7fae2f8368419fa8777a98861fbc9",
        "ce6ed26ae9b078d7ac6782ccbc0713f25dd4932c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 19 16:14:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 19 16:14:48 2018 +0000"
      },
      "message": "Merge \"Run ART run-tests with ASan in speed-profile mode.\""
    },
    {
      "commit": "ce6ed26ae9b078d7ac6782ccbc0713f25dd4932c",
      "tree": "172c175635bc53e374f0f6dafbf3636a6bf07282",
      "parents": [
        "47d165e4e2f11b780cb1b7a0347e7a9313467210"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 19 14:18:40 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 19 15:03:20 2018 +0100"
      },
      "message": "Run ART run-tests with ASan in speed-profile mode.\n\nTest: art/test/testrunner/run_build_test_target.py art-asan\nBug: 62448488\nChange-Id: Ie470006b3249ff456ec3b40c78cfa993dd5505e2\n"
    },
    {
      "commit": "e596f1e7d28f2e9e861da959191538e90422c722",
      "tree": "9fbf18dc005b55530bb834d530ae30679fdaa34f",
      "parents": [
        "47d165e4e2f11b780cb1b7a0347e7a9313467210"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 19 14:47:26 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 19 14:51:46 2018 +0100"
      },
      "message": "Remove the `art-gtest-valgrind32` testrunner configuration.\n\nTest: n/a\nBug: 29282211\nChange-Id: Ie041bb3cb65ef2688ce911e4faa02d05476cfb6d\n"
    },
    {
      "commit": "48eae7d9168f64099ed9285ac8055df9bc682fa7",
      "tree": "a0e4e717aa8cd1a6fc422c06fb7f9c3f1d3bd781",
      "parents": [
        "47d165e4e2f11b780cb1b7a0347e7a9313467210"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jun 15 10:31:55 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 19 14:17:46 2018 +0100"
      },
      "message": "ART: Use d8 as dexer for tests not using desugar\n\nPreliminary step for removing desugar from ART tests.\n\nTest: art/test.py --host --64 -r\nBug: 110150973\nChange-Id: I52a9a38f4877593d25860238c157f66b2d8402dd\n"
    },
    {
      "commit": "556db4d7058505098b6df29d13cf4cae8c5a39ec",
      "tree": "3f9e9939392caf8ff3d2ab9c8c5a103a33410ac8",
      "parents": [
        "3d2a20a9f34f911fa4e80450167c076a9af18153",
        "7124f7d0b89d9adaa136c0ecfd0ccc7e1a2dc28d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 19 12:27:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 19 12:27:31 2018 +0000"
      },
      "message": "Merge \"ART-tests: remove DX dependency from 672/673\""
    },
    {
      "commit": "3d2a20a9f34f911fa4e80450167c076a9af18153",
      "tree": "fb00d35c49314eea4011ce61962aee0295811b03",
      "parents": [
        "2c12bb624e91d8f1282d868fd2f2e33ba3746d6c",
        "37c75151fa6f376279e6d1ccc73da5f88e417236"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 19 08:47:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 19 08:47:51 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX dependency from 661-checker-simd-reduc\""
    },
    {
      "commit": "03b03467db15e2191d1e53e47e7165bdf13d13cb",
      "tree": "921a6a57432f572904543ec2cb0c7330f4a6ef8d",
      "parents": [
        "1e67f052a4119006d7d215ca8bf4946b70960e7b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jun 18 20:29:18 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Jun 18 20:29:18 2018 -0700"
      },
      "message": "Mark test-art-*-run-test-dependencies as phony targets\n\nThese don\u0027t produce output files, so mark them as phony.\n\nTest: Fewer warnings when --warn_real_to_phony is enabled for kati\nChange-Id: I1218a15fe08bf28b5899456e13352ccad457f79c\n"
    },
    {
      "commit": "7124f7d0b89d9adaa136c0ecfd0ccc7e1a2dc28d",
      "tree": "dc8342ed5ab3c0b1b588f603531f8b7ee3df6864",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Mon Jun 18 14:59:23 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Mon Jun 18 14:59:23 2018 +0200"
      },
      "message": "ART-tests: remove DX dependency from 672/673\n\nIn some test cases D8 inverts an IF condition compared to the code\ngenerated by DX and the corresponding checks fail. This CL updates\nthe checks for D8 and enables it.\n\nTest: art/test.py -b -r --host -t 672-checker-throw-method\nTest: art/test.py -b -r --host -t 673-checker-throw-vmethod\nBug: 65168732\nChange-Id: I8beeedfa662e35f918701fb59955b6f93bb47686\n"
    },
    {
      "commit": "37c75151fa6f376279e6d1ccc73da5f88e417236",
      "tree": "5ef1ce59b8e548ab7ee9919b48ae015c313a463a",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Mon Jun 18 13:01:47 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Mon Jun 18 13:01:47 2018 +0200"
      },
      "message": "ART-tests: Remove DX dependency from 661-checker-simd-reduc\n\nIn a few test cases D8 generated code makes ART swap 2 similar PHI\ninstructions. This CL updates the check conditions for D8 and enables\nit.\n\nTest: art/test.py -r -b --host -t 661-checker-simd-reduc\nBug: 65168732\nChange-Id: I0cde3ab21b33bde48da3209df206739ad9d99e89\n"
    },
    {
      "commit": "3e41a539d33c0524271ab12a50e1c494593c7309",
      "tree": "e98a09af71c28b3896b3edda1432a7c019687a63",
      "parents": [
        "1e67f052a4119006d7d215ca8bf4946b70960e7b",
        "cd56c6c647009addf99fb959f259c2b28b8d8600"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 16 14:37:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 16 14:37:21 2018 +0000"
      },
      "message": "Merge \"Simplify the 137-cfi test.\""
    },
    {
      "commit": "cd56c6c647009addf99fb959f259c2b28b8d8600",
      "tree": "57ce453bcb702f912e06c356a29c9f65e176cdd0",
      "parents": [
        "45b12e704e158f29877c78bd9a8406db7e361537"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 03 12:00:18 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 15 21:08:33 2018 +0000"
      },
      "message": "Simplify the 137-cfi test.\n\nTest: ./test.py --host -b -t 137\nChange-Id: I4307ab28d942b2baa110ab26035ef0f095d1b3c7\n"
    },
    {
      "commit": "92a020670417d960597d11788ed5cb044c1770bc",
      "tree": "79feae9308472fa34c164e188c724513843e9941",
      "parents": [
        "69abc5848218b584ca3af941c9429c25bbfc2288",
        "d6750532bae8dbb072e78e410c9a1f14aa071a5b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 18:11:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 18:11:15 2018 +0000"
      },
      "message": "Merge \"ART: Ignore unneeded environment uses.\""
    },
    {
      "commit": "69abc5848218b584ca3af941c9429c25bbfc2288",
      "tree": "44fa3563abbd72ae1316ad313bd3febe3747ba83",
      "parents": [
        "5f7c6a1fc35e04b75e1154620c5fd0ab8758e62c",
        "4d277ba858389980525c16c4b0655ee72af5a44c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 17:49:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 17:49:26 2018 +0000"
      },
      "message": "Merge \"ART: Make GVN work with BoundType.\""
    },
    {
      "commit": "d6750532bae8dbb072e78e410c9a1f14aa071a5b",
      "tree": "bab48e4844d3ed54924b95f0bd1c51ccbbb464b6",
      "parents": [
        "0e3a330f4a545a6a2d352bd4a803c8387f54e76b"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed May 30 20:07:43 2018 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 15 17:21:02 2018 +0100"
      },
      "message": "ART: Ignore unneeded environment uses.\n\nSome of the environment uses of primitive-typed values are\nnot really needed in non-debuggable/non-OSR methods. Ignoring\nthose uses during liveness analysis significantly reduces the\nsize of stack maps in the oat file.\n\nCode reduction on arm64:\nboot-framework.oat: -1.8%\nboot.oat:           -1.4%\n\nTest: 466-get-live-vreg, 564-checker-condition-liveness.\nTest: 639-checker-code-sinking.\nTest: angler boots to GUI.\nTest: test-art-host, test-art-target\n\nChange-Id: I91dcb6d0a8ab86f56c7b243bf9b100f69bcd5979\n"
    },
    {
      "commit": "5f7c6a1fc35e04b75e1154620c5fd0ab8758e62c",
      "tree": "b6b83c7d30bff1856bf94c6dca0aff76a27c7fda",
      "parents": [
        "6580551531f76a3531963a70984614f1c63f800c",
        "d3d00da7b2a1df4c83f1ce5c47a3508bf28a8224"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 16:10:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 16:10:16 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX dependency from 660-checker-simd-sad-*\""
    },
    {
      "commit": "4d277ba858389980525c16c4b0655ee72af5a44c",
      "tree": "5f8c522b1340e52a94af1d329cf069c74d1bb288",
      "parents": [
        "0e3a330f4a545a6a2d352bd4a803c8387f54e76b"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Jun 05 20:54:42 2018 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 15 16:37:44 2018 +0100"
      },
      "message": "ART: Make GVN work with BoundType.\n\nSupport BoundType instruction treatment in GVN.\nNote: BoundType must not be a subject to LICM as it must not be\nmoved from more control dependent basic blocks to less control\ndependent (e.g. hoisted out from the loop) due to semantics of\nbounding the type.\n\nTest: 477-checker-bound-type.\nTest: test-art-target, test-art-host.\n\nChange-Id: I64263d6ec7d9ad75d1fb07d3a89e9973be67682b\n"
    },
    {
      "commit": "6580551531f76a3531963a70984614f1c63f800c",
      "tree": "92307c7f5faa1b6611c4a3ef9c51d2cbba8b0fa7",
      "parents": [
        "013faf6bc6412d04bc5ff8895ca9d6e722a879f7",
        "d0566d41aa32fcbcb255415b0fd67baf1d206919"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 15:14:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 15:14:49 2018 +0000"
      },
      "message": "Merge \"ART: Add native bridge \"support\" to run-test\""
    },
    {
      "commit": "d3d00da7b2a1df4c83f1ce5c47a3508bf28a8224",
      "tree": "731f84766ef3e938a194b6923f6d8a74c948c4ba",
      "parents": [
        "a9b131069c146df4ac58254b496443e20d5beace"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 14:56:26 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 16:26:25 2018 +0200"
      },
      "message": "ART-tests: Remove DX dependency from 660-checker-simd-sad-*\n\nFor these tests, DX and D8 generates identical code (modulo\nregister numbers). Still, in certain test cases, in the\n\"loop_optimization (before)\" phase the order of two Phi instructions\nis swapped.\nThis CL updates the CHECK conditions and enables D8.\n\nTest: art/test.py -b -r --host -t 660-checker-simd-sad-*\nBug: 65168732\n\nChange-Id: I48483d5acff72ca7b7b7c46f9bdd10322fd21d21\n"
    },
    {
      "commit": "013faf6bc6412d04bc5ff8895ca9d6e722a879f7",
      "tree": "24a50a22359479568d03acfdffdc66faefcaf400",
      "parents": [
        "11dd463fd19506c55b8c31a317f61883b2ebe98a",
        "e2b18893e4c22cbf7cbaa294b7a6feaea91f4313"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 14:21:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 14:21:31 2018 +0000"
      },
      "message": "Merge \"ART: Remove DX listing flags from test scripts\""
    },
    {
      "commit": "11dd463fd19506c55b8c31a317f61883b2ebe98a",
      "tree": "173616662e5be53bb34f4dde44278cac725fdf22",
      "parents": [
        "a7ecf8a2519c91f67290f02b40440462bc777817",
        "a9b131069c146df4ac58254b496443e20d5beace"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 14:07:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 14:07:17 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX dependency from 569-checker-pattern-replacement.\""
    },
    {
      "commit": "e2b18893e4c22cbf7cbaa294b7a6feaea91f4313",
      "tree": "76f3b15944b787cf879c8a6eccc1241d2b13911b",
      "parents": [
        "50b179ccf01be26f5d56402355b7b4d0f791d8e2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jun 15 08:58:22 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jun 15 13:29:02 2018 +0100"
      },
      "message": "ART: Remove DX listing flags from test scripts\n\nBug: 110150973\nTest: art/test.py --host -r\nChange-Id: I25da0018ea21727dd85d82fe0840c0ab806e3d3d\n"
    },
    {
      "commit": "a9b131069c146df4ac58254b496443e20d5beace",
      "tree": "9e8b8aebe2e17d04c23054d5fb1c462046fa3a09",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 14:12:12 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 14:12:12 2018 +0200"
      },
      "message": "ART-tests: Remove DX dependency from 569-checker-pattern-replacement.\n\nTest has already been working with D8, this CL only enables it.\n\nTest: art/test.py -b -r --host -t 569-checker-pattern-replacement\nBug: 65168732\nChange-Id: If3496ff7a474adef319a3de89eb438f9b1c31676\n"
    },
    {
      "commit": "5d72a900b7f913a289e78495ccae1f817c31e6e6",
      "tree": "54da62be1aa9ee5313f6e4750d61ea784acc6e5c",
      "parents": [
        "d7bd8192e6eb91bb85e44e69a92745a01f19ae1e",
        "10b59ed66adad5a4a0bad6b50ba16f2c6803d56c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 12:02:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 12:02:46 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX dependency from 565-checker-rotate\""
    },
    {
      "commit": "d7bd8192e6eb91bb85e44e69a92745a01f19ae1e",
      "tree": "9b590caeb46e2396cf69d67e03dde90a69176e72",
      "parents": [
        "fd664eab2359cb6ac745cf32bca240a096a90eff",
        "24d1332f6e65269cf42ffb249f32ffaefe1dad33"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 11:04:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 11:04:29 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX dependency from 530/583\""
    },
    {
      "commit": "10b59ed66adad5a4a0bad6b50ba16f2c6803d56c",
      "tree": "da18eb494e40e100562f15fbb7d152fe78a73ec3",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 12:06:30 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 10:49:03 2018 +0000"
      },
      "message": "ART-tests: Remove DX dependency from 565-checker-rotate\n\nD8 optimizes away the boolean-to-0/1 conversion. This CL moves 2 test\ncases to smali where the checks depend on this (and enables D8).\n\nTest: art/test.py -r -b --host -t 565-checker-rotate\nBug: 65168732\nChange-Id: If6356dcdab51f6ea27e5cfc6fad1f1c90dbf0de5\n"
    },
    {
      "commit": "fd664eab2359cb6ac745cf32bca240a096a90eff",
      "tree": "ceade92234dfed4527e51efe13765941d5bc4c7b",
      "parents": [
        "45b12e704e158f29877c78bd9a8406db7e361537",
        "d4f60386f3220ac0fa5b6dd566cec54db1b085fb"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 09:34:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 15 09:34:39 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX dependency from 646-checker-hadd(-alt)?-(short|char)\""
    },
    {
      "commit": "24d1332f6e65269cf42ffb249f32ffaefe1dad33",
      "tree": "3e5c21543444b6a1a7e0d23a5856870e25f92bd7",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 11:17:01 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Fri Jun 15 11:17:01 2018 +0200"
      },
      "message": "ART-tests: Remove DX dependency from 530/583\n\nThe tests 530-checker-lse2 and 583-checker-zero have already been\npassing with D8. This CL only enables D8 for them.\n\nTest: art/test.py -r -b --target -t 530-checker-lse2\nTest: art/test.py -r -b --target -t 583-checker-zero\nBug: 65168732\nChange-Id: I9ade0ef126f2c34e32d9e18e0ebdfceda1642025\n"
    },
    {
      "commit": "d0566d41aa32fcbcb255415b0fd67baf1d206919",
      "tree": "c58805b79fa25be6f2e865d37fbfbc0d5d89ee40",
      "parents": [
        "45b12e704e158f29877c78bd9a8406db7e361537"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 06 09:54:34 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 14 08:21:15 2018 -0700"
      },
      "message": "ART: Add native bridge \"support\" to run-test\n\nAdd detection of a native-bridge device to run-test. Right now it\nonly recognizes x86+arm (and will only set x86).\n\nIn a follow-up, the test runner needs to be restricted to not\nrun 64-bit tests on such a configuration.\n\nBug: 109714550\nTest: art/test/run-test --dev 001-HelloWorld\nTest: art/test/run-test --dev --64 001-HelloWorld\nChange-Id: Ib91086745084e3281725e86619811332d0be7054\n"
    },
    {
      "commit": "d4f60386f3220ac0fa5b6dd566cec54db1b085fb",
      "tree": "44f268c7423c8736f3bd104ed00b7678163d3af8",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Thu Jun 14 16:33:53 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Thu Jun 14 16:33:53 2018 +0200"
      },
      "message": "ART-tests: Remove DX dependency from 646-checker-hadd(-alt)?-(short|char)\n\nThese tests had two issues with D8: (1) And operands swapped and (2) due\nto unfortunate register-allocation the live ranges of certain registers\nescaped into environment. This CL updates the CHECKS to match the D8-\ngenerated code and refactors a few expressions which results in\nshorter live ranges.\n\nTest: art/test.py -r -b --host -t 646-checker-hadd-alt-char\nTest: art/test.py -r -b --host -t 646-checker-hadd-alt-short\nTest: art/test.py -r -b --host -t 646-checker-hadd-char\nTest: art/test.py -r -b --host -t 646-checker-hadd-short\nBug: 65168732\nChange-Id: Iaa41853123f57ac4d996527414b2f434faa7c4f0\n"
    },
    {
      "commit": "41a50f3627e4d84941aaf36d821ea8ba47750b56",
      "tree": "e7d9b30765d81741e431e4c5b5aa115ff2bbb5a5",
      "parents": [
        "60204d2f1710acdea0294eba242ecbcb01867730",
        "ee18ebc16d72e558c827aa0af9547b1d83b708bc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jun 14 12:31:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 14 12:31:17 2018 +0000"
      },
      "message": "Merge \"Re-enable NonMovingAlloc operations in ThreadStress, except with GSS.\""
    },
    {
      "commit": "7a3e7833c44e76e1e0f53104795c89c237c341f0",
      "tree": "d916de3362dcad37f012a8d425dd2e7e79c04922",
      "parents": [
        "50b179ccf01be26f5d56402355b7b4d0f791d8e2",
        "2227fe49558c5c5fc4820acb2cf357479e74b518"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 14 09:51:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 14 09:51:27 2018 +0000"
      },
      "message": "Merge \"Small refactor of MIN/MAX compiler code.\""
    },
    {
      "commit": "50b179ccf01be26f5d56402355b7b4d0f791d8e2",
      "tree": "d88d2cf06fbba30646dc14d8ab0e4ca87c638d8a",
      "parents": [
        "111b895dfaa271d8e9c32d1186615a0b73c106b5",
        "bb878915bbf94c633596eb8d12d194a0bbd0070b"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Thu Jun 14 08:12:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 14 08:12:59 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX dependency from 626-checker-arm64-scratch-register.\""
    },
    {
      "commit": "2227fe49558c5c5fc4820acb2cf357479e74b518",
      "tree": "bbfb6546c5da802132405569d2f06b459f12a0c3",
      "parents": [
        "111b895dfaa271d8e9c32d1186615a0b73c106b5"
      ],
      "author": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Fri Apr 20 17:12:05 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 14 07:42:40 2018 +0000"
      },
      "message": "Small refactor of MIN/MAX compiler code.\n\nIntegrate instruction code generation and location creation with\nHandleBinaryOp. Code generation has been improved for constant\ninputs 0, 1 and -1.\n\nTest: 679-checker-minmax\nTest: test-art-host, test-art-target.\n\nChange-Id: Ib34eb8a4b29d22a2491d21656e1f64011ef9f986\n"
    },
    {
      "commit": "bb878915bbf94c633596eb8d12d194a0bbd0070b",
      "tree": "3c246e3858a39094d21e7dab1b9847fbbcdfb429",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Wed Jun 13 11:04:45 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Wed Jun 13 12:53:43 2018 +0000"
      },
      "message": "ART-tests: Remove DX dependency from 626-checker-arm64-scratch-register.\n\nThis test contains a single test case, a long method and the CHECK\nconditions matching the blocks and registers are dependent on the\nexact patterns of the DX generated code. This CL moves the entire\nmethod into smali and enables D8.\n\nTest: art/test.py -r -b --target --64 -t 626-checker-arm64-scratch-register\n      Tested locally with --host/--gcstress/--jvm.\nBug: 32545705\nBug: 65168732\nChange-Id: If50f38a2af526ffee8ea37a4edb4c8def29a4d84\n"
    },
    {
      "commit": "ee18ebc16d72e558c827aa0af9547b1d83b708bc",
      "tree": "982ed444f325f62908ec1dd328406bbf96ea1280",
      "parents": [
        "7e3b455823d79436818742bb1edef124c7a56840"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 13 13:06:44 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 13 13:06:44 2018 +0100"
      },
      "message": "Re-enable NonMovingAlloc operations in ThreadStress, except with GSS.\n\nWhen the Generational Semi-Space (GSS) collector is used,\nexplicitly assign frequencies to all ThreadStress operations\nand set the frequency of NonMovingAlloc operations to 0.\n\nAlso properly handle ThreadStress\u0027 `-nonmovingalloc` option,\nwhich was documented but not implemented.\n\nTest: art/test/testrunner/testrunner.py -t 004-ThreadStress (with GSS)\nTest: art/test/testrunner/testrunner.py -t 004-ThreadStress (without GSS)\nBug: 72738921\nChange-Id: Ia033a77d997eafa2bfa7244697ba7ffe31926133\n"
    },
    {
      "commit": "0d20d58c0d543a25b2dece1aeccd4c9984c7124c",
      "tree": "0dc566fa347060622c0aa5c4d2841a99ee1ffd10",
      "parents": [
        "ff5d955306660a6f6515967659515717076c1d87"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 12 16:16:41 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 12 16:42:19 2018 -0700"
      },
      "message": "Add missing spaces in constructing args\n\nWe were missing a few spaces in some argument strings. This could\ncause the testrunner to fail if it is used with a --run-test-option or\nwith multiple target options.\n\nTest: ./test/testrunner/testrunner.py --host --jvm\nTest: ./test/testrunner/testrunner.py --host --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nChange-Id: I8b4330c252e2f13f4591bbeadef3532ca7b31d06\n"
    },
    {
      "commit": "7e3b455823d79436818742bb1edef124c7a56840",
      "tree": "e067fe3660c77d4f05a6b3c761d00cf18c5e6605",
      "parents": [
        "9b98ee8fe83d4581f0beaff83767ea6f61ac75f3",
        "6fa4404f501cf0fb5a87074baec9673cedde25d4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 12 16:44:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 16:44:20 2018 +0000"
      },
      "message": "Merge \"Simplify const-string.indexOf().\""
    },
    {
      "commit": "1a3f10fccc7ab3fba400afb5645c79940ae987e5",
      "tree": "c462902030a7158dadb9ab2384473d694c460aab",
      "parents": [
        "178615c742f3b0b5ed107dbc3e606dfe3ba98476",
        "6f17b57948e04486b145b5cdf7325bd87f5e03f8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 15:56:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 15:56:27 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX-dependency from 618-checker-induction.\""
    },
    {
      "commit": "6fa4404f501cf0fb5a87074baec9673cedde25d4",
      "tree": "ade27385c4aa0db96956b873321a7994e69acd8d",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 19 18:42:49 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 12 15:46:22 2018 +0100"
      },
      "message": "Simplify const-string.indexOf().\n\nSimplify String.indexOf() called on empty or single-char\nconstant string. We see these patterns in inlined\n    java.net.URI$Parser.scan(int, int, String, String)\ncalled with constant strings from other URI$Parser methods.\nThe empty string simplification allows constant folding\nand DCE to remove some of the code. The single-character\nstring simplification avoids entrypoint call overhead.\n\nTest: New tests in 458-checker-instruct-simplification\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I4d3c997a8d6220202d481bbf8cbf280832c27cd7\n"
    },
    {
      "commit": "32e83b36601e080b01712aeb6e9ebaa512eb0f33",
      "tree": "78c34830c4076c726d3926dbf96d9dd8ab8eae8c",
      "parents": [
        "36e18dca7b3e09fc6d71d222acbe0d43de7ec196",
        "8bdbd3726073dd6956b734fe7fbe46a811968510"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 13:15:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 13:15:36 2018 +0000"
      },
      "message": "Merge \"ART-tests: Remove DX-dependency from 570-checker-osr.\""
    },
    {
      "commit": "6f17b57948e04486b145b5cdf7325bd87f5e03f8",
      "tree": "6c920e3685b27bc8c0e660e45c5b051b420fc2f0",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Tue Jun 12 15:05:19 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Tue Jun 12 15:14:28 2018 +0200"
      },
      "message": "ART-tests: Remove DX-dependency from 618-checker-induction.\n\nIn some test cases D8 generates PHI nodes in different order than DX. This\nCL updates the numbering of PHI nodes in the CHECK conditions in those\ncases and enables D8.\n\nTest: art/test.py -r -b --host -t 618-checker-induction\n      Tested locally with --target/--gcstress.\nBug: 65168732\n\nChange-Id: Ibef8ae37a7924aa12ac496ab5db5d8088e94617a\n"
    },
    {
      "commit": "515b18329177b7009d681539edc9ddb8bbf4dc3b",
      "tree": "d73761d5af327e63e418e5ef8d34c41c32baf1a9",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526",
        "4914d157d24f0ff2e0c0963e0441222138f29081"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 11:13:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 11:13:45 2018 +0000"
      },
      "message": "Merge \"ART-tests: remove DX-dependency from 566-checker-signum\""
    },
    {
      "commit": "8bdbd3726073dd6956b734fe7fbe46a811968510",
      "tree": "fb58b43db8b9ef28363b7918c52cc14999aa3eb8",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Tue Jun 12 11:37:27 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Tue Jun 12 11:37:27 2018 +0200"
      },
      "message": "ART-tests: Remove DX-dependency from 570-checker-osr.\n\nThis test has already been working with D8, this CL only enables D8.\n\nTest: art/test.py -r -b --host -t 570-checker-osr\n      Tested locally with --target/--gcstress.\nBug: 65168732\n\nChange-Id: I3d8094f50cc765efb57b59a96aff972f9d04441f\n"
    },
    {
      "commit": "4914d157d24f0ff2e0c0963e0441222138f29081",
      "tree": "845514db6a616530d3beedfb0493dd57460c93a1",
      "parents": [
        "74f2ccc9fad3cfd8e04d24aceba1c58ce08884dc"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Tue Jun 12 10:40:19 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Tue Jun 12 08:55:43 2018 +0000"
      },
      "message": "ART-tests: remove DX-dependency from 566-checker-signum\n\nOne test case converts a boolean to 0/1 with a conditional. This construct\nis optimized away by D8. This CL moves this test case to smali and enables\nD8.\n\nTest: art/test.py -b -r --host -t 566-checker-signum\n      Tested locally with --target/--gcstress\nBug: 65168732\n\nChange-Id: Ic1f901dea486692174d38281413fe06539a41a34\n"
    },
    {
      "commit": "1e739fa94947147953c53e92964e0e9e1eac0526",
      "tree": "100f47da9278990598e35c8aa97fc0b465fbc460",
      "parents": [
        "9f13307f8fd357aafaaf849c5c0e517256ef2cc8",
        "2682918b0168d3f47294676547efc0ee1c7a7249"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 01:16:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 01:16:24 2018 +0000"
      },
      "message": "Merge \"Add support for a --run-test-option to testrunner.\""
    },
    {
      "commit": "2682918b0168d3f47294676547efc0ee1c7a7249",
      "tree": "572fe4f04222c452b188784ce0d5be5aef203aeb",
      "parents": [
        "74f2ccc9fad3cfd8e04d24aceba1c58ce08884dc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 11:36:24 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 23:11:06 2018 +0000"
      },
      "message": "Add support for a --run-test-option to testrunner.\n\nSometimes it is useful to send specific run-test options to every\ntest. This adds a --run-test-option argument to testrunner that will\nlet one pass any run-test options down to run-test with no\nmodification.\n\nTest: ./test/testrunner/testrunner.py \\\n        --host \\\n        --run-test-option\u003d\u0027--with-agent libtifast.so\u003dlog,MethodEntry,MethodExit\u0027 \\\n        -t 001-HelloWorld\n\nChange-Id: Ice8e5b83fce4389b7461f5284c093dd144969640\n"
    },
    {
      "commit": "41349055f9f7bbe86a93ef59343525731a0b2e1a",
      "tree": "1486e5ddfafacb6533370333d77365ab62a7d43f",
      "parents": [
        "a316f9129a698ccb995b035f8781f93c58981893"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 13:28:17 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 22:47:56 2018 +0000"
      },
      "message": "Make ti-stress work on RI\n\nIn some cases the RI will send JVMTI agents events with some of the\nrequired reference arguments null. This could cause the ti-stress\nagent to crash. Fix this by explicitly null checking before calling\nDeleteLocalRef.\n\nTest: java -agentpath:$ANDROID_HOST_OUT/nativetest64/libtistress.so\u003djvmti-stress,trace \\\n           HelloWorld\n\nChange-Id: I29f4144e2e773253b76f5fa8b38d57ae1deab03b\n"
    },
    {
      "commit": "a316f9129a698ccb995b035f8781f93c58981893",
      "tree": "a55c64c376f7cd54018a6de209102464f9b9d38b",
      "parents": [
        "74f2ccc9fad3cfd8e04d24aceba1c58ce08884dc",
        "baac7e44445286bb2a048ff24a14a65c537dd9b9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 11 19:13:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 11 19:13:39 2018 +0000"
      },
      "message": "Merge \"\"Revert^4 \"Make adbconnection start automatically for debuggable apps (on target)\"\""
    },
    {
      "commit": "74f2ccc9fad3cfd8e04d24aceba1c58ce08884dc",
      "tree": "ba0051646cb8e8192f690259475101b61101d5c3",
      "parents": [
        "9fdd0125538fe63458aec68c4a40b025759bcf7c",
        "05e34f4cb8c9db165d1008721e874b9dd3db024b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 11 15:02:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 11 15:02:44 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Remove support for Valgrind in ART.\"\""
    },
    {
      "commit": "05e34f4cb8c9db165d1008721e874b9dd3db024b",
      "tree": "c41d397ef5cfb9d7918fceadcda3195a0d0d91de",
      "parents": [
        "428d80e3a49f732b39bb0c71cfde26451e3fdf4d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 24 13:19:05 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 11 14:03:37 2018 +0100"
      },
      "message": "Revert^2 \"Remove support for Valgrind in ART.\"\n\n- Disable test configuration art-gtest-valgrind64\n  (art-gtest-valgrind32 was already disabled).\n- Remove Makefile logic regarding testing with Valgrind.\n- Remove occurrences of `TEST_DISABLED_FOR_MEMORY_TOOL_VALGRIND`.\n- Replace occurrences of `TEST_DISABLED_FOR_MEMORY_TOOL_ASAN` with\n  `TEST_DISABLED_FOR_MEMORY_TOOL`.\n- Replace the potentially dynamically evaluated\n  `RUNNING_ON_MEMORY_TOOL` expression with constant\n  `kRunningOnMemoryTool`.\n- Simplify and fold the logic of\n  `art::ArenaAllocatorMemoryToolCheckImpl` and\n  `art::ArenaAllocatorMemoryToolCheck` into\n  `art::ArenaAllocatorMemoryTool`.\n- Adjust comments regarding memory tools.\n- Remove Valgrind suppression files.\n- Remove `--callgrind` option from tools/art.\n\nThis reverts commit 8b362a87d52a6668ffd2283ef6ffc274315f41c8.\n\nChange-Id: I23c76845e6ccf766f19b22b58a0d5161f60842a9\nTest: art/test.py\nTest: art/test/testrunner/run_build_test_target.py art-asan\nBug: 77856586\nBug: 29282211\n"
    },
    {
      "commit": "4c8e12e66968929b36fac6a2237ca4b04160161e",
      "tree": "d8bbfd72a978c69ef2eef98c37e7869673c52295",
      "parents": [
        "20c64f8d802cc575cc9a1a1f6c493a611b23e2ee"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri May 18 08:33:20 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jun 11 10:57:17 2018 +0100"
      },
      "message": "ART: Adds an entrypoint for invoke-custom\n\nAdd support for the compiler to call into the runtime for\ninvoke-custom bytecodes.\n\nBug: 35337872\nTest: art/test.py --host -r -t 952\nTest: art/test.py --target --64 -r -t 952\nTest: art/test.py --target --32 -r -t 952\nChange-Id: I821432e7e5248c91b8e1d36c3112974c34171803\n"
    },
    {
      "commit": "baac7e44445286bb2a048ff24a14a65c537dd9b9",
      "tree": "838047521312068499b0183ceb93f958a40f93f0",
      "parents": [
        "cf8e60fceee8b622b63f022e7b37f7df0f604320"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 08 15:30:11 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 08 08:45:39 2018 -0700"
      },
      "message": "\"Revert^4 \"Make adbconnection start automatically for debuggable apps (on target)\"\n\nNeeded to tell run-jdwp-tests.sh not to load adbconnection since it\nmight not be present.\n\nThis reverts commit fb57a6528d73e6ddbccf3049f08f6fa400e6dcd1.\n\nReason for revert: Added -XjdwpProvider:none to run-jdwp-tests.sh\n\nBug: 109505014\nTest: ./art/tools/run-libjdwp-tests.sh\n\nChange-Id: I43941f7048ae5b64c6cbe7a8e7c273d47596192c\n"
    },
    {
      "commit": "456dc5c7c70c45bf290c236aa1514b1274f120e1",
      "tree": "4c9bc3a1c2b2811547f48a07796b9eace8d8f7e3",
      "parents": [
        "cf8e60fceee8b622b63f022e7b37f7df0f604320",
        "cd260ebf53e0e05bd75c37c4139f32782eb4ad97"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 08 15:43:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 08 15:43:30 2018 +0000"
      },
      "message": "Merge \"ART: Simplify invoke-polymorphic entrypoints\""
    },
    {
      "commit": "cf8e60fceee8b622b63f022e7b37f7df0f604320",
      "tree": "571b0f76990d1fe9e72c9e373aa18398698371df",
      "parents": [
        "408bdc604e4fe230bf90ffa6816bfbbb3786806e",
        "92149d0a8e651a1d0f46bf4c94bdac809aa034ab"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 08 14:18:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 08 14:18:04 2018 +0000"
      },
      "message": "Merge \"Blacklist test.\""
    },
    {
      "commit": "cd260ebf53e0e05bd75c37c4139f32782eb4ad97",
      "tree": "dab8e9054c59c16303ab9c8aeed01edeb0bb12da",
      "parents": [
        "408bdc604e4fe230bf90ffa6816bfbbb3786806e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jun 06 09:04:17 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jun 08 14:56:10 2018 +0100"
      },
      "message": "ART: Simplify invoke-polymorphic entrypoints\n\nMoves to pattern used by the interpreter bridge and writes the result\nin both the regular return register and the floating point result\nregister.\n\nAdd return value tests to 956-method-handles.\n\nTest: art/test.py --host -r -t 956\nTest: art/test.py --target --32 -r -t 956\nTest: art/test.py --target --64 -r -t 956\nChange-Id: I7389d04b70b88e149682f6d656ab185e48bcbf66\n"
    },
    {
      "commit": "92149d0a8e651a1d0f46bf4c94bdac809aa034ab",
      "tree": "1daf5b0ec482a1069b3fda3bfe85082d4a244c86",
      "parents": [
        "e5a0dd8e2a985bd4f6469cf3ab86806b158b2f73"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 08 10:36:45 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 08 13:32:24 2018 +0100"
      },
      "message": "Blacklist test.\n\nbug: 109791792\nTest: m\nChange-Id: I1332794e8c1ee190ec5683ba5c3dbf519e02a487\n"
    },
    {
      "commit": "bac28b0d5fb0765291adf8379bc502783cbb15b0",
      "tree": "779a3f4e2e4f3274c8a6777e910e209841f80d06",
      "parents": [
        "e5a0dd8e2a985bd4f6469cf3ab86806b158b2f73",
        "fb57a6528d73e6ddbccf3049f08f6fa400e6dcd1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 08 09:40:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 08 09:40:51 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert^2 \"Make adbconnection start automatically for debuggable apps (on target)\"\"\""
    }
  ],
  "next": "fb57a6528d73e6ddbccf3049f08f6fa400e6dcd1"
}
