Statically link a pass to clang

Hi all,

A question about statically linking a pass to clang instead of dynamically loading it at runtime. I am stumped on this bug for a while. I inserted a pass under lib/Transforms/mypass directory, registered it with INITIALIZE_PASS and defined createMyPass in the pass. Also I added file mypass.h in include/llvm/Transforms/ to expose the accessor functions that expose my passes. Entries are added in include/llvm/LinkAllPasses.h to force pass linking. The archive files of my passes are added to LINK_COMPONENTS in the Makefiles for opt and clang. However, the passes are still not statically linked. Is there a way to statically link a pass into clang? If possible, how do turn on and off my passes with command line options?

I am trying to use clang as a c and c++ compiler. I can walk around this by compiling source into bitcode and then invoke opt which dynamically loads my passes and then compile it into x86 assembly with llc. How can I pass some command line options for clang such as -fomit-frame-pointer to llc so that frame pointer is reserved? Thank you so much in advance.

Bin Zeng