[#llvm-replaceAndRecursivelySimplify] = xref:llvm.adoc[llvm]::replaceAndRecursivelySimplify :relfileprefix: ../ :mrdocs: Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively. == Synopsis Declared in `<llvm/Analysis/InstructionSimplify.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool replaceAndRecursivelySimplify( xref:llvm/Instruction.adoc[Instruction]* I, xref:llvm/Value.adoc[Value]* SimpleV, xref:llvm/TargetLibraryInfo.adoc[TargetLibraryInfo] const* TLI = nullptr, xref:llvm/DominatorTree.adoc[DominatorTree] const* DT = nullptr, xref:llvm/AssumptionCache.adoc[AssumptionCache]* AC = nullptr, xref:llvm/SmallSetVector.adoc[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 [cols="1,4"] |=== | 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. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#