Commit 326ab1b1 authored by Ng Zhi An's avatar Ng Zhi An Committed by V8 LUCI CQ

[wasm] Log Wasm stub code creation

Wasm stubs (C to Wasm and Wasm to JS) aren't logged, so they show up as
??? in GDB backtraces. Emit a CodeCreateEvent in the finalization phase
of the compilation job so that the JitCodeLogger can keep track of it.

With this, a backtrace shows up like (truncated):

-(gdb) bt
-#0  v8::internal::Runtime_WasmArrayCopy
-#1  0x00007fc69d2e155f in Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit
-#2  0x00001c368159fcfc in Function:wasm-function[0]-0-turbofan
-#3  0x000000fa00044096 in Stub:c-wasm-entry:i:i
-#4  0x00007fc69dc76b76 in v8::internal::GeneratedCode
-#5  0x00007fc69dc75b25 in v8::internal::Execution::CallWasm
-#6  0x000056506d1a2b6b in v8::internal::wasm::test_gc::WasmGCTester::CallFunctionImpl

Bug: v8:11908
Change-Id: I1223b496091f99a94f2e4e665831462cc9617286
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3109050Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76608}
parent e691014a
...@@ -84,6 +84,7 @@ ...@@ -84,6 +84,7 @@
#include "src/execution/isolate-inl.h" #include "src/execution/isolate-inl.h"
#include "src/heap/local-heap.h" #include "src/heap/local-heap.h"
#include "src/init/bootstrapper.h" #include "src/init/bootstrapper.h"
#include "src/logging/code-events.h"
#include "src/logging/counters.h" #include "src/logging/counters.h"
#include "src/logging/runtime-call-stats-scope.h" #include "src/logging/runtime-call-stats-scope.h"
#include "src/objects/shared-function-info.h" #include "src/objects/shared-function-info.h"
...@@ -2588,6 +2589,9 @@ CompilationJob::Status WasmHeapStubCompilationJob::FinalizeJobImpl( ...@@ -2588,6 +2589,9 @@ CompilationJob::Status WasmHeapStubCompilationJob::FinalizeJobImpl(
tracing_scope.stream(), isolate); tracing_scope.stream(), isolate);
} }
#endif #endif
PROFILE(isolate, CodeCreateEvent(CodeEventListener::STUB_TAG,
Handle<AbstractCode>::cast(code),
compilation_info()->GetDebugName().get()));
return SUCCEEDED; return SUCCEEDED;
} }
return FAILED; return FAILED;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment