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
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

05/09/2018

A Proposal for Loop-Transformation Pragmas

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

Design and Use of Loop-Transformation Pragmas

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

Loop Optimization Framework

The LLVM compiler framework supports a selection of loop transformations...
02/24/2021

Learning to Make Compiler Optimizations More Effective

Because loops execute their body many times, compiler developers place m...
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...
07/16/2021

Loop Transformations using Clang's Abstract Syntax Tree

OpenMP 5.1 introduced the first loop nest transformation directives unro...
10/22/2020

Exploring the Impact of Affine Loop Transformations in Qubit Allocation

Most quantum compiler transformations and qubit allocation techniques to...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.