LLVM: llvm::SinkInstructionStrategy Class Reference (original) (raw)

Strategy to select a random instruction and add a new sink (user) to it to increate data dependency. More...

#include "[llvm/FuzzMutate/IRMutator.h](IRMutator%5F8h%5Fsource.html)"

Public Member Functions
uint64_t getWeight (size_t CurrentSize, size_t MaxSize, uint64_t CurrentWeight) override
Provide a weight to bias towards choosing this strategy for a mutation.
void mutate (Function &F, RandomIRBuilder &IB) override
void mutate (BasicBlock &BB, RandomIRBuilder &IB) override
Public Member Functions inherited from llvm::IRMutationStrategy
virtual ~IRMutationStrategy ()=default
virtual void mutate (Module &M, RandomIRBuilder &IB)
virtual void mutate (Instruction &I, RandomIRBuilder &IB)

Strategy to select a random instruction and add a new sink (user) to it to increate data dependency.

Definition at line 182 of file IRMutator.h.

getWeight()

uint64_t llvm::SinkInstructionStrategy::getWeight ( size_t CurrentSize, size_t MaxSize, uint64_t CurrentWeight ) inlineoverridevirtual

Provide a weight to bias towards choosing this strategy for a mutation.

The value of the weight is arbitrary, but a good default is "the number of distinct ways in which this strategy can mutate a unit". This can also be used to prefer strategies that shrink the overall size of the result when we start getting close to MaxSize.

Implements llvm::IRMutationStrategy.

Definition at line 184 of file IRMutator.h.

mutate() [1/2]

mutate() [2/2]


The documentation for this class was generated from the following files: