Patent ID: 7469404

Claim:
A method to allocate an operand into a register bank, the method comprising: identifying all candidate banks for the operand from three or more register banks, said identifying comprising: identifying all occurrences of the operand, classifying each occurrence into one of a plurality of classes, each class having at least one associated register bank, comparing classes for intersections of associated sets of register banks, and generating an intersection set based on the intersections of associated sets of register banks; determining whether a conflict exists between the candidate banks; resolving any conflicts; and allocating the operand to the register bank, said allocating comprising: determining whether a single occurrence of an operand appears as both operands for an instruction, determining whether two operands for a single arithmetic logic unit instruction appear in a single general purpose register bank, resolving conflicts if a single occurrence of an operand appears both operands for an instruction by using a symbolic register conflict graph, and resolving conflicts if two operands for a single arithmetic logic unit instruction appear in a single general purpose register bank by using graph coloring.