Lines Matching defs:Assignment
1020 /// An Assignment is Known or NoneOrPhi. A Known Assignment means we have a
1024 /// The Status of the Assignment (Known or NoneOrPhi) is another
1032 struct Assignment {
1040 bool isSameSourceAssignment(const Assignment &Other) const {
1062 static Assignment make(DIAssignID *ID, DbgAssignIntrinsic *Source) {
1063 return Assignment(Known, ID, Source);
1065 static Assignment make(DIAssignID *ID, DbgVariableRecord *Source) {
1068 return Assignment(Known, ID, Source);
1070 static Assignment make(DIAssignID *ID, AssignRecord Source) {
1071 return Assignment(Known, ID, Source);
1073 static Assignment makeFromMemDef(DIAssignID *ID) {
1074 return Assignment(Known, ID);
1076 static Assignment makeNoneOrPhi() { return Assignment(NoneOrPhi, nullptr); }
1078 Assignment() : Status(NoneOrPhi), ID(nullptr) {} // Can we delete this?
1079 Assignment(S Status, DIAssignID *ID) : Status(Status), ID(ID) {
1083 Assignment(S Status, DIAssignID *ID, DbgAssignIntrinsic *Source)
1088 Assignment(S Status, DIAssignID *ID, DbgVariableRecord *Source)
1093 Assignment(S Status, DIAssignID *ID, AssignRecord Source)
1100 using AssignmentMap = SmallVector<Assignment>;
1158 /// Assignment (the class) between whether an assignment is unknown or a
1185 const Assignment &getAssignment(AssignmentKind Kind, VariableID Var) const {
1206 const Assignment &AV) {
1215 const Assignment &AV) const {
1243 Assignment::makeNoneOrPhi());
1245 Assignment::makeNoneOrPhi());
1338 static Assignment joinAssignment(const Assignment &A, const Assignment &B);
1364 void addMemDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1366 void addDbgDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1376 VariableID Var, const Assignment &AV);
1429 const Assignment &AV) {
1435 Assignment FragAV = AV;
1442 const Assignment &AV) {
1448 Assignment FragAV = AV;
1471 const Assignment &AV) {
1632 // ID though so use Assignment::makeNoneOrPhi() to create an imaginary one.
1633 addMemDef(LiveSet, Var, Assignment::makeNoneOrPhi());
1634 addDbgDef(LiveSet, Var, Assignment::makeNoneOrPhi());
1695 Assignment AV = Assignment::makeFromMemDef(getIDFromInst(I));
1703 // assignment has a matching Assignment.
1732 // location for this variable, and the Assignment doesn't match what
1734 Assignment DbgAV = LiveSet->getAssignment(BlockInfo::Debug, Var);
1735 if (DbgAV.Status == Assignment::NoneOrPhi) {
1775 Assignment AV = Assignment::make(getIDFromMarker(*DbgAssign), DbgAssign);
1783 // Assignment.
1823 // We have no ID to create an Assignment with so we mark this assignment as
1829 Assignment AV = Assignment::makeNoneOrPhi();
1973 AssignmentTrackingLowering::Assignment
1974 AssignmentTrackingLowering::joinAssignment(const Assignment &A,
1975 const Assignment &B) {
1983 return Assignment::makeNoneOrPhi();
1984 if (A.Status == Assignment::NoneOrPhi)
1985 return Assignment::makeNoneOrPhi();
2018 assert(A.Status == B.Status && A.Status == Assignment::Known);
2020 return Assignment::make(A.ID, Source);
2332 // Assignment, and the various join methods, which show that all the elements
2853 "Assignment Tracking Analysis", false, true)