LLVM 17.0.0git
Macros | Functions | Variables
PPCMIPeephole.cpp File Reference
#include "MCTargetDesc/PPCMCTargetDesc.h"
#include "MCTargetDesc/PPCPredicates.h"
#include "PPC.h"
#include "PPCInstrBuilder.h"
#include "PPCInstrInfo.h"
#include "PPCMachineFunctionInfo.h"
#include "PPCTargetMachine.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachinePostDominators.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/Debug.h"
Include dependency graph for PPCMIPeephole.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "ppc-mi-peepholes"
 

Functions

 STATISTIC (RemoveTOCSave, "Number of TOC saves removed")
 
 STATISTIC (MultiTOCSaves, "Number of functions with multiple TOC saves that must be kept")
 
 STATISTIC (NumTOCSavesInPrologue, "Number of TOC saves placed in the prologue")
 
 STATISTIC (NumEliminatedSExt, "Number of eliminated sign-extensions")
 
 STATISTIC (NumEliminatedZExt, "Number of eliminated zero-extensions")
 
 STATISTIC (NumOptADDLIs, "Number of optimized ADD instruction fed by LI")
 
 STATISTIC (NumConvertedToImmediateForm, "Number of instructions converted to their immediate form")
 
 STATISTIC (NumFunctionsEnteredInMIPeephole, "Number of functions entered in PPC MI Peepholes")
 
 STATISTIC (NumFixedPointIterations, "Number of fixed-point iterations converting reg-reg instructions " "to reg-imm ones")
 
 STATISTIC (NumRotatesCollapsed, "Number of pairs of rotate left, clear left/right collapsed")
 
 STATISTIC (NumEXTSWAndSLDICombined, "Number of pairs of EXTSW and SLDI combined as EXTSWSLI")
 
 STATISTIC (NumLoadImmZeroFoldedAndRemoved, "Number of LI(8) reg, 0 that are folded to r0 and removed")
 
 INITIALIZE_PASS_BEGIN (PPCMIPeephole, DEBUG_TYPE, "PowerPC MI Peephole Optimization", false, false) INITIALIZE_PASS_END(PPCMIPeephole
 

Variables

static cl::opt< boolFixedPointRegToImm ("ppc-reg-to-imm-fixed-point", cl::Hidden, cl::init(true), cl::desc("Iterate to a fixed point when attempting to " "convert reg-reg instructions to reg-imm"))
 
static cl::opt< boolConvertRegReg ("ppc-convert-rr-to-ri", cl::Hidden, cl::init(true), cl::desc("Convert eligible reg+reg instructions to reg+imm"))
 
static cl::opt< boolEnableSExtElimination ("ppc-eliminate-signext", cl::desc("enable elimination of sign-extensions"), cl::init(true), cl::Hidden)
 
static cl::opt< boolEnableZExtElimination ("ppc-eliminate-zeroext", cl::desc("enable elimination of zero-extensions"), cl::init(true), cl::Hidden)
 
static cl::opt< boolEnableTrapOptimization ("ppc-opt-conditional-trap", cl::desc("enable optimization of conditional traps"), cl::init(false), cl::Hidden)
 
 DEBUG_TYPE
 
PowerPC MI Peephole Optimization
 
PowerPC MI Peephole false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "ppc-mi-peepholes"

Definition at line 41 of file PPCMIPeephole.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( PPCMIPeephole  ,
DEBUG_TYPE  ,
"PowerPC MI Peephole Optimization"  ,
false  ,
false   
)

◆ STATISTIC() [1/12]

STATISTIC ( MultiTOCSaves  ,
"Number of functions with multiple TOC saves that must be kept"   
)

◆ STATISTIC() [2/12]

STATISTIC ( NumConvertedToImmediateForm  ,
"Number of instructions converted to their immediate form"   
)

◆ STATISTIC() [3/12]

STATISTIC ( NumEliminatedSExt  ,
"Number of eliminated sign-extensions"   
)

◆ STATISTIC() [4/12]

STATISTIC ( NumEliminatedZExt  ,
"Number of eliminated zero-extensions"   
)

◆ STATISTIC() [5/12]

STATISTIC ( NumEXTSWAndSLDICombined  ,
"Number of pairs of EXTSW and SLDI combined as EXTSWSLI"   
)

◆ STATISTIC() [6/12]

STATISTIC ( NumFixedPointIterations  ,
"Number of fixed-point iterations converting reg-reg instructions " "to reg-imm ones"   
)

◆ STATISTIC() [7/12]

STATISTIC ( NumFunctionsEnteredInMIPeephole  ,
"Number of functions entered in PPC MI Peepholes"   
)

◆ STATISTIC() [8/12]

STATISTIC ( NumLoadImmZeroFoldedAndRemoved  ,
"Number of LI(8)  reg,
0 that are folded to r0 and removed"   
)

◆ STATISTIC() [9/12]

STATISTIC ( NumOptADDLIs  ,
"Number of optimized ADD instruction fed by LI"   
)

◆ STATISTIC() [10/12]

STATISTIC ( NumRotatesCollapsed  ,
"Number of pairs of rotate  left,
clear left/right collapsed"   
)

◆ STATISTIC() [11/12]

STATISTIC ( NumTOCSavesInPrologue  ,
"Number of TOC saves placed in the prologue"   
)

◆ STATISTIC() [12/12]

STATISTIC ( RemoveTOCSave  ,
"Number of TOC saves removed"   
)

Variable Documentation

◆ ConvertRegReg

cl::opt< bool > ConvertRegReg("ppc-convert-rr-to-ri", cl::Hidden, cl::init(true), cl::desc("Convert eligible reg+reg instructions to reg+imm")) ( "ppc-convert-rr-to-ri"  ,
cl::Hidden  ,
cl::init(true ,
cl::desc("Convert eligible reg+reg instructions to reg+imm")   
)
static

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 1789 of file PPCMIPeephole.cpp.

◆ EnableSExtElimination

cl::opt< bool > EnableSExtElimination("ppc-eliminate-signext", cl::desc("enable elimination of sign-extensions"), cl::init(true), cl::Hidden) ( "ppc-eliminate-signext"  ,
cl::desc("enable elimination of sign-extensions")  ,
cl::init(true ,
cl::Hidden   
)
static

◆ EnableTrapOptimization

cl::opt< bool > EnableTrapOptimization("ppc-opt-conditional-trap", cl::desc("enable optimization of conditional traps"), cl::init(false), cl::Hidden) ( "ppc-opt-conditional-trap"  ,
cl::desc("enable optimization of conditional traps")  ,
cl::init(false)  ,
cl::Hidden   
)
static

◆ EnableZExtElimination

cl::opt< bool > EnableZExtElimination("ppc-eliminate-zeroext", cl::desc("enable elimination of zero-extensions"), cl::init(true), cl::Hidden) ( "ppc-eliminate-zeroext"  ,
cl::desc("enable elimination of zero-extensions")  ,
cl::init(true ,
cl::Hidden   
)
static

◆ false

PowerPC MI Peephole false

Definition at line 1790 of file PPCMIPeephole.cpp.

◆ FixedPointRegToImm

cl::opt< bool > FixedPointRegToImm("ppc-reg-to-imm-fixed-point", cl::Hidden, cl::init(true), cl::desc("Iterate to a fixed point when attempting to " "convert reg-reg instructions to reg-imm")) ( "ppc-reg-to-imm-fixed-point"  ,
cl::Hidden  ,
cl::init(true ,
cl::desc("Iterate to a fixed point when attempting to " "convert reg-reg instructions to reg-imm")   
)
static

◆ Optimization

PowerPC MI Peephole Optimization

Definition at line 1790 of file PPCMIPeephole.cpp.