blob: 28cab2429c81c5abc7e2533a46c1230930ad7040 [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
Evan Chengc60f9b72011-07-14 20:59:42 +000018#include "MCTargetDesc/PTXMCTargetDesc.h"
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000019#include "llvm/Target/TargetMachine.h"
20
21namespace llvm {
Eric Christopher50880d02010-09-18 18:52:28 +000022 class PTXTargetMachine;
23 class FunctionPass;
24
Che-Liang Chioud34f19f2010-12-30 10:41:27 +000025 namespace PTX {
26 enum StateSpace {
27 GLOBAL = 0, // default to global state space
28 CONSTANT = 1,
29 LOCAL = 2,
30 PARAMETER = 3,
31 SHARED = 4
32 };
Che-Liang Chiouc2ec0f92011-03-13 17:26:00 +000033
34 enum Predicate {
Che-Liang Chiouf78847e2011-03-14 11:26:01 +000035 PRED_NORMAL = 0,
Che-Liang Chiouc2ec0f92011-03-13 17:26:00 +000036 PRED_NEGATE = 1
37 };
Che-Liang Chioud34f19f2010-12-30 10:41:27 +000038 } // namespace PTX
39
Eric Christopher50880d02010-09-18 18:52:28 +000040 FunctionPass *createPTXISelDag(PTXTargetMachine &TM,
41 CodeGenOpt::Level OptLevel);
42
Che-Liang Chiou3278c422010-11-08 03:00:52 +000043 FunctionPass *createPTXMFInfoExtract(PTXTargetMachine &TM,
44 CodeGenOpt::Level OptLevel);
45
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000046} // namespace llvm;
47
Nick Lewyckyf7a3c502010-09-07 18:14:24 +000048#endif // PTX_H