avoid dependency on transitive includes - based on include-what-you-use#3757
Conversation
|
This is currently still a draft since it is a good testcase for the assumed performance impact by header which are included more than once and I want to make sure we do not regress the selfcheck even more. See https://trac.cppcheck.net/ticket/10761 for a ticket about this. |
|
An on-demand GitHub Action which produces the output is added in #3759. |
With these changes I can indeed confirm that the same include is inlined multiple times affecting the amount of code which is being processed. |
This does not add additional dependencies it just makes the existing ones explicitly.
It will also prevent breakage in case an include will remove another include as it usually happens with new versions of GCC/libstdc++ (including the upcoming GCC 12). This prevented me from bisecting older performance regressions with a current GCC because some files lacked a
limitsinclude.I did not clean up the GUI code yet since there's an performance issue with the Qt include mapping in the current version of
include-what-you-use.