LLVM: lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "ppc-loop-instr-form-prep" |
| Functions | |
|---|---|
| STATISTIC (PHINodeAlreadyExistsUpdate, "PHI node already in pre-increment form") | |
| STATISTIC (PHINodeAlreadyExistsDS, "PHI node already in DS form") | |
| STATISTIC (PHINodeAlreadyExistsDQ, "PHI node already in DQ form") | |
| STATISTIC (DSFormChainRewritten, "Num of DS form chain rewritten") | |
| STATISTIC (DQFormChainRewritten, "Num of DQ form chain rewritten") | |
| STATISTIC (UpdFormChainRewritten, "Num of update form chain rewritten") | |
| STATISTIC (ChainCommoningRewritten, "Num of commoning chains") | |
| static bool | IsPtrInBounds (Value *BasePtr) |
| static std::string | getInstrName (const Value *I, StringRef Suffix) |
| static Value * | getPointerOperandAndType (Value *MemI, Type **PtrElementType=nullptr) |
| Variables | |
|---|---|
| static cl::opt< unsigned > | MaxVarsPrep ("ppc-formprep-max-vars", cl::Hidden, cl::init(24), cl::desc("Potential common base number threshold per function " "for PPC loop prep")) |
| static cl::opt< bool > | PreferUpdateForm ("ppc-formprep-prefer-update", cl::init(true), cl::Hidden, cl::desc("prefer update form when ds form is also a update form")) |
| static cl::opt< bool > | EnableUpdateFormForNonConstInc ("ppc-formprep-update-nonconst-inc", cl::init(false), cl::Hidden, cl::desc("prepare update form when the load/store increment is a loop " "invariant non-const value.")) |
| static cl::opt< bool > | EnableChainCommoning ("ppc-formprep-chain-commoning", cl::init(false), cl::Hidden, cl::desc("Enable chain commoning in PPC loop prepare pass.")) |
| static cl::opt< unsigned > | MaxVarsUpdateForm ("ppc-preinc-prep-max-vars", cl::Hidden, cl::init(3), cl::desc("Potential PHI threshold per loop for PPC loop prep of update " "form")) |
| static cl::opt< unsigned > | MaxVarsDSForm ("ppc-dsprep-max-vars", cl::Hidden, cl::init(3), cl::desc("Potential PHI threshold per loop for PPC loop prep of DS form")) |
| static cl::opt< unsigned > | MaxVarsDQForm ("ppc-dqprep-max-vars", cl::Hidden, cl::init(8), cl::desc("Potential PHI threshold per loop for PPC loop prep of DQ form")) |
| static cl::opt< unsigned > | MaxVarsChainCommon ("ppc-chaincommon-max-vars", cl::Hidden, cl::init(4), cl::desc("Bucket number per loop for PPC loop chain common")) |
| static cl::opt< unsigned > | DispFormPrepMinThreshold ("ppc-dispprep-min-threshold", cl::Hidden, cl::init(2), cl::desc("Minimal common base load/store instructions triggering DS/DQ form " "preparation")) |
| static cl::opt< unsigned > | ChainCommonPrepMinThreshold ("ppc-chaincommon-min-threshold", cl::Hidden, cl::init(4), cl::desc("Minimal common base load/store instructions triggering chain " "commoning preparation. Must be not smaller than 4")) |
| static const char * | name = "Prepare loop for ppc preferred instruction forms" |
| static constexpr StringRef | PHINodeNameSuffix = ".phi" |
| static constexpr StringRef | CastNodeNameSuffix = ".cast" |
| static constexpr StringRef | GEPNodeIncNameSuffix = ".inc" |
| static constexpr StringRef | GEPNodeOffNameSuffix = ".off" |
◆ DEBUG_TYPE
#define DEBUG_TYPE "ppc-loop-instr-form-prep"
◆ getInstrName()
◆ getPointerOperandAndType()
| Value * getPointerOperandAndType ( Value * MemI, Type ** PtrElementType = nullptr ) | static |
|---|
◆ IsPtrInBounds()
◆ STATISTIC() [1/7]
| STATISTIC | ( | ChainCommoningRewritten | , |
|---|---|---|---|
| "Num of commoning chains" | ) |
◆ STATISTIC() [2/7]
| STATISTIC | ( | DQFormChainRewritten | , |
|---|---|---|---|
| "Num of DQ form chain rewritten" | ) |
◆ STATISTIC() [3/7]
| STATISTIC | ( | DSFormChainRewritten | , |
|---|---|---|---|
| "Num of DS form chain rewritten" | ) |
◆ STATISTIC() [4/7]
| STATISTIC | ( | PHINodeAlreadyExistsDQ | , |
|---|---|---|---|
| "PHI node already in DQ form" | ) |
◆ STATISTIC() [5/7]
| STATISTIC | ( | PHINodeAlreadyExistsDS | , |
|---|---|---|---|
| "PHI node already in DS form" | ) |
◆ STATISTIC() [6/7]
| STATISTIC | ( | PHINodeAlreadyExistsUpdate | , |
|---|---|---|---|
| "PHI node already in pre-increment form" | ) |
◆ STATISTIC() [7/7]
| STATISTIC | ( | UpdFormChainRewritten | , |
|---|---|---|---|
| "Num of update form chain rewritten" | ) |
◆ CastNodeNameSuffix
◆ ChainCommonPrepMinThreshold
| cl::opt< unsigned > ChainCommonPrepMinThreshold("ppc-chaincommon-min-threshold", cl::Hidden, cl::init(4), cl::desc("Minimal common base load/store instructions triggering chain " "commoning preparation. Must be not smaller than 4")) ( "ppc-chaincommon-min-threshold" , cl::Hidden , cl::init(4) , cl::desc("Minimal common base load/store instructions triggering chain " "commoning preparation. Must be not smaller than 4") ) | static |
|---|
◆ DispFormPrepMinThreshold
| cl::opt< unsigned > DispFormPrepMinThreshold("ppc-dispprep-min-threshold", cl::Hidden, cl::init(2), cl::desc("Minimal common base load/store instructions triggering DS/DQ form " "preparation")) ( "ppc-dispprep-min-threshold" , cl::Hidden , cl::init(2) , cl::desc("Minimal common base load/store instructions triggering DS/DQ form " "preparation") ) | static |
|---|
◆ EnableChainCommoning
| cl::opt< bool > EnableChainCommoning("ppc-formprep-chain-commoning", cl::init(false), cl::Hidden, cl::desc("Enable chain commoning in PPC loop prepare pass.")) ( "ppc-formprep-chain-commoning" , cl::init(false) , cl::Hidden , cl::desc("Enable chain commoning in PPC loop prepare pass.") ) | static |
|---|
◆ EnableUpdateFormForNonConstInc
| cl::opt< bool > EnableUpdateFormForNonConstInc("ppc-formprep-update-nonconst-inc", cl::init(false), cl::Hidden, cl::desc("prepare update form when the load/store increment is a loop " "invariant non-const value.")) ( "ppc-formprep-update-nonconst-inc" , cl::init(false) , cl::Hidden , cl::desc("prepare update form when the load/store increment is a loop " "invariant non-const value.") ) | static |
|---|
◆ GEPNodeIncNameSuffix
◆ GEPNodeOffNameSuffix
◆ MaxVarsChainCommon
| cl::opt< unsigned > MaxVarsChainCommon("ppc-chaincommon-max-vars", cl::Hidden, cl::init(4), cl::desc("Bucket number per loop for PPC loop chain common")) ( "ppc-chaincommon-max-vars" , cl::Hidden , cl::init(4) , cl::desc("Bucket number per loop for PPC loop chain common") ) | static |
|---|
◆ MaxVarsDQForm
| cl::opt< unsigned > MaxVarsDQForm("ppc-dqprep-max-vars", cl::Hidden, cl::init(8), cl::desc("Potential PHI threshold per loop for PPC loop prep of DQ form")) ( "ppc-dqprep-max-vars" , cl::Hidden , cl::init(8) , cl::desc("Potential PHI threshold per loop for PPC loop prep of DQ form") ) | static |
|---|
◆ MaxVarsDSForm
| cl::opt< unsigned > MaxVarsDSForm("ppc-dsprep-max-vars", cl::Hidden, cl::init(3), cl::desc("Potential PHI threshold per loop for PPC loop prep of DS form")) ( "ppc-dsprep-max-vars" , cl::Hidden , cl::init(3) , cl::desc("Potential PHI threshold per loop for PPC loop prep of DS form") ) | static |
|---|
◆ MaxVarsPrep
◆ MaxVarsUpdateForm
| cl::opt< unsigned > MaxVarsUpdateForm("ppc-preinc-prep-max-vars", cl::Hidden, cl::init(3), cl::desc("Potential PHI threshold per loop for PPC loop prep of update " "form")) ( "ppc-preinc-prep-max-vars" , cl::Hidden , cl::init(3) , cl::desc("Potential PHI threshold per loop for PPC loop prep of update " "form") ) | static |
|---|
◆ name
| const char* name = "Prepare loop for ppc preferred instruction forms" | static |
|---|
◆ PHINodeNameSuffix
◆ PreferUpdateForm
| cl::opt< bool > PreferUpdateForm("ppc-formprep-prefer-update", cl::init(true), cl::Hidden, cl::desc("prefer update form when ds form is also a update form")) ( "ppc-formprep-prefer-update" , cl::init(true) , cl::Hidden , cl::desc("prefer update form when ds form is also a update form") ) | static |
|---|