[LLVMdev] data exchange between loadable pass and backend

John Criswell criswell at uiuc.edu
Fri May 30 06:47:02 PDT 2008


Nico wrote:
> Hello,
>
> I have an analysis pass and a target machine class, both in different
> dynamically loadable libraries (plugins). There is no problem to use
> the analysis pass (opt -load=libanalysis.dylib -barpass foo.bc), but
> is it possible to get data from the analysis pass (by getAnalysis)
> while using the backend?
> AFAIK it is only allowed to have one plugin argument for llc (like:
> llc -load=libbackend.dylib -march=foo bar.bc). Did I miss something?
>   
Have you tried using the -load option twice?  You can specify multiple 
-load options to the opt tool; I wouldn't be surprised if llc allows the 
same thing, and if not, you could probably change it to do so.

Another option that might work would be to create a third shared object 
from your two libraries.  Something like:

gcc -shared -o combined.dylib libbackend.dylib libanalysis.dylib

We've done this on Linux for loading libraries into opt; maybe it will 
work on Mac OS X as well.

-- John T.

> Is the only solution to put the analysis pass in the target machine
> library?
>
> Thanks,
> Nico
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>   




More information about the llvm-dev mailing list