class InjectorIRStrategy

Declaration

class InjectorIRStrategy : public IRMutationStrategy { /* full declaration omitted */ };

Description

Strategy that injects operations into the function.

Declared at: llvm/include/llvm/FuzzMutate/IRMutator.h:77

Inherits from: IRMutationStrategy

Member Variables

private std::vector<fuzzerop::OpDescriptor> Operations

Method Overview

  • public InjectorIRStrategy(std::vector<fuzzerop::OpDescriptor> && Operations)
  • private Optional<fuzzerop::OpDescriptor> chooseOperation(llvm::Value * Src, llvm::RandomIRBuilder & IB)
  • public static std::vector<fuzzerop::OpDescriptor> getDefaultOps()
  • public uint64_t getWeight(size_t CurrentSize, size_t MaxSize, uint64_t CurrentWeight)
  • public void mutate(llvm::Function & F, llvm::RandomIRBuilder & IB)
  • public void mutate(llvm::BasicBlock & BB, llvm::RandomIRBuilder & IB)

Inherited from IRMutationStrategy:

Methods

InjectorIRStrategy(
    std::vector<fuzzerop::OpDescriptor>&&
        Operations)

Declared at: llvm/include/llvm/FuzzMutate/IRMutator.h:84

Parameters

std::vector<fuzzerop::OpDescriptor>&& Operations

Optional<fuzzerop::OpDescriptor> chooseOperation(
    llvm::Value* Src,
    llvm::RandomIRBuilder& IB)

Declared at: llvm/include/llvm/FuzzMutate/IRMutator.h:80

Parameters

llvm::Value* Src
llvm::RandomIRBuilder& IB

static std::vector<fuzzerop::OpDescriptor>
getDefaultOps()

Declared at: llvm/include/llvm/FuzzMutate/IRMutator.h:86

uint64_t getWeight(size_t CurrentSize,
                   size_t MaxSize,
                   uint64_t CurrentWeight)

Description

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 \c MaxSize.

Declared at: llvm/include/llvm/FuzzMutate/IRMutator.h:88

Parameters

size_t CurrentSize
size_t MaxSize
uint64_t CurrentWeight

void mutate(llvm::Function& F,
            llvm::RandomIRBuilder& IB)

Declared at: llvm/include/llvm/FuzzMutate/IRMutator.h:94

Parameters

llvm::Function& F
llvm::RandomIRBuilder& IB

void mutate(llvm::BasicBlock& BB,
            llvm::RandomIRBuilder& IB)

Declared at: llvm/include/llvm/FuzzMutate/IRMutator.h:95

Parameters

llvm::BasicBlock& BB
llvm::RandomIRBuilder& IB