|
LLVM
3.7.0
|
#include "llvm/Transforms/Scalar.h"#include "llvm/ADT/MapVector.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallBitVector.h"#include "llvm/ADT/SmallSet.h"#include "llvm/ADT/Statistic.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/AliasSetTracker.h"#include "llvm/Analysis/LoopPass.h"#include "llvm/Analysis/ScalarEvolution.h"#include "llvm/Analysis/ScalarEvolutionExpander.h"#include "llvm/Analysis/ScalarEvolutionExpressions.h"#include "llvm/Analysis/TargetLibraryInfo.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Transforms/Utils/BasicBlockUtils.h"#include "llvm/Transforms/Utils/Local.h"#include "llvm/Transforms/Utils/LoopUtils.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "loop-reroll" |
Enumerations | |
| enum | IterationLimits |
Functions | |
| STATISTIC (NumRerolledLoops,"Number of rerolled loops") | |
| static bool | hasUsesOutsideLoop (Instruction *I, Loop *L) |
| static bool | isSimpleLoadStore (Instruction *I) |
| static bool | isSimpleArithmeticOp (User *IVU) |
| Return true if IVU is a "simple" arithmetic operation. More... | |
| static bool | isLoopIncrement (User *U, Instruction *IV) |
Variables | |
| static cl::opt< unsigned > | MaxInc ("max-reroll-increment", cl::init(2048), cl::Hidden, cl::desc("The maximum increment for loop rerolling")) |
| static cl::opt< unsigned > | NumToleratedFailedMatches ("reroll-num-tolerated-failed-matches", cl::init(400), cl::Hidden, cl::desc("The maximum number of failures to tolerate"" during fuzzy matching. (default: 400)")) |
| #define DEBUG_TYPE "loop-reroll" |
Definition at line 40 of file LoopRerollPass.cpp.
| enum IterationLimits |
Definition at line 130 of file LoopRerollPass.cpp.
|
static |
Definition at line 459 of file LoopRerollPass.cpp.
References llvm::LoopBase< N, M >::contains(), and llvm::Value::users().
|
static |
Definition at line 657 of file LoopRerollPass.cpp.
References llvm::dyn_cast(), llvm::BinaryOperator::getOpcode(), and llvm::Value::users().
Return true if IVU is a "simple" arithmetic operation.
This is used for narrowing the search space for DAGRoots; only arithmetic and GEPs can be part of a DAGRoot.
Definition at line 637 of file LoopRerollPass.cpp.
References llvm::Instruction::getOpcode().
|
static |
Definition at line 624 of file LoopRerollPass.cpp.
References llvm::AArch64CC::MI, and SI.
| STATISTIC | ( | NumRerolledLoops | , |
| "Number of rerolled loops" | |||
| ) |
|
static |
1.8.6