LLVM  17.0.0git
Classes | Namespaces | Typedefs | Functions
IRMutator.h File Reference
#include "llvm/FuzzMutate/OpDescriptor.h"
#include "llvm/Support/ErrorHandling.h"
#include <optional>
Include dependency graph for IRMutator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


class  llvm::IRMutationStrategy
 Base class for describing how to mutate a module. More...
class  llvm::IRMutator
 Entry point for configuring and running IR mutations. More...
class  llvm::InjectorIRStrategy
 Strategy that injects operations into the function. More...
class  llvm::InstDeleterIRStrategy
 Strategy that deletes instructions when the Module is too large. More...
class  llvm::InstModificationIRStrategy
 Strategy that modifies instruction attributes and operands. More...
class  llvm::InsertCFGStrategy
 Strategy to split a random block and insert a random CFG in between. More...
class  llvm::InsertPHIStrategy
 Strategy to insert PHI Nodes at the head of each basic block. More...
class  llvm::SinkInstructionStrategy
 Strategy to select a random instruction and add a new sink (user) to it to increate data dependency. More...
class  llvm::ShuffleBlockStrategy
 Strategy to randomly select a block and shuffle the operations without affecting data dependency. More...


 This is an optimization pass for GlobalISel generic memory operations.


using llvm::TypeGetter = std::function< Type *(LLVMContext &)>


std::unique_ptr< Modulellvm::parseModule (const uint8_t *Data, size_t Size, LLVMContext &Context)
 Fuzzer friendly interface for the llvm bitcode parser. More...
size_t llvm::writeModule (const Module &M, uint8_t *Dest, size_t MaxSize)
 Fuzzer friendly interface for the llvm bitcode printer. More...
std::unique_ptr< Modulellvm::parseAndVerify (const uint8_t *Data, size_t Size, LLVMContext &Context)
 Try to parse module and verify it. More...