loading...
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
12th International Conference on Parallel Architectures and Compilation Techniques (PACT'03)
Resolving Register Bank Conflicts for a Network Processor
New Orleans, Louisiana
September 27-October 01
ISBN: 0-7695-2021-9
Xiaotong Zhuang, Georgia Institute of Technology
Santosh Pande, Georgia Institute of Technology

This paper discusses a register bank assignment problem for a popular network processor — Intel's IXP. Due to limited data paths, the network processor has a restriction that the source operands of most ALU instructions must be resident in two different banks. This results in higher register pressure and puts additional burden on the register allocator. The current vendor-provided register allocator leaves the problem to users, leading to poor compilation interface and low quality code.

This paper presents three different approaches for performing register allocation and bank assignment. Bank assignment can be performed before register allocation, can be performed after register allocation or it could be combined with the register allocation. We propose a structure called register conflict graph (RCG) to capture the dual-bank constraints. To further improve the effectiveness of the algorithm, we also propose some enabling transformations.

Our results show the phase ordering of first doing register allocation and then assigning banks can reduce the number of spills with affordable costs of additional instructions.

Citation:
Xiaotong Zhuang, Santosh Pande, "Resolving Register Bank Conflicts for a Network Processor," pact, pp.269, 12th International Conference on Parallel Architectures and Compilation Techniques (PACT'03), 2003
Usage of this product signifies your acceptance of the Terms of Use.