blob: ffb92cb89e391c49f618e067e8c1fdb64d690b87 [file] [log] [blame]
Nick Lewyckyf7a3c502010-09-07 18:14:24 +00001//
2// The LLVM Compiler Infrastructure
3//
4// This file is distributed under the University of Illinois Open Source
5// License. See LICENSE.TXT for details.
6//
7//===----------------------------------------------------------------------===//
8//
9// This file contains the entry points for global functions defined in the LLVM
10// PTX back-end.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef PTX_H
15#define PTX_H
16
Justin Holewinski2097d702011-09-29 14:25:48 +000017#include "MCTargetDesc/PTXBaseInfo.h"
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000018#include "llvm/Target/TargetMachine.h"
19
20namespace llvm {
Justin Holewinskid8e4ed22011-09-28 14:32:04 +000021 class MachineInstr;
22 class MCInst;
23 class PTXAsmPrinter;
Eric Christopher50880d02010-09-18 18:52:28 +000024 class PTXTargetMachine;
25 class FunctionPass;
26
27 FunctionPass *createPTXISelDag(PTXTargetMachine &TM,
28 CodeGenOpt::Level OptLevel);
29
Che-Liang Chiou3278c422010-11-08 03:00:52 +000030 FunctionPass *createPTXMFInfoExtract(PTXTargetMachine &TM,
31 CodeGenOpt::Level OptLevel);
32
Justin Holewinskic90e1492011-09-30 12:54:43 +000033 FunctionPass *createPTXFPRoundingModePass(PTXTargetMachine &TM,
34 CodeGenOpt::Level OptLevel);
35
Justin Holewinski247ee002011-09-22 16:45:33 +000036 FunctionPass *createPTXRegisterAllocator();
37
Justin Holewinskid8e4ed22011-09-28 14:32:04 +000038 void LowerPTXMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
39 PTXAsmPrinter &AP);
40
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000041} // namespace llvm;
42
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000043#endif // PTX_H