Instruction lowering pass

I would like to write a pass to lower a set of LLVM instructions to function calls for soft float, etc.

The reason I'd like to do this is that I do bitcode linking of whole programs and the support functions and the support functions get internalized and eliminated before the instructions that need them are lowered.

My idea is to start with a pass based on LowerAllocations.cpp but that is set up and used in a way similar to the internalize pass, i.e. with a set of opcode/function name pairs to be replaced.

Eventually I'd like to have the target code generators be able to supply the names of functions that they'd need to the operation of the pass could be more automatic.

Is there interest in something like this? If so, I;ll look into extending the code generator interface to supply the information. If not I'll make the pass as unobtrusive as possible.

-Rich