)]}'
{
  "commit": "2d4feeb67912d64b9e980e6687794826a5c22f9d",
  "tree": "7ab2071bbf5d5907d205b8e2a092ea9869974ba1",
  "parents": [
    "60abdd9c89525a277d75df19ff2792614651e1ff"
  ],
  "author": {
    "name": "Mythri Alle",
    "email": "mythria@google.com",
    "time": "Wed Oct 13 15:39:37 2021 +0000"
  },
  "committer": {
    "name": "Mythri Alle",
    "email": "mythria@google.com",
    "time": "Mon Nov 01 08:31:54 2021 +0000"
  },
  "message": "Add support for calling entry / exit hooks directly from JIT code\n\nThe idea of this CL is to avoid maintaining the instrumentation stack\nand manipulating the return addresses on the stack to call the entry /\nexit hooks. This Cl only addresses this for JITed code. In follow up\nCLs, we will extend this to others (native, nterp). Once we have\neverything in place we could remove the complexity of instrumentation\nstack.\n\nThis CL introduces new nodes (HMethodEntry / HMethodExit(Void)) that\ngenerate code to call the trace entry / exit hooks when\ninstrumentation_stubs are installed. Currently these are introduced for\nJITed code in debuggable mode. The entry / exit hooks roughly do the\nsame this as instrumentation entry / exit points.\nWe also extend the JITed frame slots by adding a ShouldDeoptimize slot.\nThis will be used to force deoptimization of frames when requested by\njvmti (for ex: structural re-definition).\n\nTest: art/testrunner.py\nChange-Id: Id4aa439731d214a8d2b820a67e75415ca1d5424e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "74efc9ea8dbc016122d27704f25554032aa326a1",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm64.cc",
      "new_id": "d455614cfd248fd4fddc8a43cc8276588a6fb539",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm64.cc"
    },
    {
      "type": "modify",
      "old_id": "d4546e5bd52518f9c37feeccc90bf13ba561cc00",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm64.h",
      "new_id": "750151aa240c17f8ff63940dea8526d28e54b90a",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm64.h"
    },
    {
      "type": "modify",
      "old_id": "700202ba2032dbd5895bc21e206b8f1133826e6e",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm_vixl.cc",
      "new_id": "bf0c77da57a49a4005ed4c4106753e415f26f6e9",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm_vixl.cc"
    },
    {
      "type": "modify",
      "old_id": "b797c30a39d884f185c98691c7304ed1abd9f070",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm_vixl.h",
      "new_id": "aa40755b29901b27ddd6801345834dccc0afd1cd",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm_vixl.h"
    },
    {
      "type": "modify",
      "old_id": "c49b08ba690d15614f6b036f05d3d9c3146653af",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86.cc",
      "new_id": "a04b4129a851974d553a08c2d3173ad9d0a3a013",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86.cc"
    },
    {
      "type": "modify",
      "old_id": "94f010e5980eacb2c08aa0f8827eda2c2f193b6c",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86.h",
      "new_id": "75c5cebb5e50f7aa35160a8a7ad2cc1b0e4b665d",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86.h"
    },
    {
      "type": "modify",
      "old_id": "dae2ae2b84f6e88531bc60449dd3472b091fca1f",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86_64.cc",
      "new_id": "4ec2dd7a276b4cb147d6565eaef3c9acb9412daf",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86_64.cc"
    },
    {
      "type": "modify",
      "old_id": "3e601bb97ae5d5aa23e20d1ba15c6c77025037cd",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86_64.h",
      "new_id": "1115c8379d4576586a8e7cbdaaff934793ad8ddc",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86_64.h"
    },
    {
      "type": "modify",
      "old_id": "3abbbae5739f25b7f59f9d808f7816fc30a88db4",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/inliner.cc",
      "new_id": "c7426828cbd90900dfdf35602939c91e7bb14147",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/inliner.cc"
    },
    {
      "type": "modify",
      "old_id": "390a2bb0be17b518435cac5851dee899363bfae8",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/instruction_builder.cc",
      "new_id": "ed760f190dfb5e4047f30c6ae62646c6f71d2f6b",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/instruction_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "17080f0056c5ec5bee4a85ec6abd2486f4e1ad0d",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/nodes.cc",
      "new_id": "24786931f241b06c4223879eeea487ce4df22e99",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/nodes.cc"
    },
    {
      "type": "modify",
      "old_id": "06fb88e8377db3e11983668c871de5a5c3f7c49b",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/nodes.h",
      "new_id": "978e7c419e353ce4159baf481d332c25ad737f24",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/nodes.h"
    },
    {
      "type": "modify",
      "old_id": "7bcff2bafc1b3ab253099ec742ef1690dbe3fe73",
      "old_mode": 33188,
      "old_path": "dex2oat/linker/oat_writer_test.cc",
      "new_id": "0d7e0e5833c410ea2e846cfb8b53b6b82f79021c",
      "new_mode": 33188,
      "new_path": "dex2oat/linker/oat_writer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "bf1b4f07149656f5ff8d0970f69d06ea29712a11",
      "old_mode": 33188,
      "old_path": "openjdkjvmti/deopt_manager.cc",
      "new_id": "cf28a719329b0493c3de333e0816eb2d2759a5c9",
      "new_mode": 33188,
      "new_path": "openjdkjvmti/deopt_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "27fed282aad0d954623783f2505d141ddb1f46a5",
      "old_mode": 33188,
      "old_path": "openjdkjvmti/ti_heap.cc",
      "new_id": "bd9d2ddd08e72224c08ba3a02d89ea7f022520f1",
      "new_mode": 33188,
      "new_path": "openjdkjvmti/ti_heap.cc"
    },
    {
      "type": "modify",
      "old_id": "f5f127472e9580c2b86194ea7e1ca724ca9a8d2a",
      "old_mode": 33188,
      "old_path": "runtime/arch/arm/quick_entrypoints_arm.S",
      "new_id": "5ef1d3e17a22118c8e2bbd1c8f1f580b1ea37072",
      "new_mode": 33188,
      "new_path": "runtime/arch/arm/quick_entrypoints_arm.S"
    },
    {
      "type": "modify",
      "old_id": "022a0e4053b845f53d7207d99a207225b992c30f",
      "old_mode": 33188,
      "old_path": "runtime/arch/arm64/quick_entrypoints_arm64.S",
      "new_id": "e5dbeda42ddcdcb0441d1c13a96fee7acc8f172d",
      "new_mode": 33188,
      "new_path": "runtime/arch/arm64/quick_entrypoints_arm64.S"
    },
    {
      "type": "modify",
      "old_id": "cda98d2921a519092d8df7597e0c768df4cd6d7b",
      "old_mode": 33188,
      "old_path": "runtime/arch/x86/quick_entrypoints_x86.S",
      "new_id": "2f6af4f5de1161f57e32492f24dd31dab86442c1",
      "new_mode": 33188,
      "new_path": "runtime/arch/x86/quick_entrypoints_x86.S"
    },
    {
      "type": "modify",
      "old_id": "8c21384c62ed06b5964fb550817454b2f1372c04",
      "old_mode": 33188,
      "old_path": "runtime/arch/x86_64/quick_entrypoints_x86_64.S",
      "new_id": "136198fe558d16ab51bde6cbddb9aaa0d1a66ff8",
      "new_mode": 33188,
      "new_path": "runtime/arch/x86_64/quick_entrypoints_x86_64.S"
    },
    {
      "type": "modify",
      "old_id": "c345af823299d64cad212acb7f9e54d43d335638",
      "old_mode": 33188,
      "old_path": "runtime/cha.cc",
      "new_id": "392b35cd811875f83f932c683b4c7c146df08bd5",
      "new_mode": 33188,
      "new_path": "runtime/cha.cc"
    },
    {
      "type": "modify",
      "old_id": "5be6f3dab113c92ab0d138cac56c7f2c98a345d8",
      "old_mode": 33188,
      "old_path": "runtime/deoptimization_kind.h",
      "new_id": "c2e6a6585af71025c916c5a3121010a581e7f416",
      "new_mode": 33188,
      "new_path": "runtime/deoptimization_kind.h"
    },
    {
      "type": "modify",
      "old_id": "f3fc97eca20a1da2f4f8dd7ddc6428e71035e07b",
      "old_mode": 33188,
      "old_path": "runtime/entrypoints/quick/quick_default_init_entrypoints.h",
      "new_id": "3fc23ee66e3d73adab630656aaaf4d3e74c87976",
      "new_mode": 33188,
      "new_path": "runtime/entrypoints/quick/quick_default_init_entrypoints.h"
    },
    {
      "type": "modify",
      "old_id": "5deb55752fd33150a43016c2138b5d025549feeb",
      "old_mode": 33188,
      "old_path": "runtime/entrypoints/quick/quick_entrypoints_list.h",
      "new_id": "f69ab1d38b81840230e19d9a63434dc3c2e3efe5",
      "new_mode": 33188,
      "new_path": "runtime/entrypoints/quick/quick_entrypoints_list.h"
    },
    {
      "type": "modify",
      "old_id": "3279f7d7383b927e55548d44c22fa9a6cd9c5773",
      "old_mode": 33188,
      "old_path": "runtime/entrypoints/quick/quick_trampoline_entrypoints.cc",
      "new_id": "be9d949930604e31cf22e72b74dd5aa65d217ed5",
      "new_mode": 33188,
      "new_path": "runtime/entrypoints/quick/quick_trampoline_entrypoints.cc"
    },
    {
      "type": "modify",
      "old_id": "d2096ec2f123827a3dd2cf701ea4b4bb803ca98f",
      "old_mode": 33188,
      "old_path": "runtime/entrypoints/runtime_asm_entrypoints.h",
      "new_id": "c4e62e5b873b57a65478dcc332343b9bd4b59231",
      "new_mode": 33188,
      "new_path": "runtime/entrypoints/runtime_asm_entrypoints.h"
    },
    {
      "type": "modify",
      "old_id": "73f97bc60b4fedab163b66e0136ba660107a0f4f",
      "old_mode": 33188,
      "old_path": "runtime/entrypoints_order_test.cc",
      "new_id": "b515245a128eae29431ff5876043a9f160c16eff",
      "new_mode": 33188,
      "new_path": "runtime/entrypoints_order_test.cc"
    },
    {
      "type": "modify",
      "old_id": "97dad8cef74004c7e3a19e0adcddf1e9438287bd",
      "old_mode": 33188,
      "old_path": "runtime/instrumentation.cc",
      "new_id": "91c30c7ba74647468c565b0724f949c1890e1582",
      "new_mode": 33188,
      "new_path": "runtime/instrumentation.cc"
    },
    {
      "type": "modify",
      "old_id": "bdeaf3061c1468ca988ebe4e8175ce146828dcee",
      "old_mode": 33188,
      "old_path": "runtime/instrumentation.h",
      "new_id": "c49d6728b40d6646634f5a3bd3932227360b1342",
      "new_mode": 33188,
      "new_path": "runtime/instrumentation.h"
    },
    {
      "type": "modify",
      "old_id": "95eb0e14ed0d4c2faa6fb2fd5e70be2c38a89a4a",
      "old_mode": 33188,
      "old_path": "runtime/oat.h",
      "new_id": "ac70a7755ceb74b7fb73c10c5717c76c42c3d1da",
      "new_mode": 33188,
      "new_path": "runtime/oat.h"
    },
    {
      "type": "modify",
      "old_id": "5f497af46a90a200a9428ee1e51fb576f2ebf4c4",
      "old_mode": 33188,
      "old_path": "runtime/quick_exception_handler.cc",
      "new_id": "ac5065b2a6ea5dda833fed975e1067e9d7202188",
      "new_mode": 33188,
      "new_path": "runtime/quick_exception_handler.cc"
    },
    {
      "type": "modify",
      "old_id": "233106eb0a9415d0f22c31f62354206de1178eb3",
      "old_mode": 33188,
      "old_path": "runtime/stack.cc",
      "new_id": "eb0fe5692d3674ba9e5787526ac0add561c55e79",
      "new_mode": 33188,
      "new_path": "runtime/stack.cc"
    },
    {
      "type": "modify",
      "old_id": "2a6fdc2b35f58397d4b1dfb42e025f70bc280720",
      "old_mode": 33188,
      "old_path": "runtime/stack.h",
      "new_id": "1b00b54acbe575633492c404573bc0f0650ab025",
      "new_mode": 33188,
      "new_path": "runtime/stack.h"
    },
    {
      "type": "modify",
      "old_id": "5996a5720b3654216203f4ffa229137b723329df",
      "old_mode": 33188,
      "old_path": "runtime/trace.cc",
      "new_id": "4082721fcb08861e90272ccce6fc3ec186709b55",
      "new_mode": 33188,
      "new_path": "runtime/trace.cc"
    },
    {
      "type": "modify",
      "old_id": "8f96f937c90b233ee57488336fdc517e8dd39c69",
      "old_mode": 33188,
      "old_path": "test/2011-stack-walk-concurrent-instrument/src/Main.java",
      "new_id": "53a7eea0131f1e9fcdc689d475c7b2c76f406986",
      "new_mode": 33188,
      "new_path": "test/2011-stack-walk-concurrent-instrument/src/Main.java"
    },
    {
      "type": "modify",
      "old_id": "a10fe2e90524bc6623cc23e0ad037de65c83abd1",
      "old_mode": 33188,
      "old_path": "test/2011-stack-walk-concurrent-instrument/stack_walk_concurrent.cc",
      "new_id": "5eaaa05dbce947fd8484bba5f9dd13c3d64a950a",
      "new_mode": 33188,
      "new_path": "test/2011-stack-walk-concurrent-instrument/stack_walk_concurrent.cc"
    }
  ]
}
