Lines Matching refs:ValueLatticeElement
39 static ValueLatticeElement::MergeOptions getMaxWidenStepsOpts() { in getMaxWidenStepsOpts()
40 return ValueLatticeElement::MergeOptions().setMaxWidenSteps( in getMaxWidenStepsOpts()
50 bool isConstant(const ValueLatticeElement &LV) { in isConstant()
59 bool isOverdefined(const ValueLatticeElement &LV) { in isOverdefined()
73 DenseMap<Value *, ValueLatticeElement>
78 DenseMap<std::pair<Value *, unsigned>, ValueLatticeElement> StructValueState;
84 DenseMap<GlobalVariable *, ValueLatticeElement> TrackedGlobals;
89 MapVector<Function *, ValueLatticeElement> TrackedRetVals;
93 MapVector<std::pair<Function *, unsigned>, ValueLatticeElement>
132 ConstantInt *getConstantInt(const ValueLatticeElement &IV) const { in getConstantInt()
137 void pushToWorkList(ValueLatticeElement &IV, Value *V);
141 void pushToWorkListMsg(ValueLatticeElement &IV, Value *V);
146 bool markConstant(ValueLatticeElement &IV, Value *V, Constant *C,
157 bool markOverdefined(ValueLatticeElement &IV, Value *V);
161 bool mergeInValue(ValueLatticeElement &IV, Value *V,
162 ValueLatticeElement MergeWithV,
163 ValueLatticeElement::MergeOptions Opts = {
166 bool mergeInValue(Value *V, ValueLatticeElement MergeWithV, in mergeInValue()
167 ValueLatticeElement::MergeOptions Opts = { in mergeInValue()
177 ValueLatticeElement &getValueState(Value *V) { in getValueState()
180 auto I = ValueState.insert(std::make_pair(V, ValueLatticeElement())); in getValueState()
181 ValueLatticeElement &LV = I.first->second; in getValueState()
196 ValueLatticeElement &getStructValueState(Value *V, unsigned i) { in getStructValueState()
202 std::make_pair(std::make_pair(V, i), ValueLatticeElement())); in getStructValueState()
203 ValueLatticeElement &LV = I.first->second; in getStructValueState()
360 ValueLatticeElement &IV = TrackedGlobals[GV]; in trackValueOfGlobalVariable()
372 std::make_pair(std::make_pair(F, i), ValueLatticeElement())); in addTrackedFunction()
374 TrackedRetVals.insert(std::make_pair(F, ValueLatticeElement())); in addTrackedFunction()
403 std::vector<ValueLatticeElement> getStructLatticeValueFor(Value *V) const { in getStructLatticeValueFor()
404 std::vector<ValueLatticeElement> StructValues; in getStructLatticeValueFor()
417 const ValueLatticeElement &getLatticeValueFor(Value *V) const { in getLatticeValueFor()
420 DenseMap<Value *, ValueLatticeElement>::const_iterator I = in getLatticeValueFor()
427 const MapVector<Function *, ValueLatticeElement> &getTrackedRetVals() { in getTrackedRetVals()
431 const DenseMap<GlobalVariable *, ValueLatticeElement> &getTrackedGlobals() { in getTrackedGlobals()
449 Constant *getConstant(const ValueLatticeElement &LV) const;
473 void SCCPInstVisitor::pushToWorkList(ValueLatticeElement &IV, Value *V) { in pushToWorkList()
479 void SCCPInstVisitor::pushToWorkListMsg(ValueLatticeElement &IV, Value *V) { in pushToWorkListMsg()
484 bool SCCPInstVisitor::markConstant(ValueLatticeElement &IV, Value *V, in markConstant()
493 bool SCCPInstVisitor::markOverdefined(ValueLatticeElement &IV, Value *V) { in markOverdefined()
510 ValueLatticeElement LV = It->second; in isStructLatticeConstant()
517 Constant *SCCPInstVisitor::getConstant(const ValueLatticeElement &LV) const { in getConstant()
555 bool SCCPInstVisitor::mergeInValue(ValueLatticeElement &IV, Value *V, in mergeInValue()
556 ValueLatticeElement MergeWithV, in mergeInValue()
557 ValueLatticeElement::MergeOptions Opts) { in mergeInValue()
595 ValueLatticeElement BCValue = getValueState(BI->getCondition()); in getFeasibleSuccessors()
621 const ValueLatticeElement &SCValue = getValueState(SI->getCondition()); in getFeasibleSuccessors()
652 ValueLatticeElement IBRValue = getValueState(IBR->getAddress()); in getFeasibleSuccessors()
735 ValueLatticeElement PhiState = getValueState(&PN); in visitPHINode()
740 ValueLatticeElement IV = getValueState(PN.getIncomingValue(i)); in visitPHINode()
753 ValueLatticeElement::MergeOptions().setMaxWidenSteps( in visitPHINode()
755 ValueLatticeElement &PhiStateRef = getValueState(&PN); in visitPHINode()
804 ValueLatticeElement OpSt = getValueState(I.getOperand(0)); in visitCastInst()
828 mergeInValue(LV, &I, ValueLatticeElement::getRange(Res)); in visitCastInst()
851 ValueLatticeElement EltVal = getStructValueState(AggVal, i); in visitExtractValueInst()
881 ValueLatticeElement EltVal = getStructValueState(Aggr, i); in visitInsertValueInst()
891 ValueLatticeElement InVal = getValueState(Val); in visitInsertValueInst()
908 ValueLatticeElement CondValue = getValueState(I.getCondition()); in visitSelectInst()
921 ValueLatticeElement TVal = getValueState(I.getTrueValue()); in visitSelectInst()
922 ValueLatticeElement FVal = getValueState(I.getFalseValue()); in visitSelectInst()
932 ValueLatticeElement V0State = getValueState(I.getOperand(0)); in visitUnaryOperator()
934 ValueLatticeElement &IV = ValueState[&I]; in visitUnaryOperator()
958 ValueLatticeElement V1State = getValueState(I.getOperand(0)); in visitBinaryOperator()
959 ValueLatticeElement V2State = getValueState(I.getOperand(1)); in visitBinaryOperator()
961 ValueLatticeElement &IV = ValueState[&I]; in visitBinaryOperator()
988 ValueLatticeElement NewV; in visitBinaryOperator()
1007 mergeInValue(&I, ValueLatticeElement::getRange(R)); in visitBinaryOperator()
1033 ValueLatticeElement CV; in visitCmpInst()
1057 ValueLatticeElement State = getValueState(I.getOperand(i)); in visitGetElementPtrInst()
1096 ValueLatticeElement::MergeOptions().setCheckWiden(false)); in visitStoreInst()
1101 static ValueLatticeElement getValueFromMetadata(const Instruction *I) { in getValueFromMetadata()
1104 return ValueLatticeElement::getRange( in getValueFromMetadata()
1107 return ValueLatticeElement::getNot( in getValueFromMetadata()
1109 return ValueLatticeElement::getOverdefined(); in getValueFromMetadata()
1125 ValueLatticeElement PtrVal = getValueState(I.getOperand(0)); in visitLoadInst()
1129 ValueLatticeElement &IV = ValueState[&I]; in visitLoadInst()
1189 ValueLatticeElement State = getValueState(*AI); in handleCallOverdefined()
1238 ValueLatticeElement CallArg = getStructValueState(*CAI, i); in handleCallArguments()
1257 ValueLatticeElement CopyOfVal = getValueState(CopyOf); in handleCallResult()
1287 ValueLatticeElement CondVal = getValueState(OtherOp); in handleCallResult()
1288 ValueLatticeElement &IV = ValueState[&CB]; in handleCallResult()
1313 ValueLatticeElement::getRange(NewCR, MayIncludeUndef)); in handleCallResult()
1326 ValueLatticeElement::getNot(CondVal.getConstant())); in handleCallResult()
1339 const ValueLatticeElement &State = getValueState(Op); in handleCallResult()
1349 return (void)mergeInValue(II, ValueLatticeElement::getRange(Result)); in handleCallResult()
1474 ValueLatticeElement &LV = getStructValueState(&I, i); in resolvedUndefsIn()
1483 ValueLatticeElement &LV = getValueState(&I); in resolvedUndefsIn()
1661 std::vector<ValueLatticeElement>
1670 const ValueLatticeElement &SCCPSolver::getLatticeValueFor(Value *V) const { in getLatticeValueFor()
1674 const MapVector<Function *, ValueLatticeElement> &
1679 const DenseMap<GlobalVariable *, ValueLatticeElement> &
1694 Constant *SCCPSolver::getConstant(const ValueLatticeElement &LV) const { in getConstant()