)]}'
{
  "log": [
    {
      "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": "c654816053ae07fb1f129d705e94b76e59f37454",
      "tree": "867d678ab3f6e0f4af70da98e935aafae0c6126c",
      "parents": [
        "8f1a586fd4ac9796e75b2b18638e39b33ad6e9a2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 08 12:15:22 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 08 12:22:21 2017 -0800"
      },
      "message": "ART: Change SCOPED_TRACE implementation\n\nMove to a LOG-like usage pattern. This improves usability in the\npresence of lock annotations.\n\nDemonstrate in the JIT compiler, where a lambda would require\na REQUIRES_SHARED annotation.\n\nTest: m\nTest: manual\nChange-Id: I9da2bfb29ed11660dbeb6f114a3d6c7ffef3a26d\n"
    },
    {
      "commit": "170331f0e44a0e07fcfe0b5932517e0500f5cd1f",
      "tree": "4bb837aa3b6e19c898df23894beb61957885e985",
      "parents": [
        "39b378ca3b4b6dc6da1651b84ee4289cd9bff0f8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 18:41:03 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 18:41:03 2017 -0800"
      },
      "message": "ART: Remove base/logging from heap-inl.h\n\nHide the single uncommon VLOG and remove the include. Fix up\ntransitive includes.\n\nTest: m\nChange-Id: I917df597cb62c57040c1fb0e0079df4d95e5a658\n"
    },
    {
      "commit": "2d8801f7b932496d5c2606294ff8fdea60e05b30",
      "tree": "8f87764977fb77e3f74c97d5165f36220de42632",
      "parents": [
        "986005c955860a69d788f7ff7d7f28964eb684ad"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 28 15:50:07 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 28 15:55:44 2017 +0000"
      },
      "message": "Clean some dex2oat options.\n\nRemove dump-passes inherited from Quick days,\nand move dump-timings and dump-stats to CompilerStats.\n\nTest: test.py\nChange-Id: Ie79be858a141e59dc0b2a87d8cb5a5248a5bc7af\n"
    },
    {
      "commit": "62a2f27f02e23c28bf010ca22bfd28b36a69c8f2",
      "tree": "7a64ae9a28dcfc3c0eb37a8e582b530b392bf180",
      "parents": [
        "a051f29bbbb7f237242e84294b8f2ced5f4b1acc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 10 16:46:43 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 10 16:48:55 2017 +0000"
      },
      "message": "Move code around to fix --inline-max-code-units in JIT.\n\nTest: set --inline-max-code-units\u003d0 and --verbose:compiler,\nand see all inlining attempts abort.\n\nbug: 65622511\nChange-Id: I11a512cc690a8db3a092962b618d96f64cffd264\n"
    },
    {
      "commit": "2ffb703bf431d74326c88266b4ddaf225eb3c6ad",
      "tree": "0552c3c76a42b18f9e7460d501fb71a6dc2e7f33",
      "parents": [
        "c4b6f3116f15c8e4fdf2e4f604ababdee12d8923"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Nov 08 13:35:21 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Nov 08 15:15:52 2017 -0800"
      },
      "message": "cpplint: Cleanup errors\n\nCleanup errors from upstream cpplint in preparation\nfor moving art\u0027s cpplint fork to upstream tip-of-tree cpplint.\n\nTest: cd art \u0026\u0026 mm\nBug: 68951293\nChange-Id: I15faed4594cbcb8399850f8bdee39d42c0c5b956\n"
    },
    {
      "commit": "097f34cc09caf46945ec17e198f57ac9c156e904",
      "tree": "2f478bcc58ac21017431505ca87e83f4606355b4",
      "parents": [
        "42e482f0615bd935d1426a749a413be2c3f79114"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 23 08:57:51 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 06 13:22:08 2017 -0700"
      },
      "message": "ART: Use CmdlineParser in dex2oat\n\nRefactor dex2oat and the compiler to use the cmdline parser. In\nan effort to standardize command-line parsing and make it easier\nto add new properties in a principled manner.\n\nTest: m test-art-host\nChange-Id: Ia077a56234dbf579d7ca3430fef325b57aa06333\n"
    },
    {
      "commit": "3d69922789f41f9d66e9b82c56c668538d8163ee",
      "tree": "5ebd1b220152e27c83ba1d9bd26aa6f9eb91d2fd",
      "parents": [
        "93780a60090356921b844dbefdc13442c9f18b52"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 20 15:15:20 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 22 09:31:42 2017 +0100"
      },
      "message": "Change JIT timings to collect thread CPU time.\n\nTest: m\nTest: timing_logger_test.cc\nChange-Id: I26fd86e66c4dd967dc62b629f6b6cde97b71ed13\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "01db5f78f627cc64f80b0c0a4eedd0a3dc8b46ca",
      "tree": "d1ee9267408e2f4d777d28bfc3f65c480f7ecd3f",
      "parents": [
        "c5b1b067fb91c10c75dd0e6dbfd91bebe74347d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 19 15:05:49 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 19 15:05:49 2017 +0100"
      },
      "message": "Pass the logger to the JIT compiler.\n\nTo avoid effects of concurrent method entrypoints update,\njust pass the logger to the JIT compiler, which will invoke\nit directly with the pointer to the newly allocated code.\n\nTest: test.py --trace\nChange-Id: I5fbcd7cbc948b7d46c98c1545d6e530fb1190602\n"
    },
    {
      "commit": "cf96bedc850e99f7dfeb4fc134603701c146f738",
      "tree": "9cb3decf0dca2a07e49ad9bb270a3c0f30030706",
      "parents": [
        "740c3008171fe69432db8bfe4b9c837ac24b85c0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 30 10:26:24 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 30 10:26:24 2017 +0100"
      },
      "message": "Fix unintended change in JIT inlining heuristics.\n\nHappened after: https://android-review.googlesource.com/#/c/426519/\nSeen on go/lem\n\nTest: test.py\nChange-Id: I6907e4259b98e0b9db0c624fd0bee6adc00fc7ee\n"
    },
    {
      "commit": "57c47043f3ee4233f31bad921ea91a5c411f1dad",
      "tree": "519b6ac795d4cf96072be1dc9c40764788adca90",
      "parents": [
        "80e7e474e97e831bdbd26710c892bb8365357a86"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 29 11:31:39 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 29 11:48:55 2017 +0100"
      },
      "message": "Code cleanup around compiler options and JIT.\n\nNow support passing --verbose-methods and --dump-cfg.\n\nTest: test.py\nTest: ./out/host/linux-x86/bin/art -Xcompiler-option --dump-cfg\u003dfoo.cfg -Xcompiler-option --verbose-methods\u003drun -Xcompiler-option --compiler-filter\u003dquicken -Xusejit:true -cp benchmarks.dex benchmarks.DeltaBlue.java.DeltaBlue\nChange-Id: I75ffed146ffff43ef70f3e9e80a160751e08cb04\n"
    },
    {
      "commit": "23ddfe86788fe1c95b8be6c76f3a127f8f51dd9f",
      "tree": "e1070a3eeb7ba8f489339415324f98417b7eb94c",
      "parents": [
        "0a87f31513e5f9da27856af054d2241452898b22"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 07 14:09:43 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 07 14:11:57 2017 +0100"
      },
      "message": "Don\u0027t call EnsureInitialized in the JIT.\n\nCalling EnsureInitialized can block due to locking on the class\nobject, that an application can also do.\n\nJust rely that the compilation request is for a reason.\n\nThe compiler aleady knows how to compile methods of classes that\nare not initialized.\n\nbug: 62243120\nTest: test.py --jit\nChange-Id: I6cd6828b4c2179504cf5334921fcb8d46615c77b\n"
    },
    {
      "commit": "2fad527ddf2b8d85df82468932ed724407f46be8",
      "tree": "d2420c1e23ad166d4995946d1c479efee8fc27d9",
      "parents": [
        "d1c22768e77d2c9c06d7dfa36bde24bf5b6ac8a0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 17 12:57:18 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 17 13:28:14 2017 +0100"
      },
      "message": "Ignore --compile-pic option for JIT.\n\nTest: testrunner --host --pictest --jit\nBug: 33192586\nChange-Id: I1e05874752c6a3b448ffbeff9681637a35acda2a\n"
    },
    {
      "commit": "764d454d1d51448deb81f6e8d2d7d317c7f4d1b4",
      "tree": "029f9e65cfe7e953df55b7af45e099924ffdbbac",
      "parents": [
        "7974468d32b817be1d49dfcf513605f646c481bc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 16 10:31:41 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 16 15:08:55 2017 +0100"
      },
      "message": "Remove LoadString/Class kind kBootImageLinkTimeAddress.\n\nWe no longer support non-PIC boot image compilation.\n\nAlso clean up some obsolete code for method patches\nand make JIT correctly report itself as non-PIC.\n\nTest: testrunner.py --host\nTest: testrunner.py --target\nBug: 33192586\nChange-Id: I593289c5c1b0e88b82b86a933038be97bbb15ad2\n"
    },
    {
      "commit": "f6d4668c42933e2f85ddbc94e276c49db4e2b1dd",
      "tree": "3343addb8cde45eb4070d4876f26bef1002248dc",
      "parents": [
        "0bbb750f6ff9a52bc4649995fc78ebea87e31dd1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 28 17:41:45 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 14:02:54 2017 +0000"
      },
      "message": "Improvements in the Inliner.\n\n- Change from a depth limit to a total number of HInstructions\n  inlined limit. Remove the dex2oat depth limit argument.\n- Add more stats to diagnose reasons for not inlining.\n- Clean up logging to easily parse output.\n\nIndividual Ritz benchmarks improve from 3 to 10%.\n\nNo change in other heuristics. There was already an instruction budget.\nNote that the instruction budget is rarely hit in the \"apps\" I\u0027ve tried\nwith.\n\nCompile-times improve from 5 to 15%.\nCode size go from 4% increase (Gms) to 1% decrease (Docs).\n\nbug:35724239\ntest: test-art-host test-art-target\n\nChange-Id: I5a35c4bd826cf21fead77859709553c5b57608d6\n"
    },
    {
      "commit": "c52f3034b06c03632e937aff07d46c2bdcadfef5",
      "tree": "031e4d1b2ca0961014e57e4987d80d7aa2c435b0",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Mar 02 13:45:45 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 08 10:55:17 2017 +0000"
      },
      "message": "Remove --include-patch-information option from dex2oat.\n\nBecause we no longer support running patchoat on npic oat files, which\nmeans the included patch information is unused .\n\nBug: 33192586\nTest: m test-art-host\n\nChange-Id: I9e100c4e47dc24d91cd74226c84025e961d30f67\n"
    },
    {
      "commit": "caebca9d2a00059c11ecc5f055c25eacf0630392",
      "tree": "d1fe14be9a2697bee04f08eb2880dc902cb57f26",
      "parents": [
        "cfc5f770f83a30f6b56ed7c7cb1f2bf0b43a1eb5",
        "5900149256919538efb2edf4ffc0403d4ddd8446"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 02 08:59:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 08:59:09 2017 +0000"
      },
      "message": "Merge \"Fix perf-inject jit profiling for osr method.\""
    },
    {
      "commit": "433b79a9130df5f2375b9d3d7518c1f3fb84a467",
      "tree": "dddc053886464b99be29b9ca69039d74d49605ca",
      "parents": [
        "81356645157af44152c7b7db383596b5cf3479b5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 20:54:45 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 20:54:45 2017 +0000"
      },
      "message": "Revert \"Revert \"Make --debuggable rely on JIT code.\"\"\n\nFixed by https://android-review.googlesource.com/#/c/330165/\n\nThis reverts commit 81356645157af44152c7b7db383596b5cf3479b5.\n\nChange-Id: Ifb74e1cc90ab6dea621f7f54a00b540d6ccd0cf6\n"
    },
    {
      "commit": "81356645157af44152c7b7db383596b5cf3479b5",
      "tree": "59aca3792abfa47c7424e4dac13248651e4662b2",
      "parents": [
        "a0619e25aacf8b8074132f4951f75fdbcfd42925"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 20:18:02 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 20:19:28 2017 +0000"
      },
      "message": "Revert \"Make --debuggable rely on JIT code.\"\n\nBreaks 137-cfi with ART_TEST_RUN_TEST_DEBUGGABLE\u003dtrue\n\nThis reverts commit a0619e25aacf8b8074132f4951f75fdbcfd42925.\n\nbug: 28769520\nChange-Id: Ifd7b8fc7c9b72c0a523fd57c4b1b80edd3547caa\n"
    },
    {
      "commit": "a0619e25aacf8b8074132f4951f75fdbcfd42925",
      "tree": "dddc053886464b99be29b9ca69039d74d49605ca",
      "parents": [
        "ca21dc47adeed92a15a9d3fd090bdd0e6654679c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 13:57:43 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 12:41:52 2017 +0000"
      },
      "message": "Make --debuggable rely on JIT code.\n\nRemoves -Xfully-deoptable in the process, which was added as a\ntemporary workaround until this CL.\nPartial revert of https://android-review.googlesource.com/#/c/302232/\n\nMakes things consistent with existing infrastructure:\n\n- Parse the --debuggable from the compiler options, just like\n  --compiler-filter.\n\n- Add DEBUG_JAVA_DEBUGGABLE, passed by the zygote, for debuggable apps.\n\n- Java debuggable now solely relies on JIT for simplicity.\n\n- Debugging under userdebug for non-java-debuggable apps is still\n  best effort.\n\nTest: test-art-host, jdwp\n\nbug: 28769520\nChange-Id: Id0593aacd85b9780da97f20914a50943957c858f\n"
    },
    {
      "commit": "5900149256919538efb2edf4ffc0403d4ddd8446",
      "tree": "970cd502a2affd225acad0bb0401cd2bb83dadc0",
      "parents": [
        "f62455a422baf040d901db964bdd3c6e18185c13"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Jan 11 10:36:41 2017 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Jan 11 16:26:38 2017 +0000"
      },
      "message": "Fix perf-inject jit profiling for osr method.\n\nWhen OSR jit compilation is triggered, the jit compiler should log osr compiled\nmethod address for perf.\n\nTest: Compile.\nTest: Verified perf-PID.map and jit-PID.dump files generated by ART JIT with -g option.\n\nChange-Id: I66ca62c65ee84067aeaf551be05911def78f9aaf\n"
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\n"
    },
    {
      "commit": "e58659aa139a6139f28e5db69391c718234e8cfd",
      "tree": "9f93c85f7164515f4283a3afdc3a8624837a32f7",
      "parents": [
        "62a88ac2ff3649d56a511d171ab0283152a8ff88",
        "383b57d985adadc4cbccb4a62a0ef6afd243e511"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 10:34:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 10:34:11 2016 +0000"
      },
      "message": "Merge \"ART jitted code profiling support.\""
    },
    {
      "commit": "383b57d985adadc4cbccb4a62a0ef6afd243e511",
      "tree": "7d806c8b531b8e9f91c2d52b06ccbf16e10ac04e",
      "parents": [
        "2f2533f686f759ccd29d2712da2c7610382fb59f"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Oct 04 11:19:17 2016 +0100"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Oct 27 11:09:18 2016 +0100"
      },
      "message": "ART jitted code profiling support.\n\n- Generate perf map for method level profiling.\n- Generate jit dump for instruction level profiling.\n\nCommand line example of perf map approach:\n$ perf record dalvikvm -Xcompiler-option -g -cp \u003cclasspath\u003e MyClass\n$ perf report\n\nCommand line example of perf jit dump approach:\n$ perf record -k mono dalvikvm -Xcompiler-option -g -cp \u003cclasspath\u003e MyClass\n$ perf inject -i perf.data -o perf.data.jitted\n$ perf report -i perf.data.jitted\n$ perf annotate -i perf.data.jitted\nNOTE: 4.1 or newer kernel is needed for this jit dump analysis.\n\nTest: Compile.\nTest: Verified that perf-PID.map and jit-PID.dump files are only generated\n      when running ART JIT with -g option. Tested on aosp_angler-userdebug\n      and hikey-userdebug devices. The file formats are correct.\n\nChange-Id: I1bd3ce280f953811d3dfcc27dc8e59b3e1f481aa\n"
    },
    {
      "commit": "0415b4e2169272f94f4aba9f3d56ec8105831f8b",
      "tree": "7caf8fce823d3b3ebe00cca06ce3f874786cae55",
      "parents": [
        "75dccb7238714358fca9e5e993e4daabe24af085"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 06 15:17:07 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 26 08:44:55 2016 -0700"
      },
      "message": "ART: Change InstructionSetFeatures to return unique_ptr\n\nThis makes clear the ownership of the object.\n\nTest: m test-art-host\nChange-Id: I55fa734f04bc3046d370f4dcf98ce6b17c59e234\n"
    },
    {
      "commit": "709b070044354d9f47641f273edacaeeb0240ab7",
      "tree": "3a8ac051d7c35076303984d0d892cdd396b60427",
      "parents": [
        "1a4de6a2453a3ad0310aca1a44e7e2d3b6f53bc1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 13 09:12:37 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 18 14:10:04 2016 -0700"
      },
      "message": "Remove mirror:: and ArtMethod deps in utils.{h,cc}\n\nThe latest chapter in the ongoing saga of attempting to dump a DEX\nfile without having to start a whole runtime instance.  This episode\nfinds us removing references to ArtMethod/ArtField/mirror.\n\nOne aspect of this change that I would like to call out specfically\nis that the utils versions of the \"Pretty*\" functions all were written\nto accept nullptr as an argument.  I have split these functions up as\nfollows:\n1) an instance method, such as PrettyClass that obviously requires\nthis !\u003d nullptr.\n2) a static method, that behaves the same way as the util method, but\ncalls the instance method if p !\u003d nullptr.\nThis requires using a full class qualifier for the static methods,\nwhich isn\u0027t exactly beautiful.  I have tried to remove as many cases\nas possible where it was clear p !\u003d nullptr.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I21adee3614aa697aa580cd1b86b72d9206e1cb24\n"
    },
    {
      "commit": "aad75c6d5bfab2dc8e30fc99fafe8cd2dc8b74d8",
      "tree": "c1b9e1eabcf35c5cbb5b4f46313a4e062f2d5d51",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 03 08:46:48 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 17:51:46 2016 +0100"
      },
      "message": "Revert \"Revert \"Store resolved Strings for AOT code in .bss.\"\"\n\nFixed oat_test to keep dex files alive. Fixed mips build.\nRewritten the .bss GC root visiting and added write barrier\nto the artResolveStringFromCode().\n\nTest: build aosp_mips-eng\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-target-host-gtest-oat_test\nTest: Run ART test suite on host and Nexus 9.\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 5f926055cb88089d8ca27243f35a9dfd89d981f0.\n\nChange-Id: I07fa2278d82b8eb64964c9a4b66cb93726ccda6b\n"
    },
    {
      "commit": "5f926055cb88089d8ca27243f35a9dfd89d981f0",
      "tree": "8d87d400e36301eb648e19bcd225f13c469648ad",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 17:04:49 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 18:08:09 2016 +0100"
      },
      "message": "Revert \"Store resolved Strings for AOT code in .bss.\"\n\nThere are some issues with oat_test64 on host and aosp_mips-eng.\n\nAlso reverts \"compiler_driver: Fix build.\"\n\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41.\nThis reverts commit 04a44135ace10123f059373691594ae0f270a8a4.\n\nChange-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4\n"
    },
    {
      "commit": "428792553e59452d0b6fdbf2460072d697c966db",
      "tree": "c4d3c14944e772cd98f2fd76e4f41c2fbc3f6acf",
      "parents": [
        "ce157a6864bd346152bef1b66d050cfb144f56b5",
        "63dccbbefef3014c99c22748d18befcc7bcb3b41"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "message": "Merge \"Store resolved Strings for AOT code in .bss.\""
    },
    {
      "commit": "762869dee6e0eadab5be1c606792d6693bbabf4e",
      "tree": "8c986c621e8a5f3cf4e4e3b2cc13b400401ad89b",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 15 15:28:35 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 10:44:31 2016 +0100"
      },
      "message": "Simplify our intrinsic recognizer.\n\n- Use the modifiers for storing the intrinsic kind.\n- Delete dex_file_method_inliner and its associated map.\n\nThis work was also motivated by the fact that the inline\nmethod analyzer leaks intrinsic tables, and even worse, might re-use\na table from one dex file to another unrelated dex file in the presence\nof class unloading and the unlikely event of the dex files getting\nthe same address.\n\ntest: m test-art-host m test-art-target\n\nChange-Id: Ia653d2c72df13889dc85dd8c84997582c034ea4b\n"
    },
    {
      "commit": "63dccbbefef3014c99c22748d18befcc7bcb3b41",
      "tree": "60a498041bebff43bc1f43d438e3bc34a30887f7",
      "parents": [
        "6bee25976782a063d6b44f7718a6302761bf6403"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 21 13:51:10 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 29 15:58:43 2016 +0100"
      },
      "message": "Store resolved Strings for AOT code in .bss.\n\nAnd do some related refactorings.\n\nBug: 20323084\nBug: 30627598\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Run ART test suite including gcstress with baker CC on host and Nexus 9.\nTest: Build aosp_mips64-eng.\nChange-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "5319d3cca5a9b8e9e3f59421818272b966575172",
      "tree": "a90bd83b7e69bbff0be601088bb1c764125d8cf6",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 01 17:48:59 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 08 11:24:26 2016 -0700"
      },
      "message": "Implement running user defined list of passes\n\nThis change introduces new dex2oat switch --run-passes\u003d. This switch\naccepts path to a text file with names of passes to run.\nCompiler will run optimization passes specified in the file rather\nthen the default ones.\n\nThere is no verification implemented on the compiler side. It is user\u0027s\nresponsibility to provide a list of passes that leads to successful\ngeneration of correct code. Care should be taken to prepare a list\nthat satisfies all dependencies between optimizations.\n\nWe only take control of the optional optimizations. Codegen (builder),\nand all passes required for register allocation will run unaffected\nby this mechanism.\n\nChange-Id: Ic3694e53515fefcc5ce6f28d9371776b5afcbb4f\n"
    },
    {
      "commit": "2cd05b7d9976c0c7fa74d58cb1608c809e5c37d3",
      "tree": "5cb7751e491aeae7357ed357f2a52702bf16854a",
      "parents": [
        "11a59a48474caa818ddf344575aa6afc51f45590"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Wed Aug 03 16:57:37 2016 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Sat Aug 06 01:21:14 2016 +0000"
      },
      "message": "Add a register allocation strategy compiler option\n\nTest: manually, on device.\n\nChange-Id: If007a1657dd5769ddef03691e0a19dbbe6ba1a29\n"
    },
    {
      "commit": "f4b3487ee77e3c2e3d5372ae9e857cd3429bb808",
      "tree": "b48ab16dec4e8d1deab6556788f9a5fe2b62f77a",
      "parents": [
        "a6513729ae2ad0d2f9dd21d77ea6cf9ed9fa6eef"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Apr 13 11:03:46 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 03 12:22:39 2016 -0700"
      },
      "message": "Remove -XOatFileManagerCompilerFilter argument.\n\nInstead use the value of \u0027-Xcompiler-option --compiler-filter\u003dXXX\u0027 for\nthe target compiler filter to use to determine if the runtime should\ntry to invoke dex2oat when oat files are loaded.\n\nBug: 27641809\nChange-Id: I1856e0e37df91835b81105567c70d8a285a88f62\n"
    },
    {
      "commit": "91288d8f03b9aab28b61a4a76e552ad7e0c15c8b",
      "tree": "f4d7265c8e96375905da749f858672b37580e596",
      "parents": [
        "d23d7d145c86975acbcc75505b8a323337066ac0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 09:44:54 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 15:18:24 2016 -0700"
      },
      "message": "Revert \"Revert \"Write conflict tables in image\"\"\n\nAdded test.\n\nBug: 27906566\n\nThis reverts commit 8e2478d23e89a7022c93ddc608dcbba7b29b91e6.\n\n(cherry picked from commit cdca476bf3394ce9d97a369e84e701b427009318)\n\nChange-Id: Ia94fc7acc7ae3879921c4e8d0a02b156037ac286\n"
    },
    {
      "commit": "bb661c0f0cb72d4bbfc2e251f6ded6949a713292",
      "tree": "4fe7e66f3385b1955934d3ec6f02e00bde6e13b8",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Mon Apr 04 16:27:32 2016 +0100"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Fri Apr 22 13:33:30 2016 +0100"
      },
      "message": "Refactor use of __ANDROID__ macro\n\nWe use the __ANDROID__ macro, which is provided by the toolchain, in\nnumerous places. This patch refactors the usage of this by defining a\nnew macro, ART_TARGET_ANDROID, that is being passed during build to\nART_TARGET_CFLAGS in Android.common_build.mk on the same line as\nART_TARGET. The codebase currently assumes that the existence of the\n__ANDROID__ macro implies that we are compiling art for an android\ntarget device. This is because, currently, target builds are compiled\nwith target toolchains that provide the macro, while host toolchains\ndo not.  With this change this assumption is still preserved. However,\nin a future patch we will add the ability to compile art for a linux\ntarget, and in that case the ART_TARGET_ANDROID macro won\u0027t be passed\nanymore.\n\nChange-Id:  I1f3a811aa735c87087d812da27fc6b08f01bad51\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": "e87fe952e94ae97ebdf84e342d91eeb8b9aef06b",
      "tree": "69e14ce007f842ca72fe7e07164ca2374ec5cf6a",
      "parents": [
        "93e46b2a14050d8f65088ccb44d6fab6c1c46b2c",
        "b6e20ae17d0881a66c22532e4152ce6779454a92"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 10 10:47:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 10 10:47:57 2016 +0000"
      },
      "message": "Merge \"Clear inline caches at each full GC.\""
    },
    {
      "commit": "b6e20ae17d0881a66c22532e4152ce6779454a92",
      "tree": "35d7fbfb812aef11ea51010794dce26eb91c1ae4",
      "parents": [
        "8a8c84114b16b8971bc2d3c5c7e0e31470d1a68b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 07 14:29:04 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 09 17:25:19 2016 +0000"
      },
      "message": "Clear inline caches at each full GC.\n\nThis fixes occasional failures of 141-class-unload.\n\nAlso fix a bug where clearing inline caches also cleared the dex\npc associated with it.\n\nbug:26846185\nbug:23128949\nChange-Id: I77bf1dee229d7764c3cc21440829c7fba7b37001\n"
    },
    {
      "commit": "5d8112029d0e085c5a0099257daa4c7e29c12310",
      "tree": "b98a1b83095ebd34feb3140e6910ec7e830bce0a",
      "parents": [
        "8a8c84114b16b8971bc2d3c5c7e0e31470d1a68b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 13:21:22 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 13:46:37 2016 +0000"
      },
      "message": "Propagate InstructionSetFeatures to ElfBuilder.\n\nThis is subset of CL171665 and it separates it into two.\nIt will be needed to generate .MIPS.abiflags ELF section.\n\nChange-Id: I5557e7cb98d0fa1dc57c85cf6161e119c6d50a1a\n"
    },
    {
      "commit": "bcd94c8ea9bde4e075c25fbdfb3a2ef6858eed7b",
      "tree": "2719f29261e1fced1c94ef309e12230ef103a79e",
      "parents": [
        "e283588e56df7eebabd795b98264003105b20ece"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 03 13:23:33 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 03 14:02:16 2016 +0000"
      },
      "message": "Refine statistics around the JIT.\n\n- Better namings.\n- Now also time the code cache collection time.\n- Random cleanups.\n\nbug:23128949\nbug:27445008\nbug:27442890\n\nChange-Id: I1dd52544bea678af868e7c47907f7a0fc9a146c3\n"
    },
    {
      "commit": "25e0456b6ea13eba290b63ea88b6b7120ed89413",
      "tree": "212c7433997a9e498ce68136ab511ae366e983e9",
      "parents": [
        "47bce25b3eaf5c0e1d46f0555eaf4676f958a7a7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 01 13:17:58 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 01 13:17:58 2016 +0000"
      },
      "message": "Give the JIT its own arena pool to avoid lock contentions.\n\nSharing it with the verifier and the class loader is not ideal,\nespecially at startup time.\n\nbug:27398183\nbug:23128949\nChange-Id: I1b91663a13f6c5b33ad3b4be780d93eb7fe445b4\n"
    },
    {
      "commit": "bf63303f8a98c88fb8f0a726ab9431660f26df5a",
      "tree": "c31615ac4c02b2f9a0b56cf843d211729e3846fb",
      "parents": [
        "9baccdc75ee01dd96ac4e57e17965635f96def27",
        "944da603cde59a4277f3bbc31d860a90842a1a2a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 24 11:52:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 24 11:52:14 2016 +0000"
      },
      "message": "Merge \"ART: Allow method references across oat files for multi-image, 2nd attempt.\""
    },
    {
      "commit": "944da603cde59a4277f3bbc31d860a90842a1a2a",
      "tree": "733bc38a905822097a6a601a1de20b49f54440d3",
      "parents": [
        "52d9c2f0c584877e9c7f9e859d8068b3a2ccb12f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 19 12:27:55 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 24 11:19:23 2016 +0000"
      },
      "message": "ART: Allow method references across oat files for multi-image, 2nd attempt.\n\nThese were disabled because we didn\u0027t have sufficient\ninformation about the multi-image layout when processing\nlink-time patches in OatWriter. This CL refactors the\nELF file creation so that the information is available.\n\nAlso clean up ImageWriter to use oat file indexes instead\nof filenames and avoid reopening the oat file to retrieve\nthe checksum.\n\nChange-Id: Icc7b528deca29da1e473c8f079521a36d6c4892f\n"
    },
    {
      "commit": "5b82d339955d1a0dc23eeb8d2d5659459ff987ba",
      "tree": "79540d831ec7ac82f5520dc6bc53ac8c39f47972",
      "parents": [
        "d9c05309e8fab26a6087abd5773859f112cdefe9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 14:22:32 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 14:33:13 2016 +0000"
      },
      "message": "The JIT does not need VerifedMethod nor CompilerCallbacks.\n\nbug:27173201\n\nChange-Id: I971659f9ff6a8b780c94a7bed84de90fa9fc3456\n"
    },
    {
      "commit": "45724f9a0cc38dbb3071beb3eeab96499868b49c",
      "tree": "ecbe2d8109125de2031af7ac4e0f4fc03a3b6d12",
      "parents": [
        "6065402316da2b51eed5fc34cffbd991766bd408"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 17:46:10 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 17:46:10 2016 +0000"
      },
      "message": "Revert \"Allow method references across oat files for multi-image.\"\n\nBreaks Quick tests.\n\nThis reverts commit 6065402316da2b51eed5fc34cffbd991766bd408.\n\nChange-Id: I8a5469ba7cea5f46b85cb489b3e0ef06ed548f03\n"
    },
    {
      "commit": "6065402316da2b51eed5fc34cffbd991766bd408",
      "tree": "cb93e32b978ea03a70baf980c470a03263c084c0",
      "parents": [
        "442643920a6c539e98aad76594e99b932b5631ba"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 16 12:50:23 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 16:38:46 2016 +0000"
      },
      "message": "Allow method references across oat files for multi-image.\n\nThese were disabled because we didn\u0027t have sufficient\ninformation about the multi-image layout when processing\nlink-time patches in OatWriter. This CL refactors the\nELF file creation so that the information is available.\n\nChange-Id: I6f2e8dc8572d143c72cc2693bb0ba4fd76f889ab\n"
    },
    {
      "commit": "d9994f069dfeaa32ba929ca78816b5b83e2a4134",
      "tree": "a826990f89d8f546921902933a4cc05b57196971",
      "parents": [
        "be89a6f1d9e41b154be3fe1da97cedb6964fbd35"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 11 17:35:55 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 11 21:47:46 2016 +0000"
      },
      "message": "Re-enable OSR.\n\nFixes two bugs:\n- Dealing with proxy methods, which the compiler and code cache\n  does not handle.\n- Dealing with phi types, that may have been speculatively optimized\n  but do not hold once jumping to the compiled code.\n\nChange-Id: I7dcd9976ef7b12128fff95d2b7ed3e69cc42e90a\n"
    },
    {
      "commit": "c5bfa97c47d656b76f297af8abcd5f7502987399",
      "tree": "84da9d0f39096d8b857760a0848c0231aff0ed6d",
      "parents": [
        "a0f2bc5b09cdaf8a8ff5cec3c40a9f18885e8796"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 15:49:10 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 12:47:07 2016 +0000"
      },
      "message": "Split elf_writer_debug.cc to several files.\n\nRefactoring only. The file has grown significantly over time,\nand it is time to split it so it can be better managed.\n\nChange-Id: Idce0231718add722292f4701df353d5baf31de5f\n"
    },
    {
      "commit": "a0f2bc5b09cdaf8a8ff5cec3c40a9f18885e8796",
      "tree": "f7be0f7f42b3a79eef3f1f97f39ad73f5b269b72",
      "parents": [
        "e003beb849386236c1fe6e5edea6aaf5f58b7919",
        "4fda4eb799c95be266f52aaf3461a440ea86b841"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 12:46:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 08 12:46:10 2016 +0000"
      },
      "message": "Merge \"Move code related to debug info generation to its own directory.\""
    },
    {
      "commit": "4fda4eb799c95be266f52aaf3461a440ea86b841",
      "tree": "54a7e56b5633caf2b868f6028010b488eb1923ce",
      "parents": [
        "3c258f4d7a6492af733a9351ba430d876a3e5ccf"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 13:34:46 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 11:33:50 2016 +0000"
      },
      "message": "Move code related to debug info generation to its own directory.\n\ndebug/dwarf/ contains helper classes which hide the details\nof the DWARF file format. It acts as independent DWARF library.\n\ndebug/ contains ART-specific code which generates ELF debug\nsections (which includes non-DWARF sections like .symtab).\n\nChange-Id: Id351f604e4e64be2ca395a78324ea02e30481497\n"
    },
    {
      "commit": "b331febbab8e916680faba722cc84b66b84218a3",
      "tree": "35f985b021e476914bfe91492da23fee218014a7",
      "parents": [
        "586996afc905518ed926e4680aab67bedabec9b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 16:51:53 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 17:11:54 2016 +0000"
      },
      "message": "Revert \"Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\"\n\nThis reverts commit bd89a5c556324062b7d841843b039392e84cfaf4.\n\nChange-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44\n"
    },
    {
      "commit": "5faf22c1d4eb5d711f792b73d3e5773d67160c8f",
      "tree": "5e64d132ab1a03ca4d291138aa0ac1aaa360d9a9",
      "parents": [
        "8bfdf83aa73a19233f62b7a8d4761e84b1713db4",
        "f0615a3a8ca649a562e67219ab8b9c6a023f4928"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Thu Jan 28 12:06:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 12:06:37 2016 +0000"
      },
      "message": "Merge \"Don\u0027t crash if the perf map creation failed\""
    },
    {
      "commit": "f0615a3a8ca649a562e67219ab8b9c6a023f4928",
      "tree": "1df47e018c474c1d8041ee906d9d479f26a84987",
      "parents": [
        "c3a02d2e9a12d1cd085c91cc6c876ae44daee805"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Jan 27 16:15:56 2016 +0000"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Thu Jan 28 12:02:48 2016 +0000"
      },
      "message": "Don\u0027t crash if the perf map creation failed\n\nThe perf map file is used in the jit compiler to emit the symbol name\nfor the start address of each jitted function. The file is stored in\n/data/misc/trace (previously /data) what is only accessible on\nuserdebug builds. This change modifies the code to work on user builds\nwith not using the perf map file if we failed to create it.\n\nChange-Id: Icfecd4bdab94ffc528ec218f3ac2b872fbdacf37\n"
    },
    {
      "commit": "ace0dc1dd5480ad458e622085e51583653853fb9",
      "tree": "de095794b5c92933ad667bff353045458bb1c633",
      "parents": [
        "8feb2cc26420f31e1805e57acddbb4ae303a2994"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 20 13:33:13 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 27 15:39:30 2016 -0800"
      },
      "message": "ART: Add option to ensure deterministic compilation\n\nTo ensure reliable stable generation of a boot image, add a flag\nfor forced determinism, trading compile time for a deterministic\noutput.\n\nWe have to run certain passes in the compiler-driver single-threaded.\nIt is also necessary to try to make the heap layout deterministic.\nSwitch to nonconcurrent GC, use the free-list implementation for LOS,\nand try to allocate the main space at a known location. This is best\neffort at the moment.\n\nTo allow the compiler phase to be parallelized, const-strings need\nto be created beforehand.\n\nThe identity hashcode seed needs to be pinned.\n\nBesides the Dex object we also need to null the DexFile pointer in\ndex caches.\n\nFor classes, we need to remove the clinit thread ID.\n\nFix oatdump alignment padding accounting.\n\nBug: 26687569\nChange-Id: Ia82120e8f715bb3691d861817b12778ac677355a\n"
    },
    {
      "commit": "7d6872a2471a20a10fc99b02459db89a5fc2dc1d",
      "tree": "400e5cbd9dcb8512155f4c52af0dbaf24b899767",
      "parents": [
        "0e78aedf507512abcb730851025547645cd48c9c",
        "c903b6af634927479915eaa9516d493eea23f911"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 14:50:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 18 14:50:28 2016 +0000"
      },
      "message": "Merge \"Move --dump-cfg and dump-cfg-append to CompilerOptions.\""
    },
    {
      "commit": "fffbee4d158259633ec7b7f712eaf75be86bd4e5",
      "tree": "05b9ae8b23be722cf8c2a6a979cc3706437ecf71",
      "parents": [
        "55380bbe098bace4375d77a2b77d05ef88dfe6f6"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Fri Jan 15 13:09:34 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 18 14:35:14 2016 +0000"
      },
      "message": "Report types loaded during init to the native debugger\n\nThe runtime loads a lot of type before it creates the jit from the\nboot image and from hard coded source code (e.g. primitive arrays).\nThis change emits type information for these types after the jit has\nbeen created. At the same time we remove the type info generation\nthat happens during AOT compilation because that type information can\nbe modified by a class loader at runtime.\n\nChange-Id: Ie5b3b3df9d01c7200a1f670a98d9cbee796234e9\n"
    },
    {
      "commit": "160e6df5debaf77223eebddb8a4e3f7c5e729ad0",
      "tree": "b28c9f1402e7c47383af28181d3614c2bf5012ef",
      "parents": [
        "8422edd7af342a955f17639ab827cf062ef8965e"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Tue Jan 05 14:29:02 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 18 14:03:05 2016 +0000"
      },
      "message": "Report loaded classes to native debugger.\n\nChange-Id: Iee902a9ed8fa7545ba3e6afc32f285aa350a5383\n"
    },
    {
      "commit": "c903b6af634927479915eaa9516d493eea23f911",
      "tree": "d14d0e2f323516ffac38baba7be4dce320fd772b",
      "parents": [
        "b8bb9f6d0b59be125066f604f134155f8998f5ae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 12:56:06 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 12:56:06 2016 +0000"
      },
      "message": "Move --dump-cfg and dump-cfg-append to CompilerOptions.\n\nIt simplifies passing the option to the JIT.\n\nChange-Id: Iee1b722362899e5809ef97be90961e3dda1e16cc\n"
    },
    {
      "commit": "a25dce9b452ba17ef7cef768926c884177a3025e",
      "tree": "0da78b818c256f636badf2f1a97e8f1a8b661be9",
      "parents": [
        "fbd9dfcf4ffc32f0bda831aa898c7ea5dbf8ed9a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 12 16:41:10 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 13 15:40:55 2016 +0000"
      },
      "message": "Support --perf with jitted code.\n\nChange-Id: I76f29d815234e9506efc59d4865780e52b2381a1\n"
    },
    {
      "commit": "998c21661b5074c293cae818d0ab7c44dcda3a66",
      "tree": "c9abd63c18abc18f9d9206ca8c22c318523d0544",
      "parents": [
        "5e2b971e468ca73a8e10a120730b3b6f17fad408"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 21 15:39:33 2015 +0200"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 07 16:23:18 2016 +0000"
      },
      "message": "Perform profile file analysis in dex2oat\n\nDex2oat can accept now multiple profile files to drive a profile based\ncompilation. --profile-file and --reference-profile-file speficy a pair\nof profile files which will be evaluated for significant differences\nbefore starting the compilation. If the difference is insignificant\n(according to some internal metric) the compilation is skipped and a\nmessage is logged.\n\nMultiple pairs of --profile-file and --reference-profile-file can be\nspecified. This effectively enables multi user support since profiles\nfor different users will be kept separately.\n\n--reference-profile-file can be left out, case in which the decision is\nsolely based on --profile-file. If both flags are present, then their\nrepetition should form unique pairs.\n\nIf the compilation is performed and --reference-profile-file is given\nthen its data is merged with the data from the corresponding --profile-\nfile and saved back to the file.\n\nIf no profile flags are given, dex2oat proceeds as before and compiles\nthe dex files unconditionally.\n\nAs part of this change\n- merge ProfileCompilationInfo and OfflineProfilingInfo under the same\nobject. There was no use to keep them separate anymore.\n- SaveProfilingInfo now merges the data with what was in\nthe file before instead of overwriting it.\n\nBug: 26080105\n\nChange-Id: Ia8c8b55587d468bca5179f78941854285426234d\n"
    },
    {
      "commit": "dcdc85bbd569f0ee66c331b4219c19304a616214",
      "tree": "b5ab789248e279318f6c1e3f6c511703d7294476",
      "parents": [
        "48944c760b196188b968b7af81439466cf987a75"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 04 14:06:18 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 23 21:14:23 2015 -0800"
      },
      "message": "Dex2oat support for multiple oat file and image file outputs.\n\nMultiple changes to dex2oat and the runtime to support a --multi-image\noption. This generates a separate oat file and image file output for\neach dex file input.\n\nChange-Id: Ie1d6f0b8afa8aed5790065b8c2eb177990c60129\n"
    },
    {
      "commit": "73be1e8f8609708f6624bb297c9628de44fd8b6f",
      "tree": "47a22745797a345dea8dd846aad00334da0d5bf1",
      "parents": [
        "47229aa5848df7d45578dbdd9285f57dfa9399a8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 15:22:56 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 04 12:08:02 2015 +0000"
      },
      "message": "Inline monomorphic calls.\n\nChange-Id: If38171c2dc7d4a4378df5d050afc4fff4499c98f\n"
    },
    {
      "commit": "a5891e81a2fb833307cf7c7e7267070dc0223dc8",
      "tree": "a7acb2a0f2836fee2729db2b795d15bb3f586863",
      "parents": [
        "2fa684206b0a8bd203d07e1edf74a839b498f74f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 06 14:18:27 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 06 16:05:42 2015 +0000"
      },
      "message": "Fix interaction between JIT and instrumentation.\n\n- The JIT needs to go through the instrumentation to update\n  entry points.\n- The instrumention needs to know if a method got JITted\n  to know if needs to deoptimize.\n\nbug:25438583\n\nChange-Id: I4b186a1da9f4a3fb329efd052a774d5502a902a1\n"
    },
    {
      "commit": "d28b969c273ab777ca9b147b87fcef671b4f695f",
      "tree": "ca66ecfd809afdcd31443bbe50bf38a836302cc5",
      "parents": [
        "6bf6e438cd4746effce0b26d504c54100191c988"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 04 14:36:55 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 10:37:48 2015 +0000"
      },
      "message": "Code cleanup to avoid CompilerDriver abstractions in JIT.\n\nAvoids allocating a CompiledMethod.\n\nChange-Id: I35b4aa0d7c74daba68e827a01e71c300fce3b3bf\n"
    },
    {
      "commit": "22cf3d361695ff1d585a8a412ebeade69749811f",
      "tree": "bff30bc41f6f85d0758934a9eeeb3511c2a0fc44",
      "parents": [
        "43c6d31c43c05d97511bb9658964fd3d2f32b915"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 11:57:11 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 15:21:41 2015 +0000"
      },
      "message": "Fix tests flakiness with jit when using Proxy classes.\n\nWe cannot copy the entry point between ArtMethod when\nthe entry point has been JITted. We put the interpreter\nbridge instead.\n\nbug:25334878\n\nChange-Id: I65a50cc1f10a5a152733807f8c85fb3ed81c5829\n"
    },
    {
      "commit": "abbb0f76b07417f13f712f54d5afddb72e3b9931",
      "tree": "bb26eeb28b58aed669ad16af30aa35771eb02be4",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 29 18:55:58 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 30 11:17:00 2015 +0000"
      },
      "message": "Refactor code so that JIT can parse compiler options.\n\nCurrently only the CompilerOptions class. We should also\ndo it for the CompilerDriver options.\n\nThis will fix the flakiness seen on jdwp testing, as the\ndebuggable flag was not passed to the compiler.\n\nChange-Id: I4218dd5928c9f4fe2d6191ab11e5598e7cf84bcf\n"
    },
    {
      "commit": "7a16bdbcce562a39a6a7defde5e191ca74327f3b",
      "tree": "08aa651a9b18ccabe11083ceed413b9ed2cd13f5",
      "parents": [
        "1a7b13394775c363d8f8facf748d188d1c225aac",
        "35831e8bfa1c0944d4c978d99c4c5b9577945170"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 16:08:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 27 16:08:44 2015 +0000"
      },
      "message": "Merge \"Reduce memory used by CompiledMethods.\""
    },
    {
      "commit": "35831e8bfa1c0944d4c978d99c4c5b9577945170",
      "tree": "a347ecaf4265a1713c86d528392e162d5edfaebc",
      "parents": [
        "171b12e8060f63cf900ffc43d6db35125f6b8c83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 11 11:59:18 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 15:13:37 2015 +0000"
      },
      "message": "Reduce memory used by CompiledMethods.\n\nUse LengthPrefixedArray\u003c\u003es instead of SwapVector\u003c\u003es to store\nCompiledMethod data and get rid of the unnecessary members\nof CompiledMethod to reduce dex2oat memory usage. Refactor\nthe deduplication from CompilerDriver to a new class.\n\nUse HashSet\u003c\u003e instead of std::set\u003c\u003e for the DedupeSet\u003c\u003e to\nfurther decrease the memory usage and improve performance.\n\nThis reduces the dex2oat memory usage when compiling boot\nimage on Nexus 5 (with Optimizing, -j1) by ~6.75MiB (5%).\nThis also reduces the compile time by ~2.2% (~1.6% dex2oat\ntime; with Optimizing, without -j).\n\nChange-Id: I974f1f5e58350de2bf487a2bca3907fa05fb80ea\n"
    },
    {
      "commit": "1dad3f68b7f5a4a4cb2b281413357adc2309a8fd",
      "tree": "df482d1f65e55a9a228c925e96532942fb25eb47",
      "parents": [
        "fe97bfeabcf99d470e7d974a68ec6b6641648396"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 23 14:59:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 26 19:10:55 2015 +0000"
      },
      "message": "Support garbage collection of JITted code.\n\nChange-Id: I9afc544460ae4fb31149644b6196ac7f5182c784\n"
    },
    {
      "commit": "66e33f1906be899f140d5fe2a657db4e3993106e",
      "tree": "eaef317e550fb4aa0612ba5d7a56ea42bc32f227",
      "parents": [
        "31e913fbea3d669b2067248f2163332940d8ec45",
        "0c3c2668ef44fdbd18d97f9134a85d1a7d561aa4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 10:00:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 21 10:00:34 2015 +0000"
      },
      "message": "Merge \"Use DlMallocSpace for the JIT code cache.\""
    },
    {
      "commit": "0c3c2668ef44fdbd18d97f9134a85d1a7d561aa4",
      "tree": "92e8e49ed1b4d5442f20721858c476ed5769d0ea",
      "parents": [
        "7edef7441d28db1403fbc5641b56a26ecf355879"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 13:53:04 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 10:59:27 2015 +0100"
      },
      "message": "Use DlMallocSpace for the JIT code cache.\n\n- Also tidy up some code in the JIT compiler.\n- And mprotect code space to be writable only when allocating.\n\nChange-Id: I46ea5c029aec489f2af63452de31db3736aebc20\n"
    },
    {
      "commit": "524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02",
      "tree": "ad07cc96f633bdae839ff2f1553d84b9c864a930",
      "parents": [
        "b697c447eb61c2e14315166ec3b0d16375ae403c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 16 17:13:34 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 11:52:11 2015 +0100"
      },
      "message": "Remove ArtCode.\n\n- Instead use OatQuickMethodHeader.\n- Various cleanups now that we don\u0027t have all those\n  ArtMethod -\u003e ArtCode -\u003e OatQuickMethodHeader indirections.\n\nAs a consequence of this cleanup, exception handling got a bit\nfaster.\n\nParserCombinators benchmark (exception intensive) on x64: (lower is better)\nBefore:\nParserCombinators(RunTime): 1062500.0 us.\nAfter:\nParserCombinators(RunTime): 833000.0 us.\n\nChange-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3\n"
    },
    {
      "commit": "085fc87e7ea42989a4a00cacb0c9c3a6d2590af6",
      "tree": "533c41369b9b10bb67c934f6f73e98337dff9edb",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 18:19:01 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 15 19:53:53 2015 -0700"
      },
      "message": "Parse runtime compiler options for JIT\n\nFor the case where the CppDefines do not match the device the JIT is\nrunning on.\n\nSample logcat output to prove it works:\nJIT instruction set variant krait\nJIT instruction set features default\n\nBug: 24982714\n\nChange-Id: I1f4991a5d7cdc6101d1b0ecbcb39fb26dd20180a\n"
    },
    {
      "commit": "87000a948524cba7538ccc5438f6a9ecbd4e347e",
      "tree": "3cf06ec6a939c31540ed5d7028aa0c0838329cc2",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Aug 24 15:34:44 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 15 15:02:18 2015 +0100"
      },
      "message": "Add option to append to the cfg dump.\n\nThis makes life easier when verifying tests with unresolved classes\n(which call dex2oat at rutime).\n\nChange-Id: I7985b2b7c0f343462e03a26b8395297c810b1d95\n"
    },
    {
      "commit": "5eb0d38dabda4d17a315c557f07f457308d28fa7",
      "tree": "16c28cf7d8c1f27ae1daf813b8cfbc29aa0ff193",
      "parents": [
        "46e0f460aa233a4a0ac161bfafde164357fe2b26"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 23 01:19:26 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 05 11:32:52 2015 -0700"
      },
      "message": "ART: Wire up DexToDexCompiler without extern\n\nThe extern declaration actually had the wrong signature, a parameter\nwas missing, and we never noticed.\n\nRemove the function field and extern. Add a header for the compiler.\nUse the header file.\n\nChange-Id: Ia4d4dd86211da6045709a45c7bf8430471d1b62b\n"
    },
    {
      "commit": "ec74835a7e4f2660250a2f3f9508cbbe5269e49a",
      "tree": "4171854ca234b8f76e82baad7263878dd834b720",
      "parents": [
        "8c4113b81eda9b2eab3761583f0d9e678b0e6bdd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 29 13:52:12 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 29 18:29:39 2015 +0100"
      },
      "message": "Allow for fine tuning the inliner.\n\nBug: 21868508\n\nChange-Id: Ice7f1604ed65e3d4ed2a010ee431272b7d000cdb\n"
    },
    {
      "commit": "90443477f9a0061581c420775ce3b7eeae7468bc",
      "tree": "8c74b81dfae162e0fd0ccf8d5ac50827ba815174",
      "parents": [
        "6078aec213dfaf111c29969706e8e5967cfc9bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 16 20:32:27 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 15:13:56 2015 -0700"
      },
      "message": "Move to newer clang annotations\n\nAlso enable -Wthread-safety-negative.\n\nChanges:\nSwitch to capabilities and negative capabilities.\n\nFuture work:\nUse capabilities to implement uninterruptible annotations to work\nwith AssertNoThreadSuspension.\n\nBug: 20072211\n\nChange-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33\n"
    },
    {
      "commit": "7a4d0157eb690266928902a67922f346e290f4c6",
      "tree": "945e8d0cccf009a332f4550017e0ea3f567cc389",
      "parents": [
        "f40002163fed58215df569e89f0a0b9661e16273"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 17:29:39 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 18:46:17 2015 +0100"
      },
      "message": "Change JIT code to use optimizing.\n\nObviously, will fall back to quick for most methods currently,\ndue to lack of -QUICK opcodes support.\n\nChange-Id: I28882fbe805cd907275b6047437d9639a475964a\n"
    },
    {
      "commit": "5783a74163878095475596fabc0b9cb04bec467b",
      "tree": "c6b4bb107841320abbaa1402484df67c3f4a0a3b",
      "parents": [
        "8fa1d6a1371cc452e32808b4e97e81da2310ef60"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 01 19:12:36 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 01 19:55:15 2015 -0700"
      },
      "message": "Add clear cache for JIT\n\nBug: 21572270\n\nChange-Id: I711a9ee2d9688a8e4b59380c401f10f42c6c068e\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "8363c772581bf00ebcdc2e38391b4bfae51beb75",
      "tree": "c66a6da00fac8432293a6328eebee78995b53406",
      "parents": [
        "b4e2fbbed28c3bcdb8fd0fee5a201ba78e1edf28"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 28 16:12:43 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 28 17:50:28 2015 +0100"
      },
      "message": "Add --generate-debug-info flag and remove the other two flags.\n\nReplace the flags --include-debug-symbols and --include-cfi\nwith single flag called --generate-debug-info (with alias -g).\n\nThe name \"symbol\" was not ideal, since depending on context it\nmay be interpreted as \"ELF symbols\", or \"debugging information\".\n\nThis CL also means that we have only the options to include\neither all debugging information or none.  This should be fine,\nsince we can use standard tools to strip anything we do not want.\n\nChange-Id: I721fded56d755d7eed0ef36aa84e841a1f5747f8\n"
    },
    {
      "commit": "80afd02024d20e60b197d3adfbb43cc303cf29e0",
      "tree": "ef054c7b4f2a739f7cf063e0bc4c501c2c7e41b5",
      "parents": [
        "559b178e34c5d92e7932f92e5d8a981ac334606f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 19 18:08:00 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 15:59:02 2015 +0100"
      },
      "message": "ART: Clean up arm64 kNumberOfXRegisters usage.\n\nAvoid undefined behavior for arm64 stemming from 1u \u003c\u003c 32 in\nloops with upper bound kNumberOfXRegisters.\n\nCreate iterators for enumerating bits in an integer either\nfrom high to low or from low to high and use them for\n\u003carch\u003eContext::FillCalleeSaves() on all architectures.\n\nRefactor runtime/utils.{h,cc} by moving all bit-fiddling\nfunctions to runtime/base/bit_utils.{h,cc} (together with\nthe new bit iterators) and all time-related functions to\nruntime/base/time_utils.{h,cc}. Improve test coverage and\nfix some corner cases for the bit-fiddling functions.\n\nBug: 13925192\nChange-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7\n"
    },
    {
      "commit": "3130cdf29eb203be0c38d1107a65d920ec39c106",
      "tree": "0b4093afe3f71d89b22f6ba927ad05946fb33910",
      "parents": [
        "25dcb2594a21a565ef82faa66a79bcf595c3a780"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 03 15:20:23 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 03 15:20:23 2015 -0700"
      },
      "message": "Add some more DISALLOW_COPY_AND_ASSIGN\n\nMay help prevent bugs maybe.\n\nChange-Id: Ie73d469dfcd078492ecb3aa28682b42707221202\n"
    },
    {
      "commit": "f36cb5f65cb150151aa40b23937e2b0ad75cc546",
      "tree": "25365c69a089bc491a4b070ee3403be964cfc606",
      "parents": [
        "33984b4d6b79b2d65258e69506e5669be704db82"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 24 16:55:16 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 22:08:16 2015 +0000"
      },
      "message": "Move Class.newInstance to native\n\nAvoids 1 allocation and several JNI transitions.\n\nBefore:\nClass_classNewInstance: 4462.39 ns; σ\u003d39.42 ns @ 3 trials\n\nAfter:\nClass_classNewInstance: 1073.39 ns; σ\u003d24.14 ns @ 10 trials\n\nBug: 20269715\nBug: 20566996\nChange-Id: Icd52155ce79a978a4d869855bfdfd7735abd8187\n"
    },
    {
      "commit": "70bef0d8f6aa30b0da5c6ca56e1bc5729f74654b",
      "tree": "aea4a31294c5a6a30c52ee886d5884a0b5b84fde",
      "parents": [
        "bbf02afc641a393d33342976e269218668c07386"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 02:37:28 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 21 15:03:15 2015 -0700"
      },
      "message": "ART: Add compiled-methods\n\nAdd a dex2oat option for compiled-methods, a more granular filter\nthan compiled-classes. Add compiler-driver support for it.\n\nRefactor dex2oat to reuse file reading.\n\nAdd a test to oat_test.\n\nChange-Id: I78d0d040bce7738b4bb7aabe7768b5788d2587ac\n"
    },
    {
      "commit": "fdee2c0ada7e9233dffcfa3048002ad98ef36ac1",
      "tree": "e34795f95e0557d12da9c2dd8e40489f925a42e5",
      "parents": [
        "349eded3bc542c9e6ffb10b6222c6ce372bda9b7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 20 16:53:59 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 20 16:53:59 2015 -0700"
      },
      "message": "ART: Fix wrong parameter in JIT\n\nDo not use an empty set for compiled-classes.\n\nChange-Id: I5062a7886c1a4f5dc8dc9630ce490c71bc607b72\n"
    },
    {
      "commit": "8dc7324da5bd0f2afd2ab558ab04882329a61fe8",
      "tree": "245ce4265cc31990fa6d2f6e792ccd9d44af1dc1",
      "parents": [
        "4af290af4e89cfbc3a4e1ada79909ccee353361a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 11:40:39 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 13 21:24:12 2015 +0100"
      },
      "message": "Add --include-cfi compiler option.\n\nDecouple generation of CFI from the rest of debug symbols.\nThis makes it possible to generate oat with CFI but without\nthe rest of debug symbols.\n\nThis is in line with intention of the .eh_frame section.\nThe section does not have the .debug_ prefix because it\nis considered somewhat different to the rest of debug symbols.\n\nChange-Id: I32816ecd4f30ac4e0dc69d69a4993e349c737f96\n"
    },
    {
      "commit": "7f49e672bc943c49ca8af438ae4bd61b95fe364b",
      "tree": "3fcb3820c5046ea30e78c8264327536041b5cdad",
      "parents": [
        "58565098b2298041ccc97371a3cc486df88d51b3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 09:52:31 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 12 09:52:31 2015 +0100"
      },
      "message": "Remove the --gen-gdb-info compiler option.\n\nIt is never used.  We generally use --include-debug-symbols instead.\n\nChange-Id: I933495cd85ab4f7dfcf3ef3cd2d943d4b870ffeb\n"
    },
    {
      "commit": "4585f876eb5dfb936bd0d6cb6acd78a1f2182ba6",
      "tree": "e9dfed086f56245e74862caa813c708bc4f500f9",
      "parents": [
        "e2c29f4a2717923f190c944a06e02f7d8c3ddcb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:45:15 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:46:09 2015 -0700"
      },
      "message": "ART: Some runtime cleanup\n\nUse an enum for the compiler-callback mode.\n\nRefactor and remove some unnecessary includes in runtime.h.\n\nChange-Id: If2245fa470171311b8e05b677cf6bb28f209585a\n"
    },
    {
      "commit": "81c6f8db12b203878a7d72444ead2bc7cf5c47ad",
      "tree": "11caae30b75b700ac648356fd30759a6154be997",
      "parents": [
        "cac51526bbd03947676a8d49700425b19a57e447"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 25 17:19:53 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 21:43:21 2015 -0700"
      },
      "message": "ART: PathClassLoader for compiler\n\nUse an actual PathClassLoader when compiling apps, instead of a\nside structure and cutout.\n\nThis CL sets up a minimal object \u0027cluster\u0027 that recreates the Java\nside of a regular ClassLoader such that the Class-Linker will\nrecognize it and use the internal native fast-path.\n\nThis CL removes the now unnecessary compile-time-classpath and\nreplaces it with a single \u0027compiling-the-boot-image\u0027 flag in the\ncompiler callbacks.\n\nNote: This functionality is *only* intended for the compiler, as\nthe objects have not been completely initialized.\n\nBug: 19781184\n\nChange-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d\n"
    },
    {
      "commit": "b4e180844b956d4d5e22f1a17178fa8091dfea68",
      "tree": "d8a828588c1195978a1ef5584694fe0a6a15cabe",
      "parents": [
        "476448128d0ebf3328e96548de34f19bc55fa5c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 22 13:52:48 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 23 09:45:10 2015 -0700"
      },
      "message": "Fix a bug in AddToCodeCache\n\nWas comparing wrong variable to null.\n\nBug: 17950037\nChange-Id: I32eb209d378c4818c977c4d1cf63603f7269bd9b\n"
    },
    {
      "commit": "a4885cbaafd35fe9c60eb6cd95e41e2c86f54f66",
      "tree": "6afaa296fc2f6c4c7c1ce35a3d36ef911096764c",
      "parents": [
        "54a8cc689dc23f346c9aac0d5fc6f47e61df8cad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 15:38:54 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 15:42:44 2015 -0700"
      },
      "message": "Add way to print JIT related info at shutdown\n\nAdded a runtime option called -XX:DumpJITInfoOnShutdown with prints\nvarious interesting JIT statistics during the shutdown of the runtime\nif enabled.\n\nExample of running EvaluateAndApplyChanges with the option:\nI art     : Code cache size\u003d427KB data cache size\u003d84KB num methods\u003d1598\nI art     : Start Dumping histograms for 1598 iterations for JIT timings\nI art     : Compiling: Sum: 727.850ms 99% C.I. 135us-4402us Avg: 455.475us Max: 15567us\nI art     : Verifying: Sum: 191.074ms 99% C.I. 19us-1450.500us Avg: 119.570us Max: 5142us\nI art     : TrimMaps:  Sum: 62.053ms 99% C.I. 13us-199.374us Avg: 38.831us Max: 10058us\nI art     : MakeExecutable:  Sum: 11.153ms 99% C.I. 4us-47us Avg: 6.979us Max: 47us\nI art     : Initializing:  Sum: 7.991ms 99% C.I. 1us-49.781us Avg: 5us Max: 4852us\nI art     : Done Dumping histograms\n\nBug: 17950037\nChange-Id: I23538b24f947e5f6934f55579b8baa9d806eb3d5\n"
    },
    {
      "commit": "9b34b244ecddd8a35c922ed87bc3df0ca4db0282",
      "tree": "cb73f09a77a1ba58331eb299bb8dd1e6eafb6eaa",
      "parents": [
        "81d38f74219774d87389f83f23595ffc8fe814b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 11:30:17 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 14:25:02 2015 -0700"
      },
      "message": "Trim arenas for JIT\n\nMoved arena pool into the runtime. Added arena trimming to arena\npool. When called, this madvises the used memory.\n\nChanged the JIT compiler to trim arenas after compilation. Changed\nthe arena mmap name to dalvik-LinearAlloc.\n\nNative PSS before:\n  80353 kB: Native\n  80775 kB: Native\n  78116 kB: Native\nAfter:\n  73357 kB: Native\n  70181 kB: Native\n  70306 kB: Native\n\nBug: 17950037\nBug: 17643507\nBug: 19264997\n\nChange-Id: I63e7a898fd6e909c2c677fa57b5917a7b1398930\n"
    },
    {
      "commit": "6cf49e57ad7a61e1fffd5b1dfae9179c3ca5703d",
      "tree": "126d4a09078ebfb6b5eed5d67d6300217132a1bb",
      "parents": [
        "66b26662ad0c52c648c9b5ea4a99149091e842b4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 05 13:08:45 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 05 18:42:21 2015 -0800"
      },
      "message": "ART: Add option to abort dex2oat on hard failure\n\nAdd an option that aborts dex2oat when a hard verifier failure occurs.\n\nBug: 19606409\nChange-Id: I53195284e22fe6207274101e85745af763c06271\n"
    },
    {
      "commit": "7b2f09eb6b5c74ffc38bd70f0aa74b8f8112e394",
      "tree": "be2f01bfa3e326ea10ee3a670cca8e41a5abaa6d",
      "parents": [
        "dc47e986941b1a3754447fabea272485f3f0f382"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 02 14:07:33 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 04 12:19:44 2015 -0800"
      },
      "message": "ART: Add debuggable compiler flag\n\nAdd a flag to compiler options that shows debuggability.\n\nChange-Id: Id17ec72babe2ee88713a0d274eff86508de30666\n"
    },
    {
      "commit": "dce71f3ac5b427e545d11fb2c63fc65ae6c78da4",
      "tree": "47b0144de60167cac1a0767d9ab90d659fdffbed",
      "parents": [
        "0d1ef55dd46ecd0309f8e9e6b30625cde9473fc8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 27 14:24:37 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 27 15:34:04 2015 -0800"
      },
      "message": "Change JIT to not use PIC\n\nMotivation: PIC is currenly slower and disables a lot of JIT\nfriendly optimizations.\n\nEvaluateAndApplyChanges N5 eng interpreter + jit:\nBefore: 2540ms\nAfter: 2350ms\n\nBug: 17950037\n\nChange-Id: I3de3e7bcccfc53e49cb78370443c514248ec78d7\n"
    },
    {
      "commit": "c0d5f89d99c55ab63d6757fbd71dbfe95d347c1f",
      "tree": "dbee9449a109e88237205a68aba9f445d7e3e91d",
      "parents": [
        "8db3d76ba7061da80f5eb58079830c796e4dea61"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 25 13:22:57 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 25 15:03:03 2015 -0800"
      },
      "message": "Fix JIT for vmdebug test 99\n\nTest was flaky due to JIT re-compiliation after deoptimization\nresulting in some invalid PC offsets.\n\nBug: 17950037\nChange-Id: I276c84c918579259ce47ef873892c3c5dcf0c977\n"
    }
  ],
  "next": "e5f13e57ff8fa36342beb33830b3ec5942a61cca"
}
