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