)]}'
{
  "log": [
    {
      "commit": "7a5a7c3add22af1b9d9ffd03ed664092eb6351c6",
      "tree": "6707b05142e09e7af4270b28ea86f26465600ef9",
      "parents": [
        "987a8eaa3b34dc4be71ee15e3ec56cc16ec8e5d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 08 10:02:15 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 08 14:29:37 2021 +0000"
      },
      "message": "arm/arm64: Add comment to JNI assemblers\u0027 TestGcMarking.\n\nTest: m\nBug: 172332525\nChange-Id: I6515f326d331e9de3e4c12b48c680dad4272fd60\n"
    },
    {
      "commit": "6a5a5b68647926ce9359607c216e010c4c0b40a1",
      "tree": "6fdf50ea63a98e16f62c5add5ab6df0ef413390d",
      "parents": [
        "c714f40caec532522ecc5e611b15e857b3b65484"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 03 11:06:50 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 05 12:30:47 2021 +0000"
      },
      "message": "arm/arm64: Use marking register in JNI stubs.\n\nDo not load `is_gc_marking` from the `Thread` when it is\nalready available in r8 on arm and x20 on arm64.\n\nGolem results for art-opt-cc on Odroid-C2 (higher is better):\nlinux-armv7                     before after\nNativeDowncallStaticNormal      5.4429 5.5021 (+1.088%)\nNativeDowncallStaticNormal6     5.1163 5.1498 (+0.6554%)\nNativeDowncallStaticNormalRefs6 4.8876 4.9188 (+0.6394%)\nNativeDowncallStaticFast        15.992 16.505 (+3.207%)\nNativeDowncallStaticFast6       13.466 13.705 (+1.775%)\nNativeDowncallStaticFastRefs6   11.994 12.183 (+1.578%)\nlinux-armv8                     before after\nNativeDowncallStaticNormal      5.8594 5.9026 (+0.7378)\nNativeDowncallStaticNormal6     5.5198 5.5607 (+0.7414)\nNativeDowncallStaticNormalRefs6 5.1498 5.1862 (+0.7072)\nNativeDowncallStaticFast        17.057 17.439 (+2.242%)\nNativeDowncallStaticFast6       14.478 14.757 (+1.922%)\nNativeDowncallStaticFastRefs6   12.183 12.376 (+1.584%)\n\nTest: m test-art-host-gtest\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing --gcstress\nBug: 172332525\nChange-Id: I595cd0e17a480cdfd86c548a4f9853f4b86f4047\n"
    },
    {
      "commit": "cedec9db0a9accfdcf5eb695879e0b2caf2c34cb",
      "tree": "99fd71a3ef398a471507ed815c4a175805ad51f3",
      "parents": [
        "0ccc970b3c00b172e3cff8e10da13dd6323ccd52"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 08 16:16:13 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 14:34:43 2021 +0000"
      },
      "message": "Do not create HandleScope for JNI transitions.\n\nWe previously crated a HandleScope in the JNI transition\nframe to hold references passed as jobject (jclass, etc.)\nto the native function and these references were actually\nspilled twice during the transition.\n\nWe now construct the jobject as a pointer to the reference\nspilled in the reserved out vreg area in the caller\u0027s frame.\nAnd the jclass for static methods is just a pointer to the\nmethod\u0027s declaring class. This reduces the amount of work\nrequired in the JNI transition, both on entry (in compiled\nstubs) and exit (in JniMethodEnd*).\n\nSome additional work is required when GC visits references\nof a native method as we need to walk over the method\u0027s\nshorty which was unnecessary for a HandleScope.\n\nAlso fix Thread::InitStackHwm() to calculate correct stack\nsize needed by the new Thread::IsJniTransitionReference().\n\nThe results for StringToBytesBenchmark on blueline little\ncores running at fixed frequency 1420800 are approximately\narm64 (medians from 3 runs) before after\ntimeGetBytesAscii EMPTY     447.33 436.86\ntimeGetBytesIso88591 EMPTY  440.52 431.13\ntimeGetBytesUtf8 EMPTY      432.31 409.82\narm (medians from 3 runs)   before after\ntimeGetBytesAscii EMPTY     500.53 490.87\ntimeGetBytesIso88591 EMPTY  496.45 495.30\ntimeGetBytesUtf8 EMPTY      488.84 472.68\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --gcstress\nTest: testrunner.py --host --jit-on-first-use\nTest: testrunner.py --host --jit-on-first-use --gcstress\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nTest: boots.\nBug: 172332525\nChange-Id: I658f9d87071587b3e89f31c65feca976a11e9cc2\n"
    },
    {
      "commit": "2cefb3be7346aa1b468e91b78ac6d7f9852a50e5",
      "tree": "fa8c9c514386b114df20f3face4ef363af76625a",
      "parents": [
        "09efc1604936c234b65a5d278f5ea63da29b17cd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 22 13:32:33 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 09:44:09 2021 +0000"
      },
      "message": "x86: Fix CriticalNative argument spilling in JNI stubs.\n\nDo not move incoming stack arguments before we have spilled\nthe scratch register ECX.\n\nFix JniCompilerTest to initialize classes early so that we\nreally test what we were supposed to. This exposed the x86\nbug fixed here.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 172332525\nChange-Id: I7c06c8ccf18f5f66772c70f6a9a9a314668ce70d\n"
    },
    {
      "commit": "55ab7e84c4682c492b6fa18375b87ffc5d0b23bb",
      "tree": "5fcc2567a1a4e6ae73dead2f70c69bc03b0a64bb",
      "parents": [
        "ac27ac01490f53f9e2413dc9b66fbb2880904c96"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Apr 27 21:02:28 2020 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Feb 05 11:34:38 2021 +0000"
      },
      "message": "ARM64: Support SVE VL other than 128-bit.\n\nArm SVE register size is not fixed and can be a\nmultiple of 128 bits. To support that the patch\nremoves explicit assumptions on the SIMD register\nsize to be 128 bit from the vectorizer and code\ngenerators and enables configurable SVE vector\nlength autovectorization, e.g. extends SIMD register\nsave/restore routines.\n\nTest: art SIMD tests on VIXL simulator.\nTest: art tests on FVP (steps in test/README.arm_fvp.md)\n      with FVP arg:\n      -C SVE.ScalableVectorExtension.veclen\u003d[2,4]\n      (SVE vector [128,256] bits wide)\n\nChange-Id: Icb46e7eb17f21d3bd38b16dd50f735c29b316427\n"
    },
    {
      "commit": "853367b85d8e58fa7de8b8b7bc9810da9147fcd8",
      "tree": "c25bc624819d5e09cd0a81123d6cbbe9f29c0b60",
      "parents": [
        "c39af9409ed4c8dd711be606f758a9b378cd0ee3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 25 09:58:21 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 09:12:37 2021 +0000"
      },
      "message": "arm: Fix and improve JNI frame entry/exit.\n\nAdd workaround for vixl emitting UNPREDICTABLE instruction\nin frame exit. Pop LR directly to PC when possible and emit\npreviously missing CFI data otherwise.\n\nFor frames that just save LR and align the stack with one\nmore unused word, make the frame entry a single PUSH (by\narbitrarily storing r3) and make exit a single POP (by\narbitrarily restoring r3 which we are allowed to clobber\nas it\u0027s a caller-save register not used for return value).\n\nTest: m test-art-host-gtest\nTest: run-gtests.sh\nTest: testrunner.py --target --32 --optimizing\nBug: 178048807\nChange-Id: I8752711bfd4bcfc2c1cfa371108de393df00aeb8\n"
    },
    {
      "commit": "a07de551da5147f3635c665a31f262cf65647118",
      "tree": "d6f8199cc45ab8b6ef779f97ef0e8f0d04520ef8",
      "parents": [
        "4483d2a4ed7e6c018e304c234484940ec0476039"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Sun Nov 01 22:42:43 2020 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Nov 16 14:31:54 2020 +0000"
      },
      "message": "Revert^2 \"ART: Fix breaking changes from recent VIXL update.\"\n\nThis reverts commit eeaf47f7c9bbad29afab84a0f199a5751d9c616b.\n\nAlso fixes the gtest failure when VIXL simulator stack\nwas overflown.\n\nTest: test-art-target, test-art-host.\nTest: ART_USE_READ_BARRIER\u003dfalse \\\n      SANITIZE_HOST\u003daddress \\\n      ASAN_OPTIONS\u003d\u0027detect_leaks\u003d0\u0027 \\\n      SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue \\\n      ART_HEAP_POISONING\u003dtrue m test-art-host-gtest\n\nChange-Id: Ibc1f21204940083879f767d6993127bdde8326af\n"
    },
    {
      "commit": "eeaf47f7c9bbad29afab84a0f199a5751d9c616b",
      "tree": "3b1572bd8c3cd89dbe060b52d1760bd857e999ed",
      "parents": [
        "1f3612f93759823d630e117be5216f694e0702e9"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Oct 28 15:59:29 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 28 17:42:50 2020 +0000"
      },
      "message": "Revert \"ART: Fix breaking changes from recent VIXL update.\"\n\nRevert submission 1331125-VIXL_UPDATE_SVE\n\nReason for revert: broken build git_master-art-host/art-gtest-heap-poisoning @ 6936943\nReverted Changes:\nIc10af84a0:Merge remote-tracking branch \u0027aosp/upstream-master...\nI752a0b0ba:ART: Fix breaking changes from recent VIXL update....\n\nBug: 171879890\nChange-Id: Idb0d5c2e88948d799a4ef2c828be2828ea2270ea\n"
    },
    {
      "commit": "4955036617ff4940bd35fa8ce63f0728c1042902",
      "tree": "20ebe9c047b9ed5e21e99f2f0a00a3946fa731e8",
      "parents": [
        "036b0708c12a33469db4a5adde9ded152b5eb700"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jul 05 18:23:03 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 28 12:03:34 2020 +0000"
      },
      "message": "ART: Fix breaking changes from recent VIXL update.\n\nAlso fixes the vixl-related headers includes.\n\nTest: test-art-target, test-art-host\n\nChange-Id: I752a0b0baf741aa2a0693253155042104c8b3b27\n"
    },
    {
      "commit": "9dfb1a9d642b9eb627895ef3364736fc839b4fe4",
      "tree": "776f1e58c13f620829bde196163ebab089506d1b",
      "parents": [
        "c372314fe478afe6aec5573c26bca378d686072d"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Tue Sep 22 13:27:18 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 23 08:05:32 2020 +0000"
      },
      "message": "X86: Implement VarHandle.getAndSet, getAndSetAcquire, getAndSetRelease\n\nThis commit implements VarHandle getAndSet variants. This implied adding\nxchgb and xchgw instructions and tests for them.\n\nAlso, all the varType checks were moved to GenerateVarHandleCommonChecks.\n\nTest: ART_HEAP_POISONING\u003dtrue art/test.py --host -r -t 712-varhandle-invocation --32\nTest: ART_HEAP_POISONING\u003dfalse art/test.py --host -r -t 712-varhandle-invocation --32\nTest: ART_USE_READ_BARRIER\u003dtrue art/test.py --host -r -t 712-varhandle-invocation --32\nTest: ART_USE_READ_BARRIER\u003dfalse art/test.py --host -r -t 712-varhandle-invocation --32\nTest: m test-art-host-gtest\nBug: 65872996\n\nChange-Id: I675f47e1dbb51a5ece42f20ad8ce552cfef63ffe\n"
    },
    {
      "commit": "331c8e371f2a3324070a4da966af8bf296b58bbb",
      "tree": "82ad282811d40e605bd7e0ad1c3be81ea3385e7f",
      "parents": [
        "49cde240141d84bc0d79ed2225aff5b1a7f8a65e"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Sep 11 17:03:58 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Sep 22 16:39:51 2020 +0000"
      },
      "message": "Fix expected results for clang-r399163 update.\n\nllvm-objdump changed the format it uses for displaying assembly, so we\nmust also adapt all of the ART tests similarly, since they check for\nexact matching output. llvm-dwarfdump has similarly changed its outputs,\nso we adjust our expectations there too.\n\nBug: http://b/155835175\nTest: m test-art-host-gtest\nChange-Id: Iefdb7b98b5f87d9c7bbad1930a4393919d9b9b34\n"
    },
    {
      "commit": "d0f71f26f0f23d7a054ccdde552a9c6003fd33a6",
      "tree": "4a86250064448fc85678969ba70e9c28d487e65a",
      "parents": [
        "fdb81da69234b482ddcf5089d6821bb60dc93868"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Thu Sep 17 09:00:15 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 11:52:55 2020 +0000"
      },
      "message": "X86: Add the other get VarHandles (getVolatile, getAcquire, getOpaque)\n\nThis commit implements VarHandle.getVolatile, getAcquire and getOpaque\nintrinsics.\n\nTest: ART_HEAP_POISONING\u003dtrue art/test.py --host -r -t 712-varhandle-invocation --32\nTest: ART_HEAP_POISONING\u003dfalse art/test.py --host -r -t 712-varhandle-invocation --32\nTest: ART_USE_READ_BARRIER\u003dtrue art/test.py --host -r -t 712-varhandle-invocation --32\nTest: ART_USE_READ_BARRIER\u003dfalse art/test.py --host -r -t 712-varhandle-invocation --32\nBug: 65872996\nChange-Id: I38501c226c9d5af0a9e5a1230abcb3114aad4737\n"
    },
    {
      "commit": "eb2c9dd52679d590428a33556f45fb49eaef5e0e",
      "tree": "9bb849944b66c9b3ec20536e7c5a37af41a54195",
      "parents": [
        "f61e0617b89e4ad60373f36da56812c20a3e0b20"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Mon Sep 14 13:22:40 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 18 08:21:00 2020 +0000"
      },
      "message": "X86: Implement VarHandle.getAndAdd intrinsic\n\nThis commit implements VarHandle getAndAdd intrinsic. This also implied\nadding xadd instruction and tests for it.\n\nTest: art/test.py --host -r -t 712-varhandle-invocation --32\nTest: m test-art-host-gtest\nBug: 65872996\nChange-Id: I84dd95ba6464c8a73ace03a13817147c7099677a\n"
    },
    {
      "commit": "cde98193476cc295339e54a608110f2546eb8308",
      "tree": "cea46ad451e18a677a2380dc4c0e7c8ad76d2b5f",
      "parents": [
        "9dec90a069386a5e538f5cfb9ff7ef789bdbafdb"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Sun Sep 13 12:32:09 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 17 09:00:53 2020 +0000"
      },
      "message": "X86: Add the other set VarHandles (setVolatile, setRelease, setOpaque)\n\nThis commit implements VarHandle.setVolatile, setRelease and setOpaque\nintrisics. This also implied refactoring HandleFieldSet to be reused in\nall set VarHandles, as the code is very similar.\n\nTest: ART_HEAP_POISONING\u003dtrue art/test.py --host --all-compiler -r --32\nTest: ART_HEAP_POISONING\u003dfalse art/test.py --host --all-compiler -r --32\nTest: ART_USE_READ_BARRIER\u003dtrue art/test.py --host --all-compiler -r --32\nTest: ART_USE_READ_BARRIER\u003dfalse art/test.py --host --all-compiler -r --32\nBug: 65872996\nChange-Id: I9a1d5fec6c5086c1e77ba65c3337da1133b3e3f1\n"
    },
    {
      "commit": "77cba3cc758ac6141abbf1297de8bd2df7083bbd",
      "tree": "0e93e5d6ed8fa8057bdaf837b5404c95ec3f4b8b",
      "parents": [
        "52d2c0c3af51b9da9e20cfe6b10d72b816ddb7af"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 16 15:21:35 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 16 17:17:23 2020 +0000"
      },
      "message": "Add andw for memory to x86 assembler.\n\nTest: assembler_x86_test\nChange-Id: I5866557f9498f6e5f5713fff2ce58c70e47bd74b\n"
    },
    {
      "commit": "009568fc43b9597e215a3495f7a906eb5cd7a077",
      "tree": "e249c4ab41a662b6778115784d623dc236ae5932",
      "parents": [
        "19a73a22227bb6b47ba2e7c1a45e07148492a26f"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Fri Sep 11 13:35:03 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Sep 14 14:25:12 2020 +0000"
      },
      "message": "X86: Add tests for cmpxchgw and cmpxchgb\n\nThe two instructions were added in a previous commit and were needed for\nVarHandle.compareAndSet intrinsic.\n\nTest: m art_compiler_host_tests\nBug: 65872996\nChange-Id: If2a9d8d1a4c40034d16e2082f2e5948bcdfbab21\n"
    },
    {
      "commit": "812746293eb7e5b95094bf4cb166ee9f93f4e6c3",
      "tree": "251edd9adc66a71cb7c993e0684744058675e4c2",
      "parents": [
        "b0bf9e219902ea05bb303fc5e4727b68f5df5d3e"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Thu Sep 10 10:33:14 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 10 14:23:32 2020 +0000"
      },
      "message": "X86: Add test for movw\n\nTest: SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue TARGET_BUILD_UNBUNDLED\u003dtrue m test-art-host-gtest\nChange-Id: I5296ef734484c6cf3c441f96fc3a64572b5909dc\n"
    },
    {
      "commit": "5e13d453acc03fda08dae23e085f7161a73f7032",
      "tree": "713b60fff222f3ed1b4ad518ee7e95c9cba041ce",
      "parents": [
        "8376a6543b8500c5321ddd6f6ead04e1397ceab8"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Tue Sep 08 14:35:09 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 10 12:48:50 2020 +0000"
      },
      "message": "X86: Implement VarHandle.compareAndSet() for fields.\n\nThis commit implements VarHandle compareAndExchange access mode for\nfields (both static and instance).\n\nInt64 and Float64 are not implemented because ParallelMove might fail\nwhen moving register pairs.\n\nTest: ART_HEAP_POISONING\u003dtrue art/test.py --host --32 -r -t 712-varhandle-invocations\nTest: ART_HEAP_POISONING\u003dfalse art/test.py --host --32 -r -t 712-varhandle-invocations\nBug: 65872996\nChange-Id: I92e51c348f076c23413e419948f03197c286a619\n"
    },
    {
      "commit": "ca8343842f9094fd5eb86569d293250e783f582c",
      "tree": "c4e040eff9f8528626535106a88fe4e7bb317a00",
      "parents": [
        "49a19f38c35605e675eee271691ed465802859bf"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 26 21:41:13 2020 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 28 15:47:40 2020 +0000"
      },
      "message": "Avoid NanoSleep overflow\n\nNanoSleep with a very large argument could cause it to fail on 32 bits.\nIt doesn\u0027t appear to me that this was ever exposed to client code.\nSo this was probably not an observable bug.\n\nRemove redundant uses of \"constexpr inline\" instead of adding another\none.\n\nBug: 161006928\nTest: Treehugger\nChange-Id: I2ad3b92d01c764915ab2aac17cc72ac5c6907ed4\n"
    },
    {
      "commit": "9e5ad47aeae004c45f434301e5bb3cb5ba43755c",
      "tree": "fb21c6595822155ed8c2efe3ade7f0e081dbc076",
      "parents": [
        "a78906e9d78b554ee508d0677b29f26e8e859adf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 26 15:27:38 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 26 15:39:12 2020 +0000"
      },
      "message": "Add andw to x64 assembler.\n\nTest: test.py\nBug: 112676029\nChange-Id: I8918eef519822e35c2c2bb10a13e89bc26cad5b4\n"
    },
    {
      "commit": "72e27b0b29fd1bdea6747f62c5bd865d26a0bdcd",
      "tree": "970bdf71ef5272a231df09a0818a08d81920e5c2",
      "parents": [
        "a462fa67f88a2b893e1543a763821d483247011d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jul 27 12:59:58 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 28 16:13:40 2020 +0000"
      },
      "message": "Remove deprecated debug_suspend_count TLS value\n\nThe debug_suspend_count TLS value has been dead for a while and was\naccidentally left in. Remove it entirely.\n\nTest: ./test.py --host\nChange-Id: Ie2ead0d30e5ff3885cdd83242cad2c826c7fb732\n"
    },
    {
      "commit": "2d53643ca0e05e7c67894aa75eba899acbb9f287",
      "tree": "39299475c04303312f527bc00355bd9fd7a3fad8",
      "parents": [
        "cefebc86af30522bf79d2a89a2bcf96f7f970ecb"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Wed Jul 22 14:33:00 2020 -0700"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Fri Jul 24 00:41:56 2020 +0000"
      },
      "message": "Update language to comply with Android’s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for\nreference\n\nBug: 161896447\nBug: 161850439\nBug: 161336379\nTest: m -j checkbuild cts docs tests\nChange-Id: I32d869c274a5d9a3dac63221e25874fe685d38c4\n"
    },
    {
      "commit": "b461b53c926dae7f1959a309b0a2b109b6d3c4d3",
      "tree": "a9d3d51d8a3267dd3e7724c1ab3bf70cfd4c417a",
      "parents": [
        "fab6f1c479f6053a0c1eaaa889e0ff067d596211"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 13 17:45:22 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 15 09:48:56 2020 +0000"
      },
      "message": "Revert^2 \"Switch to LLVM prebuilt tools for ART gtests\"\n\nIt is also necessary to adjust the expected output of some tests.\n\nThis reverts commit ea54b823a3a02f65c865e11bbbccb327a273c039.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ib244e8b7d43d575299654397a47056f295ab4589\n"
    },
    {
      "commit": "ea54b823a3a02f65c865e11bbbccb327a273c039",
      "tree": "e6cb592138b95d2cb3ab5a132d56b3211915a108",
      "parents": [
        "7285a4bc7337cf6382ac464b979ae5db986a2a53"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 10 18:28:56 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 10 19:34:40 2020 +0000"
      },
      "message": "Revert \"Switch to LLVM prebuilt tools for ART gtests\"\n\nThis reverts commit 8070443ce4b31a6787c22490f18f838f8f6ed4be.\n\nReason for revert: Failing on chrome buildbots.\nTest: None\nBug: 137817558\n\nChange-Id: I4cbb4898e859ce33560592dd63cbf4a413048662\n"
    },
    {
      "commit": "8070443ce4b31a6787c22490f18f838f8f6ed4be",
      "tree": "ca9952b599e81570b60a0b1d403316de45d3f340",
      "parents": [
        "60690e495c3d6ead778bc25c44e925c5fd66173f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 13:40:19 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 10 10:57:04 2020 +0000"
      },
      "message": "Switch to LLVM prebuilt tools for ART gtests\n\nIt is also necessary to adjust the expected output of some tests.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ib517169614470193e0c55f566adb72a526ae6902\n"
    },
    {
      "commit": "194f555db74816aa380d2f46f63c8626f38e9b71",
      "tree": "d81626d2023f2d5a7f77b1ff4718e353ee76bc90",
      "parents": [
        "d6e14e0b6a3447d6e89a93d0a017e92b11dc5f6f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 07 01:10:07 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 09 15:58:18 2020 +0000"
      },
      "message": "Refactor arm assembly tests.\n\nAnother step in preparation to move to the LLVM toolchain.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Ie5be337165d8f24e04740de0486144fa6a62f063\n"
    },
    {
      "commit": "d6e14e0b6a3447d6e89a93d0a017e92b11dc5f6f",
      "tree": "4e30db113ef4352874e57022a654b341e71f1a92",
      "parents": [
        "be7fe3b5466e10c4c49f027f10a801e1a4a9216c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 13:19:17 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 09 13:21:59 2020 +0000"
      },
      "message": "Rewrite assembler_test_base.h\n\nSimplify the code in preparation of move to LLVM prebuilt tools.\n\nBug: 147817558\nTest: m test-art-host-gtest\nChange-Id: Iba277235255fd7d7f0965749b0b2d4a9567ced1f\n"
    },
    {
      "commit": "be7fe3b5466e10c4c49f027f10a801e1a4a9216c",
      "tree": "e8946fd568d6ce71114e0d3d75c6b329437dea4c",
      "parents": [
        "dc787f488ce151478af1149c04a10b21b2b9fc6e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 09 10:58:12 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 09 10:58:12 2020 +0100"
      },
      "message": "Add some x86/x86-64 assembler tests.\n\nAlso add divq() and divl() to x86-64 assembler and clean up\na test. This is a follow-up to\n    https://android-review.googlesource.com/1355865 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing -t 082-inline-execute\nBug: 156736938\nChange-Id: Iade33a2250cea481249f6b976bc53c86663cb901\n"
    },
    {
      "commit": "dc787f488ce151478af1149c04a10b21b2b9fc6e",
      "tree": "38d402813c9c3f541630255e9f9890a9c6842c45",
      "parents": [
        "9a09e7cf11b2653e6da2b179ac03bc6bb71c81e3"
      ],
      "author": {
        "name": "Andra Danciu",
        "email": "andradanciu@google.com",
        "time": "Tue Jul 07 14:28:56 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 09 09:44:58 2020 +0000"
      },
      "message": "Make Integer.divideUnsigned intrinsic for x86.\n\nBug: 156736938\nTest: Added a test to 082-inline-execute.\nTest: art/test.py --host --32 -r -t 082-inline-execute\nChange-Id: Id516126fce10f2fa52b95c1b2b107ca7bf45e347\n"
    },
    {
      "commit": "58fb5e88e30335abfb59536f5d3c195ef95c1ef3",
      "tree": "d9dad4a7b1e45a7ed7b7ccb2eb17ed74594f66d1",
      "parents": [
        "0a17b6a0e705e45cf47407d0573ef8a7fd67cd99"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 13:23:11 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 01 14:05:04 2020 +0000"
      },
      "message": "Fix X86Assembler::repe_cmpsb\n\nWe were emitting the wrong instruction.\n\nThis code seems unused in the compiler.\n\nTest: m test-art-host-gtest\nChange-Id: I6d990dd76f8a8a081158f2b5936e734db88fa345\n"
    },
    {
      "commit": "0a17b6a0e705e45cf47407d0573ef8a7fd67cd99",
      "tree": "9b864aae8d952fc0ee2829672220774c91494303",
      "parents": [
        "b7f4d0f15f02224ce5048ba566b2dce193ee103a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 11:29:47 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 01 12:41:06 2020 +0000"
      },
      "message": "Revert \"Support running of host gtests in eng-prod\"\n\nThis reverts commit 22872da653053bb4b86fbef67163a9f6b7aee25b.\n\nReason for revert: Checking if this CL is cause of b/160132136\n\nBug: 147817558\nBug: 160132136\nChange-Id: Ifb6f2292292a7f69fbd0f2e9204fd37dbca84277\n"
    },
    {
      "commit": "22872da653053bb4b86fbef67163a9f6b7aee25b",
      "tree": "5355ac349eeb15165c6db0c17e93f1286c52a3d4",
      "parents": [
        "11303f2983bf2ef8d55870afcd0d5937f0778753"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 25 15:23:15 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 26 17:14:57 2020 +0000"
      },
      "message": "Support running of host gtests in eng-prod\n\nAdd more libraries and tools to the shared ART directory in testcases.\n\nChange the tests environment setup, so that it can find the tools.\n\nVast majority of tests pass. Some individual tests still need fixing.\n\nBug: 147817558\nTest: run gtests in forrest\nChange-Id: I3214f532436828c2a1a5a543e69d6b9bcf1e42af\n"
    },
    {
      "commit": "9922f00cf68aac69209216a0726a45eb6338763c",
      "tree": "7e43b55e85ed17443af1c6be6532dafbb8550495",
      "parents": [
        "16527e892b13c9e1fb34f8d2e9993e58a72ac662"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 08 15:05:15 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 09 10:03:58 2020 +0000"
      },
      "message": "arm/arm64: Clean up intrinsic slow paths.\n\nGeneralize and use the slow path template IntrinsicSlowPath\nfrom intrinsics_utils.h.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boot image is unchanged.\nChange-Id: Ia8fa4e1b31c1f190fc5f02671336caec15e4cf4d\n"
    },
    {
      "commit": "03008223bc443c2e7a411d6595671e376dea0a9b",
      "tree": "e1267a5d5b1b4190cb112b7ea374b13b42e662ee",
      "parents": [
        "e8ed866d391291e80f5d267cce1b5f913dcfc0fe"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 06 14:04:21 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 16 18:47:31 2020 +0000"
      },
      "message": "Move @CriticalNative arguments in registers.\n\nAnd spill stack arguments directly to the right location.\nDo not spill to the reserved space in the caller\u0027s frame.\n\nPreliminary Golem results for art-opt-cc:\n                            x86 x86-64    arm  arm64\nNativeDowncallCritical6:    n/a +14.3% +17.2% +26.1%\n(x86 seems to be currently providing results that are worse\nthan interpreter, so something is not working.)\n\nTest: Additional tests in 178-app-image-native-method test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 112189621\nChange-Id: I709c52ab2585a8f5f441f53ad2bf4a01d2b25dca\n"
    },
    {
      "commit": "e42876fa5557cf3fe30238f7e7e70cafdbe50001",
      "tree": "650fce68339c95874abf6ba278003fb3a5ecf445",
      "parents": [
        "e521eb041875fbaf99eca5e6d2b438e7040b1dd8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 28 16:43:06 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 05 10:11:51 2020 +0000"
      },
      "message": "Minor improvements in JNI assemblers.\n\nAddress issues identified in\n    https://android-review.googlesource.com/1246286\nand clean up a few other things.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 12189621\nChange-Id: I9ee1a9c113ef756d7aa3bd4d3f17ef1aaa4306f5\n"
    },
    {
      "commit": "662f12ee2f2b886aebcc22d321b2d752227e0b38",
      "tree": "b10edc5ca99d0bae716462580cb025b4b48eb83d",
      "parents": [
        "eedca4a5f72b449df035979f31785dd5eaa46e0e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 26 12:46:09 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 02 12:53:56 2020 +0000"
      },
      "message": "Move entry spills determination to JNI compiler.\n\nThe calling convention no longer describes entry spills as\nspilling is the JNI compiler\u0027s responsibility. This allows\nfuture improvements, such as spilling registers directly to\nthe HandleScope or outgoing stack args.\n\nRemove the notion of interprocedural scratch register from\ncalling conventions and let assemblers deal with all scratch\nregister uses. The remaining JNI assembler APIs that take\nscratch registers are currently unused and can be removed.\n\nAlso fix a bug in disassembly comparison for tests; the\ncontents of two files were considered identical if the\nsecond one just contained additional data.\n\nThis change fully preserves the generated code and adds TODO\ncomments where doing so results in weird or suboptimal code.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Prebuilt boot image is unchanged.\nTest: aosp_taimen-userdebug boots.\nBug: 12189621\nChange-Id: Ic26a670276920313cd907a6eda8d982cf0abfd81\n"
    },
    {
      "commit": "03e871678db7585a621740fb1ce65a75fdc44319",
      "tree": "3d984535c3ec7d10fbad28b9890d205223a1eaca",
      "parents": [
        "bbec8a6fc720ee5ce572d3fb63617fb0af6addc7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 25 16:29:21 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 26 08:36:18 2020 +0000"
      },
      "message": "Remove MIPS support from libelffile.\n\nTest: m\nChange-Id: I01e6c6abb845baa4763929f5b9b6b3b36ac0e8b0\n"
    },
    {
      "commit": "fa458ac21af98b3bdde2c62ed86b9c192b994372",
      "tree": "5fa7543c9fd5edd0e950b19a70412002e10bba47",
      "parents": [
        "99d91d18f9f73427eced2f22642520d50c3c3b83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 14:08:07 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 19 16:08:34 2020 +0000"
      },
      "message": "Allow late lookup for @CriticalNative methods.\n\nTest: Add and enable tests in 178-app-image-native-method\nTest: Add and enable tests in jni_compiler_test\nTest: Manually step through the new stub in GDB and check\n      that backtrace works at various points.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 112189621\nChange-Id: If094e5062acbb99eefa88f2afb4815f93730cb82\n"
    },
    {
      "commit": "2c8123c1480dcd42e31963697264fca7ad6fa154",
      "tree": "9599252703d41b43ac973c38032385b303bcb9c8",
      "parents": [
        "c3f2fe95ef4f3a51039e497b02b978e7d85ee3fa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 13 15:07:15 2020 +0000"
      },
      "message": "Remove MIPS support from JNI/trampoline compiler.\n\nAlso remove MIPS assembler/disassembler support.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: Id736074b97cd04987a7902741828b119508df1c0\n"
    },
    {
      "commit": "fc58809f7b932d86234130be15487017dc37b0cf",
      "tree": "d003dedec73d77473aff6b2039860bc76a69d898",
      "parents": [
        "d00f129f1b7148f01efe6e9283a72d6ec8f0edd3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 23 15:39:08 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 29 23:31:10 2020 +0000"
      },
      "message": "Remove old JDWP implementation from ART\n\nThe old \u0027internal\u0027 JDWP implementation hasn\u0027t been used for a few\nreleases and it\u0027s a lot of code that\u0027s barely being tested and is at\nrisk of bit-rot. To simplify the runtime and remove potentially buggy\ncode this removes it.\n\nWe also needed to rewrite the DdmThreadNotification code since it\nrelied on the suspension functionality from the old debugger and was\ngenerally unsafe.\n\nTest: ./test.py --host\nTest: atest --test-mapping cts/tests/jdwp/TEST_MAPPING\nTest: atest --test-mapping cts/hostsidetests/jdwptunnel/TEST_MAPPING\nTest: Manual ddms\n\nBug: 119034743\n\nChange-Id: I775f310a009141296b730e4a6c2503506a329481\n"
    },
    {
      "commit": "1c3c106fc896453e6e9b8dd5914eddf5b20d2416",
      "tree": "029a8276590131c7fe1c5daef153e90863c628a6",
      "parents": [
        "0330e38bbad6addc2f1c9ae2b61347e421db9c3f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 03 11:18:44 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 16 16:25:28 2020 +0000"
      },
      "message": "jni: Do not create a managed frame for @CriticalNative.\n\nOmit managed frame for @CriticalNative methods, do not check\nfor exceptions and and make a tail call when possible.\nPass the method pointer in a hidden argument to prepare for\nimplementing late binding for @CriticalNative methods.\n\nThis changes only the JNI compiler, Generic JNI shall be\nupdated in a separate change.\n\nPerformance improvements reported by Golem (art-opt-cc):\n                                 x86 x86-64    arm  arm64\nNativeDowncallStaticCritical6   +17%   +50%   +88%  +139%\nNativeDowncallStaticCritical    +37%   +32%  +103%  +216%\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 112189621\nChange-Id: I5758c8f478627f2eee8f615b4537a907c211b9f8\n"
    },
    {
      "commit": "14d1307c1b9f4a9e32665100dde5f1454ec197a7",
      "tree": "56f49816a8179262f17b3a414ad59fa8f953dc0e",
      "parents": [
        "a18f5aeaecf9088f1ba1c43e7577dc149f85673f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 08 17:57:39 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 08 18:25:20 2020 +0000"
      },
      "message": "Disable test cases `AssemblerMIPS{32r6,64}Test.Toolchain` in ART gtest.\n\nThese test cases rely on `gcc` (used as reference assembler), which is\nbeing removed from Android (b/147240075). This does not affect other\ntest cases in `assembler_mips32r6_test` and `assembler_mips64_test`,\nas verification against the reference assembler had already been\ndisabled for speed reasons (b/73903608).\n\nTest: m test-art-host-gtest-assembler_mips32r6_test\nTest: m test-art-host-gtest-assembler_mips64_test\nBug: 147240075\nBug: 147336214\nBug: 147346243\nChange-Id: I99edd834c5e3ca626b36b6cbfecfb551f01e8640\n"
    },
    {
      "commit": "270db1ce48377e3d9ca0c3dcec834ac807ca885b",
      "tree": "ffc553c6ff1ad37bdc3caca01ad686fa41ca0688",
      "parents": [
        "42b9c19772542457701d5efea26aae4449dec8c7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 03 12:20:01 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 11 18:46:44 2019 +0000"
      },
      "message": "Revert^4 \"Allow structural redefinition on non-final classes.\"\n\nThis reverts commit 664999a12d6fc8a8ef5c0519b12ec1e8a51bb085.\n\nFixed issues with GC and quickened instructions in parent CLs.\n\nReason for revert: Fixed issues with GC CHECK fail and device SEGVs.\n\nTest: ./test.py --host\nTest: ./test.py --target\nBug: 134162467\nBug: 144168550\nChange-Id: Ibacddaf45beb72184f97d53d5d048bd442578658\n"
    },
    {
      "commit": "43f2f75df04495aa3dfd9bb80cf3180887d3b20e",
      "tree": "f1faf031608da284924e6ccd75b56307d55d17b1",
      "parents": [
        "9317031cd016e02a26cdeea8045df9925b33ffe2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 04 17:48:45 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 05 08:13:02 2019 +0000"
      },
      "message": "Revert^4 \"Implement Dot Product Vectorization for x86\"\n\nThis reverts commit 8e895008a3e2f2813bb46cb0c6bc76884e46e9ac.\n\nReason for revert: The test failure seems unrelated.\nBug: 144947842\n\nChange-Id: I7b437f0443d71a5c762e1a8372564ed989971cc9\n"
    },
    {
      "commit": "664999a12d6fc8a8ef5c0519b12ec1e8a51bb085",
      "tree": "f4ae1b0844ac075807229db9695ead7dec07ff8a",
      "parents": [
        "642af13b1b14794d8ab0db5cc82206213e648fa1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 08:47:26 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 08:47:45 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Allow structural redefinition on non-final classes.\"\"\n\nThis reverts commit f1b809ce611e943f926fff97cefe0930226ffcc2.\n\nReason for revert: Tests still fail\n\nBug: 134162467\nBug: 144168550\nChange-Id: Icdebc826b8630920b716afbfd6f338a29669fcc2\n"
    },
    {
      "commit": "f1b809ce611e943f926fff97cefe0930226ffcc2",
      "tree": "f75675383cf8018f9f333e608df35edbacf1c913",
      "parents": [
        "20b7a9b8aeaf76fc8f3248f211489fd00af73170"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 26 18:52:06 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 18:34:20 2019 +0000"
      },
      "message": "Revert^2 \"Allow structural redefinition on non-final classes.\"\n\nWe were incorrectly racing with the rest of the runtime in a couple of\nplaces. First we would return an ObjPtr of a newly defined class after\nholding it over a suspend point. This could lead to DefineClass\nreturning an obsolete class in some cases.\n\nWe also failed to ensure the class-status was synchronized between the\nold and new classes during structural redefinition. This could lead to\na class appearing to go backwards in status.\n\nThis reverts commit 88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d.\n\nReason for revert: Fixed issues causing test failures.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\n\nChange-Id: I4d0f7718490532f0ef14a9561b8e7000ef292b12\n"
    },
    {
      "commit": "88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d",
      "tree": "e3ee63ccca83c60c5790e51610349889f44daacf",
      "parents": [
        "8e895008a3e2f2813bb46cb0c6bc76884e46e9ac"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 26 14:13:44 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 15:55:26 2019 +0000"
      },
      "message": "Revert \"Allow structural redefinition on non-final classes.\"\n\nThis reverts commit c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0.\n\nReason for revert: Breaks ART tests (see e.g. b/145197371).\n\nBug: 145197371\nBug: 134162467\nBug: 144168550\nChange-Id: Ia8e5788655057e380fc723a38900d26d69cda938\n"
    },
    {
      "commit": "8e895008a3e2f2813bb46cb0c6bc76884e46e9ac",
      "tree": "c30e54521e1b31eb50e282b54be138f888d9870e",
      "parents": [
        "7c9cfe8b3f986e7cbc18350ad7b9b72f58f5846c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 26 14:05:40 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 26 14:06:21 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Implement Dot Product Vectorization for x86\"\"\n\nThis reverts commit 7cf5607f472020711e36eedbbfebb25b40d3f90e.\n\nBug: 144947842\n\nReason for revert: Seems to have broken android.jvmti.cts.JvmtiHostTest1936#testJvmt\n\nChange-Id: Ied6ff6ddf1cb2e3e76adcaa0fda5e36af254b7c5\n"
    },
    {
      "commit": "c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0",
      "tree": "50df569420cd6746daadf1487933719d1f86d66b",
      "parents": [
        "dc540dfffb6863177143d024dd6f491775d77585"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 13 09:33:52 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 02:11:19 2019 +0000"
      },
      "message": "Allow structural redefinition on non-final classes.\n\nThis adds support for structurally redefining non-final,\nnon-finalizable classes. The only restriction is that one cannot\nredefine a class at the same time as any of its supertypes, if a\nstructural redefinition is occurring. The structural redefinition may\nnot remove any fields or methods, change the superclass or change the\nimplemented interfaces. Adding new methods or fields, both static or\nnon-static, public, private, protected, or package-private, is\nsupported.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\nChange-Id: I32e9e854b3e56270170b10e8f5aba9de8f6bfdfa\n"
    },
    {
      "commit": "142816a6ac2a9261d37cffb7a7367a96f712fde2",
      "tree": "de5be36fdf80681d3ce517b095e9f2058918a498",
      "parents": [
        "986914bfd60c1cace9726e9029598d72cbf279e1"
      ],
      "author": {
        "name": "Usama Arif",
        "email": "usama.arif@linaro.org",
        "time": "Wed Nov 06 16:15:31 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 20 09:18:26 2019 +0000"
      },
      "message": "ARM64: Pass simd half floating point feature to VIXL macroassembler.\n\nVIXL requires NEONHalf CPUFeature to emit half floating points\nNEON instructions.\n\nTest: codegen_test\n\nChange-Id: I797d7a27087103491871e86d283f9860d3f20624\n"
    },
    {
      "commit": "7d48dcd51db4b950c22ec78ef3caa53fdf4214d3",
      "tree": "72600968b1daf5682018880f20ca07610e62b8e7",
      "parents": [
        "f05f04b429a63eb036f501866a863109f05b95b2"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Oct 16 12:46:28 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 31 14:56:52 2019 +0000"
      },
      "message": "ARM64: Move from FPRegister to VRegister based API\n\nVIXL has had FPRegister as an alias for VRegister for backward\ncompatibility. In the latest upstream VIXL the alias has been removed and all\nFPRegister based API has became VRegister based. As AOSP VIXL is being\nupdated to the latest upstream VIXL all uses of FPRegister based API\nmust be replaced with VRegister based API.\nThis CL moves ART from FPRegister based API to VRegister based API.\n\nTest: test.py --host --optimizing --jit --gtest\nTest: test.py --target --optimizing --jit\nTest: run-gtests.sh\nChange-Id: I12541c16d0557835ea19c8667ae18c6601359b05\n"
    },
    {
      "commit": "7cf5607f472020711e36eedbbfebb25b40d3f90e",
      "tree": "71f30133f4650656911f2fb72e3b8d203b355635",
      "parents": [
        "d55b844e39c4d5eb1a56de6cb95c891659f8a27f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 29 10:17:53 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 31 09:19:22 2019 +0000"
      },
      "message": "Revert^2 \"Implement Dot Product Vectorization for x86\"\n\nThis reverts commit b8c884e5f22390386b202459ab55ef3046631e42.\n\nAnd fixes a codegen bug (the reason why the original CL was\nreverted).\n\nTest: 684-checker-simd-dotprod\nTest: DEX2OAT_HOST_INSTRUCTION_SET_FEATURES\u003d\"sse4.1\" test.py --host\nTest: test.py --host --jit --gcstress\nChange-Id: Ibef925d1037abc9cb5f3d4dbd79f1d1eceae2f71\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "b8c884e5f22390386b202459ab55ef3046631e42",
      "tree": "2077b459c5b43c3b1399544faf07a326e253681a",
      "parents": [
        "4b7caeee57767f6bce7bb138a1299c0ae84bebf9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 23 11:59:49 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 23 11:59:49 2019 +0000"
      },
      "message": "Revert \"Implement Dot Product Vectorization for x86\"\n\nThis reverts commit 4b7caeee57767f6bce7bb138a1299c0ae84bebf9.\n\nReason for revert: Test failure in jit-gcstress mode.\n+Exception in thread \"main\" java.lang.Error: Expected: 131072, found: 0\n+ at other.TestCharShort.expectEquals(TestCharShort.java:474)\n+ at other.TestCharShort.testDotProd(TestCharShort.java:486)\n+ at other.TestCharShort.run(TestCharShort.java:525)\n+ at Main.main(Main.java:28)\n\nChange-Id: I251cf666e8335499d227910987b2d49629c3f53d\n"
    },
    {
      "commit": "4b7caeee57767f6bce7bb138a1299c0ae84bebf9",
      "tree": "7d744af39f9b09108e9ba81a85023a79a46f9853",
      "parents": [
        "3981da539bdf249da2be5c4c9dbc4ee59e64d332"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Tue Oct 15 15:16:22 2019 +0530"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 23 10:37:54 2019 +0000"
      },
      "message": "Implement Dot Product Vectorization for x86\n\n8% improvement in microbench for integral data types\n\nTest: ./test.py --host --64\nChange-Id: I26b584f29d677283195c69b68650651368c656d1\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "48349ad38887f65da76df268f8e548d508d8c6a1",
      "tree": "0e89e6cde84b2120aaf9ad9d362e61ab8d3b95c2",
      "parents": [
        "1ba7fec112f61342d5fc2b16542fad141fd25bf1"
      ],
      "author": {
        "name": "Neeraj Solanki",
        "email": "neeraj.solanki@intel.com",
        "time": "Mon Aug 05 23:16:56 2019 +0530"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 24 17:16:38 2019 +0000"
      },
      "message": "AVX support for bitwise instructions (Xor, Or, And, Andn)\n\nTest: ./test.py --host --64, test-art-host-gtest\n\nChange-Id: Ia8302d12d3ebb8447d73db576fb5b945485c11e1\nSigned-off-by: Neeraj Solanki \u003cneeraj.solanki@intel.com\u003e\n"
    },
    {
      "commit": "1a225a76ee6bc29833aee048b6cfae20242bdc8b",
      "tree": "069bfc01d827fcbf9aa4415c4d63d354648f396c",
      "parents": [
        "323844002e54243e295497e7f829e46a533da621"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 05 13:37:42 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 18 13:37:15 2019 +0000"
      },
      "message": "ARM/ARM64: Improve frame entry/exit codegen.\n\nOn ARM64, use STP pre-index for the method and the lowest\nspilled core register for method entry if there\u0027s no gap or\nFP spills in between. On exit, use LDP post-index to restore\nin this case, ignoring the method by loading to XZR. Thus,\nwe save one instruction for both entry end exit for such\nmethods and the performance should be the same or better.\n\nOn ARM, use a single PUSH/POP for method entry and core\nspills if the gap between them is 2 words or less and and we\nhave one or no FP spill, spill args as filler if needed. On\nexit, load the FP spill if any and do a single POP for core\nregisters and return in this situation, clobbering as many\nregisters from r2-r4 as needed; these caller-save registers\nare not used to pass return values. If we cannot do this\nbecause of FP spills but the gap between the method and FP\nspills is 2 words or less, we adjust SP and save the method\nin one PUSH after spilling; there is no similar handling\nfor method exit as the method does not need to be restored.\nThis may improve or degrade performance a bit depending on\nthe particular situation; in the worst case we PUSH/POP\nthree additional registers as a cost for smaller code size.\n\naosp_taimen-userdebug prebuils:\n - before:\n   arm/boot*.oat: 19147484\n   arm64/boot*.oat: 22558344\n   oat/arm/services.odex: 21922256\n - after:\n   arm/boot*.oat: 19105436 (-41KiB, -0.2%)\n   arm64/boot*.oat: 22549624 (-9KiB, -0.04%)\n   oat/arm/services.odex: 21914128 (-8KiB, -0.04%)\n\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 136144107\nChange-Id: Id36c67b4e735418fb18bcd3269b72b25695fbaa2\n"
    },
    {
      "commit": "b45a435e25d69592f27084a615b351760f040875",
      "tree": "6920830856dbe3cceb648b365b0d057ea3ea93ec",
      "parents": [
        "5132e0d1433b0962f9609dbbd68427e1fb5a4b9d"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Wed Jul 10 16:09:41 2019 +0530"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 17 11:12:22 2019 +0000"
      },
      "message": "Add AVX support for packed mul/div instructions.\n\nThis is a follow up for the below patch:\nhttps://android-review.googlesource.com/c/platform/build/+/830841\n\nTest: ./test.py --host --64, test-art-host-gtest\nChange-Id: Id2aa473035556ee230e66addeb69707df8530e75\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "3fae12960c2d411dff450fce95c096af0e8d74de",
      "tree": "5cc26dc33db8f391b3c7ab1fe24546b17f33d389",
      "parents": [
        "b7c640d364d32b79cb52d04750b063667a9a0c86"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 07 11:26:25 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 11 08:58:34 2019 +0000"
      },
      "message": "Move IntrusiveForwardList\u003c\u003e to libartbase.\n\nIt\u0027s generally useful, not just for the compiler.\n\nTest: m test-art-host-gtest\nChange-Id: I3ca742d93a0bca961d1b8b8209356747d2de08a0\n"
    },
    {
      "commit": "81d15be76923ec23b86e72bbc2d3a2a6542a325e",
      "tree": "57bf31c2951cbeebddd72c94a415711423c88f88",
      "parents": [
        "5fd673488c25991ecc85d26c2dc54415773eb407"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Thu May 30 11:00:42 2019 +0530"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 05 16:06:49 2019 +0000"
      },
      "message": "Add AVX support for packed add/sub instructions on x86\n\nTest: ./test.py --host, test-art-host-gtest\n\nChange-Id: I48d05e6f6befd54657d962119a543b27a8a51d71\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "1b3561a157653a3d0f8025ddd65fe6ffeb289a8b",
      "tree": "f107fe594b9b474f6883de1170314b688e9e209b",
      "parents": [
        "439d12691964780784a67f178384c0175780f665"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 08 11:50:58 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 08 13:41:14 2019 +0100"
      },
      "message": "x86: Add assembler tests and clean up style.\n\nThis is a follow-up after\n    https://android-review.googlesource.com/923493\n\nTest: m test-art-host-gtest\nChange-Id: Id287815c8ffc001d7cf7a4838c744620a553f662\n"
    },
    {
      "commit": "20d1c942c0e841920eac92f68c6d3e7f2a2135b4",
      "tree": "931aed7f4639a4b0a6ab8e3cd7765295a1883be3",
      "parents": [
        "d32f8aadd37aab5b89ffccc86f7d8d07447a213a"
      ],
      "author": {
        "name": "jaishank",
        "email": "jaishankar.rajendran@intel.com",
        "time": "Fri Mar 08 15:08:17 2019 +0530"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 25 09:05:09 2019 +0000"
      },
      "message": "Patch supports Intel(R) AVX/AVX2 MOV Instruction\n\nThis patch enhances the existing ART-Compiler\nto generate Intel(R) AVX/AVX2 MOV Instructions for\ndoing SIMD Operations on Intel(R) Architecture CPUs.\nIt also provides the framework for AVX/AVX2 Instruction\nencoding and dissassembly\n\nBUG: 127881558\nTest: run-test gtest\nChange-Id: I9386aecc134941a2d907f9ec6b2d5522ec5ff8b5\n"
    },
    {
      "commit": "39402548017c99f9b33afaa851f412371013e911",
      "tree": "80c4d53cb7ae12ab9f4800cb358e53d5109593da",
      "parents": [
        "2fde9bdc252e209d722f83410f2ced42ab73e8a4"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sun Mar 24 02:47:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 29 18:18:00 2019 +0000"
      },
      "message": "Modernise code to use override specifier\n\nGenerated by clang-tidy, with IgnoreDestructors option enabled.\n\nTest: m checkbuild\nBug: 116509795\nChange-Id: I5dafa10c2cf605165581b8cf7dd2633ed101ed65\n"
    },
    {
      "commit": "2faab0064bccdf06a454ba5fc37f2cfeceab78bc",
      "tree": "bc51a211068019d77e7739164adf5be5c6333b7b",
      "parents": [
        "5f1465ff689eccbb1b6d15160d1a3700793956da"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:35:48 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 20 15:20:54 2019 +0000"
      },
      "message": "Create libelffile library for ELF file manipulation.\n\nMove some of our tooling to library to make it reusable.\n\nRemove MIPS support from the ELF builder.  This is slightly\neasier than making it independent of the runtime.\n\nBug: 110133331\nTest: test.py -b --host\nChange-Id: I93343808d0e27ee8e1117e713a2503e8179fc245\n"
    },
    {
      "commit": "3dacdd6343ea9a6471692914c7a9dff66d6453c7",
      "tree": "5e0a3b8f99e914a7fbd49822e5c8fb1bd4709f5c",
      "parents": [
        "939798e6a565a92e597136c589428e89c28bffd5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 12 15:45:47 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 12 09:52:59 2019 -0700"
      },
      "message": "Revert^4 \"Remove Global deopt requirement for several jvmti events\"\n\nIt was possible for the top frame of a thread to enter the\nartQuickToInterpreterBridge during runtime shutdown. This could be\ncaused by the libjdwp agent. If this happens the caller of the frame\nwill be \u0027null\u0027, which could cause a segv if not detected correctly.\n\nThis reverts commit 939798e6a565a92e597136c589428e89c28bffd5.\n\nReason for revert: Fixed issue that could cause crash during process\n                   shutdown.\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\nTest: ./test.py --host\n\nChange-Id: I2aad1705c761edb4ed788cec4fc8a3068d67aee5\n"
    },
    {
      "commit": "939798e6a565a92e597136c589428e89c28bffd5",
      "tree": "3274ff355163df18cd2d7343ce0d34214f9d09c9",
      "parents": [
        "a55e8b5c9827cc4dc4e7f7c7ee07ef1fdafc35e0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 14:26:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 14:26:42 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Remove Global deopt requirement for several jvmti events\"\"\n\nThis reverts commit a75e5892fba6d0208f33e9ab8e19e732daf94996.\n\nReason for revert: Fails jdwp tests.\n\nChange-Id: Ic883f4f0108b07f1609c6c6a9565eae5903bfd2c\n"
    },
    {
      "commit": "a75e5892fba6d0208f33e9ab8e19e732daf94996",
      "tree": "3daff8c3ce1608bacba7358711ccf9bd61c0bb05",
      "parents": [
        "dd83a40a3c4fea0d917577de96742900a61ab548"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 11 15:49:40 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 11 21:59:44 2019 +0000"
      },
      "message": "Revert^2 \"Remove Global deopt requirement for several jvmti events\"\n\nThis reverts commit ad344b6a14feba90a06a205760e9bc766c56cab0.\n\nJit-on-first-use would cause the runtime to skip sending FramePop\nevents for exceptions in some circumstances due to longjmp-ing over\nthe frames. This requires forcing jit off from the first instant a\nthread can get frame popped events, which is unfortunate.\n\nReason for revert: Fixed issue causing 1925 to fail on\n                   jit-on-first-use and redefine-stress\nTest: ./test.py --host\nTest: ./art/test/testrunner/run_build_test_target.py -j50 art-jit-on-first-use\n\nChange-Id: I6ec2a799db1041262a055be10e1af1faece6f2fc\n"
    },
    {
      "commit": "ad344b6a14feba90a06a205760e9bc766c56cab0",
      "tree": "47801fc5b432b0baf544bb8fd522a9fd3b567a7e",
      "parents": [
        "739383c80684eeb41d380ca5d18e1e9a1fe9fd7f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 17:49:52 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 21:13:15 2019 +0000"
      },
      "message": "Revert \"Remove Global deopt requirement for several jvmti events\"\n\nThis reverts commit 334630ee9dffdd1932c1ee641d938f25362a4c1a.\n\nReason for revert: 1924-frame-pop-toggle fails on some configs.\n\nChange-Id: I5ed3846e0dfff09c67a468f319ff516e14c44e61\n"
    },
    {
      "commit": "334630ee9dffdd1932c1ee641d938f25362a4c1a",
      "tree": "81957d634aa76967d97c89014eb69158682b0128",
      "parents": [
        "5b76c16cca1984209e838ada4d79e370d7fda431"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 04 15:08:04 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 08 04:07:45 2019 +0000"
      },
      "message": "Remove Global deopt requirement for several jvmti events\n\nThe JVMTI_EVENT_SINGLE_STEP, JVMTI_EVENT_FIELD_MODIFICATION,\nJVMTI_EVENT_METHOD_EXIT, JVMTI_EVENT_SINGLE_FIELD_ACCESS, and\nJVMTI_EVENT_FRAME_POP events would all deoptimize all threads in all\ncases when enabled. This changes the behavior to instead only\ndeoptimize individual threads when possible. This should make some\ndebugger interactions faster.\n\nTest: ./test.py --host -j72\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\n\nChange-Id: I42513cb17fd1144aeb03ca11afd3e3b05e918ce2\n"
    },
    {
      "commit": "eda46e9cad4271af7188fe0f542cbe88679f4c6e",
      "tree": "9632daf7b7c0600bd9200da65e43f6640c4cfc27",
      "parents": [
        "feb228244619237d110d8817865d7647f37b9b4f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 18 12:38:19 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 20 18:32:10 2019 +0000"
      },
      "message": "Fix vdex fast-verify performance regression\n\nRecent CL I0d06b82e31088c58d4493723a5435309740f1d0c generalized the\nfast-verify class redefinition check by checking that all vdex-verified\nclasses resolve to dex files covered by the vdex and are not duplicates\nof classes in parent class loaders. This introduced a performance and\nallocated memory regression for dex2oat invoked with\ncompiler-filter\u003dverify(-profile).\n\nThis patch removes the regression by acquiring a list of classpath dex\nfiles from the compiler driver and boot classpath dex files from the\nclass linker, avoiding class resolution altogether.\n\nA small performance overhead remains as previously only boot classpath\nwas being searched.\n\nTest: run `dex2oat filter\u003dinterpret-only; dex2oat filter\u003dverify`\n      compare time and allocated memory numbers before CL and after\nChange-Id: Ifd690cdafdc99d3eafb9847d67775fc11a5b5023\n"
    },
    {
      "commit": "22e22236cc12c977c01a8d10d4cc0906fc5ead2e",
      "tree": "1df2e62e339e51b58e682df9a668ff5f3099dfe5",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "message": "ART: Use C++17 extract/modify/insert pattern.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I2721948a566cc11d351324d173b4e1c8e5e54f53\n"
    },
    {
      "commit": "3db70689e3e1c92344d436a8ea4265046bdef449",
      "tree": "3db08743e968062ed5bdc143233cdb3c4564696b",
      "parents": [
        "1650dafad62578a1766bd617d78458a4cf1e2a9a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 26 15:12:03 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 27 12:56:39 2018 -0800"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles compiler.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I5cdfe73c31ac39144838a2736146b71de037425e\n"
    },
    {
      "commit": "807e4b30b3384e5b23da0c54710be78f17fc6345",
      "tree": "cb000ac70bffe89a907e1b63f0b58db3d8b6c4b7",
      "parents": [
        "147b5b1ab58abcc25b4c2b489ee9952d0ce70c69",
        "26c43778589d1c7598cbe6203b6545c9d3ab220a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "message": "Merge \"Add support for ANDROID_RUNTIME_ROOT variable\""
    },
    {
      "commit": "26c43778589d1c7598cbe6203b6545c9d3ab220a",
      "tree": "474167d306678366b1c90c7a9e6f824308ec7f7a",
      "parents": [
        "c89a28730fb8dff57c6cb5b18295fec45fe85d09"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Nov 23 17:56:43 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Dec 03 20:05:09 2018 +0000"
      },
      "message": "Add support for ANDROID_RUNTIME_ROOT variable\n\nThis commit introduces the ANDROID_RUNTIME_ROOT environment\nvariable in preparation for its use within the runtime module.\n\nAs a module, ART must no longer use the Android-wide\nANDROID_ROOT environment variable as the base of default\npaths for module content. ANDROID_RUNTIME_ROOT will take over\nthe responsibility. It remains a variable to unify host\nand device treatment.\n\nSome test methods (SetUpAndroidData, TearDownAndroidData\nSetUpAndroidRoot) have been renamed to clarify their purpose.\n\nBug: 119935277\nTest: build / treehugger\nChange-Id: I7c7de52911cbfa56cef90270425ed369176c4767\n"
    },
    {
      "commit": "aa6f48362b3258a5df5e527987ffe7e068eb4a79",
      "tree": "0fa8cfbebb77d2e7796084721c836b44114bdc97",
      "parents": [
        "8bda21f1d8bbc1060bf693f5d1666d3396d1cb69"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 21 18:57:54 2018 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 03 18:43:48 2018 +0000"
      },
      "message": "ART: ARM64: Pass ISA features to VIXL macroassembler.\n\nVIXL macroassembler should be initialized properly\nto support Armv8.X features in order to emit corresponding\ninstructions.\n\nTest: codegen_test.cc, relative_patcher_arm64_test.\nTest: test-art-host, test-art-target.\nChange-Id: I2f9e155c28b4d2252a3cfb19717f5d25824d5e11\n"
    },
    {
      "commit": "680cbf205f4560c22d96ed6f3296eb25125d99d6",
      "tree": "7e455c872744007bb04dcda59221d0288466d986",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 31 11:00:19 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 06 10:34:35 2018 -0800"
      },
      "message": "Enable building art and tests with linux_bionic\n\nA linux_bionic built runtime can be created by modifying the\n$OUT_DIR/soong/soong.config json file to add a \u0027\"Host_bionic\": true\u0027\nentry and then running the following command:\n\n% m --skip-make $OUT_DIR/soong/host/linux_bionic-x86/\u003ctarget-file\u003e\n\nA script \u0027tools/build_linux_bionic_tests.sh\u0027 was also added that will\nbuild linux-bionic versions of host-test related files.\n\nAlso modify tests so they can be run.  Currently all run-tests pass\nwhen run on a linux_bionic host build. All gtests pass except for the\nfollowing 9 tests:\n  ArmVIXLAssemblerTest.VixlJniHelpers\n  ArmVIXLAssemblerTest.VixlLoadFromOffset\n  ArmVIXLAssemblerTest.VixlStoreToOffset\n  DwarfTest.DebugFrame\n  DwarfTest.DebugFrame64\n  DwarfTest.x86_64_RegisterMapping\n  DwarfTest.DebugLine\n  DwarfTest.DebugLineSpecialOpcodes\n  DwarfTest.DebugInfo\n\nSince these tests must be run manually without the standard\n(makefile-based) testrunner it\u0027s not clear yet whether these failures\nare important or what must be done to fix them. Several tests had\ndependencies on the actual location of the libart library that needed\nto be fixed, these tests might as well.\n\nTest: ./tools/build_linux_bionic_tests.sh\nTest: ./test/testrunner/testrunner.py --no-build --host --64 --run-test-option\u003d--bionic\nTest: find $OUT_DIR/soong/host/linux_bionic-x86/nativetest64 -mindepth 2 -type f | while read abc; do $abc; done | tee all-tests.txt\nTest: tail -n +0 -f all-tests.txt | grep FAILED\n\nBug: 31559095\nBug: 118778408\nChange-Id: I5fae4e54371e7410678619f18fcb54a3bd34e9b0\n"
    },
    {
      "commit": "8e5bc2dc0e70142811ae792c2b56af48c1eb7d4c",
      "tree": "bd81f98c59fff92129f423be2c48366df71d20ec",
      "parents": [
        "349d1377aa300512177729e7988d824b67638552"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Wed Oct 24 11:50:56 2018 +0530"
      },
      "committer": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Wed Oct 24 20:29:38 2018 +0530"
      },
      "message": "Add support for vex coding scheme in x86 assembler\n\nThis patch adds support to emit VEX prefix which is needed\nto emit instructions namely andn, blsmsk, blsr, blsi\non a cpu that has AVX2.\n\nTest: ./test.py --host --64, test-art-host-gtest\nChange-Id: I6b4902caf8560e4406c5053b142686ed28ba5404\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "28f6cff854b61e39f953e69ebf3646ee9826ec82",
      "tree": "a98e2bf1746d93079b7abe54e278ba87f0aef360",
      "parents": [
        "06ef9aa6a562a3a1f7c1f9b91aadda5018f8ba86"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 16 15:07:28 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 22 14:35:07 2018 +0100"
      },
      "message": "Cache the value of MterpShouldSwitchInterpreters()\n\nAdd field to the Thread object which stores the value instead (negated).\nExplicitly update the field when relevant state changes (which is rare).\n\nThis speeds up golem interpreter benchmarks by 3.5%\non average with some benchmarks up to 15% faster.\n\nTest: test.py -b -r --interpreter --host\nChange-Id: If2df0d3bf9e69ab50c30102b2648e997927c34d8\n"
    },
    {
      "commit": "fc4b2eaa427e43a51c6f39ffecac0ef4fa732b61",
      "tree": "b6bc4cd9bc846ae40eac280dbc2c9514e05a0f7b",
      "parents": [
        "26f048f48cdb1e884aab2b6fddf26d58346d29ad",
        "c55bb390d88b8eb62a50932f7f9b47c2a3733f16"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 25 00:36:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 25 00:36:43 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ART: Refactor typedef to using\"\""
    },
    {
      "commit": "c74d9cbd4c7b1b5b1a4c5a6bb34e9426336bbecc",
      "tree": "d1030d4bc5fb0986ef9f6e80d81b8a204c011ced",
      "parents": [
        "5ec6f36d4688e70c652882bff8c6a3c060ccc83e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 13:44:44 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 20:31:46 2018 -0700"
      },
      "message": "ART: Modernize counting-down loops\n\nPreparation for readability-implicit-bool-conversion.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I7a6f9636d5f4537020f99e8cf8560f7f6b6b7ba0\n"
    },
    {
      "commit": "c55bb390d88b8eb62a50932f7f9b47c2a3733f16",
      "tree": "ec2e74f3f8404dffcb9bfde4e7ffa3416a35543d",
      "parents": [
        "89468aeaa6a67ae4025b30d427391186306d6522"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 21 00:02:02 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 18:37:12 2018 -0700"
      },
      "message": "Revert^2 \"ART: Refactor typedef to using\"\n\nThis reverts commit ee07743e03042c2ca36e0c9513847a9e7d2509f1.\n\nReason for revert: fixed attributes.\n\nBug: 32619234\nTest: m test-art-host\nTest: m test-art-target-gtest-unstarted_runtime_test\nChange-Id: I6f0a775adfdf6ecd132b470f7c5446e949872e20\n"
    },
    {
      "commit": "ee07743e03042c2ca36e0c9513847a9e7d2509f1",
      "tree": "66867d7443a3798f6d882ef2715ddeb7baf3e771",
      "parents": [
        "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "message": "Revert \"ART: Refactor typedef to using\"\n\nThis reverts commit 9a20ff06f7ccee08a742c315ec6d351ab56ba1cd.\n\nReason for revert: Attributes on the wrong side.\n\nBug: 32619234\nChange-Id: I8fd2abef619b22c02ccfbf5ae629339f1a60918b\n"
    },
    {
      "commit": "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd",
      "tree": "7e55557e118eb5fffe03ad3456e00d8469a36232",
      "parents": [
        "70dfb6983492aff1c52cc1b52044258aef51f47f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 10:58:18 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 21:56:32 2018 -0700"
      },
      "message": "ART: Refactor typedef to using\n\nAdd clang-tidy\u0027s modernize-use-using.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: If50d37b5152af4270784e3cde7951292a9e19033\n"
    },
    {
      "commit": "fa6a1b0a1d9d186a0ad9bb413a4e49f1ffd187d8",
      "tree": "6d3bef945030868d7e78162dc3f4f35a07ce410a",
      "parents": [
        "a0878aa9f4f4102e56a6381b28a8d7c38dec80b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 08:11:55 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 09:13:50 2018 -0700"
      },
      "message": "ART: Continue adding override annotations\n\nUse Clang-tidy\u0027s modernize-use-override to add more annotations. Ignore\ninferred annotations on destructors.\n\nBug: 32619234\nTest: mmma art\nChange-Id: Ic432c928e398d44df9171e42db04ee19946e6887\n"
    },
    {
      "commit": "625ca4759941299e8a9cc876c985558c4d76bdc0",
      "tree": "d8085b20c9cc9dd2304e61f40807cd8fb072ca72",
      "parents": [
        "f73cacaae3d8f89327d8886b37792a849cabd9ac"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 19:14:16 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 14:51:00 2018 +0100"
      },
      "message": "Remove \u0027virtual\u0027 and \u0027override\u0027 qualifiers on final methods.\n\nCpplint considers that \u0027virtual\u0027 and \u0027override\u0027 qualifers are\nredundant for methods declared \u0027final\u0027.\n\nTest: mmma art\nChange-Id: If4de1e1fe306f2ee3db9534930b1d24abeaf9fe4\n"
    },
    {
      "commit": "f73cacaae3d8f89327d8886b37792a849cabd9ac",
      "tree": "79047e31d512d065db47af7e68fa155c1f638f11",
      "parents": [
        "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 17:19:07 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:09:40 2018 +0100"
      },
      "message": "Remove superfluous \u0027virtual\u0027 specifiers in ART.\n\nRemove \u0027virtual\u0027 specifier on methods already bearing the \u0027override\u0027\nspecifier.\n\nTest: mmma art\nChange-Id: I114930969a5ca048d88de9ecd18e2c6403593e31\n"
    },
    {
      "commit": "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403",
      "tree": "0fbce767bc383358cf4cd65aafc74140e1850982",
      "parents": [
        "19379b58bd433da91230e4fe6cd96e7416d16adc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 16:58:47 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:06:07 2018 +0100"
      },
      "message": "Use \u0027final\u0027 and \u0027override\u0027 specifiers directly in ART.\n\nRemove all uses of macros \u0027FINAL\u0027 and \u0027OVERRIDE\u0027 and replace them with\n\u0027final\u0027 and \u0027override\u0027 specifiers. Remove all definitions of these\nmacros as well, which were located in these files:\n- libartbase/base/macros.h\n- test/913-heaps/heaps.cc\n- test/ti-agent/ti_macros.h\n\nART is now using C++14; the \u0027final\u0027 and \u0027override\u0027 specifiers have\nbeen introduced in C++11.\n\nTest: mmma art\nChange-Id: I256c7758155a71a2940ef2574925a44076feeebf\n"
    },
    {
      "commit": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "bd39d145e4986217bcb8dce1d4a9631d926a2781",
      "tree": "52dfd3307ab5279e960f9a1bf6e474e47440a3d8",
      "parents": [
        "6f4cf6e8fa15de2f9bf7c6a649ea7a2fabef886a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 19 11:14:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 19 11:37:05 2018 -0700"
      },
      "message": "ART: Clean up unused using declarations\n\nMake tidy happy, and enable checking.\n\nTest: mmma art\nChange-Id: I9e18e80b3f37dd2aeb8ecd1c25abe4d5cf2f1c45\n"
    },
    {
      "commit": "cdfc942e60032622b5a4379d0dd5ca914ba6393a",
      "tree": "823e767f6eba6fb2831f69753936bc0c35eea84e",
      "parents": [
        "ec1f1a91328f44d93cfc16e39160dbdfce2f7b9a",
        "f5f56c791c5853f43a2a9781c98d5776c7dd5a59"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 13 16:35:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 13 16:35:30 2018 +0000"
      },
      "message": "Merge \"Revert \"Emit vector mulitply and accumulate instructions for x86.\"\""
    },
    {
      "commit": "f5f56c791c5853f43a2a9781c98d5776c7dd5a59",
      "tree": "ed8270e3a5d0161ebe5bec0606a24cd5e3123e59",
      "parents": [
        "61908880e6565acfadbafe93fa64de000014f1a6"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 13 00:05:27 2018 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 13 00:05:27 2018 +0000"
      },
      "message": "Revert \"Emit vector mulitply and accumulate instructions for x86.\"\n\nThis reverts commit 61908880e6565acfadbafe93fa64de000014f1a6.\n\nReason for revert: By failing to round multiply results, it does not follow Java rounding rules.\n\nChange-Id: Ic0ef08691bef266c9f8d91973e596e09ff3307c6\n"
    },
    {
      "commit": "d109e30eab8ba25f8d89be2a83d9036e2d541af2",
      "tree": "24df91603efe9ce8c4a2efd09ac402aceb10df4e",
      "parents": [
        "c916736ca1e375c276df251446baf2ac8ff3eb13"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 27 10:25:41 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:51 2018 -0700"
      },
      "message": "Don\u0027t use StringFactory.newEmptyString in compiled code\n\nWhen compiling debuggable code we would compile a new-instance String\ninstruction into a StringFactory.newEmptyString invoke. This\nadditional invoke could be observed using tracing and is inconsistent\nwith the interpreter, where the string is simply allocated directly.\nIn order to bring these two modes into alignment we added a new\nAllocStringObject quick entrypoint that will be used instead of the\nnormal AllocObject\u003c...\u003e entrypoints when allocating a string. This\nentrypoint directly allocates a new string in the same manner the\ninterpreter does.\n\nNeeds next CL for test to work.\n\nBug: 110884646\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xjitthreshold:0 --jit\nTest: Manual inspection of compiled code.\nChange-Id: I7b4b084bcf7dd9a23485c0e3cd2cd04a04b43d3d\n"
    },
    {
      "commit": "2258c2ef5f6cb25ff12a1dc6dfac1f868892c226",
      "tree": "48c98b4e03899ec555062b0affd7d7e8bdcb2383",
      "parents": [
        "ad78fb294dbf8bae52835f98cc3e38a6f217781f",
        "35d5b8a2c5d2fce03be59aa003c3bf3c1b481be0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 11:47:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 03 11:47:17 2018 +0000"
      },
      "message": "Merge \"ART: Do not use std::\u003ccontainer\u003e::at().\""
    },
    {
      "commit": "35d5b8a2c5d2fce03be59aa003c3bf3c1b481be0",
      "tree": "7665f6d1527be61af13c8ef53f10833dd4200cfd",
      "parents": [
        "b28683f43231e65860ecf91c96a8c0234542c019"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "message": "ART: Do not use std::\u003ccontainer\u003e::at().\n\nThese functions are specified as throwing std::out_of_range\nand we do not use exceptions.\n\nTest: m\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I67c365ed6d779c101a18b9f386c751c48ca76e16\n"
    },
    {
      "commit": "61908880e6565acfadbafe93fa64de000014f1a6",
      "tree": "40b535db9175f3d959364d5bc30eaab4e2c4b4c4",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Fri Jun 29 13:06:35 2018 +0530"
      },
      "committer": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Mon Jul 02 15:37:38 2018 +0530"
      },
      "message": "Emit vector mulitply and accumulate instructions for x86.\n\nThis patch adds a new cpu vaiant named kabylake and performs\ninstruction simplification to generate VectorMulitplyAccumulate.\n\nTest: ./test.py --host --64\n\nChange-Id: Ie6cc882dadf1322dd4d3ae49bfdb600b0c447765\nSigned-off-by: Gupta Kumar, Sanjiv \u003csanjiv.kumar.gupta@intel.com\u003e\n"
    },
    {
      "commit": "54159c6c6fe529a55ef3d15a3c8418362d5a43fb",
      "tree": "2ec461de8ec15383134f4c6e209f4b8a33854277",
      "parents": [
        "44217b253bf4e5990de7051129ecda34f94d7f25"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 20 14:30:08 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 21 13:46:50 2018 +0100"
      },
      "message": "Use HashSet\u003cstd::string\u003e instead of unordered_set\u003c\u003e.\n\nChange the default parameters for HashSet\u003cstd::string\u003e to\nallow passing StringPiece as a key, avoiding an unnecessary\nallocation. Use the HashSet\u003cstd::string\u003e instead of\nstd::unordered_set\u003cstd::string\u003e. Rename HashSet\u003c\u003e functions\nthat mirror std::unordered_multiset\u003c\u003e to lower-case.\n\nFix CompilerDriver::LoadImageClasses() to avoid using\ninvalidated iterator.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: I7f8b82ee0b07befc5a0ee1c420b08a2068ad931e\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": "d3083dd15af1cb4ffc13d87a7d2c3be2edb9199d",
      "tree": "88dd2599ad89da5a4f2668a2c9debd0335669cd0",
      "parents": [
        "6623bc389c43efc87668ce7465e19b195e765e22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 17 08:43:47 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 22 14:38:14 2018 +0100"
      },
      "message": "Refactor runtime callee save frame info.\n\nAnd avoid storing the info in Runtime.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing --jit\nChange-Id: Ib14853fc06c420753993e1f9e82a1b01f5e35e8c\n"
    },
    {
      "commit": "dbaa5c7ba8935cf87ceb40a4054f9842929e9a51",
      "tree": "5037625c80cb97a0e13026dc450db28e59ff72ca",
      "parents": [
        "51dda39549033b3c50a7fce5522ffc81325db54b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 10 08:22:46 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri May 11 11:55:30 2018 +0100"
      },
      "message": "ART: Compiler support for const-method-handle\n\nImplemented as a runtime call.\n\nBug: 66890674\nTest: art/test.py --target -r -t 979\nTest: art/test.py --target --64 -r -t 979\nTest: art/test.py --host -r -t 979\nChange-Id: I67f461c819a7d528d7455afda8b4a59e9aed381c\n"
    },
    {
      "commit": "18259d7fb7164a5e029df4f883b3a79ccc2403e8",
      "tree": "ba378bfdef4127bb0607215186e3b150fd38bcdf",
      "parents": [
        "922501b4bbf724e4259477a27764291684eedffb"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Apr 12 11:18:23 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 10 15:04:09 2018 +0100"
      },
      "message": "ART: Compiler support for const-method-type\n\nImplemented as a runtime call.\n\nBug: 66890674\nTest: art/test.py --target -r -t 979\nTest: art/test.py --target --64 -r -t 979\nTest: art/test.py --host -r -t 979\nChange-Id: I4b3d3969d455d0198cfe122eea8abd54e0ea20ee\n"
    },
    {
      "commit": "1b19877e78f58ff3f676845380ec1280791d9500",
      "tree": "b4069e7022aeb9758c8fefcc13521341c67e57ac",
      "parents": [
        "d94a00cdf0519ff92dff1ee59a5a42234a391ddd",
        "9a6ca9f645c76e9081d8de39e6d98377e208a650"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 09:32:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 09:32:14 2018 +0000"
      },
      "message": "Merge \"MIPS: Skip output verification for assembler tests.\""
    }
  ],
  "next": "9a6ca9f645c76e9081d8de39e6d98377e208a650"
}
