LLVM  14.0.0git
Macros | Functions | Variables
SIOptimizeExecMasking.cpp File Reference
#include "AMDGPU.h"
#include "GCNSubtarget.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/InitializePasses.h"
Include dependency graph for SIOptimizeExecMasking.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "si-optimize-exec-masking"
 

Functions

 INITIALIZE_PASS_BEGIN (SIOptimizeExecMasking, DEBUG_TYPE, "SI optimize exec mask operations", false, false) INITIALIZE_PASS_END(SIOptimizeExecMasking
 
static Register isCopyFromExec (const MachineInstr &MI, const GCNSubtarget &ST)
 If MI is a copy from exec, return the register copied to. More...
 
static Register isCopyToExec (const MachineInstr &MI, const GCNSubtarget &ST)
 If MI is a copy to exec, return the register copied from. More...
 
static Register isLogicalOpOnExec (const MachineInstr &MI)
 If MI is a logical operation on an exec value, return the register copied to. More...
 
static unsigned getSaveExecOp (unsigned Opc)
 
static bool removeTerminatorBit (const SIInstrInfo &TII, MachineInstr &MI)
 
static MachineBasicBlock::reverse_iterator fixTerminators (const SIInstrInfo &TII, MachineBasicBlock &MBB)
 
static MachineBasicBlock::reverse_iterator findExecCopy (const SIInstrInfo &TII, const GCNSubtarget &ST, MachineBasicBlock &MBB, MachineBasicBlock::reverse_iterator I, unsigned CopyToExec)
 
static bool isLiveOut (const MachineBasicBlock &MBB, unsigned Reg)
 

Variables

 DEBUG_TYPE
 
SI optimize exec mask operations
 
SI optimize exec mask false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "si-optimize-exec-masking"

Definition at line 17 of file SIOptimizeExecMasking.cpp.

Function Documentation

◆ findExecCopy()

static MachineBasicBlock::reverse_iterator findExecCopy ( const SIInstrInfo TII,
const GCNSubtarget ST,
MachineBasicBlock MBB,
MachineBasicBlock::reverse_iterator  I,
unsigned  CopyToExec 
)
static

◆ fixTerminators()

static MachineBasicBlock::reverse_iterator fixTerminators ( const SIInstrInfo TII,
MachineBasicBlock MBB 
)
static

◆ getSaveExecOp()

static unsigned getSaveExecOp ( unsigned  Opc)
static

Definition at line 134 of file SIOptimizeExecMasking.cpp.

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( SIOptimizeExecMasking  ,
DEBUG_TYPE  ,
"SI optimize exec mask operations ,
false  ,
false   
)

◆ isCopyFromExec()

static Register isCopyFromExec ( const MachineInstr MI,
const GCNSubtarget ST 
)
static

If MI is a copy from exec, return the register copied to.

Definition at line 55 of file SIOptimizeExecMasking.cpp.

References MI, and llvm::ARM_MB::ST.

Referenced by findExecCopy().

◆ isCopyToExec()

static Register isCopyToExec ( const MachineInstr MI,
const GCNSubtarget ST 
)
static

If MI is a copy to exec, return the register copied from.

Definition at line 73 of file SIOptimizeExecMasking.cpp.

References llvm_unreachable, MI, and llvm::ARM_MB::ST.

◆ isLiveOut()

static bool isLiveOut ( const MachineBasicBlock MBB,
unsigned  Reg 
)
static

◆ isLogicalOpOnExec()

static Register isLogicalOpOnExec ( const MachineInstr MI)
static

If MI is a logical operation on an exec value, return the register copied to.

Definition at line 95 of file SIOptimizeExecMasking.cpp.

References llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), and MI.

◆ removeTerminatorBit()

static bool removeTerminatorBit ( const SIInstrInfo TII,
MachineInstr MI 
)
static

Definition at line 175 of file SIOptimizeExecMasking.cpp.

References MI, and TII.

Referenced by fixTerminators().

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 47 of file SIOptimizeExecMasking.cpp.

◆ false

SI optimize exec mask false

Definition at line 48 of file SIOptimizeExecMasking.cpp.

◆ operations

SI optimize exec mask operations

Definition at line 48 of file SIOptimizeExecMasking.cpp.