LLVM  16.0.0git
Macros | Functions
SIFoldOperands.cpp File Reference
#include "AMDGPU.h"
#include "GCNSubtarget.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIMachineFunctionInfo.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
Include dependency graph for SIFoldOperands.cpp:

Go to the source code of this file.


#define DEBUG_TYPE   "si-fold-operands"


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)

Macro Definition Documentation


#define DEBUG_TYPE   "si-fold-operands"

Definition at line 18 of file SIFoldOperands.cpp.

Function Documentation

◆ appendFoldCandidate()

static void appendFoldCandidate ( SmallVectorImpl< FoldCandidate > &  FoldList,
MachineInstr MI,
unsigned  OpNo,
MachineOperand FoldOp,
bool  Commuted = false,
int  ShrinkOp = -1 

Definition at line 319 of file SIFoldOperands.cpp.

References llvm::dbgs(), LLVM_DEBUG, and MI.

◆ evalBinaryInstruction()

static bool evalBinaryInstruction ( unsigned  Opcode,
int32_t &  Result,
uint32_t  LHS,
uint32_t  RHS 

Definition at line 917 of file SIFoldOperands.cpp.

References LHS, and RHS.

◆ getMovOpc()

static unsigned getMovOpc ( bool  IsScalar)

Definition at line 983 of file SIFoldOperands.cpp.

◆ getOModValue()

static int getOModValue ( unsigned  Opc,
int64_t  Val 

◆ isUseMIInFoldList()

static bool isUseMIInFoldList ( ArrayRef< FoldCandidate >  FoldList,
const MachineInstr MI 

Definition at line 314 of file SIFoldOperands.cpp.

References llvm::any_of(), and MI.

◆ macToMad()

static unsigned macToMad ( unsigned  Opc)

Definition at line 141 of file SIFoldOperands.cpp.

◆ mutateCopyOp()

static void mutateCopyOp ( MachineInstr MI,
const MCInstrDesc NewDesc