LLVM 24.0.0git
LoopDistribute.cpp File Reference
#include "llvm/Transforms/Scalar/LoopDistribute.h"
#include "ScalarOptions.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/LoopAccessAnalysis.h"
#include "llvm/Analysis/LoopAnalysisManager.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
#include "llvm/Transforms/Utils/LoopVersioning.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
#include <cassert>
#include <list>
#include <tuple>

Go to the source code of this file.

Macros

#define LDIST_NAME   "loop-distribute"
#define DEBUG_TYPE   LDIST_NAME

Functions

 STATISTIC (NumLoopsDistributed, "Number of loops distributed")
static bool runImpl (Function &F, LoopInfo *LI, DominatorTree *DT, ScalarEvolution *SE, OptimizationRemarkEmitter *ORE, LoopAccessInfoManager &LAIs)

Variables

static const char * DistributedMetaData = "llvm.loop.isdistributed"
static const char *const LLVMLoopDistributeFollowupAll
static const char *const LLVMLoopDistributeFollowupCoincident
static const char *const LLVMLoopDistributeFollowupSequential
static const char *const LLVMLoopDistributeFollowupFallback

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   LDIST_NAME

Definition at line 72 of file LoopDistribute.cpp.

◆ LDIST_NAME

#define LDIST_NAME   "loop-distribute"

Definition at line 71 of file LoopDistribute.cpp.

Function Documentation

◆ runImpl()

◆ STATISTIC()

STATISTIC ( NumLoopsDistributed ,
"Number of loops distributed"  )

References I.

Variable Documentation

◆ DistributedMetaData

const char* DistributedMetaData = "llvm.loop.isdistributed"
static

Definition at line 86 of file LoopDistribute.cpp.

Referenced by runImpl().

◆ LLVMLoopDistributeFollowupAll

const char* const LLVMLoopDistributeFollowupAll
static
Initial value:
=
"llvm.loop.distribute.followup_all"

Metadata attribute names

Definition at line 76 of file LoopDistribute.cpp.

◆ LLVMLoopDistributeFollowupCoincident

const char* const LLVMLoopDistributeFollowupCoincident
static
Initial value:
=
"llvm.loop.distribute.followup_coincident"

Definition at line 78 of file LoopDistribute.cpp.

◆ LLVMLoopDistributeFollowupFallback

const char* const LLVMLoopDistributeFollowupFallback
static
Initial value:
=
"llvm.loop.distribute.followup_fallback"

Definition at line 82 of file LoopDistribute.cpp.

◆ LLVMLoopDistributeFollowupSequential

const char* const LLVMLoopDistributeFollowupSequential
static
Initial value:
=
"llvm.loop.distribute.followup_sequential"

Definition at line 80 of file LoopDistribute.cpp.