LLVM 24.0.0git
VPlanAnalysis.cpp File Reference

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.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "vplan"

Definition at line 25 of file VPlanAnalysis.cpp.

Function Documentation

◆ getBaseObject()

const Value * getBaseObject ( VPValue * Ptr)
static

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().

◆ provablyDistinctObjects()

bool provablyDistinctObjects ( AAResults & AA,
const Value * ObjA,
const Value * ObjB )
static

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().

◆ writesDisjointLocationsPerIteration()

bool writesDisjointLocationsPerIteration ( VPValue * Addr,
Type * StoredTy,
VPBasicBlock * VPBB,
VPBasicBlock * Latch,
const VPDominatorTree & VPDT,
PredicatedScalarEvolution & PSE,
const Loop * OuterLoop )
static