Dynamic Optimization selection for individual functions

Hi All,

I am trying to write a machine learning algorithm that would predict a good optimization to apply to a given function. I wanted to perform this by modifying the list of optimizations applied by the FPPassManager based on some dynamic data.

At present I was trying to do this by modifying the FPPassManager::runOnFunction(Function) implementation. However this is causing the following error:
“LLVM ERROR: ‘main’ label emitted multiple times to assembly file”
I may be applying a few passes multiple times. Could anyone with an understanding of the PassManager shed some light on this?
Thanks,
Sameer

May be you’re emitting the function, at the end of compilation, multiple times ?