|
LLVM 24.0.0git
|
#include "RISCV.h"#include "RISCVSubtarget.h"#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachinePassManager.h"#include "llvm/CodeGen/Passes.h"#include "llvm/CodeGen/RegisterScavenging.h"#include "llvm/IR/Analysis.h"#include "llvm/MC/TargetRegistry.h"#include "llvm/Pass.h"#include "llvm/Support/Debug.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "riscv-make-compressible" |
| #define | RISCV_COMPRESS_INSTRS_NAME "RISC-V Make Compressible" |
Functions | |
| INITIALIZE_PASS (RISCVMakeCompressibleLegacy, "riscv-make-compressible", RISCV_COMPRESS_INSTRS_NAME, false, false) static unsigned log2LdstWidth(unsigned Opcode) | |
| static unsigned | offsetMask (unsigned Opcode) |
| static uint8_t | compressedLDSTOffsetMask (unsigned Opcode) |
| static bool | compressibleSPOffset (int64_t Offset, unsigned Opcode) |
| static int64_t | getBaseAdjustForCompression (int64_t Offset, unsigned Opcode) |
| static bool | isCompressedReg (Register Reg) |
| static bool | isCompressibleLoad (const MachineInstr &MI) |
| static bool | isCompressibleStore (const MachineInstr &MI) |
| static RegImmPair | getRegImmPairPreventingCompression (const MachineInstr &MI) |
| static bool | isXqciloLdSt (const MachineInstr &MI) |
| static Register | analyzeCompressibleUses (MachineInstr &FirstMI, RegImmPair RegImm, SmallVectorImpl< MachineInstr * > &MIs) |
| static void | updateOperands (MachineInstr &MI, RegImmPair OldRegImm, Register NewReg) |
| static bool | runMakeCompressibleOpt (MachineFunction &Fn) |
| #define DEBUG_TYPE "riscv-make-compressible" |
Definition at line 82 of file RISCVMakeCompressible.cpp.
| #define RISCV_COMPRESS_INSTRS_NAME "RISC-V Make Compressible" |
Definition at line 83 of file RISCVMakeCompressible.cpp.
Referenced by INITIALIZE_PASS().
|
static |
Definition at line 360 of file RISCVMakeCompressible.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), contains(), E(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), getRegImmPairPreventingCompression(), I, llvm::RegImmPair::Imm, isXqciloLdSt(), MBB, MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::RegImmPair::Reg, Register, llvm::SmallVectorTemplateCommon< T, typename >::size(), and TRI.
Referenced by runMakeCompressibleOpt().
Definition at line 184 of file RISCVMakeCompressible.cpp.
References offsetMask().
Referenced by getBaseAdjustForCompression(), and updateOperands().
Definition at line 190 of file RISCVMakeCompressible.cpp.
References llvm::isShiftedUInt(), and llvm::Offset.
Referenced by getRegImmPairPreventingCompression().
|
static |
Definition at line 204 of file RISCVMakeCompressible.cpp.
References compressedLDSTOffsetMask(), and llvm::Offset.
Referenced by getRegImmPairPreventingCompression().
|
static |
Definition at line 297 of file RISCVMakeCompressible.cpp.
References llvm::sampleprof::Base, compressibleSPOffset(), contains(), getBaseAdjustForCompression(), llvm::MachineOperand::getImm(), isCompressedReg(), isCompressibleLoad(), isCompressibleStore(), llvm::MachineOperand::isImm(), MI, llvm::Offset, and Register.
Referenced by analyzeCompressibleUses(), and runMakeCompressibleOpt().
| INITIALIZE_PASS | ( | RISCVMakeCompressibleLegacy | , |
| "riscv-make-compressible" | , | ||
| RISCV_COMPRESS_INSTRS_NAME | , | ||
| false | , | ||
| false | ) |
Definition at line 104 of file RISCVMakeCompressible.cpp.
References llvm_unreachable, and RISCV_COMPRESS_INSTRS_NAME.
Definition at line 210 of file RISCVMakeCompressible.cpp.
References Reg.
Referenced by getRegImmPairPreventingCompression().
|
static |
Definition at line 220 of file RISCVMakeCompressible.cpp.
References llvm::RISCVSubtarget::is64Bit(), and MI.
Referenced by getRegImmPairPreventingCompression(), and updateOperands().
|
static |
Definition at line 254 of file RISCVMakeCompressible.cpp.
References llvm::RISCVSubtarget::is64Bit(), and MI.
Referenced by getRegImmPairPreventingCompression(), and updateOperands().
|
static |
Definition at line 339 of file RISCVMakeCompressible.cpp.
References MI.
Referenced by analyzeCompressibleUses().
Definition at line 146 of file RISCVMakeCompressible.cpp.
References llvm_unreachable, and llvm::maskTrailingOnes().
Referenced by compressedLDSTOffsetMask().
|
static |
Definition at line 481 of file RISCVMakeCompressible.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), analyzeCompressibleUses(), assert(), llvm::BuildMI(), contains(), llvm::dbgs(), llvm::MachineFunction::getFunction(), llvm::RISCVSubtarget::getInstrInfo(), getRegImmPairPreventingCompression(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasOptSize(), llvm::isInt(), LLVM_DEBUG, MBB, MI, TII, and updateOperands().
Referenced by llvm::RISCVMakeCompressiblePass::run().
|
static |
Definition at line 442 of file RISCVMakeCompressible.cpp.
References assert(), compressedLDSTOffsetMask(), llvm::drop_begin(), llvm::MachineOperand::getImm(), llvm::RegImmPair::Imm, isCompressibleLoad(), isCompressibleStore(), MI, llvm::RegImmPair::Reg, and llvm::MachineOperand::setImm().
Referenced by runMakeCompressibleOpt().