LLVM
8.0.1
|
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 165 of file OpDescriptor.h.
References Find(), and llvm::None.
Referenced by extractValueDescriptor(), and insertValueDescriptor().
|
inlinestatic |
Definition at line 122 of file OpDescriptor.h.
References llvm::None.
Referenced by binOpDescriptor(), and cmpOpDescriptor().
|
inlinestatic |
Definition at line 114 of file OpDescriptor.h.
References llvm::None.
Referenced by binOpDescriptor(), cmpOpDescriptor(), extractElementDescriptor(), gepDescriptor(), and insertElementDescriptor().
|
inlinestatic |
Definition at line 130 of file OpDescriptor.h.
References llvm::UndefValue::get(), and llvm::PointerType::getUnqual().
|
inlinestatic |
Definition at line 106 of file OpDescriptor.h.
References llvm::None.
Referenced by llvm::RandomIRBuilder::findOrCreateSource().
|
inlinestatic |
Definition at line 183 of file OpDescriptor.h.
References llvm::None.
Referenced by extractElementDescriptor(), insertElementDescriptor(), and shuffleVectorDescriptor().
OpDescriptor llvm::fuzzerop::binOpDescriptor | ( | unsigned | Weight, |
Instruction::BinaryOps | Op | ||
) |
Descriptors for individual operations.
Definition at line 92 of file Operations.cpp.
References llvm::MCID::Add, anyFloatType(), anyIntType(), llvm::BinaryOperator::Create(), llvm_unreachable, and matchFirstType().
Referenced by llvm::describeFuzzerFloatOps(), and llvm::describeFuzzerIntOps().
OpDescriptor llvm::fuzzerop::cmpOpDescriptor | ( | unsigned | Weight, |
Instruction::OtherOps | CmpOp, | ||
CmpInst::Predicate | Pred | ||
) |
Definition at line 124 of file Operations.cpp.
References anyFloatType(), anyIntType(), llvm::CmpInst::Create(), llvm_unreachable, and matchFirstType().
Referenced by llvm::describeFuzzerFloatOps(), and llvm::describeFuzzerIntOps().
OpDescriptor llvm::fuzzerop::extractElementDescriptor | ( | unsigned | Weight | ) |
Definition at line 279 of file Operations.cpp.
References anyIntType(), anyVectorType(), and llvm::ExtractElementInst::Create().
Referenced by llvm::describeFuzzerVectorOps().
OpDescriptor llvm::fuzzerop::extractValueDescriptor | ( | unsigned | Weight | ) |
Definition at line 212 of file Operations.cpp.
References anyAggregateType(), llvm::ExtractValueInst::Create(), and validExtractValueIndex().
Referenced by llvm::describeFuzzerAggregateOps().
OpDescriptor llvm::fuzzerop::gepDescriptor | ( | unsigned | Weight | ) |
Definition at line 171 of file Operations.cpp.
References anyIntType(), buildGEP(), llvm::GetElementPtrInst::Create(), llvm::makeArrayRef(), and sizedPtrType().
Referenced by llvm::describeFuzzerPointerOps().
OpDescriptor llvm::fuzzerop::insertElementDescriptor | ( | unsigned | Weight | ) |
Definition at line 287 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 267 of file Operations.cpp.
References anyAggregateType(), llvm::InsertValueInst::Create(), matchScalarInAggregate(), and validInsertValueIndex().
Referenced by llvm::describeFuzzerAggregateOps().
Populate a small list of potentially interesting constants of a given type.
Definition at line 16 of file OpDescriptor.cpp.
References llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::UndefValue::get(), llvm::Type::getContext(), llvm::Type::getFltSemantics(), llvm::APFloat::getLargest(), llvm::APInt::getMaxValue(), llvm::APInt::getMinValue(), llvm::APInt::getOneBitSet(), llvm::APInt::getSignedMaxValue(), llvm::APInt::getSignedMinValue(), llvm::APFloat::getSmallest(), llvm::APFloat::getZero(), llvm::Type::isFloatingPointTy(), and llvm::RISCVFenceField::W.
Referenced by makeConstantsWithType(), matchFirstType(), matchScalarInAggregate(), matchScalarOfFirstType(), onlyType(), and llvm::fuzzerop::SourcePred::SourcePred().
Definition at line 34 of file OpDescriptor.cpp.
References makeConstantsWithType().
|
inlinestatic |
Match values that have the same type as the first source.
Definition at line 195 of file OpDescriptor.h.
References assert(), llvm::ArrayRef< T >::empty(), getType(), and makeConstantsWithType().
Referenced by binOpDescriptor(), cmpOpDescriptor(), llvm::RandomIRBuilder::newSink(), and shuffleVectorDescriptor().
|
inlinestatic |
Match values that have the first source's scalar type.
Definition at line 208 of file OpDescriptor.h.
References assert(), llvm::ArrayRef< T >::empty(), getType(), and makeConstantsWithType().
Referenced by insertElementDescriptor().
|
inlinestatic |
Definition at line 96 of file OpDescriptor.h.
References makeConstantsWithType().
Referenced by llvm::InstDeleterIRStrategy::mutate().
OpDescriptor llvm::fuzzerop::shuffleVectorDescriptor | ( | unsigned | Weight | ) |
Definition at line 312 of file Operations.cpp.
References anyVectorType(), matchFirstType(), and validShuffleVectorIndex().
Referenced by llvm::describeFuzzerVectorOps().
|
inlinestatic |
Definition at line 144 of file OpDescriptor.h.
References llvm::UndefValue::get(), llvm::PointerType::getUnqual(), and llvm::Type::isSized().
Referenced by gepDescriptor().
OpDescriptor llvm::fuzzerop::splitBlockDescriptor | ( | unsigned | Weight | ) |
Definition at line 141 of file Operations.cpp.
References llvm::BranchInst::Create(), llvm::Instruction::eraseFromParent(), llvm::UndefValue::get(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::isEHPad(), llvm::None, llvm::BasicBlock::phis(), and llvm::BasicBlock::splitBasicBlock().
Referenced by llvm::describeFuzzerControlFlowOps().