Loop Transformations using Clang's Abstract Syntax Tree

07/16/2021
by   Michael Kruse, et al.
0

OpenMP 5.1 introduced the first loop nest transformation directives unroll and tile, and more are expected to be included in OpenMP 6.0. We discuss the two Abstract Syntax Tree (AST) representations used by Clang's implementation that is currently under development. The first representation is designed for compatibility with the existing implementation and stores the transformed loop nest in a shadow AST next to the syntactical AST. The second representation introduces a new meta AST-node OMPCanonicalLoop that guarantees that the semantic requirements of an OpenMP loop are met, and a CanonicalLoopInfo type that the OpenMPIRBuilder uses to represent literal and transformed loops. This second approach provides a better abstraction of loop semantics, removes the need for shadow AST nodes that are only relevant for code generation, allows sharing the implementation with other front-ends such as flang, but depends on the OpenMPIRBuilder which is currently under development.

READ FULL TEXT
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
05/09/2018

A Proposal for Loop-Transformation Pragmas

Pragmas for loop transformations, such as unrolling, are implemented in ...
research
05/10/2021

Customized Monte Carlo Tree Search for LLVM/Polly's Composable Loop Optimization Transformations

Polly is the LLVM project's polyhedral loop nest optimizer. Recently, us...
research
11/01/2018

User-Directed Loop-Transformations in Clang

Directives for the compiler such as pragmas can help programmers to sepa...
research
04/24/2020

Predicting Vulnerability In Large Codebases With Deep Code Representation

Currently, while software engineers write code for various modules, quit...
research
04/25/2017

Abstract Syntax Networks for Code Generation and Semantic Parsing

Tasks like code generation and semantic parsing require mapping unstruct...
research
05/27/2021

A Variational Loop Shrinking Analogy for Handle and Tunnel Detection and Reeb Graph Construction on Surfaces

The humble loop shrinking property played a central role in the inceptio...

Please sign up or login with your details

Forgot password? Click here to reset