Publication | Closed Access
Taming the IXP network processor
37
Citations
13
References
2003
Year
Unknown Venue
Mathematical ProgrammingEngineeringHigh Performance Computer NetworkCompiler TechnologyComputer ArchitectureComputational ComplexityIxp Network ProcessorHardware SecurityBack EndNew LanguageCompilersCombinatorial OptimizationParallel ComputingInstruction-level ParallelismParallelizing CompilerCompiler SupportComputer EngineeringRegister AggregatesHigh-speed NetworkingComputer ScienceOptimizing CompilerInteger ProgrammingInternet ProtocolProgram AnalysisFormal MethodsParallel Programming
We compile Nova, a new language designed for writing network processing applications, using a back end based on integer-linear programming (ILP) for register allocation, optimal bank assignment, and spills. The compiler's optimizer employs CPS as its intermediate representation; some of the invariants that this IR guarantees are essential for the formulation of a practical ILP model.Appel and George used a similar ILP-based technique for the IA32 to decide which variables reside in registers but deferred the actual assignment of colors to a later phase. We demonstrate how to carry over their idea to an architecture with many more banks, register aggregates, variables with multiple simultaneous register assignments, and, very importantly, one where bank- and register-assignment cannot be done in isolation from each other. Our approach performs well in practise---without causing an explosion in size or solve time of the generated integer linear programs.
| Year | Citations | |
|---|---|---|
Page 1
Page 1