LLVM 20.0.0git
|
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... | |
|
inlinestatic |
Definition at line 233 of file OpDescriptor.h.
References Find().
Referenced by extractValueDescriptor(), and insertValueDescriptor().
|
inlinestatic |
Definition at line 143 of file OpDescriptor.h.
Referenced by binOpDescriptor(), cmpOpDescriptor(), and fnegDescriptor().
|
inlinestatic |
Definition at line 135 of file OpDescriptor.h.
|
inlinestatic |
Definition at line 121 of file OpDescriptor.h.
Referenced by binOpDescriptor(), and cmpOpDescriptor().
|
inlinestatic |
Definition at line 113 of file OpDescriptor.h.
Referenced by extractElementDescriptor(), gepDescriptor(), and insertElementDescriptor().
|
inlinestatic |
Definition at line 150 of file OpDescriptor.h.
References llvm::UndefValue::get(), and llvm::PointerType::getUnqual().
|
inlinestatic |
Definition at line 105 of file OpDescriptor.h.
Referenced by llvm::RandomIRBuilder::findOrCreateSource().
|
inlinestatic |
Definition at line 251 of file OpDescriptor.h.
Referenced by extractElementDescriptor(), insertElementDescriptor(), and shuffleVectorDescriptor().
OpDescriptor llvm::fuzzerop::binOpDescriptor | ( | unsigned | Weight, |
Instruction::BinaryOps | Op | ||
) |
Definition at line 116 of file Operations.cpp.
References anyFloatOrVecFloatType(), anyIntOrVecIntType(), llvm::BinaryOperator::Create(), llvm_unreachable, and matchFirstType().
Referenced by llvm::describeFuzzerFloatOps(), and llvm::describeFuzzerIntOps().
|
inlinestatic |
Definition at line 128 of file OpDescriptor.h.
Referenced by selectDescriptor().
OpDescriptor llvm::fuzzerop::cmpOpDescriptor | ( | unsigned | Weight, |
Instruction::OtherOps | CmpOp, | ||
CmpInst::Predicate | Pred | ||
) |
Definition at line 148 of file Operations.cpp.
References anyFloatOrVecFloatType(), anyIntOrVecIntType(), llvm::CmpInst::Create(), llvm_unreachable, and matchFirstType().
Referenced by llvm::describeFuzzerFloatOps(), and llvm::describeFuzzerIntOps().
OpDescriptor llvm::fuzzerop::extractElementDescriptor | ( | unsigned | Weight | ) |
Definition at line 316 of file Operations.cpp.
References anyIntType(), anyVectorType(), and llvm::ExtractElementInst::Create().
Referenced by llvm::describeFuzzerVectorOps().
OpDescriptor llvm::fuzzerop::extractValueDescriptor | ( | unsigned | Weight | ) |
Definition at line 244 of file Operations.cpp.
References anyAggregateType(), llvm::ExtractValueInst::Create(), Idx, and validExtractValueIndex().
Referenced by llvm::describeFuzzerAggregateOps().
OpDescriptor llvm::fuzzerop::fnegDescriptor | ( | unsigned | Weight | ) |
Definition at line 109 of file Operations.cpp.
References anyFloatOrVecFloatType(), and llvm::UnaryOperator::Create().
Referenced by llvm::describeFuzzerUnaryOperations().
OpDescriptor llvm::fuzzerop::gepDescriptor | ( | unsigned | Weight | ) |
Definition at line 198 of file Operations.cpp.
References anyIntType(), llvm::GetElementPtrInst::Create(), llvm::ArrayRef< T >::drop_front(), and sizedPtrType().
Referenced by llvm::describeFuzzerPointerOps().
OpDescriptor llvm::fuzzerop::insertElementDescriptor | ( | unsigned | Weight | ) |
Definition at line 325 of file Operations.cpp.
References anyIntType(), anyVectorType(), llvm::InsertElementInst::Create(), and matchScalarOfFirstType().
Referenced by llvm::describeFuzzerVectorOps().
OpDescriptor llvm::fuzzerop::insertValueDescriptor | ( | unsigned | Weight | ) |
Definition at line 304 of file Operations.cpp.
References anyAggregateType(), llvm::InsertValueInst::Create(), Idx, matchScalarInAggregate(), and validInsertValueIndex().
Referenced by llvm::describeFuzzerAggregateOps().
Definition at line 56 of file OpDescriptor.cpp.
References makeConstantsWithType().
Populate a small list of potentially interesting constants of a given type.
Definition at line 20 of file OpDescriptor.cpp.
References llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::APFloat::getInf(), llvm::APFloat::getLargest(), llvm::APInt::getMaxValue(), llvm::APInt::getMinValue(), llvm::APFloat::getNaN(), llvm::APInt::getOneBitSet(), llvm::APInt::getSignedMaxValue(), llvm::APInt::getSignedMinValue(), llvm::APFloat::getSmallest(), llvm::ConstantVector::getSplat(), llvm::APFloat::getZero(), makeConstantsWithType(), and UseUndef.
Referenced by makeConstantsWithType(), matchFirstLengthWAnyType(), matchFirstType(), matchScalarInAggregate(), matchScalarOfFirstType(), matchSecondType(), onlyType(), and llvm::fuzzerop::SourcePred::SourcePred().
|
inlinestatic |
Definition at line 185 of file OpDescriptor.h.
References assert(), llvm::ArrayRef< T >::empty(), llvm::First, llvm::VectorType::get(), llvm::VectorType::getElementCount(), getType(), llvm::VectorType::isValidElementType(), and makeConstantsWithType().
Referenced by selectDescriptor().
|
inlinestatic |
Match values that have the same type as the first source.
Definition at line 263 of file OpDescriptor.h.
References assert(), llvm::ArrayRef< T >::empty(), getType(), and makeConstantsWithType().
Referenced by binOpDescriptor(), cmpOpDescriptor(), and shuffleVectorDescriptor().
|
inlinestatic |
Match values that have the first source's scalar type.
Definition at line 276 of file OpDescriptor.h.
References assert(), llvm::ArrayRef< T >::empty(), getType(), and makeConstantsWithType().
Referenced by insertElementDescriptor().
|
inlinestatic |
Match values that have the same type as the first source.
Definition at line 221 of file OpDescriptor.h.
References assert(), getType(), makeConstantsWithType(), and llvm::ArrayRef< T >::size().
Referenced by selectDescriptor().
|
inlinestatic |
Definition at line 95 of file OpDescriptor.h.
References makeConstantsWithType().
Referenced by llvm::RandomIRBuilder::connectToSink(), llvm::InsertFunctionStrategy::mutate(), llvm::InsertCFGStrategy::mutate(), llvm::InsertPHIStrategy::mutate(), and llvm::InstDeleterIRStrategy::mutate().
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().
OpDescriptor llvm::fuzzerop::shuffleVectorDescriptor | ( | unsigned | Weight | ) |
Definition at line 350 of file Operations.cpp.
References anyVectorType(), matchFirstType(), and validShuffleVectorIndex().
Referenced by llvm::describeFuzzerVectorOps().
|
inlinestatic |
Definition at line 164 of file OpDescriptor.h.
References llvm::UndefValue::get(), and llvm::PointerType::getUnqual().
Referenced by gepDescriptor().
OpDescriptor llvm::fuzzerop::splitBlockDescriptor | ( | unsigned | Weight | ) |
Definition at line 166 of file Operations.cpp.
References llvm::Block, llvm::BranchInst::Create(), llvm::UndefValue::get(), and PHI.
Referenced by llvm::describeFuzzerControlFlowOps().