LLVM 17.0.0git
Classes | Functions
llvm::fuzzerop Namespace Reference

Classes

struct  OpDescriptor
 A description of some operation we can build while fuzzing IR. More...
 
class  SourcePred
 A matcher/generator for finding suitable values for the next source in an operation's partially completed argument list. More...
 

Functions

static SourcePred onlyType (Type *Only)
 
static SourcePred anyType ()
 
static SourcePred anyIntType ()
 
static SourcePred anyIntOrVecIntType ()
 
static SourcePred boolOrVecBoolType ()
 
static SourcePred anyFloatType ()
 
static SourcePred anyFloatOrVecFloatType ()
 
static SourcePred anyPtrType ()
 
static SourcePred sizedPtrType ()
 
static SourcePred matchFirstLengthWAnyType ()
 
static SourcePred matchSecondType ()
 Match values that have the same type as the first source.
 
static SourcePred anyAggregateType ()
 
static SourcePred anyVectorType ()
 
static SourcePred matchFirstType ()
 Match values that have the same type as the first source.
 
static SourcePred matchScalarOfFirstType ()
 Match values that have the first source's scalar type.
 
void makeConstantsWithType (Type *T, std::vector< Constant * > &Cs)
 
std::vector< Constant * > makeConstantsWithType (Type *T)
 
OpDescriptor selectDescriptor (unsigned Weight)
 Descriptors for individual operations.
 
OpDescriptor fnegDescriptor (unsigned Weight)
 
OpDescriptor binOpDescriptor (unsigned Weight, Instruction::BinaryOps Op)
 
OpDescriptor cmpOpDescriptor (unsigned Weight, Instruction::OtherOps CmpOp, CmpInst::Predicate Pred)
 
OpDescriptor splitBlockDescriptor (unsigned Weight)
 
OpDescriptor gepDescriptor (unsigned Weight)
 
OpDescriptor extractValueDescriptor (unsigned Weight)
 
OpDescriptor insertValueDescriptor (unsigned Weight)
 
OpDescriptor extractElementDescriptor (unsigned Weight)
 
OpDescriptor insertElementDescriptor (unsigned Weight)
 
OpDescriptor shuffleVectorDescriptor (unsigned Weight)
 

Function Documentation

◆ anyAggregateType()

static SourcePred llvm::fuzzerop::anyAggregateType ( )
inlinestatic

Definition at line 234 of file OpDescriptor.h.

References Find().

Referenced by extractValueDescriptor(), and insertValueDescriptor().

◆ anyFloatOrVecFloatType()

static SourcePred llvm::fuzzerop::anyFloatOrVecFloatType ( )
inlinestatic

Definition at line 143 of file OpDescriptor.h.

Referenced by binOpDescriptor(), cmpOpDescriptor(), and fnegDescriptor().

◆ anyFloatType()

static SourcePred llvm::fuzzerop::anyFloatType ( )
inlinestatic

Definition at line 135 of file OpDescriptor.h.

◆ anyIntOrVecIntType()

static SourcePred llvm::fuzzerop::anyIntOrVecIntType ( )
inlinestatic

Definition at line 121 of file OpDescriptor.h.

Referenced by binOpDescriptor(), and cmpOpDescriptor().

◆ anyIntType()

static SourcePred llvm::fuzzerop::anyIntType ( )
inlinestatic

◆ anyPtrType()

static SourcePred llvm::fuzzerop::anyPtrType ( )
inlinestatic

Definition at line 150 of file OpDescriptor.h.

References llvm::UndefValue::get(), and llvm::PointerType::getUnqual().

◆ anyType()

static SourcePred llvm::fuzzerop::anyType ( )
inlinestatic

Definition at line 105 of file OpDescriptor.h.

Referenced by llvm::RandomIRBuilder::findOrCreateSource().

◆ anyVectorType()

static SourcePred llvm::fuzzerop::anyVectorType ( )
inlinestatic

◆ binOpDescriptor()

OpDescriptor llvm::fuzzerop::binOpDescriptor ( unsigned  Weight,
Instruction::BinaryOps  Op 
)

