LLVM API Documentation

Public Member Functions | Static Public Member Functions | Protected Member Functions
llvm::StoreInst Class Reference

#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)
 StoreInst (Value *Val, Value *Ptr, Instruction *InsertBefore)
 StoreInst (Value *Val, Value *Ptr, BasicBlock *InsertAtEnd)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile=false, Instruction *InsertBefore=0)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, BasicBlock *InsertAtEnd)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, unsigned Align, Instruction *InsertBefore=0)
 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=0)
 StoreInst (Value *Val, Value *Ptr, bool isVolatile, unsigned Align, AtomicOrdering Order, SynchronizationScope SynchScope, BasicBlock *InsertAtEnd)
bool isVolatile () const
void setVolatile (bool V)
 DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value)
 Transparently provide more efficient getOperand methods.
unsigned getAlignment () const
void setAlignment (unsigned Align)
AtomicOrdering getOrdering () const
 Returns the ordering effect of this store.
void setOrdering (AtomicOrdering Ordering)
SynchronizationScope getSynchScope () const
void setSynchScope (SynchronizationScope xthread)
bool isAtomic () const
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

virtual StoreInstclone_impl () const

Detailed Description

StoreInst - an instruction for storing to memory

Definition at line 257 of file Instructions.h.


Constructor & Destructor Documentation

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

Definition at line 1090 of file Instructions.cpp.

References llvm::NotAtomic, setAlignment(), setAtomic(), and setVolatile().

Referenced by clone_impl().

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

Definition at line 1103 of file Instructions.cpp.

References llvm::NotAtomic, setAlignment(), setAtomic(), and setVolatile().

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

Definition at line 1116 of file Instructions.cpp.

References llvm::NotAtomic, setAlignment(), setAtomic(), and setVolatile().

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

Definition at line 1160 of file Instructions.cpp.

References llvm::NotAtomic, setAlignment(), setAtomic(), and setVolatile().

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

Definition at line 1130 of file Instructions.cpp.

References llvm::NotAtomic, setAlignment(), setAtomic(), and setVolatile().

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

Definition at line 1174 of file Instructions.cpp.

References llvm::NotAtomic, setAlignment(), setAtomic(), and setVolatile().

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

Definition at line 1144 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 1188 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 358 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 361 of file Instructions.h.

References classof().

StoreInst * StoreInst::clone_impl ( ) const [protected, virtual]
llvm::StoreInst::DECLARE_TRANSPARENT_OPERAND_ACCESSORS ( Value  )

Transparently provide more efficient getOperand methods.

unsigned llvm::StoreInst::getAlignment ( ) const [inline]

getAlignment - Return the alignment of the access that is being performed

Definition at line 303 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by clone_impl(), setAlignment(), and llvm::InstCombiner::visitStoreInst().

AtomicOrdering llvm::StoreInst::getOrdering ( ) const [inline]

Returns the ordering effect of this store.

Definition at line 310 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

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

unsigned llvm::StoreInst::getPointerAddressSpace ( ) const [inline]

Returns the address space of the pointer operand.

Definition at line 353 of file Instructions.h.

References llvm::Type::getPointerAddressSpace(), getPointerOperand(), and llvm::Value::getType().

Referenced by llvm::InstCombiner::visitStoreInst().

Value* llvm::StoreInst::getPointerOperand ( ) [inline]
const Value* llvm::StoreInst::getPointerOperand ( ) const [inline]

Definition at line 349 of file Instructions.h.

References llvm::User::getOperand().

static unsigned llvm::StoreInst::getPointerOperandIndex ( ) [inline, static]

Definition at line 350 of file Instructions.h.

SynchronizationScope llvm::StoreInst::getSynchScope ( ) const [inline]

Definition at line 321 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by clone_impl().

Value* llvm::StoreInst::getValueOperand ( ) [inline]
const Value* llvm::StoreInst::getValueOperand ( ) const [inline]

Definition at line 346 of file Instructions.h.

References llvm::User::getOperand().

bool llvm::StoreInst::isAtomic ( ) const [inline]

Definition at line 333 of file Instructions.h.

References getOrdering(), and llvm::NotAtomic.

Referenced by isSimple().

bool llvm::StoreInst::isSimple ( ) const [inline]

Definition at line 340 of file Instructions.h.

References isAtomic(), and isVolatile().

Referenced by isSafeToSpeculateStore(), and llvm::InstCombiner::visitStoreInst().

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

Reimplemented from llvm::User.

Definition at line 264 of file Instructions.h.

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

Definition at line 334 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 316 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by setAtomic().

void llvm::StoreInst::setSynchScope ( SynchronizationScope  xthread) [inline]

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 328 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 293 of file Instructions.h.

References llvm::Instruction::getSubclassDataFromInstruction().

Referenced by StoreInst().


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