LLVM 19.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 663 of file TargetInstrInfo.h.

Member Enumeration Documentation

◆ ComparePredicate


Definition at line 664 of file TargetInstrInfo.h.

Constructor & Destructor Documentation

◆ MachineBranchPredicate()

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

Member Data Documentation

◆ ConditionDef

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

Definition at line 675 of file TargetInstrInfo.h.

◆ FalseDest

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

Definition at line 674 of file TargetInstrInfo.h.


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

Definition at line 671 of file TargetInstrInfo.h.

◆ Predicate

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

Definition at line 670 of file TargetInstrInfo.h.


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

Definition at line 672 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 680 of file TargetInstrInfo.h.

◆ TrueDest

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

Definition at line 673 of file TargetInstrInfo.h.

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