en.unionpedia.org

Loop unrolling, the Glossary

Index Loop unrolling

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.[1]

Table of Contents

  1. 33 relations: Assembly language, Base address, Binary file, Branch predictor, Branch table, C (programming language), Code bloat, Don't repeat yourself, Dot product, Duff's device, Formal verification, IBM System/360, Inline expansion, Instruction-level parallelism, Just-in-time compilation, Linux kernel mailing list, Loop fission and fusion, Loop optimization, Loop splitting, Machine code, Macro (computer science), Michael Abrash, Model checking, Optimizing compiler, Out-of-order execution, Overhead (computing), Parallel computing, Pointer (computer programming), Register renaming, Software pipelining, Space–time tradeoff, XFree86, Z/Architecture.

Assembly language

In computer programming, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence between the instructions in the language and the architecture's machine code instructions.

See Loop unrolling and Assembly language

Base address

In computing, a base address is an address serving as a reference point ("base") for other addresses.

See Loop unrolling and Base address

Binary file

A binary file is a computer file that is not a text file.

See Loop unrolling and Binary file

Branch predictor

In computer architecture, a branch predictor is a digital circuit that tries to guess which way a branch (e.g., an if–then–else structure) will go before this is known definitively.

See Loop unrolling and Branch predictor

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 program that may have been dynamically loaded) using a table of branch or jump instructions.

See Loop unrolling and Branch table

C (programming language)

C (pronounced – like the letter c) is a general-purpose programming language.

See Loop unrolling and C (programming language)

Code bloat

In computer programming, code bloat is the production of program code (source code or machine code) that is perceived as unnecessarily long, slow, or otherwise wasteful of resources.

See Loop unrolling and Code bloat

Don't repeat yourself

"Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of information which is likely to change, replacing it with abstractions that are less likely to change, or using data normalization which avoids redundancy in the first place.

See Loop unrolling and Don't repeat yourself

Dot product

In mathematics, the dot product or scalar productThe term scalar product means literally "product with a scalar as a result".

See Loop unrolling and Dot product

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 - loop and a switch statement.

See Loop unrolling and Duff's device

Formal verification

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics.

See Loop unrolling and Formal verification

IBM System/360

The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applications and a complete range of applications from small to large.

See Loop unrolling and IBM System/360

Inline expansion

In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function. Loop unrolling and inline expansion are compiler optimizations.

See Loop unrolling and Inline expansion

Instruction-level parallelism

Instruction-level parallelism (ILP) is the parallel or simultaneous execution of a sequence of instructions in a computer program. Loop unrolling and instruction-level parallelism are parallel computing.

See Loop unrolling and Instruction-level parallelism

Just-in-time compilation

In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is compilation (of computer code) during execution of a program (at run time) rather than before execution.

See Loop unrolling and Just-in-time compilation

Linux kernel mailing list

The Linux kernel mailing list (LKML) is the main electronic mailing list for Linux kernel development, where the majority of the announcements, discussions, debates, and flame wars over the kernel take place.

See Loop unrolling and Linux kernel mailing list

Loop fission and fusion

In computer science, loop fission (or loop distribution) is a compiler optimization in which a loop is broken into multiple loops over the same index range with each taking only a part of the original loop's body. Loop unrolling and loop fission and fusion are compiler optimizations.

See Loop unrolling and Loop fission and fusion

Loop optimization

In compiler theory, loop optimization is the process of increasing execution speed and reducing the overheads associated with loops. Loop unrolling and loop optimization are compiler optimizations.

See Loop unrolling and Loop optimization

Loop splitting

Loop splitting is a compiler optimization technique. Loop unrolling and Loop splitting are compiler optimizations.

See Loop unrolling and Loop splitting

Machine code

In computer programming, machine code is computer code consisting of machine language instructions, which are used to control a computer's central processing unit (CPU).

See Loop unrolling and Machine code

Macro (computer science)

In computer programming, a macro (short for "macro instruction") is a rule or pattern that specifies how a certain input should be mapped to a replacement output.

See Loop unrolling and Macro (computer science)

Michael Abrash

Michael Abrash is an American programmer and technical writer.

See Loop unrolling and Michael Abrash

Model checking

In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification (also known as correctness).

See Loop unrolling and Model checking

Optimizing compiler

An optimizing compiler is a compiler designed to generate code that is optimized in aspects such as minimizing program execution time, memory use, storage size, and power consumption. Loop unrolling and optimizing compiler are compiler optimizations.

See Loop unrolling and Optimizing compiler

Out-of-order execution

In computer engineering, out-of-order execution (or more formally dynamic execution) is a paradigm used in high-performance central processing units to make use of instruction cycles that would otherwise be wasted.

See Loop unrolling and Out-of-order execution

Overhead (computing)

In computer science, overhead is any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to perform a specific task.

See Loop unrolling and Overhead (computing)

Parallel computing

Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously.

See Loop unrolling and Parallel computing

Pointer (computer programming)

In computer science, a pointer is an object in many programming languages that stores a memory address.

See Loop unrolling and Pointer (computer programming)

Register renaming

In computer architecture, register renaming is a technique that abstracts logical registers from physical registers.

See Loop unrolling and Register renaming

Software pipelining

In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Loop unrolling and software pipelining are compiler optimizations.

See Loop unrolling and Software pipelining

Space–time tradeoff

A space–time trade-off, also known as time–memory trade-off or the algorithmic space-time continuum in computer science is a case where an algorithm or program trades increased space usage with decreased time.

See Loop unrolling and Space–time tradeoff

XFree86

XFree86 is an implementation of the X Window System.

See Loop unrolling and XFree86

Z/Architecture

z/Architecture, initially and briefly called ESA Modal Extensions (ESAME), is IBM's 64-bit complex instruction set computer (CISC) instruction set architecture, implemented by its mainframe computers.

See Loop unrolling and Z/Architecture

References

[1] https://en.wikipedia.org/wiki/Loop_unrolling

Also known as Loop unwinding, Unroll loops, Unrolling the loop.