LLVM 17.0.0git
|
#include "AMDGPU.h"
#include "GCNSubtarget.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIMachineFunctionInfo.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineOperand.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "si-fold-operands" |
Functions | |
static const TargetRegisterClass * | getRegOpRC (const MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI, const MachineOperand &MO) |
static unsigned | macToMad (unsigned Opc) |
static bool | isUseMIInFoldList (ArrayRef< FoldCandidate > FoldList, const MachineInstr *MI) |
static void | appendFoldCandidate (SmallVectorImpl< FoldCandidate > &FoldList, MachineInstr *MI, unsigned OpNo, MachineOperand *FoldOp, bool Commuted=false, int ShrinkOp=-1) |
static bool | evalBinaryInstruction (unsigned Opcode, int32_t &Result, uint32_t LHS, uint32_t RHS) |
static unsigned | getMovOpc (bool IsScalar) |
static void | mutateCopyOp (MachineInstr &MI, const MCInstrDesc &NewDesc) |
static int | getOModValue (unsigned Opc, int64_t Val) |
#define DEBUG_TYPE "si-fold-operands" |
Definition at line 19 of file SIFoldOperands.cpp.
|
static |
Definition at line 332 of file SIFoldOperands.cpp.
References llvm::dbgs(), llvm::SmallVectorImpl< T >::emplace_back(), LLVM_DEBUG, and MI.
|
static |
Definition at line 934 of file SIFoldOperands.cpp.
Definition at line 1000 of file SIFoldOperands.cpp.
|
static |
Definition at line 1412 of file SIFoldOperands.cpp.
References llvm::SIOutMods::DIV2, llvm_unreachable, llvm::SIOutMods::MUL2, llvm::SIOutMods::MUL4, and llvm::SIOutMods::NONE.
|
static |
Definition at line 143 of file SIFoldOperands.cpp.
|
static |
Definition at line 327 of file SIFoldOperands.cpp.
References llvm::any_of(), llvm::CallingConv::C, and MI.
Definition at line 154 of file SIFoldOperands.cpp.
|
static |
Definition at line 1004 of file SIFoldOperands.cpp.
References llvm::MCInstrDesc::getNumOperands(), I, llvm::MCInstrDesc::implicit_defs(), llvm::MCInstrDesc::implicit_uses(), and MI.