File indexing completed on 2026-05-10 08:44:41
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef LLVM_TRANSFORMS_SCALAR_ALIGNMENTFROMASSUMPTIONS_H
0018 #define LLVM_TRANSFORMS_SCALAR_ALIGNMENTFROMASSUMPTIONS_H
0019
0020 #include "llvm/IR/PassManager.h"
0021
0022 namespace llvm {
0023
0024 class AssumptionCache;
0025 class CallInst;
0026 class DominatorTree;
0027 class ScalarEvolution;
0028 class SCEV;
0029 class Value;
0030
0031 struct AlignmentFromAssumptionsPass
0032 : public PassInfoMixin<AlignmentFromAssumptionsPass> {
0033 PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
0034
0035
0036 bool runImpl(Function &F, AssumptionCache &AC, ScalarEvolution *SE_,
0037 DominatorTree *DT_);
0038
0039 ScalarEvolution *SE = nullptr;
0040 DominatorTree *DT = nullptr;
0041
0042 bool extractAlignmentInfo(CallInst *I, unsigned Idx, Value *&AAPtr,
0043 const SCEV *&AlignSCEV, const SCEV *&OffSCEV);
0044 bool processAssumption(CallInst *I, unsigned Idx);
0045 };
0046 }
0047
0048 #endif