//===-- IfConversion.cpp - Machine code if conversion pass. ---------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements the machine instruction level if-conversion pass.////===----------------------------------------------------------------------===//#define DEBUG_TYPE "ifcvt"#include"BranchFolding.h"#include"llvm/Function.h"#include"llvm/CodeGen/Passes.h"#include"llvm/CodeGen/MachineModuleInfo.h"#include"llvm/CodeGen/MachineFunctionPass.h"#include"llvm/CodeGen/MachineLoopInfo.h"#include"llvm/MC/MCInstrItineraries.h"#include"llvm/Target/TargetInstrInfo.h"#include"llvm/Target/TargetLowering.h"#include"llvm/Target/TargetMachine.h"#include"llvm/Target/TargetRegisterInfo.h"#include"llvm/Support/CommandLine.h"#include"llvm/Support/Debug.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/raw_ostream.h"#include"llvm/ADT/SmallSet.h"#include"llvm/ADT/Statistic.h"#include"llvm/ADT/STLExtras.h"usingnamespacellvm;// Hidden options for help debugging.staticcl::opt<int>IfCvtFnStart("ifcvt-fn-start",cl::init(-1),cl::Hidden);staticcl::opt<int>IfCvtFnStop("ifcvt-f