LLVM 20.0.0git
Classes | Namespaces | Macros | Functions | Variables
SCCPSolver.cpp File Reference
#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
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "sccp"

Definition at line 34 of file SCCPSolver.cpp.

Function Documentation

◆ getMaxWidenStepsOpts()

static ValueLatticeElement::MergeOptions getMaxWidenStepsOpts ( )
static

Returns MergeOptions with MaxWidenSteps set to MaxNumRangeExtensions.

Definition at line 41 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 38 of file SCCPSolver.cpp.

Referenced by getMaxWidenStepsOpts().