)]}'
{
  "log": [
    {
      "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": "6740997e6934bbca27d5830a32352d82aabbd38b",
      "tree": "684ab2e46ddeaaf251fb6919bf64295810e46afa",
      "parents": [
        "dc4f4d42aa1712a7ac2e4c24c0aebe58b71ae2c0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 19 22:34:53 2016 -0700"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 20 11:44:25 2016 +0100"
      },
      "message": "ART: Change return types of field access entrypoints\n\nEnsure that return types guarantee full-width data as the compiled\ncode and mterp expect by using size_t and ssize_t.\n\nThis fixes Clang no longer sign-/zero-extending small return types.\n\nBug: 30232671\nTest: m ART_TEST_RUN_TEST_NDEBUG\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host-run-test\nChange-Id: Ic505befc6c94e2dccbc8abf2b13d4c2d662e68d1\n"
    },
    {
      "commit": "d47fd907c898e0b8d4a4e50742f9b2f3003b906f",
      "tree": "dd6188a191d3d1d9eeb199fd538af4fc3ff6639f",
      "parents": [
        "9fa78522de3eef6277631284598781479f289b0c"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jul 07 14:42:43 2016 +0000"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jul 07 08:16:27 2016 -0700"
      },
      "message": "Revert \"Revert \"ART: Add Mterp export pc poison testing mode\"\"\n\nThis reverts commit d7af522c0f03cd926b13bbef7c21a8a504969f36.\n\nFixes mips assembly typo: \"mov\" -\u003e \"move\"\n\nTEST: Previously tested arm/arm64/x86/x86_64 via test-art-host,\ntest-art-target plus injected error.  Neglected to test mips\nbuilds.  Now those tested as well.\n\nChange-Id: If2f9fb06973f8c1220a7d7699d79e6b9f1ce3197\n"
    },
    {
      "commit": "d7af522c0f03cd926b13bbef7c21a8a504969f36",
      "tree": "63ed6e7281cf5d0c00eec3393cc6e1554ab58e5a",
      "parents": [
        "e664cfef4d373a037dcf18637bea6b41e0624302"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jul 06 23:28:26 2016 +0000"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jul 06 23:28:26 2016 +0000"
      },
      "message": "Revert \"ART: Add Mterp export pc poison testing mode\"\n\nThis reverts commit e664cfef4d373a037dcf18637bea6b41e0624302.\n\nChange-Id: I521dfccd6c829946c93290163bf817b8a2c368e9\n"
    },
    {
      "commit": "e664cfef4d373a037dcf18637bea6b41e0624302",
      "tree": "de257eb9ada3b80c525b677f6e6dcd8640a0c4cb",
      "parents": [
        "2150d94b5a399dd7d52e1309da2e3bf80d1a5517"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jun 23 13:35:39 2016 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jul 06 09:10:34 2016 -0700"
      },
      "message": "ART: Add Mterp export pc poison testing mode\n\nOne of the optimizations of the Mterp assembly interpreter is\nthat it attempts to limit the number of times it updates the saved\ndex_pc_ value stored in the shadow frame.  Instead, it maintains\na pointer to the current dex instruction in a dedicated register.\n\nHowever, whenever execution flow exits the immediate mterp\nenvironment and some other part of the runtime needs to know the\ncurrent dex pc (for example - exception throws), mterp must\nsave - or \"export\" the dex_pc back into it\u0027s home location in\nthe shadow frame.\n\nForgetting to do this is a typical bug when developing mterp\ninstruction handlers.  And, the failures show up in odd and\nsometimes hard to track down ways.  This CL adds a testing mode\nthat poisons the saved dex_pc prior to each instruction\ninterpretation.  Thus, if any individual handler neglects to\nproperly export the current dex pc and then goes on to use it\nwe\u0027ll segfault out with an identifiable fault address: 0xdead00ff.\n\nTEST: test-art-target (Nexus 5x, Nexus 6p), test-art-host.  Verified\nexpected failure by artificially neglecting an EXPORT_PC.\n\nBug: 26572899\nChange-Id: I704fbb8ece693b94341aed0ffbb51a6acfb89697\n"
    },
    {
      "commit": "fd522f9039befff986701ff05054ffdd1be1dd33",
      "tree": "d5d44cc20882ce0ed5823a34fb37f702d45461f6",
      "parents": [
        "a1f65135cd2315159ac302f904ba0c5ba0d7fd0e"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 11 22:37:42 2016 +0000"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 19 06:01:27 2016 -0800"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"ART: Enable Jit Profiling in Mterp for arm/arm64\"\"\"\"\n\nThis reverts commit 5d03317a834efdf3b5240c401f1bc2ceac7a2f25.\n\nWe need to catch all possible cases in which new instrumentation appears\nor the debugger is attached, and then switch to the reference interpreter\nif necessary.  We may, in a future CL, use the alt-mterp mechanism to accompish\nthis (as did Dalvik).\n\nOnly enables Arm64 for now.  Once it survives extended testing, will enable\narm and update x86.\n\nUpdated OSR handling to match other interpreters.\n\nChange-Id: I076f1d752d6f59899876bab26b18e2221cd92f69\n"
    },
    {
      "commit": "1452bee8f06b9f76a333ddf4760e4beaa82f8099",
      "tree": "8ffb80498cd8fdff66a4ab272723cf4d4e69e57b",
      "parents": [
        "7f9ea1451bb74055ee5d51ae04fc869faa06cbdd"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 06 14:43:04 2015 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Jan 11 13:04:49 2016 -0800"
      },
      "message": "Fast Art interpreter\n\nAdd a Dalvik-style fast interpreter to Art.\nThree primary deficiencies in the existing Art interpreter\nwill be addressed:\n\n1.  Structural inefficiencies (primarily the bloated\n    fetch/decode/execute overhead of the C++ interpreter\n    implementation).\n2.  Stack memory wastage.  Each managed-language invoke\n    adds a full copy of the interpreter\u0027s compiler-generated\n    locals on the shared stack.  We\u0027re at the mercy of\n    the compiler now in how much memory is wasted here.  An\n    assembly based interpreter can manage memory usage more\n    effectively.\n3.  Shadow frame model, which not only spends twice the memory\n    to store the Dalvik virtual registers, but causes vreg stores\n    to happen twice.\n\nThis CL mostly deals with #1 (but does provide some stack memory\nsavings).  Subsequent CLs will address the other issues.\n\nCurrent status:\n   Passes all run-tests.\n   Phone boots interpret-only.\n   2.5x faster than Clang-compiled Art goto interpreter on fetch/decode/execute\n       microbenchmark, 5x faster than gcc-compiled goto interpreter.\n   1.6x faster than Clang goto on Caffeinemark overall\n   2.0x faster than Clang switch on Caffeinemark overall\n   68% of Dalvik interpreter performance on Caffeinemark (still much slower,\n       primarily because of poor invoke performance and lack of execute-inline)\n   Still nearly an order of magnitude slower than Dalvik on invokes\n       (but slightly better than Art Clang goto interpreter.\n   Importantly, saves ~200 bytes of stack memory per invoke (but still\n       wastes ~400 relative to Dalvik).\n\nWhat\u0027s needed:\n   Remove the (large quantity of) bring-up hackery in place.\n   Integrate into the build mechanism.  I\u0027m still using the old Dalvik manual\n       build step to generate assembly code from the stub files.\n   Remove the suspend check hack.  For bring-up purposes, I\u0027m using an explicit\n       suspend check (like the other Art interpreters).  However, we should be\n       doing a Dalvik style suspend check via the table base switch mechanism.\n       This should be done during the alternative interpreter activation.\n   General cleanup.\n   Add CFI info.\n   Update the new target bring-up README documentation.\n   Add other targets.\n\nIn later CLs:\n   Consolidate mterp handlers for expensive operations (such as new-instance) with\n       the code used by the switch interpreter.  No need to duplicate the code for\n       heavyweight operations (but will need some refactoring to align).\n   Tuning - some fast paths needs to be moved down to the assembly handlers,\n       rather than being dealt with in the out-of-line code.\n   JIT profiling.  Currently, the fast interpreter is used only in the fast\n       case - no instrumentation, no transactions and no access checks. We\n       will want to implement fast + JIT-profiling as the alternate fast\n       interpreter.  All other cases can still fall back to the reference\n       interpreter.\n   Improve invoke performance.  We\u0027re nearly an order of magnitude slower than\n       Dalvik here.  Some of that is unavoidable, but I suspect we can do\n       better.\n   Add support for our other targets.\n\nChange-Id: I43e25dc3d786fb87245705ac74a87274ad34fedc\n"
    }
  ]
}
