[PATCH] D157151: [Driver] Refactor to use llvm Option's new Visibility flags

Justin Bogner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 4 15:53:32 PDT 2023


bogner created this revision.
bogner added a reviewer: MaskRay.
Herald added subscribers: abrachet, phosek, kadircet, arphaman, hiraditya, mcrosier.
Herald added a reviewer: sscalpone.
Herald added a reviewer: awarzynski.
Herald added projects: Flang, All.
bogner requested review of this revision.
Herald added subscribers: cfe-commits, llvm-commits, jplehr, sstefan1, jdoerfert, ilya-biryukov.
Herald added a reviewer: jdoerfert.
Herald added projects: clang, LLVM, clang-tools-extra.

This is a massive refactor of the clang driver's option handling to
use the Visibility flags I introduced in llvm Option. There are a few
distinct parts, but they can't really be split into separate commits
and still be made to compile.

1. We split out some of the flags in ClangFlags to ClangVisibility. Note that this does not include any subtractive flags.

2. We update the Flag definitions and OptIn/OptOut constructs in Options.td by hand.

3. We introduce and use a script, update_options_td_flags, to ease migration of flag definitions in Options.td, and we run that on Options.td. I intend to remove this later, but I'm committing it so that downstream forks can use the script to simplify merging.

4. We update calls to OptTable in the clang driver, cc1as, flang, and clangd to use the visibility APIs instead of Include/Exclude flags.

5. We deprecate the Include/Exclude APIs and add a release note.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D157151

Files:
  clang-tools-extra/clangd/CompileCommands.cpp
  clang-tools-extra/modularize/Modularize.cpp
  clang/docs/InternalsManual.rst
  clang/include/clang/Driver/ClangOptionDocs.td
  clang/include/clang/Driver/Driver.h
  clang/include/clang/Driver/Options.h
  clang/include/clang/Driver/Options.td
  clang/lib/Driver/Driver.cpp
  clang/lib/Frontend/CompilerInvocation.cpp
  clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
  clang/lib/Tooling/InterpolatingCompilationDatabase.cpp
  clang/tools/driver/cc1as_main.cpp
  clang/utils/TableGen/ClangOptionDocEmitter.cpp
  clang/utils/update_options_td_flags.py
  flang/docs/FlangOptionsDocs.td
  flang/lib/Frontend/CompilerInvocation.cpp
  flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
  flang/tools/flang-driver/driver.cpp
  llvm/docs/ReleaseNotes.rst
  llvm/include/llvm/Option/OptTable.h
  llvm/lib/Option/OptTable.cpp
  llvm/unittests/Option/OptionParsingTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D157151.547384.patch
Type: text/x-patch
Size: 368694 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230804/bfe4fe54/attachment-0001.bin>


More information about the cfe-commits mailing list