Index: lib/Target/PNaCl/PNaClTargetMachine.h |
=================================================================== |
--- lib/Target/PNaCl/PNaClTargetMachine.h (revision 0) |
+++ lib/Target/PNaCl/PNaClTargetMachine.h (revision 0) |
@@ -0,0 +1,45 @@ |
+//===-- PNaClTargetMachine.h - TargetMachine for the PNaCl --*- C++ -*-===// |
+// |
+// The LLVM Compiler Infrastructure |
+// |
+// This file is distributed under the University of Illinois Open Source |
+// License. See LICENSE.TXT for details. |
+// |
+//===----------------------------------------------------------------------===// |
+// |
+// This file declares the PNaCl-specific subclass of TargetMachine. |
+// |
+//===----------------------------------------------------------------------===// |
+ |
+#ifndef PNACLTARGETMACHINE_H |
+#define PNACLTARGETMACHINE_H |
+ |
+#include "llvm/Target/TargetMachine.h" |
+#include "llvm/Target/TargetData.h" |
+ |
+namespace llvm { |
+ |
+class formatted_raw_ostream; |
+ |
+class PNaClTargetMachine : public TargetMachine { |
+ const TargetData DataLayout; // Calculates type size & alignment |
+ |
+public: |
+ PNaClTargetMachine(const Target &T, StringRef TT, |
+ StringRef CPU, StringRef FS, |
+ Reloc::Model RM, CodeModel::Model CM); |
+ |
+ virtual bool addPassesToEmitFile(PassManagerBase &PM, |
+ formatted_raw_ostream &Out, |
+ CodeGenFileType FileType, |
+ CodeGenOpt::Level OptLevel, |
+ bool DisableVerify); |
+ |
+ virtual const TargetData *getTargetData() const { return &DataLayout; } |
+}; |
+ |
+extern Target ThePNaClTarget; |
+ |
+} // end namespace llvm |
+ |
+#endif |