Lines Matching refs:ValueLatticeElement
88 static ValueLatticeElement::MergeOptions getMaxWidenStepsOpts() { in getMaxWidenStepsOpts()
89 return ValueLatticeElement::MergeOptions().setMaxWidenSteps( in getMaxWidenStepsOpts()
98 bool isConstant(const ValueLatticeElement &LV) { in isConstant()
107 bool isOverdefined(const ValueLatticeElement &LV) { in isOverdefined()
120 DenseMap<Value *, ValueLatticeElement>
125 DenseMap<std::pair<Value *, unsigned>, ValueLatticeElement> StructValueState;
131 DenseMap<GlobalVariable *, ValueLatticeElement> TrackedGlobals;
136 MapVector<Function *, ValueLatticeElement> TrackedRetVals;
140 MapVector<std::pair<Function *, unsigned>, ValueLatticeElement>
221 ValueLatticeElement &IV = TrackedGlobals[GV]; in TrackValueOfGlobalVariable()
236 std::make_pair(std::make_pair(F, i), ValueLatticeElement())); in AddTrackedFunction()
238 TrackedRetVals.insert(std::make_pair(F, ValueLatticeElement())); in AddTrackedFunction()
281 std::vector<ValueLatticeElement> getStructLatticeValueFor(Value *V) const { in getStructLatticeValueFor()
282 std::vector<ValueLatticeElement> StructValues; in getStructLatticeValueFor()
295 const ValueLatticeElement &getLatticeValueFor(Value *V) const { in getLatticeValueFor()
298 DenseMap<Value *, ValueLatticeElement>::const_iterator I = in getLatticeValueFor()
306 const MapVector<Function *, ValueLatticeElement> &getTrackedRetVals() { in getTrackedRetVals()
312 const DenseMap<GlobalVariable *, ValueLatticeElement> &getTrackedGlobals() { in getTrackedGlobals()
345 ValueLatticeElement LV = It->second; in isStructLatticeConstant()
354 Constant *getConstant(const ValueLatticeElement &LV) const { in getConstant()
367 ConstantInt *getConstantInt(const ValueLatticeElement &IV) const { in getConstantInt()
372 void pushToWorkList(ValueLatticeElement &IV, Value *V) { in pushToWorkList()
380 void pushToWorkListMsg(ValueLatticeElement &IV, Value *V) { in pushToWorkListMsg()
388 bool markConstant(ValueLatticeElement &IV, Value *V, Constant *C, in markConstant()
405 bool markOverdefined(ValueLatticeElement &IV, Value *V) { in markOverdefined()
419 bool mergeInValue(ValueLatticeElement &IV, Value *V, in mergeInValue()
420 ValueLatticeElement MergeWithV, in mergeInValue()
421 ValueLatticeElement::MergeOptions Opts = { in mergeInValue()
432 bool mergeInValue(Value *V, ValueLatticeElement MergeWithV, in mergeInValue()
433 ValueLatticeElement::MergeOptions Opts = { in mergeInValue()
443 ValueLatticeElement &getValueState(Value *V) { in getValueState()
446 auto I = ValueState.insert(std::make_pair(V, ValueLatticeElement())); in getValueState()
447 ValueLatticeElement &LV = I.first->second; in getValueState()
462 ValueLatticeElement &getStructValueState(Value *V, unsigned i) { in getStructValueState()
468 std::make_pair(std::make_pair(V, i), ValueLatticeElement())); in getStructValueState()
469 ValueLatticeElement &LV = I.first->second; in getStructValueState()
626 ValueLatticeElement BCValue = getValueState(BI->getCondition()); in getFeasibleSuccessors()
652 const ValueLatticeElement &SCValue = getValueState(SI->getCondition()); in getFeasibleSuccessors()
683 ValueLatticeElement IBRValue = getValueState(IBR->getAddress()); in getFeasibleSuccessors()
766 ValueLatticeElement PhiState = getValueState(&PN); in visitPHINode()
771 ValueLatticeElement IV = getValueState(PN.getIncomingValue(i)); in visitPHINode()
784 ValueLatticeElement::MergeOptions().setMaxWidenSteps( in visitPHINode()
786 ValueLatticeElement &PhiStateRef = getValueState(&PN); in visitPHINode()
834 ValueLatticeElement OpSt = getValueState(I.getOperand(0)); in visitCastInst()
858 mergeInValue(LV, &I, ValueLatticeElement::getRange(Res)); in visitCastInst()
881 ValueLatticeElement EltVal = getStructValueState(AggVal, i); in visitExtractValueInst()
911 ValueLatticeElement EltVal = getStructValueState(Aggr, i); in visitInsertValueInst()
921 ValueLatticeElement InVal = getValueState(Val); in visitInsertValueInst()
938 ValueLatticeElement CondValue = getValueState(I.getCondition()); in visitSelectInst()
951 ValueLatticeElement TVal = getValueState(I.getTrueValue()); in visitSelectInst()
952 ValueLatticeElement FVal = getValueState(I.getFalseValue()); in visitSelectInst()
962 ValueLatticeElement V0State = getValueState(I.getOperand(0)); in visitUnaryOperator()
964 ValueLatticeElement &IV = ValueState[&I]; in visitUnaryOperator()
988 ValueLatticeElement V1State = getValueState(I.getOperand(0)); in visitBinaryOperator()
989 ValueLatticeElement V2State = getValueState(I.getOperand(1)); in visitBinaryOperator()
991 ValueLatticeElement &IV = ValueState[&I]; in visitBinaryOperator()
1018 ValueLatticeElement NewV; in visitBinaryOperator()
1037 mergeInValue(&I, ValueLatticeElement::getRange(R)); in visitBinaryOperator()
1063 ValueLatticeElement CV; in visitCmpInst()
1087 ValueLatticeElement State = getValueState(I.getOperand(i)); in visitGetElementPtrInst()
1126 ValueLatticeElement::MergeOptions().setCheckWiden(false)); in visitStoreInst()
1131 static ValueLatticeElement getValueFromMetadata(const Instruction *I) { in getValueFromMetadata()
1134 return ValueLatticeElement::getRange( in getValueFromMetadata()
1137 return ValueLatticeElement::getNot( in getValueFromMetadata()
1139 return ValueLatticeElement::getOverdefined(); in getValueFromMetadata()
1155 ValueLatticeElement PtrVal = getValueState(I.getOperand(0)); in visitLoadInst()
1159 ValueLatticeElement &IV = ValueState[&I]; in visitLoadInst()
1219 ValueLatticeElement State = getValueState(*AI); in handleCallOverdefined()
1268 ValueLatticeElement CallArg = getStructValueState(*CAI, i); in handleCallArguments()
1287 ValueLatticeElement CopyOfVal = getValueState(CopyOf); in handleCallResult()
1317 ValueLatticeElement CondVal = getValueState(OtherOp); in handleCallResult()
1318 ValueLatticeElement &IV = ValueState[&CB]; in handleCallResult()
1344 ValueLatticeElement::getRange(NewCR, MayIncludeUndef)); in handleCallResult()
1357 ValueLatticeElement::getNot(CondVal.getConstant())); in handleCallResult()
1370 const ValueLatticeElement &State = getValueState(Op); in handleCallResult()
1380 return (void)mergeInValue(II, ValueLatticeElement::getRange(Result)); in handleCallResult()
1505 ValueLatticeElement &LV = getStructValueState(&I, i); in ResolvedUndefsIn()
1514 ValueLatticeElement &LV = getValueState(&I); in ResolvedUndefsIn()
1630 std::vector<ValueLatticeElement> IVs = Solver.getStructLatticeValueFor(V); in tryToReplaceWithConstant()
1632 [](const ValueLatticeElement &LV) { return isOverdefined(LV); })) in tryToReplaceWithConstant()
1637 ValueLatticeElement V = IVs[i]; in tryToReplaceWithConstant()
1644 const ValueLatticeElement &IV = Solver.getLatticeValueFor(V); in tryToReplaceWithConstant()
1693 const ValueLatticeElement &IV = Solver.getLatticeValueFor(ExtOp); in simplifyInstsInBlock()
1847 [](const ValueLatticeElement &LV) { in findReturnsToZap()
2098 const ValueLatticeElement &ReturnValue = I.second; in runIPSCCP()