• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/AMDGPU/

Lines Matching defs:MOI

413   bool expandLoad(const SIMemOpInfo &MOI,
417 bool expandStore(const SIMemOpInfo &MOI,
421 bool expandAtomicFence(const SIMemOpInfo &MOI,
425 bool expandAtomicCmpxchgOrRmw(const SIMemOpInfo &MOI,
1148 bool SIMemoryLegalizer::expandLoad(const SIMemOpInfo &MOI,
1154 if (MOI.isAtomic()) {
1155 if (MOI.getOrdering() == AtomicOrdering::Monotonic ||
1156 MOI.getOrdering() == AtomicOrdering::Acquire ||
1157 MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent) {
1158 Changed |= CC->enableLoadCacheBypass(MI, MOI.getScope(),
1159 MOI.getOrderingAddrSpace());
1162 if (MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent)
1163 Changed |= CC->insertWait(MI, MOI.getScope(),
1164 MOI.getOrderingAddrSpace(),
1166 MOI.getIsCrossAddressSpaceOrdering(),
1169 if (MOI.getOrdering() == AtomicOrdering::Acquire ||
1170 MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent) {
1171 Changed |= CC->insertWait(MI, MOI.getScope(),
1172 MOI.getInstrAddrSpace(),
1174 MOI.getIsCrossAddressSpaceOrdering(),
1176 Changed |= CC->insertCacheInvalidate(MI, MOI.getScope(),
1177 MOI.getOrderingAddrSpace(),
1185 if (MOI.isNonTemporal()) {
1193 bool SIMemoryLegalizer::expandStore(const SIMemOpInfo &MOI,
1199 if (MOI.isAtomic()) {
1200 if (MOI.getOrdering() == AtomicOrdering::Release ||
1201 MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent)
1202 Changed |= CC->insertWait(MI, MOI.getScope(),
1203 MOI.getOrderingAddrSpace(),
1205 MOI.getIsCrossAddressSpaceOrdering(),
1212 if (MOI.isNonTemporal()) {
1220 bool SIMemoryLegalizer::expandAtomicFence(const SIMemOpInfo &MOI,
1227 if (MOI.isAtomic()) {
1228 if (MOI.getOrdering() == AtomicOrdering::Acquire ||
1229 MOI.getOrdering() == AtomicOrdering::Release ||
1230 MOI.getOrdering() == AtomicOrdering::AcquireRelease ||
1231 MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent)
1239 Changed |= CC->insertWait(MI, MOI.getScope(),
1240 MOI.getOrderingAddrSpace(),
1242 MOI.getIsCrossAddressSpaceOrdering(),
1245 if (MOI.getOrdering() == AtomicOrdering::Acquire ||
1246 MOI.getOrdering() == AtomicOrdering::AcquireRelease ||
1247 MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent)
1248 Changed |= CC->insertCacheInvalidate(MI, MOI.getScope(),
1249 MOI.getOrderingAddrSpace(),
1258 bool SIMemoryLegalizer::expandAtomicCmpxchgOrRmw(const SIMemOpInfo &MOI,
1264 if (MOI.isAtomic()) {
1265 if (MOI.getOrdering() == AtomicOrdering::Release ||
1266 MOI.getOrdering() == AtomicOrdering::AcquireRelease ||
1267 MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent ||
1268 MOI.getFailureOrdering() == AtomicOrdering::SequentiallyConsistent)
1269 Changed |= CC->insertWait(MI, MOI.getScope(),
1270 MOI.getOrderingAddrSpace(),
1272 MOI.getIsCrossAddressSpaceOrdering(),
1275 if (MOI.getOrdering() == AtomicOrdering::Acquire ||
1276 MOI.getOrdering() == AtomicOrdering::AcquireRelease ||
1277 MOI.getOrdering() == AtomicOrdering::SequentiallyConsistent ||
1278 MOI.getFailureOrdering() == AtomicOrdering::Acquire ||
1279 MOI.getFailureOrdering() == AtomicOrdering::SequentiallyConsistent) {
1280 Changed |= CC->insertWait(MI, MOI.getScope(),
1281 MOI.getOrderingAddrSpace(),
1284 MOI.getIsCrossAddressSpaceOrdering(),
1286 Changed |= CC->insertCacheInvalidate(MI, MOI.getScope(),
1287 MOI.getOrderingAddrSpace(),
1323 if (const auto &MOI = MOA.getLoadInfo(MI))
1324 Changed |= expandLoad(MOI.getValue(), MI);
1325 else if (const auto &MOI = MOA.getStoreInfo(MI))
1326 Changed |= expandStore(MOI.getValue(), MI);
1327 else if (const auto &MOI = MOA.getAtomicFenceInfo(MI))
1328 Changed |= expandAtomicFence(MOI.getValue(), MI);
1329 else if (const auto &MOI = MOA.getAtomicCmpxchgOrRmwInfo(MI))
1330 Changed |= expandAtomicCmpxchgOrRmw(MOI.getValue(), MI);