[LLVMdev] Maintaining pass code outside of the LLVM directory

Trevor Harmon trevor.w.harmon at nasa.gov
Thu Mar 25 13:32:17 PDT 2010


On Mar 22, 2010, at 9:53 PM, John Criswell wrote:

> You can always use the LLVM project infrastructure (documented at
> http://llvm.org/docs/Projects.html).

Thanks for reminding me of that. I had actually started out with a  
project infrastructure, then switched to a pass implementation alone,  
not realizing I could combine the two. I've now reverted back to my  
old project, integrated the pass code into it, and my problem appears  
to be solved.

> If you have any questions or have any problems, please email llvmdev.

Well, there is one thing... I'm wondering how best to actually run the  
pass after it's been compiled. Currently I'm just invoking "opt" and  
passing it a "-load" parameter with the name of my pass's dynamic  
library. I also have to add a couple more "-load" parameters for  
external libraries needed by the pass, followed by the custom  
parameters for the pass itself, and of course the "opt" parameters  
(the name of a bitcode input file, etc.). It gets to be a rather long  
and complex command line, and not a very friendly way of using the pass.

Is there a better way? I suppose I could put the parameters in a shell  
script -- simply a custom wrapper for "opt" -- and put it in the  
project's tools directory. Or maybe I could write some kind of native  
tool that bypasses "opt" altogether and somehow invokes the pass  
through LLVM's API. But that might be overkill. Not sure how others  
typically handle this. Any thoughts? Thanks,

Trevor




More information about the llvm-dev mailing list