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