LLVM API Documentation

Defines | Functions
Thumb2ITBlockPass.cpp File Reference
#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"
Include dependency graph for Thumb2ITBlockPass.cpp:

Go to the source code of this file.

Defines

#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 Documentation

#define DEBUG_TYPE   "thumb2-it"

Definition at line 21 of file Thumb2ITBlockPass.cpp.


Function Documentation

static bool isCopy ( MachineInstr MI) [static]

Definition at line 93 of file Thumb2ITBlockPass.cpp.

References llvm::MachineInstr::getOpcode().

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]

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 56 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().