)]}'
{
  "log": [
    {
      "commit": "770032ddfa31f6ed18e6ec85013b7939cd291eb0",
      "tree": "28dc26ae8a6b3623e79d1bb2b19fd5362477843c",
      "parents": [
        "7bd54ade8d12762ef6bdb0096f3838261f14eee5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 10:59:48 2019 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jan 02 11:04:05 2019 -0800"
      },
      "message": "Fix/suppress bionic google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: Id1ad0327c1b8c6f094bcbb3ae599bc1f716b3f2f\n"
    },
    {
      "commit": "ba1a723ad111018a1de7992032dabef8c87b15d7",
      "tree": "8e83fddc57fb9431f66fbf966de612d3c83ffc58",
      "parents": [
        "f1e657cdff25541959e1a81e0894bc4245d8e9d1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 15:19:53 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 15:46:49 2018 -0800"
      },
      "message": "switch to using android-base/file.h instead of android-base/test_utils.h\n\nTest: compile\nBug: 119313545\nChange-Id: I664fb32522d01909c603d7b903475c4e9aea9223\n"
    },
    {
      "commit": "9ac0cd5f85f9b9607bafa16d6e78393d69c08c0c",
      "tree": "f7bf4a29a60edfbc7d5d6948578cf83178712ac9",
      "parents": [
        "77a5f95405bec7b5fa717c29464b4fc3b62d1db1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 06 13:38:07 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 07 14:30:55 2018 -0800"
      },
      "message": "Fix test failures.\n\n- Fix the help output for new benchmarks help output.\n- Fix incorrect regex for sanitizing output.\n\nTest: Ran unit tests and they pass.\nChange-Id: I227eef3ce8c4ce639321e5ab8a57d0877063ede1\n"
    },
    {
      "commit": "18cbed70080807b6ee8924a4e7d50893dd862c9a",
      "tree": "f0a2ff37fb97731c6ab6f1796a50d63ddaaecc18",
      "parents": [
        "de1353b8a413dc627dba30b5eb9a38fa717749e6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 19 13:54:11 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 19 14:05:14 2018 -0700"
      },
      "message": "Make the test less specific.\n\nRemove the need to add every benchmark to the list of all benchmarks.\n\nAlso, add some hard-coding of the location of the benchmark executable.\nAdd a test to make sure the benchmark exists so it\u0027s possible to detect\nif the executable changes location.\n\nFinally, make the tests isolated so that they finish in half the time.\n\nTest: Ran unit tests.\nChange-Id: I1e59eb283e31d29b14e54c44ac865827c9704127\n"
    },
    {
      "commit": "3e5754c6ad6baf9f80885dc41c39854eb0bfb067",
      "tree": "4190f76386f30e73939c5caebe596da6e9aec01e",
      "parents": [
        "a2af8bea8c6c4b6ce6883bf92cbce922e0d9f458"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Oct 18 10:37:34 2018 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Oct 18 17:56:58 2018 -0700"
      },
      "message": "Add benchmarks for heap size retrieval\n\nAdd benchmarks for mallinfo, and for retrieving RSS from\n/proc/self/statm, since we\u0027re considering using these for GC\ntriggering.\n\nAdd some static linkage specifiers, after running into a build\nproblem due to a spurious conflict.\n\nBug: 111447610\n\nTest: Ran benchmarks\nChange-Id: Ie50d512294993882728c63ce51ec507590257d80\n"
    },
    {
      "commit": "efaa60ff6cab1cbd0018f69606bd738399241430",
      "tree": "6329a58016db2aaad7d03dfc0c99916327d7f3f8",
      "parents": [
        "30b17e32f0b403a97cef7c4d1fcab471fa316340",
        "627329915acba5e6884d02af97a8486421f251e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 25 22:13:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 25 22:13:09 2018 +0000"
      },
      "message": "Merge \"Only use NDK libraries in the benchmarks.\""
    },
    {
      "commit": "627329915acba5e6884d02af97a8486421f251e8",
      "tree": "b64a9cff7893d56b6e028b2cb926ac77c50e19b0",
      "parents": [
        "ce9d653b38868a73260d141acbf3ddd8c5d8e178"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 24 16:45:13 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 24 16:45:13 2018 -0700"
      },
      "message": "Only use NDK libraries in the benchmarks.\n\nIt should be possible to run the benchmarks on any device, including\npast and future ones, and sticking to NDK libraries ensures that.\n\nBug: N/A\nTest: `readelf -aW`\nChange-Id: I15a7a4104fa30263136bc3033d2bd9022cd8ff7b\n"
    },
    {
      "commit": "4fae703029a75d7f8b649d1f4609ba8926c653e3",
      "tree": "a335dd49f8753a95bd53b16e455a87c4278dc388",
      "parents": [
        "8d11bea6c57cf62171f4157e0f2061ada4c19b10"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 20 15:03:49 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 20 15:03:49 2018 -0700"
      },
      "message": "Touch the memory when doing malloc/free benchmark.\n\nAlso, update the benchmark loop for modern C++.\n\nTest: Ran benchmarks.\nChange-Id: I925446b893793eb8c2c6759716cdd3dbbcf1e7c1\n"
    },
    {
      "commit": "ed16b344e75f422fb36fbfd91fb30de339475880",
      "tree": "aebd7ef303ec593c8d7b29fa6e4a443f08d9784f",
      "parents": [
        "b228f4e3d34d7d03d235f1a089a4abc10e08711e",
        "c282ca9f44d59697df04d6b07e6dcd86fe3bdd75"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Sep 14 02:16:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 14 02:16:52 2018 +0000"
      },
      "message": "Merge \"benchmarks: Fix the benchmark tests.\""
    },
    {
      "commit": "62011c27a73f0c5092ac278f934b6fd89ce67c9f",
      "tree": "92245806cb62f9671bfee089c3ce299cff490d5b",
      "parents": [
        "4d9814909677805d04d113b7af24b3edf655a712"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Sep 13 16:08:15 2018 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Sep 13 16:08:18 2018 -0700"
      },
      "message": "benchmarks: Update the documentation.\n\nUpdate the locations of the benchmark binaries to match where they\nare currently installed.\n"
    },
    {
      "commit": "c282ca9f44d59697df04d6b07e6dcd86fe3bdd75",
      "tree": "81fe0aeec4d322f4fa1b4f5aa294bb7dbe1bff74",
      "parents": [
        "4d9814909677805d04d113b7af24b3edf655a712"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Sep 13 16:05:19 2018 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Sep 13 16:06:01 2018 -0700"
      },
      "message": "benchmarks: Fix the benchmark tests.\n\nUpdate the list of benchmarks to include the recently added strncmp\nbenchmarks.\n"
    },
    {
      "commit": "e466cc0d5548472e6e78c9994e3c2c982157b549",
      "tree": "00b4ee9139f27133c49e141813983c620f161cca",
      "parents": [
        "d1214b0c688906d2a97c29fa1700723f31b51eb8"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Tue Aug 21 12:55:37 2018 -0700"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Tue Aug 21 21:04:43 2018 +0000"
      },
      "message": "Add benchmark for strncmp\n\nTest: run benchmark\nChange-Id: Id99d81fe4d2a72a7f22414c7eea3ef3d873022ab\n"
    },
    {
      "commit": "0dc784431b3e0a5964b257753e2bf4dcc96a463d",
      "tree": "112d7833549c2064988a53b6ad633117567bb6f3",
      "parents": [
        "5285d5995b37df589907b8fb00993b4414e7fd81"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 09 15:19:57 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Aug 14 16:01:58 2018 -0700"
      },
      "message": "Add new malloc benchmarks.\n\nThis runs through the trace of the allocations in a sql benchmark app\nexecuted in the benchmark thread.\n\nAdd one benchmark with decay time set to 0 and another with decay time\nset to 1.\n\nInclude a script that can generate a header file that can be used to\nregenerate the data.\n\nBug: 112317428\n\nTest: Builds, ran unit tests, ran benchmarks.\nChange-Id: I62e287cc06b74b74bcc5a4bbee71b0fac0a196fd\n"
    },
    {
      "commit": "510dda3ea1bdd2d52448cce076bbbee67914e801",
      "tree": "37a7aefaf5a640c8024b7df73ea9f1afa911ac7f",
      "parents": [
        "a7573441c1274bbdb3fc992d068ebf97b30a0208"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Aug 11 23:39:06 2018 -0700"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Aug 11 23:43:03 2018 -0700"
      },
      "message": "Fix benchmark-tests\n\n1. fix all_benchmarks. Some new benchmarks were added.\n2. move some benchmark suites to the right place.\n3. add unit test for https://android-review.googlesource.com/c/platform/bionic/+/724785\n\nTest: compile and run bionic-benchmarks-tests on device.\nChange-Id: I2b686b51910a422b664f9ea968199f37944039c0\n"
    },
    {
      "commit": "43f2b77c8bbe7dfdabce4f8118e7f43d701300e6",
      "tree": "77a3e4111885ab15b71f7024af946df4ec95a2e6",
      "parents": [
        "68c8dd73ae651adb2dcefe0edd109969f604b1df"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 26 10:34:51 2018 -0300"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Aug 11 07:20:53 2018 +0000"
      },
      "message": "Add new strcmp/strncmp benchmark\n\nThis patch adds a new strcmp/strcmp benchmark with different set of\ninputs.  It cover all pre-defined range values (small, medium, large)\nfor aligned inputs and also small range for unaligned ones.\n\nTest: Ran new string test suite with a single bionic iteration.\nChange-Id: Ice78d74c3583a33158eaba3309c10df54044aa28\n"
    },
    {
      "commit": "0e4fd755a0da98649bfc1668003f83b8f8a09a3e",
      "tree": "6813837197e05f95e7dd63c3507cfb0fedbc4da2",
      "parents": [
        "5288655f014b96bec1dac52753fa7e46ba7a3b67"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 26 10:30:14 2018 -0300"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Aug 11 07:20:13 2018 +0000"
      },
      "message": "Add new memcmp benchmark\n\nThis patch adds a new memcmp benchmark with different set of inputs.\nIt covers all pre-defined range values (small, medium, large) for\naligned inputs and also medium range for unaligned ones.\n\nTest: Ran new string test suite with a single bionic iteration.\nChange-Id: Icdb95220a62d46bd71fa6ffbbf4567a9a05b7685\n"
    },
    {
      "commit": "eda94aa1aeb61270228d2542feb9c493cfa12428",
      "tree": "175a503e0fe2f56ca0f88bbd5d9222f4c2b05c01",
      "parents": [
        "0f06b34e332fc0c430dacc1e648cc0832ffe15e4"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 26 10:27:10 2018 -0300"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Aug 11 00:27:27 2018 +0000"
      },
      "message": "Add option to define ranges sets for benchmarks\n\nThis patch add an option to use the pre-define set of ranges along\nwith macros AT_ONEBUF_MANUAL_ALIGN_* and AT_TWOBUF_MANUAL_ALIGN1_*.\n\nThe size argument can be either a number or a string representing\nthe sets of values:\n\n  * SMALL for values between 1 and 256.\n  * MEDIUM for values between 512 and 128KB.\n  * LARGE for values between 256KB and 2048KB.\n\nTest: Ran new string test suite with a single bionic iteration.\nChange-Id: Ieda81ee9a5019991b0b2f97d4ca3a237127c5848\n"
    },
    {
      "commit": "72fe1c8df6a7a71d78d3089aae9f5fd06d15d90b",
      "tree": "995cdfd4699f50188c8f74a9bbdd5420e4ef5e27",
      "parents": [
        "56f4511c39589a6ac6957675e9d2feb212dfb708"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Wed Aug 08 13:36:14 2018 -0300"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Wed Aug 08 18:04:48 2018 -0300"
      },
      "message": "Add pow benchmark\n\nAs for exp/exp2 benchmark, this patch add two benchmark for pow:\none which measures thoughput and one which measures latency.\n\nThe input data is the same as powf.\n\nTest: ran 32-bit and 64-bit x86 tests on host\nChange-Id: I04335fac9e76fb3f39935323dacf6b7be6a6f917\n"
    },
    {
      "commit": "56f4511c39589a6ac6957675e9d2feb212dfb708",
      "tree": "6c8657bb174b6188c335cb9a6273504299019fe4",
      "parents": [
        "099835ad2a7c35ab9f2825b66d18742c7fcbd9be"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Wed Aug 08 11:02:26 2018 -0300"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Wed Aug 08 18:04:48 2018 -0300"
      },
      "message": "Add log and log2 benchmark\n\nSimilar to exp/exp2, this patch add two benchmarks for log and log2:\none which measures thoughput and one which measures latency.\n\nThe input data is based on logf/log2f one (reduced trace based on 2.8\nbillion samples extracted from specpu2017 521.wrf_r benchmark).\n\nTest: ran 32-bit and 64-bit x86 tests on host\n\nChange-Id: I51a9e2960e45d5619585e685eaa7634cc7be901b\n"
    },
    {
      "commit": "10d330af340a0f9c9a98b3c2db5eb883395656dc",
      "tree": "9c0da2a9cda2ab15a4d93c51d5515af31924a75b",
      "parents": [
        "f2fb3b11c611536b19d4ce8949dffe7f151854b5"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Wed Aug 08 10:54:53 2018 -0300"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Wed Aug 08 15:06:09 2018 -0300"
      },
      "message": "Add exp and exp2 benchmark\n\nThis patch add two benchmarks for both exp and exp2, one which measures\nthoughput and one which measures latency. The latency benchmark works by\ncreating a dependency on the previous iteration and with a zero multiply\nto avoid changing the input value.\n\nThe input is based on expf/exp2f benchmark (reduced trace based on 2.4\nbillion samples extracted from specpu2017 521.wrf_r benchmark).\n\nTest: ran 32-bit and 64-bit x86 tests on host\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "d5ee4c5fb70661f919cb8edf96212202c4c3f5f4",
      "tree": "6786a48ecb7e88965bfd3cef9f6bef9ac7292a60",
      "parents": [
        "1d7c04c20ad640c41990cef1e04c99520b5a18eb"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Fri Jul 06 15:55:25 2018 -0700"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Sat Jul 07 04:14:22 2018 +0000"
      },
      "message": "Change args to int64_t\n\nThe new benchmark framework uses int64_t for args.\n\nRelated benchmark change:\nhttps://github.com/google/benchmark/commit/9913418d323e64a0111ca0da81388260c2bbe1e9#diff-b9f55422dc0bd52759c6aaa25c305bb0R757\n\nUpgrade benchmark framework:\nhttps://android-review.googlesource.com/c/platform/external/google-benchmark/+/714118\n\nTest: compile and run bionic benchmark\nChange-Id: I1b81c853c28abbead1816bf0be7a20a35e036619\n"
    },
    {
      "commit": "7871ca1075fffd2102147c1e75325b692d9a1d28",
      "tree": "94398994b380c3abc4c71181b46a7cd6d6307a01",
      "parents": [
        "ff5a353112d4d091a70b56304bddaa624e30e0ae"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Fri Jun 08 11:18:32 2018 -0300"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 19 11:34:54 2018 -0300"
      },
      "message": "Add sinf/cosf/sincosf benchmark\n\nSimilar to expf/exp2f, this patch add two benchmarks for sinf, cosf, and\nsincosf: one which measures thoughput as default and one which measures\nlatency.\n\nThe input in 512 random value divided in 8 ranges:\n\n  1. 0.0 \u003c\u003d x \u003c 0.1\n  2. 0.1 \u003c\u003d x \u003c 0.7\n  3. 0.7 \u003c\u003d x \u003c 3.1\n  4. -3.1 \u003c\u003d x \u003c 3.1\n  5. 3.3 \u003c\u003d x \u003c 33.3\n  6. 100.0 \u003c\u003d x \u003c 1000.0\n  7. 1e6 \u003c\u003d x \u003c 1e32\n  8. 1e32 \u003c x \u003c FLT_MAX\n\nTest: ran 32-bit and 64-bit x86 tests on host\nChange-Id: I92bc2f1fac911c573c5122911d08ca590311578a\n"
    },
    {
      "commit": "ff5a353112d4d091a70b56304bddaa624e30e0ae",
      "tree": "90ec52ae13be7aa37a8ec53fc00cd11d63d43a26",
      "parents": [
        "872c8b51331bba20e81a4563a901e2faf319cb69"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 05 15:47:06 2018 -0300"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 19 11:34:54 2018 -0300"
      },
      "message": "Add logf and log2f benchmark\n\nSimilar to expf/exp2f, this patch add two benchmarks for logf and log2f:\none which measures thoughput and one which measures latency.\n\nThe input data is based on a reduced trace based on 2.8 billion samples\nextracted from specpu2017 521.wrf_r benchmark.\n\nTest: ran 32-bit and 64-bit x86 tests on host\nChange-Id: If4fbd7eb3d40f8e155935149a82f162b222d5506\n"
    },
    {
      "commit": "872c8b51331bba20e81a4563a901e2faf319cb69",
      "tree": "22d0f85cef9efb8693325f0780ebd417ab742346",
      "parents": [
        "357f6c1b474065070e9cfd5a07baf10041337fde"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 05 13:57:03 2018 -0300"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 19 11:34:54 2018 -0300"
      },
      "message": "Add powf benchmark\n\nAs for expf/exp2f benchmark, this patch add two benchmark for powf:\none which measures thoughput and one which measures latency.\n\nThe input data is based on a reduced trace from 2.3 billion samples\nextracted from specpu2017 521.wrf_r benchmark.\n\nTest: ran 32-bit and 64-bit x86 tests on host\nChange-Id: Id8943d90dd5452146e55fb75708daaf7bf0e25fa\n"
    },
    {
      "commit": "357f6c1b474065070e9cfd5a07baf10041337fde",
      "tree": "7b2f980a17419fbf054c187201dc7df4162a575d",
      "parents": [
        "520ad0cae8f68166ca323c07ab704e5fbdc4f655"
      ],
      "author": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 05 09:28:40 2018 -0300"
      },
      "committer": {
        "name": "Adhemerval Zanella",
        "email": "adhemerval.zanella@linaro.org",
        "time": "Tue Jun 19 11:34:54 2018 -0300"
      },
      "message": "Add expf and exp2f benchmark\n\nThis patch add two benchmarks for both expf and exp2f, one which\nmeasures thoughput, as default, and one which measures latency. The\nlatency benchmark works by creating a dependency on the previous\niteration and with a zero multiply to avoid changing the input value.\n\nThe input is based on a reduced trace based on 2.4 billion samples\nextracted from specpu2017 521.wrf_r benchmark.\n\nTest: ran 32-bit and 64-bit x86 tests on host\nChange-Id: Ic0d40cc4977dd6875fb7431146fc38ea0e6e0bc2\n"
    },
    {
      "commit": "e332f658e0ee33a799b204640b2d79590500b039",
      "tree": "ebf1acc64da70be14e81b050c788969c73463724",
      "parents": [
        "0364a4b44671abd016e10b0cf3a0927ae2f77592"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 08 15:07:43 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:25:12 2018 -0700"
      },
      "message": "Switch to FreeBSD\u0027s actual sincos.\n\nBefore:\n  BM_math_sin_fast                48 ns         48 ns   14693053\n  BM_math_sincos                  61 ns         61 ns   11470219\n\nAfter:\n  BM_math_sin_fast                48 ns         48 ns   14725120\n  BM_math_sincos                  43 ns         43 ns   16329843\n\nBug: N/A\nTest: ran tests, benchmarks\nChange-Id: I8693c64135233c0641af5302c38748f47ac76737\n"
    },
    {
      "commit": "bfb7c761d41a3ab9fd1cf20f256e7c4e14508c7b",
      "tree": "4151c5f2eb928e1248ca4a4bbfba25dd827474e0",
      "parents": [
        "7eb976e00db4c0cd7cff7468298fdce2d7682730"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 04 13:27:47 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 04 17:34:35 2018 -0700"
      },
      "message": "Fix bug in --bionic_cpu option handling.\n\nMake sure that all the variables are properly initialized.\n\nRemove the code that verifies the core to enable using get_schedaffinity\nsince that make it impossible to change the cpu for different tests.\n\nChange the cpu_to_lock to an int, it really didn\u0027t need to be a long.\n\nFix a few missing tests.\n\nTest: Ran unit tests.\nTest: Built the tests and ran on different cpus, verifying that the\nTest: chosen cpu was correct.\nTest: Created an xml file that had different cpus for different tests\nTest: and verified that it locked to each cpu properly.\nChange-Id: Ie7b4ad8f306f13d6e968d118e71bb5dc0221552a\n"
    },
    {
      "commit": "ee8e3dd67c910907115c7cef87be3d898d71a05d",
      "tree": "022d9c97d9bdc95c34dbf0052b8dcf9ce394bc46",
      "parents": [
        "44c7b6ad0ac277a8ed3ee2278f6c1ee23f130ab5"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 21 15:01:22 2018 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Feb 21 15:10:17 2018 -0800"
      },
      "message": "Remove non-trivial constructors/destructors from SystemProperties\n\nWith the goal of disallowing exit time destructors, SystemProperties\u0027s\nnon-trivial destructor needs to be removed.  This means replacing the\nunion hack with yet another hack as we don\u0027t want to allocate anything\ndespite relying on some polymorphism.\n\nBug: 73485611\nTest: boot bullhead\nChange-Id: I64223714c9b26c9724bfb8f3e2b0168e47b56bc8\n"
    },
    {
      "commit": "cbc80ba9d839675a0c4891e2ab33f39ba51b04b2",
      "tree": "0b24e6123c94bd3e61d94fd6eca6a3b9cc9b074e",
      "parents": [
        "3374d0cabb973ff2b73ad8cd909389bdeed18658"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 14:26:29 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 13 14:27:17 2018 -0800"
      },
      "message": "Switch the rest of our internal headers to #pragma once.\n\nWe\u0027ve been using #pragma once for new internal files, but let\u0027s be more bold.\n\nBug: N/A\nTest: builds\nChange-Id: I7e2ee2730043bd884f9571cdbd8b524043030c07\n"
    },
    {
      "commit": "d50a1de565c00d415ad39ef8c14e392da4c99d43",
      "tree": "011e021bbb021d83634d00ffa3255ebd7d468cfe",
      "parents": [
        "a70089163ca09a983772dd2a8daa17e47f8ede53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 17:30:57 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 17:30:57 2018 -0800"
      },
      "message": "Run bpfmt manually.\n\nBug: N/A\nTest: builds\nChange-Id: I0cf145c3b699ac8ef170a63366832f63a9cc1a91\n"
    },
    {
      "commit": "5a00ba7c1c5d563b58255257898fe0a5903933eb",
      "tree": "083ed71cdeb769c6de53fd333ca249ff77ab8f3d",
      "parents": [
        "2e2a8930e5f9eb2d9ea4fdb61f746c6f2e2048ac"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 26 17:32:31 2018 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu Feb 01 16:01:46 2018 -0800"
      },
      "message": "Support priority inheritance mutex in 32-bit programs.\n\nAdd fast path calling PIMutexTryLock() in pthread_mutex_lock.\nAdd trace for pi mutex waiting.\n\nBug: http://b/29177606\nTest: run bionic-unit-tests.\nTest: run bionic-benchmarks.\n\nChange-Id: I30b6436692d5ea6b63ca9905df745edb843b5528\n"
    },
    {
      "commit": "6b9c85b36d2e69b45d780e6a0b27d64909311a7e",
      "tree": "eff21cc7000bc125f5c91f0d90819fd778be371f",
      "parents": [
        "73871ad09be8a8259171d606c4e3e3cf08d4733c"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 23 12:56:18 2018 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Jan 24 16:11:07 2018 -0800"
      },
      "message": "Support priority inheritance mutex in 64bit programs.\n\nBug: http://b/29177606\nTest: run bionic-unit-tests on walleye.\nTest: run bionic-unit-tests-glibc on host.\nChange-Id: Iac349284aa73515f384e7509445f87434757f59e\n"
    },
    {
      "commit": "5cec377f49d6429b19895eb632225cd757ea611e",
      "tree": "bcd08fe1e6b656a5a4e235a225fbe88feb54a112",
      "parents": [
        "0d63a3c233040af004cc470d5f76547f3adc0148"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 19 15:45:23 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 19 15:56:12 2018 -0800"
      },
      "message": "Address a bunch of clang-tidy complaints.\n\nThere were a bunch more unreasonable/incorrect ones, but these ones\nseemed legit. Nothing very interesting, though.\n\nBug: N/A\nTest: ran tests, benchmarks\nChange-Id: If66971194d4a7b4bf6d0251bedb88e8cdc88a76f\n"
    },
    {
      "commit": "4c5fde0e5e1e20ae265095332f0ce96745300566",
      "tree": "8f5ed6d15abb593d7fd58eaab221a98740f8257d",
      "parents": [
        "f9fcb1efae7458109b13260d7a7f8db939a1aa2c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 08 16:13:14 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 08 16:13:14 2018 -0800"
      },
      "message": "Remove workaround for running property tests.\n\nAlso fix the tests for some missing benchmarks that have been\nadded recently.\n\nTest: Ran bionic benchmarks tests and all pass.\nTest: Ran bionic benchmarks to verify that there are no crashes.\nChange-Id: I8501553e8a229c0c6ea81e894e91ac2f5f2fe26c\n"
    },
    {
      "commit": "811a1dd8680ccc0c052651cb30ecf6416613c627",
      "tree": "93dd4a04aa83621c23e4fb953fb421134fa1a97d",
      "parents": [
        "ba69b37a75a793a5c534c6e53d2958770fa54786",
        "7063a838be5eb1f28f40a554944a31bab49c3211"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 19 20:23:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 19 20:23:39 2017 +0000"
      },
      "message": "Merge \"More benchmarks.\""
    },
    {
      "commit": "7063a838be5eb1f28f40a554944a31bab49c3211",
      "tree": "6f498b51428018eac4a519f7624b9e8131433433",
      "parents": [
        "721a5305e24b69b68ecc9431526f32131abc8f6c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 19 08:55:40 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 19 08:55:40 2017 -0800"
      },
      "message": "More benchmarks.\n\nAdd a hand-rolled maps line parser as something to compare our realistic\nsscanf benchmark against. Also add benchmarks for the ato*/strto* family.\n\nThis patch doesn\u0027t fix the tests, which seem to have been broken by\nthe recent google-benchmark upgrade despite the benchmarks themselves\nall working just fine. To me that\u0027s a final strike against these tests\nwhich are hard to maintain and not obviously useful, but we can worry\nabout what to do with them -- whether to just delete them or to try to\nturn them into tests that actually have some value -- in a separate CL.\n\nBug: N/A\nTest: ran benchmarks\nChange-Id: I6c9a77ece98d624baeb049b360876ef5c35ea7f2\n"
    },
    {
      "commit": "e275d6d72db1868056a204e8483a7346a28cb8d6",
      "tree": "3191e33ca242518f7d486c6b37212c7f682498b0",
      "parents": [
        "721a5305e24b69b68ecc9431526f32131abc8f6c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Dec 11 23:31:33 2017 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Dec 18 15:17:55 2017 -0800"
      },
      "message": "Split properties into their own class to make testing better\n\nReinitializing system properties can result in crashes later in the\nprogram, and is generally not recommended or even supported.  This\nchange moves the actual logic for system properties into a class that\ncan be tested in isolation, without reinitializing the actual system\nproperty area used in libc.\n\nBug: 62197783\nTest: boot devices, ensure properties work\nTest: system property unit tests and benchmarks\nChange-Id: I9ae6e1b56c62f51a4d3fdb5b62b8926cef545649\n"
    },
    {
      "commit": "3b644e932a9a1e9f08ce27002c9a2803d5d74ef6",
      "tree": "15e60803da99f7b6802a90885fa60e1b5ee2ba41",
      "parents": [
        "4940a24a1146f3a3f03925ebc1b090028e42e49f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 11 14:43:52 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 11 14:46:22 2017 -0800"
      },
      "message": "Trivial scanf benchmarks.\n\nBug: http://b/68672236\nTest: ran benchmarks\nChange-Id: I96514be5e67969b65205e953051c524be3626ec4\n"
    },
    {
      "commit": "6f9c35ded294ca7b0b8f9042f705cbfca1ec8518",
      "tree": "0e6baac52e0ddd5b8d6fe250285db3484728efe0",
      "parents": [
        "6ffa10f4830f7831453b1051e7b86358a728240f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 07 13:48:46 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 07 09:41:31 2017 -0800"
      },
      "message": "bionic: benchmark: add clock_getres performance tests\n\nProvide a means to check vdso kernel performance for all reasoned\ncombinations of clock_getres, same set of ids as clock_gettime.\n\nAdd to suites/vdso.xml\n\nTest: /data/nativetest{64}/bionic-benchmarks-tests/bionic-benchmarks-tests\n      /data/benchmarktest{64}/bionic-benchmarks/bionic-benchmarks \\\n        --bionic_xml\u003dvdso.xml --benchmark_filter\u003dBM_time_clock_getres*\nBug: 63737556\nChange-Id: I11ea200f67aec2a2f6ad9284960f2941298da222\n"
    },
    {
      "commit": "6ffa10f4830f7831453b1051e7b86358a728240f",
      "tree": "231cce187b4d866b5192f7bd9e5d5b9f04695ea4",
      "parents": [
        "78b40e8fe1f37de319344c92d8e6e1eb595c1067"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Nov 07 13:47:48 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 07 09:41:13 2017 -0800"
      },
      "message": "bionic: benchmark: additional clock_gettime performance tests\n\nProvide a means to check vdso kernel performance for each of\nCLOCK_MONOTONIC (current), CLOCK_MONOTONIC_COARSE,\nCLOCK_MONOTONIC_RAW, CLOCK_REALTIME, CLOCK_REALTIME_COARSE,\nCLOCK_BOOTTIME.\n\nAdd a suites/vdso.xml to select subset of tests impacted by\nvdso implementations.\n\nTest: /data/nativetest{64}/bionic-benchmarks-tests/bionic-benchmarks-tests\n      /data/benchmarktest{64}/bionic-benchmarks/bionic-benchmarks \\\n        --bionic_xml\u003dvdso.xml --benchmark_filter\u003dBM_time_clock_gettime*\nBug: 63737556\nChange-Id: Ibc48e838e50929527ce8d221dd1a608bf185cbc2\n"
    },
    {
      "commit": "e2188d460b9356b84ec3a9113f03f0dd7ff43d32",
      "tree": "35c8d707b9833ec426cf5c442f60a5e4e4779bcd",
      "parents": [
        "fdacec1d4237373354d10c5a400c9c7a3a975285"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 08 23:28:57 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 30 15:49:45 2017 -0800"
      },
      "message": "Add new benchmark options.\n\nAdd a bunch of extra options to allow greater flexibility for creating\nbenchmarks. Add a pattern option that can be used to represent any\none buffer or two buffer possibility. This should fully replace the\nfunctionality of microbench.\n\nAdd a single option for one buffer benchmarks and two buffer benchmarks\nthat represents all of the possible options to run a string benchmark.\n\nAdd a string test suite that includes all string benchmarks using the\nabove option.\n\nTest: New unit tests to cover all the new options, and all pass.\nTest: Ran new string test suite with a single bionic iteration.\nChange-Id: Idb13ea15e44cec626e9f46672ccd648d7ca72ba6\n"
    },
    {
      "commit": "858e33698d947a686fa59ed0206ce7c6656d3439",
      "tree": "74da61c257264c74bb683c5a7d7e0d387b53ac50",
      "parents": [
        "27d4977f1f4d0b4cbd67bd0cfc29d4d8cfff96f1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 30 08:53:15 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 30 09:09:41 2017 -0800"
      },
      "message": "Generate all the benchmarks to run.\n\nInstead of requiring the need to maintain a list of all the benchmarks,\nadd a programmatic way to generate all of the benchmarks.\n\nThis generation runs the benchmarks in alphabetical order.\n\nAdd a new macro BIONIC_BENCHMARK_WITH_ARG that will be the default argument\nto pass to the benchmark. Change the benchmarks that require default arguments.\n\nAdd a small example xml file, and remove the full.xml/host.xml files.\n\nUpdate readme.\n\nTest: Ran new unit tests, verified all tests are added.\nChange-Id: I8036daeae7635393222a7a92d18f34119adba745\n"
    },
    {
      "commit": "ad05730143cc2dbd38df869431a0ee461495fce3",
      "tree": "8aae8f6523dbd842a89bbcd86eafc99428597b31",
      "parents": [
        "8574a1f63082240c92945cff15fba785a5a857e7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 07 15:18:33 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 07 15:18:33 2017 -0800"
      },
      "message": "Fix bionic benchmark unit tests.\n\nTest: Ran unit tests.\nChange-Id: I729572b101c7011cde5e7da4a72af7ede719b76b\n"
    },
    {
      "commit": "5305a4d4a723b06494b93f2df81733b83a0c46d3",
      "tree": "e2de767071618925487ca8b8ba2da4d7aac62fce",
      "parents": [
        "232541aa02e22ab8fafcdd503c74aae22fa09699"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 03 14:00:37 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 03 14:19:00 2017 -0700"
      },
      "message": "10x printf speedup.\n\nAndroid is UTF-8. Don\u0027t make everyone pay to convert UTF-8 to ASCII just\nso we can recognize \u0027%\u0027. With UTF-8 we can just strchr forwards.\n\nBefore:\n\n  ---------------------------------------------------------------\n  Benchmark                        Time           CPU Iterations\n  ---------------------------------------------------------------\n  BM_stdio_printf_literal       1290 ns       1290 ns     442554\n  BM_stdio_printf_s             1204 ns       1204 ns     582446\n  BM_stdio_printf_d             1206 ns       1206 ns     578311\n  BM_stdio_printf_1$s           2263 ns       2263 ns     310002\n\nAfter:\n\n  ---------------------------------------------------------------\n  Benchmark                        Time           CPU Iterations\n  ---------------------------------------------------------------\n  BM_stdio_printf_literal        178 ns        178 ns    3394001\n  BM_stdio_printf_s              246 ns        246 ns    2850284\n  BM_stdio_printf_d              252 ns        252 ns    2778610\n  BM_stdio_printf_1$s            363 ns        363 ns    1929011\n\nAdd missing __find_arguments error checking to the wide variant to match\nthe regular one.\n\nAlso replace various char/wchar_t differences with the macro.\n\nBug: http://b/67371539\nTest: ran tests\nChange-Id: I18f122009c22699943ab5d666a98ea594a972c40\n"
    },
    {
      "commit": "928059907bb5d594472687d1d05266158d317bb8",
      "tree": "afafcf66e8c2f9cc80a01643ae20cfd7f88d95ad",
      "parents": [
        "c6291b081d2089ba7a16d7777fb2713d828d537f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 26 15:41:49 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 26 15:43:34 2017 -0700"
      },
      "message": "Add basic printf benchmarks.\n\nBug: http://b/67371539\nTest: ran benchmarks\nChange-Id: I6ad05540079776b2df4cc8d9c02440c61e42037d\n"
    },
    {
      "commit": "286b3a8b2d071ee2652232b923770757f0647468",
      "tree": "e10a2b83141f4ce4af53fd8e4318103ad884c714",
      "parents": [
        "d330bbbac846d0dfbc797ca594bc69f3442494d1"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 24 14:00:09 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 24 14:02:54 2017 -0700"
      },
      "message": "Fix pthread benchmarks.\n\nPauseTiming and ResumeTiming are thread-local, and unbalanced calls to\nthem leads to obviously bogus results like:\n\n    Benchmark                          Time            CPU Iterations\n    -----------------------------------------------------------------\n    BM_pthread_exit_and_join      212600 ns    59981418 ns         12\n    BM_pthread_create_and_run  212997341 ns -1569132344 ns       1000\n\nBug: http://b/68170209\nTest: ran bionic benchmarks\nChange-Id: Ia88cd6af9ff524443850d834a96cf5dd9c7f3ed9\n"
    },
    {
      "commit": "5c6a7bf0dc821bcaa49d5289f01360f8dd78aa86",
      "tree": "3c535768b792308647f3c7294d72799b2b70fb4d",
      "parents": [
        "ab9dc08bdd60d3709e1bce555625d923b32812be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 13:56:28 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 19 14:15:31 2017 -0700"
      },
      "message": "Remove some legacy declarations from \u003cmath.h\u003e.\n\nThese are still needed for backwards compatibility with code built by old\nversions of the NDK, but we don\u0027t need to pollute the headers with them.\n\nAlso lose the hand-written code for these. The compiler-generated code\nis either the same or better, and no new code is calling these functions\nanyway.\n\nBug: N/A\nTest: ran tests\nChange-Id: Ib01ad9805034433e0105aec882608cc8e6526f78\n"
    },
    {
      "commit": "ae407e522a49cb2863ed69ad80a37ba789113b03",
      "tree": "33efe6ee9eced0de5f507b6066e54d0e29ca69be",
      "parents": [
        "b736c41ffe42f84ce8f74ce89368f07ff97924c5"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Sep 28 16:14:54 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Sep 28 16:16:14 2017 -0700"
      },
      "message": "Remove default libraries\n\nlibdl is part of system_shared_libs now. -ldl -lpthread -lm are now defaults\nfor host_ldlibs on Linux and Darwin. -lrt is a default for host_ldlibs on\nLinux.\n\nTest: m host\nTest: mmma bionic\nChange-Id: I966e2f88c24fba5e412bee6b6382045a2026a8e4\n"
    },
    {
      "commit": "0bfcbaf4d069e005d6e959d97f8d11c77722b70d",
      "tree": "c1c11870e6184884cf8f2dc6cf9cdf250cf5abde",
      "parents": [
        "8468a1be012f485c4f6579204704b52f5409cdc2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 28 09:18:34 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 29 11:07:36 2017 -0700"
      },
      "message": "Add new status document, based on internal wiki.\n\nAlso start breaking up the monolithic top level README.md, pulling the\n32-bit ABI stuff out into its own file, and moving the remaining benchmark\ndocumentation in with the rest of the benchmark documentation.\n\nBug: N/A\nTest: N/A\nChange-Id: Ic1b9995e27b5044199ed34883cc0b8faa894df0e\n"
    },
    {
      "commit": "814359a88053aa4eb80e2e0b8118ed88b44d3ec4",
      "tree": "2fbc1222ca095a3e5a3ea357f15f2b143228c4ca",
      "parents": [
        "571c88823636e3c6f894e806ea7c4dc8131a1ae4"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Fri Aug 11 16:07:18 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 25 10:41:38 2017 -0700"
      },
      "message": "Update the bionic benchmarks documentation.\n\nTest: NA\nChange-Id: I6b804a1655b5cb76f189366070d478680f40c5d1\n"
    },
    {
      "commit": "d9d39be0f0716eea1127b95be5c0b8155122fbd4",
      "tree": "44b29ea650d690588b3d87f0a8b559ebf2b77dd1",
      "parents": [
        "8e410a73d411a1dfe0a5074c9f956adfae361027"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 23 18:03:51 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 24 14:50:03 2017 -0700"
      },
      "message": "A few small fix ups.\n\n- Add a default xml file to run if nothing is specified on the command-line.\n- Add a way to specify a xml file in suites without having to specify the\n  full path name.\n- Move all of the test xml files into their own directory.\n- Add the suites directory for to glibc benchmarks.\n- Add a new test for help data.\n- Modify the full suite test to verify the default xml is chosen and use\n  the real full.xml instead of the test one. Delete the test_full.xml.\n- Move the property tests to the end of the suite.\n- Add skipping of xml comments.\n\nTest: Ran the unit tests and ran the bionic benchmarks.\nChange-Id: Ie99965f86fe915af0175de46c7780ab79e2b0843\n"
    },
    {
      "commit": "8e410a73d411a1dfe0a5074c9f956adfae361027",
      "tree": "ee5d992a23fba77d9220eaa9a4a04705e50020ab",
      "parents": [
        "506f3f11f135039f3662ba183605bb194824aa57",
        "4b26f71778b446bb2da1592b20bcfa281d706c89"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 24 17:01:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 24 17:01:56 2017 +0000"
      },
      "message": "Merge \"Fix local path assumption in interface_test.\""
    },
    {
      "commit": "938bece9e0c5d7d67d137dbfbba1e2d244c95b35",
      "tree": "cb655541a4b96f3af5c854a80793af05833235b5",
      "parents": [
        "57e07a150e536f79d78f8203b0c807087b5c854b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 23 09:52:50 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 23 14:03:43 2017 -0700"
      },
      "message": "Benchmark fgetln(3) and getline(3) as well as fgets(3).\n\nOn Pixel 2016, there\u0027s about 1us overhead for getline versus\nfgets. fgetln(3) is worse still because of the intermediate buffering\n(though it might actually be better if you were only reading one line\nwhose length was less than BUFSIZ).\n\nAlso use somewhat realistic input for these benchmarks: /dev/zero makes\nno sense at all.\n\nBug: N/A\nTest: ran benchmarks\nChange-Id: I4a319825a37ac3849014c4c6b31523c1e200c641\n"
    },
    {
      "commit": "d706fe5f9e83707901389914c77afa69c19e07e6",
      "tree": "dffb701fa9e822f6c45c2d14d711e51d1701e22a",
      "parents": [
        "096fa4497c50cffdb56f06d7038adbeb3c1254d6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 22 15:26:07 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 23 00:05:21 2017 +0000"
      },
      "message": "Fix the stdio fwrite benchmark.\n\nCan\u0027t write to a read-only file. (Mode \"rw\" isn\u0027t meaningful, but isn\u0027t\nconsidered an error by any libc I know of.)\n\nBug: http://b/64585477\nTest: ran benchmarks\nChange-Id: Ifec1d68414bfc8f3cc8d7f912cb135dccb2e7a41\n"
    },
    {
      "commit": "4b26f71778b446bb2da1592b20bcfa281d706c89",
      "tree": "f374e351a0a7494ac8f16e844ebddff343c3ad39",
      "parents": [
        "30438e4cea83628bcacbedff37a35398bb8b40e7"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Fri Aug 11 15:56:18 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Aug 15 11:04:44 2017 -0700"
      },
      "message": "Fix local path assumption in interface_test.\n\nAlso fix a couple of other issues with the tests.\n\nTest: Unit tests.\nChange-Id: I6c2b2b5fad487460441487cc231a0e4a8d3897c7\n"
    },
    {
      "commit": "30438e4cea83628bcacbedff37a35398bb8b40e7",
      "tree": "d0dab96c8f737ae4058b1e144ced6418823b5b77",
      "parents": [
        "73c3be22199a42bed53245b9b648e276de0b6422",
        "a98a5fb63ee00bbd7f1663192453efcdf117cb92"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 11 02:04:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 02:04:47 2017 +0000"
      },
      "message": "Merge \"Improve error handling and fix minor bugs in bionic benchmarks.\""
    },
    {
      "commit": "73c3be22199a42bed53245b9b648e276de0b6422",
      "tree": "6c592e09bd57616bd84d32efce96645ee8a25094",
      "parents": [
        "cf764c05e43921e4d3f927a5eaca1c6ecafe046b",
        "ac4f4b43a3d19f40fc1138c5f78a3d5afd535935"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 10 23:44:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 10 23:44:04 2017 +0000"
      },
      "message": "Merge \"Add musl benchmarks.\""
    },
    {
      "commit": "a98a5fb63ee00bbd7f1663192453efcdf117cb92",
      "tree": "ca3ade0c20e9bb89f76e4ae37e9d3fde00a264f1",
      "parents": [
        "ac4f4b43a3d19f40fc1138c5f78a3d5afd535935"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Aug 09 16:52:19 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Aug 09 17:24:13 2017 -0700"
      },
      "message": "Improve error handling and fix minor bugs in bionic benchmarks.\n\nTest: Unit tests.\nChange-Id: I224ae4c7f195176eb8a87deddb2debcbf0f24ba3\n"
    },
    {
      "commit": "ac4f4b43a3d19f40fc1138c5f78a3d5afd535935",
      "tree": "383382ddc413b182c7b84cab5c2e47004bfd9470",
      "parents": [
        "a7b0f8899790198cd9e72950f481679fe31e1a92"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Tue Aug 08 18:29:51 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Aug 09 15:26:37 2017 -0700"
      },
      "message": "Add musl benchmarks.\n\nTest: Unit tests.\nChange-Id: Ifb2911825f84b95fe64a803bfabd32fb81210eae\n"
    },
    {
      "commit": "c2223f746c7342945a6bf80b1b635250d53746a1",
      "tree": "9cd7a2af7c7a10fd54449a280d96b352ffb2fab3",
      "parents": [
        "ebbbe292bd2657b98007f3b6d0405686c1c646b8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 08 11:23:27 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 08 11:23:27 2017 -0700"
      },
      "message": "Track tinyxml2 API change.\n\nBug: http://b/64459264\nTest: builds\nChange-Id: I02206b9d40571f306ce712345a36c2754ac73a97\n"
    },
    {
      "commit": "a7b0f8899790198cd9e72950f481679fe31e1a92",
      "tree": "4167c3afc82ffb281f43ef2332a60c675f121e43",
      "parents": [
        "0d6485eca47f0e860486795b2da97679948fd5d5"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Mon Jul 24 20:01:13 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Mon Aug 07 13:16:09 2017 -0700"
      },
      "message": "Implement interface for bionic benchmarks.\n\nTest: Unit tests.\nChange-Id: Ic61932f61ddd572e2f045b601f9da6e090cdc45d\n"
    },
    {
      "commit": "5fc1f6e887b980facb96a8a5d7629c3f6aa285da",
      "tree": "6795905e2f4d90c6023429a43733caa94979bc37",
      "parents": [
        "b1e4cc31a4badad7f224c01c78f286381d72d929"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 12 23:10:07 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 12 23:10:07 2017 -0700"
      },
      "message": "Really fix the mac build.\n\nI forgot an underscore.\n\nTest: Builds.\nChange-Id: Ib7da13dea315822af89c53a569fb0a0c2fd5d321\n"
    },
    {
      "commit": "bad43c7af4ceea35c6eca993426459c0e6f8262e",
      "tree": "9cecb669fc34a743e3ca6e5d239cd8f625c670c8",
      "parents": [
        "61b7e114dde1230f4f4e9e6f6f401eeb18ecce60"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 12 19:33:32 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 12 19:33:54 2017 -0700"
      },
      "message": "Fix max build.\n\nTest: Built properly.\nChange-Id: I37b8ac7d42653617be6611b640a883066257214c\n"
    },
    {
      "commit": "61b7e114dde1230f4f4e9e6f6f401eeb18ecce60",
      "tree": "b1344e9ac93091c8c63722f12e19279b874f6caa",
      "parents": [
        "3537331942cdebab5ab53104b852c997a9bc0be5",
        "f4447b9105f2d42acd2bbe0ba1c602ef3562b681"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 12 22:56:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 12 22:56:13 2017 +0000"
      },
      "message": "Merge \"Support memory alignment tests for string_benchmark.cpp\""
    },
    {
      "commit": "f4447b9105f2d42acd2bbe0ba1c602ef3562b681",
      "tree": "74a80edf3fb9f0f025e1a1dff79659dc514dc67b",
      "parents": [
        "42edca036e5c9ed24017de5fba41d5d1feda61d0"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Fri Jun 23 15:53:59 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Jul 12 13:42:23 2017 -0700"
      },
      "message": "Support memory alignment tests for string_benchmark.cpp\n\nTest: Manually verify that benchmark times are similar and add a unit test.\nChange-Id: Idaaeb4c8c3629f797ffd8d0c86c8d7b7b9653181\n"
    },
    {
      "commit": "705910094d07ddfc5a3b7a4baab58b0a94bcc691",
      "tree": "f503093f7f1675566233ac00bda745b8a9bcf714",
      "parents": [
        "82d746fb39465e78088aeb11a5dc178cf264d0c0"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Jun 27 16:23:45 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Jun 28 15:03:15 2017 -0700"
      },
      "message": "bionic: fix assorted static analyzer warnings\n\nWarnings:\n\nbionic/libc/bionic/fts.c:722:5: warning: Null passed to a callee that\nrequires a non-null 1st parameter\n\nbionic/libc/bionic/sched_cpualloc.c:34:25: warning: Result of \u0027malloc\u0027\nis converted to a pointer of type \u0027cpu_set_t\u0027, which is incompatible\nwith sizeof operand type \u0027unsigned long\u0027\n\nbionic/linker/linker_main.cpp:315:7: warning: Access to field \u0027e_type\u0027\nresults in a dereference of a null pointer (loaded from variable\n\u0027elf_hdr\u0027)\n\nbionic/linker/linker_main.cpp:493:66: warning: Access to field \u0027e_phoff\u0027\nresults in a dereference of a null pointer (loaded from variable\n\u0027elf_hdr\u0027)\n\nbionic/linker/linker_main.cpp:90:14: warning: Access to field \u0027next\u0027\nresults in a dereference of a null pointer (loaded from variable \u0027prev\u0027)\n\nBug: None\nTest: mma; analyzer warnings are gone. CtsBionicTestCases pass.\nChange-Id: I699a60c2c6f64c50b9ea06848a680c98a8abb44a\n"
    },
    {
      "commit": "1c487e103618b7e4e3480f59375761e94ce80d2a",
      "tree": "52a2acc40d89e503ef3c217423f8c2e89604b6c7",
      "parents": [
        "a99d052801be5618465e5532440711e61f9b89fc"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Mon Jun 12 12:33:06 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Jun 14 17:51:54 2017 -0700"
      },
      "message": "Add benchmarks for strcpy and strcmp.\n\nTest: Ran benchmarks and verified that runtimes were sensible.\nChange-Id: I609e3261503a015bfd4982767fef3ce56141aebc\n"
    },
    {
      "commit": "a99d052801be5618465e5532440711e61f9b89fc",
      "tree": "384f352dba6d63ad84caaf5257f5b3cc0827d97a",
      "parents": [
        "271be9bb7df6f3910a929ef7bff55fbd9bc2dee6"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Mon Jun 12 11:24:01 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Jun 14 15:13:50 2017 -0700"
      },
      "message": "Add copy-only, seek-only, and copy-and-seek benchmarks for strcat\n\nTest: Ran benchmarks and verified that runtimes were sensible.\nChange-Id: I6da3aaea0ba4817662534b24873993589385e6c5\n"
    },
    {
      "commit": "271be9bb7df6f3910a929ef7bff55fbd9bc2dee6",
      "tree": "cbada1d44532b8e463156c9d086733c37ebabf3f",
      "parents": [
        "5c76fec2821c9a5228e681ef37525f9b30fa5805"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Jun 07 13:00:38 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Fri Jun 09 13:30:34 2017 -0700"
      },
      "message": "Split memmove benchmark into separate overlapping (src before dst and dst before src) and non-overlapping tests.\n\nTest: Ran benchmarks and verified that runtimes were sensible.\nChange-Id: Ia7fbc5596dfdc162fff2364f4ef6dafe5549b907\n"
    },
    {
      "commit": "4a92ffd3029e9e38c3a55222676a126db5a3b962",
      "tree": "433d790ddfffcfb36b0b362e8c968ee2e6197a55",
      "parents": [
        "ebceea8e85ad2897a5ce8575b81f18fdd7aa0320"
      ],
      "author": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Mar 01 20:36:13 2017 +0100"
      },
      "committer": {
        "name": "Victor Khimenko",
        "email": "khim@google.com",
        "time": "Wed Mar 01 20:43:42 2017 +0100"
      },
      "message": "Stop using __system_property_area__\n\nApparently that \"backdoor\" is no longer needed - the proper way is\nto reinitialize properties:\n    https://android-review.googlesource.com/#/c/181794/24/tests/system_properties_test.cpp\n\nAlso removes mentions of libnativehelper test (it no longer uses\n__system_property_area__) and removes useless \"extern\" declaration\n(actual use was removed long ago).\n\nTest: refactoring CL, existsing tests still pass\n\nBUG\u003d21852512\nBUG\u003d34114501\n\nChange-Id: I2223cab2fcb671ea180ad4470a7aba5c9cd20bd8\n"
    },
    {
      "commit": "3f5578708d02ef9a14bfaf5b169e0ecb672c10fd",
      "tree": "951f10d69e44eb7d4e5c2fed0e85405f1fbdfb76",
      "parents": [
        "7844b4c5dbd0be9ea4212a523da2dd6a4804032c"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jan 23 17:30:44 2017 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jan 31 10:20:26 2017 -0800"
      },
      "message": "Add \"benchmark\" to time atomic operations\n\nThe intent here is to confirm that the compiler behaves as expected,\nand to guide optimization efforts, particularly where there is a\nchoice between primitives.\n\nTest: Built and ran benchmark on Angler repeatedly. Manually confirmed\nthat the compiler behaves roughly as expected.\n\nChange-Id: I059b245d1ba8296e9b28602559b53eafafe0a30f\n"
    },
    {
      "commit": "ea87716696bf635706b6f3fa56b8a145add83aff",
      "tree": "9d8552a565789486c9d0f7e9057815924c946b90",
      "parents": [
        "940d460f59e566f2d84ea3e114074a50996e76b3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 11 14:34:16 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 11 14:56:04 2017 -0800"
      },
      "message": "localtime_r(3) should act as if it calls tzset(3).\n\nSee code comment.\n\nBug: http://b/31339449\nTest: ran tests \u0026 benchmarks\nChange-Id: I6b6a63750ef41664dc4698207e6a53e77cc28cdf\n"
    },
    {
      "commit": "be763d85c881b58754e650192204e8a2309660cb",
      "tree": "09175cceb1d28d140993c687b4c89abfeac2763d",
      "parents": [
        "b3321c961452f69650e4a6bd2a7db317a80b3234"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Nov 14 14:16:08 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Nov 15 09:07:11 2016 +0100"
      },
      "message": "Fix deprecated range_x() calls.\n\nTest: builds with new libbenchmark.\nChange-Id: I91c0e5c1b5cf75b8e551f3c59d83ac9352817c4a\n"
    },
    {
      "commit": "2722ebb30b76c9328541c057fa1f5e56a8cedf17",
      "tree": "80d716168a658c6a005efff9b99a3d06fdef4b6b",
      "parents": [
        "48cedda02a9874d59b2b3652d0427abce7fedaab"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 11 16:20:06 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 14 12:30:12 2016 -0700"
      },
      "message": "Convert bionic benchmarks and tests to Android.bp\n\nThe compile-time tests and a few custom libraries for dynamic linker\ntesting are still compiled in make.\n\nAlso converts the make rules to run tests on the host to shell scripts\nin tests/run-on-host.sh and benchmarks/run-on-host.sh\n\nChange-Id: I6f174b3a69d58c4ed74d29f4e79332d483681534\n"
    },
    {
      "commit": "1a5fd9c155be65d49d51cd511097541897f4bb37",
      "tree": "79624b48b2b47956a8426a2f80e407ce0f56bcac",
      "parents": [
        "74669e99ce73da86002fe047c73913427ef1d2a1"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jun 10 11:07:21 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jun 10 15:25:49 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings in bionic.\n\nAdd parentheses around macro arguments used beside operators,\nor use constexpr for simple constants.\nBug: 28705665\n\nChange-Id: I378c8aad92d3ec8e8c4b0440b5c2c99dfe01ce79\n"
    },
    {
      "commit": "1783941f23f5bb1fe789cfdecdbdff942707f56e",
      "tree": "77f413a5a7c4c12e3a659a749d91f026e6557293",
      "parents": [
        "901cc14822e431185fbe5075ef4f06aa4fba58cf"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 06 14:13:17 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 06 14:13:17 2016 -0700"
      },
      "message": "Fix infinite loop if semaphore test is not run.\n\nWhen using the --benchmark_filter option, all of the test objects\nget created, but not all are run. Previously, if this test didn\u0027t run\nit would get into an infinite loop waiting for the test to complete.\nThis change only waits for the test to complete if it was actually\nexecuted.\n\nChange-Id: I5151a0b4b3d5349b978e716ec4a02ebd8b4eae00\n"
    },
    {
      "commit": "956df72eb0758671406d731056a3f29cc32895c7",
      "tree": "64076b1ac5cfdcd9edf7c91d22de954b02cda005",
      "parents": [
        "4d9a97bb916aaa7d7bf819ef999d4b1a58d4750d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Apr 22 10:25:10 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Apr 22 10:25:10 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warning.\n\nBug: 28341362\nChange-Id: I85d2f83a3ca35699cfab54e725a64aaf3013c8f1\n"
    },
    {
      "commit": "281e06ba69ce6f591697acf65a24651050809920",
      "tree": "c2a4caf009b63e8be398ef3da1f0e792f41c9746",
      "parents": [
        "925bf56447cf87da910441f12b302051e07549ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 17 10:23:52 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 07 13:50:50 2016 -0800"
      },
      "message": "Switch bionic over to google-benchmark.\n\nAlso removes the old benchmarking library.\n\nChange-Id: I4791ae69fa5dea03644d3d411c60b7c6d1fceae3\n"
    },
    {
      "commit": "939a7e01197858fdb8463bb5a8284ba501a3e882",
      "tree": "aca21447754ac507be1d20a7afba02deb65ea4db",
      "parents": [
        "2558b112300e0a27590b9e31f627fe94594fa6a0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:27:46 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 04 15:27:46 2015 -0800"
      },
      "message": "Track rename from base/ to android-base/.\n\nChange-Id: I0a4592945400b1fa6892bf7c1fa8659fd711efa3\n"
    },
    {
      "commit": "f9f4a432ee4f56b8cb24b2033d3b1068200a6d30",
      "tree": "b59b778c1ec5a698d983a4ddfb0b89610fb7fa7e",
      "parents": [
        "c868b4c35184683fe74ff8c8d780d021c2b07464"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 22:57:08 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 16:05:48 2015 -0700"
      },
      "message": "Revert \"Revert \"Use compiler builtins for fabs.\"\"\n\nDon\u0027t enable the inlines when building libm itself. Otherwise clang gets\nupset by seeing both an inline and a non-inline definition.\n\nThis reverts commit c5deb0f883cbdca7e5ab75f92f82c31d21367f49.\n\nChange-Id: If7abdb351f5a5549d6a331b33af408e8fcfa9868\n"
    },
    {
      "commit": "c5deb0f883cbdca7e5ab75f92f82c31d21367f49",
      "tree": "e1336898a36e28000e765cd8d0584780b5ce6066",
      "parents": [
        "d76f16973a9d06765fb1f482239b9559f893ffd0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 21:08:13 2015 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 21:08:13 2015 +0000"
      },
      "message": "Revert \"Use compiler builtins for fabs.\"\n\nUse of \"extern inline\" breaks clang build.\n\nThis reverts commit d76f16973a9d06765fb1f482239b9559f893ffd0.\n\nChange-Id: I995d0d38c3776f5c50b060f16770741c92a2acac\n"
    },
    {
      "commit": "d76f16973a9d06765fb1f482239b9559f893ffd0",
      "tree": "d26e425e5b261a623762761d2f43e9e0d20bf5aa",
      "parents": [
        "079fc833137d5067c0cd3dc5211e72019314dd80"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 21 11:04:23 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 24 13:32:40 2015 -0700"
      },
      "message": "Use compiler builtins for fabs.\n\nChange-Id: Id3bf761d6dfc187f218b5215c53d76bddc83d50b\n"
    },
    {
      "commit": "b662280aaff801ef936fbfab34dd1596acce945e",
      "tree": "84d65eda9175757baa37181b8abb5a48b34c0775",
      "parents": [
        "b4f2112fa99dab401cd65db4c524d95b1e97614e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 14 14:04:30 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 14 15:20:57 2015 -0700"
      },
      "message": "Use __builtin_* in \u003cmath.h\u003e.\n\nAlso remove cruft meant to support long-obsolete compilers. More\nbenchmarks.\n\nBug: http://b/23195789\nChange-Id: Ief538e41e77a77e8013b2f4f359584e8df2c47d8\n"
    },
    {
      "commit": "3fe1515e38d169c4d6570b5423f45ae5bfb46f2a",
      "tree": "6675c20e3c7b0cdb09e843f6b23cbca3c0e35fb1",
      "parents": [
        "a3c01467ecf31cab1410ce7b8554e2e77dae3309"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 11 16:46:26 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 11 16:46:26 2015 -0700"
      },
      "message": "Add missing include.\n\nlibc++ cleaned up a leaky header.\n\nChange-Id: I5ac0f43a075257a9138a82be379c9cffe96e0ab9\n"
    },
    {
      "commit": "5341691955e2fc2b271b722c37496d72a0e8c683",
      "tree": "8b6a350a4898241663c6ccc58685a3362738e8ec",
      "parents": [
        "ff4afc136ef5d00d33a611e7bc1950249db9fbcf"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Aug 10 16:40:06 2015 -0700"
      },
      "message": "Move up to C++14.\n\nThe default standard version is now ahead of us. Stop specifying C++11\nso we get that too.\n\nChange-Id: Ic96942cd7fd134118e29b744601b0119e49b6ac4\n"
    },
    {
      "commit": "c217373bd69c501e5ad30d72df1893ab81c7fd66",
      "tree": "be998650c41a2bf0c46ec626e2e2efafe5fc5987",
      "parents": [
        "fe77d2d0036306eec978eccf7b4db81fa424a2f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 13 13:18:04 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 13 13:18:04 2015 -0700"
      },
      "message": "Fix unused result errors in bionic.\n\nThis lets us use _FORTIFY_SOURCE\u003d2 on the host.\n\nChange-Id: I69f5ff9834bfd595aae6584104bee10c4d8a5eeb\n"
    },
    {
      "commit": "dc93db20a96e95827f4873fa04bb1e58177736df",
      "tree": "c79015b6e8d3e669db396e93319a5adf19807fd2",
      "parents": [
        "a75771e3ab429fae2f9af770416150733264a281"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 17 11:19:07 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Mar 17 13:38:57 2015 -0700"
      },
      "message": "Change name of rwlock benchmark.\n\nrw_lock is not easy for me to remember, so I prefer changing it to rwlock.\n\nChange-Id: I0784acaca0c3b46c28184a77eb29ffe696f9ea07\n"
    },
    {
      "commit": "3e87c785434fdfed2fb00496cb391c411a426bdd",
      "tree": "c3bd237b092a2a86f91f05e377635894a21706d1",
      "parents": [
        "11a06c73f6e7d31442429a58a346d881b0a8a441"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Mar 16 10:06:29 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Mar 16 10:06:29 2015 -0700"
      },
      "message": "Revert \"Revert \"Moving StringPrintf to libbase.\"\"\n\nThis reverts commit d2dad2b24fb82604f9dbe7a082e630a524f1473d.\n"
    },
    {
      "commit": "d2dad2b24fb82604f9dbe7a082e630a524f1473d",
      "tree": "db3d8d0aeb106cab69daad7846e44ed6662e650c",
      "parents": [
        "7ed5fa1e4d37722a644518594bf2b0e1529c05e9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 16 12:19:26 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 16 12:19:26 2015 +0000"
      },
      "message": "Revert \"Moving StringPrintf to libbase.\"\n\nlibbase has been reverted\n\nThis reverts commit 7ed5fa1e4d37722a644518594bf2b0e1529c05e9.\n\nChange-Id: I5d8ff8c38ff8c9123e6cee5dc15a101a79e94b2e\n"
    },
    {
      "commit": "7ed5fa1e4d37722a644518594bf2b0e1529c05e9",
      "tree": "7b2c3bdb54d6a06124a4351f6cb44743637099bf",
      "parents": [
        "f6f96df5b031b0bf79eb8ad49bd73a3ceab87db5"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 13 22:34:37 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 13 22:34:37 2015 -0700"
      },
      "message": "Moving StringPrintf to libbase.\n\nChange-Id: I47ef28bb294ffb7c7c065c5624417edf23503b77\n"
    },
    {
      "commit": "339ac378ca04678bdbf9d60dbe715fe7fe7189c3",
      "tree": "673eab324ba5a918c4eff25af70287d9b2e9269b",
      "parents": [
        "8c41eae6fcdb6cad1f6c46ae01708ead6b734060"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 20 18:31:06 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Feb 25 14:56:32 2015 -0800"
      },
      "message": "Allow wildcards to match arg values.\n\nChange-Id: I38230b500bb8f8f69af0d7c740855a401cd12898\n"
    },
    {
      "commit": "567bfb3779f238784be6d3fa9d384ecdc423ea39",
      "tree": "690caf6a783541e6877461c908bccddae5f0abdb",
      "parents": [
        "c39eef71a7f66b69e2216a51d0e7fbc1796d0696"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Feb 20 11:00:14 2015 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Feb 20 11:07:38 2015 -0800"
      },
      "message": "Fix 64-bit benchmark build\n\nThe * flag to printf() wants an int instead of size_t, and these are\ndistinct types on 64-bit.  To accomodate this, make the name column\nwidth helpers return int.\n\nIn theory this truncates things, but in practice this only matters if\nyou have a benchmark with more than INT_MAX characters in its name (in\nwhich case you have bigger problems).\n\nChange-Id: I3338948c25a3a8d84f1ead2f5b457c05da8a01cf\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "df4942c04a63ae6e4f5c78ece9f696d6b8b74d32",
      "tree": "f4e1061bcaf821753263413f1e89fb82f5d50e99",
      "parents": [
        "3e1b5f46c07aef5983ecf2feb1c3369b2cd200c0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 17 19:58:53 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 19 14:58:24 2015 -0800"
      },
      "message": "Refactor the benchmark code.\n\nChanges:\n- Modify the benchmarks to derive from a single Benchmark object.\n- Rewrite the main iteration code. This includes changing the iteration\n  code to use the actual total time calculated by the benchmark as a basis\n  for determining whether there are enough iterations instead of using\n  the time it takes to run the benchmark.\n- Allow benchmarks to take no argument, int, or double.\n- Fix the PrettyInt printer for negative integers.\n- Modify the max column width name to include the whole name including\n  the arg part.\n- Reformat property_benchmark.cpp in line with the rest of the code.\n- Modify a few of the math benchmarks to take an argument instead of\n  separate benchmarks for the same function with different args.\n- Create a vector of regex_t structs to represent the args all at\n  once instead of when running each benchmark.\n\nThis change is in preparation for adding new math based benchmarks.\n\nTested by running on a nexus flo running at max using the new code\nand the old code and comparing. All of the numbers are similar, but\nsome of the iterations are different due to the slightly different\nalgorithm used.\n\nChange-Id: I57ad1f3ff083282b9ffeb72e687cab369ce3523a\n"
    },
    {
      "commit": "5d064464f139cc0b5fed57e3c439d441ad946fe9",
      "tree": "829ce81f18288c5ee0c85df128e727073bdbae75",
      "parents": [
        "0046c39f9ed6d7335f06e4d866df5ae0e7b4d485"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 10 08:34:35 2015 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Feb 12 09:43:58 2015 -0800"
      },
      "message": "bionic: benchmarks: Add BM_semaphore_sem_post_sem_wait\n\nThis test reports the overhead of sem_post to sem_wake for a low thread count\nand a high thread count.\n\nChange-Id: Ic30dcc8a78d754979117446bf3a28b7575cabac7\n"
    },
    {
      "commit": "7e50fb2a681c858ec7d85ff92e97794f41fd1f08",
      "tree": "1e25a6444beeee8f72e5e6ed3d5bd2866cc7c959",
      "parents": [
        "6d99da0477f8589df01307067823c3925e40bd91"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Feb 09 08:18:10 2015 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Feb 09 17:05:20 2015 -0800"
      },
      "message": "bionic: benchmarks: Add BM_semaphore_sem_post\n\nThis test tries its best to report the producer side underlying futex\nwake syscall overhead wthin sem_post. It does not measure the time it\ntakes for the wakeup to propagate to the consumer. It suffers from\nclock_gettime syscall overhead, so subtract that. Lock the CPU speed\nfor consistent results as we may not reach \u003e50% cpu utilization.\n\nChange-Id: I02fa9dab2e6ac27202f0290115150bd3c8de00f2\n"
    },
    {
      "commit": "941a1a191fc86893a7ef48926c788eb32ffa81da",
      "tree": "91a20f887e98e83f2ff0cabfa44f390673a2af0b",
      "parents": [
        "419ed122aa21cf04334f21baab135ac4f9f49840"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 26 16:54:40 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 26 16:54:40 2015 -0800"
      },
      "message": "Do not build host benchmark code on macs.\n\nMacs don\u0027t have clock_gettime, and it doesn\u0027t seem worth getting this\nto run on the host for mac.\n\nChange-Id: I59d9939acc2ede1308b24a60c4242d45355d967d\n"
    },
    {
      "commit": "14152b9f31cc13c4fbffcbdf8155f3c3ee0c33a7",
      "tree": "7a89616b71b959783f0d8ce9aa67cc978edd770e",
      "parents": [
        "66eeec8e160feddc2b35c4ff9d20de92f37331dd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 19:01:58 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Jan 24 19:01:58 2015 -0800"
      },
      "message": "Remove obsolete BUILD_TINY_ANDROID.\n\nChange-Id: If2fc97134340fd09ec2583b666ace2f673cbdf66\n"
    },
    {
      "commit": "8c4994bbc1a9a01e34ea92c91eb5b2d1a27bd074",
      "tree": "8b632cea0832373b9cb843427bb5976b3668f1a2",
      "parents": [
        "f374358414812d3e5a45ba75a2b1926693924420"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 20 18:09:05 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 21 10:33:30 2015 -0800"
      },
      "message": "Implement __fsetlocking.\n\nThe old __isthreaded hack was never very useful on Android because all user\ncode runs in a VM where there are lots of threads running. But __fsetlocking\nlets a caller say \"I\u0027ll worry about the locking for this FILE*\", which is\nuseful for the normal case where you don\u0027t share a FILE* between threads\nso you don\u0027t need any locking.\n\nBug: 17154740\nBug: 18593728\nChange-Id: I2a8dddc29d3edff39a3d7d793387f2253608a68d\n"
    },
    {
      "commit": "1cf32f83d3284785c64d3ea66560d23eec915956",
      "tree": "2cf23fe9c573f6f265db968f3569ac952f754289",
      "parents": [
        "481cf21e08a6cbbc686487744f1cb07b6d3f400e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 16 17:08:31 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 16 17:08:31 2015 -0800"
      },
      "message": "Add a benchmark for using stdio to read a file in /proc.\n\nChange-Id: I12517aae19e36b7c022a11e8807aece61bb0cb9c\n"
    }
  ],
  "next": "8bb020e8e58be2b0013f6d4ac0a24981cba38092"
}
