Lines Matching refs:GS

50 static bool analyzeGlobalAux(const Value *V, GlobalStatus &GS,
54 GS.StoredType = GlobalStatus::StoredOnce;
59 GS.HasNonInstructionUser = true;
66 if (analyzeGlobalAux(CE, GS, PhiUsers))
69 if (!GS.HasMultipleAccessingFunctions) {
71 if (!GS.AccessingFunction)
72 GS.AccessingFunction = F;
73 else if (GS.AccessingFunction != F)
74 GS.HasMultipleAccessingFunctions = true;
77 GS.IsLoaded = true;
81 GS.Ordering = strongerOrdering(GS.Ordering, LI->getOrdering());
91 GS.Ordering = strongerOrdering(GS.Ordering, SI->getOrdering());
96 if (GS.StoredType != GlobalStatus::Stored) {
109 if (GS.StoredType < GlobalStatus::InitializerStored)
110 GS.StoredType = GlobalStatus::InitializerStored;
113 if (GS.StoredType < GlobalStatus::InitializerStored)
114 GS.StoredType = GlobalStatus::InitializerStored;
115 } else if (GS.StoredType < GlobalStatus::StoredOnce) {
116 GS.StoredType = GlobalStatus::StoredOnce;
117 GS.StoredOnceValue = StoredVal;
118 } else if (GS.StoredType == GlobalStatus::StoredOnce &&
119 GS.StoredOnceValue == StoredVal) {
122 GS.StoredType = GlobalStatus::Stored;
125 GS.StoredType = GlobalStatus::Stored;
129 if (analyzeGlobalAux(I, GS, PhiUsers))
132 if (analyzeGlobalAux(I, GS, PhiUsers))
135 if (analyzeGlobalAux(I, GS, PhiUsers))
141 if (analyzeGlobalAux(I, GS, PhiUsers))
144 GS.IsCompared = true;
149 GS.StoredType = GlobalStatus::Stored;
151 GS.IsLoaded = true;
156 GS.StoredType = GlobalStatus::Stored;
160 GS.IsLoaded = true;
165 GS.HasNonInstructionUser = true;
170 GS.HasNonInstructionUser = true;
179 bool GlobalStatus::analyzeGlobal(const Value *V, GlobalStatus &GS) {
181 return analyzeGlobalAux(V, GS, PhiUsers);