//===-- XCoreISelLowering.cpp - XCore DAG Lowering Implementation ------===////// 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 XCoreTargetLowering class.////===----------------------------------------------------------------------===//#define DEBUG_TYPE "xcore-lower"#include"XCoreISelLowering.h"#include"XCoreMachineFunctionInfo.h"#include"XCore.h"#include"XCoreTargetObjectFile.h"#include"XCoreTargetMachine.h"#include"XCoreSubtarget.h"#include"llvm/DerivedTypes.h"#include"llvm/Function.h"#include"llvm/Intrinsics.h"#include"llvm/CallingConv.h"#include"llvm/GlobalVariable.h"#include"llvm/GlobalAlias.h"#include"llvm/CodeGen/CallingConvLower.h"#include"llvm/CodeGen/MachineFrameInfo.h"#include"llvm/CodeGen/MachineFunction.h"#include"llvm/CodeGen/MachineInstrBuilder.h"#include"llvm/CodeGen/MachineJumpTableInfo.h"#include"llvm/CodeGen/MachineRegisterInfo.h"#include"llvm/CodeGen/SelectionDAGISel.h"#include"llvm/CodeGen/ValueTypes.h"#include"llvm/Support/Debug.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/raw_ostream.h"#include"llvm/ADT/VectorExtras.h"#include<queue>#include<set>usingnamespacellvm;constchar*XCoreTargetLowering::getTargetNodeName(unsignedOpcode)const{switch(Opcode){caseXCoreISD::BL:return"XCoreISD::BL";caseXCoreISD::PCRelativeWrapper:return"XCoreISD::PCRelativeWrapper";caseXCoreISD::DPRelativeWrapper:return"XCoreISD::DPRelativeWrapper";caseXCoreISD::CPRelativeWrapper:return"XCoreISD::CPRelativeWrapper";caseXCoreISD::STWSP:return"XCoreISD::STWSP";caseXCoreISD::RETSP:return"XCoreISD::RETSP";caseXCoreISD::LADD:return