LLVM 20.0.0git
Classes | Namespaces | Typedefs | Functions
IRMutator.h File Reference
#include "llvm/FuzzMutate/OpDescriptor.h"
#include "llvm/Support/ErrorHandling.h"
#include <optional>

Go to the source code of this file.

Classes

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::InsertFunctionStrategy
 Strategy that generates new function calls and inserts function signatures to the modules. 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...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Typedefs

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

Functions

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