From: Vikram S. Adve Date: Sat, 24 Aug 2002 21:03:10 +0000 (+0000) Subject: Added function GetMemInstArgs and made FoldGetElemChain private. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=df3fe55e5734c591d6af272f675389e33a42ab3d;p=oota-llvm.git Added function GetMemInstArgs and made FoldGetElemChain private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3503 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/InstrSelectionSupport.h b/include/llvm/CodeGen/InstrSelectionSupport.h index a134e35b868..39d9d180722 100644 --- a/include/llvm/CodeGen/InstrSelectionSupport.h +++ b/include/llvm/CodeGen/InstrSelectionSupport.h @@ -37,16 +37,25 @@ int64_t GetConstantValueAsSignedInt (const Value *V, //--------------------------------------------------------------------------- -// Function: FoldGetElemChain +// Function: GetMemInstArgs // // Purpose: -// Fold a chain of GetElementPtr instructions into an equivalent -// (Pointer, IndexVector) pair. Returns the pointer Value, and -// stores the resulting IndexVector in argument chainIdxVec. +// Get the pointer value and the index vector for a memory operation +// (GetElementPtr, Load, or Store). If all indices of the given memory +// operation are constant, fold in constant indices in a chain of +// preceding GetElementPtr instructions (if any), and return the +// pointer value of the first instruction in the chain. +// All folded instructions are marked so no code is generated for them. +// +// Return values: +// Returns the pointer Value to use. +// Returns the resulting IndexVector in idxVec. +// Returns true/false in allConstantIndices if all indices are/aren't const. //--------------------------------------------------------------------------- -Value* FoldGetElemChain (const InstructionNode* getElemInstrNode, - std::vector& chainIdxVec); +Value* GetMemInstArgs (const InstructionNode* memInstrNode, + vector& idxVec, + bool& allConstantIndices); //------------------------------------------------------------------------