Lines Matching refs:CASI
152 static unsigned getAtomicOpSize(AtomicCmpXchgInst *CASI) { in getAtomicOpSize() argument
153 const DataLayout &DL = CASI->getModule()->getDataLayout(); in getAtomicOpSize()
154 return DL.getTypeStoreSize(CASI->getCompareOperand()->getType()); in getAtomicOpSize()
193 auto CASI = dyn_cast<AtomicCmpXchgInst>(I); in runOnFunction() local
194 assert((LI || SI || RMWI || CASI) && "Unknown atomic instruction"); in runOnFunction()
215 } else if (CASI) { in runOnFunction()
216 if (!atomicSizeSupported(TLI, CASI)) { in runOnFunction()
217 expandAtomicCASToLibcall(CASI); in runOnFunction()
235 } else if (CASI && in runOnFunction()
236 TLI->shouldExpandAtomicCmpXchgInIR(CASI) == in runOnFunction()
238 (isReleaseOrStronger(CASI->getSuccessOrdering()) || in runOnFunction()
239 isAcquireOrStronger(CASI->getSuccessOrdering()) || in runOnFunction()
240 isAcquireOrStronger(CASI->getFailureOrdering()))) { in runOnFunction()
245 FenceOrdering = CASI->getMergedOrdering(); in runOnFunction()
246 CASI->setSuccessOrdering(AtomicOrdering::Monotonic); in runOnFunction()
247 CASI->setFailureOrdering(AtomicOrdering::Monotonic); in runOnFunction()
307 } else if (CASI) { in runOnFunction()
310 assert(!CASI->getCompareOperand()->getType()->isFloatingPointTy() && in runOnFunction()
312 if (CASI->getCompareOperand()->getType()->isPointerTy() ) { in runOnFunction()
315 CASI = convertCmpXchgToIntegerType(CASI); in runOnFunction()
316 assert(CASI->getCompareOperand()->getType()->isIntegerTy() && in runOnFunction()
321 MadeChange |= tryExpandAtomicCmpXchg(CASI); in runOnFunction()