16#ifndef LLVM_TRANSFORMS_INSTCOMBINE_INSTCOMBINE_H
17#define LLVM_TRANSFORMS_INSTCOMBINE_INSTCOMBINE_H
23#define DEBUG_TYPE "instcombine"
This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
Represent the analysis usage information of a pass.
FunctionPass class - This class is used to implement most global optimizations.
void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
The legacy pass manager's instcombine pass.
InstructionCombiningPass()
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
InstructionWorklist - This is the worklist management logic for InstCombine and other simplification ...
A set of analyses that are preserved following a run of a transformation pass.
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
An efficient, type-erasing, non-owning reference to a callable.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
FunctionPass * createInstructionCombiningPass()
static constexpr unsigned InstCombineDefaultMaxIterations
InstCombineOptions & setMaxIterations(unsigned Value)
InstCombineOptions & setVerifyFixpoint(bool Value)
InstCombineOptions()=default
InstCombineOptions & setUseLoopInfo(bool Value)
A CRTP mix-in to automatically provide informational APIs needed for passes.