summaryrefslogtreecommitdiff
path: root/lib/Target/PTX/PTXMachineFunctionInfo.h
diff options
context:
space:
mode:
authorJustin Holewinski <justin.holewinski@gmail.com>2011-08-09 17:36:31 +0000
committerJustin Holewinski <justin.holewinski@gmail.com>2011-08-09 17:36:31 +0000
commit4bdd4ed5647f2f9a7b0ccdf6aba920b08ef7b153 (patch)
treeb22c218f4dcf3298477d24d0e0f25edb1cf88bf5 /lib/Target/PTX/PTXMachineFunctionInfo.h
parent6d1fd0b979cb88809ebb77a24f4da69e1d67606b (diff)
downloadllvm-4bdd4ed5647f2f9a7b0ccdf6aba920b08ef7b153.tar.gz
llvm-4bdd4ed5647f2f9a7b0ccdf6aba920b08ef7b153.tar.bz2
llvm-4bdd4ed5647f2f9a7b0ccdf6aba920b08ef7b153.tar.xz
PTX: Add initial support for device function calls
- Calls are supported on SM 2.0+ for function with no return values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137125 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PTX/PTXMachineFunctionInfo.h')
-rw-r--r--lib/Target/PTX/PTXMachineFunctionInfo.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Target/PTX/PTXMachineFunctionInfo.h b/lib/Target/PTX/PTXMachineFunctionInfo.h
index 9d65f5bd1a..a3b0f324fe 100644
--- a/lib/Target/PTX/PTXMachineFunctionInfo.h
+++ b/lib/Target/PTX/PTXMachineFunctionInfo.h
@@ -27,6 +27,7 @@ private:
bool is_kernel;
std::vector<unsigned> reg_arg, reg_local_var;
std::vector<unsigned> reg_ret;
+ std::vector<unsigned> call_params;
bool _isDoneAddArg;
public:
@@ -56,6 +57,7 @@ public:
typedef std::vector<unsigned>::const_iterator reg_iterator;
typedef std::vector<unsigned>::const_reverse_iterator reg_reverse_iterator;
typedef std::vector<unsigned>::const_iterator ret_iterator;
+ typedef std::vector<unsigned>::const_iterator param_iterator;
bool argRegEmpty() const { return reg_arg.empty(); }
int getNumArg() const { return reg_arg.size(); }
@@ -73,6 +75,13 @@ public:
ret_iterator retRegBegin() const { return reg_ret.begin(); }
ret_iterator retRegEnd() const { return reg_ret.end(); }
+ param_iterator paramBegin() const { return call_params.begin(); }
+ param_iterator paramEnd() const { return call_params.end(); }
+ unsigned getNextParam(unsigned size) {
+ call_params.push_back(size);
+ return call_params.size()-1;
+ }
+
bool isArgReg(unsigned reg) const {
return std::find(reg_arg.begin(), reg_arg.end(), reg) != reg_arg.end();
}