LLVM 19.0.0git
Classes | Namespaces | Macros | Functions | Variables
SCCPSolver.cpp File Reference
#include "llvm/Transforms/Utils/SCCPSolver.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 ConstantRange getConstantRange (const ValueLatticeElement &LV, Type *Ty, bool UndefAllowed=true)
 
static bool llvm::canRemoveInstruction (Instruction *I)
 
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 ValueLatticeElement getValueFromMetadata (const Instruction *I)
 

Variables

static const unsigned MaxNumRangeExtensions = 10
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "sccp"

Definition at line 33 of file SCCPSolver.cpp.

Function Documentation

◆ getConstantRange()

static ConstantRange getConstantRange ( const ValueLatticeElement LV,
Type Ty,
bool  UndefAllowed = true 
)
static

◆ getMaxWidenStepsOpts()

static ValueLatticeElement::MergeOptions getMaxWidenStepsOpts ( )
static

Returns MergeOptions with MaxWidenSteps set to MaxNumRangeExtensions.

Definition at line 40 of file SCCPSolver.cpp.

References MaxNumRangeExtensions, and llvm::ValueLatticeElement::MergeOptions::setMaxWidenSteps().

◆ getValueFromMetadata()

static ValueLatticeElement getValueFromMetadata ( const Instruction I)
static

Variable Documentation

◆ MaxNumRangeExtensions

const unsigned MaxNumRangeExtensions = 10
static

Definition at line 37 of file SCCPSolver.cpp.

Referenced by getMaxWidenStepsOpts().