LLVM 18.0.0git
|
This is the LLVM vectorization plan. More...
#include "VPlan.h"
#include "VPlanCFG.h"
#include "VPlanDominatorTree.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/GenericDomTreeConstruction.h"
#include "llvm/Support/GraphWriter.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/LoopVersioning.h"
#include "llvm/Transforms/Utils/ScalarEvolutionExpander.h"
#include <cassert>
#include <string>
#include <vector>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "vplan" |
Functions | |
template<typename T > | |
static T * | getPlanEntry (T *Start) |
static bool | hasConditionalTerminator (const VPBasicBlock *VPBB) |
This is the LLVM vectorization plan.
It represents a candidate for vectorization, allowing to plan and optimize how to vectorize a given loop before generating LLVM-IR. The vectorizer uses vectorization plans to estimate the costs of potential candidates and if profitable to execute the desired plan, generating vector LLVM-IR code.
Definition in file VPlan.cpp.
Definition at line 126 of file VPlan.cpp.
References llvm::SetVector< T, Vector, Set, N >::insert(), llvm_unreachable, and llvm::SetVector< T, Vector, Set, N >::size().
Referenced by llvm::VPBlockBase::getPlan().
|
static |
Definition at line 545 of file VPlan.cpp.
References assert(), llvm::VPBasicBlock::back(), llvm::VPInstruction::BranchOnCond, llvm::VPInstruction::BranchOnCount, llvm::VPBasicBlock::empty(), llvm::VPBlockBase::getNumSuccessors(), IsCondBranch(), and llvm::VPBasicBlock::isExiting().
Referenced by llvm::VPBasicBlock::getTerminator().