atomic Load/Store
This commit is contained in:
18
ssa/expr.go
18
ssa/expr.go
@@ -27,6 +27,18 @@ import (
|
||||
"github.com/goplus/llvm"
|
||||
)
|
||||
|
||||
type AtomicOrdering = llvm.AtomicOrdering
|
||||
|
||||
const (
|
||||
OrderingNotAtomic = llvm.AtomicOrderingNotAtomic
|
||||
OrderingUnordered = llvm.AtomicOrderingUnordered
|
||||
OrderingMonotonic = llvm.AtomicOrderingMonotonic
|
||||
OrderingAcquire = llvm.AtomicOrderingAcquire
|
||||
OrderingRelease = llvm.AtomicOrderingRelease
|
||||
OrderingAcquireRelease = llvm.AtomicOrderingAcquireRelease
|
||||
OrderingSeqConsistent = llvm.AtomicOrderingSequentiallyConsistent
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
type Expr struct {
|
||||
@@ -41,6 +53,12 @@ func (v Expr) IsNil() bool {
|
||||
return v.Type == nil
|
||||
}
|
||||
|
||||
// SetOrdering sets the ordering of the atomic operation.
|
||||
func (v Expr) SetOrdering(ordering AtomicOrdering) Expr {
|
||||
v.impl.SetOrdering(ordering)
|
||||
return v
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
type builtinTy struct {
|
||||
|
||||
Reference in New Issue
Block a user