LLVM API Documentation
#include "ARM.h"
#include "ARMMachineFunctionInfo.h"
#include "Thumb2InstrInfo.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "thumb2-it" |
Functions | |
STATISTIC (NumITs,"Number of IT blocks inserted") | |
STATISTIC (NumMovedInsts,"Number of predicated instructions moved") | |
static void | TrackDefUses (MachineInstr *MI, SmallSet< unsigned, 4 > &Defs, SmallSet< unsigned, 4 > &Uses, const TargetRegisterInfo *TRI) |
static bool | isCopy (MachineInstr *MI) |
#define DEBUG_TYPE "thumb2-it" |
Definition at line 10 of file Thumb2ITBlockPass.cpp.
|
static |
Definition at line 92 of file Thumb2ITBlockPass.cpp.
References llvm::MachineInstr::getOpcode().
STATISTIC | ( | NumITs | , |
"Number of IT blocks inserted" | |||
) |
STATISTIC | ( | NumMovedInsts | , |
"Number of predicated instructions moved" | |||
) |
|
static |
TrackDefUses - Tracking what registers are being defined and used by instructions in the IT block. This also tracks "dependencies", i.e. uses in the IT block that are defined before the IT instruction.
Definition at line 55 of file Thumb2ITBlockPass.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::SmallSet< T, N, C >::insert(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().