LLVM 20.0.0git
Public Types | Public Member Functions | Public Attributes | List of all members
llvm::TargetInstrInfo::MachineBranchPredicate Struct Reference

Represents a predicate at the MachineFunction level. More...

#include "llvm/CodeGen/TargetInstrInfo.h"

Public Types

enum  ComparePredicate { PRED_EQ , PRED_NE , PRED_INVALID }
 

Public Member Functions

 MachineBranchPredicate ()=default
 

Public Attributes

ComparePredicate Predicate = PRED_INVALID
 
MachineOperand LHS = MachineOperand::CreateImm(0)
 
MachineOperand RHS = MachineOperand::CreateImm(0)
 
MachineBasicBlockTrueDest = nullptr
 
MachineBasicBlockFalseDest = nullptr
 
MachineInstrConditionDef = nullptr
 
bool SingleUseCondition = false
 SingleUseCondition is true if ConditionDef is dead except for the branch(es) at the end of the basic block.
 

Detailed Description

Represents a predicate at the MachineFunction level.

The control flow a MachineBranchPredicate represents is:

Reg = LHS Predicate RHS == ConditionDef if Reg then goto TrueDest else goto FalseDest

Definition at line 670 of file TargetInstrInfo.h.

Member Enumeration Documentation

◆ ComparePredicate

Enumerator
PRED_EQ 
PRED_NE 
PRED_INVALID 

Definition at line 671 of file TargetInstrInfo.h.

Constructor & Destructor Documentation

◆ MachineBranchPredicate()

llvm::TargetInstrInfo::MachineBranchPredicate::MachineBranchPredicate ( )
explicitdefault

Member Data Documentation

◆ ConditionDef

MachineInstr* llvm::TargetInstrInfo::MachineBranchPredicate::ConditionDef = nullptr

Definition at line 682 of file TargetInstrInfo.h.

◆ FalseDest

MachineBasicBlock* llvm::TargetInstrInfo::MachineBranchPredicate::FalseDest = nullptr

Definition at line 681 of file TargetInstrInfo.h.

◆ LHS

MachineOperand llvm::TargetInstrInfo::MachineBranchPredicate::LHS = MachineOperand::CreateImm(0)

Definition at line 678 of file TargetInstrInfo.h.

◆ Predicate

ComparePredicate llvm::TargetInstrInfo::MachineBranchPredicate::Predicate = PRED_INVALID

Definition at line 677 of file TargetInstrInfo.h.

◆ RHS

MachineOperand llvm::TargetInstrInfo::MachineBranchPredicate::RHS = MachineOperand::CreateImm(0)

Definition at line 679 of file TargetInstrInfo.h.

◆ SingleUseCondition

bool llvm::TargetInstrInfo::MachineBranchPredicate::SingleUseCondition = false

SingleUseCondition is true if ConditionDef is dead except for the branch(es) at the end of the basic block.

Definition at line 687 of file TargetInstrInfo.h.

◆ TrueDest

MachineBasicBlock* llvm::TargetInstrInfo::MachineBranchPredicate::TrueDest = nullptr

Definition at line 680 of file TargetInstrInfo.h.


The documentation for this struct was generated from the following file: