blob: 650f5cb0cc3af267d301a623e72bf57f1718b44f [file] [log] [blame]
Misha Brukman3d9a6c22004-08-11 00:09:42 +00001//===-- PPC32TargetMachine.h - PowerPC/Darwin TargetMachine ---*- 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 PowerPC/Darwin specific subclass of TargetMachine.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef POWERPC_DARWIN_TARGETMACHINE_H
15#define POWERPC_DARWIN_TARGETMACHINE_H
16
17#include "llvm/Target/TargetMachine.h"
18#include "llvm/Target/TargetFrameInfo.h"
19#include "llvm/PassManager.h"
20#include "PowerPCTargetMachine.h"
Misha Brukman3d9a6c22004-08-11 00:09:42 +000021
22namespace llvm {
23
Misha Brukman3d9a6c22004-08-11 00:09:42 +000024class IntrinsicLowering;
25
26class PPC32TargetMachine : public PowerPCTargetMachine {
27public:
28 PPC32TargetMachine(const Module &M, IntrinsicLowering *IL);
29
30 /// addPassesToEmitMachineCode - Add passes to the specified pass manager to
31 /// get machine code emitted. This uses a MachineCodeEmitter object to handle
32 /// actually outputting the machine code and resolving things like the address
33 /// of functions. This method should returns true if machine code emission is
34 /// not supported.
35 ///
36 virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM,
37 MachineCodeEmitter &MCE);
38
Misha Brukman3d9a6c22004-08-11 00:09:42 +000039 static unsigned getModuleMatchQuality(const Module &M);
Misha Brukman3d9a6c22004-08-11 00:09:42 +000040};
41
42} // end namespace llvm
43
44#endif