LLVM
15.0.0git
|
#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCShuffler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "hexagon-mccompound" |
Enumerations | |
enum | OpcodeIndex { fp0_jump_nt = 0, fp0_jump_t, fp1_jump_nt, fp1_jump_t, tp0_jump_nt, tp0_jump_t, tp1_jump_nt, tp1_jump_t } |
Functions | |
static unsigned | getCompoundCandidateGroup (MCInst const &MI, bool IsExtended) |
static unsigned | getCompoundOp (MCInst const &HMCI) |
getCompoundOp - Return the index from 0-7 into the above opcode lists. More... | |
static MCInst * | getCompoundInsn (MCContext &Context, MCInst const &L, MCInst const &R) |
static bool | isOrderedCompoundPair (MCInst const &MIa, bool IsExtendedA, MCInst const &MIb, bool IsExtendedB) |
Non-Symmetrical. See if these two instructions are fit for compound pair. More... | |
static bool | lookForCompound (MCInstrInfo const &MCII, MCContext &Context, MCInst &MCI) |
Variables | |
static const unsigned | tstBitOpcode [8] |
static const unsigned | cmpeqBitOpcode [8] |
static const unsigned | cmpgtBitOpcode [8] |
static const unsigned | cmpgtuBitOpcode [8] |
static const unsigned | cmpeqiBitOpcode [8] |
static const unsigned | cmpgtiBitOpcode [8] |
static const unsigned | cmpgtuiBitOpcode [8] |
static const unsigned | cmpeqn1BitOpcode [8] |
static const unsigned | cmpgtn1BitOpcode [8] |
#define DEBUG_TYPE "hexagon-mccompound" |
Definition at line 28 of file HexagonMCCompound.cpp.
enum OpcodeIndex |
Enumerator | |
---|---|
fp0_jump_nt | |
fp0_jump_t | |
fp1_jump_nt | |
fp1_jump_t | |
tp0_jump_nt | |
tp0_jump_t | |
tp1_jump_nt | |
tp1_jump_t |
Definition at line 30 of file HexagonMCCompound.cpp.
Definition at line 80 of file HexagonMCCompound.cpp.
References llvm::HexagonII::HCG_A, llvm::HexagonII::HCG_B, llvm::HexagonII::HCG_C, llvm::HexagonII::HCG_None, llvm::HexagonMCInstrInfo::isIntRegForSubInst(), MI, and llvm::HexagonMCInstrInfo::minConstant().
Referenced by isOrderedCompoundPair().
Definition at line 197 of file HexagonMCCompound.cpp.
References llvm::MCInst::addOperand(), assert(), cmpeqBitOpcode, cmpeqiBitOpcode, cmpeqn1BitOpcode, cmpgtBitOpcode, cmpgtiBitOpcode, cmpgtn1BitOpcode, cmpgtuBitOpcode, cmpgtuiBitOpcode, Context, llvm::dbgs(), getCompoundOp(), llvm::MCOperand::getExpr(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), LLVM_DEBUG, llvm::MCInst::setOpcode(), Success, and tstBitOpcode.
Referenced by lookForCompound().
getCompoundOp - Return the index from 0-7 into the above opcode lists.
Definition at line 175 of file HexagonMCCompound.cpp.
References assert(), fp0_jump_nt, fp0_jump_t, fp1_jump_nt, fp1_jump_t, llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm_unreachable, P2, tp0_jump_nt, tp0_jump_t, tp1_jump_nt, and tp1_jump_t.
Referenced by getCompoundInsn().
|
static |
Non-Symmetrical. See if these two instructions are fit for compound pair.
Definition at line 335 of file HexagonMCCompound.cpp.
References getCompoundCandidateGroup(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::HexagonII::HCG_A, llvm::HexagonII::HCG_B, and llvm::HexagonII::HCG_C.
Referenced by lookForCompound().
|
static |
Definition at line 349 of file HexagonMCCompound.cpp.
References assert(), B, llvm::MCInst::begin(), llvm::HexagonMCInstrInfo::bundleInstructionsOffset, Context, llvm::dbgs(), llvm::MCInst::end(), llvm::MCInst::erase(), getCompoundInsn(), llvm::MCInst::getOpcode(), llvm::HexagonMCInstrInfo::getType(), llvm::HexagonMCInstrInfo::isBundle(), llvm::HexagonMCInstrInfo::isImmext(), isOrderedCompoundPair(), LLVM_DEBUG, and llvm::HexagonII::TypeJ.
Referenced by llvm::HexagonMCInstrInfo::tryCompound().
|
static |
Definition at line 45 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 57 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 69 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 49 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 61 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 73 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 53 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 65 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().
|
static |
Definition at line 41 of file HexagonMCCompound.cpp.
Referenced by getCompoundInsn().