class MemoryWriteTracking
Declaration
class MemoryWriteTracking : public InstructionPrecedenceTracking { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h:121
Inherits from: InstructionPrecedenceTracking
Member Variables
Method Overview
- public const llvm::Instruction * getFirstMemoryWrite(const llvm::BasicBlock * BB)
- public bool isDominatedByMemoryWriteFromSameBlock(const llvm::Instruction * Insn)
- public bool isSpecialInstruction(const llvm::Instruction * Insn) const
- public bool mayWriteToMemory(const llvm::BasicBlock * BB)
Inherited from InstructionPrecedenceTracking:
- public clear
- protected getFirstSpecialInstruction
- protected hasSpecialInstructions
- public insertInstructionTo
- protected isPreceededBySpecialInstruction
- protected isSpecialInstruction
- public removeInstruction
- public removeUsersOf
Methods
¶const llvm::Instruction* getFirstMemoryWrite(
const llvm::BasicBlock* BB)
const llvm::Instruction* getFirstMemoryWrite(
const llvm::BasicBlock* BB)
Description
Returns the topmost instruction that may write memory from the given basic block. Returns nullptr if there is no such instructions in the block.
Declared at: llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h:125
Parameters
- const llvm::BasicBlock* BB
¶bool isDominatedByMemoryWriteFromSameBlock(
const llvm::Instruction* Insn)
bool isDominatedByMemoryWriteFromSameBlock(
const llvm::Instruction* Insn)
Description
Returns true if the first memory writing instruction of Insn's block exists and dominates Insn.
Declared at: llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h:137
Parameters
- const llvm::Instruction* Insn
¶bool isSpecialInstruction(
const llvm::Instruction* Insn) const
bool isSpecialInstruction(
const llvm::Instruction* Insn) const
Description
A predicate that defines whether or not the instruction \p Insn is considered special and needs to be tracked. Implementing this method in children classes allows to implement tracking of implicit control flow, memory writing instructions or any other kinds of instructions we might be interested in.
Declared at: llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h:141
Parameters
- const llvm::Instruction* Insn
¶bool mayWriteToMemory(const llvm::BasicBlock* BB)
bool mayWriteToMemory(const llvm::BasicBlock* BB)
Description
Returns true if at least one instruction from the given basic block may write memory.
Declared at: llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h:131
Parameters
- const llvm::BasicBlock* BB