|
LLVM 24.0.0git
|
This pass folds LD/ST + ADD pairs into Pre/Post-increment form of load/store instructions. More...
#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 | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
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" |
| #define | DUMP_BEFORE(Mode) |
| #define | DUMP_AFTER(Mode) |
| #define | VIEW_BEFORE(Mode) |
| #define | VIEW_AFTER(Mode) |
| #define | KILL_PASS(Mode) |
Functions | |
| FunctionPass * | llvm::createARCOptAddrMode () |
| static 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) |
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 DUMP_AFTER | ( | Mode | ) |
Definition at line 38 of file ARCOptAddrMode.cpp.
| #define DUMP_BEFORE | ( | Mode | ) |
Definition at line 37 of file ARCOptAddrMode.cpp.
| #define GET_INSTRMAP_INFO |
Definition at line 15 of file ARCOptAddrMode.cpp.
| #define KILL_PASS | ( | Mode | ) |
Definition at line 41 of file ARCOptAddrMode.cpp.
| #define OPTADDRMODE_DESC "ARC load/store address mode" |
Definition at line 31 of file ARCOptAddrMode.cpp.
| #define OPTADDRMODE_NAME "arc-addr-mode" |
Definition at line 32 of file ARCOptAddrMode.cpp.
| #define VIEW_AFTER | ( | Mode | ) |
Definition at line 40 of file ARCOptAddrMode.cpp.
| #define VIEW_BEFORE | ( | Mode | ) |
Definition at line 39 of file ARCOptAddrMode.cpp.
|
static |
Definition at line 139 of file ARCOptAddrMode.cpp.
References assert(), llvm::MachineDominatorTree::dominates(), llvm::User::getOperand(), llvm::Use::getOperandNo(), llvm::Register::isVirtualRegister(), MBB, MI, and MRI.
|
static |
Definition at line 123 of file ARCOptAddrMode.cpp.
|
static |
Definition at line 168 of file ARCOptAddrMode.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineOperand::isImm(), isValidLoadStoreOffset(), MI, llvm::Offset, and TII.
|
static |
Definition at line 121 of file ARCOptAddrMode.cpp.
References llvm::isUInt(), and llvm::Off.
|
static |
Definition at line 117 of file ARCOptAddrMode.cpp.
References llvm::isInt(), and llvm::Off.
Referenced by isLoadStoreThatCanHandleDisplacement().