API CHANGE: RegisterPass going away

Hey folks,

As part of our ongoing quest to eliminate static constructors from the LLVM libraries (in order to improve startup times for applications that link against them), I'm going to be eliminating the RegisterPass class. They will be replaced with an initialization-function based system that I will detail in a future email.

But, for now, what you need to know is that these classes are going away, and are being replaced with a new macro INITIALIZE_PASS(). I will be applying this change to LLVM HEAD shortly.

You can update you code as follows:

static RegisterPass<GVN> X("arg", "My Pass's Name", CFGOnly, IsAnalysis);

becomes:

INITIALIZE_PASS(GVN, "arg", "My Pass's Name", CFGOnly, IsAnalysis);

For the moment, these are equivalent, but as the work progresses on this front, RegisterPass will go away and INITIALIZE_PASS will be changed to expand to the right thing for the new system

Thanks,

--Owen