Title
A framework for parallelizing load/stores on embedded processors
Abstract
Many modern embedded processors (esp. DSPs) support partitioned memory banks (also called X-Y memory or dual bank memory) along with parallel load/store instructions to achieve code density and/or performance. In order to effectively utilize the parallel load/store instructions, the compiler must partition the memory resident values into X or Y bank. This paper gives a post-register allocation solution to merge the generated load/store instructions into their parallel counterparts. Simultaneously, our framework performs allocation of values to X or Y memory banks.We first remove as many load/stores and register-register moves through an excellent iterated coalescing based register allocator by Appel and George [14]. We then attempt to maximally parallelize the generated load/stores using a multi-pass approach with minimalgrowth in terms of memory requirements. The first phase of our approach attempts the merger of load stores without replication of values in memory. We model this problem in terms of a graph coloring problem in which each value is colored X or Y. We then construct a Motion Scheduling Graph (MSG) based on the range of motion for each load/store instruction. MSG reflects potential instructions which could be merged. We propose a notion of pseudo-fixedboundaries so that the load/store movement is minimally affected by register dependencies. We prove that the coloring problem for MSG is NP-complete. We then propose a heuristic solution, which minimally replicates load/stores on different control flow paths if necessary.Finally, the remaining load/stores are tackled by register rematerialization and local conflicts are eliminated. Registers are re-assigned to create motion ranges if opportunities are found for merger which are hindered by local assignment of registers. We show that our framework results in parallelization of a large number of load/stores without much growth in data and code segments.
Year
DOI
Venue
2002
10.1109/PACT.2002.1106005
IEEE PACT
Keywords
Field
DocType
embedded systems,graph colouring,optimising compilers,simulated annealing,NP-complete problem,X-Y memory,dual bank memory,embedded processors,graph coloring problem,iterated coalescing based register allocator,load/stores parallelization,memory resident values,partitioned memory banks
Memory bank,Heuristic,Instruction scheduling,Computer science,Control flow,Parallel computing,Load/store architecture,Real-time computing,Allocator,Rematerialization,Graph coloring
Conference
ISSN
ISBN
Citations 
1089-795X
0-7695-1620-3
10
PageRank 
References 
Authors
0.59
7
3
Name
Order
Citations
PageRank
Xiaotong Zhuang1100.59
Santosh Pande2100.59
John S. Greenland, Jr.3100.59