This header declares the C interface to libLLVMIPO.a, which implements various interprocedural transformations of the LLVM IR.
Procs
proc addArgumentPromotionPass(pm: PassManagerRef) {. importc: "LLVMAddArgumentPromotionPass", cdecl, dynlib: dllname.}
proc addConstantMergePass(pm: PassManagerRef) {. importc: "LLVMAddConstantMergePass", cdecl, dynlib: dllname.}
proc addDeadArgEliminationPass(pm: PassManagerRef) {. importc: "LLVMAddDeadArgEliminationPass", cdecl, dynlib: dllname.}
proc addFunctionAttrsPass(pm: PassManagerRef) {. importc: "LLVMAddFunctionAttrsPass", cdecl, dynlib: dllname.}
proc addFunctionInliningPass(pm: PassManagerRef) {. importc: "LLVMAddFunctionInliningPass", cdecl, dynlib: dllname.}
proc addAlwaysInlinerPass(pm: PassManagerRef) {. importc: "LLVMAddAlwaysInlinerPass", cdecl, dynlib: dllname.}
proc addGlobalDCEPass(pm: PassManagerRef) {.importc: "LLVMAddGlobalDCEPass", cdecl, dynlib: dllname.}
proc addGlobalOptimizerPass(pm: PassManagerRef) {. importc: "LLVMAddGlobalOptimizerPass", cdecl, dynlib: dllname.}
proc addIPConstantPropagationPass(pm: PassManagerRef) {. importc: "LLVMAddIPConstantPropagationPass", cdecl, dynlib: dllname.}
proc addPruneEHPass(pm: PassManagerRef) {.importc: "LLVMAddPruneEHPass", cdecl, dynlib: dllname.}
proc addIPSCCPPass(pm: PassManagerRef) {.importc: "LLVMAddIPSCCPPass", cdecl, dynlib: dllname.}
proc addInternalizePass(pm: PassManagerRef; allButMain: cuint) {. importc: "LLVMAddInternalizePass", cdecl, dynlib: dllname.}
proc addStripDeadPrototypesPass(pm: PassManagerRef) {. importc: "LLVMAddStripDeadPrototypesPass", cdecl, dynlib: dllname.}
proc addStripSymbolsPass(pm: PassManagerRef) {. importc: "LLVMAddStripSymbolsPass", cdecl, dynlib: dllname.}