LLVM 22.0.0git
Functions
RandomIRBuilder.cpp File Reference
#include "llvm/FuzzMutate/RandomIRBuilder.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/FuzzMutate/OpDescriptor.h"
#include "llvm/FuzzMutate/Random.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"

Go to the source code of this file.

Functions

static std::vector< BasicBlock * > getDominators (BasicBlock *BB)
 Return a vector of Blocks that dominates this block, excluding current block.
 
static std::vector< BasicBlock * > getDominatees (BasicBlock *BB)
 Return a vector of Blocks that is dominated by this block, excluding current block.
 
static ValuebuildTargetLegalPtr (Module *M, Value *Ptr, InsertPosition IP, const Twine &Name, SmallVector< Instruction * > *NewInsts)
 
static InstructionbuildTargetLegalStore (Value *Val, Value *Ptr, InsertPosition IP, Module *M)
 
static std::pair< Instruction *, SmallVector< Instruction * > > buildTargetLegalLoad (Type *AccessTy, Value *Ptr, InsertPosition IP, Module *M, const Twine &LoadName)
 
static void eraseNewInstructions (SmallVector< Instruction * > &NewInsts)
 
static bool isCompatibleReplacement (const Instruction *I, const Use &Operand, const Value *Replacement)
 

Function Documentation

◆ buildTargetLegalLoad()

static std::pair< Instruction *, SmallVector< Instruction * > > buildTargetLegalLoad ( Type AccessTy,
Value Ptr,
InsertPosition  IP,
Module M,
const Twine LoadName 
)
static

◆ buildTargetLegalPtr()

static Value * buildTargetLegalPtr ( Module M,
Value Ptr,
InsertPosition  IP,
const Twine Name,
SmallVector< Instruction * > *  NewInsts 
)
static

◆ buildTargetLegalStore()

static Instruction * buildTargetLegalStore ( Value Val,
Value Ptr,
InsertPosition  IP,
Module M 
)
static

◆ eraseNewInstructions()

static void eraseNewInstructions ( SmallVector< Instruction * > &  NewInsts)
static

◆ getDominatees()

static std::vector< BasicBlock * > getDominatees ( BasicBlock BB)
static

Return a vector of Blocks that is dominated by this block, excluding current block.

Definition at line 45 of file RandomIRBuilder.cpp.

References llvm::DomTreeNodeBase< NodeT >::children(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getParent(), and Idx.

Referenced by llvm::RandomIRBuilder::connectToSink().

◆ getDominators()

static std::vector< BasicBlock * > getDominators ( BasicBlock BB)
static

Return a vector of Blocks that dominates this block, excluding current block.

Definition at line 26 of file RandomIRBuilder.cpp.

References llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), and llvm::BasicBlock::getParent().

Referenced by llvm::RandomIRBuilder::connectToSink(), and llvm::RandomIRBuilder::findOrCreateSource().

◆ isCompatibleReplacement()

static bool isCompatibleReplacement ( const Instruction I,
const Use Operand,
const Value Replacement 
)
static