Example #1
0
llvm::InlineCost ExtremeInliner::getInlineCost(llvm::CallSite callSite)
{
    llvm::Function *caller = callSite.getCaller();

    if (caller != m_function) {
        return llvm::InlineCost::getNever();
    }

    const llvm::Type *type = callSite.getType();
    if (!m_inlineVoids && (type->isVoidTy() || type->isFloatTy() || type->isDoubleTy() || llvm::isa<llvm::PointerType>(type))) {
        return llvm::InlineCost::getNever();
    }

    return llvm::InlineCost::getAlways();
}