hrydgard/ppsspp — pull request #4692 by unknownbrackets (2013-12-01 02:57:55+00:00)
Title: Add support for profiling jit via VerySleepy

Use this version of VerySleepy which supports this functionality:
https://github.com/unknownbrackets/verysleepy/releases/tag/v0.90-pre-jit

Tried to KISS. Reports the vertex decoder, dispatch run loop, and functions / blocks. I think this approach could be potentially used (by dumping to a file or something...) on Android as well.

Sample results from Gods Eater Burst (with vertex cache disabled):

15.18% GPU::VertexDecoderJit
2.84% Jit::0880b098_z_un_0880b098
1.13% Jit::RunLoopUntil
0.89% Jit::0880b0b4_z_un_0880b098
0.76% Jit::088e067c_z_un_088e0600
0.51% Jit::088e0690_z_un_088e0600
0.49% Jit::UnknownOrDeletedBlock
...

I'm pretty sure the funcs it identifies are hot, but I'm not sure why it's identifying unknown/deleted blocks, which makes me think I have a mistake somewhere. That means it's inside the jit code space, but not inside any valid block.

-[Unknown]