Prune unused #include
[oota-llvm.git] / include / llvm / Target / TargetMachineImpls.h
1 //===-- llvm/Target/TargetMachineImpls.h - Target Descriptions --*- C++ -*-===//
2 // 
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
7 // 
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines the entry point to getting access to the various target
11 // machine implementations available to LLVM.
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef LLVM_TARGET_TARGETMACHINEIMPLS_H
16 #define LLVM_TARGET_TARGETMACHINEIMPLS_H
17
18 namespace llvm {
19   /// Command line options shared between TargetMachine implementations - 
20   /// these should go in their own header eventually.
21   ///
22   extern bool PrintMachineCode;
23   extern bool NoFramePointerElim;
24
25   class TargetMachine;
26   class Module;
27   class IntrinsicLowering;
28   
29   // allocateCTargetMachine - Allocate and return a subclass of TargetMachine
30   // that implements emits C code.  This takes ownership of the
31   // IntrinsicLowering pointer, deleting it when the target machine is
32   // destroyed.
33   //
34   TargetMachine *allocateCTargetMachine(const Module &M,
35                                         IntrinsicLowering *IL = 0);
36
37   // allocateSparcV9TargetMachine - Allocate and return a subclass of
38   // TargetMachine that implements the 64-bit Sparc backend.  This takes
39   // ownership of the IntrinsicLowering pointer, deleting it when the target
40   // machine is destroyed.
41   //
42   TargetMachine *allocateSparcV9TargetMachine(const Module &M,
43                                             IntrinsicLowering *IL = 0);
44   
45   // allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
46   // that implements the X86 backend.  This takes ownership of the
47   // IntrinsicLowering pointer, deleting it when the target machine is
48   // destroyed.
49   //
50   TargetMachine *allocateX86TargetMachine(const Module &M,
51                                           IntrinsicLowering *IL = 0);
52
53   // allocatePowerPCTargetMachine - Allocate and return a subclass
54   // of TargetMachine that implements the PowerPC backend.  This takes
55   // ownership of the IntrinsicLowering pointer, deleting it when
56   // the target machine is destroyed.
57   //
58   TargetMachine *allocatePowerPCTargetMachine(const Module &M,
59                                               IntrinsicLowering *IL = 0);
60 } // End llvm namespace
61
62 #endif