LLVM  mainline
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends
llvm::StoreInst Class Reference

StoreInst - an instruction for storing to memory. More...

#include <Instructions.h>

Inheritance diagram for llvm::StoreInst:
Inheritance graph
[legend]
Collaboration diagram for llvm::StoreInst:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void * operator new (size_t s)
 Allocate a User with an operand pointer co-allocated.
 StoreInst (Value *Val, Value *Ptr, Instruction *InsertBefore)
 StoreInst (Value *Val, Value *Ptr, BasicBlock *InsertAtEnd)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile=false, Instruction *InsertBefore=nullptr)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, BasicBlock *InsertAtEnd)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, unsigned Align, Instruction *InsertBefore=nullptr)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, unsigned Align, BasicBlock *InsertAtEnd)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, unsigned Align, AtomicOrdering Order, SynchronizationScope SynchScope=CrossThread, Instruction *InsertBefore=nullptr)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, unsigned Align, AtomicOrdering Order, SynchronizationScope SynchScope, BasicBlock *InsertAtEnd)
bool isVolatile () const
 isVolatile - Return true if this is a store to a volatile memory location.
void setVolatile (bool V)
 setVolatile - Specify whether this is a volatile store or not.
 DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value)
 Transparently provide more efficient getOperand methods.
unsigned getAlignment () const
 getAlignment - Return the alignment of the access that is being performed
void setAlignment (unsigned Align)
AtomicOrdering getOrdering () const
 Returns the ordering effect of this store.
void setOrdering (AtomicOrdering Ordering)
 Set the ordering constraint on this store.
SynchronizationScope getSynchScope () const
void setSynchScope (SynchronizationScope xthread)
 Specify whether this store instruction is ordered with respect to all concurrently executing threads, or only with respect to signal handlers executing in the same thread.
void setAtomic (AtomicOrdering Ordering, SynchronizationScope SynchScope=CrossThread)
bool isSimple () const
bool isUnordered () const
ValuegetValueOperand ()
const ValuegetValueOperand () const
ValuegetPointerOperand ()
const ValuegetPointerOperand () const
unsigned getPointerAddressSpace () const
 Returns the address space of the pointer operand.

Static Public Member Functions

static unsigned getPointerOperandIndex ()
static bool classof (const Instruction *I)
static bool classof (const Value *V)
 Methods for support type inquiry through isa, cast, and dyn_cast:

Protected Member Functions

StoreInstcloneImpl () const
 Create a copy of this instruction.

Friends

class Instruction

Detailed Description

StoreInst - an instruction for storing to memory.

Definition at line 317 of file Instructions.h.


Constructor & Destructor Documentation

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

Definition at line 1311 of file Instructions.cpp.

Referenced by cloneImpl().

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

Definition at line 1314 of file Instructions.cpp.

StoreInst::StoreInst ( Value Val,
Value Ptr,
bool  isVolatile = false,
Instruction InsertBefore = nullptr 
)

Definition at line 1317 of file Instructions.cpp.

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

Definition at line 1321 of file Instructions.cpp.

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

Definition at line 1325 of file Instructions.cpp.

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

Definition at line 1330 of file Instructions.cpp.

StoreInst::StoreInst ( Value Val,
Value Ptr,
bool  isVolatile,
unsigned  Align,
AtomicOrdering  Order,
SynchronizationScope  SynchScope = CrossThread,
Instruction InsertBefore = nullptr 
)

Definition at line 1335 of file Instructions.cpp.

References setAlignment(), setAtomic(), and setVolatile().

StoreInst::StoreInst ( Value Val,
Value Ptr,
bool  isVolatile,
unsigned  Align,
AtomicOrdering  Order,
SynchronizationScope  SynchScope,
BasicBlock InsertAtEnd 
)

Definition at line 1351 of file Instructions.cpp.

References setAlignment(), setAtomic(), and setVolatile().


Member Function Documentation

static bool llvm::StoreInst::classof ( const Instruction I) [inline, static]

Definition at line 420 of file Instructions.h.

References llvm::Instruction::getOpcode(), and llvm::SPII::Store.

Referenced by classof().

static bool llvm::StoreInst::classof ( const Value V) [inline, static]

Methods for support type inquiry through isa, cast, and dyn_cast:

Reimplemented from llvm::Instruction.

Definition at line 423 of file Instructions.h.

References classof().

StoreInst * StoreInst::cloneImpl ( ) const [protected]

Create a copy of this instruction.

Reimplemented from llvm::Instruction.

Definition at line 3822 of file Instructions.cpp.

References getAlignment(), llvm::User::getOperand(), getOrdering(), getSynchScope(), isVolatile(), and StoreInst().

Transparently provide more efficient getOperand methods.

Returns the ordering effect of this store.

Definition at line 373 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by llvm::AliasSetTracker::add(), cloneImpl(), and isUnordered().

Definition at line 411 of file Instructions.h.

References llvm::User::getOperand().

Definition at line 412 of file Instructions.h.

Definition at line 384 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by cloneImpl().

Definition at line 408 of file Instructions.h.

References llvm::User::getOperand().

bool llvm::StoreInst::isSimple ( ) const [inline]
bool llvm::StoreInst::isUnordered ( ) const [inline]
bool llvm::StoreInst::isVolatile ( ) const [inline]
void* llvm::StoreInst::operator new ( size_t  Size) [inline]

Allocate a User with an operand pointer co-allocated.

This is used for subclasses which need to allocate a variable number of operands, ie, 'hung off uses'.

Reimplemented from llvm::User.

Definition at line 328 of file Instructions.h.

References operator new().

void llvm::StoreInst::setAtomic ( AtomicOrdering  Ordering,
SynchronizationScope  SynchScope = CrossThread 
) [inline]

Definition at line 396 of file Instructions.h.

References setOrdering(), and setSynchScope().

Referenced by LowerStoreInst(), and StoreInst().

void llvm::StoreInst::setOrdering ( AtomicOrdering  Ordering) [inline]

Set the ordering constraint on this store.

May not be Acquire or AcquireRelease.

Definition at line 379 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by setAtomic().

Specify whether this store instruction is ordered with respect to all concurrently executing threads, or only with respect to signal handlers executing in the same thread.

Definition at line 391 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by setAtomic().

void llvm::StoreInst::setVolatile ( bool  V) [inline]

setVolatile - Specify whether this is a volatile store or not.

Definition at line 356 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by StoreInst().


Friends And Related Function Documentation

friend class Instruction [friend]

Definition at line 323 of file Instructions.h.


The documentation for this class was generated from the following files: