)]}'
{
  "commit": "7d30cee9872527ecedb07dc32099e24cf4a657ce",
  "tree": "5b89251f0a4e57b0bc9b840896b4e59ab265f986",
  "parents": [
    "a107ce357d00fbe99faf85ff2176bda983193d61"
  ],
  "author": {
    "name": "Mythri Alle",
    "email": "mythria@google.com",
    "time": "Fri Apr 22 11:43:23 2022 +0000"
  },
  "committer": {
    "name": "Mythri Alle",
    "email": "mythria@google.com",
    "time": "Tue Apr 26 12:05:04 2022 +0000"
  },
  "message": "Don\u0027t use AOT code for native methods for java debuggable runtime\n\nFor java debuggable runtimes we need the capability to deoptimize\nthe caller to support debug features such as method redefinitions.\nTo support this we need the ability to call method entry / exit\nhooks. Currently this is supported by instrumenting the stack by\nupdating the return pcs to instrumentation return pcs and installing\ninstrumentation entry points. This adds additional complexity when\nwalking the stack and in other places.\n\nWe want to avoid this by adding capability to call method entry / exit\nhooks directly from JITed code / generic stubs. For generic stubs it\nis OK to check if method entry / exit hooks are required always since\ngeneric stubs are on slow path anyway. For JITed code we would enable\nthis support only for debuggable runtime to avoid any overhead for\nregular runtime. Since AOT compiled code doesn\u0027t have the capability\nto call method entry / exit hooks we want don\u0027t want to use them for\ndebuggable runtime. For non-native methods we don\u0027t use AOT code\nThis CL avoids using AOT code for native methods too.\n\nTest: art/test.py\nBug: 206029744\nChange-Id: I566401ebea6d866e818287ede6f000876cb24240\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "867f75c4b3e8c480932731ede0858544fb64e231",
      "old_mode": 33188,
      "old_path": "runtime/art_method.cc",
      "new_id": "40b7a7b48fc263f009a7e0cd689b605ae4a0ea20",
      "new_mode": 33188,
      "new_path": "runtime/art_method.cc"
    },
    {
      "type": "modify",
      "old_id": "1e328a31d24f09348da71fe504bbeffef7ee9ffa",
      "old_mode": 33188,
      "old_path": "runtime/instrumentation.cc",
      "new_id": "afa7c39d43ccd0a40a70adb6a97df817ee1a0553",
      "new_mode": 33188,
      "new_path": "runtime/instrumentation.cc"
    },
    {
      "type": "modify",
      "old_id": "e20f883446499a30682e766539c48f07de7546fa",
      "old_mode": 33188,
      "old_path": "runtime/runtime.cc",
      "new_id": "45ca8fe469dd55a176bf2be073ed9cb50e21d4cf",
      "new_mode": 33188,
      "new_path": "runtime/runtime.cc"
    }
  ]
}
