LLVM 20.0.0git
|
#include "llvm/Transforms/Scalar/GuardWidening.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/GuardUtils.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/MemorySSAUpdater.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/GuardUtils.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
#include <functional>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "guard-widening" |
Functions | |
STATISTIC (GuardsEliminated, "Number of eliminated guards") | |
STATISTIC (CondBranchEliminated, "Number of eliminated conditional branches") | |
STATISTIC (FreezeAdded, "Number of freeze instruction introduced") | |
static bool | isSupportedGuardInstruction (const Instruction *Insn) |
static std::optional< BasicBlock::iterator > | getFreezeInsertPt (Value *V, const DominatorTree &DT) |
Variables | |
static cl::opt< bool > | WidenBranchGuards ("guard-widening-widen-branch-guards", cl::Hidden, cl::desc("Whether or not we should widen guards " "expressed as branches by widenable conditions"), cl::init(true)) |
#define DEBUG_TYPE "guard-widening" |
Definition at line 66 of file GuardWidening.cpp.
|
static |
Definition at line 604 of file GuardWidening.cpp.
References llvm::any_of(), llvm::DominatorTree::dominates(), llvm::BasicBlock::getFirstNonPHIOrDbgOrAlloca(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getRoot(), and I.
|
static |
Definition at line 333 of file GuardWidening.cpp.
References Insn, llvm::isGuard(), llvm::isGuardAsWidenableBranch(), and WidenBranchGuards.
STATISTIC | ( | CondBranchEliminated | , |
"Number of eliminated conditional branches" | |||
) |
STATISTIC | ( | FreezeAdded | , |
"Number of freeze instruction introduced" | |||
) |
STATISTIC | ( | GuardsEliminated | , |
"Number of eliminated guards" | |||
) |
|
static |
Referenced by isSupportedGuardInstruction().