| 
    LLVM 22.0.0git
    
   | 
 
#include "llvm/FuzzMutate/IRMutator.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallSet.h"#include "llvm/Analysis/TargetLibraryInfo.h"#include "llvm/Bitcode/BitcodeReader.h"#include "llvm/Bitcode/BitcodeWriter.h"#include "llvm/FuzzMutate/Operations.h"#include "llvm/FuzzMutate/Random.h"#include "llvm/FuzzMutate/RandomIRBuilder.h"#include "llvm/IR/BasicBlock.h"#include "llvm/IR/FMF.h"#include "llvm/IR/Function.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/IntrinsicsAMDGPU.h"#include "llvm/IR/Module.h"#include "llvm/IR/Operator.h"#include "llvm/IR/PassInstrumentation.h"#include "llvm/IR/Verifier.h"#include "llvm/Support/MemoryBuffer.h"#include "llvm/Support/SourceMgr.h"#include "llvm/Transforms/Scalar/DCE.h"#include "llvm/Transforms/Utils/BasicBlockUtils.h"#include <map>#include <optional>Go to the source code of this file.
Functions | |
| static void | eliminateDeadCode (Function &F) | 
| static Instruction * | getEffectiveTerminator (BasicBlock &BB) | 
| static BasicBlock::iterator | getEndIterator (BasicBlock &BB) | 
| static iterator_range< BasicBlock::iterator > | getInsertionRange (BasicBlock &BB) | 
| static uint64_t | getUniqueCaseValue (SmallSet< uint64_t, 4 > &CasesTaken, uint64_t MaxValue, RandomIRBuilder &IB) | 
| Return a case value that is not already taken to make sure we don't have two cases with same value.   | |
| static bool | isUnsupportedFunction (Function *F) | 
| Determines whether a function is unsupported by the current mutator's implementation.   | |
      
  | 
  static | 
Definition at line 84 of file IRMutator.cpp.
References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), F, FAM, and llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run().
Referenced by llvm::InjectorIRStrategy::mutate(), llvm::InstDeleterIRStrategy::mutate(), and llvm::DCEPass::run().
      
  | 
  inlinestatic | 
Definition at line 120 of file IRMutator.cpp.
References llvm::dyn_cast(), llvm::BasicBlock::getTerminatingMustTailCall(), llvm::BasicBlock::getTerminator(), I, and II.
Referenced by getEndIterator(), and llvm::ShuffleBlockStrategy::mutate().
      
  | 
  inlinestatic | 
Definition at line 136 of file IRMutator.cpp.
References llvm::BasicBlock::empty(), llvm::BasicBlock::end(), getEffectiveTerminator(), and llvm::BasicBlock::getTerminator().
Referenced by getInsertionRange().
      
  | 
  inlinestatic | 
Definition at line 153 of file IRMutator.cpp.
References getEndIterator(), llvm::BasicBlock::getFirstInsertionPt(), and llvm::make_range().
Referenced by llvm::InjectorIRStrategy::mutate(), llvm::InsertCFGStrategy::mutate(), llvm::InsertFunctionStrategy::mutate(), llvm::InsertPHIStrategy::mutate(), and llvm::SinkInstructionStrategy::mutate().
      
  | 
  static | 
Return a case value that is not already taken to make sure we don't have two cases with same value.
Definition at line 383 of file IRMutator.cpp.
References llvm::SmallSet< T, N, C >::count(), llvm::SmallSet< T, N, C >::insert(), and llvm::uniform().
Referenced by llvm::InsertCFGStrategy::mutate().
Determines whether a function is unsupported by the current mutator's implementation.
The function returns true if any of the following criteria are met:
Definition at line 399 of file IRMutator.cpp.
References A(), llvm::any_of(), F, llvm::isCallableCC(), and T.
Referenced by llvm::InsertFunctionStrategy::mutate().