LLVM 22.0.0git
|
#include "SILowerI1Copies.h"
#include "AMDGPU.h"
#include "llvm/CodeGen/MachineSSAUpdater.h"
#include "llvm/InitializePasses.h"
Go to the source code of this file.
Classes | |
class | SILowerI1CopiesLegacy |
Macros | |
#define | DEBUG_TYPE "si-i1-copies" |
Functions | |
static Register | insertUndefLaneMask (MachineBasicBlock *MBB, MachineRegisterInfo *MRI, MachineRegisterInfo::VRegAttrs LaneMaskRegAttrs) |
static bool | isVRegCompatibleReg (const SIRegisterInfo &TRI, const MachineRegisterInfo &MRI, Register Reg) |
static void | instrDefsUsesSCC (const MachineInstr &MI, bool &Def, bool &Use) |
static bool | runFixI1Copies (MachineFunction &MF, MachineDominatorTree &MDT, MachinePostDominatorTree &MPDT) |
Lower all instructions that def or use vreg_1 registers. | |
INITIALIZE_PASS_BEGIN (SILowerI1CopiesLegacy, DEBUG_TYPE, "SI Lower i1 Copies", false, false) INITIALIZE_PASS_END(SILowerI1CopiesLegacy |
Variables | |
DEBUG_TYPE | |
SI Lower i1 | Copies |
SI Lower i1 | false |
#define DEBUG_TYPE "si-i1-copies" |
Definition at line 29 of file SILowerI1Copies.cpp.
INITIALIZE_PASS_BEGIN | ( | SILowerI1CopiesLegacy | , |
DEBUG_TYPE | , | ||
"SI Lower i1 Copies" | , | ||
false | , | ||
false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 379 of file SILowerI1Copies.cpp.
References llvm::BuildMI(), llvm::createLaneMaskReg(), llvm::MachineFunction::getSubtarget(), MBB, MRI, and TII.
Referenced by llvm::PhiLoweringHelper::lowerPhis().
|
static |
Definition at line 699 of file SILowerI1Copies.cpp.
References MI.
Referenced by llvm::PhiLoweringHelper::getSaluInsertionAtEnd().
|
static |
|
static |
Lower all instructions that def or use vreg_1 registers.
In a first pass, we lower COPYs from vreg_1 to vector registers, as can occur around inline assembly. We do this first, before vreg_1 registers are changed to scalar mask registers.
Then we lower all defs of vreg_1 registers. Phi nodes are lowered before all others, because phi lowering looks through copies and can therefore often make copy lowering unnecessary.
Definition at line 859 of file SILowerI1Copies.cpp.
References Changed, and llvm::MachineFunction::getProperties().
Referenced by llvm::SILowerI1CopiesPass::run(), and SILowerI1CopiesLegacy::runOnMachineFunction().
SI Lower i1 Copies |
Definition at line 921 of file SILowerI1Copies.cpp.
Referenced by propagateLocalCopies(), and llvm::TailDuplicator::tailDuplicateAndUpdate().
DEBUG_TYPE |
Definition at line 921 of file SILowerI1Copies.cpp.
SI Lower i1 false |
Definition at line 922 of file SILowerI1Copies.cpp.