Lines Matching refs:SCCPSolver
47 bool SCCPSolver::isConstant(const ValueLatticeElement &LV) { in isConstant()
52 bool SCCPSolver::isOverdefined(const ValueLatticeElement &LV) { in isOverdefined()
53 return !LV.isUnknownOrUndef() && !SCCPSolver::isConstant(LV); in isOverdefined()
68 bool SCCPSolver::tryToReplaceWithConstant(Value *V) { in tryToReplaceWithConstant()
99 static bool refineInstruction(SCCPSolver &Solver, in refineInstruction()
168 static bool replaceSignedInst(SCCPSolver &Solver, in replaceSignedInst()
237 bool SCCPSolver::simplifyInstsInBlock(BasicBlock &BB, in simplifyInstsInBlock()
261 bool SCCPSolver::removeNonFeasibleEdges(BasicBlock *BB, DomTreeUpdater &DTU, in removeNonFeasibleEdges()
938 if (!SCCPSolver::isConstant(LV)) in isStructLatticeConstant()
964 if (any_of(LVs, SCCPSolver::isOverdefined)) in getConstantOrNull()
970 ConstVals.push_back(SCCPSolver::isConstant(LV) in getConstantOrNull()
977 if (SCCPSolver::isOverdefined(LV)) in getConstantOrNull()
979 Const = SCCPSolver::isConstant(LV) ? getConstant(LV, V->getType()) in getConstantOrNull()
1370 if (SCCPSolver::isOverdefined(ValueState[&IVI])) in visitInsertValueInst()
1442 if (SCCPSolver::isOverdefined(IV)) in visitUnaryOperator()
1449 if (SCCPSolver::isConstant(V0State)) in visitUnaryOperator()
1467 if (SCCPSolver::isOverdefined(IV)) in visitFreezeInst()
1474 if (SCCPSolver::isConstant(V0State) && in visitFreezeInst()
1500 Value *V1 = SCCPSolver::isConstant(V1State) in visitBinaryOperator()
1503 Value *V2 = SCCPSolver::isConstant(V2State) in visitBinaryOperator()
1547 if (SCCPSolver::isOverdefined(ValueState[&I])) in visitCmpInst()
1568 !SCCPSolver::isConstant(ValueState[&I])) in visitCmpInst()
1577 if (SCCPSolver::isOverdefined(ValueState[&I])) in visitGetElementPtrInst()
1588 if (SCCPSolver::isOverdefined(State)) in visitGetElementPtrInst()
1658 if (SCCPSolver::isConstant(PtrVal)) { in visitLoadInst()
1719 if (SCCPSolver::isOverdefined(State)) in handleCallOverdefined()
1721 assert(SCCPSolver::isConstant(State) && "Unknown state!"); in handleCallOverdefined()
1725 if (SCCPSolver::isOverdefined(getValueState(&CB))) in handleCallOverdefined()
2038 SCCPSolver::SCCPSolver( in SCCPSolver() function in SCCPSolver
2044 SCCPSolver::~SCCPSolver() = default;
2046 void SCCPSolver::addPredicateInfo(Function &F, DominatorTree &DT, in addPredicateInfo()
2051 bool SCCPSolver::markBlockExecutable(BasicBlock *BB) { in markBlockExecutable()
2055 const PredicateBase *SCCPSolver::getPredicateInfoFor(Instruction *I) { in getPredicateInfoFor()
2059 void SCCPSolver::trackValueOfGlobalVariable(GlobalVariable *GV) { in trackValueOfGlobalVariable()
2063 void SCCPSolver::addTrackedFunction(Function *F) { in addTrackedFunction()
2067 void SCCPSolver::addToMustPreserveReturnsInFunctions(Function *F) { in addToMustPreserveReturnsInFunctions()
2071 bool SCCPSolver::mustPreserveReturn(Function *F) { in mustPreserveReturn()
2075 void SCCPSolver::addArgumentTrackedFunction(Function *F) { in addArgumentTrackedFunction()
2079 bool SCCPSolver::isArgumentTrackedFunction(Function *F) { in isArgumentTrackedFunction()
2083 void SCCPSolver::solve() { Visitor->solve(); } in solve()
2085 bool SCCPSolver::resolvedUndefsIn(Function &F) { in resolvedUndefsIn()
2089 void SCCPSolver::solveWhileResolvedUndefsIn(Module &M) { in solveWhileResolvedUndefsIn()
2094 SCCPSolver::solveWhileResolvedUndefsIn(SmallVectorImpl<Function *> &WorkList) { in solveWhileResolvedUndefsIn()
2098 void SCCPSolver::solveWhileResolvedUndefs() { in solveWhileResolvedUndefs()
2102 bool SCCPSolver::isBlockExecutable(BasicBlock *BB) const { in isBlockExecutable()
2106 bool SCCPSolver::isEdgeFeasible(BasicBlock *From, BasicBlock *To) const { in isEdgeFeasible()
2111 SCCPSolver::getStructLatticeValueFor(Value *V) const { in getStructLatticeValueFor()
2115 void SCCPSolver::removeLatticeValueFor(Value *V) { in removeLatticeValueFor()
2119 void SCCPSolver::resetLatticeValueFor(CallBase *Call) { in resetLatticeValueFor()
2123 const ValueLatticeElement &SCCPSolver::getLatticeValueFor(Value *V) const { in getLatticeValueFor()
2128 SCCPSolver::getTrackedRetVals() { in getTrackedRetVals()
2133 SCCPSolver::getTrackedGlobals() { in getTrackedGlobals()
2137 const SmallPtrSet<Function *, 16> SCCPSolver::getMRVFunctionsTracked() { in getMRVFunctionsTracked()
2141 void SCCPSolver::markOverdefined(Value *V) { Visitor->markOverdefined(V); } in markOverdefined()
2143 void SCCPSolver::trackValueOfArgument(Argument *V) { in trackValueOfArgument()
2147 bool SCCPSolver::isStructLatticeConstant(Function *F, StructType *STy) { in isStructLatticeConstant()
2151 Constant *SCCPSolver::getConstant(const ValueLatticeElement &LV, in getConstant()
2156 Constant *SCCPSolver::getConstantOrNull(Value *V) const { in getConstantOrNull()
2160 SmallPtrSetImpl<Function *> &SCCPSolver::getArgumentTrackedFunctions() { in getArgumentTrackedFunctions()
2164 void SCCPSolver::setLatticeValueForSpecializationArguments(Function *F, in setLatticeValueForSpecializationArguments()
2169 void SCCPSolver::markFunctionUnreachable(Function *F) { in markFunctionUnreachable()
2173 void SCCPSolver::visit(Instruction *I) { Visitor->visit(I); } in visit()
2175 void SCCPSolver::visitCall(CallInst &I) { Visitor->visitCall(I); } in visitCall()