|
LLVM
3.7.0
|
#include "llvm/ADT/SmallSet.h"#include "Hexagon.h"#include "HexagonSubtarget.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/PassSupport.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetInstrInfo.h"#include <algorithm>#include <vector>Go to the source code of this file.
Namespaces | |
| llvm | |
| Compute iterated dominance frontiers using a linear time algorithm. | |
Macros | |
| #define | DEBUG_TYPE "hwloops" |
Functions | |
| STATISTIC (NumHWLoops,"Number of loops converted to hardware loops") | |
| FunctionPass * | llvm::createHexagonHardwareLoops () |
| void | llvm::initializeHexagonHardwareLoopsPass (PassRegistry &) |
| INITIALIZE_PASS_BEGIN (HexagonHardwareLoops,"hwloops","Hexagon Hardware Loops", false, false) INITIALIZE_PASS_END(HexagonHardwareLoops | |
| static MachineBasicBlock * | getExitingBlock (MachineLoop *L) |
| Return the latch block if it's one of the exiting blocks. More... | |
| static bool | isImmValidForOpcode (unsigned CmpOpc, int64_t Imm) |
Variables | |
| static cl::opt< int > | HWLoopLimit ("hexagon-max-hwloop", cl::Hidden, cl::init(-1)) |
| static cl::opt< std::string > | PHFn ("hexagon-hwloop-phfn", cl::Hidden, cl::init("")) |
| static cl::opt< bool > | HWCreatePreheader ("hexagon-hwloop-preheader", cl::Hidden, cl::init(true), cl::desc("Add a preheader to a hardware loop if one doesn't exist")) |
| hwloops | |
| Hexagon Hardware | Loops |
| Hexagon Hardware | false |
| #define DEBUG_TYPE "hwloops" |
Definition at line 48 of file HexagonHardwareLoops.cpp.
|
static |
Return the latch block if it's one of the exiting blocks.
Otherwise, return the exiting block. Return 'null' when multiple exiting blocks are present.
Definition at line 370 of file HexagonHardwareLoops.cpp.
References llvm::LoopBase< N, M >::getExitingBlock(), llvm::LoopBase< N, M >::getLoopLatch(), and llvm::LoopBase< N, M >::isLoopExiting().
Referenced by llvm::RegionBase< RegionTr >::isSimple().
| INITIALIZE_PASS_BEGIN | ( | HexagonHardwareLoops | , |
| "hwloops" | , | ||
| "Hexagon Hardware Loops" | , | ||
| false | , | ||
| false | |||
| ) |
Definition at line 1559 of file HexagonHardwareLoops.cpp.
References llvm::isInt< 8 >(), and llvm::isUInt< 8 >().
| Hexagon Hardware false |
Definition at line 340 of file HexagonHardwareLoops.cpp.
|
static |
| hwloops |
Definition at line 340 of file HexagonHardwareLoops.cpp.
| Hexagon Hardware Loops |
Definition at line 340 of file HexagonHardwareLoops.cpp.
Referenced by llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::BlockFrequencyInfoImplBase::clear(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::BlockFrequencyInfoImplBase::unwrapLoops(), and llvm::LoopInfoBase< N, M >::verify().
|
static |
1.8.6