1 //===-- llvm/Target/TargetMachineImpls.h - Target Descriptions --*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
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.
8 //===----------------------------------------------------------------------===//
10 // This file defines the entry point to getting access to the various target
11 // machine implementations available to LLVM.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_TARGET_TARGETMACHINEIMPLS_H
16 #define LLVM_TARGET_TARGETMACHINEIMPLS_H
22 class IntrinsicLowering;
24 // allocateCTargetMachine - Allocate and return a subclass of TargetMachine
25 // that implements emits C code. This takes ownership of the
26 // IntrinsicLowering pointer, deleting it when the target machine is
29 TargetMachine *allocateCTargetMachine(const Module &M,
30 IntrinsicLowering *IL = 0);
32 // allocateSparcV9TargetMachine - Allocate and return a subclass of
33 // TargetMachine that implements the Sparc backend. This takes ownership of
34 // the IntrinsicLowering pointer, deleting it when the target machine is
37 TargetMachine *allocateSparcV9TargetMachine(const Module &M,
38 IntrinsicLowering *IL = 0);
40 // allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
41 // that implements the X86 backend. This takes ownership of the
42 // IntrinsicLowering pointer, deleting it when the target machine is
45 TargetMachine *allocateX86TargetMachine(const Module &M,
46 IntrinsicLowering *IL = 0);
48 // allocatePowerPCTargetMachine - Allocate and return a subclass
49 // of TargetMachine that implements the PowerPC backend. This takes
50 // ownership of the IntrinsicLowering pointer, deleting it when
51 // the target machine is destroyed.
53 TargetMachine *allocatePowerPCTargetMachine(const Module &M,
54 IntrinsicLowering *IL = 0);
55 } // End llvm namespace