1 //===- PTXParamManager.cpp - Manager for .param variables -------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file implements the PTXParamManager class.
12 //===----------------------------------------------------------------------===//
15 #include "PTXParamManager.h"
16 #include "llvm/ADT/StringExtras.h"
20 PTXParamManager::PTXParamManager() {
23 unsigned PTXParamManager::addArgumentParam(unsigned Size) {
25 Param.Type = PTX_PARAM_TYPE_ARGUMENT;
30 Name += utostr(ArgumentParams.size()+1);
33 unsigned Index = AllParams.size();
34 AllParams[Index] = Param;
35 ArgumentParams.push_back(Index);
40 unsigned PTXParamManager::addReturnParam(unsigned Size) {
42 Param.Type = PTX_PARAM_TYPE_RETURN;
47 Name += utostr(ReturnParams.size()+1);
50 unsigned Index = AllParams.size();
51 AllParams[Index] = Param;
52 ReturnParams.push_back(Index);
57 unsigned PTXParamManager::addLocalParam(unsigned Size) {
59 Param.Type = PTX_PARAM_TYPE_LOCAL;
63 Name = "__localparam_";
64 Name += utostr(LocalParams.size()+1);
67 unsigned Index = AllParams.size();
68 AllParams[Index] = Param;
69 LocalParams.push_back(Index);