Codestitcher: Inter-Procedural Basic Block Layout Optimization

10/01/2018
by   Rahman Lavaee, et al.
0

Modern software executes a large amount of code. Previous techniques of code layout optimization were developed one or two decades ago and have become inadequate to cope with the scale and complexity of new types of applications such as compilers, browsers, interpreters, language VMs and shared libraries. This paper presents Codestitcher, an inter-procedural basic block code layout optimizer which reorders basic blocks in an executable to benefit from better cache and TLB performance. Codestitcher provides a hierarchical framework which can be used to improve locality in various layers of the memory hierarchy. Our evaluation shows that Codestitcher improves the performance of the original program by 3% to 25% (on average, by 10%) on 5 widely used applications with large code sizes: MySQL, Clang, Firefox, Apache, and Python. It gives an additional improvement of 4% over LLVM's PGO and 3% over PGO combined with the best function reordering technique.

READ FULL TEXT
research
07/18/2018

BOLT: A Practical Binary Optimizer for Data Centers and Beyond

Performance optimization for large-scale applications has recently becom...
research
02/16/2022

BB-ML: Basic Block Performance Prediction using Machine Learning Techniques

Recent years have seen the adoption of Machine Learning (ML) techniques ...
research
05/23/2018

On the Formal Model for IEC 61499 Composite Function Blocks

The applications for IEC 61499 that is standard architecture for develop...
research
11/17/2022

Optimizing Function Layout for Mobile Applications

Function layout, also referred to as function reordering or function pla...
research
05/13/2020

Semantic prefetching using forecast slices

Modern prefetchers identify memory access patterns in order to predict f...
research
09/12/2018

Improved Basic Block Reordering

Basic block reordering is an important step for profile-guided binary op...
research
07/20/2021

PandaPy: A Wrapper Around Structured Arrays to Mimic ‘Structs’ in the C Language

Similar to the original Pandas project, PandaPy is developed to improve ...

Please sign up or login with your details

Forgot password? Click here to reset