Have asm printers use formatted_raw_ostream directly to avoid a
[oota-llvm.git] / lib / Target / PowerPC / PPC.h
index d19e57a3ba0333d9077d9a34d41c908e66e4c700..89dc1c131e795b76c26402f40673d848dbf04e8d 100644 (file)
@@ -1,9 +1,9 @@
-//===-- PowerPC.h - Top-level interface for PowerPC representation -*- C++ -*-//
+//===-- PPC.h - Top-level interface for PowerPC Target ----------*- 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 is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef TARGET_POWERPC_H
-#define TARGET_POWERPC_H
+#ifndef LLVM_TARGET_POWERPC_H
+#define LLVM_TARGET_POWERPC_H
 
-#include <iosfwd>
-
-namespace llvm {
-
-class FunctionPass;
-class TargetMachine;
+// GCC #defines PPC on Linux but we use it as our namespace name
+#undef PPC
 
-enum PPCTargetEnum {
-  TargetDefault, TargetAIX, TargetDarwin
-};
+#include "llvm/Target/TargetMachine.h"
 
+namespace llvm {
+  class PPCTargetMachine;
+  class FunctionPass;
+  class MachineCodeEmitter;
+  class ObjectCodeEmitter;
+  class formatted_raw_ostream;
+  
 FunctionPass *createPPCBranchSelectionPass();
-FunctionPass *createPPCISelPattern(TargetMachine &TM);
-FunctionPass *createPPCISelDag(TargetMachine &TM);
-FunctionPass *createDarwinAsmPrinter(std::ostream &OS, TargetMachine &TM);
-FunctionPass *createAIXAsmPrinter(std::ostream &OS, TargetMachine &TM);
-
-extern bool PICEnabled;
-extern PPCTargetEnum PPCTarget;
+FunctionPass *createPPCISelDag(PPCTargetMachine &TM);
+FunctionPass *createPPCAsmPrinterPass(formatted_raw_ostream &OS,
+                                      PPCTargetMachine &TM,
+                                      bool Verbose);
+FunctionPass *createPPCCodeEmitterPass(PPCTargetMachine &TM,
+                                       MachineCodeEmitter &MCE);
+FunctionPass *createPPCJITCodeEmitterPass(PPCTargetMachine &TM,
+                                          JITCodeEmitter &MCE);
+FunctionPass *createPPCObjectCodeEmitterPass(PPCTargetMachine &TM,
+                                             ObjectCodeEmitter &OCE);
 } // end namespace llvm;
 
-// GCC #defines PPC on Linux but we use it as our namespace name
-#undef PPC
-
 // Defines symbolic names for PowerPC registers.  This defines a mapping from
 // register name to register number.
 //