)]}'
{
  "log": [
    {
      "commit": "0a51605ddd81635135463dab08b6f7c21b58ffb0",
      "tree": "820f338333010f4d6e4b543ffea47e9ff7d2dd3f",
      "parents": [
        "e2727154f25e0db9a5bb92af494d8e47b181dfcf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "message": "Revert \"Make compiler/optimizing/ symbols hidden.\"\n\nThis reverts commit e2727154f25e0db9a5bb92af494d8e47b181dfcf.\n\nReason for revert: Breaks ASAN tests (ODR violation).\nBug: 142365358\n\nChange-Id: I38103d74a1297256c81d90872b6902ff1e9ef7a4\n"
    },
    {
      "commit": "e2727154f25e0db9a5bb92af494d8e47b181dfcf",
      "tree": "0ddc6eec3ad9508d7eb1f2b941786dd0ed7d2cd8",
      "parents": [
        "c78860b91ae07eed92f86876e7a03132adea6fcd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 10 10:46:42 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 08:22:00 2019 +0000"
      },
      "message": "Make compiler/optimizing/ symbols hidden.\n\nMake symbols in compiler/optimizing hidden by a namespace\nattribute. The unit intrinsic_objects.{h,cc} is excluded as\nit is needed by dex2oat.\n\nAs the symbols are no longer exported, gtests are now linked\nwith the static version of the libartd-compiler library.\n\nlibart-compiler.so size:\n  - before:\n    arm: 2396152\n    arm64: 3345280\n  - after:\n    arm: 2016176 (-371KiB, -15.9%)\n    arm64: 2874480 (-460KiB, -14.1%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nBug: 142365358\nChange-Id: I1fb04a33351f53f00b389a1642e81a68e40912a8\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": "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": "0ebe0d83138bba1996e9c8007969b5381d972b32",
      "tree": "a5ee66ebc5b587ade97e56ac8fc7d832fbbed4af",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 22:50:39 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 25 15:45:01 2017 +0100"
      },
      "message": "ART: Introduce compiler data type.\n\nReplace most uses of the runtime\u0027s Primitive in compiler\nwith a new class DataType. This prepares for introducing\nnew types, such as Uint8, that the runtime does not need\nto know about.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 23964345\nChange-Id: Iec2ad82454eec678fffcd8279a9746b90feb9b0c\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "420ee30f4c0f8a5bb6048df4fa27e5432ded893b",
      "tree": "fd72cba9ed09cf78e9377677fd144821fd9f6743",
      "parents": [
        "2f0ac4fb4486e7d9e5c1545d45a2b9b818a80dc3"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Feb 21 18:10:26 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Jul 18 20:19:58 2017 +0100"
      },
      "message": "ARM: VIXL32: Merge (un)signed extensions and integer additions\n\nTest: m test-art-target-run-test-551-checker-shifter-operand\nChange-Id: I041e80e51bf0954b38ab20dfa9b14aa7f6d6c53b\n"
    },
    {
      "commit": "53463ba8717fc93379ebf2b0c04a9a2c85382973",
      "tree": "552b7b99e0f45239a3c1777ffacb00bb6fff2956",
      "parents": [
        "f4546792385ece9dd0ba956a6c9580027cfc8fdd"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Feb 16 15:18:03 2017 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Mar 28 09:50:09 2017 +0100"
      },
      "message": "Math.round float intrinsic for ARM.\n\nTest: m test-art-target\nTest: m 082-inline-execute\nChange-Id: I1b384e388b9959eca662922bffa8675cdbfe6e6b\n"
    },
    {
      "commit": "74234daabb28a4b9c804bf8bf908e7334bd4d400",
      "tree": "0b60cb00ab117c1a9a4b92983514962198b548bf",
      "parents": [
        "a7e9bfafeb64b1142433a41b05ddc263cadc61e3"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Jan 13 14:42:47 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Feb 17 14:59:27 2017 +0000"
      },
      "message": "ARM: Merge data-processing instructions and shifts/(un)signed extensions\n\nThis commit mirrors the work that has already been done for ARM64.\n\nTest: m test-art-target-run-test-551-checker-shifter-operand\nChange-Id: Iec8c1563b035f40f0e18dcffde28d91dc21922f8\n"
    },
    {
      "commit": "c032e74b57d31861b6bb55500016ebb5476eb142",
      "tree": "044af8b3efe9326245a9f32144a6b23b64ec0e22",
      "parents": [
        "1e6578a68d6f4499362254bcdeb6bbf55e309ea4"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Mon Mar 28 16:44:32 2016 +0100"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Feb 02 17:04:03 2017 +0000"
      },
      "message": "Math.min and Math.max intrinsics for ARM\n\nThis patch implements min/max intrinsics for:\n  * Long\n  * Float\n  * Double\n\nTest: m test-art-host\nTest: m test-art-target\nTest: 082-inline-execute\n\nChange-Id: I2dfab8ab606f3d01fba712f9014d2e0617449d74\n"
    },
    {
      "commit": "644032c817615210c1e17fe27010853abd8714e5",
      "tree": "1ef16b01ed825cb4097b9dbed1be96657b26ef1a",
      "parents": [
        "c836b5a8a5ea00b0cd332d5e60c9ec10ae1e74fb"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Dec 06 17:51:43 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Dec 12 11:42:43 2016 +0000"
      },
      "message": "ARM: VIXL32: Do a code cleanup.\n\nThis commit is mostly about changing the VIXL-based code generator\nto use the new helper functions in more places.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: Ibe35f6a133d5822cc3b7a876cc54590cdaca67fb\n"
    },
    {
      "commit": "d4cc5b2127894475160b5d2bba9791dd21af5953",
      "tree": "04120b6077cacb5d16cb40161dfddd6170d8a64e",
      "parents": [
        "3acf36142594f0afb60e2eef82fdfab1b17b2463"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Nov 04 11:19:09 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 05 13:01:29 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch.\n\nImplemented dispatch optimizations for InvokeStaticOrDirect,\nLoadClass, LoadString (excluding cases that use Literals).\nPerformed a cleanup of VIXL backend.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 \\\n      mma test-art-host dist \u0026\u0026 mma test-art-target dist\n\nChange-Id: Ib37a6b7e7657196b13caec999d190be747857c1d\n"
    },
    {
      "commit": "b77051ea5718fe017f2fa884b9ca4c8186c95190",
      "tree": "bb51782f8350be00195becabc3cd8758f15010a0",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Nov 21 19:46:00 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Nov 25 14:16:31 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix breaking changes from recent VIXL update.\n\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: I02a608bf51b889a2bfff43272a3619582bf9cf20\n"
    },
    {
      "commit": "cfbe9138edcc56be24f2fad121cd38d6490d95c4",
      "tree": "620b76b45154264d1dfd2d3baf8a25f843cd9142",
      "parents": [
        "cc7433d333cd62ed09c0ba0a17e8b0b30a31cb99"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Oct 14 15:58:56 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Nov 10 14:54:09 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement InstanceOf, InvokeInterface and others.\n\nMore than 100 tests now start to pass.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 \\\n      mma test-art-host dist \u0026\u0026 mma test-art-target dist\n\nChange-Id: I7a30241d42bf0beec254f6988646282f4ea46cef\n"
    },
    {
      "commit": "e28d9ae520082caece9dc90c87b69f864bf886e5",
      "tree": "34e0fb6cf8081cc298a4db8e69284c5bb93416c7",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Oct 25 18:17:23 2016 +0100"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Wed Nov 02 16:49:30 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement the functionality needed by intrinsics.\n\nThis patch passes:\n* 004-UnsafeTest\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: I7a3cd410411ef3a520d419734a835090097b2aee\n"
    },
    {
      "commit": "c34dba70a3f0b10399e916ae1c68431d34ae6df5",
      "tree": "55626f0a297182cdf6cc5e6a9cbf8ce3a2989167",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Oct 03 10:14:44 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Tue Nov 01 15:39:46 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement ArrayGet, ArraySet, BoundsCheck etc.\n\nOver 100 more ART tests now start to pass.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 \\\n      mma test-art-host dist \u0026\u0026 \\\n      mma test-art-target dist\n\nChange-Id: I8b7c2e29886981d72057d36347bca0626aabfe81\n"
    },
    {
      "commit": "a7812ae7939b199392f874b24a52454bbd0c13f2",
      "tree": "fcaff0417676c74ad7bf88e7c2571948e7eeef81",
      "parents": [
        "a497095b67c4ba2969d0b2a13f6959125c89d2bc"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Oct 17 10:03:36 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Oct 17 13:41:40 2016 +0100"
      },
      "message": "ARM: VIXL32: Pass initial ART tests with new code generator.\n\n- Implement enough codegen to pass ~70 art/tests.\n\n- When ART_USE_VIXL_ARM_BACKEND is defined:\n  - Blacklist known-to-fail target tests\n  - interpret-only everything except the tests themselves\n  - Set a flag to use the VIXL based ARM backend\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 mma test-art-target \u0026\u0026 mma test-art-host\n\nChange-Id: Ic8bc095e8449f10f97fa0511284790f36c20e276\n"
    },
    {
      "commit": "fe8854609898b5a148d2c4094aa9970af1a4ec59",
      "tree": "702e576ecfedb88f84b47f6b112d227161709520",
      "parents": [
        "45026e4548641b1c0da0a030d563adb894bc5dd5"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Sep 22 10:24:38 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Sep 22 10:44:29 2016 +0100"
      },
      "message": "Revert \"Revert \"ARM: VIXL32: Add an initial code generator that passes codegen_tests.\"\"\n\nThis VIXL32-based code generator is not enabled in the optimizing\ncompiler by default. Changes in codegen_test.cc test it in parallel with\nthe existing ARM backend.\n\nThis patch provides a base for further work, the new backend will not\nbe enabled in the optimizing compiler until parity is proven with the\ncurrent ARM backend and assembler.\n\nTest: gtest-codegen_test on host and target\n\nThis reverts commit 7863a2152865a12ad9593d8caad32698264153c1.\n\nChange-Id: Ia09627bac22e78732ca982d207dc0b00bda435bb\n"
    },
    {
      "commit": "7863a2152865a12ad9593d8caad32698264153c1",
      "tree": "69c31579f4440d9e8cffbe63b9975bff8a8c8ea2",
      "parents": [
        "b138dfbd76f9d8b64fb9dbaf1a7c25e2549b2a8c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 21 16:53:03 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 21 16:53:03 2016 +0000"
      },
      "message": "Revert \"ARM: VIXL32: Add an initial code generator that passes codegen_tests.\"\n\nFailing with:\nart/compiler/optimizing/code_generator_arm_vixl.cc:396:47: error: too few arguments to function call, expected 3, have 2\n  ValidateInvokeRuntime(instruction, slow_path);\n\nThis reverts commit b138dfbd76f9d8b64fb9dbaf1a7c25e2549b2a8c.\n\nChange-Id: Idccfe076f5905ea92ecbe3afbc7c8c64ecda94be\n"
    },
    {
      "commit": "b138dfbd76f9d8b64fb9dbaf1a7c25e2549b2a8c",
      "tree": "a3765fd2bd7e5ddd7ec81adab1ec36859f193d94",
      "parents": [
        "5cfaafbda5d2de57e311cfc9051f8d817091e950"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Tue Jul 26 10:33:29 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Sep 15 16:17:01 2016 +0100"
      },
      "message": "ARM: VIXL32: Add an initial code generator that passes codegen_tests.\n\nThis VIXL32-based code generator is not enabled in the optimizing\ncompiler by default. Changes in codegen_test.cc test it in parallel\nwith the existing ARM backend.\n\nThis patch provides a base for further work, the new backend will not\nbe enabled in the optimizing compiler until parity is proven with the\ncurrent ARM backend and assembler.\n\nTest: gtest-codegen_test on host and target\n\nChange-Id: Id556a975b2645bf1d98ab2984650e8435b2312c2\n"
    }
  ]
}
