LLVM 20.0.0git
|
#include "ARM.h"
#include "ARMMachineFunctionInfo.h"
#include "ARMSubtarget.h"
#include "MCTargetDesc/ARMBaseInfo.h"
#include "Thumb2InstrInfo.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Support/Debug.h"
#include <cassert>
#include <new>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "arm-mve-vpt" |
Functions | |
static MachineInstr * | findVCMPToFoldIntoVPST (MachineBasicBlock::iterator MI, const TargetRegisterInfo *TRI, unsigned &NewOpcode) |
static bool | StepOverPredicatedInstrs (MachineBasicBlock::instr_iterator &Iter, MachineBasicBlock::instr_iterator EndIter, unsigned MaxSteps, unsigned &NumInstrsSteppedOver) |
static bool | IsVPRDefinedOrKilledByBlock (MachineBasicBlock::iterator Iter, MachineBasicBlock::iterator End) |
static ARM::PredBlockMask | GetInitialBlockMask (unsigned BlockSize) |
static ARM::PredBlockMask | CreateVPTBlock (MachineBasicBlock::instr_iterator &Iter, MachineBasicBlock::instr_iterator EndIter, SmallVectorImpl< MachineInstr * > &DeadInstructions) |
#define DEBUG_TYPE "arm-mve-vpt" |
Definition at line 33 of file MVEVPTBlockPass.cpp.
|
static |
Definition at line 163 of file MVEVPTBlockPass.cpp.
References assert(), BlockSize, llvm::dbgs(), llvm::ARMVCC::Else, llvm::expandPredBlockMask(), llvm::findFirstVPTPredOperandIdx(), GetInitialBlockMask(), llvm::getVPTInstrPredicate(), IsVPRDefinedOrKilledByBlock(), LLVM_DEBUG, llvm::SmallVectorTemplateBase< T, bool >::push_back(), StepOverPredicatedInstrs(), and llvm::ARMVCC::Then.
|
static |
Definition at line 65 of file MVEVPTBlockPass.cpp.
References MI, llvm::registerDefinedBetween(), TRI, and llvm::VCMPOpcodeToVPT().
|
static |
Definition at line 141 of file MVEVPTBlockPass.cpp.
References BlockSize, and llvm_unreachable.
Referenced by CreateVPTBlock().
|
static |
|
static |
Definition at line 100 of file MVEVPTBlockPass.cpp.
References assert(), llvm::ARMVCC::Else, llvm::getVPTInstrPredicate(), and llvm::ARMVCC::None.
Referenced by CreateVPTBlock().