EPICOpt
Open research topics for students /
Mögliche Themen für Praktika und Diplomarbeiten
PBQP Instruction Selection für TI C64x+
Das LLVM Backend für TI C64x+ verwendet nur einen kleinen Teil der verfügbaren Instruktionen. Basierend auf einer Auswahl an Benchmarks (DSPStone, MiBench subset) sollen weitere Instruktionen hinzugefügt werden um die Effizienz des generierten Codes zu erhöhen.
Beispiele für Instruktionen:
- Load/Store Adressarithmetik
- DOTP (dot-product)
- Vektor/Packed Arithmetik
Umsetzung:
- Portieren des Vorhandenen PBQP Selektors
- Arbeit an "stabiler" LLVM/TI Version am Institut
- Tests mit dem TI Simulator.
TI C64x+: Integrated scheduling and cluster assignment
Over time, many algorithms have been proposed to solve scheduling on clustered VLIW processors. Some suffer from so-called phase-ordering issues, where the decisions taken
during cluster assignment hamper scheduling or vice versa. Others are too complex and time-consuming to be applicable for use in a production compiler.
During this project, an existing
integrated cluster assignment algorithm should be integrated with our LLVM compiler backend for the
TI C64x+,
and the performance compared to the phase-ordered approach currently in place.
Further reading:
Unified Assign and Schedule: at ieee.org
Cluster assignment based graph partitioning (includes survey of many existing algorithms): at acm.org
Further topics
Please contact
us for details.
- Use Polly to vectorize code for the C64x+.
Register allocation directly on SSA form for LLVM.
Extend the C64x+ backend to support register pairs for 64-bit datatype support.
- Write an ELF assembly emitter for the C64x+ backend.
- Non-destructive optimizations using Equality Saturation with LLVM.
- Emission of debug information conform to the C64x+ assembler.
- Implementation of machine loop analysis/transformation passes.
- Advanced machine code region formation as input to optimizers.
- Extend existing modulo scheduler by cluster assignment heuristics.
- Improve instruction selection to exploit C64x+ addressing modes.
- Get our LLVM/TI C64x+ toolchain running on BeagleBoard.
- Evaluation of benchmarks on BeagleBoard's C64x+ DSP.
Feel free to contact
us for more details.