LLVM 17.0.0git
llvm::ShuffleBlockStrategy Class Reference

Strategy to randomly select a block and shuffle the operations without affecting data dependency. More...

#include "llvm/FuzzMutate/IRMutator.h"

Inheritance diagram for llvm::ShuffleBlockStrategy:
[legend]
Collaboration diagram for llvm::ShuffleBlockStrategy:
[legend]

## 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 (BasicBlock &BB, RandomIRBuilder &IB) override

Public Member Functions inherited from llvm::IRMutationStrategy
virtual ~IRMutationStrategy ()=default

virtual uint64_t getWeight (size_t CurrentSize, size_t MaxSize, uint64_t CurrentWeight)=0
Provide a weight to bias towards choosing this strategy for a mutation.

virtual void mutate (Module &M, RandomIRBuilder &IB)

virtual void mutate (Function &F, RandomIRBuilder &IB)

virtual void mutate (Instruction &I, RandomIRBuilder &IB)

## Detailed Description

Strategy to randomly select a block and shuffle the operations without affecting data dependency.

Definition at line 167 of file IRMutator.h.

## ◆ getWeight()

 uint64_t llvm::ShuffleBlockStrategy::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 169 of file IRMutator.h.

## ◆ mutate()

 void ShuffleBlockStrategy::mutate ( BasicBlock & BB, RandomIRBuilder & IB )
overridevirtual

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