)]}'
{
  "log": [
    {
      "commit": "7c73dd1cdb111853779dad21d9090b4a00aefe95",
      "tree": "c33963dc52f70d024410fc09f6def29f8bfe380c",
      "parents": [
        "8197e77c9b330c56662f66636dafca1bcbc9afcf"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Feb 06 00:20:18 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Feb 06 11:40:57 2019 -0800"
      },
      "message": "Revert \"Revert \"Prevent overflows for concurrent_start_bytes_ sum\"\"\n\nThis reverts commit 83ba9b979d932a5b6430c1affd171429b70b6c3f.\n\nIt also fixes a bug exposed by the original CL, and cleans up a\ncouple of related issues:\n\n- CheckConcurrentGCForNative was renamed to reflect the fact that\nit does not just deal with concurrent GC.\n\n- In the non-concurrent case, concurrent_start_bytes_ is not\nmeaningful; use target_footprint_ instead.\n\n- UnsignedSum should use \u003e\u003d instead of \u003e .\n\nThe middle one of these caused the test failures observed with the\nprevious CL.\n\nTest: Build without read barrier, and ran with --runtime-option\u003d-Xgc:SS\n\nChange-Id: Iae004c453bf2cae2739df66b6797af4a792886fc\n"
    },
    {
      "commit": "ca3c6d9231aa8e4a9ca7c9040398d57f130441a0",
      "tree": "31cc28f85aa3c572ec8988e0d92f29b2e05b8158",
      "parents": [
        "ac52000e86077b3c45c192ec259d72413599ff11",
        "83ba9b979d932a5b6430c1affd171429b70b6c3f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 12:03:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 12:03:23 2019 +0000"
      },
      "message": "Merge \"Revert \"Prevent overflows for concurrent_start_bytes_ sum\"\""
    },
    {
      "commit": "83ba9b979d932a5b6430c1affd171429b70b6c3f",
      "tree": "6c1f05e652815a20d1792f7654c1792acdba7721",
      "parents": [
        "50b04451431c648a36d2b0f84d728c1ecaf8b71b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 12:02:33 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 12:02:33 2019 +0000"
      },
      "message": "Revert \"Prevent overflows for concurrent_start_bytes_ sum\"\n\nThis reverts commit 50b04451431c648a36d2b0f84d728c1ecaf8b71b.\n\nReason for revert: Broke tests (debug-gc, gss, ss).\n\nBug: 123772350\nChange-Id: I3c7948b966f7e051e26b470cda5f6e5cb387ff54\n"
    },
    {
      "commit": "01eb773f391aaffdf5a959d894c6f5092778b051",
      "tree": "e4d358b9e7efd82361ab453ec3156324c97048cf",
      "parents": [
        "d0c3a6cbc9279da29230704fa9bda6459b83fec4",
        "50b04451431c648a36d2b0f84d728c1ecaf8b71b"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Feb 05 01:59:26 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 01:59:26 2019 +0000"
      },
      "message": "Merge \"Prevent overflows for concurrent_start_bytes_ sum\""
    },
    {
      "commit": "50b04451431c648a36d2b0f84d728c1ecaf8b71b",
      "tree": "114a685bd11fb4ee84e4b453bcaeef82f79605a2",
      "parents": [
        "9b596c0a1e0c26cb0b0bf180f12a830c9c870458"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Feb 01 18:00:49 2019 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Feb 04 13:14:28 2019 -0800"
      },
      "message": "Prevent overflows for concurrent_start_bytes_ sum\n\nconcurrent_start_bytes_ can be mnumeric_limits\u003csize_t\u003e::max()\n\nBug: 123772350\nTest: Boot AOSP, TreeHugger\n\nChange-Id: I2ee7cf9c94523ad92a00854abcfd81960f4bd007\n"
    },
    {
      "commit": "1a862c8f4895e175b3cf4e68d0594f7f70db8377",
      "tree": "e8c8f38cbf430b926720c76fab71671a23433fab",
      "parents": [
        "db48919b682fe237ae8198ed12d933705b442144"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Feb 01 11:05:04 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Feb 04 09:49:22 2019 -0800"
      },
      "message": "Fix criteria to decide should next GC be minor\n\nA GC throughput (in terms of freed-bytes per second) comparison between\nminor GCs and full GCs is used to decide whether the next GC should be\nminor or full. To take care of the corner case wherein minor GC\u0027s\nthroughput never falls below that of full GC\u0027s, a cap is put on\nbytes_allocated to not go over target_footprint. This cap,\nin case of concurrent GCs, should be at concurrent_start_bytes as that\nis when a GC cycle is triggered.\n\nTest: art/test/testrunner/testrunner.py --target\nTest: Golem benchmarks to confirm performance isn\u0027t affected\nBug: 123662955\nChange-Id: I94afd04f3fcac86d6f9cec6a1af407c5be599b26\n"
    },
    {
      "commit": "119733d87242414100df7b9eedb6d1672a03ead6",
      "tree": "19ba75bd42d3c94a4de0684ae66f4078da1546a6",
      "parents": [
        "8a64e773d4d1221166c6a8206315b450e448705a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 15:14:41 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 31 15:39:55 2019 +0000"
      },
      "message": "Revert \"Revert \"ART: introduce PALette abstraction layer\"\"\n\nThis reverts commit e6e01a0a00de80704ccb21c48d5d8bdee4470b77.\n\nBug:  122824298\nTest: art/test/testrunner/run_build_test_target.py -j50 art-test-javac\nTest: m out/target/common/obj/PACKAGING/hiddenapi-stub-flags.txt\nTest: frameworks/rs/build_rs.py\nChange-Id: If7b9ddca3daa80b75b3541abd283bf47d5b81118\n"
    },
    {
      "commit": "e6e01a0a00de80704ccb21c48d5d8bdee4470b77",
      "tree": "8f9cc651764686140accaadcfb8f77bf7572c24b",
      "parents": [
        "4b9d00aca9b025b545c9633b4605334c22fc4d2d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "message": "Revert \"ART: introduce PALette abstraction layer\"\n\nThis reverts commit 4b9d00aca9b025b545c9633b4605334c22fc4d2d.\n\nReason for revert: breaks renderscript mac and run_host_tests in master.\n\nChange-Id: I6024894a384c65f3e7d81b9c5bba8ebe8ce1b420\n"
    },
    {
      "commit": "4b9d00aca9b025b545c9633b4605334c22fc4d2d",
      "tree": "7984bf247f908d145b7c6b48df99f3f0a80ae148",
      "parents": [
        "4ee4561f2153f3b0bc3be2e781488a97c73ca58e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 03 17:04:02 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 09:00:27 2019 +0000"
      },
      "message": "ART: introduce PALette abstraction layer\n\nThis change decouples direct dependencies on system libraries.\n\nBug: 122824298\nTest: art/test.py --host --64\nTest: art/test.py --target -j8\nTest: m -j100 \u0026 flashall -w \u0026 device boots\nTest: art/build/apex/runtests.sh\nChange-Id: Iae927ed9aaa228a941cd444cef04e6ec53955299\n"
    },
    {
      "commit": "cc17d079659d737d67d4a891b6951a532c0299f3",
      "tree": "f764f1a9f8b9ea18e0f7ff56d4166fe43a7a3bcf",
      "parents": [
        "c0f797328e986dcdded1ba5e413ae01c24fedef9"
      ],
      "author": {
        "name": "Vincent Palomares",
        "email": "paillon@google.com",
        "time": "Mon Jan 28 11:14:01 2019 -0800"
      },
      "committer": {
        "name": "Vincent Palomares",
        "email": "paillon@google.com",
        "time": "Mon Jan 28 11:14:31 2019 -0800"
      },
      "message": "Reducing CPU impact of non-monotonic clocks on Gc.\n\nAdding a ceiling for the Gc\u0027s histogram\u0027s num_of_windows count, ensuring the\nnumber of data points to insert does not become extremely large when time\nchanges unexpectedly. This may happen when the time source is not monotonic.\n\nBug: 123365804\nTest: confirmed the fix behaves as intended on a system with an erratic clock\nChange-Id: Idd3560204d3392fe247b65d383c41de2eaf8d35c\nSigned-off-by: Vincent Palomares \u003cpaillon@google.com\u003e\n"
    },
    {
      "commit": "0b4d146d628b359962db969c6138b18a1bcf49a9",
      "tree": "9aa05caed1a3540cc497bb6289fcd0473f96b6fe",
      "parents": [
        "3c29c66933f81dbb9af17caa197257ac67ee3c78"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Nov 29 13:25:35 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 18 16:32:55 2019 +0000"
      },
      "message": "ART: make generational CC a runtime option\n\nAdd -Xgc:[no]generational_cc option to control whether generational\nConcurrent Copy collector is enabled when art is launched.\n\nRepurpose the environment variable and preprocessor macro name\n`ART_USE_GENERATIONAL_CC` to selecting the default behavior (if unset,\nthe default is to use Generational CC collection by default).\n\nTest: Run art with -Xgc:[no]generational_cc along with -XX:DumpGCPerformanceOnShutdown on some benchmarks to see if minor GC runs. parsed_options_test is updated to test this new option.\nTest: make test-art-host-gtest-parsed_options_test\nTest: make test-art-target-gtest-parsed_options_test\nBug: 112187497\nBug: 67628039\nChange-Id: I6b4660b06f7e793911a2601bed24c33777190741\n"
    },
    {
      "commit": "8f1c8e56a683ff9d77ec1d1ac7f3d81458047714",
      "tree": "10c19d1403361bf499a576000135aaf2a692dd05",
      "parents": [
        "181b831d1a215504a80b5c7508fc2c6e1acac40c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 08 10:34:16 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 17 17:13:51 2019 +0000"
      },
      "message": "ART: Some more iwyu\n\nBug: 119869270\nTest: mmma art\nChange-Id: Ie67b57c7173986009fdc7b4aa01563846d30f25f\n"
    },
    {
      "commit": "c99f0174de38f3a99cd0a0a9d0e6277422d12be4",
      "tree": "e38119fcd4a20fefd8b7860d48034cb0aab5584b",
      "parents": [
        "d1e3dcf9c2b037cf75dbe04ccaf42fead8840acb",
        "f0a96eb28e668fbc068078f7d4ea970e1e05f2cb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 14 20:43:08 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 14 20:43:08 2019 +0000"
      },
      "message": "Merge \"Refactor image relocation\""
    },
    {
      "commit": "f0a96eb28e668fbc068078f7d4ea970e1e05f2cb",
      "tree": "96084b156d652c7d5812ff3d00c25702b2dfdf17",
      "parents": [
        "f74148675931890375389af3b59e597c42a5139b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 11 11:06:43 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 14 10:41:20 2019 -0800"
      },
      "message": "Refactor image relocation\n\nRefactor image relocation to enable having the objects be at a\ndifferent location than the rest of the image.\n\nBug: 116874661\nTest: test-art-host\nChange-Id: I48e46b9643362ecb32cb480fa1cfd4ac1fa20875\n"
    },
    {
      "commit": "1c0ae84632a55727aef69fda618aa11a8621d02d",
      "tree": "cdccb8cb10ed70033791d02d127951ce66ee898b",
      "parents": [
        "26d4df2487e728bd8c82c3f500b554b4ab78ee1f"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Jan 11 16:52:24 2019 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Jan 11 16:52:24 2019 +0000"
      },
      "message": "ART: fix post gc weighted allocated bytes metrics\n\nStop post GC measurement after the last GC, since VM shutdown is not a\nreal GC.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: Ia00fbbd8134aaea38d570c43ba87c768cbe4baae\n"
    },
    {
      "commit": "639b2b1f3a675135d443fc380323fbc48639a7eb",
      "tree": "0aba54938e712e5dd95b525c92f836c59cca49c6",
      "parents": [
        "8764dc3b3eda7f6f13ed7b584475503fe5bedd59"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 08 10:32:50 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Remove instruction_set.h from thread.h\n\nMove the function definitions relying on it to the -inl. Some\nfollow-up transitive-include cleanup, as well as some more\nforward-declarations.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I820f395e6cb8343a4bb9bf02da271fbec067109f\n"
    },
    {
      "commit": "8764dc3b3eda7f6f13ed7b584475503fe5bedd59",
      "tree": "e8f6e3a4a2596595ffdc8a517daaf37030482eae",
      "parents": [
        "49b74a8c685acfe43dd33e3f51a24c486388bee1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 07 15:20:12 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Use iosfwd more\n\nUse iosfwd where an include of ostream is unnecessary. Also move\ncallee_save_type.h to runtime.\n\nBug: 119869270\nTest: mmma art\nChange-Id: Id8995d6f524e4c491eb6f57fdffb940cf35d291f\n"
    },
    {
      "commit": "5a0430d0239481f4efb252d60ec9641703b8d456",
      "tree": "cd7bdb45d94e7af3aa3e1bbb5958f930bcee29f6",
      "parents": [
        "b9b995738c8f53d68446d14553c1befd487877e7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 04 14:33:57 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:20 2019 -0800"
      },
      "message": "ART: Introduce runtime_globals\n\nSplit libartbase\u0027s globals.h into actual globals, and runtime-\ndependent globals which should live in runtime.\n\nBlanket-convert all runtime/ inclusions.\n\nIn future CLs, the number of global constants should be reduced.\nFor example, GC types are only relevant to GC/alloc functionality.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I2d8cd32e0e7ab4084d2f2e96864b5338a78da94e\n"
    },
    {
      "commit": "e959e5d54e6b979e400dd096f59303391bd00494",
      "tree": "00b22f05d7ef76c31ad7be54f40fed5dbb73ebdd",
      "parents": [
        "87fe485bfaac977c2e5979816b38743f3046a400",
        "15752673020e89df2a9353f332bd1409de4cd4b7"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Jan 09 00:39:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 09 00:39:13 2019 +0000"
      },
      "message": "Merge \"Tweak native allocation GC triggering thresholds\""
    },
    {
      "commit": "15752673020e89df2a9353f332bd1409de4cd4b7",
      "tree": "7139aae2bbdeeaf0869417b88a4f6067e188ef39",
      "parents": [
        "1f992258112f4ed19dcca3fde052eb0d85d5cc55"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Dec 18 17:01:00 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jan 08 11:24:45 2019 -0800"
      },
      "message": "Tweak native allocation GC triggering thresholds\n\nThere is some evidence that collecting more frequently for small Java\nheap apps sometimes causes problems. Relative to the original P state,\nwe should now collect less frequently, if we are either at the beginning\nof a Java GC cycle, or the Java heap is large. Otherwise, we should be\nsimilar to the original, modulo accounting changes.\n\nReport a better cause if native allocation ends up waiting for the\nGC.\n\nIncrease kNotifyNativeInterval on host, since mallinfo() cost appears to\nbe the cause of a Kotlin benchmark regression on host.\n\nIncrease kHugeNativeAllocs enough so that we should normally never block\nfor a GC we trigger. It looks like 175-alloc-big-bignums still passes on\nwalleye in spite of this, but we may have to disable that test on\ntarget if it becomes flakey.\n\nBug: 121052300\nBug: 121039645\nBug: 122099093\n\nTest: Treehugger, art/test/testrunner/testrunner.py --host --64 -t 175-alloc-big-bignums\nChange-Id: I6fbd107d4a2519225f628f2c1f96dad034849d12\n"
    },
    {
      "commit": "c3c0299f4bf262005ad41eeb0b5e281e5cea5d84",
      "tree": "031a47d21d94bbcc83a3decfc172f9f9eec36cc1",
      "parents": [
        "206ffa5db26d36290c2c88d46ba9abb7823dbbca",
        "f9f22f98a3ad5c034fef029ae5f314ccd6f40fc2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 07 13:04:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 07 13:04:32 2019 +0000"
      },
      "message": "Merge \"ART: add longest consecutive free bytes in region dump\""
    },
    {
      "commit": "206ffa5db26d36290c2c88d46ba9abb7823dbbca",
      "tree": "03331e0a59723b8df36bf4cd2973a99f917149a2",
      "parents": [
        "1cc5dc8f0c990afeda0993dd088fc4c8432aa46f",
        "f7f7a7c6d92cca99e2f856ac16916d7448019048"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 07 13:01:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 07 13:01:19 2019 +0000"
      },
      "message": "Merge \"ART: make RegionSpace::GetNextObject a static function\""
    },
    {
      "commit": "2ffc74b4801d545f7c5c3634a727a70adb8141e8",
      "tree": "4b8cbef509ede5db68dee9fd0b0cb9e04549569b",
      "parents": [
        "6dbf9eca35bcaa752a6758d3127c233f8b7687e3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 03 19:25:41 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 04 09:28:07 2019 -0800"
      },
      "message": "Delete PatchedObjectsMap\n\nUse space bitmap since it already has the required functionality.\n\nTest: test-art-host\n\nChange-Id: I54bf77a05ca309f2040bbf4e0d42f1d8bcecef15\n"
    },
    {
      "commit": "aac0972a3ac0d8a25f5fe7b194431b87a60ba1a3",
      "tree": "8e761fb08fce3427722b147ed3a82bfe7576f035",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 08:33:58 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 08:33:58 2019 -0800"
      },
      "message": "ART: Add cause to GC wait-for-completion systrace\n\nBug: 122099093\nTest: m\nChange-Id: Ie777ba2c28200d6e54396ed7b450e7d2be833005\n"
    },
    {
      "commit": "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2",
      "tree": "b5647e7c06573e5e90d64b1c79d67f225412b03a",
      "parents": [
        "90793b3f3fa3fee04b196555f1656d432993f799",
        "16bd6ac8e3446355089d91f65d0ef8c6015f2283"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Dec 31 16:52:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 31 16:52:54 2018 +0000"
      },
      "message": "Merge \"ART: show exact bytes along with human-friendly format\""
    },
    {
      "commit": "16bd6ac8e3446355089d91f65d0ef8c6015f2283",
      "tree": "c0b03f6d4695188a04e0f0b7faf616c12912e5c2",
      "parents": [
        "96453b7d6aa445c6609aa465df5d66ae0beb7956"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Wed Dec 19 17:55:23 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Dec 27 17:13:06 2018 +0000"
      },
      "message": "ART: show exact bytes along with human-friendly format\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I804d4aa85a1a5ed1d0b21eb934c71f73469426e9\n"
    },
    {
      "commit": "9a3da9a8433aff8cf3f24c969d9548ec513c86ed",
      "tree": "27af5fb69b76ad816f37636cfb28d993d73ae3fd",
      "parents": [
        "46a8938026c425d54f2c02631ca584b4d1f2666c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 21 12:56:55 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 21 13:37:06 2018 -0800"
      },
      "message": "Remove null check from ForwardObject / ForwardCode\n\nIt should be faster to do the null checks in the caller.\n\nBug: 116052292\nTest: test-art-host-gtest\n\nChange-Id: I10ce07522143f998b623ce0a1ce80d068ab32800\n"
    },
    {
      "commit": "f7f7a7c6d92cca99e2f856ac16916d7448019048",
      "tree": "a8be575625039cd5fd57ebbee393b9c41469687f",
      "parents": [
        "43faa46d2362c451d5a4599cd5c7b7ee13f3d221"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Dec 20 17:08:07 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Dec 20 17:08:09 2018 +0000"
      },
      "message": "ART: make RegionSpace::GetNextObject a static function\n\nTest: Builds correctly\nChange-Id: I5b36fd120ce3ce5629592892788719b87d70a99e\n"
    },
    {
      "commit": "f9f22f98a3ad5c034fef029ae5f314ccd6f40fc2",
      "tree": "9d74d4a28f2169a36d7be8101e5b23c08799c2b3",
      "parents": [
        "43faa46d2362c451d5a4599cd5c7b7ee13f3d221"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Dec 14 19:54:34 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Dec 20 14:47:59 2018 +0000"
      },
      "message": "ART: add longest consecutive free bytes in region dump\n\nTest: Run art with -XX:DumpRegionInfoAfterGC on some benchmarks\nBug: 119486919\nChange-Id: I03284f7eb27b04ca5458b86bbaf527cb1538f64c\n"
    },
    {
      "commit": "ada33d754fdc987e2658a7bab38f5ca7c70f266c",
      "tree": "e588bba5ec19664e0b035a0d1cd43c96da6c05bd",
      "parents": [
        "e29b950562bae79fe8eb22e13a9cb533c9d8c5d0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 17 13:17:30 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 19 16:54:23 2018 -0800"
      },
      "message": "Move startup thread pool back into runtime\n\nAdded logic in heap trim to delete the thread pool, if there are no\nactive users.\n\nAdded a scoped accessor to prevent ref counting errors.\n\nMotivation, have workers already created when the app images are\nloaded.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I8ea776d74e88601222a9989e0c6dac34cf77c683\n"
    },
    {
      "commit": "32650abaad9792d77b4f70143c7fc1bb5683577c",
      "tree": "a9b295959eb879b5ea81304d1297de23943cae45",
      "parents": [
        "712c7698c6b8f1fa73cc6d328e8cf840865a1c49"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Dec 18 16:19:05 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Dec 18 16:19:05 2018 -0800"
      },
      "message": "Make inter-region ref bitmap pointers unique_ptr\n\nTest: art/test/testrunner/testrunner.py --host\nBug: 112720851\nChange-Id: I51f4cfe34d8bc85f6267c11aa5f7e3ccc021354f\n"
    },
    {
      "commit": "1c34b71f7471b20b1ade5528416e1d63957e7395",
      "tree": "7b4cd6562f0ccab091880e8c9cb0b235c7949583",
      "parents": [
        "c538043c13d858c6e3f6701229d734168192ff26"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Dec 18 13:41:58 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Dec 18 13:41:58 2018 -0800"
      },
      "message": "Split inter-region ref bitmap for every space\n\nCurrently, one bitmap is created which covers both region-space and\nnon-moving-space. Also, this bitmap is created and destroyed in each GC\ncycle. This becomes a problem on 32-bit processes (especially during\ngcstress tests) due to limited availability of address space.\nIn this change, two separate bitmaps are created for both the spaces.\nThis is done once during startup, and then the bitmaps are reused for\nthe lifetime of process.\n\nTest: art/test/testrunner/testrunner.py --host --gcstress --32\nBug: 112720851\nChange-Id: I6fc1dbd5dab10b39b2fd2d436a678e319feb78e7\n"
    },
    {
      "commit": "35bd06e1bd193f370422414a6e1027b61976351d",
      "tree": "19dc86f8c40e9d25e9d677f36c094701ac7824a5",
      "parents": [
        "d943f0802ce0ae9106cb6a63944b3c7ee4c65b75",
        "de94ea7bf76fbfbbe8106b6da40751216f081304"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 18 15:44:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 18 15:44:51 2018 +0000"
      },
      "message": "Merge \"ART: add dump region info runtime option\""
    },
    {
      "commit": "d0c5b255523a55150f6f89a5771a8958ebf04877",
      "tree": "34182aea0597a79aacb5cff1636c0e4bb3c0e80f",
      "parents": [
        "8f320f5211c982bb84b8f750c1de275e1812c674"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 05 01:10:40 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Dec 17 14:53:24 2018 -0800"
      },
      "message": "Speedup marking inter-region refs in 2-phase CC\n\nUsing card table to indicate objects with inter-regions references has\nperformance implications. Due to coarse-granularity of card-table,\nit leads to excessive number of unneeded objects being re-visited. Also,\nit forces calling Scan with true for kNoUnEvac as the distinction\nbetween mutated objects and ones with inter-region references is lost.\n\nA separate bitmap is introduced which is updated in the marking phase\nduring full-heap GC to track objects with inter-region references. Then,\nin copying phase, this bitmap is scanned to re-visit such objects.\n\nTest: art/test/testrunner/testrunner.py --target --runtime-option\u003d-XX:DumpGCPerformanceOnShutdown\nBug: 112720851\nChange-Id: Idd032c18ffdddc13c71668502ef1f53a19dcee71\n"
    },
    {
      "commit": "de94ea7bf76fbfbbe8106b6da40751216f081304",
      "tree": "fe78aa7c12902e21a25350486f63770856328fb6",
      "parents": [
        "570886357e2c91ac913f34abdaf559432ce00853"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 16 10:15:49 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Dec 17 12:00:04 2018 +0000"
      },
      "message": "ART: add dump region info runtime option\n\nIntroduce two new runtime options, DumpRegionInfoBeforeGC and\nDumpRegionInfoAfterGC, for printing the live bytes ratio for non-free\nregions before and after each GC cycle.\n\nTest: Run art with -XX:DumpRegionInfoBeforeGC and -XX:DumpRegionInfoAfterGC on some benchmarks.\nBug: 119486919\nChange-Id: I0d6f210669b85d94034178815f6cae6fd19ca397\n"
    },
    {
      "commit": "2a9824cdf2975621a22bacaefbb6d3318e3c7df0",
      "tree": "c928d16ff014b3c133a5bcb58d202aee7e3d76a1",
      "parents": [
        "252dd18a225d360c172f13f92165a564391f2996"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 07 15:57:17 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Dec 14 10:41:00 2018 -0800"
      },
      "message": "2-phase full-heap CC\n\nIntroduce a phase before enbling read-barrier during full-heap GC\ncycles:\n1) To compute latest per-region live-bytes info for accureate\n\"should be evacuated\" decision for every region.\n2) To mark most of the live objects before enabling read-barrier so that\ngraying them can be avoided, thereby reducing number of read-barrier slowpath\ninvocations.\n\nTest: art/test/testrunner/testrrunner.py --target\nBug: 112720851\nTest: art/test/testrunner/testrunner.py --64\nChange-Id: Ief4e92dba27aded153e600eeffc072b66d5917b5\n"
    },
    {
      "commit": "0ace5633680af8864b76b4f45d63b3407e4dcdf5",
      "tree": "526435a2877d3d04eaa471238b4efd37a347d05d",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 11:11:47 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 13:12:15 2018 +0000"
      },
      "message": "Revert^2 \"Allow boot image for a part of the boot classpath.\"\n\nThis reverts commit fb83d76a8b186df05f874216b535f5ad57e7bd02.\n\nFixed host run-test dependencies, cleaned up target run-test\nand gtest dependencies.\n\nTest: rm -f out/host/linux-x86/framework/conscrypt-hostdex.jar\n      testrunner.py -b --host --optimizing -t 660-clinit\nBug: 119868597\nChange-Id: Ia0a5aba0223ae6616bf3e109daf0af7b8355d048\n"
    },
    {
      "commit": "f91867e6830a2fbfaf1975e2a2ed629531c4ffe7",
      "tree": "310743a5759d7cddb8da28177bbda2a67ee21746",
      "parents": [
        "7ca98bfba8139c17f2e453aa1a033e8ed7074391"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 22:27:51 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 22:27:51 2018 -0800"
      },
      "message": "Declare mmapped_bytes only if needed\n\nAlso needed to unbreak the Mac build.\n\nTest: TreeHugger\nBug: 111447610\nChange-Id: If78f1905519521ad9ba78e913c67917d388301a2\n"
    },
    {
      "commit": "7ca98bfba8139c17f2e453aa1a033e8ed7074391",
      "tree": "64f09ef19c05eb9438ce919145daae4e594143b2",
      "parents": [
        "15303ace5dedab3aac792c6ebf7f53ea6ae89375",
        "b58707251206957a85dddd772d796c00390eb206"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 14 02:35:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 02:35:37 2018 +0000"
      },
      "message": "Merge \"Don\u0027t include malloc.h on MacOS\""
    },
    {
      "commit": "b58707251206957a85dddd772d796c00390eb206",
      "tree": "7938e822da43f619f243f0ab569857d09ee7ae97",
      "parents": [
        "fcf213c38229e8bb16798954442920b402b16e53"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 16:25:05 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 16:28:00 2018 -0800"
      },
      "message": "Don\u0027t include malloc.h on MacOS\n\nThus unbreaking the Mac build once again.\n\nTest: Build AOSP, Treehugger\nBug: 111447610\nChange-Id: Icceb1f2726f65e1889b7c3a460cccb8a80a3ebda\n"
    },
    {
      "commit": "15303ace5dedab3aac792c6ebf7f53ea6ae89375",
      "tree": "c0a08a224dcd62c8a6c8f2ef801fc300bbf1c785",
      "parents": [
        "829c33a43fcf600e296a6d437055c49d8ab53fa7",
        "93c21ba3311db5cecaa1a6a178a44c662ebd3d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 13 23:51:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 23:51:16 2018 +0000"
      },
      "message": "Merge \"Avoid waiting for threads to create\""
    },
    {
      "commit": "99e17397f7c4d5a1927c33160209156f411aeeed",
      "tree": "ec5a1359690d105afbaaac638ae3d60987024634",
      "parents": [
        "f2c7eea8594d1d3429c5078c29be504ee84fbf2a",
        "fb83d76a8b186df05f874216b535f5ad57e7bd02"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:41:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 23:41:53 2018 +0000"
      },
      "message": "Merge \"Revert \"Allow boot image for a part of the boot classpath.\"\""
    },
    {
      "commit": "fb83d76a8b186df05f874216b535f5ad57e7bd02",
      "tree": "f3db51fcd564929652433e7182eda9ebc7a9bc29",
      "parents": [
        "4433c4351aab98005e12a6b53905678758b74665"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:25 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:25 2018 +0000"
      },
      "message": "Revert \"Allow boot image for a part of the boot classpath.\"\n\nThis reverts commit 4433c4351aab98005e12a6b53905678758b74665.\n\nReason for revert: May be breaking tests.\n\nChange-Id: I3b690dbb06278dc1adce5a389fff938a692bdebd\n"
    },
    {
      "commit": "c2f685a64f819193fb563d33924d233872b8970a",
      "tree": "083b0f1cbdd9aab888c77687bdbad17deb0d2fcc",
      "parents": [
        "97991827a0ae5ee74358ce9d6215a4bbcf44f968",
        "c220f981809d655fb061c92a581fd6fc4df4da5c"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 16:22:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 16:22:24 2018 +0000"
      },
      "message": "Merge \"Change GC triggering to use mallinfo()\""
    },
    {
      "commit": "cf923f535dd1cf0c03707bbdfca6335d3f88fa92",
      "tree": "8d45b1dce534b2b53a1a0b81fd81f3a823da92f3",
      "parents": [
        "3c9d3033b5920bf09abeac41e72e2f22f20f316a",
        "4433c4351aab98005e12a6b53905678758b74665"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 13 08:42:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 08:42:54 2018 +0000"
      },
      "message": "Merge \"Allow boot image for a part of the boot classpath.\""
    },
    {
      "commit": "c220f981809d655fb061c92a581fd6fc4df4da5c",
      "tree": "77f494f865e9b3c24340b5761a5d762408eb3a78",
      "parents": [
        "5de31a1dd5ac6e12b37517550a609b9c0576f685"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Oct 12 16:15:45 2018 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Dec 12 21:03:14 2018 -0800"
      },
      "message": "Change GC triggering to use mallinfo()\n\nRevise the test of whether we should collect based on native allocation\nto be based on mallinfo.\n\nMake the GC triggering threshold for native allocations grow somewhat\nwith the Java heap size to account for the added cost of Java\ncollection. We currently compromise between that goal and a\ndesire to avoid drastic changes that might provoke new heap\ngrowth issues. It does now take more native allocations to\ntrigger a GC earlier in the normal Java GC cycle than later in the\ncycle, as it should.\n\nAdd the notifyNativeAllocations() interface to replace\nregisterNativeAllocation() in the common case in which native memory\nis completely allocated via malloc(), and thus no longer needs to be\naccounted for separately. Arrange for it to be called much more\nrarely, since its cost is higher, and we can save time by not going\nthrough JNI on every allocation.\n\nAdd 175-alloc-bignums test.\n\nCleanups/fixes:\n\nFix race in IsOutOfMemoryOnAllocation.\n\nRename max_allowed_footprint_ to avoid suggesting it\u0027s a hard limit.\nIt wasn\u0027t and it isn\u0027t. Make it atomic, since it\u0027s concurrently\nmodified.\n\nFix a few cases in which unsigned counters could become negative.\nI think the only bad consequences of this were weird log messages.\n\nFix integer sizes/signedness around GrowForUtilization.\nUse uint64_t only when we can exceed address space size, and\nsize_t otherwise. Improve overflow checking.\n\nMake allocator or collector tests check the important kinds first, since\nthey\u0027re not always known at compile time.\n\nBug: 111447610\n\nTest: Built and booted AOSP. Ran 175-alloc-big-bignums.\n\nChange-Id: I55deac86622019fb85bbd569c3ae8afab2d13d9a\n"
    },
    {
      "commit": "93c21ba3311db5cecaa1a6a178a44c662ebd3d43",
      "tree": "c51226e865e56ea9bd0f9738ccf1e09390952e44",
      "parents": [
        "8f86ef169923d3f3a7eaac7346f0f3fac357a274"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 13:08:30 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 12 17:36:49 2018 -0800"
      },
      "message": "Avoid waiting for threads to create\n\nAvoid blocking for threads to create in the constructor. This is\nsafe because the destructor will block until the threads join.\n\nAlso avoid creating the thread pool if the image only has one\nblock.\n\nGet the GC task proccessor to delete the thread pool.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I80399525caa0775eddade73c11e7ebc06e41416a\n"
    },
    {
      "commit": "8f86ef169923d3f3a7eaac7346f0f3fac357a274",
      "tree": "776168e66dbda388c6d1c623d5d5c24b375d8df6",
      "parents": [
        "04822d823b6828e37b38bf57f70524af4a59fee7",
        "8f5aaadacaa9fd0ea382d23318e394b069bb168a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 13 01:14:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 01:14:05 2018 +0000"
      },
      "message": "Merge \"Fix reference-type obj handling in generational CC\""
    },
    {
      "commit": "8f5aaadacaa9fd0ea382d23318e394b069bb168a",
      "tree": "d90c156c75b9b570b305c0ad83493a75bbf0287a",
      "parents": [
        "5de31a1dd5ac6e12b37517550a609b9c0576f685"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Dec 11 15:05:56 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 12 14:03:49 2018 -0800"
      },
      "message": "Fix reference-type obj handling in generational CC\n\nReference-type objects in old generation with referent in young\ngeneration are not handled correctly. During card-table scan, we only\nvisit such objects, which does not process the referent. Also, we don\u0027t\nset the read-barrier state to gray. Eventually, if the mutator calls\nGetReferent() on such objects (after done_scanning_ is set to true),\nthen the read barrier will not be called, breaking the to-space\ninvariant.\n\nTest: art/tests/testrunner/testrunner.py --target\nBug: 120792243\nChange-Id: I53e8f0bc99ef99eb6e0ea7d743a6185d37d7ff8c\n"
    },
    {
      "commit": "25602dc8f307101aa4aca08b20b25d1e049f36cb",
      "tree": "433ff1270fe94008c12dbcbe18ca686e9aa95c64",
      "parents": [
        "5de31a1dd5ac6e12b37517550a609b9c0576f685"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 11 11:31:57 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 12 10:20:23 2018 -0800"
      },
      "message": "Use PatchObjectVisitor for app image class set patching\n\nVisit classes first to make object relocation parallel friendly.\n\nUse VisitDexCacheArrays to remove duplicated logic.\n\nBug: 116052292\nTest: test-art-host\n\nChange-Id: I7b2f82285f18ff4623549432548bccdf0752a6e1\n"
    },
    {
      "commit": "4433c4351aab98005e12a6b53905678758b74665",
      "tree": "fecf5b03a081dc78df4b058210bb4935d2f7c75c",
      "parents": [
        "6b36d8025de5237b57e7bf23033bfc61a112d6cd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 04 14:57:47 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 12 16:18:56 2018 +0000"
      },
      "message": "Allow boot image for a part of the boot classpath.\n\nInstead of recording a single uint32_t boot image checksum\nin the oat header, store a string representing composite\nboot class path checksums in the key-value store.\n\nWhen checking the boot class path while loading the boot\nimage, allow the boot class path to contain more components.\nThe runtime shall then load the additional dex files from\nthese components.\n\nTest: Exclude conscrypt from the the core image modules.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: run-libcore-tests.sh --mode\u003dhost --variant\u003dX64\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64\nBug: 119868597\nChange-Id: Ia872fdedea0570ace2c8e597ddb3c6f63a43e62a\n"
    },
    {
      "commit": "5af086c98d46d7833a064c5015c5503fc5dd29f3",
      "tree": "5f0bc1ce634ad2e6e9a508b5f5478dd66590aff1",
      "parents": [
        "911a86ab1625e83a2b389771ed92243a716d78c3",
        "6e0d3256c08feab82627b886329c7ec21e85093d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 12 13:26:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 12 13:26:33 2018 +0000"
      },
      "message": "Merge \"ART: add post gc weighted allocated bytes metrics\""
    },
    {
      "commit": "2260cf563b2f8ce29bf508e205f8d5459aac25db",
      "tree": "c60fa0d1aa5b113591292d2d3e679e96ea243b09",
      "parents": [
        "3437d3929f9064fe2d1707f9a1f99f69accf4a17",
        "3b015746bb77f4e4763a2023ab42e517ffa3f641"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Dec 12 02:27:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 12 02:27:48 2018 +0000"
      },
      "message": "Merge \"Ignore expansion-to-defined warning from dlmalloc include\""
    },
    {
      "commit": "6e0d3256c08feab82627b886329c7ec21e85093d",
      "tree": "d775990116e929b053fed777ee256e22f4ef2c8c",
      "parents": [
        "6b36d8025de5237b57e7bf23033bfc61a112d6cd"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Dec 10 15:22:45 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Dec 11 11:05:47 2018 +0000"
      },
      "message": "ART: add post gc weighted allocated bytes metrics\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I2fc30c7dbb2d12ab8c3f98ad1f96672af6c5d438\n"
    },
    {
      "commit": "6b36d8025de5237b57e7bf23033bfc61a112d6cd",
      "tree": "f3db51fcd564929652433e7182eda9ebc7a9bc29",
      "parents": [
        "e79edef8fd58d45361f95f81c3d0e4152591bc9b",
        "d3f037bab43b735af892dc45a5e593fe159c2e8e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 11 02:09:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 02:09:17 2018 +0000"
      },
      "message": "Merge \"Refactor image object visitors for image relocation\""
    },
    {
      "commit": "d3f037bab43b735af892dc45a5e593fe159c2e8e",
      "tree": "7695c816041fdd6ab2450e22e18dae2974fc1f76",
      "parents": [
        "0633365c40e32fda28d06ef94e6e3e3d8dab697f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 06 23:50:56 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 13:03:48 2018 -0800"
      },
      "message": "Refactor image object visitors for image relocation\n\nRepurpose the boot image visitors for future use in app images.\n\nTest: test-art-host\nBug: 116052292\n\nChange-Id: Ic3b30bb0450ce8533f4d93d694b9916f2b2eff12\n"
    },
    {
      "commit": "3b015746bb77f4e4763a2023ab42e517ffa3f641",
      "tree": "02a66f17797ad13afe745d0bfd9ec18271e96e7a",
      "parents": [
        "2d17c5149bd96327e8e306986f3539429d1d98fe"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Dec 10 04:56:54 2018 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Dec 10 19:27:16 2018 +0000"
      },
      "message": "Ignore expansion-to-defined warning from dlmalloc include\n\nexternal/vixl/src/../../../external/dlmalloc/malloc.c:2742:5: error: macro expansion producing \u0027defined\u0027 has undefined behavior [-Werror,-Wexpansion-to-defined]\nexternal/vixl/src/../../../external/dlmalloc/malloc.c:589:22: note: expanded from macro \u0027USE_LOCKS\u0027\n                    (defined(USE_RECURSIVE_LOCKS) \u0026\u0026 USE_RECURSIVE_LOCKS !\u003d 0))\n\nTest: m checkbuild\nBug: 29823425\nChange-Id: I38d6947b151a97391b88a32a2b3187e7c4e88660\n"
    },
    {
      "commit": "1c065287805511371b0da2c7d7d8404fe491c9e9",
      "tree": "d0ced0e5f62cea335fc41efa1e84decf571e9a81",
      "parents": [
        "dc12509a6331b7f4c48a1b3a52a2387363841571",
        "97b281129e556e6f3a91e9893f71ca45e7715e3f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 18:24:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 18:24:35 2018 +0000"
      },
      "message": "Merge \"ART: Clean up base/utils.h\""
    },
    {
      "commit": "0633365c40e32fda28d06ef94e6e3e3d8dab697f",
      "tree": "11f28f180937d2fdbd934d2f9f9ada2fa30f42b0",
      "parents": [
        "b0c3661ac792f4243deddddad2e940a0dce67b0a",
        "3ea432213ec55691f184dbfddbbc1b96a114cd16"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 17:03:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 17:03:12 2018 +0000"
      },
      "message": "Merge \"Create thread pool only during app image loading\""
    },
    {
      "commit": "b023b3fd99a3369479e965c8e5d1d79b2491f75d",
      "tree": "12899651d6ec24d35a34babbb992e189df77b93f",
      "parents": [
        "2d17c5149bd96327e8e306986f3539429d1d98fe",
        "ad2845c0c1322210d39ba1cdbecb2094e156120c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 13:03:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 13:03:46 2018 +0000"
      },
      "message": "Merge \"ART: fix overflow in weighted allocated bytes metrics\""
    },
    {
      "commit": "3ea432213ec55691f184dbfddbbc1b96a114cd16",
      "tree": "3bbbff5fa296ae99e5fe1a908b02ae22cc5ff5f8",
      "parents": [
        "e3c6dfe2009d2fad6f8e4401cb17935bdd09ab9e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Dec 08 20:44:50 2018 -0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 10 11:38:18 2018 +0000"
      },
      "message": "Create thread pool only during app image loading\n\nPrevent having a persistent thread pool that is only used during app\nimage loading. This saves RAM.\n\nBug: 116052292\nBug: 120622973\nTest: test-art-host\nChange-Id: I79ff75d593e001a6c48d50b95865550a24772078\n"
    },
    {
      "commit": "7391c8ce016c9bcd9e7cec91fb8dcf29f5ca5909",
      "tree": "fca941e7b216abd17a51d9ea0ba3d8aab059a05d",
      "parents": [
        "5ab44e73e5f9e2403e0cac0a448b35378dae1de8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 17:58:44 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 10 11:31:57 2018 +0000"
      },
      "message": "Store additional information in image header.\n\nStore the reservation needed for loading the boot image and\nthe number of boot class path components. The former helps\navoid one extra file open+read+close when loading the boot\nimage and the latter shall be used in subsequent CLs to load\nboot image for a partial boot class path.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nBug: 119868597\nChange-Id: I01dba923cfa3f8faf0e41a4139b8913c78404d54\n"
    },
    {
      "commit": "95c591573686f75e32e9edd01777b8a42b186208",
      "tree": "ae3332d69bb2045fc9c9941a32872607797772ed",
      "parents": [
        "c4252f49a035dca5adfbb4f39d3cede9f93dff7e",
        "91f1032505cfaec3aef51fc0a3085b213813f0ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 10 07:31:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 07:31:18 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Pass boot class path to ImageSpace::LoadBootImage.\"\""
    },
    {
      "commit": "c1baad2f913cbe37c7b634499ae23a10dd60d278",
      "tree": "5e0404db2cc8fb78c8c74a2d31b45b27d59aa8ff",
      "parents": [
        "13782ba2f0a0fab54f8c47509f3bac445264e89e",
        "b0675b3dec9e96022873c03b95e58a98fba7a464"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Dec 08 06:14:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 08 06:14:04 2018 +0000"
      },
      "message": "Merge \"Fix ModifyCardsAtomic comment\""
    },
    {
      "commit": "b0675b3dec9e96022873c03b95e58a98fba7a464",
      "tree": "efa33cada91b19c1deb215c8b73d8efb669573a2",
      "parents": [
        "274ed2ea9d496f75030f849c4259b35ecb4d35c1"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 06 13:51:19 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Dec 07 11:50:20 2018 -0800"
      },
      "message": "Fix ModifyCardsAtomic comment\n\nThe function doesn\u0027t behave as it was previously specified. Its\nactual semantics are arguably ugly, but that doesn\u0027t really seem to\nbreak anything. Just specify what it really does, and add DCHECK\nto validate previously undocumented assumption.\n\nDeduplicate the comment.\n\nUpdate card_table_test, so it no longer invokes ModifyCardsAtomic\nwith a now disallowed visitor. This was OK, because it\u0027s applied\nto a card table containing no zeroes, and hence the misbehaving\nvisitor didn\u0027t matter. Now we check.\n\nTest: Treehugger.\nChange-Id: Id1ba1cb39c709a33c362d4e386ddcb065bd39049\n"
    },
    {
      "commit": "91f1032505cfaec3aef51fc0a3085b213813f0ed",
      "tree": "6469e772d9fb562d26dc1d22dd0b71844bbb743f",
      "parents": [
        "573b3877fac3c5a4a9703301502694fe7219b21c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 18:04:10 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 18:13:55 2018 +0000"
      },
      "message": "Revert^2 \"Pass boot class path to ImageSpace::LoadBootImage.\"\n\nThis reverts commit db4b1deebf425be5f1d0f597d1ef540f19908324.\n\nFixed JDWP tests, see \"Test:\" stanzas below.\n\nChange-Id: I6fb56ac990b78164cbd3f93c9f6df66e0dd9a813\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64\nBug: 119868597\n"
    },
    {
      "commit": "ad2845c0c1322210d39ba1cdbecb2094e156120c",
      "tree": "66fe93516eda836376a98b88cf037af11c26e361",
      "parents": [
        "17ed987eeebdebbd1b923c3c2a6887a233cb7517"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Dec 07 17:39:14 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Dec 07 17:50:58 2018 +0000"
      },
      "message": "ART: fix overflow in weighted allocated bytes metrics\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I59f7e8998ee055aac28e50884fcabf19b48fbf17\n"
    },
    {
      "commit": "db4b1deebf425be5f1d0f597d1ef540f19908324",
      "tree": "5851aab8a4d71b49dbd272b822bfd1ae2cbd08df",
      "parents": [
        "e3c6dfe2009d2fad6f8e4401cb17935bdd09ab9e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 17:18:07 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 17:23:26 2018 +0000"
      },
      "message": "Revert \"Pass boot class path to ImageSpace::LoadBootImage.\"\n\nThis reverts commit d19085141ad9c71eae1b0ff585999ac8e27dadd4.\n\nAlso squash a revert of\n    Fix oatdump tests on target.\n    (commit 77eea0898aca2881a87afd177a0422870c39a318)\n\nReason for revert: Broke JDWP tests.\nBug: 119868597\nChange-Id: I005097d2d96014c961e5a4c0b089e7675004febc\n"
    },
    {
      "commit": "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
      "tree": "9f00efead2c694b2a590f8c4890a9052571bbcff",
      "parents": [
        "260a50cb43618dfdd325e7c89745d8bc38b20292",
        "d19085141ad9c71eae1b0ff585999ac8e27dadd4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "message": "Merge \"Pass boot class path to ImageSpace::LoadBootImage.\""
    },
    {
      "commit": "dc1309c01d7b4cbc2c9f5803f7f643fad646f9ba",
      "tree": "4e315f966919643416d8e0fd2a87c8b602ada6c6",
      "parents": [
        "bee521dc73825fc75f840749fc4fc7a083a9f0cf",
        "44f67607b33e36c118fe0f62c062865b2bc8bd8f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 22:09:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 22:09:37 2018 +0000"
      },
      "message": "Merge changes Ib1e027a1,I1608b032,I11ca161a\n\n* changes:\n  ART: Rewrite Runtime fault message to be lock-free\n  ART: Move to using locks.h instead of mutex.h\n  ART: Factor out lock order and holder from mutexes\n"
    },
    {
      "commit": "bee521dc73825fc75f840749fc4fc7a083a9f0cf",
      "tree": "287f691d8d02c7ece3356f0d6052e013a21c00d8",
      "parents": [
        "03eb36c6940060f82f887b3e8860a91c1f97224c",
        "519c1c7bb05af22cca3a21cfc78afce5bf9c300c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 06 21:17:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 21:17:45 2018 +0000"
      },
      "message": "Merge \"Cleanup marking logic for non-moving objects\""
    },
    {
      "commit": "97b281129e556e6f3a91e9893f71ca45e7715e3f",
      "tree": "3e90f0148f3f6d073a29b0bfcd774e0689fb9fb4",
      "parents": [
        "0bbac3089b5637103585b04774eea3d959c4f24d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 04 09:09:12 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Clean up base/utils.h\n\nRemove dead code. Remove unnecessary includes.\n\nBug: 115837065\nBug: 119869270\nTest: m\nChange-Id: Ieb07546e9ebd476b7b1459fb8dd6cf5545d0af20\n"
    },
    {
      "commit": "7fbc4a59ba2e60d869313d7961662430df83b2cb",
      "tree": "59520285df8d2075412ddc566a0d4d96d4c7e109",
      "parents": [
        "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:26:47 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Move to using locks.h instead of mutex.h\n\nWhen only annotating lock requirements, use locks.h.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1608b03254712feff0072ebad012c3af0cc3dda4\n"
    },
    {
      "commit": "03eb36c6940060f82f887b3e8860a91c1f97224c",
      "tree": "b4667d8a91976c1458d0ab164f07982bb92b81ee",
      "parents": [
        "4bebb8582123c75cb7a9bf0d35f746845e851618",
        "6693742a2842ece89e90d1fd8e412c2c9d62cd22"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 06 18:43:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 18:43:34 2018 +0000"
      },
      "message": "Merge \"ART: use freed_bytes in reclaimed_bytes_ratio calculation\""
    },
    {
      "commit": "d19085141ad9c71eae1b0ff585999ac8e27dadd4",
      "tree": "24284e84f5df4601bacc2a97c56af1bc5950c253",
      "parents": [
        "523940b40f9701504d6e007dd2af48f315038dc1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 14:57:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 06 14:43:07 2018 +0000"
      },
      "message": "Pass boot class path to ImageSpace::LoadBootImage.\n\nWhen loading the boot image by ImageSpace, do not rely on\nthe boot class path (BCP) recorded in the primary boot image\noat file. Instead, check the BCP from image against the BCP\nprovided by the Runtime, i.e. from -Xbootclasspath:_ or the\nenvironment variable BOOTCLASSPATH. For now, allow Runtime\nto extract the BCP from the primary boot image oat file when\nwe have -Ximage:_ but no BCP.\n\nAlso pass the boot class path components down to the OatFile\nso that we can open and use the original dex files when we\ndo not have copies in the vdex files. This allows compiling\napp prebuilts when the boot dex files are uncompressed and\naligned in the original jars.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: Manually create boot image jars with uncompressed and\n      aligned dex files, compile a boot image with dex files\n      not copied into vdex files and use this boot image for\n      compiling a prebuilt services.{art,vdex,odex}.\nBug: 119868597\nChange-Id: If9411ddbecf6bb90bfa9233040931c5e833f6aee\n"
    },
    {
      "commit": "274ed2ea9d496f75030f849c4259b35ecb4d35c1",
      "tree": "6a371c40b6f754db7687aceb538f81f85871373f",
      "parents": [
        "18851145160a85f028432c07247485250167b155",
        "c6068c7f07785f326090f2c3dc0d5679adbfcc69"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "message": "Merge \"Parallel image decompression\""
    },
    {
      "commit": "519c1c7bb05af22cca3a21cfc78afce5bf9c300c",
      "tree": "efc6f5bd69f708a345d1fed80ff9c379519383a4",
      "parents": [
        "94d4f5fa020561a1f828828dce1edf8fb5d4ab5c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Nov 09 17:10:47 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 05 01:08:43 2018 -0800"
      },
      "message": "Cleanup marking logic for non-moving objects\n\nThe marking logic for non-moving and large objects currently grays the\nread barrier state and sets the mark bitmap together. This causes the\nfollowing complexities:\n1) Setting the mark bitmap has to be done atomically as application\nthreads also set the mark bitmap.\n2) It requires using a separate false gray stack to handle cases where\ndue to concurrent execution one thread succeeds in graying the object\neven after the object has been already marked.\n\nThis can be simplified if non-moving/large objects are treated just like\nthe unevac-space objects are. Marking the object involves testing\nwhether the object is already marked in the bitmap or not. If not, then\ngraying the read barrier state and pushing to the mark stack.\nEventually, GC thread sets the mark bit non-atomically while processing\nthe reference.\n\nBug: 119273672\nBug: 112720851\nBug: 119629540\nTest: art/test/testrunner/testrunner.py --64\nChange-Id: I7050d545d59d5d8b1c90813a982e6f464b15d5e3\n"
    },
    {
      "commit": "c6068c7f07785f326090f2c3dc0d5679adbfcc69",
      "tree": "e0d729e4c73cecb87413341a7c6f3fd0ce876cf5",
      "parents": [
        "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 16:00:58 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 04 14:08:55 2018 -0800"
      },
      "message": "Parallel image decompression\n\nAdd a runtime thread pool to facilitate parallel app image loading.\n\nUse the thread pool to decompress the image, this results in a ~1%\napp startup speedup.\n\nTest: test-art-host\nTest: manual\nBug: 116052292\n\nChange-Id: If35f71ff632ac58e67d11eed4b5f5b19656cc301\n"
    },
    {
      "commit": "2d7329b5379a739751448ee93ae7c52d15d0c07b",
      "tree": "76de7c6bd8350792661789ecae4a4943eb36b65c",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 19:58:18 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Dec 04 19:31:28 2018 +0000"
      },
      "message": "ART: add weighted allocated bytes metrics\n\n`process_cpu_start_time_` is moved from `art::Runtime` to `art::gc:Heap`\nso that it could be reset when the app starts (current process is forked\nfrom Zygote).\n\n`process_cpu_end_time_` is removed from `art::Runtime` because it\u0027s only\nused when the runtime is about to shutdown, so it suffices to capture it\nin a local variable.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I154fdb6acdf4e0c21dff835807bd4e2cf311e3d1\n"
    },
    {
      "commit": "6693742a2842ece89e90d1fd8e412c2c9d62cd22",
      "tree": "30d8e1e584f5785f82589d3ed6b930fa20f65327",
      "parents": [
        "9f27ffa9031431267ae59ee3469c853355811916"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 17:52:01 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Dec 03 16:21:30 2018 +0000"
      },
      "message": "ART: use freed_bytes in reclaimed_bytes_ratio calculation\n\nThis commit uses actual bytes reclaimed in the current GC cycle instead\nof difference of num_bytes_allocated_ before and after GC cycle for\nreclaimed_bytes_ratio calculation. The latter could be affected by\nmutators running concurrently to GC cycle.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: Icc845566bfe14706b0a4a60ee33b64a4f5e66942\n"
    },
    {
      "commit": "9dd5ba3e242c63a252bbd39adf1aa80259009b55",
      "tree": "3f162bd53915c1b1cf9ad22075cf9be933b01f10",
      "parents": [
        "d378a567a435a80be9ab7eb8bfe0359c1240c0ff"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 26 10:44:40 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 19:53:34 2018 +0000"
      },
      "message": "ART: add GC throughput measured in bytes per CPU time\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I85bd7a49655db760cc605d50b5d18765ef82953c\n"
    },
    {
      "commit": "d378a567a435a80be9ab7eb8bfe0359c1240c0ff",
      "tree": "28e96907cda376e51289ee83d8071565f6ceba6b",
      "parents": [
        "e2ca5cfd18664ad9934102c14fd28cde2736b144",
        "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "message": "Merge \"Add image compressed blocks\""
    },
    {
      "commit": "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66",
      "tree": "75bb0ef44acf50a3108e85529f0495176afbced9",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 15:09:51 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 29 17:01:44 2018 -0800"
      },
      "message": "Add image compressed blocks\n\nAdd support for splitting the image into a set of solid blocks.\n\nAdded dex2oat option --max-image-block-size and correspodning image\nunit test.\n\nMotivation: Enable parallel image decompression in the future.\n\nBug: 116052292\nTest: test-art-host\n\nChange-Id: I37c6c6a43ef94c4a62bf38a0cf51f26ce06347ac\n"
    },
    {
      "commit": "f355ec703f519c3091853d85f61904be6dfb68aa",
      "tree": "82486a5104742260ab35382c0678165ebff85112",
      "parents": [
        "0e211e55fe51adbd6bab7278ff1ceabea21faf78",
        "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 22:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 22:51:00 2018 +0000"
      },
      "message": "Merge \"C++17 compatibility: make WITH_TIDY\u003d1 happy again.\""
    },
    {
      "commit": "196d0c8d3c76f46d606a5a808492ea4534e17890",
      "tree": "0108dec4b020914496e62c52119137bece201154",
      "parents": [
        "c89a28730fb8dff57c6cb5b18295fec45fe85d09",
        "d011d81e8c4c959f6d607bb80dfedf3b64a7f131"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 20:46:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 20:46:18 2018 +0000"
      },
      "message": "Merge \"Use more vector\u003cstring\u003es in dex2oat.cc .\""
    },
    {
      "commit": "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06",
      "tree": "b68a5f5163f8da0da87d671a225addaa2a13095f",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "message": "C++17 compatibility: make WITH_TIDY\u003d1 happy again.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: I8b69ea3815e14bb6eb27f40c0dd01a85b340a355\n"
    },
    {
      "commit": "d011d81e8c4c959f6d607bb80dfedf3b64a7f131",
      "tree": "803656224159e0c87c4a97ad640dbe90c6e7285a",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 12:35:24 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 15:11:11 2018 +0000"
      },
      "message": "Use more vector\u003cstring\u003es in dex2oat.cc .\n\nReplace some uses of vector\u003cconst char*\u003e.\n\nTest: m test-art-host-gtest\nBug: 119868597\nChange-Id: Ib5b8d132a35b076c23d43f58a4715c4218dbbffb\n"
    },
    {
      "commit": "2025488b81ac0cfa9af5cfd10c7f8a45c215d9a3",
      "tree": "101d49fadb624ee8b5a22a1866b0f319dfea8fc0",
      "parents": [
        "ef6b2aa28fec148d3fe635a34260fde8c89622c7",
        "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "message": "Merge \"ART: Some iwyu for logging.h\""
    },
    {
      "commit": "ef6b2aa28fec148d3fe635a34260fde8c89622c7",
      "tree": "c00a942a4af6eab805e78b26ce779b23166e1212",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e",
        "c7d878d4be3f0971d4b86266308c7540a26c2856"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 16:43:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 16:43:42 2018 +0000"
      },
      "message": "Merge \"Revert^4 \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "a92b0265ecade9b90ef051798f177eefeead8b4e",
      "tree": "8adbeeaaf0552ab8e57f9b8b4c5bf0ab446d9d2d",
      "parents": [
        "a61a969e2d32c175fca043a33dcc3af04ffa41f0",
        "d79209ceb8a9d41a4f1c194ed5f9cac111e52835"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 21:21:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 21:21:49 2018 +0000"
      },
      "message": "Merge \"C++17 compatibility: unreachable `return`.\""
    },
    {
      "commit": "d79209ceb8a9d41a4f1c194ed5f9cac111e52835",
      "tree": "2e50a8ccf782366cfce41a9dd801f0d81e8e2cec",
      "parents": [
        "f3d71d90813be42eb2bc5b85a38cd31dd3c5af21"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 16 09:29:48 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 26 10:36:59 2018 -0800"
      },
      "message": "C++17 compatibility: unreachable `return`.\n\nClang rejects the `return` as unreachable in C++17 mode, but complains\nabout falling off the end of a function in C++14 mode. Add UNREACHABLE\nto make it happy either way.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: I119a806f41e88752976d6fd3638146ec6e08d620\n"
    },
    {
      "commit": "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45",
      "tree": "67d17ea5a7eb6021dabb335730402bd28d72694a",
      "parents": [
        "79c693b3133da397cec7eaff19de631b65a0cf70"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 13:52:48 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 15:22:07 2018 -0800"
      },
      "message": "ART: Some iwyu for logging.h\n\nRemove over-broad use in headers. Fix up transitive includes.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I518fa7c8bee014b260818fca1fbde6ec47d126da\n"
    },
    {
      "commit": "312f10ed40dd175e71eba51ecb44e550e0ac6e97",
      "tree": "19339686a5eabd5352f22aefa0e62ca1ddf7176c",
      "parents": [
        "0c78ef7f2e8f010311ce9c0715b1ab3fe28f68f6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 12:35:24 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 18:01:52 2018 +0000"
      },
      "message": "Refactor loading boot image.\n\nLoad art files first, then load oat files.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I05871a8ababaab5a59919acd7bcfd07c69cc563d\n"
    },
    {
      "commit": "0c78ef7f2e8f010311ce9c0715b1ab3fe28f68f6",
      "tree": "97755cc52e33418aacfd1cc5ebbf061085dec780",
      "parents": [
        "5a78e8dbf068c544b84e98f636b30045b09451c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 14:09:35 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 16:47:03 2018 +0000"
      },
      "message": "Remove boot image begin/size from image header.\n\nUse a single boot image range for both the heap (*.art) and\ncode (*.oat) boot files.\n\nThis is done in preparation for boot image extensions. We do\nnot want to encode multiple heap and code ranges and shall\nkeep a single boot image range for the boot image including\nextensions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119868597\nChange-Id: I8baec8361602c445652e69bdfbb57e7a7c7c6419\n"
    },
    {
      "commit": "5a78e8dbf068c544b84e98f636b30045b09451c4",
      "tree": "c7a7bb50f48711b1904cc129147b208532b5b22d",
      "parents": [
        "7ec77b412b98cf092bbf38e73b7361c2f3708a71",
        "af9cce1808dbec59d632fe85fb139852751bc479"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 21 14:10:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 21 14:10:57 2018 +0000"
      },
      "message": "Merge \"ART: add reclaim bytes ratio metrics to GC performance\""
    },
    {
      "commit": "875b4f26517ce215342746f07e41cda4c1991237",
      "tree": "16d061e67632c2980af958383db77883eabbdf1f",
      "parents": [
        "3573c3669b281e0fa6c59019d4e9de5d37e651ea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 12:59:15 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 20 13:04:36 2018 -0800"
      },
      "message": "ART: Avoid some tidy nullptr warnings\n\nSprinkle some (D)CHECKs to tell tidy our expectations.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I315b1602b20475402dd8383e1accc49e5a63eb5c\n"
    },
    {
      "commit": "1c42e753a46fa1a5281695413e7b7a67b0eb2dde",
      "tree": "abda4b296d13924ba660cb8ec4e0c9c3e0452cf2",
      "parents": [
        "d295a75d952742604eaae0530daea19dd6fd782c"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 16:10:24 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Nov 20 09:52:46 2018 +0000"
      },
      "message": "ART: change reference to pointer in for-loop over all collectors\n\ngarbage_collectors_ is a vector of pointers, so using `auto*` to make it\nexplicit.\n\nTest: Builds correctly\nChange-Id: I413d0a9dcc902b75182a85eac5fdc2444625d179\n"
    },
    {
      "commit": "c7d878d4be3f0971d4b86266308c7540a26c2856",
      "tree": "041a6d897df81ae64f25c211f16e8640959a35f5",
      "parents": [
        "d295a75d952742604eaae0530daea19dd6fd782c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 18:42:06 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 17:09:07 2018 -0800"
      },
      "message": "Revert^4 \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit ec43a01e0ac948c59d5b1f9c3812f2901b48942a.\n\nReason for revert: Added missing code.\n\nBug: 115837065\nTest: m test-art-host\nChange-Id: Id30ccdf9aa9a6e56a914254793e399f2712c882d\n"
    },
    {
      "commit": "d6e178e92c9ac7eb4fe433fff1dc169a0edf2ab9",
      "tree": "014cbf230b0d2433ab02a598ebe784e88ba3c5fa",
      "parents": [
        "498d7c1752d02f6687c2b19a077ad1942d1d6348"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 12:58:30 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 13:21:18 2018 +0000"
      },
      "message": "Revert^2 \"ART: add GC time ratio metrics to GC performance\"\n\nMake GC time ratio metrics work for all collectors.\n\nThis reverts commit 4d57c69ab7753690738d9dc802b5b640cb6af491.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I5cce0cf2a5204126b70b7c8fdf686986f9b3d7e7\n"
    },
    {
      "commit": "498d7c1752d02f6687c2b19a077ad1942d1d6348",
      "tree": "44880394c1f46c56796a9fab7be28e7e6e8109a2",
      "parents": [
        "cddf4286775e35ad26fa6a5244c4369031735589",
        "ec43a01e0ac948c59d5b1f9c3812f2901b48942a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:11:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 17 13:11:07 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\"\""
    }
  ],
  "next": "ec43a01e0ac948c59d5b1f9c3812f2901b48942a"
}
