class FenceInst

Declaration

class FenceInst : public Instruction { /* full declaration omitted */ };

Description

An instruction for ordering other memory operations.

Declared at: llvm/include/llvm/IR/Instructions.h:433

Inherits from: Instruction

Member Variables

private SyncScope::ID SSID
The synchronization scope ID of this fence instruction. Not quite enough room in SubClassData for everything, so synchronization scope ID gets its own field.

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasMetadata
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 32
public static MaximumAlignment = 1ULL << MaxAlignmentExponent

Method Overview

  • public FenceInst(llvm::LLVMContext & C, llvm::AtomicOrdering Ordering, SyncScope::ID SSID = SyncScope::System, llvm::Instruction * InsertBefore = nullptr)
  • public FenceInst(llvm::LLVMContext & C, llvm::AtomicOrdering Ordering, SyncScope::ID SSID, llvm::BasicBlock * InsertAtEnd)
  • private void Init(llvm::AtomicOrdering Ordering, SyncScope::ID SSID)
  • public static bool classof(const llvm::Instruction * I)
  • public static bool classof(const llvm::Value * V)
  • protected llvm::FenceInst * cloneImpl() const
  • public llvm::AtomicOrdering getOrdering() const
  • public SyncScope::ID getSyncScopeID() const
  • public void setOrdering(llvm::AtomicOrdering Ordering)
  • private template <typename Bitfield>void setSubclassData(typename Bitfield::Type Value)
  • public void setSyncScopeID(SyncScope::ID SSID)

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

FenceInst(
    llvm::LLVMContext& C,
    llvm::AtomicOrdering Ordering,
    SyncScope::ID SSID = SyncScope::System,
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:447

Parameters

llvm::LLVMContext& C
llvm::AtomicOrdering Ordering
SyncScope::ID SSID = SyncScope::System
llvm::Instruction* InsertBefore = nullptr

FenceInst(llvm::LLVMContext& C,
          llvm::AtomicOrdering Ordering,
          SyncScope::ID SSID,
          llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:450

Parameters

llvm::LLVMContext& C
llvm::AtomicOrdering Ordering
SyncScope::ID SSID
llvm::BasicBlock* InsertAtEnd

void Init(llvm::AtomicOrdering Ordering,
          SyncScope::ID SSID)

Declared at: llvm/include/llvm/IR/Instructions.h:436

Parameters

llvm::AtomicOrdering Ordering
SyncScope::ID SSID

static bool classof(const llvm::Instruction* I)

Declared at: llvm/include/llvm/IR/Instructions.h:479

Parameters

const llvm::Instruction* I

static bool classof(const llvm::Value* V)

Declared at: llvm/include/llvm/IR/Instructions.h:482

Parameters

const llvm::Value* V

llvm::FenceInst* cloneImpl() const

Declared at: llvm/include/llvm/IR/Instructions.h:442

llvm::AtomicOrdering getOrdering() const

Description

Returns the ordering constraint of this fence instruction.

Declared at: llvm/include/llvm/IR/Instructions.h:458

SyncScope::ID getSyncScopeID() const

Description

Returns the synchronization scope ID of this fence instruction.

Declared at: llvm/include/llvm/IR/Instructions.h:469

void setOrdering(llvm::AtomicOrdering Ordering)

Description

Sets the ordering constraint of this fence instruction. May only be Acquire, Release, AcquireRelease, or SequentiallyConsistent.

Declared at: llvm/include/llvm/IR/Instructions.h:464

Parameters

llvm::AtomicOrdering Ordering

template <typename Bitfield>
void setSubclassData(
    typename Bitfield::Type Value)

Declared at: llvm/include/llvm/IR/Instructions.h:490

Templates

Bitfield

Parameters

typename Bitfield::Type Value

void setSyncScopeID(SyncScope::ID SSID)

Description

Sets the synchronization scope ID of this fence instruction.

Declared at: llvm/include/llvm/IR/Instructions.h:474

Parameters

SyncScope::ID SSID