mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-02 08:26:39 +00:00
PTX: Always use registers for return values, but use .param space for device
parameters if SM >= 2.0 - Update test cases to be more robust against register allocation changes - Bump up the number of registers to 128 per type - Include Python script to re-generate register file with any number of registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133736 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -26,7 +26,7 @@ class PTXMachineFunctionInfo : public MachineFunctionInfo {
|
||||
private:
|
||||
bool is_kernel;
|
||||
std::vector<unsigned> reg_arg, reg_local_var;
|
||||
DenseSet<unsigned> reg_ret;
|
||||
std::vector<unsigned> reg_ret;
|
||||
bool _isDoneAddArg;
|
||||
|
||||
public:
|
||||
@@ -40,7 +40,11 @@ public:
|
||||
|
||||
void addArgReg(unsigned reg) { reg_arg.push_back(reg); }
|
||||
void addLocalVarReg(unsigned reg) { reg_local_var.push_back(reg); }
|
||||
void addRetReg(unsigned reg) { reg_ret.insert(reg); }
|
||||
void addRetReg(unsigned reg) {
|
||||
if (!isRetReg(reg)) {
|
||||
reg_ret.push_back(reg);
|
||||
}
|
||||
}
|
||||
|
||||
void doneAddArg(void) {
|
||||
_isDoneAddArg = true;
|
||||
@@ -51,7 +55,7 @@ public:
|
||||
|
||||
typedef std::vector<unsigned>::const_iterator reg_iterator;
|
||||
typedef std::vector<unsigned>::const_reverse_iterator reg_reverse_iterator;
|
||||
typedef DenseSet<unsigned>::const_iterator ret_iterator;
|
||||
typedef std::vector<unsigned>::const_iterator ret_iterator;
|
||||
|
||||
bool argRegEmpty() const { return reg_arg.empty(); }
|
||||
int getNumArg() const { return reg_arg.size(); }
|
||||
|
Reference in New Issue
Block a user