|
LLVM 22.0.0git
|
#include "ARM.h"#include "ARMBaseInstrInfo.h"#include "ARMSubtarget.h"#include "MCTargetDesc/ARMBaseInfo.h"#include "Thumb2InstrInfo.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/PostOrderIterator.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallSet.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/Statistic.h"#include "llvm/ADT/StringRef.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/TargetInstrInfo.h"#include "llvm/IR/DebugLoc.h"#include "llvm/IR/Function.h"#include "llvm/MC/MCAsmInfo.h"#include "llvm/MC/MCInstrDesc.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/raw_ostream.h"#include <cassert>#include <cstdint>#include <functional>#include <iterator>#include <utility>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "thumb2-reduce-size" |
| #define | THUMB2_SIZE_REDUCE_NAME "Thumb2 instruction size reduce pass" |
Functions | |
| STATISTIC (NumNarrows, "Number of 32-bit instrs reduced to 16-bit ones") | |
| STATISTIC (Num2Addrs, "Number of 32-bit instrs reduced to 2addr 16-bit ones") | |
| STATISTIC (NumLdSts, "Number of 32-bit load / store reduced to 16-bit ones") | |
| INITIALIZE_PASS (Thumb2SizeReduce, DEBUG_TYPE, THUMB2_SIZE_REDUCE_NAME, false, false) Thumb2SizeReduce | |
| static bool | HasImplicitCPSRDef (const MCInstrDesc &MCID) |
| static bool | isHighLatencyCPSR (MachineInstr *Def) |
| static bool | VerifyLowRegs (MachineInstr *MI) |
| static bool | UpdateCPSRDef (MachineInstr &MI, bool LiveCPSR, bool &DefCPSR) |
| static bool | UpdateCPSRUse (MachineInstr &MI, bool LiveCPSR) |
Variables | |
| static cl::opt< int > | ReduceLimit ("t2-reduce-limit", cl::init(-1), cl::Hidden) |
| static cl::opt< int > | ReduceLimit2Addr ("t2-reduce-limit2", cl::init(-1), cl::Hidden) |
| static cl::opt< int > | ReduceLimitLdSt ("t2-reduce-limit3", cl::init(-1), cl::Hidden) |
| #define DEBUG_TYPE "thumb2-reduce-size" |
Definition at line 45 of file Thumb2SizeReduction.cpp.
| #define THUMB2_SIZE_REDUCE_NAME "Thumb2 instruction size reduce pass" |
Definition at line 46 of file Thumb2SizeReduction.cpp.
Referenced by INITIALIZE_PASS().
|
static |
Definition at line 252 of file Thumb2SizeReduction.cpp.
References llvm::is_contained().
| INITIALIZE_PASS | ( | Thumb2SizeReduce | , |
| DEBUG_TYPE | , | ||
| THUMB2_SIZE_REDUCE_NAME | , | ||
| false | , | ||
| false | ) |
Definition at line 239 of file Thumb2SizeReduction.cpp.
References const, DEBUG_TYPE, function(), llvm_unreachable, llvm::move(), and THUMB2_SIZE_REDUCE_NAME.
|
static |
Definition at line 257 of file Thumb2SizeReduction.cpp.
| STATISTIC | ( | Num2Addrs | , |
| "Number of 32-bit instrs reduced to 2addr 16-bit ones" | ) |
| STATISTIC | ( | NumLdSts | , |
| "Number of 32-bit load / store reduced to 16-bit ones" | ) |
| STATISTIC | ( | NumNarrows | , |
| "Number of 32-bit instrs reduced to 16-bit ones" | ) |
|
static |
Definition at line 979 of file Thumb2SizeReduction.cpp.
References llvm::MachineOperand::getReg(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), llvm::MachineOperand::isUse(), and MI.
|
static |
Definition at line 995 of file Thumb2SizeReduction.cpp.
References assert(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isKill(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), and MI.
|
static |
Definition at line 369 of file Thumb2SizeReduction.cpp.
References llvm::MachineOperand::getReg(), llvm::isARMLowRegister(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isReg(), MI, Opc, and Reg.
|
static |
|
static |