-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add JitDisasmWithDebugInfo #61780
Add JitDisasmWithDebugInfo #61780
Conversation
Tagging subscribers to this area: @JulieLeeMSFT Issue Details
|
Example of how this looks with diff --git "a/C:\\dev\\dotnet\\spmi\\asm.benchmarks.run.windows.x64.checked.3\\base\\634.dasm" "b/C:\\dev\\dotnet\\spmi\\asm.benchmarks.run.windows.x64.checked.3\\diff\\634.dasm"
index e985c6e..675ed01 100644
--- "a/C:\\dev\\dotnet\\spmi\\asm.benchmarks.run.windows.x64.checked.3\\base\\634.dasm"
+++ "b/C:\\dev\\dotnet\\spmi\\asm.benchmarks.run.windows.x64.checked.3\\diff\\634.dasm"
@@ -25,6 +25,7 @@ G_M63213_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nog
; gcrRegs +[rsi]
;; bbWeight=1 PerfScore 4.50
G_M63213_IG02: ; gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref
+ ; INLRT @ 0x000[E-]
mov edi, dword ptr [rsi+40]
sub edi, dword ptr [rsi+48]
movsxd rdx, edi
@@ -33,6 +34,7 @@ G_M63213_IG02: ; gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
+ ; INL02 @ 0x000[E-] <- INLRT @ 0x00C[E-]
mov r9d, edi
mov rcx, rsi
; gcrRegs +[rcx]
@@ -42,6 +44,7 @@ G_M63213_IG02: ; gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref
call System.Collections.Generic.HashSet`1[__Canon][System.__Canon]:CopyTo()
; gcrRegs -[rax rcx rdx rsi]
; gcr arg pop 0
+ ; INLRT @ 0x013[E-]
mov rax, rbx
; gcrRegs +[rax]
;; bbWeight=1 PerfScore 8.75
@@ -70,8 +73,9 @@ Unwind Info:
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
-IP mapping count : 4
+IP mapping count : 5
IL offs PROLOG : 0x00000000 ( STACK_EMPTY )
+IL offs 0x0000 : 0x0000000F ( STACK_EMPTY )
IL offs 0x000C : 0x00000020 ( STACK_EMPTY )
IL offs 0x0013 : 0x00000031 ( STACK_EMPTY )
IL offs EPILOG : 0x00000034 ( STACK_EMPTY ) cc @dotnet/jit-contrib |
I'll split out the CMake change from this PR. EDIT: Opened #61800 for that. |
Add COMPlus_JitDisasmWithDebugInfo. When set and in verbose/disasm mode, JIT will display inline comments with debug information before the instructions that debug info applies to. Change superpmi with --debuginfo to use this mode. Also small change to dotnet-pgo flow graph dump to write offsets in the same format.
9eb831b
to
032d162
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
JIT will display inline comments with debug information before the
instructions that debug info applies to. Change superpmi with
--debuginfo to use this mode. Also small change to dotnet-pgo flow graph
dump to write offsets in the same format.