File:Preventing dependency stalls in assembled code with code movement.jpg

Original file (960 × 720 pixels, file size: 58 KB, MIME type: image/jpeg)

Summary

Description
English: Given the linear intermediate representation 'a', an optimizing compiler might try to space out instructions with dependencies to prevent data stalls in the processor during execution, particularly when an instruction might take more than one clock cycle to complete (like division or multiplication.) This is called code hoisting or code movement. Note that these sorts of optimizations are generally outdated due to out-of-order execution, but are still useful in preventing register spills.
Date
Source Own work
Author Mooshua1857

Licensing

I, the copyright holder of this work, hereby publish it under the following license:
Creative Commons CC-Zero This file is made available under the Creative Commons CC0 1.0 Universal Public Domain Dedication.
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of their rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.

Captions

A graph demonstrating local code movement over IR in an imaginary compiler

Items portrayed in this file

depicts

27 February 2022

image/jpeg

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current20:31, 27 February 2022Thumbnail for version as of 20:31, 27 February 2022960 × 720 (58 KB)MooshberryUploaded own work with UploadWizard

The following page uses this file: