We gratefully acknowledge support from
the Simons Foundation and member institutions.
Full-text links:

Download:

Current browse context:

cs.PL

Change to browse by:

cs

References & Citations

DBLP - CS Bibliography

Bookmark

(what is this?)
CiteULike logo BibSonomy logo Mendeley logo del.icio.us logo Digg logo Reddit logo ScienceWISE logo

Computer Science > Programming Languages

Title: Loop Transformations using Clang's Abstract Syntax Tree

Authors: Michael Kruse
Abstract: 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.
Comments: LLPP'21 ( The First Workshop on LLVM in Parallel Processing) preprint
Subjects: Programming Languages (cs.PL)
Cite as: arXiv:2107.08132 [cs.PL]
  (or arXiv:2107.08132v1 [cs.PL] for this version)

Submission history

From: Michael Kruse [view email]
[v1] Fri, 16 Jul 2021 21:55:06 GMT (112kb,D)

Link back to: arXiv, form interface, contact.