LLVM: lib/Analysis/IVUsers.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
INITIALIZE_PASS_BEGIN (IVUsersWrapperPass, "iv-users", "Induction Variable Users", false, true) INITIALIZE_PASS_END(IVUsersWrapperPass
static bool isInteresting (const SCEV *S, const Instruction *I, const Loop *L, ScalarEvolution *SE, LoopInfo *LI)
isInteresting - Test whether the given expression is "interesting" when used by the given expression, within the context of analyzing the given loop.
static bool IVUseShouldUsePostIncValue (Instruction *User, Value *Operand, const Loop *L, DominatorTree *DT)
IVUseShouldUsePostIncValue - We have discovered a "User" of an IV expression and now we need to decide whether the user should use the preinc or post-inc value.
static const SCEVAddRecExpr * findAddRecForLoop (const SCEV *S, const Loop *L)
Variables
iv users
iv Induction Variable Users
iv Induction Variable false

DEBUG_TYPE

#define DEBUG_TYPE "iv-users"

findAddRecForLoop()

INITIALIZE_PASS_BEGIN()

isInteresting()

isInteresting - Test whether the given expression is "interesting" when used by the given expression, within the context of analyzing the given loop.

Definition at line 56 of file IVUsers.cpp.

References llvm::Add, llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::ScalarEvolution::getSCEVAtScope(), I, and isInteresting().

Referenced by llvm::IVUsers::AddUsersIfInteresting(), llvm::ChangeReporter< IRUnitT >::handleIRAfterPass(), isInteresting(), llvm::PrintCrashIRInstrumentation::registerCallbacks(), llvm::ChangeReporter< IRUnitT >::saveIRBeforePass(), and shouldConvertOrWithNoCommonBitsToAdd().

IVUseShouldUsePostIncValue()

false

iv Induction Variable false

users

Users

iv Induction Variable Users

Definition at line 48 of file IVUsers.cpp.

Referenced by llvm::VPValue::addUser(), collectUsersRecursively(), llvm::DemotePHIToStack(), llvm::findDefsUsedOutsideOfLoop(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::mca::WriteState::getNumUsers(), llvm::VPValue::getNumUsers(), INITIALIZE_PASS(), insertTrivialPHIs(), isAllocSiteRemovable(), isPossibleIndirectCallTarget(), isProfitableChain(), legalizeAndOptimizeInductions(), llvm::VPValue::removeUser(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::VPValue::replaceUsesWithIf(), replaceWithConstant(), rewriteDebugUsers(), llvm::CoroAnnotationElidePass::run(), llvm::mca::WriteState::setEliminated(), sink(), llvm::MachineRegisterInfo::updateDbgUsersToReg(), llvm::VPValue::user_begin(), llvm::VPValue::user_end(), and llvm::InstCombinerImpl::visitAllocSite().