diff options
author | Justin Holewinski <justin.holewinski@gmail.com> | 2011-08-09 17:36:31 +0000 |
---|---|---|
committer | Justin Holewinski <justin.holewinski@gmail.com> | 2011-08-09 17:36:31 +0000 |
commit | 4bdd4ed5647f2f9a7b0ccdf6aba920b08ef7b153 (patch) | |
tree | b22c218f4dcf3298477d24d0e0f25edb1cf88bf5 /lib/Target/PTX/PTXMachineFunctionInfo.h | |
parent | 6d1fd0b979cb88809ebb77a24f4da69e1d67606b (diff) | |
download | llvm-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.h | 9 |
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(); } |