Index: include/llvm/IR/Instructions.h =================================================================== --- include/llvm/IR/Instructions.h +++ include/llvm/IR/Instructions.h @@ -236,6 +236,10 @@ bool isUnordered() const { return getOrdering() <= Unordered && !isVolatile(); } + bool isAtLeastAcquire() const { + return (getOrdering() == Acquire + || getOrdering() == SequentiallyConsistent); + } Value *getPointerOperand() { return getOperand(0); } const Value *getPointerOperand() const { return getOperand(0); } @@ -356,6 +360,10 @@ bool isUnordered() const { return getOrdering() <= Unordered && !isVolatile(); } + bool isAtLeastRelease() const { + return (getOrdering() == Release + || getOrdering() == SequentiallyConsistent); + } Value *getValueOperand() { return getOperand(0); } const Value *getValueOperand() const { return getOperand(0); }