LLVM 20.0.0git
Macros | Functions | Variables
MIRCanonicalizerPass.cpp File Reference
#include "MIRVRegNamerUtils.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "mir-canonicalizer"
 

Functions

 INITIALIZE_PASS_BEGIN (MIRCanonicalizer, "mir-canonicalizer", "Rename Register Operands Canonically", false, false) INITIALIZE_PASS_END(MIRCanonicalizer
 
mir Rename Register Operands static false std::vector< MachineBasicBlock * > GetRPOList (MachineFunction &MF)
 
static bool rescheduleLexographically (std::vector< MachineInstr * > instructions, MachineBasicBlock *MBB, std::function< MachineBasicBlock::iterator()> getPos)
 
static bool rescheduleCanonically (unsigned &PseudoIdempotentInstCount, MachineBasicBlock *MBB)
 
static bool propagateLocalCopies (MachineBasicBlock *MBB)
 
static bool doDefKillClear (MachineBasicBlock *MBB)
 
static bool runOnBasicBlock (MachineBasicBlock *MBB, unsigned BasicBlockNum, VRegRenamer &Renamer)
 

Variables

static cl::opt< unsignedCanonicalizeFunctionNumber ("canon-nth-function", cl::Hidden, cl::init(~0u), cl::value_desc("N"), cl::desc("Function number to canonicalize."))
 
mir canonicalizer
 
mir Rename Register Operands Canonically
 
mir Rename Register Operands false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "mir-canonicalizer"

Definition at line 38 of file MIRCanonicalizerPass.cpp.

Function Documentation

◆ doDefKillClear()

static bool doDefKillClear ( MachineBasicBlock MBB)
static

Definition at line 336 of file MIRCanonicalizerPass.cpp.

References MBB, and MI.

Referenced by runOnBasicBlock().

◆ GetRPOList()

mir Rename Register Operands static false std::vector< MachineBasicBlock * > GetRPOList ( MachineFunction MF)
static

Definition at line 76 of file MIRCanonicalizerPass.cpp.

References llvm::append_range().

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( MIRCanonicalizer  ,
"mir-canonicalizer"  ,
"Rename Register Operands Canonically"  ,
false  ,
false   
)

◆ propagateLocalCopies()

static bool propagateLocalCopies ( MachineBasicBlock MBB)
static

◆ rescheduleCanonically()

static bool rescheduleCanonically ( unsigned PseudoIdempotentInstCount,
MachineBasicBlock MBB 
)
static

◆ rescheduleLexographically()

static bool rescheduleLexographically ( std::vector< MachineInstr * >  instructions,
MachineBasicBlock MBB,
std::function< MachineBasicBlock::iterator()>  getPos 
)
static

◆ runOnBasicBlock()

static bool runOnBasicBlock ( MachineBasicBlock MBB,
unsigned  BasicBlockNum,
VRegRenamer Renamer 
)
static

Variable Documentation

◆ CanonicalizeFunctionNumber

cl::opt< unsigned > CanonicalizeFunctionNumber("canon-nth-function", cl::Hidden, cl::init(~0u), cl::value_desc("N"), cl::desc("Function number to canonicalize.")) ( "canon-nth-function"  ,
cl::Hidden  ,
cl::init(~0u)  ,
cl::value_desc("N")  ,
cl::desc("Function number to canonicalize.")   
)
static

◆ canonicalizer

mir canonicalizer

Definition at line 73 of file MIRCanonicalizerPass.cpp.

◆ Canonically

mir Rename Register Operands Canonically

Definition at line 74 of file MIRCanonicalizerPass.cpp.

◆ false

mir Rename Register Operands false

Definition at line 74 of file MIRCanonicalizerPass.cpp.