Prune unused #include
[oota-llvm.git] / include / llvm / Target / TargetMachineImpls.h
index 4b8450eb0107f85ee36a31efe7bd05011a1b5f1c..e70c9b72fe1fd6d884fcbdc2e7e776dcb9b63d50 100644 (file)
@@ -1,4 +1,11 @@
 //===-- llvm/Target/TargetMachineImpls.h - Target Descriptions --*- C++ -*-===//
+// 
+//                     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 the entry point to getting access to the various target
 // machine implementations available to LLVM.
 #ifndef LLVM_TARGET_TARGETMACHINEIMPLS_H
 #define LLVM_TARGET_TARGETMACHINEIMPLS_H
 
-namespace TM {
-  enum {
-    PtrSizeMask  = 1,
-    PtrSize32    = 0,
-    PtrSize64    = 1,
+namespace llvm {
+  /// Command line options shared between TargetMachine implementations - 
+  /// these should go in their own header eventually.
+  ///
+  extern bool PrintMachineCode;
+  extern bool NoFramePointerElim;
 
-    EndianMask   = 2,
-    LittleEndian = 0,
-    BigEndian    = 2,
-  };
-}
+  class TargetMachine;
+  class Module;
+  class IntrinsicLowering;
+  
+  // allocateCTargetMachine - Allocate and return a subclass of TargetMachine
+  // that implements emits C code.  This takes ownership of the
+  // IntrinsicLowering pointer, deleting it when the target machine is
+  // destroyed.
+  //
+  TargetMachine *allocateCTargetMachine(const Module &M,
+                                        IntrinsicLowering *IL = 0);
 
-class TargetMachine;
+  // allocateSparcV9TargetMachine - Allocate and return a subclass of
+  // TargetMachine that implements the 64-bit Sparc backend.  This takes
+  // ownership of the IntrinsicLowering pointer, deleting it when the target
+  // machine is destroyed.
+  //
+  TargetMachine *allocateSparcV9TargetMachine(const Module &M,
+                                            IntrinsicLowering *IL = 0);
+  
+  // allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
+  // that implements the X86 backend.  This takes ownership of the
+  // IntrinsicLowering pointer, deleting it when the target machine is
+  // destroyed.
+  //
+  TargetMachine *allocateX86TargetMachine(const Module &M,
+                                          IntrinsicLowering *IL = 0);
 
-// allocateSparcTargetMachine - Allocate and return a subclass of TargetMachine
-// that implements the Sparc backend.
-//
-TargetMachine *allocateSparcTargetMachine();
-
-// allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
-// that implements the X86 backend.  The X86 target machine can run in
-// "emulation" mode, where it is capable of emulating machines of larger pointer
-// size and different endianness if desired.
-//
-TargetMachine *allocateX86TargetMachine(unsigned Configuration =
-                                          TM::PtrSize32|TM::LittleEndian);
+  // allocatePowerPCTargetMachine - Allocate and return a subclass
+  // of TargetMachine that implements the PowerPC backend.  This takes
+  // ownership of the IntrinsicLowering pointer, deleting it when
+  // the target machine is destroyed.
+  //
+  TargetMachine *allocatePowerPCTargetMachine(const Module &M,
+                                              IntrinsicLowering *IL = 0);
+} // End llvm namespace
 
 #endif