Go to the source code of this file.
|
| static cl::bits< CodeLayoutOpt > | EnableCodeAlignment ("aarch64-code-layout-opt-enable", cl::Hidden, cl::CommaSeparated, cl::desc("Enable code alignment optimization for instruction pairs"), cl::values(clEnumValN(CmpCsel, "cmp-csel", "CMP/CMN-CSEL pair alignment (32-bit)"), clEnumValN(FcmpFcsel, "fcmp-fcsel", "FCMP-FCSEL pair alignment"))) |
| static cl::opt< unsigned > | FunctionAlignBytes ("aarch64-code-layout-opt-align-functions", cl::Hidden, cl::desc("Function alignment in bytes for code layout optimization " "(must be a power of 2)"), cl::init(64), cl::callback([](const unsigned &Val) { if(!isPowerOf2_32(Val)) report_fatal_error("aarch64-code-layout-opt-align must be a power of 2");})) |
◆ AARCH64_CODE_LAYOUT_OPT_NAME
| #define AARCH64_CODE_LAYOUT_OPT_NAME "AArch64 Code Layout Optimization" |
◆ DBG
Value:
LLVM_ABI raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
Definition at line 36 of file AArch64CodeLayoutOpt.cpp.
◆ DEBUG_TYPE
| #define DEBUG_TYPE "aarch64-code-layout-opt" |
◆ CodeLayoutOpt
◆ INITIALIZE_PASS()
◆ isFloatingPointCompare()
◆ isFloatingPointConditionalSelect()
◆ isQualifyingIntCompare()
- Returns
- true if MI is a qualifying 32-bit CMP or CMN instruction. CMP is encoded as SUBS with WZR destination, CMN as ADDS with WZR. Only simple variants (no shifted/extended reg) qualify, and immediate variants require no LSL shift and small immediates (<=15).
Definition at line 142 of file AArch64CodeLayoutOpt.cpp.
References MI.
◆ STATISTIC() [1/3]
| STATISTIC |
( |
NumCmpCselPairsDetected | , |
|
|
"Number of CMP/CMN-CSEL pairs detected for alignment" | ) |
◆ STATISTIC() [2/3]
| STATISTIC |
( |
NumFcmpFcselPairsDetected | , |
|
|
"Number of FCMP-FCSEL pairs detected for alignment" | ) |
◆ STATISTIC() [3/3]
| STATISTIC |
( |
NumFunctionsAligned | , |
|
|
"Number of functions with aligned (to 64-bytes by default)" | ) |
◆ EnableCodeAlignment
| cl::bits< CodeLayoutOpt > EnableCodeAlignment("aarch64-code-layout-opt-enable", cl::Hidden, cl::CommaSeparated, cl::desc("Enable code alignment optimization for instruction pairs"), cl::values( clEnumValN(CmpCsel, "cmp-csel", "CMP/CMN-CSEL pair alignment (32-bit)"), clEnumValN(FcmpFcsel, "fcmp-fcsel", "FCMP-FCSEL pair alignment"))) |
( |
"aarch64-code-layout-opt-enable" | , |
|
|
cl::Hidden | , |
|
|
cl::CommaSeparated | , |
|
|
cl::desc("Enable code alignment optimization for instruction pairs") | , |
|
|
cl::values( clEnumValN(CmpCsel, "cmp-csel", "CMP/CMN-CSEL pair alignment (32-bit)"), clEnumValN(FcmpFcsel, "fcmp-fcsel", "FCMP-FCSEL pair alignment")) | ) |
|
static |
◆ FunctionAlignBytes