Prune unused #include
[oota-llvm.git] / include / llvm / Target / TargetMachineImpls.h
index 83bebbddaf351a945fdbc697a5ffcc8acb51e62a..e70c9b72fe1fd6d884fcbdc2e7e776dcb9b63d50 100644 (file)
@@ -1,17 +1,62 @@
-//===-- llvm/CodeGen/Sparc.h - Sparc Target Description ----------*- C++ -*--=//
+//===-- llvm/Target/TargetMachineImpls.h - Target Descriptions --*- C++ -*-===//
+// 
+//                     The LLVM Compiler Infrastructure
 //
-// This file defines the Sparc processor targets
+// 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_CODEGEN_SPARC_H
-#define LLVM_CODEGEN_SPARC_H
+#ifndef LLVM_TARGET_TARGETMACHINEIMPLS_H
+#define LLVM_TARGET_TARGETMACHINEIMPLS_H
 
-class TargetMachine;
+namespace llvm {
+  /// Command line options shared between TargetMachine implementations - 
+  /// these should go in their own header eventually.
+  ///
+  extern bool PrintMachineCode;
+  extern bool NoFramePointerElim;
 
-// allocateSparcTargetMachine - Allocate and return a subclass of TargetMachine
-// that implements the Sparc backend.
-//
-TargetMachine *allocateSparcTargetMachine();
+  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);
+
+  // 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);
+
+  // 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