Lines Matching refs:SCCPSolver

55 bool SCCPSolver::isConstant(const ValueLatticeElement &LV) {  in isConstant()
60 bool SCCPSolver::isOverdefined(const ValueLatticeElement &LV) { in isOverdefined()
61 return !LV.isUnknownOrUndef() && !SCCPSolver::isConstant(LV); in isOverdefined()
76 bool SCCPSolver::tryToReplaceWithConstant(Value *V) { in tryToReplaceWithConstant()
107 static bool refineInstruction(SCCPSolver &Solver, in refineInstruction()
155 static bool replaceSignedInst(SCCPSolver &Solver, in replaceSignedInst()
221 bool SCCPSolver::simplifyInstsInBlock(BasicBlock &BB, in simplifyInstsInBlock()
245 bool SCCPSolver::removeNonFeasibleEdges(BasicBlock *BB, DomTreeUpdater &DTU, in removeNonFeasibleEdges()
894 if (!SCCPSolver::isConstant(LV)) in isStructLatticeConstant()
920 if (any_of(LVs, SCCPSolver::isOverdefined)) in getConstantOrNull()
926 ConstVals.push_back(SCCPSolver::isConstant(LV) in getConstantOrNull()
933 if (SCCPSolver::isOverdefined(LV)) in getConstantOrNull()
935 Const = SCCPSolver::isConstant(LV) ? getConstant(LV, V->getType()) in getConstantOrNull()
1332 if (SCCPSolver::isOverdefined(ValueState[&IVI])) in visitInsertValueInst()
1404 if (SCCPSolver::isOverdefined(IV)) in visitUnaryOperator()
1411 if (SCCPSolver::isConstant(V0State)) in visitUnaryOperator()
1429 if (SCCPSolver::isOverdefined(IV)) in visitFreezeInst()
1436 if (SCCPSolver::isConstant(V0State) && in visitFreezeInst()
1462 Value *V1 = SCCPSolver::isConstant(V1State) in visitBinaryOperator()
1465 Value *V2 = SCCPSolver::isConstant(V2State) in visitBinaryOperator()
1501 if (SCCPSolver::isOverdefined(ValueState[&I])) in visitCmpInst()
1522 !SCCPSolver::isConstant(ValueState[&I])) in visitCmpInst()
1531 if (SCCPSolver::isOverdefined(ValueState[&I])) in visitGetElementPtrInst()
1542 if (SCCPSolver::isOverdefined(State)) in visitGetElementPtrInst()
1607 if (SCCPSolver::isConstant(PtrVal)) { in visitLoadInst()
1668 if (SCCPSolver::isOverdefined(State)) in handleCallOverdefined()
1670 assert(SCCPSolver::isConstant(State) && "Unknown state!"); in handleCallOverdefined()
1674 if (SCCPSolver::isOverdefined(getValueState(&CB))) in handleCallOverdefined()
1982 SCCPSolver::SCCPSolver( in SCCPSolver() function in SCCPSolver
1988 SCCPSolver::~SCCPSolver() = default;
1990 void SCCPSolver::addPredicateInfo(Function &F, DominatorTree &DT, in addPredicateInfo()
1995 bool SCCPSolver::markBlockExecutable(BasicBlock *BB) { in markBlockExecutable()
1999 const PredicateBase *SCCPSolver::getPredicateInfoFor(Instruction *I) { in getPredicateInfoFor()
2003 void SCCPSolver::trackValueOfGlobalVariable(GlobalVariable *GV) { in trackValueOfGlobalVariable()
2007 void SCCPSolver::addTrackedFunction(Function *F) { in addTrackedFunction()
2011 void SCCPSolver::addToMustPreserveReturnsInFunctions(Function *F) { in addToMustPreserveReturnsInFunctions()
2015 bool SCCPSolver::mustPreserveReturn(Function *F) { in mustPreserveReturn()
2019 void SCCPSolver::addArgumentTrackedFunction(Function *F) { in addArgumentTrackedFunction()
2023 bool SCCPSolver::isArgumentTrackedFunction(Function *F) { in isArgumentTrackedFunction()
2027 void SCCPSolver::solve() { Visitor->solve(); } in solve()
2029 bool SCCPSolver::resolvedUndefsIn(Function &F) { in resolvedUndefsIn()
2033 void SCCPSolver::solveWhileResolvedUndefsIn(Module &M) { in solveWhileResolvedUndefsIn()
2038 SCCPSolver::solveWhileResolvedUndefsIn(SmallVectorImpl<Function *> &WorkList) { in solveWhileResolvedUndefsIn()
2042 void SCCPSolver::solveWhileResolvedUndefs() { in solveWhileResolvedUndefs()
2046 bool SCCPSolver::isBlockExecutable(BasicBlock *BB) const { in isBlockExecutable()
2050 bool SCCPSolver::isEdgeFeasible(BasicBlock *From, BasicBlock *To) const { in isEdgeFeasible()
2055 SCCPSolver::getStructLatticeValueFor(Value *V) const { in getStructLatticeValueFor()
2059 void SCCPSolver::removeLatticeValueFor(Value *V) { in removeLatticeValueFor()
2063 void SCCPSolver::resetLatticeValueFor(CallBase *Call) { in resetLatticeValueFor()
2067 const ValueLatticeElement &SCCPSolver::getLatticeValueFor(Value *V) const { in getLatticeValueFor()
2072 SCCPSolver::getTrackedRetVals() { in getTrackedRetVals()
2077 SCCPSolver::getTrackedGlobals() { in getTrackedGlobals()
2081 const SmallPtrSet<Function *, 16> SCCPSolver::getMRVFunctionsTracked() { in getMRVFunctionsTracked()
2085 void SCCPSolver::markOverdefined(Value *V) { Visitor->markOverdefined(V); } in markOverdefined()
2087 bool SCCPSolver::isStructLatticeConstant(Function *F, StructType *STy) { in isStructLatticeConstant()
2091 Constant *SCCPSolver::getConstant(const ValueLatticeElement &LV, in getConstant()
2096 Constant *SCCPSolver::getConstantOrNull(Value *V) const { in getConstantOrNull()
2100 SmallPtrSetImpl<Function *> &SCCPSolver::getArgumentTrackedFunctions() { in getArgumentTrackedFunctions()
2104 void SCCPSolver::setLatticeValueForSpecializationArguments(Function *F, in setLatticeValueForSpecializationArguments()
2109 void SCCPSolver::markFunctionUnreachable(Function *F) { in markFunctionUnreachable()
2113 void SCCPSolver::visit(Instruction *I) { Visitor->visit(I); } in visit()
2115 void SCCPSolver::visitCall(CallInst &I) { Visitor->visitCall(I); } in visitCall()