LLVM
17.0.0git
|
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Pass.h"
#include "llvm/Support/Allocator.h"
#include <algorithm>
#include <optional>
#include <utility>
Go to the source code of this file.
Classes | |
class | llvm::DominatorTreeBase< NodeT, IsPostDom > |
Core dominator tree base class. More... | |
class | llvm::LoopInfoBase< BlockT, LoopT > |
This class builds and contains all of the top-level loop structures in the specified function. More... | |
class | llvm::LoopBase< BlockT, LoopT > |
Instances of this class are used to represent loops that are detected in the flow graph. More... | |
class | llvm::LoopBase< BlockT, LoopT > |
Instances of this class are used to represent loops that are detected in the flow graph. More... | |
class | llvm::Loop |
Represents a single loop in the control flow graph. More... | |
class | llvm::Loop::LocRange |
A range representing the start and end location of a loop. More... | |
struct | llvm::Loop::LoopBounds |
Below are some utilities to get the loop guard, loop bounds and induction variable, and to check if a given phinode is an auxiliary induction variable, if the loop is guarded, and if the loop is canonical. More... | |
class | llvm::LoopInfoBase< BlockT, LoopT > |
This class builds and contains all of the top-level loop structures in the specified function. More... | |
class | llvm::LoopInfo |
struct | llvm::GraphTraits< const Loop * > |
struct | llvm::GraphTraits< Loop * > |
class | llvm::LoopAnalysis |
Analysis pass that exposes the LoopInfo for a function. More... | |
class | llvm::LoopPrinterPass |
Printer pass for the LoopAnalysis results. More... | |
struct | llvm::LoopVerifierPass |
Verifier pass for the LoopAnalysis results. More... | |
class | llvm::LoopInfoWrapperPass |
The legacy pass manager's analysis pass to compute loop information. More... | |
Namespaces | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
Functions | |
template<class BlockT , class LoopT > | |
raw_ostream & | llvm::operator<< (raw_ostream &OS, const LoopBase< BlockT, LoopT > &Loop) |
void | llvm::printLoop (Loop &L, raw_ostream &OS, const std::string &Banner="") |
Function to print a loop's contents as LLVM's text IR assembly. More... | |
MDNode * | llvm::findOptionMDForLoopID (MDNode *LoopID, StringRef Name) |
Find and return the loop attribute node for the attribute Name in LoopID . More... | |
MDNode * | llvm::findOptionMDForLoop (const Loop *TheLoop, StringRef Name) |
Find string metadata for a loop. More... | |
std::optional< bool > | llvm::getOptionalBoolLoopAttribute (const Loop *TheLoop, StringRef Name) |
bool | llvm::getBooleanLoopAttribute (const Loop *TheLoop, StringRef Name) |
Returns true if Name is applied to TheLoop and enabled. More... | |
std::optional< int > | llvm::getOptionalIntLoopAttribute (const Loop *TheLoop, StringRef Name) |
Find named metadata for a loop with an integer value. More... | |
int | llvm::getIntLoopAttribute (const Loop *TheLoop, StringRef Name, int Default=0) |
Find named metadata for a loop with an integer value. More... | |
std::optional< const MDOperand * > | llvm::findStringMetadataForLoop (const Loop *TheLoop, StringRef Name) |
Find string metadata for loop. More... | |
bool | llvm::hasMustProgress (const Loop *L) |
Look for the loop attribute that requires progress within the loop. More... | |
bool | llvm::isMustProgress (const Loop *L) |
Return true if this loop can be assumed to make progress. More... | |
bool | llvm::isFinite (const Loop *L) |
Return true if this loop can be assumed to run for a finite number of iterations. More... | |
bool | llvm::isValidAsAccessGroup (MDNode *AccGroup) |
Return whether an MDNode might represent an access group. More... | |
llvm::MDNode * | llvm::makePostTransformationMetadata (llvm::LLVMContext &Context, MDNode *OrigLoopID, llvm::ArrayRef< llvm::StringRef > RemovePrefixes, llvm::ArrayRef< llvm::MDNode * > AddAttrs) |
Create a new LoopID after the loop has been transformed. More... | |
Variables | |
bool | llvm::VerifyLoopInfo = false |
Enable verification of loop info. More... | |