]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - opencl/llvm.git/blob - lib/Target/C6000/C6000TargetMachine.h
c02dd11c18f9233bf50a3a5d3378be2fa0bbbdff
[opencl/llvm.git] / lib / Target / C6000 / C6000TargetMachine.h
1 //===-- C6000TargetMachine.h - Define TargetMachine for C6000 ---*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file declares the C6000 specific subclass of TargetMachine.
11 //
12 //===----------------------------------------------------------------------===//
14 #ifndef C6000TARGETMACHINE_H
15 #define C6000TARGETMACHINE_H
17 #include "llvm/IR/DataLayout.h"
18 #include "llvm/Target/TargetFrameLowering.h"
19 #include "llvm/Target/TargetMachine.h"
21 namespace llvm {
23 class C6000TargetMachine : public LLVMTargetMachine {
24   const DataLayout DL;       // Calculates type size & alignment
25 public:
26   C6000TargetMachine(const Target &T, StringRef TT,
27                      StringRef CPU, StringRef FS, const TargetOptions &Options,
28                      Reloc::Model RM, CodeModel::Model CM,
29                      CodeGenOpt::Level OL);
31   /// \brief Register C6000 analysis passes with a pass manager.
32   void addAnalysisPasses(PassManagerBase &PM) override;
34   // Pass Pipeline Configuration
35   TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
36 };
38 } // end namespace llvm
40 #endif