LLVM
8.0.1
|
This file defines the LoopVectorizationLegality class. More...
#include "llvm/ADT/MapVector.h"
#include "llvm/Analysis/LoopAccessAnalysis.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
Go to the source code of this file.
Classes | |
class | llvm::LoopVectorizeHints |
Utility class for getting and setting loop vectorizer hints in the form of loop metadata. More... | |
class | llvm::LoopVectorizationRequirements |
This holds vectorization requirements that must be verified late in the process. More... | |
class | llvm::LoopVectorizationLegality |
LoopVectorizationLegality checks if it is legal to vectorize a loop, and to what vectorization factor. More... | |
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
Functions | |
OptimizationRemarkAnalysis | llvm::createLVMissedAnalysis (const char *PassName, StringRef RemarkName, Loop *TheLoop, Instruction *I=nullptr) |
Create an analysis remark that explains why vectorization failed. More... | |
This file defines the LoopVectorizationLegality class.
Original code in Loop Vectorizer has been moved out to its own file for modularity and reusability.
Currently, it works for innermost loop vectorization. Extending this to outer loop vectorization is a TODO item.
Also provides: 1) LoopVectorizeHints class which keeps a number of loop annotations locally for easy look up. It has the ability to write them back as loop metadata, upon request. 2) LoopVectorizationRequirements class for lazy bail out for the purpose of reporting useful failure to vectorize message.
Definition in file LoopVectorizationLegality.h.