◆ boolOrVecBoolType()

static SourcePred llvm::fuzzerop::boolOrVecBoolType ( )
inlinestatic

Definition at line 128 of file OpDescriptor.h.

Referenced by selectDescriptor().

◆ cmpOpDescriptor()

OpDescriptor llvm::fuzzerop::cmpOpDescriptor ( unsigned  Weight,
Instruction::OtherOps  CmpOp,
CmpInst::Predicate  Pred 
)

◆ extractElementDescriptor()

OpDescriptor llvm::fuzzerop::extractElementDescriptor ( unsigned  Weight)

◆ extractValueDescriptor()

OpDescriptor llvm::fuzzerop::extractValueDescriptor ( unsigned  Weight)

◆ fnegDescriptor()

OpDescriptor llvm::fuzzerop::fnegDescriptor ( unsigned  Weight)

◆ gepDescriptor()

OpDescriptor llvm::fuzzerop::gepDescriptor ( unsigned  Weight)

◆ insertElementDescriptor()

OpDescriptor llvm::fuzzerop::insertElementDescriptor ( unsigned  Weight)

◆ insertValueDescriptor()

OpDescriptor llvm::fuzzerop::insertValueDescriptor ( unsigned  Weight)

◆ makeConstantsWithType() [1/2]

std::vector< Constant * > llvm::fuzzerop::makeConstantsWithType ( Type T)

Definition at line 50 of file OpDescriptor.cpp.

References makeConstantsWithType().

◆ makeConstantsWithType() [2/2]

void llvm::fuzzerop::makeConstantsWithType ( Type T,
std::vector< Constant * > &  Cs 
)

◆ matchFirstLengthWAnyType()

static SourcePred llvm::fuzzerop::matchFirstLengthWAnyType ( )
inlinestatic

◆ matchFirstType()

static SourcePred llvm::fuzzerop::matchFirstType ( )
inlinestatic

Match values that have the same type as the first source.

Definition at line 264 of file OpDescriptor.h.

References assert(), llvm::ArrayRef< T >::empty(), getType(), and makeConstantsWithType().

Referenced by binOpDescriptor(), cmpOpDescriptor(), llvm::RandomIRBuilder::newSink(), and shuffleVectorDescriptor().

◆ matchScalarOfFirstType()

static SourcePred llvm::fuzzerop::matchScalarOfFirstType ( )
inlinestatic

Match values that have the first source's scalar type.

Definition at line 277 of file OpDescriptor.h.

References assert(), llvm::ArrayRef< T >::empty(), getType(), and makeConstantsWithType().

Referenced by insertElementDescriptor().

◆ matchSecondType()

static SourcePred llvm::fuzzerop::matchSecondType ( )
inlinestatic

Match values that have the same type as the first source.

Definition at line 222 of file OpDescriptor.h.

References assert(), getType(), makeConstantsWithType(), and llvm::ArrayRef< T >::size().

Referenced by selectDescriptor().

◆ onlyType()

static SourcePred llvm::fuzzerop::onlyType ( Type Only)
inlinestatic

◆ selectDescriptor()

OpDescriptor llvm::fuzzerop::selectDescriptor ( unsigned  Weight)

Descriptors for individual operations.

Definition at line 100 of file Operations.cpp.

References boolOrVecBoolType(), llvm::SelectInst::Create(), matchFirstLengthWAnyType(), and matchSecondType().

Referenced by llvm::describeFuzzerOtherOps().

◆ shuffleVectorDescriptor()

OpDescriptor llvm::fuzzerop::shuffleVectorDescriptor ( unsigned  Weight)

◆ sizedPtrType()

static SourcePred llvm::fuzzerop::sizedPtrType ( )
inlinestatic

Definition at line 164 of file OpDescriptor.h.

References llvm::UndefValue::get(), and llvm::PointerType::getUnqual().

Referenced by gepDescriptor().

◆ splitBlockDescriptor()

OpDescriptor llvm::fuzzerop::splitBlockDescriptor ( unsigned  Weight)