ΒΆbool replaceAndRecursivelySimplify(
    llvm::Instruction* I,
    llvm::Value* SimpleV,
    const llvm::TargetLibraryInfo* TLI = nullptr,
    const llvm::DominatorTree* DT = nullptr,
    llvm::AssumptionCache* AC = nullptr,
    SmallSetVector<llvm::Instruction*, 8>*
        UnsimplifiedUsers = nullptr)

Description

Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively. This first performs a normal RAUW of I with SimpleV. It then recursively attempts to simplify those users updated by the operation. The 'I' instruction must not be equal to the simplified value 'SimpleV'. If UnsimplifiedUsers is provided, instructions that could not be simplified are added to it. The function returns true if any simplifications were performed.

Declared at: llvm/include/llvm/Analysis/InstructionSimplify.h:280

Parameters

llvm::Instruction* I
llvm::Value* SimpleV
const llvm::TargetLibraryInfo* TLI = nullptr
const llvm::DominatorTree* DT = nullptr
llvm::AssumptionCache* AC = nullptr
SmallSetVector<llvm::Instruction*, 8>* UnsimplifiedUsers = nullptr