c02dd11c18f9233bf50a3a5d3378be2fa0bbbdff
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