From 1adf1b03af9b1e2ee5a527caa5b14c9d55a32173 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 19 Aug 2008 21:45:35 +0000 Subject: [PATCH] Instantiate FastISel for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55011 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86FastISel.cpp | 20 ++++++++++++++++++ lib/Target/X86/X86FastISel.h | 34 ++++++++++++++++++++++++++++++ lib/Target/X86/X86ISelLowering.cpp | 4 ++-- 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 lib/Target/X86/X86FastISel.cpp create mode 100644 lib/Target/X86/X86FastISel.h diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp new file mode 100644 index 00000000000..0c0660c7832 --- /dev/null +++ b/lib/Target/X86/X86FastISel.cpp @@ -0,0 +1,20 @@ +//===-- X86FastISel.cpp - X86 FastISel implementation ---------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the X86-specific support for the FastISel class. Much +// of the target-specific code is generated by tablegen in the file +// X86GenFastISel.inc, which is #included here. +// +//===----------------------------------------------------------------------===// + +#include "X86.h" +#include "X86RegisterInfo.h" +#include "X86ISelLowering.h" +#include "X86FastISel.h" +#include "X86GenFastISel.inc" diff --git a/lib/Target/X86/X86FastISel.h b/lib/Target/X86/X86FastISel.h new file mode 100644 index 00000000000..0f2b26a4d2f --- /dev/null +++ b/lib/Target/X86/X86FastISel.h @@ -0,0 +1,34 @@ +//===-- X86FastISel.h - X86 FastISel header -------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the interface to the X86-specific support for the FastISel +// class. +// +//===----------------------------------------------------------------------===// + +#ifndef X86FASTISEL_H +#define X86FASTISEL_H + +namespace llvm { + +class FastISel; +class MachineBasicBlock; +class MachineFunction; +class TargetInstrInfo; + +namespace X86 { + +FastISel *createFastISel(MachineBasicBlock *mbb, MachineFunction *mf, + const TargetInstrInfo *tii); + +} // namespace X86 + +} // namespace llvm + +#endif diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 3f49c11170c..7cf74bf79ea 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -17,6 +17,7 @@ #include "X86ISelLowering.h" #include "X86MachineFunctionInfo.h" #include "X86TargetMachine.h" +#include "X86FastISel.h" #include "llvm/CallingConv.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" @@ -1872,8 +1873,7 @@ bool X86TargetLowering::IsEligibleForTailCallOptimization(SDValue Call, FastISel *X86TargetLowering::createFastISel(MachineBasicBlock *mbb, MachineFunction *mf, const TargetInstrInfo *tii) { - // FastISel isn't yet supported. - return 0; + return X86::createFastISel(mbb, mf, tii); }