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

Strategy that deletes instructions when the Module is too large. 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 (Instruction &Inst, RandomIRBuilder &IB) override
virtual void mutate (Module &M, RandomIRBuilder &IB)
virtual void mutate (BasicBlock &BB, RandomIRBuilder &IB)
Public Member Functions inherited from llvm::IRMutationStrategy
virtual ~IRMutationStrategy ()=default

Strategy that deletes instructions when the Module is too large.

Definition at line 113 of file IRMutator.h.

getWeight()

uint64_t InstDeleterIRStrategy::getWeight ( size_t CurrentSize, size_t MaxSize, uint64_t CurrentWeight ) overridevirtual

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 190 of file IRMutator.cpp.

mutate() [1/4]

mutate() [2/4]

mutate() [3/4]

Reimplemented from llvm::IRMutationStrategy.

Definition at line 226 of file IRMutator.cpp.

References assert(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getFirstInsertionPt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Value::getType(), I, llvm::Instruction::isTerminator(), llvm::Type::isVoidTy(), llvm::makeSampler(), llvm::fuzzerop::onlyType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Value::replaceAllUsesWith().

mutate() [4/4]


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