//===-- TargetLoweringBase.cpp - Implement the TargetLoweringBase class ---===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This implements the TargetLoweringBase class.////===----------------------------------------------------------------------===//#include"llvm/Target/TargetLowering.h"#include"llvm/ADT/BitVector.h"#include"llvm/ADT/STLExtras.h"#include"llvm/ADT/Triple.h"#include"llvm/CodeGen/Analysis.h"#include"llvm/CodeGen/MachineFrameInfo.h"#include"llvm/CodeGen/MachineFunction.h"#include"llvm/CodeGen/MachineJumpTableInfo.h"#include"llvm/IR/DataLayout.h"#include"llvm/IR/DerivedTypes.h"#include"llvm/IR/GlobalVariable.h"#include"llvm/MC/MCAsmInfo.h"#include"llvm/MC/MCExpr.h"#include"llvm/Support/CommandLine.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/MathExtras.h"#include"llvm/Target/TargetLoweringObjectFile.h"#include"llvm/Target/TargetMachine.h"#include"llvm/Target/TargetRegisterInfo.h"#include<cctype>usingnamespacellvm;/// InitLibcallNames - Set default libcall names.///staticvoidInitLibcallNames(constchar**Names,constTargetMachine&TM){Names[RTLIB::SHL_I16]="__ashlhi3";Names[RTLIB::SHL_I32]="__ashlsi3";Names[RTLIB::SHL_I64]="__ashldi3";Names[RTLIB::SHL_I128]="__ashlti3";Names[RTLIB::SRL_I16]="__lshrhi3";Names[RTLIB::SRL_I32]="__lshrsi3";Names[RTLIB::SRL_I64]="__lshrdi3";Names[RTLIB::SRL_I128]="__lshrti3";Names[RTLIB::SRA_I16]="__ashrhi3";Names[RTLIB::SRA_I32]="__ashrsi3";Names[RTLIB::SRA_I64]="__ashrdi3";Names[RTLIB::SRA_I128]="__ashrti3";Names[RTLIB::MUL_I8]="__mulqi3";Names[RTLIB::MUL_I16]="__mulhi3";Names[RTLIB::MUL_I32]="__mulsi3";Names[RTLIB::MUL_I64]="__muldi3";Names[RTLIB::MUL_I128]="__multi3";Names[RTLIB::MULO_I32]="__mulosi4";Names[RTLIB::MULO_I64]="__mulodi4";Names[RTLIB::MULO_I128]="__muloti4";Names[RTLIB::SDIV_I8]="__divqi3";Names[RTLIB::SDIV_I16]="__divhi3";Names[RTLIB::SDIV_I32]="__divsi3";Names[RTLIB::SDIV_I64]="__divdi3";Names[RTLIB::SDIV_I128]="__divti3";