|
LLVM 24.0.0git
|
#include "VPlanAnalysis.h"#include "LoopVectorizationPlanner.h"#include "VPlan.h"#include "VPlanCFG.h"#include "VPlanDominatorTree.h"#include "VPlanHelpers.h"#include "VPlanPatternMatch.h"#include "VPlanUtils.h"#include "llvm/ADT/PostOrderIterator.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/ScalarEvolutionExpressions.h"#include "llvm/Analysis/TargetTransformInfo.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "vplan" |
Functions | |
| static const Value * | getBaseObject (VPValue *Ptr) |
Returns the live-in IR value Ptr is based on, looking through GEPs, or nullptr if there is none. | |
| static bool | provablyDistinctObjects (AAResults &AA, const Value *ObjA, const Value *ObjB) |
Returns true if ObjA and ObjB are known and AA proves they don't alias. | |
| static bool | writesDisjointLocationsPerIteration (VPValue *Addr, Type *StoredTy, VPBasicBlock *VPBB, VPBasicBlock *Latch, const VPDominatorTree &VPDT, PredicatedScalarEvolution &PSE, const Loop *OuterLoop) |
Returns true if a store of StoredTy to Addr in VPBB writes different locations on each iteration of OuterLoop. | |
| #define DEBUG_TYPE "vplan" |
Definition at line 25 of file VPlanAnalysis.cpp.
Returns the live-in IR value Ptr is based on, looking through GEPs, or nullptr if there is none.
Definition at line 350 of file VPlanAnalysis.cpp.
References llvm::dyn_cast().
Referenced by llvm::proveOuterLoopMemorySafety().
Returns true if ObjA and ObjB are known and AA proves they don't alias.
Definition at line 362 of file VPlanAnalysis.cpp.
Referenced by llvm::proveOuterLoopMemorySafety().
|
static |
Returns true if a store of StoredTy to Addr in VPBB writes different locations on each iteration of OuterLoop.
Definition at line 369 of file VPlanAnalysis.cpp.
References llvm::DominatorTreeBase< NodeT, IsPostDom >::dominates(), llvm::dyn_cast(), GEP, llvm::vputils::getConstantStride(), llvm::VPlan::getDataLayout(), llvm::VPBlockBase::getPlan(), llvm::vputils::getSCEVExprForVPValue(), llvm::hasIrregularType(), and llvm::isa().
Referenced by llvm::proveOuterLoopMemorySafety().