PathProfiler in LLVM

Hi,

I am involved in a project where I need to have the functionality of the PathProfiler that used to be a part of an earlier version of LLVM. I have provided a link to the code I am referring to.

Hello Everyone,

I am involved in a project where I need to have the functionality of the PathProfiler that used to be a part of an earlier version of LLVM. I have provided a link to the code I am referring to.

https://opensource.apple.com/source/lldb/lldb-159/llvm/lib/Transforms/Instrumentation/PathProfiling.cpp.auto.html

This code for PathProfiler.cpp has been removed from LLVM since then.

  • Can this be added back with some modifications into the current LLVM source?
  • What other options can I explore if adding it is not an option? (Any default profiler in LLVM that does this?)

Any help in this regard would be greatly appreciated.

Hi,

Hello Everyone,

I am involved in a project where I need to have the functionality of the PathProfiler that used to be a part of an earlier version of LLVM. I have provided a link to the code I am referring to.

https://opensource.apple.com/source/lldb/lldb-159/llvm/lib/Transforms/Instrumentation/PathProfiling.cpp.auto.html

This code for PathProfiler.cpp has been removed from LLVM since then.

  • Can this be added back with some modifications into the current LLVM source?

It seems Ball-Larus path profiling was removed in 2013 due to lack of maintenance. If you explain your use case or project details or send an RFC, domain experts might tell if the modified work is accepted or not in the LLVM source tree.

Hi Shivam,

Thanks for your reply. Actually in my project I need to select paths based on the results of the ball-laurus path profiling algorithm.

I can rewrite this code to match the current llvm repository so that it builds properly.

Can you tell my how I can raise an RFC to the llvm-dev community? Should I do it over mail to llvm-dev

Yeah, llvm-dev mailing list is the right place. You can find lots of examples on mailing list archive for how to write an RFC if you didn’t write it before. An example is
https://lists.llvm.org/pipermail/llvm-dev/2021-June/150814.html .