| 
    LLVM 22.0.0git
    
   | 
 
Strategy to randomly select a block and shuffle the operations without affecting data dependency. More...
#include "llvm/FuzzMutate/IRMutator.h"
Public Member Functions | |
| uint64_t | getWeight (size_t CurrentSize, size_t MaxSize, uint64_t CurrentWeight) override | 
| Provide a weight to bias towards choosing this strategy for a mutation.   | |
| void | mutate (BasicBlock &BB, RandomIRBuilder &IB) override | 
| Public Member Functions inherited from llvm::IRMutationStrategy | |
| virtual | ~IRMutationStrategy ()=default | 
| virtual void | mutate (Module &M, RandomIRBuilder &IB) | 
| virtual void | mutate (Function &F, RandomIRBuilder &IB) | 
| virtual void | mutate (Instruction &I, RandomIRBuilder &IB) | 
Strategy to randomly select a block and shuffle the operations without affecting data dependency.
Definition at line 195 of file IRMutator.h.
      
  | 
  inlineoverridevirtual | 
Provide a weight to bias towards choosing this strategy for a mutation.
The value of the weight is arbitrary, but a good default is "the number of
distinct ways in which this strategy can mutate a unit". This can also be used to prefer strategies that shrink the overall size of the result when we start getting close to MaxSize. 
Implements llvm::IRMutationStrategy.
Definition at line 197 of file IRMutator.h.
      
  | 
  overridevirtual | 
Reimplemented from llvm::IRMutationStrategy.
Definition at line 678 of file IRMutator.cpp.
References llvm::dyn_cast(), llvm::SmallSet< T, N, C >::empty(), getEffectiveTerminator(), llvm::BasicBlock::getFirstInsertionPt(), I, llvm::SmallSet< T, N, C >::insert(), llvm::make_early_inc_range(), llvm::make_range(), llvm::makeSampler(), P, and llvm::SmallVectorTemplateBase< T, bool >::push_back().