LLVM
8.0.1
|
#include "Hexagon.h"
#include "HexagonTargetMachine.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/PassSupport.h"
Go to the source code of this file.
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
Functions | |
FunctionPass * | llvm::createHexagonFixupHwLoops () |
void | llvm::initializeHexagonFixupHwLoopsPass (PassRegistry &) |
INITIALIZE_PASS (HexagonFixupHwLoops, "hwloopsfixup", "Hexagon Hardware Loops Fixup", false, false) FunctionPass *llvm | |
static bool | isHardwareLoop (const MachineInstr &MI) |
Returns true if the instruction is a hardware loop instruction. More... | |
Variables | |
static cl::opt< unsigned > | MaxLoopRange ("hexagon-loop-range", cl::Hidden, cl::init(200), cl::desc("Restrict range of loopN instructions (testing only)")) |
INITIALIZE_PASS | ( | HexagonFixupHwLoops | , |
"hwloopsfixup" | , | ||
"Hexagon Hardware Loops Fixup" | , | ||
false | , | ||
false | |||
) |
Definition at line 77 of file HexagonFixupHwLoops.cpp.
|
static |
Returns true if the instruction is a hardware loop instruction.
Definition at line 85 of file HexagonFixupHwLoops.cpp.
References llvm::AbsoluteDifference(), llvm::MachineInstrBuilder::add(), assert(), llvm::BuildMI(), llvm::MCInstrInfo::get(), llvm::MachineFunction::getFunction(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::HexagonInstrInfo::getSize(), llvm::MachineFunction::getSubtarget(), llvm_unreachable, MaxLoopRange, MI, and TII.
|
static |
Referenced by isHardwareLoop().