LLVM  8.0.1
Namespaces | Enumerations | Functions
IPO.h File Reference
#include "llvm/ADT/SmallVector.h"
#include <functional>
#include <vector>
Include dependency graph for IPO.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 

Enumerations

enum  llvm::PassSummaryAction { llvm::PassSummaryAction::None, llvm::PassSummaryAction::Import, llvm::PassSummaryAction::Export }
 What to do with the summary when running passes that operate on it. More...
 

Functions

ModulePass * llvm::createStripSymbolsPass (bool OnlyDebugInfo=false)
 
ModulePass * llvm::createStripNonDebugSymbolsPass ()
 
ModulePass * llvm::createStripDebugDeclarePass ()
 
ModulePass * llvm::createStripDeadDebugInfoPass ()
 
ModulePass * llvm::createConstantMergePass ()
 createConstantMergePass - This function returns a new pass that merges duplicate global constants together into a single constant that is shared. More...
 
ModulePassllvm::createGlobalOptimizerPass ()
 createGlobalOptimizerPass - This function returns a new pass that optimizes non-address taken internal globals. More...
 
ModulePass * llvm::createGlobalDCEPass ()
 createGlobalDCEPass - This transform is designed to eliminate unreachable internal globals (functions or global variables) More...
 
ModulePass * llvm::createEliminateAvailableExternallyPass ()
 This transform is designed to eliminate available external globals (functions or global variables) More...
 
ModulePassllvm::createGVExtractionPass (std::vector< GlobalValue *> &GVs, bool deleteFn=false)
 createGVExtractionPass - If deleteFn is true, this pass deletes the specified global values. More...
 
Passllvm::createFunctionImportPass ()
 This pass performs iterative function importing from other modules. More...
 
Passllvm::createFunctionInliningPass ()
 createFunctionInliningPass - Return a new pass object that uses a heuristic to inline direct function calls to small functions. More...
 
Passllvm::createFunctionInliningPass (int Threshold)
 
Passllvm::createFunctionInliningPass (unsigned OptLevel, unsigned SizeOptLevel, bool DisableInlineHotCallSite)
 
Passllvm::createFunctionInliningPass (InlineParams &Params)
 
Passllvm::createPruneEHPass ()
 createPruneEHPass - Return a new pass object which transforms invoke instructions into calls, if the callee can not unwind the stack. More...
 
ModulePassllvm::createInternalizePass (std::function< bool(const GlobalValue &)> MustPreserveGV)
 createInternalizePass - This pass loops over all of the functions in the input module, internalizing all globals (functions and variables) it can. More...
 
ModulePass * llvm::createInternalizePass ()
 createInternalizePass - Same as above, but with an empty exportList. More...
 
ModulePass * llvm::createDeadArgEliminationPass ()
 createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function. More...
 
ModulePassllvm::createDeadArgHackingPass ()
 DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well. More...
 
Passllvm::createArgumentPromotionPass (unsigned maxElements=3)
 createArgumentPromotionPass - This pass promotes "by reference" arguments to be passed by value if the number of elements passed is smaller or equal to maxElements (maxElements == 0 means always promote). More...
 
ModulePass * llvm::createIPConstantPropagationPass ()
 createIPConstantPropagationPass - This pass propagates constants from call sites into the bodies of functions. More...
 
ModulePassllvm::createIPSCCPPass ()
 createIPSCCPPass - This pass propagates constants from call sites into the bodies of functions, and keeps track of whether basic blocks are executable in the process. More...
 
Passllvm::createLoopExtractorPass ()
 createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can. More...
 
Passllvm::createSingleLoopExtractorPass ()
 createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can. More...
 
ModulePass * llvm::createBlockExtractorPass ()
 createBlockExtractorPass - This pass extracts all the specified blocks from the functions in the module. More...
 
ModulePassllvm::createBlockExtractorPass (const SmallVectorImpl< BasicBlock *> &BlocksToExtract, bool EraseFunctions)
 
ModulePass * llvm::createStripDeadPrototypesPass ()
 createStripDeadPrototypesPass - This pass removes any function declarations (prototypes) that are not used. More...
 
Passllvm::createReversePostOrderFunctionAttrsPass ()
 createReversePostOrderFunctionAttrsPass - This pass walks SCCs of the call graph in RPO to deduce and propagate function attributes. More...
 
ModulePassllvm::createMergeFunctionsPass ()
 createMergeFunctionsPass - This pass discovers identical functions and collapses them. More...
 
ModulePassllvm::createHotColdSplittingPass ()
 createHotColdSplittingPass - This pass outlines cold blocks into a separate function(s). More...
 
ModulePassllvm::createPartialInliningPass ()
 createPartialInliningPass - This pass inlines parts of functions. More...
 
ModulePassllvm::createBarrierNoopPass ()
 createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager. More...
 
ModulePass * llvm::createCalledValuePropagationPass ()
 createCalledValuePropagationPass - Attach metadata to indirct call sites indicating the set of functions they may target at run-time. More...
 
ModulePass * llvm::createLowerTypeTestsPass (ModuleSummaryIndex *ExportSummary, const ModuleSummaryIndex *ImportSummary)
 This pass lowers type metadata and the llvm.type.test intrinsic to bitsets. More...
 
ModulePass * llvm::createCrossDSOCFIPass ()
 This pass export CFI checks for use by external modules. More...
 
ModulePassllvm::createWholeProgramDevirtPass (ModuleSummaryIndex *ExportSummary, const ModuleSummaryIndex *ImportSummary)
 This pass implements whole-program devirtualization using type metadata. More...
 
ModulePassllvm::createGlobalSplitPass ()
 This pass splits globals into pieces for the benefit of whole-program devirtualization and control-flow integrity. More...
 
ModulePassllvm::createSampleProfileLoaderPass ()
 
ModulePassllvm::createSampleProfileLoaderPass (StringRef Name)
 
ModulePassllvm::createWriteThinLTOBitcodePass (raw_ostream &Str, raw_ostream *ThinLinkOS=nullptr)
 Write ThinLTO-ready bitcode to Str. More...