LLVM
13.0.0git
|
#include "ARC.h"
#include "ARCInstrInfo.h"
#include "ARCTargetMachine.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Namespaces | |
llvm | |
Macros | |
#define | GET_INSTRMAP_INFO |
#define | OPTADDRMODE_DESC "ARC load/store address mode" |
#define | OPTADDRMODE_NAME "arc-addr-mode" |
#define | DEBUG_TYPE "arc-addr-mode" |
Functions | |
FunctionPass * | llvm::createARCOptAddrMode () |
void | llvm::initializeARCOptAddrModePass (PassRegistry &) |
INITIALIZE_PASS_BEGIN (ARCOptAddrMode, OPTADDRMODE_NAME, OPTADDRMODE_DESC, false, false) INITIALIZE_PASS_END(ARCOptAddrMode | |
static false bool | isValidLoadStoreOffset (int64_t Off) |
static bool | isValidIncrementOffset (int64_t Off) |
static bool | isAddConstantOp (const MachineInstr &MI, int64_t &Amount) |
static bool | dominatesAllUsesOf (const MachineInstr *MI, unsigned VReg, MachineDominatorTree *MDT, MachineRegisterInfo *MRI) |
static bool | isLoadStoreThatCanHandleDisplacement (const TargetInstrInfo *TII, const MachineInstr &MI, int64_t Disp) |
Variables | |
OPTADDRMODE_NAME | |
OPTADDRMODE_DESC | |
false | |
This pass folds LD/ST + ADD pairs into Pre/Post-increment form of load/store instructions.
Definition in file ARCOptAddrMode.cpp.
#define DEBUG_TYPE "arc-addr-mode" |
Definition at line 33 of file ARCOptAddrMode.cpp.
#define GET_INSTRMAP_INFO |
Definition at line 15 of file ARCOptAddrMode.cpp.
Definition at line 31 of file ARCOptAddrMode.cpp.
#define OPTADDRMODE_NAME "arc-addr-mode" |
Definition at line 32 of file ARCOptAddrMode.cpp.
|
static |
Definition at line 139 of file ARCOptAddrMode.cpp.
References assert(), llvm::MachineDominatorTree::dominates(), llvm::MachineBasicBlock::empty(), llvm::sys::path::end(), llvm::User::getOperand(), llvm::Register::isVirtualRegister(), it, MBB, MI, MRI, llvm::MachineBasicBlock::rbegin(), llvm::MachineRegisterInfo::use_nodbg_begin(), and llvm::MachineRegisterInfo::use_nodbg_end().
INITIALIZE_PASS_BEGIN | ( | ARCOptAddrMode | , |
OPTADDRMODE_NAME | , | ||
OPTADDRMODE_DESC | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 123 of file ARCOptAddrMode.cpp.
References assert(), LLVM_FALLTHROUGH, and MI.
|
static |
Definition at line 169 of file ARCOptAddrMode.cpp.
References llvm::HexagonInstrInfo::getBaseAndOffsetPosition(), llvm::MachineOperand::getImm(), llvm::MachineOperand::isImm(), isValidLoadStoreOffset(), MI, Offset, and TII.
|
static |
Definition at line 121 of file ARCOptAddrMode.cpp.
|
static |
Definition at line 117 of file ARCOptAddrMode.cpp.
Referenced by isLoadStoreThatCanHandleDisplacement().
false |
Definition at line 112 of file ARCOptAddrMode.cpp.
OPTADDRMODE_DESC |
Definition at line 112 of file ARCOptAddrMode.cpp.
OPTADDRMODE_NAME |
Definition at line 112 of file ARCOptAddrMode.cpp.