The LLVM implementation of the OProfile interface is almost complete, except for the support of line level code annotations.
This is an attempt to fill this gap, as the Oprofile wrapper is already capable of registering debug events.
For example in Julia we can now target user-level functions.
As an example we set
>sudo operf -Vdebug ./julia pidigits.jl >opreport -l `which ./julia` ... 1 0.0095 sys-debug.so japi1_widen_all_consts!_995 1 0.0095 sys-debug.so jlcall_pidigits_2258 1 0.0095 sys-debug.so jlcall_lower_sum_2188 1 0.0095 sys-debug.so jlcall_upper_sum_2923 1 0.0095 sys-debug.so jlcall_<=_417 1 0.0095 sys-debug.so jlcall_==_219 1 0.0095 sys-debug.so jlcall_==_2322 1 0.0095 sys-debug.so jlcall_done_216 1 0.0095 sys-debug.so jlcall_fill_2011 1 0.0095 sys-debug.so jlcall_in_2246 1 0.0095 sys-debug.so jlcall_isbits_2230 1 0.0095 sys-debug.so jlcall_next_217 1 0.0095 sys-debug.so jlcall_record_ssa_assign_926 1 0.0095 sys-debug.so jlcall_setindex!_533 1 0.0095 sys-debug.so julia_+_431 1 0.0095 sys-debug.so julia_-_646 1 0.0095 sys-debug.so julia_<=_418 1 0.0095 sys-debug.so julia_==_2225