LLVM 22.0.0git
llvm::NoRecurseLTOInferencePass Class Reference

Additional 'norecurse' attribute deduction during postlink LTO phase. More...

#include "llvm/Transforms/IPO/FunctionAttrs.h"

Inheritance diagram for llvm::NoRecurseLTOInferencePass:
[legend]

Public Member Functions

LLVM_ABI PreservedAnalyses run (Module &M, ModuleAnalysisManager &MAM)
Public Member Functions inherited from llvm::PassInfoMixin< NoRecurseLTOInferencePass >
void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)

Additional Inherited Members

Static Public Member Functions inherited from llvm::PassInfoMixin< NoRecurseLTOInferencePass >
static StringRef name ()
 Gets the name of the pass we are mixed into.

Detailed Description

Additional 'norecurse' attribute deduction during postlink LTO phase.

This is a module pass that infers 'norecurse' attribute on functions. It runs during LTO and analyzes the module's call graph to find functions that are guaranteed not to call themselves, either directly or indirectly. The pass uses a module-wide flag which checks if any function's address is taken or any function in the module has external linkage, to safely handle indirect and library function calls from current function.

Definition at line 90 of file FunctionAttrs.h.

Member Function Documentation

◆ run()


The documentation for this class was generated from the following files: