#include "VPlanAnalysis.h"
#include "VPlan.h"
#include "VPlanCFG.h"
#include "VPlanDominatorTree.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Support/GenericDomTreeConstruction.h"
usingnamespacellvm;
#define DEBUG_TYPE …
Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPBlendRecipe *R) { … }
Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPInstruction *R) { … }
Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPWidenRecipe *R) { … }
Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPWidenCallRecipe *R) { … }
Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPWidenMemoryRecipe *R) { … }
Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPWidenSelectRecipe *R) { … }
Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPReplicateRecipe *R) { … }
Type *VPTypeAnalysis::inferScalarType(const VPValue *V) { … }
void llvm::collectEphemeralRecipesForVPlan(
VPlan &Plan, DenseSet<VPRecipeBase *> &EphRecipes) { … }
template void DomTreeBuilder::Calculate<DominatorTreeBase<VPBlockBase, false>>(
DominatorTreeBase<VPBlockBase, false> &DT);
bool VPDominatorTree::properlyDominates(const VPRecipeBase *A,
const VPRecipeBase *B) { … }