blob: af186018ab79c58bb9ba2e62d30e074c94d6daf7 [file] [log] [blame]
Andrew Lenharth304d0f32005-01-22 23:41:55 +00001//===-- AlphaTargetMachine.h - Define TargetMachine for PowerPC -*- C++ -*-=//
2//
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.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file declares the Alpha-specific subclass of TargetMachine.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef ALPHA_TARGETMACHINE_H
15#define ALPHA_TARGETMACHINE_H
16
17#include "llvm/Target/TargetMachine.h"
18#include "llvm/Target/TargetFrameInfo.h"
19#include "llvm/PassManager.h"
20#include "AlphaInstrInfo.h"
21//#include "AlphaJITInfo.h"
22
23namespace llvm {
24
25class GlobalValue;
26class IntrinsicLowering;
27
28class AlphaTargetMachine : public TargetMachine {
29 AlphaInstrInfo InstrInfo;
30 TargetFrameInfo FrameInfo;
31 // AlphaJITInfo JITInfo;
32
33public:
34 AlphaTargetMachine(const Module &M, IntrinsicLowering *IL);
35
36 virtual const AlphaInstrInfo *getInstrInfo() const { return &InstrInfo; }
37 virtual const TargetFrameInfo *getFrameInfo() const { return &FrameInfo; }
38 virtual const MRegisterInfo *getRegisterInfo() const {
39 return &InstrInfo.getRegisterInfo();
40 }
41 // virtual TargetJITInfo *getJITInfo() {
42 // return &JITInfo;
43 // }
44
45 virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM,
46 MachineCodeEmitter &MCE);
47
48 virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
49
50};
51
52} // end namespace llvm
53
54#endif