llvm-project/libcxx/utils
Mark de Wever ddb6c2b301 [libc++] Rewrites graph_header_deps.py.
The new version is a lot simpler and has less option which were not
used. This uses the CSV files as generated by D133127 as input data.

The current Python script has more features but uses a simple "grep"
making the output less accurate:
- Conditionally included header are always included. This is an issue
  since part of our includes are unneeded transitive includes. Based on
  the language version they may be omitted. The script however always
  includes them.
- Includes in comments are processed as-if they are includes. This is an
  issue when comments explain how certain data is generated; of course
  there are digraphs which the script omits.

This implementation uses Clang's --trace-includes to generate the includes
per header. This means the input of the generation script always has the
real list of includes.

Libc++ is moving from large monolithic Standard headers to more fine
grained headers. For example, algorithm includes every header in
`__algorithm`. Adding all these detail headers in the graph makes the
output unusable. Instead it only shows the Standard headers. The
transitive includes of the detail headers are parsed and "attributed" to
the Standard header including them. This gives an accurate include graph
without the unneeded clutter. Note that this graph is still big.

This changes fixes the cyclic dependency issue with the previous version
of the tool so the markers and its documentation is removed.

Since the input has no cycles the CI test is removed.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D134188
2022-09-25 15:06:21 +02:00
..
ci [libc++] Rewrites graph_header_deps.py. 2022-09-25 15:06:21 +02:00
data/unicode [libc++] Improve updating data files. 2022-08-16 18:55:46 +02:00
gdb/libcxx Fix std::fpos pretty printer on musl 2022-09-15 21:58:24 +00:00
libcxx [libc++][CI] increases constexpr evaluation limit. 2022-08-31 19:16:40 +02:00
symcheck-blacklists
CMakeLists.txt [libc++] Improve updating data files. 2022-08-16 18:55:46 +02:00
cat_files.py
generate_abi_list.py generate_header_tests.py: Sort the header files ASCIIbetically. 2020-12-14 09:56:07 -05:00
generate_extended_grapheme_cluster_table.py [NFC][libc++][format] Uses ranges algorithm. 2022-09-20 18:59:50 +02:00
generate_extended_grapheme_cluster_test.py [libc++] Improve updating data files. 2022-08-16 18:55:46 +02:00
generate_feature_test_macro_components.py [libc++][format] Updates feature-test macros. 2022-09-07 18:39:39 +02:00
generate_header_inclusion_tests.py [libc++] Make <ranges> non-experimental 2022-08-18 16:59:58 -04:00
generate_header_tests.py [libc++] Rename __libcpp_assertion_handler to __libcpp_verbose_abort 2022-07-29 13:52:42 -04:00
graph_header_deps.py [libc++] Rewrites graph_header_deps.py. 2022-09-25 15:06:21 +02:00
run.py [libc++] Fix codesigning in run.py 2021-04-01 13:39:49 -04:00
ssh.py [libc++][NFC] Resolve Python 2 FIXME 2021-11-12 13:55:22 -05:00
sym_diff.py