| Chris Lattner | ed85542 | 2004-07-16 07:11:15 +0000 | [diff] [blame] | 1 | //===-- SkeletonTargetMachine.h - TargetMachine for Skeleton ----*- C++ -*-===// | 
| Misha Brukman | b440243 | 2005-04-21 23:30:14 +0000 | [diff] [blame] | 2 | // | 
| Chris Lattner | ed85542 | 2004-07-16 07:11:15 +0000 | [diff] [blame] | 3 | //                     The LLVM Compiler Infrastructure | 
|  | 4 | // | 
|  | 5 | // This file was developed by the LLVM research group and is distributed under | 
|  | 6 | // the University of Illinois Open Source License. See LICENSE.TXT for details. | 
| Misha Brukman | b440243 | 2005-04-21 23:30:14 +0000 | [diff] [blame] | 7 | // | 
| Chris Lattner | ed85542 | 2004-07-16 07:11:15 +0000 | [diff] [blame] | 8 | //===----------------------------------------------------------------------===// | 
| Misha Brukman | b440243 | 2005-04-21 23:30:14 +0000 | [diff] [blame] | 9 | // | 
| Chris Lattner | ed85542 | 2004-07-16 07:11:15 +0000 | [diff] [blame] | 10 | // This file declares the Skeleton specific subclass of TargetMachine. | 
|  | 11 | // | 
|  | 12 | //===----------------------------------------------------------------------===// | 
|  | 13 |  | 
|  | 14 | #ifndef SKELETONTARGETMACHINE_H | 
|  | 15 | #define SKELETONTARGETMACHINE_H | 
|  | 16 |  | 
|  | 17 | #include "llvm/Target/TargetMachine.h" | 
|  | 18 | #include "llvm/Target/TargetFrameInfo.h" | 
|  | 19 | #include "llvm/PassManager.h" | 
|  | 20 | #include "SkeletonInstrInfo.h" | 
|  | 21 | #include "SkeletonJITInfo.h" | 
|  | 22 |  | 
|  | 23 | namespace llvm { | 
|  | 24 | class IntrinsicLowering; | 
|  | 25 |  | 
|  | 26 | class SkeletonTargetMachine : public TargetMachine { | 
|  | 27 | SkeletonInstrInfo InstrInfo; | 
|  | 28 | TargetFrameInfo FrameInfo; | 
|  | 29 | SkeletonJITInfo JITInfo; | 
|  | 30 | public: | 
|  | 31 | SkeletonTargetMachine(const Module &M, IntrinsicLowering *IL); | 
|  | 32 |  | 
|  | 33 | virtual const SkeletonInstrInfo *getInstrInfo() const { return &InstrInfo; } | 
|  | 34 | virtual const TargetFrameInfo  *getFrameInfo() const { return &FrameInfo; } | 
|  | 35 | virtual const MRegisterInfo *getRegisterInfo() const { | 
|  | 36 | return &InstrInfo.getRegisterInfo(); | 
|  | 37 | } | 
|  | 38 | virtual TargetJITInfo *getJITInfo() { | 
|  | 39 | return &JITInfo; | 
|  | 40 | } | 
|  | 41 |  | 
|  | 42 | virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM, | 
|  | 43 | MachineCodeEmitter &MCE); | 
| Misha Brukman | b440243 | 2005-04-21 23:30:14 +0000 | [diff] [blame] | 44 |  | 
| Chris Lattner | ed85542 | 2004-07-16 07:11:15 +0000 | [diff] [blame] | 45 | virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out); | 
|  | 46 | }; | 
|  | 47 |  | 
|  | 48 | } // end namespace llvm | 
|  | 49 |  | 
|  | 50 | #endif |