This is an archive of the discontinued LLVM Phabricator instance.

[Support] Move StringExtras.h include from Error.h to Error.cpp (part 4)
ClosedPublic

Authored by IncludeGuardian on Jul 8 2023, 2:12 PM.

Details

Summary

1st commit
[lldb] Add missing StringExtras.h includes

In preparation for removing the #include "llvm/ADT/StringExtras.h"
from the header to source file of llvm/Support/Error.h, first add in
all the missing includes that were previously included transitively
through this header.

This is fixing all files missed in b0abd4893fa1, 39d8e6e22cd1, and
a11efd49266f.


2nd commit
[Support] Move StringExtras.h include from Error.h to Error.cpp

Move the implementation of the toString function from
llvm/Support/Error.h to the source file, which allows us to move
#include "llvm/ADT/StringExtras.h" to the source file as well.

As Error.h is present in a large number of translation units this
means we are unnecessarily bringing in the contents of
StringExtras.h - itself a large file with lots of includes - and
slowing down compilation.

Also move the #include "llvm/ADT/SmallVector.h" directive to the
source file as it's no longer needed, but this does not give as much of
a benefit.

This reduces the total number of preprocessing tokens across the LLVM
source files in lib from (roughly) 1,920,413,050 to 1,903,629,230 - a
reduction of ~0.87%. This should result in a small improvement in
compilation time.

Diff Detail

Event Timeline

IncludeGuardian created this revision.Jul 8 2023, 2:12 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 8 2023, 2:12 PM
IncludeGuardian requested review of this revision.Jul 8 2023, 2:12 PM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptJul 8 2023, 2:12 PM

After the previous attempt, I believe only LLDB was failing to compile. These are the necessary changes needed to fix all of LLDB locally on main.

This revision was not accepted when it landed; it landed in state Needs Review.Jul 9 2023, 6:10 AM
This revision was automatically updated to reflect the committed changes.