mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Added function GetMemInstArgs and made FoldGetElemChain private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3503 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2730a38485
commit
df3fe55e57
@ -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<Value*>& chainIdxVec);
|
||||
Value* GetMemInstArgs (const InstructionNode* memInstrNode,
|
||||
vector<Value*>& idxVec,
|
||||
bool& allConstantIndices);
|
||||
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user