//===-- X86ISelPattern.cpp - A pattern matching inst selector for X86 -----===//// // The LLVM Compiler Infrastructure//// This file was developed by the LLVM research group and is distributed under// the University of Illinois Open Source License. See LICENSE.TXT for details.// //===----------------------------------------------------------------------===////// This file defines a pattern matching instruction selector for X86.////===----------------------------------------------------------------------===//#include"X86.h"#include"X86InstrBuilder.h"#include"X86RegisterInfo.h"#include"llvm/Function.h"#include"llvm/CodeGen/MachineFunction.h"#include"llvm/CodeGen/MachineFrameInfo.h"#include"llvm/CodeGen/SelectionDAG.h"#include"llvm/CodeGen/SelectionDAGISel.h"#include"llvm/CodeGen/SSARegMap.h"#include"llvm/Target/TargetData.h"#include"llvm/Target/TargetLowering.h"#include"llvm/Support/MathExtras.h"#include"llvm/ADT/Statistic.h"#include<set>usingnamespacellvm;//===----------------------------------------------------------------------===//// X86TargetLowering - X86 Implementation of the TargetLowering interfacenamespace{classX86TargetLowering:publicTargetLowering{intVarArgsFrameIndex;// FrameIndex for start of varargs area.intReturnAddrIndex<