class AlwaysInlinerPass

Declaration

class AlwaysInlinerPass : public PassInfoMixin { /* full declaration omitted */ };

Description

Inlines functions marked as "always_inline". Note that this does not inline call sites marked as always_inline and does not delete the functions even when all users are inlined. The normal inliner should be used to handle call site inlining, this pass's goal is to be the simplest possible pass to remove always_inline function definitions' uses by inlining them. The \c GlobalDCE pass can be used to remove these functions once all users are gone.

Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:32

Inherits from: PassInfoMixin

Member Variables

private bool InsertLifetime

Method Overview

  • public AlwaysInlinerPass(bool InsertLifetime = true)
  • public static bool isRequired()
  • public llvm::PreservedAnalyses run(llvm::Module & M, llvm::ModuleAnalysisManager &)

Methods

AlwaysInlinerPass(bool InsertLifetime = true)

Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:36

Parameters

bool InsertLifetime = true

static bool isRequired()

Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:40

llvm::PreservedAnalyses run(
    llvm::Module& M,
    llvm::ModuleAnalysisManager&)

Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:39

Parameters

llvm::Module& M
llvm::ModuleAnalysisManager&