Effective function merging in the ssa form

RCO Rocha, P Petoumenos, Z Wang, M Cole… - Proceedings of the 41st …, 2020 - dl.acm.org
Function merging is an important optimization for reducing code size. This technique
eliminates redundant code across functions by merging them into a single function. While …

Function merging by sequence alignment

RCO Rocha, P Petoumenos, Z Wang… - 2019 IEEE/ACM …, 2019 - ieeexplore.ieee.org
Resource-constrained devices for embedded systems are becoming increasingly important.
In such systems, memory is highly restrictive, making code size in most cases even more …

HyFM: Function merging for free

RCO Rocha, P Petoumenos, Z Wang, M Cole… - Proceedings of the …, 2021 - dl.acm.org
Function merging is an important optimization for reducing code size. It merges multiple
functions into a single one, eliminating duplicate code among them. The existing state-of-the …

Vectorization-aware loop unrolling with seed forwarding

RCO Rocha, V Porpodas, P Petoumenos… - Proceedings of the 29th …, 2020 - dl.acm.org
Loop unrolling is a widely adopted loop transformation, commonly used for enabling
subsequent optimizations. Straight-line-code vectorization (SLP) is an optimization that …

Loop rolling for code size reduction

RCO Rocha, P Petoumenos, B Franke… - 2022 IEEE/ACM …, 2022 - ieeexplore.ieee.org
Code size is critical for resource-constrained devices, where memory and storage are
limited. Compilers, therefore, should offer optimizations aimed at code reduction. One such …

VW-SLP: auto-vectorization with adaptive vector width

V Porpodas, RCO Rocha, LFW Góes - Proceedings of the 27th …, 2018 - dl.acm.org
Auto-vectorization techniques allow the compiler to automatically generate SIMD vector
code out of scalar code. SLP is a commonly-used algorithm for converting straight-line code …

Super-Node SLP: Optimized vectorization for code sequences containing operators and their inverse elements

V Porpodas, RCO Rocha, E Brevnov… - 2019 IEEE/ACM …, 2019 - ieeexplore.ieee.org
SLP Auto-vectorization converts straight-line code into vector code. It scans input code for
groups of instructions that can be combined into vectors and replaces them with their …

Custom High-Performance Vector Code Generation for Data-Specific Sparse Computations

M Horro, LN Pouchet, G Rodríguez… - Proceedings of the …, 2022 - dl.acm.org
Sparse computations, such as sparse matrix-dense vector multiplication, are notoriously
hard to optimize due to their irregularity and memory-boundedness. Solutions to improve the …

Function/kernel vectorization via loop vectorizer

M Masten, E Tyurin, K Mitropoulou… - 2018 IEEE/ACM 5th …, 2018 - ieeexplore.ieee.org
Currently, there are three vectorizers in the LLVM trunk: Loop Vectorizer, SLP Vectorizer,
and Load-Store Vectorizer. There is a need for vectorizing functions/kernels: 1) Function …

Autovesk: Automatic vectorized code generation from unstructured static kernels using graph transformations

H Tayeb, L Paillat, B Bramas - ACM Transactions on Architecture and …, 2023 - dl.acm.org
Leveraging the SIMD capability of modern CPU architectures is mandatory to take full
advantage of their increased performance. To exploit this capability, binary executables …