[#llvm-ReachingDefInfo] = xref:llvm.adoc[llvm]::ReachingDefInfo :relfileprefix: ../ :mrdocs: This class provides the reaching def analysis. == Synopsis Declared in `<llvm/CodeGen/ReachingDefAnalysis.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ReachingDefInfo; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/ReachingDefInfo/2constructor-0b.adoc[`ReachingDefInfo`] [.small]#[constructor]# | Constructors | xref:llvm/ReachingDefInfo/2destructor.adoc[`~ReachingDefInfo`] [.small]#[destructor]# | Destroy the reaching‐def analysis result. | xref:llvm/ReachingDefInfo/collectKilledOperands.adoc[`collectKilledOperands`] | Assuming MI is dead, recursively search the incoming operands which are killed by MI and collect those that would become dead. | xref:llvm/ReachingDefInfo/getClearance.adoc[`getClearance`] | Provides the clearance ‐ the number of instructions since the closest reaching def instuction of Reg that reaches MI. | xref:llvm/ReachingDefInfo/getGlobalReachingDefs.adoc[`getGlobalReachingDefs`] | Collect all possible definitions of the value stored in Reg, which is used by MI. | xref:llvm/ReachingDefInfo/getGlobalUses.adoc[`getGlobalUses`] | Collect the users of the value stored in Reg, which is defined by MI. | xref:llvm/ReachingDefInfo/getLiveInUses.adoc[`getLiveInUses`] | For the given block, collect the instructions that use the live‐in value of the provided register. Return whether the value is still live on exit. | xref:llvm/ReachingDefInfo/getLiveOuts-09.adoc[`getLiveOuts`] | `getLiveOuts` overloads | xref:llvm/ReachingDefInfo/getLocalLiveOutMIDef.adoc[`getLocalLiveOutMIDef`] | Return the local MI that produces the live out value for Reg, or nullptr for a non‐live out or non‐local def. | xref:llvm/ReachingDefInfo/getMIOperand-02.adoc[`getMIOperand`] | `getMIOperand` overloads | xref:llvm/ReachingDefInfo/getReachingDef.adoc[`getReachingDef`] | Return the instruction id of the closest reaching def of `Reg` for `MI.` | xref:llvm/ReachingDefInfo/getReachingLocalUses.adoc[`getReachingLocalUses`] | Provides the uses, in the same block as MI, of register that MI defines. This does not consider live‐outs. | xref:llvm/ReachingDefInfo/getUniqueReachingMIDef.adoc[`getUniqueReachingMIDef`] | If a single MachineInstr creates the reaching definition, then return it. Otherwise return null. | xref:llvm/ReachingDefInfo/hasLocalDefBefore.adoc[`hasLocalDefBefore`] | Provide whether the register has been defined in the same basic block as, and before, MI. | xref:llvm/ReachingDefInfo/hasSameReachingDef.adoc[`hasSameReachingDef`] | Return whether A and B use the same def of Reg. | xref:llvm/ReachingDefInfo/init.adoc[`init`] | Initialize data structures. | xref:llvm/ReachingDefInfo/invalidate.adoc[`invalidate`] | Handle invalidation explicitly. | xref:llvm/ReachingDefInfo/isReachingDefLiveOut.adoc[`isReachingDefLiveOut`] | Return whether the reaching def for MI also is live out of its parent block. | xref:llvm/ReachingDefInfo/isRegDefinedAfter.adoc[`isRegDefinedAfter`] | Return whether the given register is defined after MI. | xref:llvm/ReachingDefInfo/isRegUsedAfter.adoc[`isRegUsedAfter`] | Return whether the given register is used after MI, whether it's a local use or a live out. | xref:llvm/ReachingDefInfo/isSafeToDefRegAt-0f.adoc[`isSafeToDefRegAt`] | `isSafeToDefRegAt` overloads | xref:llvm/ReachingDefInfo/isSafeToMoveBackwards.adoc[`isSafeToMoveBackwards`] | Return whether From can be moved backwards to just after To. | xref:llvm/ReachingDefInfo/isSafeToMoveForwards.adoc[`isSafeToMoveForwards`] | Return whether From can be moved forwards to just before To. | xref:llvm/ReachingDefInfo/isSafeToRemove-06.adoc[`isSafeToRemove`] | `isSafeToRemove` overloads | xref:llvm/ReachingDefInfo/print.adoc[`print`] | Print reaching‐definition information to `OS.` | xref:llvm/ReachingDefInfo/releaseMemory.adoc[`releaseMemory`] | Release memory used by the analysis result. | xref:llvm/ReachingDefInfo/reset.adoc[`reset`] | Re‐run the analysis. | xref:llvm/ReachingDefInfo/run.adoc[`run`] | Compute reaching definitions for machine function `mf.` | xref:llvm/ReachingDefInfo/traverse.adoc[`traverse`] | Traverse the machine function, mapping definitions. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#