class StoreInst

Declaration

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

Description

An instruction for storing to memory.

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

Inherits from: Instruction

Member Variables

private SyncScope::ID SSID
The synchronization scope ID of this store 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

  • private void AssertOK()
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, llvm::Instruction * InsertBefore)
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, llvm::BasicBlock * InsertAtEnd)
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, bool isVolatile, llvm::Instruction * InsertBefore)
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, bool isVolatile, llvm::BasicBlock * InsertAtEnd)
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, bool isVolatile, llvm::Align Align, llvm::Instruction * InsertBefore = nullptr)
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, bool isVolatile, llvm::Align Align, llvm::BasicBlock * InsertAtEnd)
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, bool isVolatile, llvm::Align Align, llvm::AtomicOrdering Order, SyncScope::ID SSID = SyncScope::System, llvm::Instruction * InsertBefore = nullptr)
  • public StoreInst(llvm::Value * Val, llvm::Value * Ptr, bool isVolatile, llvm::Align Align, llvm::AtomicOrdering Order, SyncScope::ID SSID, llvm::BasicBlock * InsertAtEnd)
  • public static bool classof(const llvm::Instruction * I)
  • public static bool classof(const llvm::Value * V)
  • protected llvm::StoreInst * cloneImpl() const
  • public llvm::Align getAlign() const
  • public llvm::AtomicOrdering getOrdering() const
  • public unsigned int getPointerAddressSpace() const
  • public llvm::Value * getPointerOperand()
  • public const llvm::Value * getPointerOperand() const
  • public static unsigned int getPointerOperandIndex()
  • public llvm::Type * getPointerOperandType() const
  • public SyncScope::ID getSyncScopeID() const
  • public llvm::Value * getValueOperand()
  • public const llvm::Value * getValueOperand() const
  • public bool isSimple() const
  • public bool isUnordered() const
  • public bool isVolatile() const
  • public void setAlignment(llvm::Align Align)
  • public void setAtomic(llvm::AtomicOrdering Ordering, SyncScope::ID SSID = SyncScope::System)
  • public void setOrdering(llvm::AtomicOrdering Ordering)
  • private template <typename Bitfield>void setSubclassData(typename Bitfield::Type Value)
  • public void setSyncScopeID(SyncScope::ID SSID)
  • public void setVolatile(bool V)

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

void AssertOK()

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

StoreInst(llvm::Value* Val,
          llvm::Value* Ptr,
          llvm::Instruction* InsertBefore)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
llvm::Instruction* InsertBefore

StoreInst(llvm::Value* Val,
          llvm::Value* Ptr,
          llvm::BasicBlock* InsertAtEnd)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
llvm::BasicBlock* InsertAtEnd

StoreInst(llvm::Value* Val,
          llvm::Value* Ptr,
          bool isVolatile,
          llvm::Instruction* InsertBefore)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
bool isVolatile
llvm::Instruction* InsertBefore

StoreInst(llvm::Value* Val,
          llvm::Value* Ptr,
          bool isVolatile,
          llvm::BasicBlock* InsertAtEnd)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
bool isVolatile
llvm::BasicBlock* InsertAtEnd

StoreInst(
    llvm::Value* Val,
    llvm::Value* Ptr,
    bool isVolatile,
    llvm::Align Align,
    llvm::Instruction* InsertBefore = nullptr)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
bool isVolatile
llvm::Align Align
llvm::Instruction* InsertBefore = nullptr

StoreInst(llvm::Value* Val,
          llvm::Value* Ptr,
          bool isVolatile,
          llvm::Align Align,
          llvm::BasicBlock* InsertAtEnd)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
bool isVolatile
llvm::Align Align
llvm::BasicBlock* InsertAtEnd

StoreInst(
    llvm::Value* Val,
    llvm::Value* Ptr,
    bool isVolatile,
    llvm::Align Align,
    llvm::AtomicOrdering Order,
    SyncScope::ID SSID = SyncScope::System,
    llvm::Instruction* InsertBefore = nullptr)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
bool isVolatile
llvm::Align Align
llvm::AtomicOrdering Order
SyncScope::ID SSID = SyncScope::System
llvm::Instruction* InsertBefore = nullptr

StoreInst(llvm::Value* Val,
          llvm::Value* Ptr,
          bool isVolatile,
          llvm::Align Align,
          llvm::AtomicOrdering Order,
          SyncScope::ID SSID,
          llvm::BasicBlock* InsertAtEnd)

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

Parameters

llvm::Value* Val
llvm::Value* Ptr
bool isVolatile
llvm::Align Align
llvm::AtomicOrdering Order
SyncScope::ID SSID
llvm::BasicBlock* InsertAtEnd

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

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

Parameters

const llvm::Instruction* I

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

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

Parameters

const llvm::Value* V

llvm::StoreInst* cloneImpl() const

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

llvm::Align getAlign() const

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

llvm::AtomicOrdering getOrdering() const

Description

Returns the ordering constraint of this store instruction.

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

unsigned int getPointerAddressSpace() const

Description

Returns the address space of the pointer operand.

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

llvm::Value* getPointerOperand()

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

const llvm::Value* getPointerOperand() const

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

static unsigned int getPointerOperandIndex()

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

llvm::Type* getPointerOperandType() const

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

SyncScope::ID getSyncScopeID() const

Description

Returns the synchronization scope ID of this store instruction.

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

llvm::Value* getValueOperand()

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

const llvm::Value* getValueOperand() const

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

bool isSimple() const

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

bool isUnordered() const

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

bool isVolatile() const

Description

Return true if this is a store to a volatile memory location.

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

void setAlignment(llvm::Align Align)

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

Parameters

llvm::Align Align

void setAtomic(
    llvm::AtomicOrdering Ordering,
    SyncScope::ID SSID = SyncScope::System)

Description

Sets the ordering constraint and the synchronization scope ID of this store instruction.

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

Parameters

llvm::AtomicOrdering Ordering
SyncScope::ID SSID = SyncScope::System

void setOrdering(llvm::AtomicOrdering Ordering)

Description

Sets the ordering constraint of this store instruction. May not be Acquire or AcquireRelease.

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

Parameters

llvm::AtomicOrdering Ordering

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

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

Templates

Bitfield

Parameters

typename Bitfield::Type Value

void setSyncScopeID(SyncScope::ID SSID)

Description

Sets the synchronization scope ID of this store instruction.

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

Parameters

SyncScope::ID SSID

void setVolatile(bool V)

Description

Specify whether this is a volatile store or not.

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

Parameters

bool V