)]}'
{
  "log": [
    {
      "commit": "efc03b831c35062f51589adc0ec509d4bfa2ef33",
      "tree": "568dd31db77c080da1ffdfdda67db6662d8c2bd5",
      "parents": [
        "5b0b2e1b5d60514b829f99aed5712dcae3647115"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Mar 21 17:49:39 2021 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 22 14:35:42 2021 +0000"
      },
      "message": "Fix reported dex file size to libunwindstack.\n\nCompact dex file size is non-trivial.\n\nThis has not been a major issue so far since the\ndex loader in libunwindstack just keeps retrying\nwith bigger size, but we should fix the error.\n\nTest: test.py -r -b --host -t 137\nChange-Id: Ifa06640fce8efe12cf8e82f573a0da41a37a44fa\n"
    },
    {
      "commit": "1f947b4dd13fe560a371fb5610ac619ef0546306",
      "tree": "8f65535f2e6a5bcd571c2974c9bccb9107b0eab4",
      "parents": [
        "17491ac89fffc79452c4a88b39a9b74f342508d3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 08 16:08:04 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 09 11:50:42 2020 +0000"
      },
      "message": "Exclude zygote methods from FreeAllMethodHeaders DCHECK\n\nZygote method set can change concurrently.\n\nBug: 175006160\nTest: run jit-zygote configuration with the check enabled.\nChange-Id: I973ab9303ade65ad7cad706b99e895b9c673ffb4\n"
    },
    {
      "commit": "41617b18f1c09e3031710d58fdb93c5aa43399ac",
      "tree": "36a0f3e3dc27e97980b96e1150ede718aee775fa",
      "parents": [
        "842555d72ee7511c193a65f34841cc92170a1850"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 18 21:19:06 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 25 14:10:23 2020 +0000"
      },
      "message": "Add more logging and sanity checks for JIT mini-debug-info.\n\nUsed when diagnosing b/151137723. Keep it around.\n\nBug: 151137723\nTest: test.py -r --jit\nChange-Id: I10cc613c7396607e221fdc1f5972d26c1ac03fa8\n"
    },
    {
      "commit": "30fd85157260c91327c6b5a0816d312dd505c0e0",
      "tree": "355823ab233177d529baa873911cf08bb5b5deec",
      "parents": [
        "80dc7dc20855bf680fa598127f26e6047821bdd0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 20 20:27:58 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 12 12:10:49 2020 +0000"
      },
      "message": "Refactor RemoveNativeDebugInfoForJit.\n\nThis is partial revert of CL/1099280 (Remove global maps).\n\nIt somewhat resurrects the lazy method removal.\n\nThe original goal was to only remove methods from the GC,\nand do all of them in bulk for simplicity and efficiency.\n\nHowever, this is proving infeasible since we have several\ncorner cases which remove methods outside the GC code path.\n\nThe behaviour for the GC code path is preserved by this CL.\nInstead of passing method array, the methods are individually\nmarked for removal and then repacking is immediately forced.\nThe only difference is that coroner cases are done lazily.\n\nTest: ./art/test.py -b -r --host --jit --64\nChange-Id: I42729545d6b51df788d92f9cf149a6e065b90c68\n"
    },
    {
      "commit": "4d125afe9c92bc1d58da74355de80c4c38377eae",
      "tree": "1fb6bb01da089787f22f3bdd59d9194d4f003667",
      "parents": [
        "5aa42926cf7728e34399847e81f3886d9cc7616f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 31 14:51:44 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 20 21:06:03 2020 +0000"
      },
      "message": "JIT mini-debug-info: Insert application entries at the head.\n\nSimpleperf expects that new entries will be added at the head.\nIt is easier to maintain that property than adjust simpleperf.\n\nBug: 143375574\nTest: test.py --host -b -r --jit --64\nChange-Id: Ib7aaa10d79791464b8233cacffd7c40070565f34\n"
    },
    {
      "commit": "5aa42926cf7728e34399847e81f3886d9cc7616f",
      "tree": "8e812a65f2acad56d8a4f52300cc79644d1acd75",
      "parents": [
        "ef46e101be0afb84898a9ac37af1f1f6c1677cf4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 20 17:20:12 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 20 19:02:13 2020 +0000"
      },
      "message": "Fix iteration in RemoveNativeDebugInfoForJit\n\nGet the next pointer before deletion clears it.\n\nChange-Id: Ic471d88a9a79e6b1b84e063f61c78bd2870eb76c\n"
    },
    {
      "commit": "697fe5cc6ce0e9c72c3681152a99a5d5bab4253c",
      "tree": "3c3f5fee37e29271a0ef5e6fdfbf5157563759fa",
      "parents": [
        "5115a4dffb95637efe1df92d6f6eb70a8724c9ae"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 09 17:24:17 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 18 15:29:34 2019 +0000"
      },
      "message": "JIT mini-debug-info: Append packed entries towards end.\n\nNeeded to avoid potential race condition with libunwind.\n\nTest: ./art/test.py -b -r --host --jit --64\nTest: device boots\nChange-Id: I214247acf5673c5bc517ee1400454aec62026432\n"
    },
    {
      "commit": "9bee62aa8ce05cd5f5154b8240e537b7c358530e",
      "tree": "2280499fb9f913afc982f5c221b401263a5ef137",
      "parents": [
        "444e998f5987007bd2783b4d88a9970d1a17736f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 03 15:27:21 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 08 13:43:58 2019 +0000"
      },
      "message": "JIT mini-debug-info: Compression micro-optimization.\n\nDon\u0027t compress the last group to avoid repeated\ncompression and decompression in jit-zygote.\n\nTest: device boots, check compression in logcat.\nChange-Id: I117cb6486710508554efa982beb2dc0774799bee\n"
    },
    {
      "commit": "94af5824acb28f9756fb8246f95f78c4026228e2",
      "tree": "e580df0d6a694a5c6b6c54fbc94feab37db779ec",
      "parents": [
        "ea2a3d949354c8b054983ba629c81bc5ff7163da"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 03 14:48:26 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Oct 05 00:07:52 2019 +0000"
      },
      "message": "JIT mini-debug-info: Add back timestamps.\n\nThey are needed by simpleperf.\n\nBug: 141558390\nTest: ./art/test.py -b -r --optimizing --jit --host --64\nChange-Id: Ic698910da83656889ecd972b56d4a23061fcf71e\n"
    },
    {
      "commit": "371390f775c90b8b3df11a9890585598a2a39da9",
      "tree": "d73786851dea3dcd1277b6135c3c41c578fbeef5",
      "parents": [
        "954b3adf6b3b4c0efe46ce4e95228fbd386d2c53"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 27 09:57:38 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 27 12:42:27 2019 +0000"
      },
      "message": "Call NativeDebugInfoPostFork in the child post-fork.\n\nIt only applies to children, and must be called before threads resume.\n\nTest: ./art/test/run-test --host --jit --gdb --runtime-option -Xjitthreshold:0 689-zygote-jit-deopt\nChange-Id: I20a82b55316e4343948a54c17289049f587c354e\n"
    },
    {
      "commit": "1550a669adb7e9328879bed24d9edc22eb97c994",
      "tree": "80f1f230decc89af3397f258d3101a6cd0287338",
      "parents": [
        "357d4db493467e4dd74b2ba1d4b8d7c80f8409b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 14 17:16:46 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Sep 20 18:48:44 2019 +0000"
      },
      "message": "JIT mini-debug-info: Add support for zygote shared memory\n\nEnsure that zygote\u0027s mini-debug-info is visible to apps.\n\nRemove global seqlock synchronization.\nIt was replaced by entry-level synchronization.\n\nTest: test.py -b -r --host --jit --64\nTest: device boots\nBug: 119800099\nChange-Id: I4885f9a4d44743d5608793a2e5d6453123d111f3\n"
    },
    {
      "commit": "87fb032ee1e7ae98df26c646c450ef44e23fc805",
      "tree": "6754b2d2a0e38277885a691d1be6f0d796478cc7",
      "parents": [
        "a86a5d162e6b59a32e8ea7991e6c8a157aca5a0a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 20 10:34:02 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Sep 01 21:08:43 2019 +0000"
      },
      "message": "Fix JIT data dual mapping for apps.\n\nWe don\u0027t use it now, but it would be nice to make it functional.\n\nMark the read-only memory as const, and fix the compile errors.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: Ic1c45072f3c97f560e843f95fb87b95f754c6e03\n"
    },
    {
      "commit": "e09b87eb8d8c063ddaee53a70b4bc8dbf61ff66c",
      "tree": "df53a0996b9ae47422f4661edc2d7998cc57ba95",
      "parents": [
        "c88c1d0fbbc4bc230f08fd1e0fe7b652519c9236"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 19 21:31:31 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 28 10:24:35 2019 +0000"
      },
      "message": "JIT mini-debug-info: Support JIT data dual mapping.\n\nEnsure that we can add/remove mini-debug-info if the JIT data is\nread-only and we need to use the other mapping for writes.\n\nPointers into the read-only memory are marked as \"const\".\n\nTest: \"test.py -b --host --jit\" with data dual mapping\nTest: device boots with data dual mapping\nBug: 119800099\nChange-Id: I9399cffbe5ae13f08f698ab1598c30f13545a767\n"
    },
    {
      "commit": "9ac8e4327bd732e4b3b9b8dc6a29560013338d21",
      "tree": "b56840a0c7b0874f73e5db7259861c04f87df796",
      "parents": [
        "29e740fe64a8caeb04e0d686b4d1e290ba5ad1e6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 13 13:16:13 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 22 20:00:55 2019 +0000"
      },
      "message": "JIT mini-debug-info: Allocate entries in the JIT data space.\n\nTest: test.py -b --host --jit\nTest: device boots\nBug: 119800099\nChange-Id: I7efa1e6e6660239cbd6438b829e08dd9cd079343\n"
    },
    {
      "commit": "8fc2f95291206806599d4f2a50da529da85155b6",
      "tree": "c3c9de9a9a925d6ab790f6db466d1f9c17ed1010",
      "parents": [
        "9ce340f829f836560278ecd078fbefcf19c9d629"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 31 18:40:09 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 16 09:10:55 2019 +0000"
      },
      "message": "JIT mini-debug-info: Remove global maps.\n\nKeep the extra bookkeeping information in JITCodeEntry.\n\nAlso do the compression eagerly during GC rather then lazily.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: Ie6cc682033a32c01d4c2cac242d8a4201116f940\n"
    },
    {
      "commit": "36ec6c7314b824f03f955a5c0c2cbce56ef63412",
      "tree": "cb3b72b2eefc25dd6ce59219d4d685145566d48e",
      "parents": [
        "c36a8ccf44454f1a4b8b57420205faf11dec7046"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 26 12:46:08 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 29 16:33:51 2019 +0000"
      },
      "message": "Fix DWARF line-number generation for JITed methods.\n\nDon\u0027t strip, repack or compress debug-info if explicitly\nrequested by the developer (using the -g compiler flag).\n\nIf enabled, the DWARF debug info has about 1:1 size\noverhead relative to JIT code + data.\n\nBug: 131422204\nTest: Check that gdb shows line numbers for JITed method.\nTest: Hard-code always-enable generation and run maps.\nChange-Id: If06de8ae2317af4d57d84e8a8bfae86a597dd4e4\n"
    },
    {
      "commit": "1ed4515facecea8dd5801eca752768043e4de01d",
      "tree": "3e16243e33dddbe1dd9ee7e918d8113b3855f4c1",
      "parents": [
        "51d5a30592d1e6f6129cf8628178b201d345ce36"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 09 18:10:26 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 10 09:28:44 2019 +0000"
      },
      "message": "Fix flaky 137-cfi test.\n\nAvoid modifying the native debug info while we are unwinding.\n\nBug: 111411286\nTest: test.py --host -b -r -t 137-cfi\nChange-Id: Ie5a173d0fb545011413fa0326135aa9c56006e8d\n"
    },
    {
      "commit": "76b9c695a7cee0772cb9ee7e472bbf8ce3030a73",
      "tree": "cfc3d1642688a93b2ef1b7d0660bfb2a333d8be9",
      "parents": [
        "e18588381b34a5ed24417c826dc389a91f8d2b7f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 01 19:36:33 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 07 21:27:36 2019 +0000"
      },
      "message": "Split JIT mini-debug-info packing and compression to two phases.\n\nEvery JIT compilation creates a mini-debug-info entry (~800 bytes).\n\nAfter every 64 compilations, pack the data so that we have multiple\nmethods per mini-debug-info entry (amortized ~200 bytes per method).\n\nCompress the entries after code GC (amortized ~60 bytes per method).\n\nSplitting packing and compression means we can cheaply claim most\nof the memory savings by packing recent methods and older methods\nstill benefit from the compression.\n\nTest: test.py -b --host -r -t 137-cfi\nChange-Id: Ic2c677ada09983e49d96623a48f4d4ad1fa5bfbc\n"
    },
    {
      "commit": "53eb07f0858795b7487eddc23b95ac38336696a7",
      "tree": "8b5710abea53fdf95aac2c582d58b465e9fd46e7",
      "parents": [
        "e39765cd311f31653137a2efede6c0eb7903e434"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:34:55 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 18 14:06:22 2019 +0000"
      },
      "message": "Refactor ElfDebugReader.\n\nMake the code more flexible, which I will need for\nfuture mini-debug-info work.\n\nBug: 110133331\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8b0fe3c43537f546f2ff103bff3c63a59a0f940a\n"
    },
    {
      "commit": "9383d692bc6ad206d0232f1d68f9c41585a2665c",
      "tree": "aef0ba1c52f9dd867e6b2adf2356b9ed1bad9073",
      "parents": [
        "fadea6bfadc3dccb8d28eb6a133fb8f27e2c4ec2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 21 10:27:46 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 21 15:41:19 2018 +0000"
      },
      "message": "Allow multiple native debug entries with same address.\n\nWe create packed entries which hold multiple methods and have\naddress aligned to 64k block that contains those methods.\n\nIf there is no method at the start of the block, it is possible\nthe new method will be JITed at that 64k-aligned address.\n\nTest: test.py -b -r -t 137\nBug: 121363337\nChange-Id: I2561b207f99e91e03f4709df5f318879c884a829\n"
    },
    {
      "commit": "0b21e41260bea6c078c18eba745d43e549230fd0",
      "tree": "25e41920b8a38d01ec904a2d1a1498c1364c07fb",
      "parents": [
        "889e29aae6a7cbd3c6f8dae44f67e054e083a8b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 13:24:06 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 14 16:47:38 2018 +0000"
      },
      "message": "Pack JIT mini-debug-infos together.\n\nWe currently produce one in-memory ELF file per JITed method,\nwhich has significant overheads due to the ELF file headers.\n\nPack several of those files together regularly to save space.\nSimilarly, prune information about methods which were GCed.\n\nThis reduces the size of JIT mini-debug-info by factor of 10.\nThe final overhead is 5% to 10% relative to the JIT code size.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: Idfaff8ed9a209e871e815e527f24f36c63a57bbf\n"
    },
    {
      "commit": "afc60cd6ddcd15353698bb453716313dea241ef8",
      "tree": "708bbf11e425ddb7a75874f27d272fd5484d0bf1",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:59:31 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 11:32:37 2018 +0000"
      },
      "message": "Cleanup native debug interface api.\n\nStrongly type the DEX file arguments.\n\nRemove the need for callers to worry about locks.\n\nUse std::map instead of std::unordered_map internally.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8bd79b796b5c7da265afc43a07ed227f550116c7\n"
    },
    {
      "commit": "c55bb390d88b8eb62a50932f7f9b47c2a3733f16",
      "tree": "ec2e74f3f8404dffcb9bfde4e7ffa3416a35543d",
      "parents": [
        "89468aeaa6a67ae4025b30d427391186306d6522"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 21 00:02:02 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 18:37:12 2018 -0700"
      },
      "message": "Revert^2 \"ART: Refactor typedef to using\"\n\nThis reverts commit ee07743e03042c2ca36e0c9513847a9e7d2509f1.\n\nReason for revert: fixed attributes.\n\nBug: 32619234\nTest: m test-art-host\nTest: m test-art-target-gtest-unstarted_runtime_test\nChange-Id: I6f0a775adfdf6ecd132b470f7c5446e949872e20\n"
    },
    {
      "commit": "ee07743e03042c2ca36e0c9513847a9e7d2509f1",
      "tree": "66867d7443a3798f6d882ef2715ddeb7baf3e771",
      "parents": [
        "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "message": "Revert \"ART: Refactor typedef to using\"\n\nThis reverts commit 9a20ff06f7ccee08a742c315ec6d351ab56ba1cd.\n\nReason for revert: Attributes on the wrong side.\n\nBug: 32619234\nChange-Id: I8fd2abef619b22c02ccfbf5ae629339f1a60918b\n"
    },
    {
      "commit": "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd",
      "tree": "7e55557e118eb5fffe03ad3456e00d8469a36232",
      "parents": [
        "70dfb6983492aff1c52cc1b52044258aef51f47f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 10:58:18 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 21:56:32 2018 -0700"
      },
      "message": "ART: Refactor typedef to using\n\nAdd clang-tidy\u0027s modernize-use-using.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: If50d37b5152af4270784e3cde7951292a9e19033\n"
    },
    {
      "commit": "d767f2df01c6c1d533b81b8a8257eb3f8e0ce6e7",
      "tree": "a5d180e567e3b217dc938febe5d469fcd4305bd4",
      "parents": [
        "68f0680e83179cfe0127fda54a8e02a8552bf619"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 26 16:18:40 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 15 14:53:26 2018 +0000"
      },
      "message": "More JIT debug data synchronisation.\n\nI want to be able to reason about consistency of the data even\nwhen it is being modified (e.g. debug-malloc backtrace running\non one thread while the JIT is running on a different thread).\n\nTest: testrunner.py --host -t 137\nChange-Id: I051bf8dcf2801d9671cf83f0e0a94e1f19b98c0f\n"
    },
    {
      "commit": "440a9b3b3e6aa60c14e73a97dd85c9ada0898569",
      "tree": "26dcc48d91e3eec18ab1e4dd987962a0939f6531",
      "parents": [
        "d1652d14fbf477b3091eec3764b9890f2c072055"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 15 17:47:29 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 21 12:57:12 2018 +0000"
      },
      "message": "Add timestamps to JIT/DEX native debug info.\n\nThis a forward-looking change intended to allow simpleperf to\nreliably correlate samples and native debug information.\n\nI have added the timestamps to both JIT and DEX, and refactored\nthe code in the process to avoid code duplication.\n\nTest: testrunner.py -t 137\nChange-Id: I45fa4310305aff540e036db9af15a86c5b8b7aff\n"
    },
    {
      "commit": "fb3de3d72832177e4a8d1f322ed11cbe58e45c9f",
      "tree": "de8cded0436b54b2e5b1142b07fa75f0ed9791b0",
      "parents": [
        "2827ff64c7a385cfb9d6e01e6385708461eb65fc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 29 16:11:49 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 02 14:14:08 2018 +0000"
      },
      "message": "Create list of open dex files for libbacktrace.\n\nThis fixes unwinds after recent changes (oob apks; cdex data sharing).\n\nBug: 72520014\nTest: m test-art-host-gtest\nChange-Id: Ie2a02657b2afbe899acd2e61f0a57d207e688b99\n"
    },
    {
      "commit": "c684f337eae6bd3d77fa44cb568d2bab113e4cee",
      "tree": "21c3e40cc150da71d91aef03f33010813f3a8368",
      "parents": [
        "26037dd60df16d84fbd5c0ee3215b78aa2bcb408"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 19 17:38:06 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 19 17:42:54 2018 +0000"
      },
      "message": "Refactor jit debugger interface and its ELF creation.\n\nMake it possible to store more then one method per entry,\nand ref-count the number of live methods per entry.\n\nTest: m test-art-host-gtest\nChange-Id: I45d69185e85e47fbee88a8d1f549ede9875a3c0a\n"
    },
    {
      "commit": "57943810cfc789da890d73621741729da5feaaf8",
      "tree": "367677a982a45af98ffe3e79543615875e8550b4",
      "parents": [
        "d5153627778e71ef68b510ce03c77467fa4d85bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 06 21:39:13 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 16:26:11 2017 -0800"
      },
      "message": "ART: Replace base/logging with android-base/logging\n\nReplace wherever possible. ART\u0027s base/logging is now mainly VLOG\nand initialization code that is unnecessary to pull in and makes\nchanges to verbose logging more painful than they have to be.\n\nTest: m test-art-host\nChange-Id: I3e3a4672ba5b621e57590a526c7d1c8b749e4f6e\n"
    },
    {
      "commit": "b486a98aadc95d80548953410cf23edba62259fa",
      "tree": "b113b7d50a4a015502873b7742c9ece00d293e84",
      "parents": [
        "1656ca9e6996cb555b4463e5efd4bd7e3f4fb816"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 01 13:45:54 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 02 08:24:02 2017 -0700"
      },
      "message": "ART: Introduce thread-current-inl.h\n\nFactor out Thread::Current() code into its own -inl file to remove\ntransitive includes.\n\nThis requires at the same time correcting mutex.h, i.e., moving\nsome functions into mutex-inl.h.\n\nTest: m test-art-host\nChange-Id: I88f888b604e0897368d9b483edce6ce4332dd9c9\n"
    },
    {
      "commit": "3bada4be05bb44f2dccb043ba7aef17f15b520f0",
      "tree": "f67a4016995702af1cec2ab0556909bcfffd68e8",
      "parents": [
        "a654e0378a8d0bb149362399917e4da2959e6991"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 19 12:32:47 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 19 12:32:47 2017 +0100"
      },
      "message": "Avoid binding const references to temporaries.\n\nTest: Rely on TreeHugger.\nChange-Id: I52930cfaea4b5e977f125500bb8c9160f9c8db33\n"
    },
    {
      "commit": "93205e395f777c1dd81d3f164cf9a4aec4bde45f",
      "tree": "1d08efd9b7bca9fe23df9ae9489c5dd575d3c6df",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 11:59:46 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 13 17:50:16 2016 +0100"
      },
      "message": "Move Assemblers to the Arena.\n\nAnd clean up some APIs to return std::unique_ptr\u003c\u003e instead\nof raw pointers that don\u0027t communicate ownership.\n\nChange-Id: I3017302307a0253d661240750298802fb0d9585e\n"
    },
    {
      "commit": "e8b4e851e17aa6ec03941f98d7bf48dad1baf647",
      "tree": "b60cbf43b285a11312aa703247c5befd61331135",
      "parents": [
        "fbc61e19578d281d05728bcd120e1ace57c2fbd8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 15 17:02:41 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 15 17:11:05 2016 +0000"
      },
      "message": "Call __jit_debug_register_code() indirectly via global variable.\n\nThis is speculative future optimization. It allows the debugger to\nchange the value of the global variable to point to its injected code.\nThis, in turn, allows it to handle JIT events in-process without\ntriggering breakpoint and without the inter-process cost of it.\n\nChange-Id: I4961c8862603bfb43c84974a3a51110ee202bb1b\n"
    },
    {
      "commit": "5cc349f3dd578e974f78314c50b6a0267c23e591",
      "tree": "7d8bf706fd6aba6f298bfe212f75db0f66e94b81",
      "parents": [
        "a38e418fb2d9b817309c54b54ca85039907c2bbb"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 18 15:04:48 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 13 15:39:12 2016 +0000"
      },
      "message": "Report DWARF debug information for JITed code.\n\nChange-Id: Ia5b2133c54386932c76c22774cf3d2ae61e0925f\n"
    },
    {
      "commit": "67feb1701277cd90be15f86c7633752721408b57",
      "tree": "df5bb8577f29abfb5a10849026f87bf6b5361783",
      "parents": [
        "2dbab9548b538cdb647e5819f7f93d43ae67116a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 17 19:57:44 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 17 21:24:39 2015 +0000"
      },
      "message": "Move JIT debugger interface code to its own file.\n\nChange-Id: Ie788daa8caf60f2f0f93484681a8a9fcce61c23f\n"
    }
  ]
}
