16 #ifndef LLVM_LIB_TRANSFORMS_AGGRESSIVEINSTCOMBINE_COMBINEINTERNAL_H 17 #define LLVM_LIB_TRANSFORMS_AGGRESSIVEINSTCOMBINE_COMBINEINTERNAL_H 67 unsigned ValidBitWidth = 0;
69 unsigned MinBitWidth = 0;
71 Value *NewValue =
nullptr;
82 : TLI(TLI), DL(DL), DT(DT), CurrentTruncInst(nullptr) {}
92 bool buildTruncExpressionDag();
99 unsigned getMinBitWidth();
107 Type *getBestTruncatedType();
122 void ReduceExpressionDag(
Type *SclTy);
A parsed version of the target data layout string in and methods for querying it. ...
This class represents lattice values for constants.
This is the interface for a simple mod/ref and alias analysis over globals.
This class implements a map that also provides access to all stored values in a deterministic order...
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
This class represents a truncation of integer types.
Analysis containing CSE Info
The instances of the Type class are immutable: once they are created, they are never changed...
bool run(Function &F)
Perform TruncInst pattern optimization on given function.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
Provides information about what library functions are available for the current target.
LLVM Value Representation.
This is the interface for LLVM's primary stateless and local alias analysis.
TruncInstCombine(TargetLibraryInfo &TLI, const DataLayout &DL, const DominatorTree &DT)