Go to the documentation of this file.
13 #ifndef LLVM_FUZZMUTATE_RANDOMIRBUILDER_H
14 #define LLVM_FUZZMUTATE_RANDOMIRBUILDER_H
68 #endif // LLVM_FUZZMUTATE_RANDOMIRBUILDER_H
Value * findOrCreateSource(BasicBlock &BB, ArrayRef< Instruction * > Insts)
Find a "source" for some operation, which will be used in one of the operation's operands.
This is an optimization pass for GlobalISel generic memory operations.
Type * chooseType(LLVMContext &Context, ArrayRef< Value * > Srcs, fuzzerop::SourcePred Pred)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Value * findPointer(BasicBlock &BB, ArrayRef< Instruction * > Insts, ArrayRef< Value * > Srcs, fuzzerop::SourcePred Pred)
The instances of the Type class are immutable: once they are created, they are never changed.
const_iterator end(StringRef path)
Get end iterator over path.
const_iterator begin(StringRef path, Style style=Style::native)
Get begin iterator over path.
LLVM Basic Block Representation.
SmallVector< Type *, 16 > KnownTypes
static ManagedStatic< cl::opt< uint64_t >, CreateSeed > Seed
This is an important class for using LLVM in a threaded context.
void connectToSink(BasicBlock &BB, ArrayRef< Instruction * > Insts, Value *V)
Find a viable user for V in Insts, which should all be contained in BB.
void newSink(BasicBlock &BB, ArrayRef< Instruction * > Insts, Value *V)
Create a user for V in BB.
@ BasicBlock
Various leaf nodes.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
RandomIRBuilder(int Seed, ArrayRef< Type * > AllowedTypes)
std::mt19937 RandomEngine
A matcher/generator for finding suitable values for the next source in an operation's partially compl...
Value * newSource(BasicBlock &BB, ArrayRef< Instruction * > Insts, ArrayRef< Value * > Srcs, fuzzerop::SourcePred Pred)
Create some Value suitable as a source for some operation.
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
LLVM Value Representation.