|
LLVM
4.0.0
|
#include "llvm/ADT/SmallVector.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/AssumptionCache.h"#include "llvm/Analysis/BlockFrequencyInfo.h"#include "llvm/Analysis/CodeMetrics.h"#include "llvm/Analysis/DependenceAnalysis.h"#include "llvm/Analysis/LoopInfo.h"#include "llvm/Analysis/LoopIterator.h"#include "llvm/Analysis/LoopPass.h"#include "llvm/Analysis/ScalarEvolution.h"#include "llvm/Analysis/ScalarEvolutionExpander.h"#include "llvm/Analysis/ScalarEvolutionExpressions.h"#include "llvm/Analysis/TargetTransformInfo.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/Function.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Module.h"#include "llvm/Pass.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Transforms/Scalar.h"#include "llvm/Transforms/Utils/BasicBlockUtils.h"#include "llvm/Transforms/Utils/LoopUtils.h"#include "llvm/Transforms/Utils/SSAUpdater.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "loop-interchange" |
Functions | |
| static bool | containsSafePHI (BasicBlock *Block, bool isOuterLoopExitBlock) |
| static BasicBlock * | getLoopLatchExitBlock (BasicBlock *LatchBlock, BasicBlock *LoopHeader) |
| static bool | isProfitableForVectorization (unsigned InnerLoopId, unsigned OuterLoopId, CharMatrix &DepMatrix) |
| static void | moveBBContents (BasicBlock *FromBB, Instruction *InsertBefore) |
| Move all instructions except the terminator from FromBB right before InsertBefore. More... | |
| INITIALIZE_PASS_BEGIN (LoopInterchange,"loop-interchange","Interchanges loops for cache reuse", false, false) INITIALIZE_PASS_END(LoopInterchange | |
Variables | |
| static cl::opt< int > | LoopInterchangeCostThreshold ("loop-interchange-threshold", cl::init(0), cl::Hidden, cl::desc("Interchange if you gain more than this number")) |
| loop | interchange |
| loop Interchanges loops for cache | reuse |
| loop Interchanges loops for cache | false |
| #define DEBUG_TYPE "loop-interchange" |
Definition at line 45 of file LoopInterchange.cpp.
|
static |
Definition at line 716 of file LoopInterchange.cpp.
References llvm::BasicBlock::begin(), llvm::dyn_cast(), llvm::PHINode::getIncomingValue(), llvm::PHINode::getNumIncomingValues(), and I.
|
static |
Definition at line 733 of file LoopInterchange.cpp.
References assert(), llvm::BasicBlock::getTerminator(), and i.
| INITIALIZE_PASS_BEGIN | ( | LoopInterchange | , |
| "loop-interchange" | , | ||
| "Interchanges loops for cache reuse" | , | ||
| false | , | ||
| false | |||
| ) |
|
static |
Definition at line 946 of file LoopInterchange.cpp.
References i.
|
static |
Move all instructions except the terminator from FromBB right before InsertBefore.
Definition at line 1101 of file LoopInterchange.cpp.
References llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
Definition at line 1271 of file LoopInterchange.cpp.
| loop interchange |
Definition at line 1271 of file LoopInterchange.cpp.
|
static |
Definition at line 1271 of file LoopInterchange.cpp.
1.8.6