User-Directed Loop-Transformations in Clang

11/01/2018
by   Michael Kruse, et al.
0

Directives for the compiler such as pragmas can help programmers to separate an algorithm's semantics from its optimization. This keeps the code understandable and easier to optimize for different platforms. Simple transformations such as loop unrolling are already implemented in most mainstream compilers. We recently submitted a proposal to add generalized loop transformations to the OpenMP standard. We are also working on an implementation in LLVM/Clang/Polly to show its feasibility and usefulness. The current prototype allows applying patterns common to matrix-matrix multiplication optimizations.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/09/2018

A Proposal for Loop-Transformation Pragmas

Pragmas for loop transformations, such as unrolling, are implemented in ...
research
10/06/2019

Design and Use of Loop-Transformation Pragmas

Adding a pragma directive into the source code is arguably easier than r...
research
11/01/2018

Loop Optimization Framework

The LLVM compiler framework supports a selection of loop transformations...
research
10/13/2020

Autotuning Search Space for Loop Transformations

One of the challenges for optimizing compilers is to predict whether app...
research
02/28/2018

Technical Report about Tiramisu: a Three-Layered Abstraction for Hiding Hardware Complexity from DSL Compilers

High-performance DSL developers work hard to take advantage of modern ha...
research
07/16/2021

Loop Transformations using Clang's Abstract Syntax Tree

OpenMP 5.1 introduced the first loop nest transformation directives unro...
research
03/14/2023

Performance Embeddings: A Similarity-based Approach to Automatic Performance Optimization

Performance optimization is an increasingly challenging but often repeti...

Please sign up or login with your details

Forgot password? Click here to reset