LLVM
8.0.1
|
A matcher/generator for finding suitable values for the next source in an operation's partially completed argument list. More...
#include "llvm/FuzzMutate/OpDescriptor.h"
Public Types | |
using | PredT = std::function< bool(ArrayRef< Value * > Cur, const Value *New)> |
Given a list of already selected operands, returns whether a given new operand is suitable for the next operand. More... | |
using | MakeT = std::function< std::vector< Constant * >(ArrayRef< Value * > Cur, ArrayRef< Type * > BaseTypes)> |
Given a list of already selected operands and a set of valid base types for a fuzzer, generates a list of constants that could be used for the next operand. More... | |
Public Member Functions | |
SourcePred (PredT Pred, MakeT Make) | |
Create a fully general source predicate. More... | |
SourcePred (PredT Pred, NoneType) | |
bool | matches (ArrayRef< Value *> Cur, const Value *New) |
Returns true if New is compatible for the argument after Cur . More... | |
std::vector< Constant * > | generate (ArrayRef< Value *> Cur, ArrayRef< Type *> BaseTypes) |
Generates a list of potential values for the argument after Cur . More... | |
A matcher/generator for finding suitable values for the next source in an operation's partially completed argument list.
Given that we're building some operation X and may have already filled some subset of its operands, this predicate determines if some value New is suitable for the next operand or generates a set of values that are suitable.
Definition at line 44 of file OpDescriptor.h.
using llvm::fuzzerop::SourcePred::MakeT = std::function<std::vector<Constant *>( ArrayRef<Value *> Cur, ArrayRef<Type *> BaseTypes)> |
Given a list of already selected operands and a set of valid base types for a fuzzer, generates a list of constants that could be used for the next operand.
Definition at line 53 of file OpDescriptor.h.
using llvm::fuzzerop::SourcePred::PredT = std::function<bool(ArrayRef<Value *> Cur, const Value *New)> |
Given a list of already selected operands, returns whether a given new operand is suitable for the next operand.
Definition at line 48 of file OpDescriptor.h.
Create a fully general source predicate.
Definition at line 61 of file OpDescriptor.h.
Definition at line 62 of file OpDescriptor.h.
References llvm::UndefValue::get(), llvm::fuzzerop::makeConstantsWithType(), and llvm::report_fatal_error().
|
inline |
Generates a list of potential values for the argument after Cur
.
Definition at line 83 of file OpDescriptor.h.
Referenced by llvm::RandomIRBuilder::newSource().
Returns true if New
is compatible for the argument after Cur
.
Definition at line 78 of file OpDescriptor.h.
Referenced by llvm::RandomIRBuilder::findOrCreateSource(), llvm::RandomIRBuilder::findPointer(), and llvm::RandomIRBuilder::newSource().