Explain loop-invariant code motion, Computer Engineering

Assignment Help:

Explain briefly Loop-invariant code motion of the commonly used code optimization techniques.

Loop-invariant code motion

If a quantity is calculated inside a loop during iteration and its value is similar for iteration, this can vastly improve efficiency to hoist this outside the loop and calculate its value just once before the loop begins. It is particularly significant with the address-calculation expressions generated through loops over arrays. For accurate implementation, such technique must be utilized with loop inversion, since not all code is safe to be hoisted outside the loop.

For illustration:

 for (i=1; i≤10, i++){

x=y*2-(1)

.

.

.

}

statement 1 can be hoisted outside the loop assuming value of x and y does not modify in the loop.


Related Discussions:- Explain loop-invariant code motion

What is an assembler, An assembler is? Ans. An assembler is Machine dep...

An assembler is? Ans. An assembler is Machine dependant.

Define various classes of interrupts, Q. Define Various classes of Interrup...

Q. Define Various classes of Interrupts? Figure below gives list of some common interrupts and events which causes occurrence of those interrupts. Figure: Various clas

Data structure, How does dynamic memory allocation help in managing data

How does dynamic memory allocation help in managing data

Explain the life cycle of a process, Explain the life cycle of a process ...

Explain the life cycle of a process Each procedure has a life cycle, which consists of execution, creation and termination phases of the procedure.  A method may create severa

How the characters used in operand data type, Q. How the Characters used in...

Q. How the Characters used in operand data type? A common form of data is character or text strings. Characters are signified in numeric form mostly in ASCII (American Standard

Explain instruction level of parallel processing, Instruction Level It ...

Instruction Level It refers to condition where different instructions of a program are implemented by different processing elements. Most processors have various execution unit

Cache misses - computer architecture, Cache Misses Compulsory misse...

Cache Misses Compulsory misses -  it is caused by initial access to a block that has never been in the cache (also called cold start misses Capacity miss - it is cause

How address resolution is performed with table lookup, How address resoluti...

How address resolution is performed with table lookup? Explain with the help of a suitable example. The approach of table lookup to address resolution needs a data structure wh

Why is translation look-aside buffers important, Why is Translation Look-as...

Why is Translation Look-aside Buffers (TLBs) important? The implementation of page-table is completed in the following manner: Page table is maintained in main memory.

What do you mean by stack unwinding in c++, Stack unwinding in C++ is a pro...

Stack unwinding in C++ is a process during exception handling when the destructor is known for all local objects the place where the exception was thrown and where it is caught.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd