Integer programming approaches to simultaneous scheduling and register allocation on the C6X Andrew Gilpin, Rebecca Hutchinson April 12, 2005 Project Outline • Formulate scheduling as an ILP. • Sanity check formulation using CPLEX to solve. • Translate Pegasus format to ILP; translate CPLEX solution back to Pegasus. • Formulate and incorporate register allocation into the ILP and translation. ILP Formulation (examples of basic constraints) ILP Formulation (examples of dealing with the crosspath) Modeling implications in ILP Implementation Progress • Formulation complete, implementation halfway done • Taking advantage of new technology – Latest version of CPLEX allows “warmstarts” – Allows us to use list-scheduling solution to “seed” the ILP, hopefully yielding faster solve times • Hopefully we can extend this model to include register allocation as well Proposed evaluation • Compare schedule lengths of our algorithm to schedule sizes from Leuper’s algorithm – Test data: functions in test.c • Also compare compile times – We expect to be slower, but how much? • Compare running times in simulator References • Wilken, Liu, and Heffernan. “Optimal Instruction Scheulding Using Integer Programming.” PLDI 2000. • Chang, Chen, and King. “Using Integer Linear Programming for Instruction Scheduling and Register Allocation in Multi-issue Processors.” Computers and Mathematics with Applications, Vol 34(9):1-14. • Goodwin and Wilken. “Optimal and Near-optimal Global Register Allocation Using 0-1 Integer Programming.” Software-Practice and Experience, Vol 26(8), 929-965, August 1996. • Texas Instruments: TMS320C62xx CPU and Instruction Set Reference Guide, www.ti.com/sc/c6x, 1998
© Copyright 2026 Paperzz