|
LLVM 22.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/ConstantRange.h"#include "llvm/IR/DerivedTypes.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/InstVisitor.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/NoFolder.h"#include "llvm/IR/PatternMatch.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 | llvm::getRange (Value *Op, SCCPSolver &Solver, const SmallPtrSetImpl< Value * > &InsertedValues) |
Helper for getting ranges from Solver. | |
| 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 Value * | llvm::simplifyInstruction (SCCPSolver &Solver, SmallPtrSetImpl< Value * > &InsertedValues, Instruction &Inst) |
Try to use Inst's value range from Solver to simplify it. | |
| 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 41 of file SCCPSolver.cpp.
|
static |
Returns MergeOptions with MaxWidenSteps set to MaxNumRangeExtensions.
Definition at line 48 of file SCCPSolver.cpp.
References MaxNumRangeExtensions, and llvm::ValueLatticeElement::MergeOptions::setMaxWidenSteps().
|
static |
Definition at line 1869 of file SCCPSolver.cpp.
References llvm::cast(), llvm::dyn_cast(), llvm::ConstantPointerNull::get(), llvm::getConstantRangeFromMetadata(), llvm::ValueLatticeElement::getNot(), llvm::ValueLatticeElement::getOverdefined(), llvm::ValueLatticeElement::getRange(), I, and Range.
Definition at line 45 of file SCCPSolver.cpp.
Referenced by getMaxWidenStepsOpts().