[#llvm-MachineFunctionProperties] = xref:llvm.adoc[llvm]::MachineFunctionProperties :relfileprefix: ../ :mrdocs: Bitset of MachineFunction invariants checked by the MachineVerifier. == Synopsis Declared in `<llvm/CodeGen/MachineFunction.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class MachineFunctionProperties; ---- == Description Each property has checking code in the MachineVerifier, and passes can require that a property be set. == Enums [cols="1,4"] |=== | Name| Description | xref:llvm/MachineFunctionProperties/Property.adoc[`Property`] | Properties a MachineFunction may hold at a given point in the pipeline. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/MachineFunctionProperties/hasFailedISel.adoc[`hasFailedISel`] | Return true if the FailedISel property is set (instruction selection failed and the machine function should be reset or aborted). | xref:llvm/MachineFunctionProperties/hasFailedRegAlloc.adoc[`hasFailedRegAlloc`] | Return true if the FailedRegAlloc property is set. | xref:llvm/MachineFunctionProperties/hasFailsVerification.adoc[`hasFailsVerification`] | Return true if the FailsVerification property is set. | xref:llvm/MachineFunctionProperties/hasIsSSA.adoc[`hasIsSSA`] | Return true if the IsSSA property is set. | xref:llvm/MachineFunctionProperties/hasLegalized.adoc[`hasLegalized`] | Return true if the Legalized property is set (GlobalISel MachineLegalizer has run and pre‐isel generic instructions are legalized). | xref:llvm/MachineFunctionProperties/hasNoPHIs.adoc[`hasNoPHIs`] | Return true if the NoPHIs property is set (the machine function is known to contain no PHI instructions). | xref:llvm/MachineFunctionProperties/hasNoVRegs.adoc[`hasNoVRegs`] | Return true if the NoVRegs property is set (the machine function uses no virtual registers). | xref:llvm/MachineFunctionProperties/hasProperty.adoc[`hasProperty`] | Return true if property `P` is set. | xref:llvm/MachineFunctionProperties/hasRegBankSelected.adoc[`hasRegBankSelected`] | Return true if the RegBankSelected property is set. | xref:llvm/MachineFunctionProperties/hasSelected.adoc[`hasSelected`] | Return true if the Selected property is set. | xref:llvm/MachineFunctionProperties/hasTiedOpsRewritten.adoc[`hasTiedOpsRewritten`] | Return true if the TiedOpsRewritten property is set. | xref:llvm/MachineFunctionProperties/hasTracksDebugUserValues.adoc[`hasTracksDebugUserValues`] | Return true if the TracksDebugUserValues property is set. | xref:llvm/MachineFunctionProperties/hasTracksLiveness.adoc[`hasTracksLiveness`] | Return true if the TracksLiveness property is set. | xref:llvm/MachineFunctionProperties/print.adoc[`print`] | Print the MachineFunctionProperties in human‐readable form. | xref:llvm/MachineFunctionProperties/reset-04.adoc[`reset`] | `reset` overloads | xref:llvm/MachineFunctionProperties/resetFailedISel.adoc[`resetFailedISel`] | Clear the FailedISel property. | xref:llvm/MachineFunctionProperties/resetFailedRegAlloc.adoc[`resetFailedRegAlloc`] | Clear the FailedRegAlloc property. | xref:llvm/MachineFunctionProperties/resetFailsVerification.adoc[`resetFailsVerification`] | Clear the FailsVerification property. | xref:llvm/MachineFunctionProperties/resetIsSSA.adoc[`resetIsSSA`] | Clear the IsSSA property. | xref:llvm/MachineFunctionProperties/resetLegalized.adoc[`resetLegalized`] | Clear the Legalized property. | xref:llvm/MachineFunctionProperties/resetNoPHIs.adoc[`resetNoPHIs`] | Clear the NoPHIs property. | xref:llvm/MachineFunctionProperties/resetNoVRegs.adoc[`resetNoVRegs`] | Clear the NoVRegs property. | xref:llvm/MachineFunctionProperties/resetRegBankSelected.adoc[`resetRegBankSelected`] | Clear the RegBankSelected property. | xref:llvm/MachineFunctionProperties/resetSelected.adoc[`resetSelected`] | Clear the Selected property. | xref:llvm/MachineFunctionProperties/resetTiedOpsRewritten.adoc[`resetTiedOpsRewritten`] | Clear the TiedOpsRewritten property. | xref:llvm/MachineFunctionProperties/resetToInitial.adoc[`resetToInitial`] | Reset all properties and re‐establish baseline invariants. | xref:llvm/MachineFunctionProperties/resetTracksDebugUserValues.adoc[`resetTracksDebugUserValues`] | Clear the TracksDebugUserValues property. | xref:llvm/MachineFunctionProperties/resetTracksLiveness.adoc[`resetTracksLiveness`] | Clear the TracksLiveness property. | xref:llvm/MachineFunctionProperties/set-06.adoc[`set`] | `set` overloads | xref:llvm/MachineFunctionProperties/setFailedISel.adoc[`setFailedISel`] | Set the FailedISel property. | xref:llvm/MachineFunctionProperties/setFailedRegAlloc.adoc[`setFailedRegAlloc`] | Set the FailedRegAlloc property. | xref:llvm/MachineFunctionProperties/setFailsVerification.adoc[`setFailsVerification`] | Set the FailsVerification property. | xref:llvm/MachineFunctionProperties/setIsSSA.adoc[`setIsSSA`] | Set the IsSSA property. | xref:llvm/MachineFunctionProperties/setLegalized.adoc[`setLegalized`] | Set the Legalized property. | xref:llvm/MachineFunctionProperties/setNoPHIs.adoc[`setNoPHIs`] | Set the NoPHIs property. | xref:llvm/MachineFunctionProperties/setNoVRegs.adoc[`setNoVRegs`] | Set the NoVRegs property. | xref:llvm/MachineFunctionProperties/setRegBankSelected.adoc[`setRegBankSelected`] | Set the RegBankSelected property. | xref:llvm/MachineFunctionProperties/setSelected.adoc[`setSelected`] | Set the Selected property. | xref:llvm/MachineFunctionProperties/setTiedOpsRewritten.adoc[`setTiedOpsRewritten`] | Set the TiedOpsRewritten property. | xref:llvm/MachineFunctionProperties/setTracksDebugUserValues.adoc[`setTracksDebugUserValues`] | Set the TracksDebugUserValues property. | xref:llvm/MachineFunctionProperties/setTracksLiveness.adoc[`setTracksLiveness`] | Set the TracksLiveness property. | xref:llvm/MachineFunctionProperties/verifyRequiredProperties.adoc[`verifyRequiredProperties`] | Return true if every property required by `V` is set in this. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#