LLVM 20.0.0git
|
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. | |
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. | |
Public Member Functions | |
SourcePred (PredT Pred, MakeT Make) | |
Create a fully general source predicate. | |
SourcePred (PredT Pred, std::nullopt_t) | |
bool | matches (ArrayRef< Value * > Cur, const Value *New) |
Returns true if New is compatible for the argument after Cur . | |
std::vector< Constant * > | generate (ArrayRef< Value * > Cur, ArrayRef< Type * > BaseTypes) |
Generates a list of potential values for the argument after Cur . | |
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 43 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 51 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 47 of file OpDescriptor.h.
Create a fully general source predicate.
Definition at line 60 of file OpDescriptor.h.
|
inline |
Definition at line 61 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 82 of file OpDescriptor.h.
Referenced by llvm::RandomIRBuilder::findOrCreateGlobalVariable(), and llvm::RandomIRBuilder::newSource().
Returns true if New
is compatible for the argument after Cur
.
Definition at line 77 of file OpDescriptor.h.
Referenced by llvm::RandomIRBuilder::findOrCreateGlobalVariable(), llvm::RandomIRBuilder::findOrCreateSource(), and llvm::RandomIRBuilder::newSource().