diff options
Diffstat (limited to 'lib/Target/X86/X86LegalizerInfo.h')
-rw-r--r-- | lib/Target/X86/X86LegalizerInfo.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/Target/X86/X86LegalizerInfo.h b/lib/Target/X86/X86LegalizerInfo.h new file mode 100644 index 000000000000..3f00898b4232 --- /dev/null +++ b/lib/Target/X86/X86LegalizerInfo.h @@ -0,0 +1,43 @@ +//===- X86LegalizerInfo.h ------------------------------------------*- C++ +//-*-==// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// \file +/// This file declares the targeting of the Machinelegalizer class for X86. +/// \todo This should be generated by TableGen. +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIB_TARGET_X86_X86MACHINELEGALIZER_H +#define LLVM_LIB_TARGET_X86_X86MACHINELEGALIZER_H + +#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h" + +namespace llvm { + +class X86Subtarget; +class X86TargetMachine; + +/// This class provides the information for the target register banks. +class X86LegalizerInfo : public LegalizerInfo { +private: + /// Keep a reference to the X86Subtarget around so that we can + /// make the right decision when generating code for different targets. + const X86Subtarget &Subtarget; + const X86TargetMachine &TM; + +public: + X86LegalizerInfo(const X86Subtarget &STI, const X86TargetMachine &TM); + +private: + void setLegalizerInfo32bit(); + void setLegalizerInfo64bit(); + void setLegalizerInfoSSE1(); + void setLegalizerInfoSSE2(); +}; +} // namespace llvm +#endif |