LLVM API Documentation
#include <SSAUpdater.h>

Public Member Functions | |
| LoadAndStorePromoter (const SmallVectorImpl< Instruction * > &Insts, SSAUpdater &S, StringRef Name=StringRef()) | |
| virtual | ~LoadAndStorePromoter () |
| void | run (const SmallVectorImpl< Instruction * > &Insts) const |
| virtual bool | isInstInList (Instruction *I, const SmallVectorImpl< Instruction * > &Insts) const |
| virtual void | doExtraRewritesBeforeFinalDeletion () const |
| virtual void | replaceLoadWithValue (LoadInst *LI, Value *V) const |
| virtual void | instructionDeleted (Instruction *I) const |
| This is called before each instruction is deleted. | |
| virtual void | updateDebugInfo (Instruction *I) const |
Protected Attributes | |
| SSAUpdater & | SSA |
LoadAndStorePromoter - This little helper class provides a convenient way to promote a collection of loads and stores into SSA Form using the SSAUpdater. This handles complexities that SSAUpdater doesn't, such as multiple loads and stores in one block.
Clients of this class are expected to subclass this and implement the virtual methods.
Definition at line 125 of file SSAUpdater.h.
| LoadAndStorePromoter::LoadAndStorePromoter | ( | const SmallVectorImpl< Instruction * > & | Insts, |
| SSAUpdater & | S, | ||
| StringRef | Name = StringRef() |
||
| ) |
Definition at line 363 of file SSAUpdater.cpp.
References llvm::SmallVectorBase::empty(), llvm::StringRef::empty(), llvm::Value::getName(), llvm::Value::getType(), llvm::SSAUpdater::Initialize(), LI, and SSA.
| virtual llvm::LoadAndStorePromoter::~LoadAndStorePromoter | ( | ) | [inline, virtual] |
Definition at line 131 of file SSAUpdater.h.
| virtual void llvm::LoadAndStorePromoter::doExtraRewritesBeforeFinalDeletion | ( | ) | const [inline, virtual] |
doExtraRewritesBeforeFinalDeletion - This hook is invoked after all the stores are found and inserted as available values, but
Definition at line 147 of file SSAUpdater.h.
Referenced by run().
| virtual void llvm::LoadAndStorePromoter::instructionDeleted | ( | Instruction * | I | ) | const [inline, virtual] |
This is called before each instruction is deleted.
Definition at line 156 of file SSAUpdater.h.
Referenced by run().
| bool LoadAndStorePromoter::isInstInList | ( | Instruction * | I, |
| const SmallVectorImpl< Instruction * > & | Insts | ||
| ) | const [virtual] |
Return true if the specified instruction is in the Inst list (which was passed into the run method). Clients should implement this with a more efficient version if possible.
Definition at line 526 of file SSAUpdater.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), and I.
Referenced by run().
| virtual void llvm::LoadAndStorePromoter::replaceLoadWithValue | ( | LoadInst * | LI, |
| Value * | V | ||
| ) | const [inline, virtual] |
replaceLoadWithValue - Clients can choose to implement this to get notified right before a load is RAUW'd another value.
Definition at line 152 of file SSAUpdater.h.
Referenced by run().
| void LoadAndStorePromoter::run | ( | const SmallVectorImpl< Instruction * > & | Insts | ) | const |
run - This does the promotion. Insts is a list of loads and stores to promote, and Name is the basename for the PHIs to insert. After this is complete, the loads and stores are removed from the code.
Definition at line 380 of file SSAUpdater.cpp.
References llvm::SSAUpdater::AddAvailableValue(), llvm::BasicBlock::begin(), llvm::TinyPtrVector< EltTy >::clear(), doExtraRewritesBeforeFinalDeletion(), llvm::TinyPtrVector< EltTy >::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::end(), llvm::BasicBlock::end(), llvm::Instruction::eraseFromParent(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::find(), llvm::UndefValue::get(), llvm::Instruction::getParent(), llvm::Value::getType(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), instructionDeleted(), isInstInList(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::Value::replaceAllUsesWith(), replaceLoadWithValue(), llvm::TinyPtrVector< EltTy >::size(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), SSA, updateDebugInfo(), and llvm::Value::use_empty().
| virtual void llvm::LoadAndStorePromoter::updateDebugInfo | ( | Instruction * | I | ) | const [inline, virtual] |
updateDebugInfo - This is called to update debug info associated with the instruction.
Definition at line 161 of file SSAUpdater.h.
Referenced by run().
SSAUpdater& llvm::LoadAndStorePromoter::SSA [protected] |
Definition at line 127 of file SSAUpdater.h.
Referenced by LoadAndStorePromoter(), and run().