[all-commits] [llvm/llvm-project] 2186a4: [flang] Make the plugin API independent of the dri...

Andrzej WarzyƄski via All-commits all-commits at lists.llvm.org
Fri Apr 22 02:18:27 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2186a4aea0e3e50e51b121d304889349c4e033ef
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2022-04-22 (Fri, 22 Apr 2022)

  Changed paths:
    M flang/docs/FlangDriver.md
    M flang/examples/FlangOmpReport/FlangOmpReport.cpp
    M flang/examples/FlangOmpReport/yaml_summarizer.py
    M flang/examples/PrintFlangFunctionNames/PrintFlangFunctionNames.cpp
    M flang/include/flang/Frontend/FrontendActions.h
    M flang/lib/Frontend/FrontendActions.cpp

  Log Message:
  [flang] Make the plugin API independent of the driver internals

This patch adds a few new member methods in the `PluginParseTreeAction`
frontend action base class. With these new methods, the plugin API
becomes independent of the driver internals. In particular, plugin
writers no longer require the `CompilerInstance.h` header file to access
various driver data structures (instead, they can use newly added

This change is desirable as `CompilerInstance.h` includes various
headers from Clang (both explicitly and implicitly). Some of these
header files are generated at build time (through TableGen) and
including them creates a dependency on some of Clang's build targets.
However, plugins in Flang should not depend on Clang build targets.

Note that plugins might still work fine most of the time, even without
this change and without adding Clang build targets as dependency in
plugin's CMake definition. Indeed, these Clang build targets are often
generated early in the build process. However, that's not guaranteed and
we did notice that on occasions plugins would fail to build.

Differential Revision: https://reviews.llvm.org/D120999

More information about the All-commits mailing list