LLVM 20.0.0git
|
#include "llvm/Transforms/Utils/SCCPSolver.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/ValueLattice.h"
#include "llvm/Analysis/ValueLatticeUtils.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/Local.h"
#include <cassert>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
class | llvm::SCCPInstVisitor |
Helper class for SCCPSolver. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "sccp" |
Functions | |
static ValueLatticeElement::MergeOptions | getMaxWidenStepsOpts () |
Returns MergeOptions with MaxWidenSteps set to MaxNumRangeExtensions. | |
static bool | llvm::refineInstruction (SCCPSolver &Solver, const SmallPtrSetImpl< Value * > &InsertedValues, Instruction &Inst) |
Try to use Inst's value range from Solver to infer the NUW flag. | |
static bool | llvm::replaceSignedInst (SCCPSolver &Solver, SmallPtrSetImpl< Value * > &InsertedValues, Instruction &Inst) |
Try to replace signed instructions with their unsigned equivalent. | |
static void | llvm::inferAttribute (Function *F, unsigned AttrIndex, const ValueLatticeElement &Val) |
static ValueLatticeElement | getValueFromMetadata (const Instruction *I) |
Variables | |
static const unsigned | MaxNumRangeExtensions = 10 |
#define DEBUG_TYPE "sccp" |
Definition at line 34 of file SCCPSolver.cpp.
|
static |
Returns MergeOptions with MaxWidenSteps set to MaxNumRangeExtensions.
Definition at line 41 of file SCCPSolver.cpp.
References MaxNumRangeExtensions, and llvm::ValueLatticeElement::MergeOptions::setMaxWidenSteps().
|
static |
Definition at line 1701 of file SCCPSolver.cpp.
References llvm::ConstantPointerNull::get(), llvm::getConstantRangeFromMetadata(), llvm::ValueLatticeElement::getNot(), llvm::ValueLatticeElement::getOverdefined(), llvm::ValueLatticeElement::getRange(), I, and Range.
Definition at line 38 of file SCCPSolver.cpp.
Referenced by getMaxWidenStepsOpts().