reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
3486 Assert(CXI.getSuccessOrdering() != AtomicOrdering::NotAtomic, 3487 "cmpxchg instructions must be atomic.", &CXI); 3488 Assert(CXI.getFailureOrdering() != AtomicOrdering::NotAtomic, 3489 "cmpxchg instructions must be atomic.", &CXI); 3490 Assert(CXI.getSuccessOrdering() != AtomicOrdering::Unordered, 3491 "cmpxchg instructions cannot be unordered.", &CXI); 3492 Assert(CXI.getFailureOrdering() != AtomicOrdering::Unordered, 3493 "cmpxchg instructions cannot be unordered.", &CXI); 3494 Assert(!isStrongerThan(CXI.getFailureOrdering(), CXI.getSuccessOrdering()), 3494 Assert(!isStrongerThan(CXI.getFailureOrdering(), CXI.getSuccessOrdering()), 3497 &CXI); 3498 Assert(CXI.getFailureOrdering() != AtomicOrdering::Release && 3499 CXI.getFailureOrdering() != AtomicOrdering::AcquireRelease, 3500 "cmpxchg failure ordering cannot include release semantics", &CXI); 3502 PointerType *PTy = dyn_cast<PointerType>(CXI.getOperand(0)->getType()); 3503 Assert(PTy, "First cmpxchg operand must be a pointer.", &CXI); 3506 "cmpxchg operand must have integer or pointer type", ElTy, &CXI); 3507 checkAtomicMemAccessSize(ElTy, &CXI); 3508 Assert(ElTy == CXI.getOperand(1)->getType(), 3509 "Expected value type does not match pointer operand type!", &CXI, 3511 Assert(ElTy == CXI.getOperand(2)->getType(), 3512 "Stored value type does not match pointer operand type!", &CXI, ElTy); 3513 visitInstruction(CXI);