//===- LoopIndexSplit.cpp - Loop Index Splitting Pass ---------------------===////// The LLVM Compiler Infrastructure//// This file was developed by Devang Patel and is distributed under// the University of Illinois Open Source License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements Loop Index Splitting Pass.////===----------------------------------------------------------------------===//#define DEBUG_TYPE "loop-index-split"#include"llvm/Transforms/Scalar.h"#include"llvm/Analysis/LoopPass.h"#include"llvm/Analysis/ScalarEvolutionExpander.h"#include"llvm/Analysis/Dominators.h"#include"llvm/Transforms/Utils/BasicBlockUtils.h"#include"llvm/Transforms/Utils/Cloning.h"#include"llvm/Support/Compiler.h"#include"llvm/ADT/DepthFirstIterator.h"#include"llvm/ADT/Statistic.h"usingnamespacellvm;STATISTIC(NumIndexSplit,"Number of loops index split");namespace{classVISIBILITY_HIDDENLoopIndexSplit:publicLoopPass{public