Patent ID: 8832671
Filing Date: 2014-09-09
Classification: G06F

Abstract:
1. A method for assigning variables to physical registers stored in a multi-bank register file, comprising: computing a Register Conflict Graph (RCG) for an input program that includes variables represented as nodes in the RCG; assigning at least three banks of the multi-bank register file to the nodes in the RCG; allocating physical registers for each of the at least three banks enabling input operands to be read from the multi-bank register file in a single access cycle for each instruction that specifies the input operands to produce a conflict-free register allocation, wherein a first physical register of the physical registers is allocated to a first bank of the multi-bank registers file and is configured to store a first operand to be received at a first input of a function unit configured to perform an operation specified by the instruction; determining that the first bank of the multi-bank register file is not coupled to the first input of the function unit; inserting a copy instruction to align the first operand to a second bank of the multi-bank register file, the second bank being coupled to the first input of the function unit; and generating an output program corresponding to the input program that uses the conflict-free register allocation.