class MemoryWriteTracking

Declaration

class MemoryWriteTracking : public InstructionPrecedenceTracking { /* full declaration omitted */ };

Declared at: llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h:122

Inherits from: InstructionPrecedenceTracking

Method Overview

Inherited from InstructionPrecedenceTracking:

Methods

MemoryWriteTracking(llvm::DominatorTree* DT)

Declared at: llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h:124

Parameters

llvm::DominatorTree* DT

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:128

Parameters

const llvm::BasicBlock* BB

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:140

Parameters

const llvm::Instruction* Insn

virtual 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:144

Parameters

const llvm::Instruction* Insn

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:134

Parameters

const llvm::BasicBlock* BB