Live briefing
Everything about Loop unrolling
Loop transformation technique
Loop unrolling, also known as loop unwinding, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of its binary size, which is an approach known as space–time tradeoff. The transformation can be undertaken manually by the programmer or by an optimizing compiler. On modern processors, loop unrolling is often counterproductive, as the increased code size can cause more cache misses; cf. Duff's device. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Loop unrollingA 5-minute orientation
- Skim a recent paper: A Comprehensive Survey on Loop Unrolling Technique In Code OptimizationInfluential work since 2022
- Pick up a classic book: Even Faster Web SitesThe most-reprinted book on the subject
- Read the landmark paper: Unrolling loops in fortranCited 78 times
- Go sideways: Branch tableA closely related topic
- Go sideways: Strength reductionA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Unrolling loops in fortran
TL-HLS: Methodology for Low Cost Hardware Trojan Security Aware Scheduling With Optimal Loop Unrolling Factor During High Level Synthesis
Optimized Unrolling of Nested Loops
High performance sparse static solver in finite element analyses with loop-unrolling
Optimal Loop Unrolling and Shifting for Reconfigurable Architectures
Swarm‐inspired exploration of architecture and unrolling factors for nested‐loop‐based application in architectural synthesis
Research of Register Pressure Aware Loop Unrolling Optimizations for Compiler
Combining loop unrolling strategies and code predication to reduce the worst-case execution time of real-time software
🆕 Influential since 2022
A Comprehensive Survey on Loop Unrolling Technique In Code Optimization
A 500MS/s 9-bit two-step SAR ADC with loop-unrolling
Machine Learning-Driven GCC Loop Unrolling Optimization: Compiler Performance Enhancement Strategy Based on XGBoost
LUAEMA: A Loop Unrolling Approach Extending Memory Accessing for Vector Very-Long-Instruction-Word Digital Signal Processor with Multiple Register Files
Compiler-based loop unrolling optimization for dual-SIMD extensions
📚 Books worth reading
Even Faster Web SitesSteve Souders · 2009
Programming Language PragmaticsMichael Lee Scott · 2009
Microcomputer systemsRichard C. Seals · 1993
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Branch table In computer programming, a branch table or jump table is a method of transferring program control (branching) to another part of a program (or a different…
- Strength reduction In compiler construction, strength reduction is a compiler optimization where expensive operations are replaced with equivalent but less expensive operations…
- Software pipelining In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Software pipelining is…
- Optimizing compiler An optimizing compiler is a compiler designed to generate code that is optimized in aspects such as minimizing program execution time, memory usage, storage…
- Loop optimization In compiler theory, loop optimization is the process of increasing execution speed and reducing the overheads associated with loops. It plays an important…
- Word addressing In computer architecture, word addressing means that addresses of memory on a computer uniquely identify words of memory. It is usually used in contrast…
- Pointer (computer programming) I do consider assignment statements and pointer variables to be among computer science's "most valuable treasures." — Donald Knuth, Structured Programming…
- Duff's device In the C programming language, Duff's device is a way of manually implementing loop unrolling by interleaving two syntactic constructs of C: the do-while…