LLVM 20.0.0git
|
This file defines the LoopVectorizationLegality class. More...
#include "llvm/ADT/MapVector.h"
#include "llvm/Analysis/LoopAccessAnalysis.h"
#include "llvm/Support/TypeSize.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... | |
struct | llvm::HistogramInfo |
This holds details about a histogram operation – a load -> update -> store sequence where each lane in a vector might be updating the same element as another lane. More... | |
class | llvm::LoopVectorizationLegality |
LoopVectorizationLegality checks if it is legal to vectorize a loop, and to what vectorization factor. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
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.