blob: 19385ba1ff8c24ad9b9d52fc55ee86af874107d2 [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
18#include "llvm/Target/TargetMachine.h"
19
20namespace llvm {
Eric Christopher50880d02010-09-18 18:52:28 +000021 class PTXTargetMachine;
22 class FunctionPass;
23
Che-Liang Chioud34f19f2010-12-30 10:41:27 +000024 namespace PTX {
25 enum StateSpace {
26 GLOBAL = 0, // default to global state space
27 CONSTANT = 1,
28 LOCAL = 2,
29 PARAMETER = 3,
30 SHARED = 4
31 };
32 } // namespace PTX
33
Eric Christopher50880d02010-09-18 18:52:28 +000034 FunctionPass *createPTXISelDag(PTXTargetMachine &TM,
35 CodeGenOpt::Level OptLevel);
36
Che-Liang Chiou3278c422010-11-08 03:00:52 +000037 FunctionPass *createPTXMFInfoExtract(PTXTargetMachine &TM,
38 CodeGenOpt::Level OptLevel);
39
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000040 extern Target ThePTXTarget;
41} // namespace llvm;
42
Eric Christopher50880d02010-09-18 18:52:28 +000043// Defines symbolic names for PTX registers.
44#include "PTXGenRegisterNames.inc"
45
46// Defines symbolic names for the PTX instructions.
47#include "PTXGenInstrNames.inc"
48
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000049#endif // PTX_H