Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.

Synopsis

Declared in <llvm/Analysis/InstructionSimplify.h>

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

Description

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.

Return Value

True if any simplifications were performed.

Parameters

Name

Description

I

Instruction whose uses are replaced.

SimpleV

Simplified replacement for I.

TLI

Optional target library info.

DT

Optional dominator tree.

AC

Optional assumption cache.

UnsimplifiedUsers

Optional set of users that could not be simplified.

Created with MrDocs